Merge branch 'python-build-system'.
This commit is contained in:
		
						commit
						03e856ddf5
					
				
					 42 changed files with 1044 additions and 1692 deletions
				
			
		| 
						 | 
				
			
			@ -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}.
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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		\
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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)))
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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"
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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"
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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 model’s 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))
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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)))
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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))))))
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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))
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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")
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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))
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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 id’s 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))
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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))
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										26
									
								
								gnu/packages/patches/python-2.7-site-prefixes.patch
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										26
									
								
								gnu/packages/patches/python-2.7-site-prefixes.patch
									
										
									
									
									
										Normal 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
 | 
			
		||||
| 
						 | 
				
			
			@ -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
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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
											
										
									
								
							| 
						 | 
				
			
			@ -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)))
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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")
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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)))
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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.
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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")
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Reference in a new issue