diff options
author | Federico Beffa <beffa@fbengineering.ch> | 2014-12-13 22:19:08 +0100 |
---|---|---|
committer | Federico Beffa <beffa@fbengineering.ch> | 2014-12-18 17:58:10 +0100 |
commit | 6f8fe4b29e3f69b98c388e3c2a8babeb9232408c (patch) | |
tree | 13d02ff3fc5a39b3da3b93023957127d2a151fd4 | |
parent | 46a3e00b5bd80146708fd69666ea8e0c859fe19a (diff) | |
download | guix-6f8fe4b29e3f69b98c388e3c2a8babeb9232408c.tar guix-6f8fe4b29e3f69b98c388e3c2a8babeb9232408c.tar.gz |
build/python-build-system: Fix easy-install.pth collisions.
* guix/build/python-build-system.scm (rename-pth-file): New rename-pth-file
phase and corresponding function.
-rw-r--r-- | guix/build/python-build-system.scm | 35 |
1 files changed, 26 insertions, 9 deletions
diff --git a/guix/build/python-build-system.scm b/guix/build/python-build-system.scm index 2f3d04a5d8..74ba0c765d 100644 --- a/guix/build/python-build-system.scm +++ b/guix/build/python-build-system.scm @@ -105,19 +105,36 @@ files))) bindirs))) +(define* (rename-pth-file #:key name inputs outputs #:allow-other-keys) + "Rename easy-install.pth to NAME.pth to avoid conflicts between packages +installed with setuptools." + (let* ((out (assoc-ref outputs "out")) + (python (assoc-ref inputs "python")) + (site-packages (string-append out "/lib/python" + (get-python-version python) + "/site-packages")) + (easy-install-pth (string-append site-packages "/easy-install.pth")) + (new-pth (string-append site-packages "/" name ".pth"))) + (when (file-exists? easy-install-pth) + (rename-file easy-install-pth new-pth)) + #t)) + (define %standard-phases ;; 'configure' and 'build' phases are not needed. Everything is done during ;; 'install'. - (alist-cons-after - 'install 'wrap - wrap - (alist-replace - 'build build + (alist-cons-before + 'strip 'rename-pth-file + rename-pth-file + (alist-cons-after + 'install 'wrap + wrap (alist-replace - 'check check - (alist-replace 'install install - (alist-delete 'configure - gnu:%standard-phases)))))) + 'build build + (alist-replace + 'check check + (alist-replace 'install install + (alist-delete 'configure + gnu:%standard-phases))))))) (define* (python-build #:key inputs (phases %standard-phases) #:allow-other-keys #:rest args) |