unofficial mirror of bug-guix@gnu.org 
 help / color / mirror / code / Atom feed
* Python: Zlib support
@ 2013-04-02 14:32 Nikita Karetnikov
  2013-04-02 18:25 ` Cyril Roelandt
  0 siblings, 1 reply; 14+ messages in thread
From: Nikita Karetnikov @ 2013-04-02 14:32 UTC (permalink / raw)
  To: bug-guix

[-- Attachment #1: Type: text/plain, Size: 402 bytes --]

I'm trying to build Bazaar using 'python-build-system'.  Bazaar requires
Zlib (from Python) and I fail to find out how to build Python with Zlib.

It should be possible to import it like so:

  # python
  >>> import zlib

According to this [1], Zlib can be located here:

  [...]/lib/python2.7/lib-dynload/zlib.so

'configure' doesn't have anything related too.

[1] http://stackoverflow.com/a/9727418

[-- Attachment #2: Type: application/pgp-signature, Size: 835 bytes --]

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: Python: Zlib support
  2013-04-02 14:32 Python: Zlib support Nikita Karetnikov
@ 2013-04-02 18:25 ` Cyril Roelandt
  2013-04-03  4:00   ` Nikita Karetnikov
  2013-04-03  8:35   ` Ludovic Courtès
  0 siblings, 2 replies; 14+ messages in thread
From: Cyril Roelandt @ 2013-04-02 18:25 UTC (permalink / raw)
  To: Nikita Karetnikov; +Cc: bug-guix

On 04/02/2013 04:32 PM, Nikita Karetnikov wrote:
> I'm trying to build Bazaar using 'python-build-system'.  Bazaar requires
> Zlib (from Python) and I fail to find out how to build Python with Zlib.
>
> It should be possible to import it like so:
>
>    # python
>    >>>  import zlib
>

This works for me:

$ which python
/home/cyril/.guix-profile/bin/python

$ python -c "import zlib"; echo $?
0

Cyril.

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: Python: Zlib support
  2013-04-02 18:25 ` Cyril Roelandt
@ 2013-04-03  4:00   ` Nikita Karetnikov
  2013-04-03  8:35   ` Ludovic Courtès
  1 sibling, 0 replies; 14+ messages in thread
From: Nikita Karetnikov @ 2013-04-03  4:00 UTC (permalink / raw)
  To: Cyril Roelandt; +Cc: bug-guix

[-- Attachment #1: Type: text/plain, Size: 166 bytes --]

> This works for me:

Hm, I'm puzzled.  Do you use any Python-related environment variables?
Do you have the mentioned .so file?

Also, could you show Python's hash?

[-- Attachment #2: Type: application/pgp-signature, Size: 835 bytes --]

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: Python: Zlib support
  2013-04-02 18:25 ` Cyril Roelandt
  2013-04-03  4:00   ` Nikita Karetnikov
@ 2013-04-03  8:35   ` Ludovic Courtès
  2013-04-03 21:33     ` [PATCH] gnu: Fix zlib support in Python Cyril Roelandt
  1 sibling, 1 reply; 14+ messages in thread
From: Ludovic Courtès @ 2013-04-03  8:35 UTC (permalink / raw)
  To: Cyril Roelandt; +Cc: bug-guix

Cyril Roelandt <tipecaml@gmail.com> skribis:

> On 04/02/2013 04:32 PM, Nikita Karetnikov wrote:
>> I'm trying to build Bazaar using 'python-build-system'.  Bazaar requires
>> Zlib (from Python) and I fail to find out how to build Python with Zlib.
>>
>> It should be possible to import it like so:
>>
>>    # python
>>    >>>  import zlib
>>
>
> This works for me:
>
> $ which python
> /home/cyril/.guix-profile/bin/python
>
> $ python -c "import zlib"; echo $?
> 0

Can you strace it to see which zlib gets loaded?

Ludo’.

^ permalink raw reply	[flat|nested] 14+ messages in thread

* [PATCH] gnu: Fix zlib support in Python.
  2013-04-03  8:35   ` Ludovic Courtès
@ 2013-04-03 21:33     ` Cyril Roelandt
  2013-04-04  8:12       ` Nikita Karetnikov
  0 siblings, 1 reply; 14+ messages in thread
