~ruther/guix-local

3fdc99da1933e07985b6ca04d3b9412d5df05ade — Cyril Roelandt 13 years ago f0cd71f
gnu: Python: fix the compilation of some modules from the standard library.

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.
M Makefile.am => Makefile.am +1 -0
@@ 234,6 234,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		\

M gnu/packages/gdbm.scm => gnu/packages/gdbm.scm +1 -0
@@ 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")

A gnu/packages/patches/python-fix-dbm.patch => gnu/packages/patches/python-fix-dbm.patch +20 -0
@@ 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"

M gnu/packages/python.scm => gnu/packages/python.scm +30 -3
@@ 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"))))
    (native-search-paths
     (list (search-path-specification
            (variable "PYTHONPATH")