Merge branch 'python-build-system'.

This commit is contained in:
Hartmut Goebel 2016-11-29 19:06:27 +01:00
commit 03e856ddf5
No known key found for this signature in database
GPG Key ID: 634A8DFFD3F631DF
42 changed files with 1044 additions and 1692 deletions

View File

@ -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
@ -13822,6 +13826,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
@ -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}.

View File

@ -820,6 +820,7 @@ dist_patch_DATA = \
%D%/packages/patches/pyqt-configure.patch \
%D%/packages/patches/python-2-deterministic-build-info.patch \
%D%/packages/patches/python-2.7-search-paths.patch \
%D%/packages/patches/python-2.7-site-prefixes.patch \
%D%/packages/patches/python-2.7-source-date-epoch.patch \
%D%/packages/patches/python-3-deterministic-build-info.patch \
%D%/packages/patches/python-3-search-paths.patch \

View File

@ -1332,8 +1332,6 @@ specified directories.")
(("/usr") out)
(("distro_ver = .*") "distro_ver = ''"))
#t))))))
(inputs
`(("python-setuptools" ,python2-setuptools)))
(home-page "https://github.com/shawn-sterling/graphios")
(synopsis "Emit Nagios metrics to Graphite, Statsd, and Librato")
(description
@ -1356,8 +1354,7 @@ of supported upstream metrics systems simultaneously.")
"1bfc2xiplpad6f2nwi48y0kps7xqnsll85dlz63cy8k5bysl6d20"))))
(build-system python-build-system)
(native-inputs
`(("python2-setuptools" ,python2-setuptools)
("python2-pycrypto" ,python2-pycrypto)
`(("python2-pycrypto" ,python2-pycrypto)
("python2-httplib2" ,python2-httplib2)
("python2-passlib" ,python2-passlib)
("python2-nose" ,python2-nose)
@ -1699,13 +1696,15 @@ throughput (in the same interval).")
(base32
"04q2cn8c83f6z6wn1scla1ilrpi5ssjc64987hvmwfvwvb82bvkp"))))
(build-system python-build-system)
(native-inputs
`(("python-setuptools" ,python-setuptools)))
(inputs
`(("python-colorama" ,python-colorama)
("python-decorator" ,python-decorator)
("python-psutil" ,python-psutil)
("python-six" ,python-six)))
(inputs
;; Requires setuptools >= 17.1 due to some features used, while our
;; python currently only includes 12.0. TODO: Remove this input.
`(("python-setuptools" ,python-setuptools)))
(home-page "https://github.com/nvbn/thefuck")
(synopsis "Correct mistyped console command")
(description

View File

@ -1493,9 +1493,10 @@ implementation of the Open Sound Control (OSC) protocol.")
"13vry6xhxm7adnbyj28w1kpwrh0kf7nw83cz1yq74wl21faz2rzw"))))
(build-system python-build-system)
(arguments `(#:tests? #f)) ;no tests
(native-inputs
`(("python-cython" ,python-cython)))
(inputs
`(("python-cython" ,python-cython)
("liblo" ,liblo)))
`(("liblo" ,liblo)))
(home-page "http://das.nasophon.de/pyliblo/")
(synopsis "Python bindings for liblo")
(description

View File

@ -66,8 +66,7 @@
"duplicity-test_selection-tmp.patch"))))
(build-system python-build-system)
(native-inputs
`(("python2-setuptools" ,python2-setuptools)
("util-linux" ,util-linux))) ;setsid command, for the tests
`(("util-linux" ,util-linux))) ;setsid command, for the tests
(inputs
`(("python" ,python-2)
("librsync" ,librsync)
@ -339,8 +338,6 @@ errors.")
(base32
"1nwmmh816f96h0ff1jxk95ad38ilbhbdl5dgibx1d4cl81dsi48d"))))
(build-system python-build-system)
(native-inputs
`(("python2-setuptools" ,python2-setuptools)))
(inputs
`(("python" ,python-2)
("librsync" ,librsync)))

View File

@ -216,8 +216,7 @@ structure of the predicted RNA.")
("libtool" ,libtool)
("zlib" ,zlib)
("python-nose" ,python2-nose)
("python-pysam" ,python2-pysam)
("python-setuptools" ,python2-setuptools)))
("python-pysam" ,python2-pysam)))
(inputs
`(("htslib" ,htslib)
("samtools" ,samtools)
@ -524,15 +523,14 @@ intended to behave exactly the same as the original BWK awk.")
(build-system python-build-system)
(arguments `(#:python ,python-2)) ; no Python 3 support
(inputs
`(("python-cython" ,python2-cython)
("python-matplotlib" ,python2-matplotlib)))
`(("python-matplotlib" ,python2-matplotlib)))
(propagated-inputs
`(("bedtools" ,bedtools)
("samtools" ,samtools)))
(native-inputs
`(("python-pyyaml" ,python2-pyyaml)
("python-nose" ,python2-nose)
("python-setuptools" ,python2-setuptools)))
`(("python-cython" ,python2-cython)
("python-pyyaml" ,python2-pyyaml)
("python-nose" ,python2-nose)))
(home-page "https://pythonhosted.org/pybedtools/")
(synopsis "Python wrapper for BEDtools programs")
(description
@ -587,9 +585,7 @@ e.g. microbiome samples, genomes, metagenomes.")
(substitute* "setup.py"
(("install_requires.append\\(\"pyqi\"\\)") "pass"))
#t)))
,@(package-arguments base)))
(native-inputs `(("python2-setuptools" ,python2-setuptools)
,@(package-native-inputs base))))))
,@(package-arguments base))))))
(define-public bioperl-minimal
(let* ((inputs `(("perl-module-build" ,perl-module-build)
@ -674,7 +670,7 @@ provide a coordinated and extensible framework to do computational biology.")
(add-before 'check 'set-home
;; Some tests require a home directory to be set.
(lambda _ (setenv "HOME" "/tmp") #t)))))
(inputs
(propagated-inputs
`(("python-numpy" ,python-numpy)))
(home-page "http://biopython.org/")
(synopsis "Tools for biological computation in Python")
@ -685,15 +681,10 @@ bioinformatics programs; a standard sequence class and tools for performing
common operations on them; code to perform data classification; code for
dealing with alignments; code making it easy to split up parallelizable tasks
into separate processes; and more.")
(license (license:non-copyleft "http://www.biopython.org/DIST/LICENSE"))
(properties `((python2-variant . ,(delay python2-biopython))))))
(license (license:non-copyleft "http://www.biopython.org/DIST/LICENSE"))))
(define-public python2-biopython
(let ((base (package-with-python2 (strip-python2-variant python-biopython))))
(package
(inherit base)
(native-inputs `(("python2-setuptools" ,python2-setuptools)
,@(package-native-inputs base))))))
(package-with-python2 python-biopython))
;; An outdated version of biopython is required for seqmagick, see
;; https://github.com/fhcrc/seqmagick/issues/59
@ -1340,8 +1331,7 @@ well as many of the command line options.")
`(("python-numpy" ,python2-numpy)
("zlib" ,zlib)))
(native-inputs
`(("python-nose" ,python2-nose)
("python-setuptools" ,python2-setuptools)))
`(("python-nose" ,python2-nose)))
(home-page "http://bitbucket.org/james_taylor/bx-python/")
(synopsis "Tools for manipulating biological data")
(description
@ -1405,7 +1395,6 @@ multiple sequence alignments.")
("zlib" ,zlib)))
(native-inputs
`(("python-cython" ,python-cython)
("python-setuptools" ,python-setuptools)
;; Dependencies below are are for tests only.
("samtools" ,samtools)
("bcftools" ,bcftools)
@ -1431,7 +1420,6 @@ also includes an interface for tabix.")
(sha256
(base32
"1q8wnj2kga9nz1lwc4w7qv52smfm536hp6mc8w6s53lhyj0mpi22"))))
(properties `((python2-variant . ,(delay python2-twobitreader))))
(build-system python-build-system)
(arguments
'(;; Tests are not distributed in the PyPi release.
@ -1448,11 +1436,7 @@ UCSC genome browser.")
(license license:artistic2.0)))
(define-public python2-twobitreader
(let ((base (package-with-python2 (strip-python2-variant python-twobitreader))))
(package
(inherit base)
(native-inputs `(("python2-setuptools" ,python2-setuptools)
,@(package-native-inputs base))))))
(package-with-python2 python-twobitreader))
(define-public python-plastid
(package
@ -1464,7 +1448,6 @@ UCSC genome browser.")
(sha256
(base32
"1sqkz5d3b9kf688mp7k771c87ins42j7j0whmkb49cb3fsg8s8lj"))))
(properties `((python2-variant . ,(delay python2-plastid))))
(build-system python-build-system)
(arguments
;; Some test files are not included.
@ -1489,12 +1472,7 @@ high-throughput sequencing data with an emphasis on simplicity.")
(license license:bsd-3)))
(define-public python2-plastid
(let ((base (package-with-python2 (strip-python2-variant python-plastid))))
(package
(inherit base)
;; setuptools is required at runtime
(propagated-inputs `(("python2-setuptools" ,python2-setuptools)
,@(package-propagated-inputs base))))))
(package-with-python2 python-plastid))
(define-public cd-hit
(package
@ -1581,9 +1559,8 @@ databases.")
("python-numpy" ,python2-numpy)
("python-scipy" ,python2-scipy)))
(native-inputs
`(("python-mock" ,python2-mock) ; for tests
("python-pytz" ,python2-pytz) ; for tests
("python-setuptools" ,python2-setuptools)))
`(("python-mock" ,python2-mock) ; for tests
("python-pytz" ,python2-pytz))) ; for tests
(home-page "https://github.com/YeoLab/clipper")
(synopsis "CLIP peak enrichment recognition")
(description
@ -1756,8 +1733,7 @@ time.")
("zlib" ,zlib)))
(native-inputs
`(("python-cython" ,python2-cython)
("python-nose" ,python2-nose)
("python-setuptools" ,python2-setuptools)))
("python-nose" ,python2-nose)))
(home-page "http://crossmap.sourceforge.net/")
(synopsis "Convert genome coordinates between assemblies")
(description
@ -1855,8 +1831,7 @@ preparation protocols.")
(alist-delete 'check %standard-phases))))
(native-inputs
`(("python-cython" ,python-cython)
("python-nose" ,python-nose)
("python-setuptools" ,python-setuptools)))
("python-nose" ,python-nose)))
(home-page "https://code.google.com/p/cutadapt/")
(synopsis "Remove adapter sequences from nucleotide sequencing reads")
(description
@ -1946,10 +1921,7 @@ accessing bigWig files.")
(license license:expat)))
(define-public python2-pybigwig
(let ((pybigwig (package-with-python2 python-pybigwig)))
(package (inherit pybigwig)
(native-inputs
`(("python-setuptools" ,python2-setuptools))))))
(package-with-python2 python-pybigwig))
(define-public python-dendropy
(package
@ -1998,8 +1970,7 @@ trees (phylogenies) and characters.")
;; There is currently a test failure that only happens on some
;; systems, and only using "setup.py test"
(lambda _ (zero? (system* "nosetests")))))))
(native-inputs `(("python2-setuptools" ,python2-setuptools)
("python2-nose" ,python2-nose)
(native-inputs `(("python2-nose" ,python2-nose)
,@(package-native-inputs base))))))
@ -2027,9 +1998,8 @@ trees (phylogenies) and characters.")
("python-pysam" ,python2-pysam)
("python-pybigwig" ,python2-pybigwig)))
(native-inputs
`(("python-mock" ,python2-mock) ;for tests
("python-pytz" ,python2-pytz) ;for tests
("python-setuptools" ,python2-setuptools)))
`(("python-mock" ,python2-mock) ;for tests
("python-pytz" ,python2-pytz))) ;for tests
(home-page "https://github.com/fidelram/deepTools")
(synopsis "Tools for normalizing and visualizing deep-sequencing data")
(description
@ -2684,8 +2654,7 @@ comment or quality sections.")
("python-pysam" ,python2-pysam)
("python-networkx" ,python2-networkx)))
(native-inputs
`(("python-cython" ,python2-cython)
("python-setuptools" ,python2-setuptools)))
`(("python-cython" ,python2-cython)))
(home-page "http://grit-bio.org")
(synopsis "Tool for integrative analysis of RNA-seq type assays")
(description
@ -2811,8 +2780,6 @@ HMMs).")
`(("python-numpy" ,python2-numpy)))
(inputs
`(("python-pysam" ,python2-pysam)))
(native-inputs
`(("python-setuptools" ,python2-setuptools)))
(home-page "http://www-huber.embl.de/users/anders/HTSeq/")
(synopsis "Analysing high-throughput sequencing data with Python")
(description
@ -2933,8 +2900,7 @@ data. It also provides the bgzip, htsfile, and tabix utilities.")
("python-numpy" ,python-numpy)
("python-matplotlib" ,python-matplotlib)))
(native-inputs
`(("python-cython" ,python-cython)
("python-setuptools" ,python-setuptools)))
`(("python-cython" ,python-cython)))
(home-page "https://github.com/nboley/idr")
(synopsis "Tool to measure the irreproducible discovery rate (IDR)")
(description
@ -3091,8 +3057,6 @@ data.")
#:tests? #f)) ; no test target
(inputs
`(("python-numpy" ,python2-numpy)))
(native-inputs
`(("python-setuptools" ,python2-setuptools)))
(home-page "http://github.com/taoliu/MACS/")
(synopsis "Model based analysis for ChIP-Seq data")
(description
@ -3424,9 +3388,8 @@ linker_so='gcc -shared'); defines")))))
("python-scipy" ,python2-scipy)
("python-matplotlib" ,python2-matplotlib)))
(native-inputs
`(("python-mock" ,python2-mock) ;for tests
("python-pytz" ,python2-pytz) ;for tests
("python-setuptools" ,python2-setuptools)))
`(("python-mock" ,python2-mock) ;for tests
("python-pytz" ,python2-pytz))) ;for tests
(home-page "http://genes.mit.edu/burgelab/miso/index.html")
(synopsis "Mixture of Isoforms model for RNA-Seq isoform quantitation")
(description
@ -3549,18 +3512,15 @@ interrupted by stop codons. OrfM finds and prints these ORFs.")
"1kjmv891d6qbpp4shhhvkl02ff4q5xlpnls2513sm2cjcrs52f1i"))))
(build-system python-build-system)
(arguments `(#:python ,python-2)) ; pbcore requires Python 2.7
(inputs
(propagated-inputs
`(("python-cython" ,python2-cython)
("python-numpy" ,python2-numpy)
("python-pysam" ,python2-pysam)
("python-h5py" ,python2-h5py)))
(native-inputs
`(("python-docutils" ,python2-docutils)
("python-nose" ,python2-nose)
("python-setuptools" ,python2-setuptools)
("python-sphinx" ,python2-sphinx)))
(propagated-inputs
`(("python-pyxb" ,python2-pyxb)))
`(("python-nose" ,python2-nose)
("python-sphinx" ,python2-sphinx)
("python-pyxb" ,python2-pyxb)))
(home-page "http://pacificbiosciences.github.io/pbcore/")
(synopsis "Library for reading and writing PacBio data files")
(description
@ -3583,18 +3543,7 @@ files and writing bioinformatics applications.")
"1agfz6zqa8nc6cw47yh0s3y14gkpa9wqazwcj7mwwj3ffnw39p3j"))))
(build-system python-build-system)
(arguments
`(#:python ,python-2 ; requires Python 2.7
#:phases
(modify-phases %standard-phases
(add-after
'install 'remove-bin-directory
(lambda* (#:key outputs #:allow-other-keys)
;; The "bin" directory only contains wrappers for running
;; the module tests. They are not needed after the
;; "check" phase.
(delete-file-recursively
(string-append (assoc-ref outputs "out") "/bin"))
#t)))))
`(#:python ,python-2)) ; requires Python 2.7
(propagated-inputs
`(("python-scipy" ,python2-scipy)
("python-numpy" ,python2-numpy)
@ -3603,8 +3552,7 @@ files and writing bioinformatics applications.")
("python-pandas" ,python2-pandas)
("python-pysnptools" ,python2-pysnptools)))
(native-inputs
`(("python-setuptools" ,python2-setuptools)
("python-mock" ,python2-mock)
`(("python-mock" ,python2-mock)
("python-nose" ,python2-nose)
("unzip" ,unzip)))
(home-page "https://github.com/PMBio/warpedLMM")
@ -3638,11 +3586,6 @@ the phenotype as it models the data.")
(build-system python-build-system)
(arguments
`(#:python ,python-2
;; With standard flags, the install phase attempts to create a zip'd
;; egg file, and fails with an error: 'ZIP does not support timestamps
;; before 1980'
#:configure-flags '("--single-version-externally-managed"
"--record=pbtranscript-tofu.txt")
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'enter-directory
@ -3666,8 +3609,7 @@ the phenotype as it models the data.")
("python-h5py" ,python2-h5py)))
(native-inputs
`(("python-cython" ,python2-cython)
("python-nose" ,python2-nose)
("python-setuptools" ,python2-setuptools)))
("python-nose" ,python2-nose)))
(home-page "https://github.com/PacificBiosciences/cDNA_primer")
(synopsis "Analyze transcriptome data generated with the Iso-Seq protocol")
(description
@ -4116,7 +4058,6 @@ BAM and Wiggle files in both transcript-coordinate and genomic-coordinate.")
`(("python-cython" ,python2-cython)
("python-pysam" ,python2-pysam)
("python-numpy" ,python2-numpy)
("python-setuptools" ,python2-setuptools)
("zlib" ,zlib)))
(native-inputs
`(("python-nose" ,python2-nose)))
@ -4678,11 +4619,7 @@ sequence itself can be retrieved from these databases.")
(license license:bsd-3)))
(define-public python2-screed
(let ((base (package-with-python2 (strip-python2-variant python-screed))))
(package
(inherit base)
(native-inputs `(("python2-setuptools" ,python2-setuptools)
,@(package-native-inputs base))))))
(package-with-python2 python-screed))
(define-public sra-tools
(package
@ -4844,8 +4781,7 @@ bioinformatics file formats, sequence alignment, and more.")
;; should be removed.
`(("python-biopython" ,python2-biopython-1.66)))
(native-inputs
`(("python-setuptools" ,python2-setuptools)
("python-nose" ,python2-nose)))
`(("python-nose" ,python2-nose)))
(home-page "http://github.com/fhcrc/seqmagick")
(synopsis "Tools for converting and modifying sequence files")
(description
@ -7865,19 +7801,7 @@ may optionally be provided to further inform the peak-calling process.")
(build-system python-build-system)
(arguments
`(#:python ,python-2 ; python2 only
#:tests? #f ; no tests included
#:phases
(modify-phases %standard-phases
;; When setuptools is used a ".egg" archive is generated and
;; installed. This makes it hard to actually run PePr. This issue
;; has been reported upstream:
;; https://github.com/shawnzhangyx/PePr/issues/9
(add-after 'unpack 'disable-egg-generation
(lambda _
(substitute* "setup.py"
(("from setuptools import setup")
"from distutils.core import setup"))
#t)))))
#:tests? #f)) ; no tests included
(propagated-inputs
`(("python2-numpy" ,python2-numpy)
("python2-scipy" ,python2-scipy)
@ -7939,8 +7863,6 @@ replacement for strverscmp.")
("python-click" ,python-click)
("python-matplotlib" ,python-matplotlib)
("python-numpy" ,python-numpy)))
(native-inputs
`(("python-setuptools" ,python-setuptools)))
(home-page "http://multiqc.info")
(synopsis "Aggregate bioinformatics analysis reports")
(description

View File

@ -96,10 +96,9 @@ data units.")
`(#:phases (modify-phases %standard-phases
;; Building the manpage requires khal to be installed.
(add-after 'install 'manpage
(lambda* (#:key outputs #:allow-other-keys)
(setenv "PYTHONPATH"
(string-append
(getenv "PYTHONPATH") ":" (assoc-ref outputs "out")))
(lambda* (#:key inputs outputs #:allow-other-keys)
;; Make installed package available for running the tests
(add-installed-pythonpath inputs outputs)
(zero? (system* "make" "--directory=doc/" "man"))
(install-file
"doc/build/man/khal.1"

View File

@ -73,11 +73,8 @@ clients.")
;; vdirsyncer requires itself to be installed in order to build
;; the manpage.
(add-after 'install 'manpage
(lambda* (#:key outputs #:allow-other-keys)
(setenv "PYTHONPATH"
(string-append
(getenv "PYTHONPATH")
":" (assoc-ref outputs "out")))
(lambda* (#:key inputs outputs #:allow-other-keys)
(add-installed-pythonpath inputs outputs)
(zero? (system* "make" "--directory=docs/" "man"))
(install-file
"docs/_build/man/vdirsyncer.1"

View File

@ -54,10 +54,6 @@
(string-append ".:" (getenv "PYTHONPATH")))
(zero? (system* "python" "tests/runtests.py")))))))
;; TODO: Install extras/django_bash_completion.
(propagated-inputs
;; Django uses 'pkg_resources' (part of setuptools) to locate templates
;; at run-time.
`(("python-setuptools" ,python-setuptools)))
(native-inputs
`(("tzdata", tzdata)
;; bcrypt and argon2-cffi are extra requirements not yet in guix
@ -112,8 +108,6 @@ to the @dfn{don't repeat yourself} (DRY) principle.")
(build-system python-build-system)
(propagated-inputs
`(("python-django" ,python-django)))
(native-inputs
`(("python-setuptools" ,python-setuptools)))
(home-page "https://github.com/alsoicode/django-simple-math-captcha")
(synopsis "Easy-to-use math field/widget captcha for Django forms")
(description
@ -147,23 +141,16 @@ with arguments to the field constructor.")
(native-inputs
`(("python-django" ,python-django)
("python-setuptools-scm" ,python-setuptools-scm)))
(inputs
`(("python-py" ,python-py)
("python-pytest" ,python-pytest)))
(propagated-inputs
`(("python-pytest" ,python-pytest)))
(home-page "http://pytest-django.readthedocs.org/")
(synopsis "Django plugin for py.test")
(description "Pytest-django is a plugin for py.test that provides a set of
useful tools for testing Django applications and projects.")
(properties `((python2-variant . ,(delay python2-pytest-django))))
(license license:bsd-3)))
(define-public python2-pytest-django
(let ((base (package-with-python2
(strip-python2-variant python-pytest-django))))
(package (inherit base)
(native-inputs
`(("python2-setuptools" ,python2-setuptools)
,@(package-native-inputs base))))))
(package-with-python2 python-pytest-django))
(define-public python-django-filter
(package
@ -186,13 +173,7 @@ useful tools for testing Django applications and projects.")
some of the more mundane bits of view code. Specifically, it allows users to
filter down a queryset based on a models fields, displaying the form to let
them do this.")
(properties `((python2-variant . ,(delay python2-django-filter))))
(license license:bsd-3)))
(define-public python2-django-filter
(let ((base (package-with-python2
(strip-python2-variant python-django-filter))))
(package (inherit base)
(native-inputs
`(("python2-setuptools" ,python2-setuptools)
,@(package-native-inputs base))))))
(package-with-python2 python-django-filter))

