From 95288fcc6cfa184b500caa95062bf3194d255880 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Wed, 7 Oct 2015 21:27:36 +0200 Subject: gnu: python: Add "minimal" variants. * gnu/packages/python.scm (python2-minimal, python-minimal): New variables. (wrap-python3): New procedure. (python-wrapper): Use it. (python-minimal-wrapper): New variable. * gnu/packages/xml.scm (libxslt)[native-inputs]: Use PYTHON-MINIMAL-WRAPPER instead of PYTHON-WRAPPER. * gnu/packages/xorg.scm (xcb-proto, libxcb, xorg-server): Likewise. --- gnu/packages/python.scm | 43 +++++++++++++++++++++++++++++++++++++++++-- gnu/packages/xml.scm | 2 +- gnu/packages/xorg.scm | 6 +++--- 3 files changed, 45 insertions(+), 6 deletions(-) (limited to 'gnu') diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 08f5bca2c7..bb4b385026 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -260,9 +260,46 @@ 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-minimal") + (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")))))) + + ;; 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 "python-wrapper") + (name name) (source #f) (build-system trivial-build-system) (propagated-inputs `(("python" ,python))) @@ -286,6 +323,8 @@ data types.") 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 diff --git a/gnu/packages/xml.scm b/gnu/packages/xml.scm index 5d65648bfb..d9c92d6d93 100644 --- a/gnu/packages/xml.scm +++ b/gnu/packages/xml.scm @@ -135,7 +135,7 @@ project (but it is usable outside of the Gnome platform).") (synopsis "C library for applying XSLT stylesheets to XML documents") (inputs `(("libgcrypt" ,libgcrypt) ("libxml2" ,libxml2) - ("python" ,python-wrapper) + ("python" ,python-minimal-wrapper) ("zlib" ,zlib))) (description "Libxslt is an XSLT C library developed for the GNOME project. It is diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm index d4ed4b82d0..47dc0e2601 100644 --- a/gnu/packages/xorg.scm +++ b/gnu/packages/xorg.scm @@ -2050,7 +2050,7 @@ legacy X clients.") "0bp3f53l9fy5x3mn1rkj1g81aiyzl90wacwvqdgy831aa3kfxb5l")))) (build-system gnu-build-system) (native-inputs - `(("pkg-config" ,pkg-config) ("python" ,python-wrapper))) + `(("pkg-config" ,pkg-config) ("python" ,python-minimal-wrapper))) (home-page "http://www.x.org/wiki/") (synopsis "XML-XCB protocol descriptions") (description @@ -4804,7 +4804,7 @@ protocol.") ("libxslt" ,libxslt))) (native-inputs `(("pkg-config" ,pkg-config) - ("python" ,python-wrapper))) + ("python" ,python-minimal-wrapper))) (arguments `(#:configure-flags '("--enable-xkb"))) (home-page "http://www.x.org/wiki/") @@ -4889,7 +4889,7 @@ over Xlib, including: ("xtrans" ,xtrans) ("zlib" ,zlib))) (native-inputs - `(("python" ,python-wrapper) + `(("python" ,python-minimal-wrapper) ("pkg-config" ,pkg-config))) (arguments `(#:parallel-tests? #f -- cgit v1.2.3