summary refs log tree commit diff
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)
downloadguix-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}.