From: Cyril Roelandt @ 2013-04-03 21:33 UTC (permalink / raw)
  To: bug-guix

We must adjust 'inc_dirs' and 'lib_dirs' in setup.py.
---
On 04/03/2013 10:35 AM, Ludovic Courtès wrote:
> Can you strace it to see which zlib gets loaded?

Well, this is funny. When running "python -c "import zlib", /usr/bin/python is
called:

execve("/home/cyril/.guix-profile/bin/python", ["python", "-c", "import zlib"], [/* 23 vars */]) = 0

I had to use an absolute path to run the right interpreter:

execve("/home/cyril/.guix-profile/bin/python", ["/home/cyril/.guix-profile/bin/py"..., "-c", "import zlib"], [/* 23 vars */]) = 0

and it fails to load zlib.


Anyway, I think the zlib module was not found because setup.py only looks for
the libraries/headers in a few hardcoded directories

        lib_dirs = self.compiler.library_dirs + [
            '/lib64', '/usr/lib64',
            '/lib', '/usr/lib',
            ]
        inc_dirs = self.compiler.include_dirs + ['/usr/include']


Could you confirm that:
1) This patch fixes your zlib issues
2) A similar error occurs when importing other modules, such as bz2

?

I do not think there is a more elegant solution than patching setup.py. I tried
running "CFLAGS=-I/path/to/zlib/include ./configure" and
"CFLAGS=-I/path/to/zlib/include make" but it does not seem to make any
difference.


Cyril.


 gnu/packages/python.scm |   17 ++++++++++++++++-
 1 file changed, 16 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index 52b11e4..505dcd9 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -38,7 +38,22 @@
        (base32
         "11f9aw855lrmknr6c82gm1ijr3n0smc6idyp94y7774yivjnplv1"))))
     (build-system gnu-build-system)
