[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH 2/5] gnu: Python: use /nix/.../sh if /bin/sh cannot be found
From: |
Cyril Roelandt |
Subject: |
[PATCH 2/5] gnu: Python: use /nix/.../sh if /bin/sh cannot be found |
Date: |
Fri, 7 Mar 2014 03:47:32 +0100 |
* gnu/packages/python.scm (python-2): patch Lib/subprocess.py to use
/nix/.../sh when /bin/sh is not available (most of the time, in Guix chroot)
---
gnu/packages/python.scm | 19 ++++++++++++++++++-
1 file changed, 18 insertions(+), 1 deletion(-)
diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index 8f92dc2..a663b5e 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -138,7 +138,24 @@
(with-directory-excursion out
(for-each (cut augment-rpath <> lib)
(find-files "bin" ".*")))))
- %standard-phases)))
+ (alist-replace
+ 'configure
+ (lambda* (#:key outputs #:allow-other-keys #:rest args)
+ (let ((configure (assoc-ref %standard-phases 'configure)))
+ ;; Some libraries try to call subprocess.Popen(), which uses
+ ;; /bin/sh, in their tests. Since /bin/sh is not available in the
+ ;; chroot, the tests fail. Instead of disabling them, add
+ ;; '/nix/.../sh' as an alternative shell. The default shell is
+ ;; still /bin/sh, so the subprocess module works exactly as
+ ;; expected. The extra 'if' condition will slow down things, but
+ ;; not enough to be noticed.
+ (substitute* "Lib/subprocess.py"
+ (("args = \\[\"/bin/sh")
+ (string-append
+ "args = [\"/bin/sh\" if os.path.exists(\"/bin/sh\") else "
+ "\"" (which "sh"))))
+ (apply configure args)))
+ %standard-phases))))
(inputs
`(("bzip2" ,bzip2)
("gdbm" ,gdbm)
--
1.8.4.rc3
- [PATCH 0/5] Python improvements., Cyril Roelandt, 2014/03/06
- [PATCH 3/5] gnu: Enable tests in Python 3., Cyril Roelandt, 2014/03/06
- Re: [PATCH 3/5] gnu: Enable tests in Python 3., Ludovic Courtès, 2014/03/07
- Re: [PATCH 3/5] gnu: Enable tests in Python 3., Cyril Roelandt, 2014/03/21
- Re: [PATCH 3/5] gnu: Enable tests in Python 3., Ludovic Courtès, 2014/03/21
- Re: [PATCH 3/5] gnu: Enable tests in Python 3., Cyril Roelandt, 2014/03/22
- Re: [PATCH 3/5] gnu: Enable tests in Python 3., Ludovic Courtès, 2014/03/23
[PATCH 2/5] gnu: Python: use /nix/.../sh if /bin/sh cannot be found,
Cyril Roelandt <=
[PATCH 1/5] gnu: Enable the 'ctypes' module in Python., Cyril Roelandt, 2014/03/06
[PATCH 5/5] gnu: remove python-fix-dbm.patch, Cyril Roelandt, 2014/03/06
[PATCH 4/5] gnu: Python: bump to 3.3.4, Cyril Roelandt, 2014/03/06