bug-guix
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH] gnu: Python: fix the compilation of some modules from the standa


From: Cyril Roelandt
Subject: [PATCH] gnu: Python: fix the compilation of some modules from the standard library.
Date: Sun, 7 Apr 2013 16:11:49 +0200

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




reply via email to

[Prev in Thread] Current Thread [Next in Thread]