gnu: python: Simplify list of configure flags.
* gnu/packages/patches/python-2.7-search-paths.patch, gnu/packages/patches/python-3-search-paths.patch: New files. * gnu-system.am (dist_patch_DATA): Add them. * gnu/packages/python.scm (python-2)[source]: Use first patch. [arguments]: Remove now unneeded CPPFLAGS and LDFLAGS. (python)[source]: Use second patch. (python-minimal)[arguments]: Remove CPPFLAGS and LDFLAGS.
This commit is contained in:
parent
afa181fff4
commit
6a20289d5a
|
@ -604,6 +604,8 @@ dist_patch_DATA = \
|
|||
gnu/packages/patches/pybugz-encode-error.patch \
|
||||
gnu/packages/patches/pybugz-stty.patch \
|
||||
gnu/packages/patches/pyqt-configure.patch \
|
||||
gnu/packages/patches/python-2.7-search-paths.patch \
|
||||
gnu/packages/patches/python-3-search-paths.patch \
|
||||
gnu/packages/patches/python-disable-ssl-test.patch \
|
||||
gnu/packages/patches/python-fix-tests.patch \
|
||||
gnu/packages/patches/python2-rdflib-drop-sparqlwrapper.patch \
|
||||
|
|
|
@ -0,0 +1,16 @@
|
|||
Make sure the build system honors CPATH and LIBRARY_PATH when looking for
|
||||
headers and libraries.
|
||||
|
||||
--- Python-2.7.10/setup.py 2015-10-07 18:33:18.125153186 +0200
|
||||
+++ Python-2.7.10/setup.py 2015-10-07 18:33:47.497347552 +0200
|
||||
@@ -526,6 +526,10 @@ class PyBuildExt(build_ext):
|
||||
inc_dirs += ['/system/include', '/atheos/autolnk/include']
|
||||
inc_dirs += os.getenv('C_INCLUDE_PATH', '').split(os.pathsep)
|
||||
|
||||
+ # Always honor these variables.
|
||||
+ lib_dirs += os.getenv('LIBRARY_PATH', '').split(os.pathsep)
|
||||
+ inc_dirs += os.getenv('CPATH', '').split(os.pathsep)
|
||||
+
|
||||
# OSF/1 and Unixware have some stuff in /usr/ccs/lib (like -ldb)
|
||||
if host_platform in ['osf1', 'unixware7', 'openunix8']:
|
||||
lib_dirs += ['/usr/ccs/lib']
|
|
@ -0,0 +1,19 @@
|
|||
Make sure the build system honors CPATH and LIBRARY_PATH when looking for
|
||||
headers and libraries.
|
||||
|
||||
--- setup.py 2015-10-07 23:32:58.891329173 +0200
|
||||
+++ setup.py 2015-10-07 23:46:29.653349924 +0200
|
||||
@@ -507,11 +507,8 @@ class PyBuildExt(build_ext):
|
||||
# if a file is found in one of those directories, it can
|
||||
# be assumed that no additional -I,-L directives are needed.
|
||||
if not cross_compiling:
|
||||
- lib_dirs = self.compiler.library_dirs + [
|
||||
- '/lib64', '/usr/lib64',
|
||||
- '/lib', '/usr/lib',
|
||||
- ]
|
||||
- inc_dirs = self.compiler.include_dirs + ['/usr/include']
|
||||
+ lib_dirs = os.getenv('LIBRARY_PATH', '').split(os.pathsep)
|
||||
+ inc_dirs = os.getenv('CPATH', '').split(os.pathsep)
|
||||
else:
|
||||
lib_dirs = self.compiler.library_dirs[:]
|
||||
inc_dirs = self.compiler.include_dirs[:]
|
|
@ -86,7 +86,8 @@
|
|||
version "/Python-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1h7zbrf9pkj29hlm18b10548ch9757f75m64l47sy75rh43p7lqw"))))
|
||||
"1h7zbrf9pkj29hlm18b10548ch9757f75m64l47sy75rh43p7lqw"))
|
||||
(patches (list (search-patch "python-2.7-search-paths.patch")))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:tests? #f
|
||||
|
@ -132,43 +133,10 @@
|
|||
;; such file or directory
|
||||
#:test-target "test"
|
||||
#:configure-flags
|
||||
(let ((bz2 (assoc-ref %build-inputs "bzip2"))
|
||||
(gdbm (assoc-ref %build-inputs "gdbm"))
|
||||
(libffi (assoc-ref %build-inputs "libffi"))
|
||||
(sqlite (assoc-ref %build-inputs "sqlite"))
|
||||
(openssl (assoc-ref %build-inputs "openssl"))
|
||||
(readline (assoc-ref %build-inputs "readline"))
|
||||
(zlib (assoc-ref %build-inputs "zlib"))
|
||||
(tk (assoc-ref %build-inputs "tk"))
|
||||
(tcl (assoc-ref %build-inputs "tcl"))
|
||||
(out (assoc-ref %outputs "out")))
|
||||
(list "--enable-shared" ; allow embedding
|
||||
"--with-system-ffi" ; build ctypes
|
||||
|
||||
;; configure/setup.py doesn't use pkg-config to find Tcl/Tk.
|
||||
(string-append "--with-tcltk-includes=-I" tk "/include -I"
|
||||
tcl "/include")
|
||||
(string-append "--with-tcltk-libs=-L" tk "/lib -ltk" ""
|
||||
,(version-prefix (package-version tk) 2)
|
||||
" -L" tcl "/lib -ltcl"
|
||||
,(version-prefix (package-version tcl) 2))
|
||||
|
||||
(string-append "CPPFLAGS="
|
||||
"-I" bz2 "/include "
|
||||
"-I" gdbm "/include "
|
||||
"-I" sqlite "/include "
|
||||
"-I" openssl "/include "
|
||||
"-I" readline "/include "
|
||||
"-I" zlib "/include")
|
||||
(string-append "LDFLAGS="
|
||||
"-L" bz2 "/lib "
|
||||
"-L" gdbm "/lib "
|
||||
"-L" libffi "/lib "
|
||||
"-L" sqlite "/lib "
|
||||
"-L" openssl "/lib "
|
||||
"-L" readline "/lib "
|
||||
"-L" zlib "/lib "
|
||||
"-Wl,-rpath=" out "/lib")))
|
||||
(list "--enable-shared" ;allow embedding
|
||||
"--with-system-ffi" ;build ctypes
|
||||
(string-append "LDFLAGS=-Wl,-rpath="
|
||||
(assoc-ref %outputs "out") "/lib"))
|
||||
|
||||
#:modules ((ice-9 ftw)
|
||||
,@%gnu-build-system-modules)
|
||||
|
@ -257,9 +225,11 @@ data types.")
|
|||
(method url-fetch)
|
||||
(uri (string-append "https://www.python.org/ftp/python/"
|
||||
version "/Python-" version ".tar.xz"))
|
||||
(patches (list (search-patch "python-fix-tests.patch")
|
||||
;; XXX Try removing this patch for python > 3.4.3
|
||||
(search-patch "python-disable-ssl-test.patch")))
|
||||
(patches (map search-patch
|
||||
'("python-fix-tests.patch"
|
||||
;; XXX Try removing this patch for python > 3.4.3
|
||||
"python-disable-ssl-test.patch"
|
||||
"python-3-search-paths.patch")))
|
||||
(patch-flags '("-p0"))
|
||||
(sha256
|
||||
(base32
|
||||
|
@ -293,17 +263,9 @@ data types.")
|
|||
(arguments
|
||||
(substitute-keyword-arguments (package-arguments python)
|
||||
((#:configure-flags _)
|
||||
`(let ((openssl (assoc-ref %build-inputs "openssl"))
|
||||
(zlib (assoc-ref %build-inputs "zlib"))
|
||||
(out (assoc-ref %outputs "out")))
|
||||
(list "--enable-shared"
|
||||
(string-append "CPPFLAGS="
|
||||
"-I" openssl "/include "
|
||||
"-I" zlib "/include ")
|
||||
(string-append "LDFLAGS="
|
||||
"-L" openssl "/lib "
|
||||
"-L" zlib "/lib "
|
||||
"-Wl,-rpath=" out "/lib"))))))
|
||||
`(list "--enable-shared"
|
||||
(string-append "LDFLAGS=-Wl,-rpath="
|
||||
(assoc-ref %outputs "out") "/lib")))))
|
||||
|
||||
;; OpenSSL is a mandatory dependency of Python 3.x, for urllib;
|
||||
;; zlib is required by 'zipimport', used by pip.
|
||||
|
|
Loading…
Reference in New Issue