View File

@ -185,8 +185,7 @@ by no means limited to these applications.) This package provides XML DTDs.")
(build-system python-build-system)
;; TODO: Add xfig/transfig for fig2dev utility
(inputs
`(("python-setuptools" ,python-setuptools)
("texlive" ,texlive)
`(("texlive" ,texlive)
("imagemagick" ,imagemagick) ;for convert
("inkscape" ,inkscape) ;for svg conversion
("docbook" ,docbook-xml)

View File

@ -42,7 +42,6 @@
(arguments '(#:tests? #f))
(inputs
`(("python-requests" ,python-requests)
("python-setuptools" ,python-setuptools)
("python-six" ,python-six)
("python-websocket-client" ,python-websocket-client)))
(home-page "https://github.com/docker/docker-py/")
@ -93,7 +92,6 @@ client.")
("python-jsonschema" ,python-jsonschema)
("python-pyyaml" ,python-pyyaml)
("python-requests" ,python-requests-2.7)
("python-setuptools" ,python-setuptools)
("python-six" ,python-six)
("python-texttable" ,python-texttable)
("python-websocket-client" ,python-websocket-client)))

View File

@ -256,8 +256,7 @@ of a the system to know what users are logged in, and where.")
(native-inputs
`(("shared-mime-info" ,shared-mime-info) ;for tests
("hicolor-icon-theme" ,hicolor-icon-theme) ;for tests
("python-nose" ,python-nose)
("python-setuptools" ,python-setuptools)))
("python-nose" ,python-nose)))
(home-page "http://freedesktop.org/wiki/Software/pyxdg")
(synopsis "Implementations of freedesktop.org standards in Python")
(description

View File

@ -591,8 +591,6 @@ interface (API).")
(string-append v4l-ref "/include/libv4l1-videodev.h")
"linux/videodev.h")
(system* "ln" "--symbolic" "Setup.in" "Setup")))))))
(native-inputs
`(("python-setuptools" ,python-setuptools)))
(inputs
`(("sdl" ,sdl)
("sdl-image" ,sdl-image)

View File

@ -414,12 +414,7 @@ decrypt messages using the OpenPGP format by making use of GPGME.")
(license license:lgpl2.1+)))
(define-public python2-pygpgme
(let ((base (package-with-python2 python-pygpgme)))
(package
(inherit base)
(native-inputs
`(("python2-setuptools" ,python2-setuptools)
,@(package-native-inputs base))))))
(package-with-python2 python-pygpgme))
(define-public python-gnupg
(package

View File

@ -42,8 +42,6 @@
(arguments
`(#:python ,python-2 ;uses the Python 2 'print' syntax
#:tests? #f)) ;no tests
(native-inputs
`(("python2-setuptools" ,python2-setuptools)))
(inputs
`(("python2-xlib" ,python2-xlib)
("python2-pygtk" ,python2-pygtk)

View File

@ -134,5 +134,4 @@ on just one button press.")
(lambda _
(zero? (system* "make" "py2")))))))
(native-inputs
`(("python2-setuptools" ,python2-setuptools)
("python2-cython" ,python2-cython))))))
`(("python2-cython" ,python2-cython))))))

