diff options
Diffstat (limited to 'gnu/packages/python.scm')
-rw-r--r-- | gnu/packages/python.scm | 95 |
1 files changed, 56 insertions, 39 deletions
diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index d15589ce97..fc4fad6f98 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -66,6 +66,7 @@ #:use-module (gnu packages xml) #:use-module (gnu packages xorg) #:use-module (gnu packages zip) + #:use-module (gnu packages tcl) #:use-module (guix packages) #:use-module (guix download) #:use-module (guix git-download) @@ -86,7 +87,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,32 +134,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")) - (out (assoc-ref %outputs "out"))) - (list "--enable-shared" ; allow embedding - "--with-system-ffi" ; build ctypes - (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) @@ -200,7 +180,9 @@ ("sqlite" ,sqlite) ; for sqlite extension ("openssl" ,openssl) ("readline" ,readline) - ("zlib" ,zlib))) + ("zlib" ,zlib) + ("tcl" ,tcl) + ("tk" ,tk))) ; for tkinter (native-inputs `(("pkg-config" ,pkg-config))) (native-search-paths @@ -208,8 +190,7 @@ (variable "PYTHONPATH") (files '("lib/python2.7/site-packages"))))) (home-page "http://python.org") - (synopsis - "High-level, dynamically-typed programming language") + (synopsis "High-level, dynamically-typed programming language") (description "Python is a remarkably powerful dynamic programming language that is used in a wide variety of application domains. Some of its key @@ -227,9 +208,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 @@ -243,9 +226,38 @@ data types.") (version-major+minor version) "/site-packages")))))))) -(define-public python-wrapper +;; Minimal variants of Python, mostly used to break the cycle between Tk and +;; Python (Tk -> libxcb -> Python.) + +(define-public python2-minimal + (package (inherit python-2) + (name "python-minimal") + (arguments + (substitute-keyword-arguments (package-arguments python-2) + ((#:configure-flags _) + `(list "--enable-shared" + (string-append "LDFLAGS=-Wl,-rpath=" + (assoc-ref %outputs "out") "/lib"))))) + (inputs '()))) ;none of the optional dependencies + +(define-public python-minimal (package (inherit python) - (name "python-wrapper") + (name "python-minimal") + (arguments + (substitute-keyword-arguments (package-arguments python) + ((#:configure-flags _) + `(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. + (inputs `(("openssl" ,openssl) + ("zlib" ,zlib))))) + +(define* (wrap-python3 python #:optional (name "python-wrapper")) + (package (inherit python) + (name name) (source #f) (build-system trivial-build-system) (propagated-inputs `(("python" ,python))) @@ -263,9 +275,14 @@ data types.") (string-append bin "/" new))) `("python3", "pydoc3", "idle3") `("python", "pydoc", "idle")))))) - (description (string-append (package-description python) - "\n\nThis wrapper package provides symbolic links to the python binaries - without version suffix.")))) + (synopsis "Wrapper for the Python 3 commands") + (description + "This package provides wrappers for the commands of Python@tie{}3.x such +that they can be invoked under their usual name---e.g., @command{python} +instead of @command{python3}."))) + +(define-public python-wrapper (wrap-python3 python)) +(define-public python-minimal-wrapper (wrap-python3 python-minimal)) (define-public python-psutil (package @@ -4015,7 +4032,7 @@ without using the configuration machinery.") (man1 (string-append data "/man/man1")) (info (string-append data "/info")) (examples (string-append doc "/examples"))) - (setenv "LANG" "en_US.UTF-8") + (setenv "LANG" "en_US.utf8") (with-directory-excursion "docs" ;; FIXME: html and pdf fail to build ;; (system* "make" "html") |