M gnu/packages/python.scm => gnu/packages/python.scm +41 -2
@@ 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
M gnu/packages/xml.scm => gnu/packages/xml.scm +1 -1
@@ 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
M gnu/packages/xorg.scm => gnu/packages/xorg.scm +3 -3
@@ 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