View File

@ -1376,8 +1376,6 @@ maintained.")
(let* ((out (assoc-ref outputs "out"))
(doc (string-append out "/share/doc/khard")))
(copy-recursively "misc/khard" doc)))))))
(native-inputs
`(("python2-setuptools" ,python2-setuptools)))
(propagated-inputs
`(("python2-vobject" ,python2-vobject)
("python2-pyyaml" ,python2-pyyaml)
@ -1748,7 +1746,7 @@ for OpenSMTPD to extend its functionality.")
(build-system python-build-system)
(arguments
`(#:tests? #f)) ; Requires mailman running
(inputs
(propagated-inputs
`(("python-six" ,python-six)
("python-httplib2" ,python-httplib2)))
(home-page "https://launchpad.net/mailman.client")
@ -1756,12 +1754,7 @@ for OpenSMTPD to extend its functionality.")
(description
"The mailmanclient library provides official Python bindings for
the GNU Mailman 3 REST API.")
(properties `((python2-variant . ,(delay python2-mailmanclient))))
(license lgpl3+)))
(define-public python2-mailmanclient
(let ((base (package-with-python2
(strip-python2-variant python-mailmanclient))))
(package (inherit base)
(native-inputs
`(("python2-setuptools" ,python2-setuptools))))))
(package-with-python2 python-mailmanclient))

