aboutsummaryrefslogtreecommitdiff
path: root/doc/guix.texi
diff options
context:
space:
mode:
authorHartmut Goebel <h.goebel@crazy-compilers.com>2016-11-29 19:06:27 +0100
committerHartmut Goebel <h.goebel@crazy-compilers.com>2016-11-29 19:06:27 +0100
commit03e856ddf5d28bc61144effb1a393b73cb4a2d9f (patch)
treef477e079cbdb4b274130e4fcb6c6a5acb781eedf /doc/guix.texi
parent072f1e22cc6b1708fddedd1ac7ab12827284a785 (diff)
parent80983df357856fe4e65e384a655e466164e049a1 (diff)
downloadpatches-03e856ddf5d28bc61144effb1a393b73cb4a2d9f.tar
patches-03e856ddf5d28bc61144effb1a393b73cb4a2d9f.tar.gz
Merge branch 'python-build-system'.
Diffstat (limited to 'doc/guix.texi')
-rw-r--r--doc/guix.texi15
1 files changed, 12 insertions, 3 deletions
diff --git a/doc/guix.texi b/doc/guix.texi
index 4677e5cf79..125e5f0d62 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -3220,6 +3220,11 @@ the @code{#:python} parameter. This is a useful way to force a package
to be built for a specific version of the Python interpreter, which
might be necessary if the package is only compatible with a single
interpreter version.
+
+By default guix calls @code{setup.py} under control of
+@code{setuptools}, much like @command{pip} does. Some packages are not
+compatible with setuptools (and pip), thus you can disable this by
+setting the @code{#:use-setuptools} parameter to @code{#f}.
@end defvr
@defvr {Scheme Variable} perl-build-system
@@ -13806,7 +13811,6 @@ for instance, the module python-dateutil is packaged under the names
starts with @code{py} (e.g. @code{pytz}), we keep it and prefix it as
described above.
-
@subsubsection Specifying Dependencies
@cindex inputs, for Python packages
@@ -13823,6 +13827,12 @@ following check list to determine which dependency goes where.
@itemize
@item
+We currently package Python 2 with @code{setuptools} and @code{pip}
+installed like Python 3.4 has per default. Thus you don't need to
+specify either of these as an input. @command{guix lint} will warn you
+if you do.
+
+@item
Python dependencies required at run time go into
@code{propagated-inputs}. They are typically defined with the
@code{install_requires} keyword in @file{setup.py}, or in the
@@ -13836,8 +13846,7 @@ testing---e.g., those in @code{tests_require}---go into
propagated because they are not needed at run time, and (2) in a
cross-compilation context, it's the ``native'' input that we'd want.
-Examples are @code{setuptools}, which is usually needed only at build
-time, or the @code{pytest}, @code{mock}, and @code{nose} test
+Examples are the @code{pytest}, @code{mock}, and @code{nose} test
frameworks. Of course if any of these packages is also required at
run-time, it needs to go to @code{propagated-inputs}.