gnu: Add conda.
* gnu/packages/package-management.scm (conda): New variable. Co-authored-by: Ricardo Wurmus <rekado@elephly.net>
This commit is contained in:
parent
4bc08b6e79
commit
84fcb58050
|
@ -649,3 +649,52 @@ This package provides Conda as a library.")
|
||||||
|
|
||||||
(define-public python2-conda
|
(define-public python2-conda
|
||||||
(package-with-python2 python-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.")))
|
||||||
|
|
Loading…
Reference in New Issue