[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
05/05: gnu: Add conda.
From: |
Ricardo Wurmus |
Subject: |
05/05: gnu: Add conda. |
Date: |
Sat, 22 Jul 2017 06:26:37 -0400 (EDT) |
rekado pushed a commit to branch master
in repository guix.
commit 84fcb58050f4dc18cd3ec3ae13846789de5223b2
Author: Muriithi Frederick Muriuki <address@hidden>
Date: Tue Jul 18 11:37:09 2017 +0300
gnu: Add conda.
* gnu/packages/package-management.scm (conda): New variable.
Co-authored-by: Ricardo Wurmus <address@hidden>
---
gnu/packages/package-management.scm | 49 +++++++++++++++++++++++++++++++++++++
1 file changed, 49 insertions(+)
diff --git a/gnu/packages/package-management.scm
b/gnu/packages/package-management.scm
index 1e46187..d9ea657 100644
--- a/gnu/packages/package-management.scm
+++ b/gnu/packages/package-management.scm
@@ -649,3 +649,52 @@ This package provides Conda as a library.")
(define-public python2-conda
(package-with-python2 python-conda))
+
+(define-public conda
+ (package (inherit python-conda)
+ (name "conda")
+ (arguments
+ (substitute-keyword-arguments (package-arguments python-conda)
+ ((#:phases phases)
+ `(modify-phases ,phases
+ (replace 'build
+ (lambda* (#:key outputs #:allow-other-keys)
+ ;; This test fails when run before installation.
+ (delete-file "tests/test_activate.py")
+
+ ;; Fix broken defaults
+ (substitute* "conda/base/context.py"
+ (("return sys.prefix")
+ (string-append "return \"" (assoc-ref outputs "out") "\""))
+ (("return (prefix_is_writable\\(self.root_prefix\\))" _ match)
+ (string-append "return False if self.root_prefix ==
self.conda_prefix else "
+ match)))
+
+ ;; The util/setup-testing.py is used to build conda in
+ ;; application form, rather than the default, library form.
+ ;; With this, we are able to run commands like `conda --help`
+ ;; directly on the command line
+ (zero? (system* "python" "utils/setup-testing.py" "build_py"))))
+ (replace 'install
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (target (string-append out "/lib/python"
+ ((@@ (guix build
python-build-system)
+ get-python-version)
+ (assoc-ref inputs "python"))
+ "/site-packages/")))
+ ;; The installer aborts if the target directory is not on
+ ;; PYTHONPATH.
+ (setenv "PYTHONPATH"
+ (string-append target ":" (getenv "PYTHONPATH")))
+
+ ;; And it aborts if the directory doesn't exist.
+ (mkdir-p target)
+ (zero? (system* "python" "utils/setup-testing.py" "install"
+ (string-append "--prefix=" out))))))))))
+ (description
+ "Conda is a cross-platform, Python-agnostic binary package manager. It
+is the package manager used by Anaconda installations, but it may be used for
+other systems as well. Conda makes environments first-class citizens, making
+it easy to create independent environments even for C libraries. Conda is
+written entirely in Python.")))