View File

@ -471,8 +471,7 @@ compression format (.mpc files).")
(arguments
`(#:python ,python-2))
(native-inputs
`(("python2-setuptools" ,python2-setuptools)
("python2-nose" ,python2-nose)
`(("python2-nose" ,python2-nose)
("python2-sphinx" ,python2-sphinx)
("python2-coverage" ,python2-coverage)))
(synopsis "MP3 tag ID3 metadata editor")

View File

@ -257,15 +257,10 @@ information about tracks being played to a scrobbler, such as Libre.FM.")
(synopsis "Python MPD client library")
(description "Python-mpd2 is a Python library which provides a client
interface for the Music Player Daemon.")
(license license:lgpl3+)
(properties `((python2-variant . ,(delay python2-mpd2))))))
(license license:lgpl3+)))
(define-public python2-mpd2
(let ((mpd2 (package-with-python2
(strip-python2-variant python-mpd2))))
(package (inherit mpd2)
(native-inputs `(("python2-setuptools" ,python2-setuptools)
,@(package-native-inputs mpd2))))))
(package-with-python2 python-mpd2))
(define-public sonata
(package

View File

@ -1113,7 +1113,6 @@ Laurens Hammond and Don Leslie.")
`(("rapicorn" ,rapicorn)
("guile" ,guile-1.8)
("python" ,python-2)
("cython" ,python2-cython)
("libgnomecanvas" ,libgnomecanvas)
("libogg" ,libogg)
("libmad" ,libmad)
@ -1124,6 +1123,7 @@ Laurens Hammond and Don Leslie.")
(native-inputs
`(("pkg-config" ,pkg-config)
("glib:bin" ,glib "bin")
("cython" ,python2-cython)
("perl" ,perl)
("perl-xml-parser" ,perl-xml-parser)))
(home-page "https://testbit.eu/wiki/Beast_Home")
@ -1405,10 +1405,10 @@ using a system-independent interface.")
#t)))))
(inputs
`(("portmidi" ,portmidi)
("alsa-lib" ,alsa-lib)
("python-cython" ,python-cython)))
("alsa-lib" ,alsa-lib)))
(native-inputs
`(("unzip" ,unzip)))
`(("python-cython" ,python-cython)
("unzip" ,unzip)))
(home-page "http://portmedia.sourceforge.net/portmidi/")
(synopsis "Python bindings to PortMidi")
(description
@ -1884,7 +1884,6 @@ MusicBrainz database.")
`(;; Python 3 is not supported:
;; https://github.com/echonest/pyechonest/issues/42
#:python ,python-2))
(native-inputs `(("python2-setuptools" ,python2-setuptools)))
(home-page "https://github.com/echonest/pyechonest")
(synopsis "Python interface to The Echo Nest APIs")
(description "Pyechonest is a Python library for the Echo Nest API. With
@ -1927,16 +1926,10 @@ detailed track info including timbre, pitch, rhythm and loudness information.
(synopsis "Python interface to Last.fm and Libre.fm")
(description "A Python interface to Last.fm and other API-compatible
websites such as Libre.fm.")
(license license:asl2.0)
(properties `((python2-variant . ,(delay python2-pylast))))))
(license license:asl2.0)))
(define-public python2-pylast
(let ((pylast (package-with-python2
(strip-python2-variant python-pylast))))
(package (inherit pylast)
(native-inputs
`(("python2-setuptools" ,python2-setuptools)
,@(package-native-inputs pylast))))))
(package-with-python2 python-pylast))
(define-public beets
(package
@ -1964,7 +1957,6 @@ websites such as Libre.fm.")
(native-inputs
`(("python2-beautifulsoup4" ,python2-beautifulsoup4)
("python2-flask" ,python2-flask)
("python2-setuptools" ,python2-setuptools)
("python2-mock" ,python2-mock)
("python2-mpd2" ,python2-mpd2)
("python2-nose" ,python2-nose)
@ -2479,13 +2471,7 @@ you to query the Discogs database for information on artists, releases, labels,
users, Marketplace listings, and more. It also supports OAuth 1.0a
authorization, which allows you to change user data such as profile information,
collections and wantlists, inventory, and orders.")
(license license:bsd-2)
(properties `((python2-variant . ,(delay python2-discogs-client))))))
(license license:bsd-2)))
(define-public python2-discogs-client
(let ((base (package-with-python2
(strip-python2-variant python-discogs-client))))
(package (inherit base)
(native-inputs
`(("python2-setuptools" ,python2-setuptools)
,@(package-native-inputs base))))))
(package-with-python2 python-discogs-client))

View File

@ -52,11 +52,7 @@
`(("pygtk" ,python2-pygtk)
("sqlalchemy" ,python2-sqlalchemy)
("python-pillow" ,python2-pillow)
("elib.intl" ,python2-elib.intl)
;; XXX: This really isn't an input for gourmet but of pillow. Making
;; it a propagated input in pillow doesn't seem to get its site path
;; into gourmet's wrapper's PYTHONPATH however...
("python-setuptools" ,python2-setuptools)))
("elib.intl" ,python2-elib.intl)))
(arguments
`(#:python ,python-2 ;exception and print syntax
#:tests? #f)) ;tests look bitrotted

View File

@ -49,9 +49,8 @@
("python-pyyaml" ,python-pyyaml)
("python-six" ,python-six)
("python-stevedore" ,python-stevedore)))
(inputs
(native-inputs
`(("python-pbr" ,python-pbr)
("python-setuptools" ,python-setuptools)
;; Tests
("python-fixtures" ,python-fixtures)
("python-mock" ,python-mock)
@ -85,10 +84,9 @@ all the files it generates a report.")
(propagated-inputs
`(("python-six" ,python-six)
("python-wrapt" ,python-wrapt)))
(inputs
(native-inputs
`(("python-babel" ,python-babel)
("python-pbr" ,python-pbr)
("python-setuptools" ,python-setuptools)
;; Tests.
("python-oslotest" ,python-oslotest)))
(home-page "http://www.openstack.org/")
@ -122,9 +120,8 @@ manner.")
("python-pep8-1.5.7" ,python-pep8-1.5.7)
("python-pyflakes-0.8.1" ,python-pyflakes-0.8.1)
("python-six" ,python-six)))
(inputs
`(("python-setuptools" ,python-setuptools)
;; Tests
(native-inputs
`(;; Tests
("python-testscenarios" ,python-testscenarios)))
(home-page "http://github.com/openstack-dev/hacking")
(synopsis "OpenStack hacking guideline enforcement")
@ -152,8 +149,6 @@ guidelines}.")
(native-inputs
`(("python-fixtures" ,python-fixtures)
("python-pbr" ,python-pbr)
("python-setuptools" ,python-setuptools)
("python-six" ,python-six)
("python-testtools" ,python-testtools)))
(home-page "http://www.openstack.org/")
(synopsis "Mock object framework for Python")
@ -181,14 +176,14 @@ tested on Python version 3.2, 2.7 and 2.6.")
(build-system python-build-system)
(arguments
`(#:tests? #f)) ;; Circular dependency with python-oslotest
(inputs
(propagated-inputs
`(("python-appdirs" ,python-appdirs)
("python-pyyaml" ,python-pyyaml)))
(native-inputs
`(("python-pbr" ,python-pbr)
("python-fixtures" ,python-fixtures)
("python-mimeparse" ,python-mimeparse)
("python-pbr" ,python-pbr)
("python-pyyaml" ,python-pyyaml)
("python-testrepository" ,python-testrepository)
("python-setuptools" ,python-setuptools)
("python-testscenarios" ,python-testscenarios)
("python-testtools" ,python-testtools)))
(home-page "http://www.openstack.org/")
@ -221,12 +216,11 @@ tested on Python version 3.2, 2.7 and 2.6.")
;; when building the package. Skip the tests for now.
`(#:tests? #f))
(propagated-inputs
`(("python-subunit" ,python-subunit)))
(native-inputs
`(("python-pbr" ,python-pbr)
("python-subunit" ,python-subunit)
("python-testtools" ,python-testtools)))
(inputs
`(("python-babel" ,python-babel)
("python-setuptools" ,python-setuptools)))
("python-testtools" ,python-testtools)
("python-babel" ,python-babel)))
(home-page "https://www.openstack.org/")
(synopsis "Testr wrapper to provide functionality for OpenStack projects")
(description
@ -252,10 +246,9 @@ tested on Python version 3.2, 2.7 and 2.6.")
(propagated-inputs
`(("python-requests" ,python-requests)
("python-six" ,python-six)))
(inputs
`(("python-pbr" ,python-pbr)))
(native-inputs
`(("python-discover" ,python-discover)
`(("python-pbr" ,python-pbr)
("python-discover" ,python-discover)
("python-docutils" ,python-docutils)
("python-fixtures" ,python-fixtures)
("python-mock" ,python-mock)
@ -267,16 +260,10 @@ tested on Python version 3.2, 2.7 and 2.6.")
(description
"This module provides a building block to stub out the HTTP requests
portions of your testing code.")
(license asl2.0)
(properties `((python2-variant . ,(delay python2-requests-mock))))))
(license asl2.0)))
(define-public python2-requests-mock
(let ((base (package-with-python2
(strip-python2-variant python-requests-mock))))
(package (inherit base)
(native-inputs
`(("python2-setuptools" ,python2-setuptools)
,@(package-native-inputs base))))))
(package-with-python2 python-requests-mock))
(define-public python-stevedore
(package
@ -292,10 +279,8 @@ portions of your testing code.")
(build-system python-build-system)
(propagated-inputs
`(("python-six" ,python-six)))
(inputs
`(("python-pbr" ,python-pbr)))
(native-inputs
`(("python-setuptools" ,python-setuptools)
`(("python-pbr" ,python-pbr)
;; Tests
("python-docutils" ,python-docutils)
("python-mock" ,python-mock)
@ -346,12 +331,11 @@ extensions.")
("python-paramiko" ,python-paramiko)
("python-pbr" ,python-pbr)
("python-six" ,python-six)))
(inputs
(native-inputs
`(("python-babel" ,python-babel)
("python-mock" ,python-mock)
("python-os-testr" ,python-os-testr)
("python-oslotest" ,python-oslotest)
("python-setuptools" ,python-setuptools)))
("python-oslotest" ,python-oslotest)))
(home-page "https://www.openstack.org/")
(synopsis "OpenStack functional testing library")
(description
@ -382,9 +366,8 @@ common features used in Tempest.")
`(("python-netaddr" ,python-netaddr)
("python-six" ,python-six)
("python-stevedore" ,python-stevedore)))
(inputs
(native-inputs
`(("python-pbr" ,python-pbr)
("python-setuptools" ,python-setuptools)
;; Tests
("python-oslo.i18n" ,python-oslo.i18n)
("python-mock" ,python-mock)
@ -412,10 +395,9 @@ common features used in Tempest.")
(base32
"0kvha0rs9295njyl2z6n6zm5dapi5mrl5zwjm0m6ldqrvccyf8c3"))))
(build-system python-build-system)
(inputs
(native-inputs
`(("python-babel" ,python-babel)
("python-pbr" ,python-pbr)
("python-setuptools" ,python-setuptools)
;; Tests.
("python-oslotest" ,python-oslotest)))
(home-page "http://launchpad.net/oslo")
@ -444,9 +426,8 @@ pipeline and used by various modules such as logging.")
(propagated-inputs
`(("python-babel" ,python-babel)
("python-six" ,python-six)))
(inputs
(native-inputs
`(("python-pbr" ,python-pbr)
("python-setuptools" ,python-setuptools)
;; Tests
("python-mock" ,python-mock)
("python-mox3" ,python-mox3)
@ -486,13 +467,12 @@ in an application or library.")
("python-oslo.utils" ,python-oslo.utils)
("python-oslo.serialization" ,python-oslo.serialization)
("python-six" ,python-six)))
(inputs
(native-inputs
`(("python-babel" ,python-babel)
("python-iso8601" ,python-iso8601)
("python-mock" ,python-mock)
("python-oslotest" ,python-oslotest)
("python-pbr" ,python-pbr)
("python-setuptools" ,python-setuptools)))
("python-pbr" ,python-pbr)))
(home-page "http://launchpad.net/oslo")
(synopsis "Python logging library of the Oslo project")
(description
@ -523,10 +503,9 @@ handlers and support for context specific logging (like resource ids etc).")
("python-simplejson" ,python-simplejson)
("python-six" ,python-six)
("python-pytz" ,python-pytz)))
(inputs
(native-inputs
`(("python-babel" ,python-babel)
("python-pbr" ,python-pbr)
("python-setuptools" ,python-setuptools)
;; Tests.
("python-mock" ,python-mock)
("python-oslo.i18n" ,python-oslo.i18n)
@ -555,11 +534,10 @@ in transmittable and storable formats, such as JSON and MessagePack.")
(build-system python-build-system)
(propagated-inputs
`(("python-requests" ,python-requests)))
(inputs
(native-inputs
`(("python-pbr" ,python-pbr)
("python-docutils" ,python-docutils)
("python-hacking" ,python-hacking)
("python-setuptools" ,python-setuptools)
("python-sphinx" ,python-sphinx)))
(home-page "http://www.openstack.org/")
(synopsis "OpenStack sphinx extensions and theme")
@ -591,10 +569,9 @@ from the OpenStack project.")
("python-mock" ,python-mock)
("python-mox3" ,python-mox3)
("python-six" ,python-six)))
(inputs
(native-inputs
`(("python-pbr" ,python-pbr)
("python-os-client-config" ,python-os-client-config)
("python-setuptools" ,python-setuptools)
("python-subunit" ,python-subunit)
("python-testrepository" ,python-testrepository)
("python-testscenarios" ,python-testscenarios)
@ -635,10 +612,9 @@ and better support for mocking results.")
("python-netifaces" ,python-netifaces)
("python-pytz" ,python-pytz)
("python-six" ,python-six)))
(inputs
(native-inputs
`(("python-babel" ,python-babel)
("python-pbr" ,python-pbr)
("python-setuptools" ,python-setuptools)
;; Tests.
("python-oslotest" ,python-oslotest)
("python-mock" ,python-mock)
@ -668,8 +644,7 @@ handling.")
"1w4csvkah67rfpxylxnvs2s3594i0f9isy8pf4gnsqs5zirvjaa4"))))
(build-system python-build-system)
(native-inputs
`(("python-setuptools" ,python-setuptools)
("python-sphinx" ,python-sphinx)
`(("python-sphinx" ,python-sphinx)
;; and some packages for the tests
("openssl" ,openssl)
("python-coverage" ,python-coverage)
@ -744,7 +719,6 @@ LDAP.")
(build-system python-build-system)
(native-inputs
`(("python-pbr" ,python-pbr)
("python-setuptools" ,python-setuptools)
("python-sphinx" ,python-sphinx)
;; The folloing packages are needed for the tests.
("python-coverage" ,python-coverage)
@ -814,9 +788,10 @@ permanence.")
(list git openssh))))))))))
(native-inputs
`(("python-pbr" ,python-pbr)))
(propagated-inputs
`(("python-requests" ,python-requests)))
(inputs
`(("python-requests" ,python-requests)
("git" ,git)
`(("git" ,git)
("openssh" ,openssh)))
(home-page "http://docs.openstack.org/infra/git-review/")
(synopsis "Command-line tool for Gerrit")
@ -826,8 +801,4 @@ Gerrit for review, or fetching existing ones.")
(license asl2.0)))
(define-public python2-git-review
(let ((base (package-with-python2 (strip-python2-variant python-git-review))))
(package (inherit base)
(native-inputs
`(("python2-setuptools" ,python2-setuptools)
,@(package-native-inputs base))))))
(package-with-python2 python-git-review))

View File

@ -250,8 +250,7 @@ random passwords that pass the checks.")
(native-inputs
`(("help2man" ,help2man)))
(inputs
`(("python-setuptools" ,python2-setuptools)
("python2-xdo" ,python2-xdo)
`(("python2-xdo" ,python2-xdo)
("python2-pygpgme" ,python2-pygpgme)
("python2-pygtk" ,python2-pygtk)))
(propagated-inputs
@ -362,7 +361,7 @@ winner of the 2015 Password Hashing Competition.")
(native-inputs
`(("python-pycparser" ,python-pycparser)
("python-pytest" ,python-pytest)))
(inputs
(propagated-inputs
`(("python-cffi" ,python-cffi)
("python-six" ,python-six)))
(home-page "https://github.com/pyca/bcrypt/")
@ -376,8 +375,4 @@ Password Scheme\"} by Niels Provos and David Mazieres.")
(license license:asl2.0)))
(define-public python2-bcrypt
(let ((bcrypt (package-with-python2 python-bcrypt)))
(package (inherit bcrypt)
(native-inputs
`(("python2-setuptools" ,python2-setuptools)
,@(package-native-inputs bcrypt))))))
(package-with-python2 python-bcrypt))

View File

@ -0,0 +1,26 @@
Add all /gnu/store/ prefixes found in PYTHONPATH to the prefixes where
site-packages (and .pth files) are searched.
*** Python-2.7.11/Lib/site.py.orig 2016-10-17 23:27:23.746149690 +0200
--- Python-2.7.11/Lib/site.py 2016-10-17 23:44:51.930871644 +0200
***************
*** 65,70 ****
--- 65,82 ----
# Prefixes for site-packages; add additional prefixes like /usr/local here
PREFIXES = [sys.prefix, sys.exec_prefix]
+ # Guix: Add all /gnu/store-paths in PYTHONPATH--these are all
+ # "prefixes". This is required to search .pth files in all python
+ # packages contained in /gnu/store which is required to make
+ # .pth-defined namespace packages work.
+ # This is necessary if the packages are not merged into a single
+ # `site-packages` directory (like when using `guix environment`) but
+ # listed in PYTHONPATH (like when running `guix build`).
+ for p in sys.path:
+ if p.startswith('/gnu/store/'):
+ PREFIXES.append(p[:p.find('/', 44)]) # find first pathsep after hash
+ del p
+
# Enable per user site-packages directory
# set it to False to disable the feature or True to force the feature
ENABLE_USER_SITE = None

View File

@ -649,11 +649,6 @@ using a stylus.")
(base32
"0rz2pg04wnzjjm2f5a8ik9v8s54mv4xrjhv5liqjijqv6awh12gl"))))
(build-system python-build-system)
(arguments
;; Prevent creation of the egg. Without this flag, various artifacts
;; from the build inputs end up in the final python3 output. It also
;; works around https://debbugs.gnu.org/cgi/bugreport.cgi?bug=20765 .
`(#:configure-flags '("--single-version-externally-managed" "--root=/")))
(propagated-inputs
`(("python-pillow" ,python-pillow)))
(home-page "http://www.reportlab.com")
@ -661,14 +656,10 @@ using a stylus.")
(description "This is the ReportLab PDF Toolkit. It allows rapid creation
of rich PDF documents, and also creation of charts in a variety of bitmap and
vector formats.")
(license license:bsd-3)
(properties `((python2-variant . ,(delay python2-reportlab))))))
(license license:bsd-3)))
(define-public python2-reportlab
(package
(inherit (package-with-python2
(strip-python2-variant python-reportlab)))
(native-inputs `(("python2-pip" ,python2-pip)))))
(package-with-python2 python-reportlab))
(define-public impressive
(package
@ -884,8 +875,6 @@ python-pypdf2 instead.")
(inputs
;; pdfposter 0.6.0 still uses the old pyPdf
`(("python2-pypdf" ,python2-pypdf)))
(native-inputs
`(("python2-setuptools" ,python2-setuptools)))
(home-page "https://pythonhosted.org/pdftools.pdfposter/")
(synopsis "Scale and tile PDF images/pages to print on multiple pages")
(description "@command{pdfposter} can be used to create a large poster by

View File

@ -63,17 +63,14 @@ internal RPC protocols and file formats.")
(base32
"1xbgbfg4g43bihkyw1a2giqa2gxmqc5wkh0fzqcb90qi1z1hpi7c"))))
(build-system python-build-system)
(inputs
(propagated-inputs
`(("python-six" ,python-six)))
(home-page "https://github.com/google/protobuf")
(synopsis "Protocol buffers is a data interchange format")
(description
"Protocol buffers are a language-neutral, platform-neutral extensible
mechanism for serializing structured data.")
(license bsd-3)
(properties `((python2-variant . ,(delay python2-protobuf))))))
(license bsd-3)))
(define-public python2-protobuf
(package (inherit (package-with-python2
(strip-python2-variant python-protobuf)))
(native-inputs `(("python2-setuptools" ,python2-setuptools)))))
(package-with-python2 python-protobuf))

File diff suppressed because it is too large Load Diff

View File

@ -394,8 +394,9 @@ three libraries:
(which "nosetests") "\"")))
#t)))))
(inputs
`(("libvirt" ,libvirt)
("python-lxml" ,python-lxml)))
`(("libvirt" ,libvirt)))
(propagated-inputs
`(("python-lxml" ,python-lxml)))
(native-inputs
`(("pkg-config" ,pkg-config)
("python-nose" ,python-nose)))

View File

@ -315,11 +315,10 @@ ideal (e.g. in LV2 implementations or embedded applications).")
(base32
"0kvaf332cqbi47rqzlpdx4mbkvw12mkrzkj8n9l19wk713d4py9w"))))
(build-system python-build-system)
(inputs
(propagated-inputs
`(("python-html5lib" ,python-html5lib)
("python-isodate" ,python-isodate)
("python-pyparsing" ,python-pyparsing)
("python-setuptools" ,python-setuptools)))
("python-pyparsing" ,python-pyparsing)))
(home-page "https://github.com/RDFLib/rdflib")
(synopsis
"Python RDF library")

