[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH] gnu: Add Cython
From: |
Eric Bavier |
Subject: |
Re: [PATCH] gnu: Add Cython |
Date: |
Mon, 20 Oct 2014 16:15:25 -0500 |
User-agent: |
mu4e 0.9.9.5; emacs 23.3.1 |
Federico Beffa writes:
> In preparing this package I've found that the python-build-system (not
> sure about the others) defines the environment variable HOME as
> "/homeless-shelter". However, that directory does not exist in the
> build chroot. This is a problem for cython, because it wants to access
> $HOME/.cython. Wouldn't it be better to point HOME to an existing
> directory (created in the chroot) with suitable permissions?
It's not a common need when building packages. There are a few other
packages that need an existing, writable $HOME when building or testing.
> I'm a little bit unsure about the name of the package. I've not
> prefixed it with "python[2]-" as the program extends the Python
> language and can work with both (2 and 3) Python version series.
> However, the package installs files in
> ".../lib/python${version}/site-packages/...". The naming is in-line
> with Debian naming.
What you did seems reasonable to me.
> From b9e7cdb367518547be3d8bc535828a0d1f1ac96e Mon Sep 17 00:00:00 2001
> From: Federico Beffa <address@hidden>
> Date: Mon, 20 Oct 2014 19:52:45 +0200
> Subject: [PATCH] gnu: Add Cython
>
> * gnu/packages/python.scm(cython,cython2): New variables
Period "." at the end.
> ---
> gnu/packages/python.scm | 50
> +++++++++++++++++++++++++++++++++++++++++++++++++
> 1 file changed, 50 insertions(+)
>
> diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
> index 897e248..f8503c3 100644
> --- a/gnu/packages/python.scm
> +++ b/gnu/packages/python.scm
> @@ -37,6 +37,7 @@
> #:use-module (gnu packages pkg-config)
> #:use-module (gnu packages databases)
> #:use-module (gnu packages zip)
> + #:use-module (gnu packages gcc)
I don't see what prompts this new module. Leftover from development?
> (define-public python2-sphinx
> (package-with-python2 python-sphinx))
> +
> +(define-public cython
> + (package
> + (name "cython")
> + (version "0.21.1")
> + (source
> + (origin
> + (method url-fetch)
> + (uri (string-append
> + "http://cython.org/release/Cython-"
> + version ".tar.gz"))
The style in the rest of the file would dictate that the uri begin on
the same line as string-append.
> + (sha256
> + (base32
> + "0ddz2l2dvcy5hdkxx4xlfiwpccvwia7ixgcy4h0pdv46a4i4vxj3"))))
> + (build-system python-build-system)
> + (inputs
> + `(("python" ,python))) ; otherwise ld doesn't find libpython3.3m.so
> + (arguments
> + `(#:phases
> + (alist-replace
> + 'build
> + (lambda* (#:key outputs inputs
> + #:allow-other-keys #:rest args)
> + (let ((build (assoc-ref %standard-phases 'build)))
> + (setenv "HOME" "/tmp") ; some tests require access to
> "$HOME/.cython"
> + (apply build args)))
If $HOME is only required for tests only, please make the setenv a
separate phase that comes just before the check phase. See
e.g. duplicity or rdup in gnu/packages/backup.scm, or the definition of
python-2 itself. We try to avoid "wrapping" phases with (apply <phase>
args).
> + (alist-replace
> + 'check
> + (lambda _ (zero?
> + (system* "python"
> + "runtests.py"
> + "-vv")))
Nitpicky: the lambda could probably go on a single line
(e.g. python-parse or python-enum34).
> + %standard-phases))))
> + (home-page "http://cython.org/")
> + (synopsis "C extensions for Python")
> + (description "Cython is an optimising static compiler for both the Python
> +programming language and the extended Cython programming language. It makes
> +writing C extensions for Python as easy as Python itself.")
> + (license asl2.0)))
> +
> +(define-public cython2
> + (package
> + (inherit cython)
> + (name "cython2")
> + (build-system python-build-system)
> + (inputs
> + `(("python-2" ,python-2)))
> + (arguments
> + `(#:python ,python-2 ,@(package-arguments cython)))))
Does package-with-python2 not work here? You might be able to do::
(define-public cython2
(package (inherit (package-with-python2 cython))
(name "cython2")))
--
Eric Bavier