-    (arguments `(#:tests? #f)) ; XXX: some tests fail
+    (arguments
+     `(#:tests? #f ; XXX: some tests fail
+       #:phases
+       (alist-replace
+        'configure
+        (lambda* (#:key inputs #:allow-other-keys #:rest args)
+          (let ((configure (assoc-ref %standard-phases 'configure))
+                (zlib (assoc-ref inputs "zlib")))
+            (substitute* "setup.py"
+              (("'/lib64', '/usr/lib64'")
+               (string-append "'" zlib "/lib'")))
+            (substitute* "setup.py"
+              (("\\['/usr/include'\\]")
+               (string-append "['" zlib "/include']")))
+            (apply configure args)))
+        %standard-phases)))
     (inputs
      `(("zlib" ,zlib)
        ("openssl" ,openssl)
-- 
1.7.10.4

^ permalink raw reply related	[flat|nested] 14+ messages in thread

* Re: [PATCH] gnu: Fix zlib support in Python.
  2013-04-03 21:33     ` [PATCH] gnu: Fix zlib support in Python Cyril Roelandt
@ 2013-04-04  8:12       ` Nikita Karetnikov
  2013-04-05 22:45         ` [PATCH] gnu: Python: fix the compilation of some modules from the standard library Cyril Roelandt
  0 siblings, 1 reply; 14+ messages in thread
From: Nikita Karetnikov @ 2013-04-04  8:12 UTC (permalink / raw)
  To: Cyril Roelandt; +Cc: bug-guix

[-- Attachment #1: Type: text/plain, Size: 291 bytes --]

> Could you confirm that:
> 1) This patch fixes your zlib issues
> 2) A similar error occurs when importing other modules, such as bz2

> ?

Thanks, I confirm both.

Do you know how to fix the problem with 'bz2'?  If you don't have time,
I can look into it.  (But it may take several days.)

[-- Attachment #2: Type: application/pgp-signature, Size: 835 bytes --]

^ permalink raw reply	[flat|nested] 14+ messages in thread

* [PATCH] gnu: Python: fix the compilation of some modules from the standard library.
  2013-04-04  8:12       ` Nikita Karetnikov
@ 2013-04-05 22:45         ` Cyril Roelandt
  2013-04-06 14:09           ` Ludovic Courtès
  0 siblings, 1 reply; 14+ messages in thread
From: Cyril Roelandt @ 2013-04-05 22:45 UTC (permalink / raw)
  To: bug-guix

This commit enables the bz2, readline, ssl and zlib modules.
---
On 04/04/2013 10:12 AM, Nikita Karetnikov wrote:
> Do you know how to fix the problem with 'bz2'?

This patch is much cleaner that my previous one, and fixes bz2, readline, ssl
and zlib.

I still need to fix dbm. Python looks for ndbm.h, gdbm/ndbm.h, gdbm-ndbm.h, but
we use gdbm.h. Using gdbm's compatibility mode, we can install ndbm.h, but this
does not install libndbm.so. We could create a symlink from libndbm.so to
libgdbm.so, but that would be quite ugly, so I think I'm gonna have to fix this
directly in Python, which may take some time.

Another popular module that does not work yet is Tkinter, because it uses Tk,
which depends on X.

Feel free to push this patch if it works for you.

Cyril.

 gnu/packages/python.scm |   24 +++++++++++++++++++++---
 1 file changed, 21 insertions(+), 3 deletions(-)

diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index 52b11e4..c62b8c0 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -20,6 +20,7 @@
 (define-module (gnu packages python)
   #:use-module ((guix licenses) #:select (psfl))
   #:use-module (gnu packages compression)
+  #:use-module (gnu packages readline)
   #:use-module (gnu packages openssl)
   #:use-module (guix packages)
   #:use-module (guix download)
@@ -38,11 +39,28 @@
        (base32
         "11f9aw855lrmknr6c82gm1ijr3n0smc6idyp94y7774yivjnplv1"))))
     (build-system gnu-build-system)
-    (arguments `(#:tests? #f)) ; XXX: some tests fail
+    (arguments
+     `(#:tests? #f ; XXX: some tests fail
+       #:configure-flags
+        (let ((bz2 (assoc-ref %build-inputs "bzip2"))
+              (openssl (assoc-ref %build-inputs "openssl"))
+              (readline (assoc-ref %build-inputs "readline"))
+              (zlib (assoc-ref %build-inputs "zlib")))
+         (list (string-append "CPPFLAGS="
+                "-I" bz2 "/include "
+                "-I" openssl "/include "
+                "-I" readline "/include "
+                "-I" zlib "/include")
+               (string-append "LDFLAGS="
+                "-L" bz2 "/lib "
+                "-L" openssl "/lib "
+                "-L" readline "/lib "
+                "-L" zlib "/lib")))))
     (inputs
-     `(("zlib" ,zlib)
+     `(("bzip2" ,bzip2)
        ("openssl" ,openssl)
-       ("bzip2" ,bzip2)))
+       ("readline" ,readline)
+       ("zlib" ,zlib)))
     (home-page "http://python.org")
     (synopsis
      "Python, a high-level dynamically-typed programming language")
-- 
1.7.10.4

^ permalink raw reply related	[flat|nested] 14+ messages in thread

* Re: [PATCH] gnu: Python: fix the compilation of some modules from the standard library.
  2013-04-05 22:45         ` [PATCH] gnu: Python: fix the compilation of some modules from the standard library Cyril Roelandt
@ 2013-04-06 14:09           ` Ludovic Courtès
  2013-04-06 18:48             ` [PATCH] gnu: Python: enable the dbm module Cyril Roelandt
  0 siblings, 1 reply; 14+ messages in thread
From: Ludovic Courtès @ 2013-04-06 14:09 UTC (permalink / raw)
  To: Cyril Roelandt; +Cc: bug-guix

Cyril Roelandt <tipecaml@gmail.com> skribis:

> This patch is much cleaner that my previous one, and fixes bz2, readline, ssl
> and zlib.

Nice.

> I still need to fix dbm. Python looks for ndbm.h, gdbm/ndbm.h, gdbm-ndbm.h, but
> we use gdbm.h.

We also have bdb, so we can use it if that’s what is expected.

> Another popular module that does not work yet is Tkinter, because it uses Tk,
> which depends on X.

Something that’s doable now.  :-)

The patch looks good to me, so you (or Nikita) can push it.

Ludo’.

^ permalink raw reply	[flat|nested] 14+ messages in thread

* [PATCH] gnu: Python: enable the dbm module.
  2013-04-06 14:09           ` Ludovic Courtès
@ 2013-04-06 18:48             ` Cyril Roelandt
  2013-04-06 22:39               ` Ludovic Courtès
  0 siblings, 1 reply; 14+ messages in thread
From: Cyril Roelandt @ 2013-04-06 18:48 UTC (permalink / raw)
  To: bug-guix

* gnu/packages/gdbm.scm: Enable the compatibility mode.
* gnu/packages/python.scm: Enable the dbm module.
* gnu/packages/patches/python-fix-dbm.patch: New file.
* Makefile.am: Add it.
---
Hello!

On 04/06/2013 04:09 PM, Ludovic Courtès wrote:
> We also have bdb, so we can use it if that’s what is expected.

Well, I managed to do this with the compatibility mode of gdbm.

Maybe this patch should be merged with the previous one. I think I'll submit it
to Python.

Cyril.

 Makefile.am                               |    1 +
 gnu/packages/gdbm.scm                     |    1 +
 gnu/packages/patches/python-fix-dbm.patch |   18 ++++++++++++++++++
 gnu/packages/python.scm                   |   11 ++++++++++-
 4 files changed, 30 insertions(+), 1 deletion(-)
 create mode 100644 gnu/packages/patches/python-fix-dbm.patch

diff --git a/Makefile.am b/Makefile.am
index 136c01b..91de488 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -229,6 +229,7 @@ dist_patch_DATA =						\
   gnu/packages/patches/make-impure-dirs.patch			\
   gnu/packages/patches/mcron-install.patch			\
   gnu/packages/patches/perl-no-sys-dirs.patch			\
+  gnu/packages/patches/python-fix-dbm.patch			\
   gnu/packages/patches/procps-make-3.82.patch			\
   gnu/packages/patches/qemu-multiple-smb-shares.patch		\
   gnu/packages/patches/readline-link-ncurses.patch		\
diff --git a/gnu/packages/gdbm.scm b/gnu/packages/gdbm.scm
index 588b732..76733db 100644
--- a/gnu/packages/gdbm.scm
+++ b/gnu/packages/gdbm.scm
@@ -34,6 +34,7 @@
       (sha256
        (base32
         "0h9lfzdjc2yl849y0byg51h6xfjg0y7vg9jnsw3gpfwlbd617y13"))))
+    (arguments `(#:configure-flags '("--enable-libgdbm-compat")))
     (build-system gnu-build-system)
     (home-page "http://www.gnu.org/software/gdbm/")
     (synopsis "GNU dbm key/value database library")
diff --git a/gnu/packages/patches/python-fix-dbm.patch b/gnu/packages/patches/python-fix-dbm.patch
new file mode 100644
index 0000000..21e633d
--- /dev/null
+++ b/gnu/packages/patches/python-fix-dbm.patch
@@ -0,0 +1,18 @@
+--- setup.py	2013-04-06 00:53:37.000000000 +0200
++++ setup.py.new	2013-04-06 19:55:05.000000000 +0200
+@@ -1158,10 +1158,14 @@
+             for cand in dbm_order:
+                 if cand == "ndbm":
+                     if find_file("ndbm.h", inc_dirs, []) is not None:
+-                        # Some systems have -lndbm, others don't
++                        # Some systems have -lndbm, some have -lgdbm_compat,
++                        # others have no particular linker flags.
+                         if self.compiler.find_library_file(lib_dirs,
+                                                                'ndbm'):
+                             ndbm_libs = ['ndbm']
++                        elif self.compiler.find_library_file(lib_dirs,
++                                                             'gdbm_compat'):
++                            ndbm_libs = ['gdbm_compat']
+                         else:
+                             ndbm_libs = []
+                         print "building dbm using ndbm"
diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index c62b8c0..3f94164 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -19,7 +19,9 @@
 
 (define-module (gnu packages python)
   #:use-module ((guix licenses) #:select (psfl))
+  #:use-module (gnu packages)
   #:use-module (gnu packages compression)
+  #:use-module (gnu packages gdbm)
   #:use-module (gnu packages readline)
   #:use-module (gnu packages openssl)
   #:use-module (guix packages)
@@ -41,26 +43,33 @@
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f ; XXX: some tests fail
+       #:patches (list (assoc-ref %build-inputs "patch-dbm"))
+       #:patch-flags '("-p0")
        #:configure-flags
         (let ((bz2 (assoc-ref %build-inputs "bzip2"))
+              (gdbm (assoc-ref %build-inputs "gdbm"))
               (openssl (assoc-ref %build-inputs "openssl"))
               (readline (assoc-ref %build-inputs "readline"))
               (zlib (assoc-ref %build-inputs "zlib")))
          (list (string-append "CPPFLAGS="
                 "-I" bz2 "/include "
+                "-I" gdbm "/include "
                 "-I" openssl "/include "
                 "-I" readline "/include "
                 "-I" zlib "/include")
                (string-append "LDFLAGS="
                 "-L" bz2 "/lib "
+                "-L" gdbm "/lib "
                 "-L" openssl "/lib "
                 "-L" readline "/lib "
                 "-L" zlib "/lib")))))
     (inputs
      `(("bzip2" ,bzip2)
+       ("gdbm" ,gdbm)
        ("openssl" ,openssl)
        ("readline" ,readline)
-       ("zlib" ,zlib)))
+       ("zlib" ,zlib)
+       ("patch-dbm" ,(search-patch "python-fix-dbm.patch"))))
     (home-page "http://python.org")
     (synopsis
      "Python, a high-level dynamically-typed programming language")
-- 
1.7.10.4

^ permalink raw reply related	[flat|nested] 14+ messages in thread

* Re: [PATCH] gnu: Python: enable the dbm module.
  2013-04-06 18:48             ` [PATCH] gnu: Python: enable the dbm module Cyril Roelandt
@ 2013-04-06 22:39               ` Ludovic Courtès
  2013-04-07 14:11                 ` [PATCH] gnu: Python: fix the compilation of some modules from the standard library Cyril Roelandt
  0 siblings, 1 reply; 14+ messages in thread
From: Ludovic Courtès @ 2013-04-06 22:39 UTC (permalink / raw)
  To: Cyril Roelandt; +Cc: bug-guix

Cyril Roelandt <tipecaml@gmail.com> skribis:

> On 04/06/2013 04:09 PM, Ludovic Courtès wrote:
>> We also have bdb, so we can use it if that’s what is expected.
>
> Well, I managed to do this with the compatibility mode of gdbm.

Looks good (apparently Debian builds it against bdb, but using gdbm
sounds good: <http://packages.debian.org/sid/python2.7>.)

> Maybe this patch should be merged with the previous one. I think I'll submit it
> to Python.

Yes, even better.

> --- /dev/null
> +++ b/gnu/packages/patches/python-fix-dbm.patch
> @@ -0,0 +1,18 @@
> +--- setup.py	2013-04-06 00:53:37.000000000 +0200
> ++++ setup.py.new	2013-04-06 19:55:05.000000000 +0200
> +@@ -1158,10 +1158,14 @@
> +             for cand in dbm_order:

Can you add a comment at the beginning of the patch stating what it
does, and what its status is wrt. upstream?

Thanks!

Ludo’.

^ permalink raw reply	[flat|nested] 14+ messages in thread

* [PATCH] gnu: Python: fix the compilation of some modules from the standard library.
  2013-04-06 22:39               ` Ludovic Courtès
@ 2013-04-07 14:11                 ` Cyril Roelandt
  2013-04-07 14:29                   ` Ludovic Courtès
  2013-04-15 20:39                   ` [PATCH] gnu: Python: bump to version 2.7.4 Cyril Roelandt
  0 siblings, 2 replies; 14+ messages in thread
From: Cyril Roelandt @ 2013-04-07 14:11 UTC (permalink / raw)
  To: bug-guix

This commit enables the bz2, dbm, readline, ssl and zlib modules.

* gnu/packages/gdbm.scm: Enable the compatibility mode.
* gnu/packages/python.scm: Enable a few modules from the standard library.
* gnu/packages/patches/python-fix-dbm.patch: New file.
* Makefile.am: Add it.
---
On 04/07/2013 12:39 AM, Ludovic Courtès wrote:
> Can you add a comment at the beginning of the patch stating what it
> does, and what its status is wrt. upstream?

This has been fixed upstream, and will be available in Python 2.7.4. Here is an
updated patch.

Cyril.

 Makefile.am                               |    1 +
 gnu/packages/gdbm.scm                     |    1 +
 gnu/packages/patches/python-fix-dbm.patch |   20 +++++++++++++++++
 gnu/packages/python.scm                   |   33 ++++++++++++++++++++++++++---
 4 files changed, 52 insertions(+), 3 deletions(-)
 create mode 100644 gnu/packages/patches/python-fix-dbm.patch

diff --git a/Makefile.am b/Makefile.am
index 136c01b..91de488 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -229,6 +229,7 @@ dist_patch_DATA =						\
   gnu/packages/patches/make-impure-dirs.patch			\
   gnu/packages/patches/mcron-install.patch			\
   gnu/packages/patches/perl-no-sys-dirs.patch			\
+  gnu/packages/patches/python-fix-dbm.patch			\
   gnu/packages/patches/procps-make-3.82.patch			\
   gnu/packages/patches/qemu-multiple-smb-shares.patch		\
   gnu/packages/patches/readline-link-ncurses.patch		\
diff --git a/gnu/packages/gdbm.scm b/gnu/packages/gdbm.scm
index 588b732..76733db 100644
--- a/gnu/packages/gdbm.scm
+++ b/gnu/packages/gdbm.scm
@@ -34,6 +34,7 @@
       (sha256
        (base32
         "0h9lfzdjc2yl849y0byg51h6xfjg0y7vg9jnsw3gpfwlbd617y13"))))
+    (arguments `(#:configure-flags '("--enable-libgdbm-compat")))
     (build-system gnu-build-system)
     (home-page "http://www.gnu.org/software/gdbm/")
     (synopsis "GNU dbm key/value database library")
diff --git a/gnu/packages/patches/python-fix-dbm.patch b/gnu/packages/patches/python-fix-dbm.patch
new file mode 100644
index 0000000..29e4521
--- /dev/null
+++ b/gnu/packages/patches/python-fix-dbm.patch
@@ -0,0 +1,20 @@
+This patch allows the dbm module to be built using the compatibility mode of
+gdbm. It will not be needed any more with Python 2.7.4.
+--- setup.py	2013-04-06 00:53:37.000000000 +0200
++++ setup.py.new	2013-04-06 19:55:05.000000000 +0200
+@@ -1158,10 +1158,14 @@
+             for cand in dbm_order:
+                 if cand == "ndbm":
+                     if find_file("ndbm.h", inc_dirs, []) is not None:
+-                        # Some systems have -lndbm, others don't
++                        # Some systems have -lndbm, some have -lgdbm_compat,
++                        # others have no particular linker flags.
+                         if self.compiler.find_library_file(lib_dirs,
+                                                                'ndbm'):
+                             ndbm_libs = ['ndbm']
++                        elif self.compiler.find_library_file(lib_dirs,
++                                                             'gdbm_compat'):
++                            ndbm_libs = ['gdbm_compat']
+                         else:
+                             ndbm_libs = []
+                         print "building dbm using ndbm"
diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index 52b11e4..3f94164 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -19,7 +19,10 @@
 
 (define-module (gnu packages python)
   #:use-module ((guix licenses) #:select (psfl))
+  #:use-module (gnu packages)
   #:use-module (gnu packages compression)
+  #:use-module (gnu packages gdbm)
+  #:use-module (gnu packages readline)
   #:use-module (gnu packages openssl)
   #:use-module (guix packages)
   #:use-module (guix download)
@@ -38,11 +41,35 @@
        (base32
         "11f9aw855lrmknr6c82gm1ijr3n0smc6idyp94y7774yivjnplv1"))))
     (build-system gnu-build-system)
-    (arguments `(#:tests? #f)) ; XXX: some tests fail
+    (arguments
+     `(#:tests? #f ; XXX: some tests fail
+       #:patches (list (assoc-ref %build-inputs "patch-dbm"))
+       #:patch-flags '("-p0")
+       #:configure-flags
+        (let ((bz2 (assoc-ref %build-inputs "bzip2"))
+              (gdbm (assoc-ref %build-inputs "gdbm"))
+              (openssl (assoc-ref %build-inputs "openssl"))
+              (readline (assoc-ref %build-inputs "readline"))
+              (zlib (assoc-ref %build-inputs "zlib")))
+         (list (string-append "CPPFLAGS="
+                "-I" bz2 "/include "
+                "-I" gdbm "/include "
+                "-I" openssl "/include "
+                "-I" readline "/include "
+                "-I" zlib "/include")
+               (string-append "LDFLAGS="
+                "-L" bz2 "/lib "
+                "-L" gdbm "/lib "
+                "-L" openssl "/lib "
+                "-L" readline "/lib "
+                "-L" zlib "/lib")))))
     (inputs
-     `(("zlib" ,zlib)
+     `(("bzip2" ,bzip2)
+       ("gdbm" ,gdbm)
        ("openssl" ,openssl)
-       ("bzip2" ,bzip2)))
+       ("readline" ,readline)
+       ("zlib" ,zlib)
+       ("patch-dbm" ,(search-patch "python-fix-dbm.patch"))))
     (home-page "http://python.org")
     (synopsis
      "Python, a high-level dynamically-typed programming language")
-- 
1.7.10.4

^ permalink raw reply related	[flat|nested] 14+ messages in thread

* Re: [PATCH] gnu: Python: fix the compilation of some modules from the standard library.
  2013-04-07 14:11                 ` [PATCH] gnu: Python: fix the compilation of some modules from the standard library Cyril Roelandt
@ 2013-04-07 14:29                   ` Ludovic Courtès
  2013-04-15 20:39                   ` [PATCH] gnu: Python: bump to version 2.7.4 Cyril Roelandt
  1 sibling, 0 replies; 14+ messages in thread
From: Ludovic Courtès @ 2013-04-07 14:29 UTC (permalink / raw)
  To: Cyril Roelandt; +Cc: bug-guix

Cyril Roelandt <tipecaml@gmail.com> skribis:

> This has been fixed upstream, and will be available in Python 2.7.4. Here is an
> updated patch.

Excellent.  Please push.

Ludo’.

^ permalink raw reply	[flat|nested] 14+ messages in thread

* [PATCH] gnu: Python: bump to version 2.7.4.
  2013-04-07 14:11                 ` [PATCH] gnu: Python: fix the compilation of some modules from the standard library Cyril Roelandt
  2013-04-07 14:29                   ` Ludovic Courtès
@ 2013-04-15 20:39                   ` Cyril Roelandt
  2013-04-15 21:47                     ` Ludovic Courtès
  1 sibling, 1 reply; 14+ messages in thread
From: Cyril Roelandt @ 2013-04-15 20:39 UTC (permalink / raw)
  To: bug-guix

* gnu/packages/python.scm: bump to version 2.7.4, remove references to
python-fix-dbm.patch.
* Makefile.am: remove references to python-fix-dbm.patch
* gnu/packages/patches/python-fix-dbm.patch: remove it.
---
On 04/07/2013 04:11 PM, Cyril Roelandt wrote:
> This has been fixed upstream, and will be available in Python 2.7.4.

Well, Python 2.7.4 is out.

Cyril.


 Makefile.am                               |    1 -
 gnu/packages/patches/python-fix-dbm.patch |   20 --------------------
 gnu/packages/python.scm                   |    9 +++------
 3 files changed, 3 insertions(+), 27 deletions(-)
 delete mode 100644 gnu/packages/patches/python-fix-dbm.patch

diff --git a/Makefile.am b/Makefile.am
index 930ea6c..df0a513 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -229,7 +229,6 @@ dist_patch_DATA =						\
   gnu/packages/patches/make-impure-dirs.patch			\
   gnu/packages/patches/mcron-install.patch			\
   gnu/packages/patches/perl-no-sys-dirs.patch			\
-  gnu/packages/patches/python-fix-dbm.patch			\
   gnu/packages/patches/procps-make-3.82.patch			\
   gnu/packages/patches/qemu-multiple-smb-shares.patch		\
   gnu/packages/patches/readline-link-ncurses.patch		\
diff --git a/gnu/packages/patches/python-fix-dbm.patch b/gnu/packages/patches/python-fix-dbm.patch
deleted file mode 100644
index 29e4521..0000000
--- a/gnu/packages/patches/python-fix-dbm.patch
+++ /dev/null
@@ -1,20 +0,0 @@
-This patch allows the dbm module to be built using the compatibility mode of
-gdbm. It will not be needed any more with Python 2.7.4.
---- setup.py	2013-04-06 00:53:37.000000000 +0200
-+++ setup.py.new	2013-04-06 19:55:05.000000000 +0200
-@@ -1158,10 +1158,14 @@
-             for cand in dbm_order:
-                 if cand == "ndbm":
-                     if find_file("ndbm.h", inc_dirs, []) is not None:
--                        # Some systems have -lndbm, others don't
-+                        # Some systems have -lndbm, some have -lgdbm_compat,
-+                        # others have no particular linker flags.
-                         if self.compiler.find_library_file(lib_dirs,
-                                                                'ndbm'):
-                             ndbm_libs = ['ndbm']
-+                        elif self.compiler.find_library_file(lib_dirs,
-+                                                             'gdbm_compat'):
-+                            ndbm_libs = ['gdbm_compat']
-                         else:
-                             ndbm_libs = []
-                         print "building dbm using ndbm"
diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index 3f94164..8b45159 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -31,7 +31,7 @@
 (define-public python
   (package
     (name "python")
-    (version "2.7.3")
+    (version "2.7.4")
     (source
      (origin
       (method url-fetch)
@@ -39,12 +39,10 @@
                           version "/Python-" version ".tar.xz"))
       (sha256
        (base32
-        "11f9aw855lrmknr6c82gm1ijr3n0smc6idyp94y7774yivjnplv1"))))
+        "0bdn4dylm92n2dsvqvjfyask9jbz88aan5hi4lgkawkxs2v6wqmn"))))
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f ; XXX: some tests fail
-       #:patches (list (assoc-ref %build-inputs "patch-dbm"))
-       #:patch-flags '("-p0")
        #:configure-flags
         (let ((bz2 (assoc-ref %build-inputs "bzip2"))
               (gdbm (assoc-ref %build-inputs "gdbm"))
@@ -68,8 +66,7 @@
        ("gdbm" ,gdbm)
        ("openssl" ,openssl)
        ("readline" ,readline)
-       ("zlib" ,zlib)
-       ("patch-dbm" ,(search-patch "python-fix-dbm.patch"))))
+       ("zlib" ,zlib)))
     (home-page "http://python.org")
     (synopsis
      "Python, a high-level dynamically-typed programming language")
-- 
1.7.10.4

^ permalink raw reply related	[flat|nested] 14+ messages in thread

* Re: [PATCH] gnu: Python: bump to version 2.7.4.
  2013-04-15 20:39                   ` [PATCH] gnu: Python: bump to version 2.7.4 Cyril Roelandt
@ 2013-04-15 21:47                     ` Ludovic Courtès
  0 siblings, 0 replies; 14+ messages in thread
From: Ludovic Courtès @ 2013-04-15 21:47 UTC (permalink / raw)
  To: Cyril Roelandt; +Cc: bug-guix

Cyril Roelandt <tipecaml@gmail.com> skribis:

> * gnu/packages/python.scm: bump to version 2.7.4, remove references to
> python-fix-dbm.patch.
> * Makefile.am: remove references to python-fix-dbm.patch
> * gnu/packages/patches/python-fix-dbm.patch: remove it.
> ---
> On 04/07/2013 04:11 PM, Cyril Roelandt wrote:
>> This has been fixed upstream, and will be available in Python 2.7.4.
>
> Well, Python 2.7.4 is out.

Great, please push.

Ludo’.

^ permalink raw reply	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2013-04-15 21:47 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-04-02 14:32 Python: Zlib support Nikita Karetnikov
2013-04-02 18:25 ` Cyril Roelandt
2013-04-03  4:00   ` Nikita Karetnikov
2013-04-03  8:35   ` Ludovic Courtès
2013-04-03 21:33     ` [PATCH] gnu: Fix zlib support in Python Cyril Roelandt
2013-04-04  8:12       ` Nikita Karetnikov
2013-04-05 22:45         ` [PATCH] gnu: Python: fix the compilation of some modules from the standard library Cyril Roelandt
2013-04-06 14:09           ` Ludovic Courtès
2013-04-06 18:48             ` [PATCH] gnu: Python: enable the dbm module Cyril Roelandt
2013-04-06 22:39               ` Ludovic Courtès
2013-04-07 14:11                 ` [PATCH] gnu: Python: fix the compilation of some modules from the standard library Cyril Roelandt
2013-04-07 14:29                   ` Ludovic Courtès
2013-04-15 20:39                   ` [PATCH] gnu: Python: bump to version 2.7.4 Cyril Roelandt
2013-04-15 21:47                     ` Ludovic Courtès

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).