View File

@ -1394,13 +1394,7 @@ and fast file reading.")
(arguments
`(#:phases
(modify-phases %standard-phases
(replace 'check (lambda _ (zero? (system* "nosetests" "-v"))))
(add-after 'unpack 'prevent-generation-of-egg-archive
(lambda _
(substitute* "setup.py"
(("from setuptools import setup")
"from distutils.core import setup"))
#t)))))
(replace 'check (lambda _ (zero? (system* "nosetests" "-v")))))))
(propagated-inputs
`(("python-numpy" ,python-numpy)
("python-scipy" ,python-scipy)
@ -1416,15 +1410,10 @@ building design matrices.")
;; The majority of the code is distributed under BSD-2. The module
;; patsy.compat contains code derived from the Python standard library,
;; and is covered by the PSFL.
(license (list license:bsd-2 license:psfl))
(properties `((python2-variant . ,(delay python2-patsy))))))
(license (list license:bsd-2 license:psfl))))
(define-public python2-patsy
(let ((patsy (package-with-python2 (strip-python2-variant python-patsy))))
(package (inherit patsy)
(native-inputs
`(("python2-setuptools" ,python2-setuptools)
,@(package-native-inputs patsy))))))
(package-with-python2 python-patsy))
(define-public python-statsmodels
(package
@ -1455,11 +1444,13 @@ building design matrices.")
line)))
#t))
(add-after 'install 'check
(lambda _
(with-directory-excursion "/tmp"
(zero? (system* "nosetests"
"--stop"
"-v" "statsmodels"))))))))
(lambda* (#:key inputs outputs #:allow-other-keys)
;; Make installed package available for running the tests
(add-installed-pythonpath inputs outputs)
(with-directory-excursion "/tmp"
(zero? (system* "nosetests"
"--stop"
"-v" "statsmodels"))))))))
(propagated-inputs
`(("python-numpy" ,python-numpy)
("python-scipy" ,python-scipy)
@ -1487,10 +1478,7 @@ inference for statistical models.")
("python2-scipy" ,python2-scipy)
("python2-pandas" ,python2-pandas)
("python2-patsy" ,python2-patsy)
("python2-matplotlib" ,python2-matplotlib)))
(native-inputs
`(("python2-setuptools" ,python2-setuptools)
,@(package-native-inputs stats))))))
("python2-matplotlib" ,python2-matplotlib))))))
(define-public r-coda
(package

View File

@ -161,8 +161,7 @@ insert mode and command mode where keybindings have different functions.")
(("'tput'")
(string-append "'" ncurses "/bin/tput'"))))
#t)))))
(inputs `(("ncurses" ,ncurses)
("python-setuptools" ,python-setuptools)))
(inputs `(("ncurses" ,ncurses)))
(home-page "https://asciinema.org")
(synopsis "Terminal session recorder")
(description

View File

@ -437,15 +437,6 @@ security, and applying best practice development processes.")
(arguments
`(#:phases
(modify-phases %standard-phases
(add-before 'install 'disable-egg-compression
(lambda _
;; Do not compress the egg.
;; See <http://bugs.gnu.org/20765>.
(let ((port (open-file "setup.cfg" "a")))
(display "\n[easy_install]\nzip_ok = 0\n"
port)
(close-port port)
#t)))
(add-after 'install 'docs
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
@ -462,7 +453,6 @@ security, and applying best practice development processes.")
("python-sphinx" ,python-sphinx)
("python-sphinxcontrib-programoutput" ,python-sphinxcontrib-programoutput)
("python-sphinx-rtd-theme" ,python-sphinx-rtd-theme)
("python-setuptools" ,python-setuptools)
("texinfo" ,texinfo)))
(propagated-inputs
`(("python-ndg-httpsclient" ,python-ndg-httpsclient)

View File

@ -208,11 +208,7 @@ networks.")
;; After all the patching we run the tests after installing.
;; This is also a known issue:
;; https://github.com/micahflee/onionshare/issues/284
(lambda _ (zero? (system* "nosetests" "test")))))
;; can't compress the egg because it expects to find all the resources
;; inside the egg as though it were a folder.
#:configure-flags '("--single-version-externally-managed" "--root=/")
))
(lambda _ (zero? (system* "nosetests" "test")))))))
(native-inputs
`(("python-nose" ,python-nose)))
(inputs

View File

@ -1156,8 +1156,7 @@ Mercurial, Bazaar, Darcs, CVS, Fossil, and Veracity.")
(build-system python-build-system)
(arguments `(#:python ,python-2))
(native-inputs
`(("python2-setuptools" ,python2-setuptools)
;; for the tests
`(;; for the tests
("python2-six" ,python2-six)))
(propagated-inputs
`(("python2-dateutil" ,python2-dateutil-2)

View File

@ -3172,11 +3172,7 @@ CDF, Atom 0.3, and Atom 1.0 feeds.")
l:freebsd-doc)))) ; documentation
(define-public python2-feedparser
(let ((base (package-with-python2
(strip-python2-variant python-feedparser))))
(package (inherit base)
(native-inputs
`(("python2-setuptools" ,python2-setuptools))))))
(package-with-python2 python-feedparser))
(define-public r-httpuv
(package

View File

@ -67,6 +67,9 @@
(arguments
`(#:python ,python-2
#:tests? #f ; test suite requires networking
;; wicd directly extends distutils command classes,
;; we can't easily make setup.py use setuptools.
#:use-setuptools? #f
#:phases
(alist-cons-before
'build 'configure

View File

@ -149,6 +149,9 @@ and many other languages.")
(arguments
`(#:python ,python-2
#:tests? #f ; tests fail
;; wxPython directly extends distutils command classes,
;; we can't easily make setup.py use setuptools.
#:use-setuptools? #f
#:configure-flags (list "WXPORT=gtk2"
"UNICODE=1")
#:phases
@ -181,8 +184,7 @@ and many other languages.")
#t)))))
(native-inputs
`(("mesa" ,mesa) ; for glcanvas
("pkg-config" ,pkg-config)
("python2-setuptools" ,python2-setuptools)))
("pkg-config" ,pkg-config)))
(inputs
`(("gtk+" ,gtk+-2) ; for wxPython/src/helpers.cpp
("wxwidgets" ,wxwidgets-gtk2)))

View File

@ -92,8 +92,7 @@
(inputs `(("pygtk" ,python2-pygtk)
("xrandr" ,xrandr)))
(native-inputs `(("gettext" ,gettext-minimal)
("python-docutils" ,python2-docutils)
("python-setuptools" ,python2-setuptools)))
("python-docutils" ,python2-docutils)))
(home-page "https://christian.amsuess.com/tools/arandr/")
(synopsis "Another RandR graphical user interface")
;; TRANSLATORS: "X11 resize-and-rotate" should not be translated.

View File

@ -177,6 +177,7 @@ pre-defined variants."
#:key
(tests? #t)
(test-target "test")
(use-setuptools? #t)
(configure-flags ''())
(phases '(@ (guix build python-build-system)
%standard-phases))
@ -204,6 +205,7 @@ provides a 'setup.py' file as its build system."
#:system ,system
#:test-target ,test-target
#:tests? ,tests?
#:use-setuptools? ,use-setuptools?
#:phases ,phases
#:outputs %outputs
#:search-paths ',(map search-path-specification->sexp

View File

@ -3,6 +3,7 @@
;;; Copyright © 2013 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2013 Nikita Karetnikov <nikita@karetnikov.org>
;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2016 Hartmut Goebel <h.goebel@crazy-compilers.com>
;;;
;;; This file is part of GNU Guix.
;;;
@ -27,31 +28,119 @@
#:use-module (srfi srfi-1)
#:use-module (srfi srfi-26)
#:export (%standard-phases
add-installed-pythonpath
site-packages
python-build))
;; Commentary:
;;
;; Builder-side code of the standard Python package build procedure.
;;
;; Code:
;;
;; Backgound about the Python installation methods
;;
;; In Python there are different ways to install packages: distutils,
;; setuptools, easy_install and pip. All of these are sharing the file
;; setup.py, introduced with distutils in Python 2.0. The setup.py file can be
;; considered as a kind of Makefile accepting targets (or commands) like
;; "build" and "install". As of autumn 2016 the recommended way to install
;; Python packages is using pip.
;;
;; For both distutils and setuptools, running "python setup.py install" is the
;; way to install Python packages. With distutils the "install" command
;; basically copies all packages into <prefix>/lib/pythonX.Y/site-packages.
;;
;; Some time later "setuptools" was established to enhance distutils. To use
;; setuptools, the developer imports setuptools in setup.py. When importing
;; setuptools, the original "install" command gets overwritten by setuptools'
;; "install" command.
;;
;; The command-line tools easy_install and pip are both capable of finding and
;; downloading the package source from PyPI (the Python Package Index). Both
;; of them import setuptools and execute the "setup.py" file under their
;; control. Thus the "setup.py" behaves as if the developer had imported
;; setuptools within setup.py - even is still using only distutils.
;;
;; Setuptools' "install" command (to be more precise: the "easy_install"
;; command which is called by "install") will put the path of the currently
;; installed version of each package and it's dependencies (as declared in
;; setup.py) into an "easy-install.pth" file. In Guix each packages gets its
;; own "site-packages" directory and thus an "easy-install.pth" of its own.
;; To avoid conflicts, the python build system renames the file to
;; <packagename>.pth in the phase rename-pth-file. To ensure that Python will
;; process the .pth file, easy_install also creates a basic "site.py" in each
;; "site-packages" directory. The file is the same for all packages, thus
;; there is no need to rename it. For more information about .pth files and
;; the site module, please refere to
;; https://docs.python.org/3/library/site.html.
;;
;; The .pth files contain the file-system paths (pointing to the store) of all
;; dependencies. So the dependency is hidden in the .pth file but is not
;; visible in the file-system. Now if packages A and B both required packages
;; P, but in different versions, Guix will not detect this when installing
;; both A and B to a profile. (For details and example see
;; https://lists.gnu.org/archive/html/guix-devel/2016-10/msg01233.html.)
;;
;; Pip behaves a bit different then easy_install: it always executes
;; "setup.py" with the option "--single-version-externally-managed" set. This
;; makes setuptools' "install" command run the original "install" command
;; instead of the "easy_install" command, so no .pth file (and no site.py)
;; will be created. The "site-packages" directory only contains the package
;; and the related .egg-info directory.
;;
;; This is exactly what we need for Guix and this is what we mimic in the
;; install phase below.
;;
;; As a draw back, the magic of the .pth file of linking to the other required
;; packages is gone and these packages have now to be declared as
;; "propagated-inputs".
;;
;; Note: Importing setuptools also adds two sub-commands: "install_egg_info"
;; and "install_scripts". These sub-commands are executed even if
;; "--single-version-externally-managed" is set, thus the .egg-info directory
;; and the scripts defined in entry-points will always be created.
(define (call-setuppy command params)
(define setuptools-shim
;; Run setup.py with "setuptools" being imported, which will patch
;; "distutils". This is needed for packages using "distutils" instead of
;; "setuptools" since the former does not understand the
;; "--single-version-externally-managed" flag.
;; Python code taken from pip 9.0.1 pip/utils/setuptools_build.py
(string-append
"import setuptools, tokenize;__file__='setup.py';"
"f=getattr(tokenize, 'open', open)(__file__);"
"code=f.read().replace('\\r\\n', '\\n');"
"f.close();"
"exec(compile(code, __file__, 'exec'))"))
(define (call-setuppy command params use-setuptools?)
(if (file-exists? "setup.py")
(begin
(format #t "running \"python setup.py\" with command ~s and parameters ~s~%"
command params)
(zero? (apply system* "python" "setup.py" command params)))
(if use-setuptools?
(zero? (apply system* "python" "-c" setuptools-shim
command params))
(zero? (apply system* "python" "./setup.py" command params))))
(error "no setup.py found")))
(define* (build #:rest empty)
(define* (build #:key use-setuptools? #:allow-other-keys)
"Build a given Python package."
(call-setuppy "build" '()))
(call-setuppy "build" '() use-setuptools?))
(define* (check #:key tests? test-target #:allow-other-keys)
(define* (check #:key tests? test-target use-setuptools? #:allow-other-keys)
"Run the test suite of a given Python package."
(if tests?
(call-setuppy test-target '())
;; Running `setup.py test` creates an additional .egg-info directory in
;; build/lib in some cases, e.g. if the source is in a sub-directory
;; (given with `package_dir`). This will by copied to the output, too,
;; so we need to remove.
(let ((before (find-files "build" "\\.egg-info$" #:directories? #t)))
(call-setuppy test-target '() use-setuptools?)
(let* ((after (find-files "build" "\\.egg-info$" #:directories? #t))
(inter (lset-difference eqv? after before)))
(for-each delete-file-recursively inter)))
#t))
(define (get-python-version python)
@ -60,25 +149,36 @@
(major+minor (take components 2)))
(string-join major+minor ".")))
(define* (install #:key outputs inputs (configure-flags '())
(define (site-packages inputs outputs)
"Return the path of the current output's Python site-package."
(let* ((out (assoc-ref outputs "out"))
(python (assoc-ref inputs "python")))
(string-append out "/lib/python"
(get-python-version python)
"/site-packages/")))
(define (add-installed-pythonpath inputs outputs)
"Prepend the Python site-package of OUTPUT to PYTHONPATH. This is useful
when running checks after installing the package."
(let ((old-path (getenv "PYTHONPATH"))
(add-path (site-packages inputs outputs)))
(setenv "PYTHONPATH"
(string-append add-path
(if old-path (string-append ":" old-path) "")))
#t))
(define* (install #:key outputs (configure-flags '()) use-setuptools?
#:allow-other-keys)
"Install a given Python package."
(let* ((out (assoc-ref outputs "out"))
(params (append (list (string-append "--prefix=" out))
configure-flags))
(python-version (get-python-version (assoc-ref inputs "python")))
(old-path (getenv "PYTHONPATH"))
(add-path (string-append out "/lib/python" python-version
"/site-packages/")))
;; create the module installation directory and add it to PYTHONPATH
;; to make setuptools happy
(mkdir-p add-path)
(setenv "PYTHONPATH"
(string-append (if old-path
(string-append old-path ":")
"")
add-path))
(call-setuppy "install" params)))
(if use-setuptools?
;; distutils does not accept these flags
(list "--single-version-externally-managed"
"--root=/")
'())
configure-flags)))
(call-setuppy "install" params use-setuptools?)))
(define* (wrap #:key inputs outputs #:allow-other-keys)
(define (list-of-files dir)
@ -112,6 +212,9 @@
(define* (rename-pth-file #:key name inputs outputs #:allow-other-keys)
"Rename easy-install.pth to NAME.pth to avoid conflicts between packages
installed with setuptools."
;; Even if the "easy-install.pth" is not longer created, we kept this phase.
;; There still may be packages creating an "easy-install.pth" manually for
;; some good reason.
(let* ((out (assoc-ref outputs "out"))
(python (assoc-ref inputs "python"))
(site-packages (string-append out "/lib/python"
@ -137,8 +240,7 @@ installed with setuptools."
#t))
(define %standard-phases
;; 'configure' and 'build' phases are not needed. Everything is done during
;; 'install'.
;; 'configure' phase is not needed.
(modify-phases gnu:%standard-phases
(add-after 'unpack 'ensure-no-mtimes-pre-1980 ensure-no-mtimes-pre-1980)
(delete 'configure)

View File

@ -4,6 +4,7 @@
;;; Copyright © 2013, 2014, 2015, 2016 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2015, 2016 Mathieu Lirzin <mthl@gnu.org>
;;; Copyright © 2016 Danny Milosavljevic <dannym+a@scratchpost.org>
;;; Copyright © 2016 Hartmut Goebel <h.goebel@crazy-compilers.com>
;;;
;;; This file is part of GNU Guix.
;;;
@ -59,6 +60,7 @@
#:export (guix-lint
check-description-style
check-inputs-should-be-native
check-inputs-should-not-be-an-input-at-all
check-patch-file-names
check-synopsis-style
check-derivation
@ -229,34 +231,65 @@ by two spaces; possible infraction~p at ~{~a~^, ~}")
(format #f (_ "invalid description: ~s") description)
'description))))
(define (warn-if-package-has-input linted inputs-to-check input-names message)
;; Emit a warning MESSAGE if some of the inputs named in INPUT-NAMES are
;; contained in INPUTS-TO-CHECK, which are assumed to be inputs of package
;; LINTED.
(match inputs-to-check
(((labels packages . outputs) ...)
(for-each (lambda (package output)
(when (package? package)
(let ((input (string-append
(package-name package)
(if (> (length output) 0)
(string-append ":" (car output))
""))))
(when (member input input-names)
(emit-warning linted
(format #f (_ message) input)
'inputs-to-check)))))
packages outputs))))
(define (check-inputs-should-be-native package)
;; Emit a warning if some inputs of PACKAGE are likely to belong to its
;; native inputs.
(let ((linted package)
(let ((message "'~a' should probably be a native input")
(inputs (package-inputs package))
(native-inputs
(input-names
'("pkg-config"
"extra-cmake-modules"
"glib:bin"
"intltool"
"itstool"
"qttools")))
(match inputs
(((labels packages . outputs) ...)
(for-each (lambda (package output)
(when (package? package)
(let ((input (string-append
(package-name package)
(if (> (length output) 0)
(string-append ":" (car output))
""))))
(when (member input native-inputs)
(emit-warning linted
(format #f (_ "'~a' should probably \
be a native input")
input)
'inputs)))))
packages outputs)))))
"qttools"
"python-coverage" "python2-coverage"
"python-cython" "python2-cython"
"python-docutils" "python2-docutils"
"python-mock" "python2-mock"
"python-nose" "python2-nose"
"python-pbr" "python2-pbr"
"python-pytest" "python2-pytest"
"python-pytest-cov" "python2-pytest-cov"
"python-setuptools-scm" "python2-setuptools-scm"
"python-sphinx" "python2-sphinx")))
(warn-if-package-has-input package inputs input-names message)))
(define (check-inputs-should-not-be-an-input-at-all package)
;; Emit a warning if some inputs of PACKAGE are likely to should not be
;; an input at all.
(let ((message "'~a' should probably not be an input at all")
(inputs (package-inputs package))
(input-names
'("python-setuptools"
"python2-setuptools"
"python-pip"
"python2-pip")))
(warn-if-package-has-input package (package-inputs package)
input-names message)
(warn-if-package-has-input package (package-native-inputs package)
input-names message)
(warn-if-package-has-input package (package-propagated-inputs package)
input-names message)))
(define (package-name-regexp package)
"Return a regexp that matches PACKAGE's name as a word at the beginning of a
@ -875,6 +908,10 @@ them for PACKAGE."
(name 'inputs-should-be-native)
(description "Identify inputs that should be native inputs")
(check check-inputs-should-be-native))
(lint-checker
(name 'inputs-should-not-be-input)
(description "Identify inputs that should be inputs at all")
(check check-inputs-should-not-be-an-input-at-all))
(lint-checker
(name 'patch-file-names)
(description "Validate file names and availability of patches")

View File

@ -3,6 +3,7 @@
;;; Copyright © 2014, 2015, 2016 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2014, 2015, 2016 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2015, 2016 Mathieu Lirzin <mthl@gnu.org>
;;; Copyright © 2016 Hartmut Goebel <h.goebel@crazy-compilers.com>
;;;
;;; This file is part of GNU Guix.
;;;
@ -34,6 +35,10 @@
#:use-module (gnu packages)
#:use-module (gnu packages glib)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages python)
#:use-module (web server)
#:use-module (web server http)
#:use-module (web response)
#:use-module (ice-9 match)
#:use-module (srfi srfi-9 gnu)
#:use-module (srfi srfi-64))
@ -274,6 +279,38 @@
(check-inputs-should-be-native pkg)))
"'glib:bin' should probably be a native input")))
(test-assert
"inputs: python-setuptools should not be an input at all (input)"
(->bool
(string-contains
(with-warnings
(let ((pkg (dummy-package "x"
(inputs `(("python-setuptools" ,python-setuptools))))))
(check-inputs-should-not-be-an-input-at-all pkg)))
"'python-setuptools' should probably not be an input at all")))
(test-assert
"inputs: python-setuptools should not be an input at all (native-input)"
(->bool
(string-contains
(with-warnings
(let ((pkg (dummy-package "x"
(native-inputs
`(("python-setuptools" ,python-setuptools))))))
(check-inputs-should-not-be-an-input-at-all pkg)))
"'python-setuptools' should probably not be an input at all")))
(test-assert
"inputs: python-setuptools should not be an input at all (propagated-input)"
(->bool
(string-contains
(with-warnings
(let ((pkg (dummy-package "x"
(propagated-inputs
`(("python-setuptools" ,python-setuptools))))))
(check-inputs-should-not-be-an-input-at-all pkg)))
"'python-setuptools' should probably not be an input at all")))
(test-assert "patches: file names"
(->bool
(string-contains