unofficial mirror of guix-devel@gnu.org 
 help / color / mirror / code / Atom feed
* [PATCH 00/14] Change python-build-system (fixes bug 20765)
@ 2016-09-28 13:58 Hartmut Goebel
  2016-09-28 13:58 ` [PATCH 01/14] gnu: ensure pip and setuptools are installed even for Python 2 Hartmut Goebel
                   ` (15 more replies)
  0 siblings, 16 replies; 37+ messages in thread
From: Hartmut Goebel @ 2016-09-28 13:58 UTC (permalink / raw)
  To: guix-devel

Hi,

this is a patch-series fixing bug 20765.

Bug 20765 is about problems caused by python packages being installed as
"zipped eggs" (basically these are zip-files).

This series implements what I proposed in
  <http://lists.gnu.org/archive/html/guix-devel/2016-09/msg02021.html>.

A) For python2 include python2-setuptools as a native-input by default.

B) Install Python packages using --single-version-externally-managed

C) Strip python-setuptools and python2-setuptools from all native-inputs
   defined in packages.

Since the first of these changes already make *all* Python packages to be
rebuild, i took the chance to complete points B) and C), too. Step C) is split
into several patches to ease review. I'll happily merge them if requested.
Furhter I did not complete the commit message for these patches. Please
instruct me how these should be written. IMHO there is less use for listing
every singel change liek I did in part 5b.

TODO: by somebody more skilled than me: Take the change and

 * integrate strip-python2-variant into package-with-python2.

 * update Python to 2.7.12 and 3.4.5.


Hartmut Goebel (14):
  gnu: ensure pip and setuptools are installed even for Python 2
  guix: build all Python packages with
    --single-version-externally-managed.
  guix: Add lint-checker for packages which should be no inputs at all.
  gnu: python-setuptools: remove pre-built binaries.
  gnu: Remove python-setuptools and python2-setuptools from inputs (part
    1)
  gnu: Remove python-setuptools and python2-setuptools from inputs (part
    2)
  gnu: Remove python-setuptools and python2-setuptools from inputs (part
    3)
  gnu: Remove python-setuptools and python2-setuptools from inputs (part
    4)
  gnu: Remove python-setuptools and python2-setuptools from inputs (part
    5a)
  gnu: Remove python-setuptools and python2-setuptools from inputs (part
    5b)
  gnu: Remove needless inputs python-pip and python2-pip.
  lint: 'check-inputs-should-not-be-an-input-at-all' checks for
    python-pip
  gnu: python-h5py: Remove needless "python2-variant" property.
  gnu: Remove work-arounds for bug 20765 (ensure uncompressed eggs)

 gnu/packages/admin.scm             |    7 +-
 gnu/packages/backup.scm            |    5 +-
 gnu/packages/bioinformatics.scm    |  123 +----
 gnu/packages/django.scm            |   22 +-
 gnu/packages/docbook.scm           |    3 +-
 gnu/packages/docker.scm            |    2 -
 gnu/packages/freedesktop.scm       |    3 +-
 gnu/packages/game-development.scm  |    2 -
 gnu/packages/gnupg.scm             |    7 +-
 gnu/packages/key-mon.scm           |    2 -
 gnu/packages/lirc.scm              |    3 +-
 gnu/packages/mail.scm              |    2 -
 gnu/packages/mp3.scm               |    3 +-
 gnu/packages/mpd.scm               |    9 +-
 gnu/packages/music.scm             |   18 +-
 gnu/packages/nutrition.scm         |    6 +-
 gnu/packages/openstack.scm         |   46 +-
 gnu/packages/password-utils.scm    |    9 +-
 gnu/packages/pdf.scm               |   13 +-
 gnu/packages/protobuf.scm          |    7 +-
 gnu/packages/python.scm            | 1072 ++++++++----------------------------
 gnu/packages/rdf.scm               |    3 +-
 gnu/packages/statistics.scm        |   22 +-
 gnu/packages/terminals.scm         |    3 +-
 gnu/packages/tls.scm               |   10 -
 gnu/packages/tor.scm               |    6 +-
 gnu/packages/version-control.scm   |    3 +-
 gnu/packages/xdisorg.scm           |    3 +-
 guix/build/python-build-system.scm |   17 +-
 guix/scripts/lint.scm              |   63 ++-
 tests/lint.scm                     |   34 ++
 31 files changed, 366 insertions(+), 1162 deletions(-)

-- 
2.7.4

^ permalink raw reply	[flat|nested] 37+ messages in thread

* [PATCH 01/14] gnu: ensure pip and setuptools are installed even for Python 2
  2016-09-28 13:58 [PATCH 00/14] Change python-build-system (fixes bug 20765) Hartmut Goebel
@ 2016-09-28 13:58 ` Hartmut Goebel
  2016-09-28 13:58 ` [PATCH 02/14] guix: build all Python packages with --single-version-externally-managed Hartmut Goebel
                   ` (14 subsequent siblings)
  15 siblings, 0 replies; 37+ messages in thread
From: Hartmut Goebel @ 2016-09-28 13:58 UTC (permalink / raw)
  To: guix-devel

* gnu/packages/python.scm (python-2.7): Add "--with-ensurepip=install"
  to configure-flags.
---
 gnu/packages/python.scm | 1 +
 1 file changed, 1 insertion(+)

diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index 688a5d4..b13e41f 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -156,6 +156,7 @@
        #:configure-flags
        (list "--enable-shared"                    ;allow embedding
              "--with-system-ffi"                  ;build ctypes
+             "--with-ensurepip=install"           ;install pip and setuptools
              (string-append "LDFLAGS=-Wl,-rpath="
                             (assoc-ref %outputs "out") "/lib"))
 
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 37+ messages in thread

* [PATCH 02/14] guix: build all Python packages with --single-version-externally-managed.
  2016-09-28 13:58 [PATCH 00/14] Change python-build-system (fixes bug 20765) Hartmut Goebel
  2016-09-28 13:58 ` [PATCH 01/14] gnu: ensure pip and setuptools are installed even for Python 2 Hartmut Goebel
@ 2016-09-28 13:58 ` Hartmut Goebel
  2016-09-28 13:58 ` [PATCH 03/14] guix: Add lint-checker for packages which should be no inputs at all Hartmut Goebel
                   ` (13 subsequent siblings)
  15 siblings, 0 replies; 37+ messages in thread
From: Hartmut Goebel @ 2016-09-28 13:58 UTC (permalink / raw)
  To: guix-devel

This requires setuptools to be installed together with python, which is
the case for Python 3 anyway and which we do for our build of Python 2
(see last commit).

* guix/build/python-build-system.scm (install): Add
  "--single-version-externally-managed" and "--root=/" to params to be
  passed to call-setuppy. Remove thus needless manipulation of
  PYTHONPATH.
---
 guix/build/python-build-system.scm | 17 ++++-------------
 1 file changed, 4 insertions(+), 13 deletions(-)

diff --git a/guix/build/python-build-system.scm b/guix/build/python-build-system.scm
index 9109fb4..8d4d6d3 100644
--- a/guix/build/python-build-system.scm
+++ b/guix/build/python-build-system.scm
@@ -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.
 ;;;
@@ -65,19 +66,9 @@
   "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))
+                         "--single-version-externally-managed"
+                         "--root=/"
+                         configure-flags)))
         (call-setuppy "install" params)))
 
 (define* (wrap #:key inputs outputs #:allow-other-keys)
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 37+ messages in thread

* [PATCH 03/14] guix: Add lint-checker for packages which should be no inputs at all.
  2016-09-28 13:58 [PATCH 00/14] Change python-build-system (fixes bug 20765) Hartmut Goebel
  2016-09-28 13:58 ` [PATCH 01/14] gnu: ensure pip and setuptools are installed even for Python 2 Hartmut Goebel
  2016-09-28 13:58 ` [PATCH 02/14] guix: build all Python packages with --single-version-externally-managed Hartmut Goebel
@ 2016-09-28 13:58 ` Hartmut Goebel
  2016-09-28 13:58 ` [PATCH 04/14] gnu: python-setuptools: remove pre-built binaries Hartmut Goebel
                   ` (12 subsequent siblings)
  15 siblings, 0 replies; 37+ messages in thread
From: Hartmut Goebel @ 2016-09-28 13:58 UTC (permalink / raw)
  To: guix-devel

Also refactor the common code into a new function.

* guix/scripts/lint.scm (warn-if-package-has-input): New procedure.
  (check-inputs-should-be-native package): Use it; rename and clean-up
  variables. (check-inputs-should-not-be-an-input-at-all): New procedure.
  (%checkers) Add it.
* tests/lint.scm: ("inputs: python-setuptools should not be an input at all
  (input)", "inputs: python-setuptools should not be an input at all
  (native-input)" "inputs: python-setuptools should not be an input at all
  (propagated-input)"): Add tests.
---
 guix/scripts/lint.scm | 61 ++++++++++++++++++++++++++++++++++++---------------
 tests/lint.scm        | 34 ++++++++++++++++++++++++++++
 2 files changed, 77 insertions(+), 18 deletions(-)

diff --git a/guix/scripts/lint.scm b/guix/scripts/lint.scm
index eac3214..ce9fee7 100644
--- a/guix/scripts/lint.scm
+++ b/guix/scripts/lint.scm
@@ -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
@@ -213,34 +215,53 @@ 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)))))
+    (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")))
+    (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
@@ -810,6 +831,10 @@ them for PACKAGE."
      (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")
      (check       check-patch-file-names))
diff --git a/tests/lint.scm b/tests/lint.scm
index df69d2b..dd80507 100644
--- a/tests/lint.scm
+++ b/tests/lint.scm
@@ -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.
 ;;;
@@ -33,6 +34,7 @@
   #: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)
@@ -345,6 +347,38 @@ string) on HTTP requests."
           (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
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 37+ messages in thread

* [PATCH 04/14] gnu: python-setuptools: remove pre-built binaries.
  2016-09-28 13:58 [PATCH 00/14] Change python-build-system (fixes bug 20765) Hartmut Goebel
                   ` (2 preceding siblings ...)
  2016-09-28 13:58 ` [PATCH 03/14] guix: Add lint-checker for packages which should be no inputs at all Hartmut Goebel
@ 2016-09-28 13:58 ` Hartmut Goebel
  2016-09-28 13:58 ` [PATCH 05/14] gnu: Remove python-setuptools and python2-setuptools from inputs (part 1) Hartmut Goebel
                   ` (11 subsequent siblings)
  15 siblings, 0 replies; 37+ messages in thread
From: Hartmut Goebel @ 2016-09-28 13:58 UTC (permalink / raw)
  To: guix-devel

These are for Windows anyway.

* gnu/packages/python.scm (python-setuptools): Add source snippet to
  delete *.exe files.
---
 gnu/packages/python.scm | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index b13e41f..d72bb70 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -816,7 +816,12 @@ have been used.")
                           version ".tar.gz"))
       (sha256
        (base32
-        "0kc7rbav00ks6iaw14p38y81q12fx0lpkhgf5m97xc04f5r318ig"))))
+        "0kc7rbav00ks6iaw14p38y81q12fx0lpkhgf5m97xc04f5r318ig"))
+      (modules '((guix build utils)))
+      (snippet
+       '(begin
+          (for-each delete-file (find-files "setuptools" "^(cli|gui).*\\.exe$"))
+          #t))))
     (build-system python-build-system)
     ;; FIXME: Tests require pytest, which itself relies on setuptools.
     ;; One could bootstrap with an internal untested setuptools.
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 37+ messages in thread

* [PATCH 05/14] gnu: Remove python-setuptools and python2-setuptools from inputs (part 1)
  2016-09-28 13:58 [PATCH 00/14] Change python-build-system (fixes bug 20765) Hartmut Goebel
                   ` (3 preceding siblings ...)
  2016-09-28 13:58 ` [PATCH 04/14] gnu: python-setuptools: remove pre-built binaries Hartmut Goebel
@ 2016-09-28 13:58 ` Hartmut Goebel
  2016-09-28 13:58 ` [PATCH 06/14] gnu: Remove python-setuptools and python2-setuptools from inputs (part 2) Hartmut Goebel
                   ` (10 subsequent siblings)
  15 siblings, 0 replies; 37+ messages in thread
From: Hartmut Goebel @ 2016-09-28 13:58 UTC (permalink / raw)
  To: guix-devel

* gnu/packages/pythin.scm
---
 gnu/packages/python.scm | 223 +-----------------------------------------------
 1 file changed, 2 insertions(+), 221 deletions(-)

diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index d72bb70..242036f 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -408,8 +408,6 @@ instead of @command{python3}.")))
         (base32
          "1w4r09fvn6kd80m5mx4ws1wz100brkaq6hzzpwrns8cgjzjpl6c6"))))
     (build-system python-build-system)
-    (native-inputs
-     `(("python-setuptools" ,python-setuptools)))
     (home-page "https://www.github.com/giampaolo/psutil")
     (synopsis "Library for retrieving information on running processes")
     (description
@@ -478,8 +476,6 @@ to providing full-strength password hashing for multi-user application.")
         (base32
          "0y6smdggwi5s72v6p1nn53dg6w05hna3d264cq6kas0lap73p8az"))))
     (build-system python-build-system)
-    (native-inputs
-     `(("python-setuptools" ,python-setuptools)))
     (home-page "https://code.google.com/p/py-bcrypt")
     (synopsis
      "Bcrypt password hashing and key derivation")
@@ -513,8 +509,6 @@ John the Ripper).")
         (base32
          "14k8z7ndc3zk5xivnm4d8lncchx475ll5izpf8vmfbq7rp9yp5rj"))))
     (build-system python-build-system)
-    (native-inputs
-     `(("python-setuptools" ,python-setuptools)))
     (propagated-inputs
      `(("python-pycrypto" ,python-pycrypto)))
     (inputs
@@ -543,8 +537,6 @@ Python interface around SSH networking concepts.")
         (base32
          "126rsryvw9vhbf3qmsfw9lf4l4xm2srmgs439lgma4cpag4s3ay3"))))
     (build-system python-build-system)
-    (native-inputs
-     `(("python-setuptools" ,python-setuptools)))
     (home-page "https://github.com/jcgregorio/httplib2")
     (synopsis "Comprehensive HTTP client library")
     (description
@@ -570,8 +562,6 @@ other HTTP libraries.")
         (base32
          "1yj31j0asmrx4an9xvsaj2icdmzy6pw0glfpqrrkrphwdpi1xkv4"))))
     (build-system python-build-system)
-    (native-inputs
-     `(("python-setuptools" ,python-setuptools)))
     (inputs
      `(("openssl" ,openssl)))
     (home-page
@@ -601,8 +591,6 @@ making them easy to handle and incorporate into other protocols.")
         (base32
          "177dfxsmk3k4cih6fh6v8d91bh4nqx7ns6pc07w7m7i3cvdx3c8n"))))
     (build-system python-build-system)
-    (native-inputs
-     `(("python-setuptools" ,python-setuptools)))
     (inputs
      `(("python-pyyaml" ,python-pyyaml)
        ("python-six" ,python-six)))
@@ -687,8 +675,6 @@ etc. ")
     (arguments
      `(#:python ,python-2
        #:tests? #f)) ; no test target
-    (inputs
-     `(("python2-setuptools" ,python2-setuptools)))
     (home-page "https://bitbucket.org/brandon/backports.ssl_match_hostname")
     (synopsis "Backport of ssl.match_hostname() function from Python 3.5")
     (description
@@ -858,8 +844,6 @@ Python 3 support.")
        (base32
         "0g0ayql5b9mkjam8hym6zyg6bv77lbh66rv1fyvgqb17kfc1xkpj"))))
     (build-system python-build-system)
-    (native-inputs
-     `(("python-setuptools" ,python-setuptools)))
     (inputs
      `(("python" ,python)
        ("gmp" ,gmp)))
@@ -935,8 +919,6 @@ password storage.")
        (base32
         "0snmb8xffb3vsma0z67i0h0w2g2dy0p3gsgh9gi4i0kgc5l8spqh"))))
     (build-system python-build-system)
-    (inputs
-     `(("python-setuptools" ,python-setuptools)))
     (home-page "http://pypi.python.org/pypi/six/")
     (synopsis "Python 2 and 3 compatibility utilities")
     (description
@@ -992,8 +974,6 @@ datetime module, available in Python 2.3+.")
        (base32
         "0fqfglhy5khbvsipr3x7m6bcaqljh8xl5cw33vbfxy7qhmywm2n0"))))
     (build-system python-build-system)
-    (inputs
-     `(("python-setuptools" ,python-setuptools)))
     (home-page "http://labix.org/python-dateutil")
     (synopsis "Extensions to the standard datetime module")
     (description
@@ -1134,8 +1114,6 @@ Database API 2.0T.")
        (base32
         "0rj7r166i1dyrq0ihm5rijfmvhs8a04im28lv05c0c3v206v4rrf"))))
     (build-system python-build-system)
-    (inputs
-     `(("python2-setuptools" ,python2-setuptools)))
     (arguments
      `(#:python ,python-2 ; apparently incompatible with Python 3
        #:tests? #f))
@@ -1447,8 +1425,6 @@ software.")
         (base32
          "1h7zx4dfyclalg0fqnfjijpn0f793a9mx8sy3b27gd31nr6dhq3s"))))
     (build-system python-build-system)
-    (inputs
-     `(("python-setuptools" ,python-setuptools)))
     (arguments
      ;; error in setup.cfg: command 'test' has no such option 'buffer'
      '(#:tests? #f))
@@ -1475,8 +1451,6 @@ software.")
         (base32
          "1hyxg09kaj02ri0rmwjqi86wk4nd1akvv7n0dx77azz76wga4s9w"))))
     (build-system python-build-system)
-    (inputs
-     `(("python-setuptools" ,python-setuptools)))
     (arguments
      '(#:tests? #f)) ; no setup.py test command
     (home-page
@@ -1502,8 +1476,6 @@ matching them against a list of media-ranges.")
           (base32
             "164a43k7k2wsqqk1s6vavcdamvss4mz0vd6pwzv2h9n8rgwzxgzi"))))
     (build-system python-build-system)
-    (inputs
-     `(("python-setuptools" ,python-setuptools)))
     (arguments
      '(#:tests? #f)) ; FIXME: test suite fails
     (home-page "http://readthedocs.org/docs/nose/")
@@ -1528,8 +1500,6 @@ matching them against a list of media-ranges.")
             "1x4zjq1zlyrh8b9ba0cmafd3w94pxhid408kibyjd3s6h1lap6s7"))))
     (build-system python-build-system)
     (arguments `(#:tests? #f)) ; 'module' object has no attribute 'collector'
-    (native-inputs
-     `(("python-setuptools" ,python-setuptools)))
     (inputs
      `(("python-cov-core" ,python-cov-core)
        ("python-pytest-cov" ,python-pytest-cov)
@@ -1560,8 +1530,6 @@ interfaces and processes.")
         (base32
          "00yl6lskygcrddx5zspkhr0ibgvpknl4678kkm6s626539grq93q"))))
     (build-system python-build-system)
-    (inputs
-     `(("python-setuptools" ,python-setuptools)))
     (home-page "http://pypi.python.org/pypi/unittest2")
     (synopsis "Python unit testing library")
     (description
@@ -1582,8 +1550,6 @@ standard library.")
        (sha256
         (base32
          "0wbs4i4x3x7klr3v35ss6p9mcqz883i1xgcpkhvl7n2lyv6yhpda"))))
-    (inputs
-     `(("python2-setuptools" ,python2-setuptools)))
     (arguments
      `(#:python ,python-2
        #:tests? #f)))) ; no setup.py test command
@@ -1600,8 +1566,6 @@ standard library.")
         (base32
          "0561gz2w3i825gyl42mcq14y3dcgkapfiv5zv9a2bz15qxiijl56"))))
     (build-system python-build-system)
-    (inputs
-     `(("python-setuptools" ,python-setuptools)))
     (home-page "http://pylib.readthedocs.org/")
     (synopsis "Python library for parsing, I/O, instrospection, and logging")
     (description
@@ -1905,8 +1869,6 @@ style tests.")
         (base32
          "0cbj3plbllyz42c4b5xxgwaa7mml54lakslrn4kkhinxhdri22md"))))
     (build-system python-build-system)
-    (inputs
-     `(("python-setuptools" ,python-setuptools)))
     (home-page "https://launchpad.net/testresources")
     (synopsis
      "Pyunit extension for managing test resources")
@@ -1968,8 +1930,6 @@ protocol.")
         (base32
          "0x9r2gwilcig5g54k60bxzg96zabizq1855lrprlb4zckalp9asc"))))
     (build-system python-build-system)
-    (inputs
-     `(("python-setuptools" ,python-setuptools)))
     (arguments
      '(#:tests? #f)) ; no setup.py test command
     (home-page "https://launchpad.net/python-fixtures")
@@ -2071,7 +2031,6 @@ and sensible default behaviors into your setuptools run.")
        ("python-pbr-0.11" ,python-pbr-0.11)))
     (inputs
      `(("python-pip" ,python-pip)
-       ("python-setuptools" ,python-setuptools)
        ;; Tests
        ("python-testtools" ,python-testtools)))
     (arguments
@@ -2129,8 +2088,6 @@ have failed since the last commit or what tests are currently failing.")
         (base32
          "01rbr4br4lsk0lwn8fb96zwd2xr4f0mg1w7iq3j11i8f5ig2nqs1"))))
     (build-system python-build-system)
-    (inputs
-     `(("python-setuptools" ,python-setuptools)))
     (home-page "http://nedbatchelder.com/code/coverage")
     (synopsis "Code coverage measurement for Python")
     (description
@@ -2186,8 +2143,6 @@ It is useful for developing coverage plugins for these testing frameworks.")
         (base32
          "0y8d0zwiqar51kxj8lzmkvwc3b8kazb04gk5zcb4nzg5k68zmhq5"))))
     (build-system python-build-system)
-    (inputs
-     `(("python-setuptools" ,python-setuptools)))
     (home-page "http://pypi.python.org/pypi/discover/")
     (synopsis
      "Python test discovery for unittest")
@@ -2238,8 +2193,6 @@ tests written in a natural language style, backed up by Python code.")
                (base32
                 "1b90jf6m9vxh9nanhpyvqdq7hmfx5iggw1l8kq10jrs6xgr49qkr"))))
     (build-system python-build-system)
-    (inputs
-     `(("python-setuptools" ,python-setuptools)))
     (arguments `(#:tests? #f)) ; no tests
     (home-page "https://github.com/ianare/exif-py")
     (synopsis "Python library to extract EXIF data from image files")
@@ -2262,8 +2215,6 @@ files.")
                (base32
                 "0k881ffazpf8q1z8862g4bb3pzwpnz9whrci2mf311mvn1qbyqad"))))
     (build-system python-build-system)
-    (inputs
-     `(("python-setuptools" ,python-setuptools)))
     (arguments `(#:tests? #f)) ; no tests
     (home-page "http://github.com/digitalbazaar/pyld")
     (synopsis "Python implementation of the JSON-LD specification")
@@ -2285,8 +2236,6 @@ files.")
                (base32
                 "05lgwf9rz1kn465azy2bpb3zmpnsn9gkypbhnjlclchv98ssgc1h"))))
     (build-system python-build-system)
-    (inputs
-     `(("python-setuptools" ,python-setuptools)))
     (arguments `(#:tests? #f)) ; no tests
     (home-page "http://python-requests.org/")
     (synopsis "Python CA certificate bundle")
@@ -2321,8 +2270,6 @@ is used by the Requests library to verify HTTPS requests.")
                  (("'locale'")
                   (string-append "'" glibc "/bin/locale'"))))
              #t)))))
-    (native-inputs
-     `(("python-setuptools" ,python-setuptools)))
     (home-page "http://click.pocoo.org")
     (synopsis "Command line library for Python")
     (description
@@ -2423,8 +2370,6 @@ than Python’s urllib2 library.")
         (base32
          "11ivq1bm7v0yb4nsfbv9m7g7lyjn112gbvpjnjz8nv1fx633dm5c"))))
     (build-system python-build-system)
-    (inputs
-     `(("python-setuptools" ,python-setuptools)))
     (synopsis "Python library for version number discovery")
     (description "Vcversioner is a Python library that inspects tagging
 information in a variety of version control systems in order to discover
@@ -2478,8 +2423,6 @@ version numbers.")
               (base32
                "12hhblqy1ajvidm38im4171x4arg83pfmziyn53nizp29p3m14gi"))))
     (build-system python-build-system)
-    (inputs
-     `(("python-setuptools" ,python-setuptools)))
     (home-page "https://pypi.python.org/pypi/Unidecode")
     (synopsis "ASCII transliterations of Unicode text")
     (description
@@ -2600,8 +2543,6 @@ environments and back.")
     (build-system python-build-system)
     (inputs
      `(("libyaml" ,libyaml)))
-    (native-inputs
-     `(("python-setuptools" ,python-setuptools)))
     (home-page "http://pyyaml.org/wiki/PyYAML")
     (synopsis "YAML parser and emitter for Python")
     (description
@@ -2664,8 +2605,6 @@ object.")
         (base32
          "1hvip33wva3fnmvfp9x5klqri7hpl1hkgqmjbss18nmrb7zimv54"))))
     (build-system python-build-system)
-    (inputs
-     `(("python-setuptools" ,python-setuptools)))
     (home-page "http://github.com/mitsuhiko/markupsafe")
     (synopsis "XML/HTML/XHTML markup safe string implementation for Python")
     (description
@@ -2712,8 +2651,6 @@ written in pure Python.")
                (base32
                 "0nmqsfmiw4arjxqkmf9z66ml950pcdjk6aq4gin4sywmzdjw5fzp"))))
     (build-system python-build-system)
-    (native-inputs
-     `(("python-setuptools" ,python-setuptools)))
     (home-page "http://defunkt.io/pystache/")
     (synopsis "Python logic-less template engine")
     (description
@@ -2765,8 +2702,6 @@ logging and tracing of the execution.")
         (base32
          "1ylnjnw1x4b2y7blr6x35ncdzn69k253kw4cdkv6asdb21w73ny7"))))
     (build-system python-build-system)
-    (inputs
-     `(("python-setuptools" ,python-setuptools)))
     (arguments
      '(#:tests? #f)) ; no setup.py test command
     (home-page "http://docutils.sourceforge.net/")
@@ -2794,8 +2729,6 @@ reStructuredText.")
         (base32
          "0lagrwifsgn0s8bzqahpr87p7gd38xja8f06akscinp6hj89283k"))))
     (build-system python-build-system)
-    (inputs
-     `(("python-setuptools" ,python-setuptools)))
     (home-page "http://pygments.org/")
     (synopsis "Syntax highlighting")
     (description
@@ -2854,8 +2787,6 @@ sources.")
        ;; before 1980'
        #:configure-flags '("--single-version-externally-managed"
                            "--record=sphinx-rtd-theme.txt")))
-    (native-inputs
-     `(("python-setuptools" ,python-setuptools)))
     (inputs
      `(("python-docutils" ,python-docutils)
        ("python-sphinx" ,python-sphinx)))
@@ -2906,8 +2837,6 @@ which can produce feeds in RSS 2.0, RSS 0.91, and Atom formats.")
         (base32
          "1dpq0vb01p36jjwbhhd08ylvrnyvcc82yxx3mwjx6awrycjyw6j7"))))
     (build-system python-build-system)
-    (native-inputs
-     `(("python-setuptools" ,python-setuptools)))
     ;; No "test" command supplied to setuptools, so unless there's another way
     ;; to run tests, we're skipping them!
     (arguments '(#:tests? #f))
@@ -3099,8 +3028,6 @@ mining and data analysis.")
     (propagated-inputs
      `(("python-click" ,python-click)
        ("python-redis" ,python-redis)))
-    (native-inputs
-     `(("python-setuptools" ,python-setuptools)))
     (home-page "http://python-rq.org/")
     (synopsis "Simple job queues for Python")
     (description
@@ -3262,7 +3189,6 @@ association studies (GWAS) on extremely large data sets.")
     (outputs '("out" "doc"))
     (inputs
      `(("which" ,which)
-       ("python-setuptools" ,python-setuptools)
        ("python-matplotlib" ,python-matplotlib)
        ("python-sphinx" ,python-sphinx)
        ("python-pyparsing" ,python-pyparsing)
@@ -3858,8 +3784,6 @@ SQLAlchemy Database Toolkit for Python.")
        (base32
         "0lx15kcbby9zisx33p2h5hgakgwh2bvh0ibag8z0px4j6ifhs41x"))))
     (build-system python-build-system)
-    (native-inputs
-     `(("python-setuptools" ,python-setuptools)))
     (home-page "https://launchpad.net/python-distutils-extra/")
     (synopsis "Enhancements to Python's distutils")
     (description
@@ -3887,8 +3811,6 @@ Python's distutils.")
         (base32
          "0y7vzff9xgbnaay7m0va1arl6g68ncwrvbgwl7jqlclsahzzb09d"))))
     (build-system python-build-system)
-    (native-inputs
-     `(("python2-setuptools" ,python2-setuptools)))
     (arguments
      ;; incompatible with Python 3 (exception syntax)
      `(#:python ,python-2
@@ -3928,9 +3850,7 @@ services for your Python modules and applications.")
        ("openjpeg" ,openjpeg)
        ("libtiff"  ,libtiff)
        ("libwebp"  ,libwebp)))
-    (propagated-inputs
-     `(;; Used at runtime for pkg_resources
-       ("python-setuptools" ,python-setuptools)))
+    ;; Note: setuptools used at runtime for pkg_resources
     (arguments
      `(#:phases (modify-phases %standard-phases
                   (add-before
@@ -4076,8 +3996,6 @@ a front-end for C compilers or analysis tools.")
     (inputs
      `(("libxcb" ,libxcb)
        ("python-six" ,python-six)))
-    (native-inputs
-     `(("python-setuptools" ,python-setuptools)))
     (propagated-inputs
      `(("python-cffi" ,python-cffi))) ; used at run time
     (arguments
@@ -4171,8 +4089,6 @@ PNG, PostScript, PDF, and SVG file output.")
         (base32 "1a5vwhflfd9sh3rfb40xlyipldgdzfff6brman57hqv3661jw0lh"))))
     (build-system python-build-system)
     (arguments '(#:tests? #f)) ; no test target
-    (native-inputs
-     `(("python-setuptools" ,python-setuptools)))
     (home-page "https://pypi.python.org/pypi/decorator/")
     (synopsis "Python module to simplify usage of decorators")
     (description
@@ -4234,8 +4150,6 @@ Python language binding specification.")
      `(("python-psutil" ,python-psutil)
        ("python-drmaa" ,python-drmaa)
        ("python-pyzmq" ,python-pyzmq)))
-    (native-inputs
-     `(("python-setuptools" ,python-setuptools)))
     (home-page "https://github.com/pygridtools/gridmap")
     (synopsis "Create jobs on a cluster directly from Python")
     (description
@@ -4288,7 +4202,6 @@ child application and control it as if a human were typing commands.")
                (base32
                 "1gqr73i150yzj3mz32854vj93x07yr52kn8fdckwa41ll8wgficc"))))
     (build-system python-build-system)
-    (native-inputs `(("python-setuptools" ,python-setuptools)))
     (home-page "https://github.com/pypa/setuptools_scm/")
     (synopsis "Manage Python package versions in SCM metadata")
     (description
@@ -4343,8 +4256,6 @@ common operations on files to be invoked on those path objects directly.")
     (build-system python-build-system)
     (propagated-inputs
      `(("python-pathpy" ,python-pathpy)))
-    (native-inputs
-     `(("python-setuptools" ,python-setuptools)))
     (home-page "https://github.com/vivainio/pickleshare")
     (synopsis "Tiny key value database with concurrency support")
     (description
@@ -4568,8 +4479,6 @@ computing.")
           (base32
             "0cafaiwixgpxwh9dsd28qb0dbzsj6xpxjdkyk30ns91ps10mq422"))))
     (build-system python-build-system)
-    (inputs
-      `(("python-setuptools" ,python-setuptools)))
     (home-page
       "http://cheeseshop.python.org/pypi/isodate")
     (synopsis
@@ -4596,8 +4505,6 @@ ISO 8601 dates, time and duration.")
     (build-system python-build-system)
     (propagated-inputs
       `(("python-six" ,python-six))) ; required to "import html5lib"
-    (inputs
-      `(("python-setuptools" ,python-setuptools)))
     (arguments
      `(#:test-target "check"))
     (home-page
@@ -4635,7 +4542,6 @@ and written in Python.")
             (substitute* "urwid/tests/test_event_loops.py"
               (("test_remove_watch_file")
                 "disable_remove_watch_file")))))))
-    (native-inputs `(("python-setuptools" ,python-setuptools)))
     (home-page "http://urwid.org")
     (synopsis "Console user interface library for Python")
     (description
@@ -4830,8 +4736,6 @@ converts incoming documents to Unicode and outgoing documents to UTF-8.")
     (native-inputs
       `(("python2-mock" ,python2-mock) ; for the tests
         ("unzip" ,unzip))) ; for unpacking the source
-    (inputs
-      `(("python2-setuptools" ,python2-setuptools)))
     (arguments
      `(#:python ,python-2 ; Otherwise tests fail with a syntax error.
        #:tests? #f ; The tests apparently download an external URL.
@@ -4857,8 +4761,6 @@ options.")
          (base32
           "1xg6gbva1yswghiycmgincv6ab4bn7hpm720ndbj40h8xycmnfvi"))))
     (build-system python-build-system)
-    (inputs
-      `(("python-setuptools" ,python-setuptools)))
     (arguments
      ;; tests fail with message
      ;; AttributeError: 'module' object has no attribute 'tests'
@@ -4891,8 +4793,6 @@ another XPath engine to find the matching elements in an XML or HTML document.")
           (base32
             "1plw237a4zib4z8s62g0mrs8gm3kjfrp5sxh6bbk9nl3rdls2mln"))))
     (build-system python-build-system)
-    (inputs
-      `(("python-setuptools" ,python-setuptools)))
     (home-page
       "https://bitbucket.org/al45tair/netifaces")
     (synopsis
@@ -4945,7 +4845,6 @@ of the structure, dynamics, and functions of complex networks.")
        (sha256
         (base32 "0fi4b63sj60hvi7rfydvmz2icl4wj74djw5sn2gl8hxd02qw4b91"))))
     (build-system python-build-system)
-    (inputs `(("python-setuptools" ,python-setuptools)))
     (home-page "https://bitbucket.org/johanneskoester/snakemake")
     (synopsis "Python-based execution environment for make-like workflows")
     (description
@@ -5001,8 +4900,6 @@ and statistical routines from scipy and statsmodels.")
        (sha256
         (base32 "19yp0gy4i7p4g6l3b8vaqkj9qj7yqb5kqy0qgbdagpzgkdz958yz"))))
     (build-system python-build-system)
-    (native-inputs
-     `(("python-setuptools" ,python-setuptools)))
     (home-page "http://www.sympy.org/")
     (synopsis "Python library for symbolic mathematics")
     (description
@@ -5027,8 +4924,6 @@ as possible in order to be comprehensible and easily extensible.")
        (sha256
         (base32 "1mz26cxn4x8bbgv0rn0mvj2z05y31rkc8009nvdlb3lam5b4mj3y"))))
     (build-system python-build-system)
-    (inputs
-      `(("python-setuptools" ,python-setuptools)))
     (native-inputs
      `(("unzip" ,unzip)))
     (arguments
@@ -5066,8 +4961,6 @@ as possible in order to be comprehensible and easily extensible.")
     (arguments
      `(#:python ,python-2                         ;Python 2 only
        #:tests? #f))                              ;no tests
-    (inputs
-     `(("python-setuptools" ,python-setuptools)))
     (home-page "http://python-xlib.sourceforge.net/")
     (synopsis "Python X11 client library")
     (description
@@ -5088,8 +4981,6 @@ It is written entirely in Python.")
         (base32
          "171b7ip0hsq5qm83np40h3phlr36ym18w0lay0a8v08kvy3sy1jv"))))
     (build-system python-build-system)
-    (native-inputs
-     `(("python-setuptools" ,python-setuptools)))
     (inputs
      `(("python-six" ,python-six)))
     (home-page
@@ -5154,8 +5045,6 @@ connection to each user.")
            (base32
             "19fh75lni9pb673n2fn505m1rckm0af0szcv5xx1qm1xpa940glb"))))
     (build-system python-build-system)
-    (inputs
-     `(("python-setuptools" ,python-setuptools)))
     (home-page "https://github.com/cython/backports_abc")
     (synopsis "Backport of additions to the 'collections.abc' module")
     (description
@@ -5246,8 +5135,6 @@ applications.")
           (base32
             "002rkl4lsn6x2mxmf8ar00l0m8i3mzrc6pnzz77blyksmpsxa4x1"))))
     (build-system python-build-system)
-    (inputs
-      `(("python-setuptools" ,python-setuptools)))
     (home-page "http://pep8.readthedocs.org/")
     (synopsis "Python style guide checker")
     (description
@@ -5270,8 +5157,6 @@ PEP 8.")
           (base32
             "0qs2sgqszq7wcplis8509wk2ygqcrwzbs1ghfj3svvivq2j377pk"))))
     (build-system python-build-system)
-    (inputs
-      `(("python-setuptools" ,python-setuptools)))
     (home-page
       "https://github.com/pyflakes/pyflakes")
     (synopsis "Passive checker of Python programs")
@@ -5562,9 +5447,6 @@ term.js Javascript terminal emulator library.")
                 "08ay3x4ijarwhl60gqx2i9jzq6pxs20p4snc2d1q5jagh4rn39lb"))))
     (build-system python-build-system)
     (arguments '(#:test-target "check"))
-    (propagated-inputs
-     ;; XXX: module not found if setuptools is not available.
-     `(("python-setuptools" ,python-setuptools)))
     (home-page "http://github.com/behdad/fonttools")
     (synopsis "Tools to manipulate font files")
     (description
@@ -5594,8 +5476,6 @@ from an XML-based format.")
         (base32
          "0g6n288l83sfwavxh1aryi0aqvsr3sp7v6f903mckwqa4scpky62"))))
     (build-system python-build-system)
-    (native-inputs
-     `(("python-setuptools" ,python-setuptools)))
     (synopsis "Tool and library for manipulating LilyPond files")
     (description "This package provides a Python library to parse, manipulate
 or create documents in LilyPond format.  A command line program ly is also
@@ -5618,8 +5498,6 @@ provided that can be used to do various manipulations with LilyPond files.")
           (base32
             "1iddva7v3fq0aqzsahkazxr7vpw28mqcrsy818z4wyiqnkplbhlg"))))
     (build-system python-build-system)
-    (inputs
-      `(("python-setuptools" ,python-setuptools)))
     (home-page "http://github.com/ActiveState/appdirs")
     (synopsis
       "Determine platform-specific dirs, e.g. a \"user data dir\"")
@@ -5722,8 +5600,6 @@ reading and writing MessagePack data.")
           "06dxjlbcicq7q3vqy8agq11ra01kvvd47j4mk6dmghjsyzyckxd1"))))
     (build-system python-build-system)
     (arguments `(#:tests? #f)) ;; No tests.
-    (inputs
-      `(("python-setuptools" ,python-setuptools)))
     (home-page "https://github.com/drkjam/netaddr/")
     (synopsis "Pythonic manipulation of  network addresses")
     (description
@@ -5753,8 +5629,6 @@ and MAC network addresses.")
      ;; Tests are not included in the tarball, they are only available in the
      ;; git repository.
      `(#:tests? #f))
-    (inputs
-      `(("python-setuptools" ,python-setuptools)))
     (home-page "https://github.com/GrahamDumpleton/wrapt")
     (synopsis "Module for decorators, wrappers and monkey patching")
     (description
@@ -5778,8 +5652,6 @@ and MAC network addresses.")
        (base32
         "0c7gh3lsdjds262h0v1sqc66l7hqgfwbakn96qrhdbl0i3vm5yz8"))))
   (build-system python-build-system)
-  (inputs
-    `(("python-setuptools" ,python-setuptools)))
   (home-page "https://bitbucket.org/micktwomey/pyiso8601")
   (synopsis "Module to parse ISO 8601 dates")
   (description
@@ -5805,8 +5677,6 @@ and MAC network addresses.")
           (base32
             "0yz0bcbwx8r2c01czzfpbrxddynxyk9k95jj8h6sgcb7xmfvl998"))))
     (build-system python-build-system)
-    (inputs
-      `(("python-setuptools" ,python-setuptools)))
     (home-page "https://github.com/atdt/monotonic")
     (synopsis "Implementation of time.monotonic() for Python 2 & < 3.3")
     (description
@@ -5887,8 +5757,6 @@ Unicode-aware.  It is not intended as an end-user tool.")
         (base32
          "0diwsicwmiq2cpzpxri7cyl5fmsvicafw6nfqf6p6p322dji2g45"))))
     (build-system python-build-system)
-    (inputs
-      `(("python-setuptools" ,python-setuptools)))
     (home-page "http://code.google.com/p/prettytable/")
     (synopsis "Display tabular data in an ASCII table format")
     (description
@@ -5993,8 +5861,6 @@ suitable for a wide range of protocols based on the ASN.1 specification.")
          (base32
           "0drqgw81xd3fxdlg89kgd79zzrabvfncvkbybi2wr6w2y4s1jmhh"))))
     (build-system python-build-system)
-    (native-inputs
-     `(("python-setuptools" ,python-setuptools)))
     (propagated-inputs
      `(("python-pyasn1" ,python-pyasn1)))
     (home-page "http://sourceforge.net/projects/pyasn1/")
@@ -6077,8 +5943,6 @@ versions of Python.")
         (base32
          "0frxgmgi234lr9hylg62j69j4ik5zhg0wz05w5dhyacbjfnrl68n"))))
     (build-system python-build-system)
-    (native-inputs
-     `(("python-setuptools" ,python-setuptools)))
     (home-page "https://github.com/kjd/idna")
     (synopsis "Internationalized domain names in applications")
     (description
@@ -6107,8 +5971,6 @@ specification.")
         (base32
          "0r5r7ygz9m6d2bklflbl84cqhjkc2q12xgis8268ygjh30g2q3wk"))))
     (build-system python-build-system)
-    (native-inputs
-     `(("python-setuptools" ,python-setuptools)))
     (home-page "https://github.com/alex/pretend")
     (synopsis "Library for stubbing in Python")
     (description
@@ -6133,8 +5995,6 @@ responses, rather than doing any computation.")
         (base32
          "15h1iz2klnpb4f8djxy7cpbnyn3wbjp7bnj4pz6s7w6plghbq524"))))
     (build-system python-build-system)
-    (native-inputs
-     `(("python-setuptools" ,python-setuptools)))
     (home-page "https://github.com/pyca/cryptography")
     (synopsis "Test vectors for the cryptography package")
     (description
@@ -6168,7 +6028,6 @@ responses, rather than doing any computation.")
     (native-inputs
      `(("python-cryptography-vectors" ,python-cryptography-vectors)
        ("python-hypothesis" ,python-hypothesis)
-       ("python-setuptools" ,python-setuptools)
        ("python-pretend" ,python-pretend)
        ("python-pyasn1" ,python-pyasn1)
        ("python-pyasn1-modules" ,python-pyasn1-modules)
@@ -6214,8 +6073,6 @@ message digests and key derivation functions.")
        ("python-six" ,python-six)))
     (inputs
      `(("openssl" ,openssl)))
-    (native-inputs
-     `(("python-setuptools" ,python-setuptools)))
     (home-page "https://github.com/pyca/pyopenssl")
     (synopsis "Python wrapper module around the OpenSSL library")
     (description
@@ -6390,8 +6247,6 @@ serve the same purpose: provide Python bindings for libmagic.")))
     (build-system python-build-system)
     (inputs
      `(("python-six" ,python-six)))
-    (native-inputs
-     `(("python-setuptools" ,python-setuptools)))
     (home-page "http://packages.debian.org/sid/python-debian")
     (synopsis "Debian package related modules")
     (description
@@ -6431,8 +6286,6 @@ Debian-related files, such as:
         (base32
          "1ak87ikcw34fivcgiz2xvi938dmclh078az65l9x3rmgljrkhgp5"))))
     (build-system python-build-system)
-    (native-inputs
-     `(("python-setuptools" ,python-setuptools)))
     (home-page "https://github.com/chardet/chardet")
     (synopsis "Universal encoding detector for Python 2 and 3")
     (description
@@ -6491,8 +6344,6 @@ programatically with command-line parsers like @code{getopt} and
         (base32
          "11p75zpfz3ffhz21nzx9wb23xs993ck5s6hkjcvhswwizni5jynw"))))
     (build-system python-build-system)
-    (inputs
-     `(("python-setuptools" ,python-setuptools)))
     (home-page "http://pypi.python.org/pypi/zope.event")
     (synopsis "Event publishing system for Python")
     (description "Zope.event provides an event publishing API, intended for
@@ -6634,8 +6485,6 @@ tests.")
         (base32
          "1rslyph0klk58dmjjy4j0jxy21k03azksixc3x2xhqbkv97cmzml"))))
     (build-system python-build-system)
-    (inputs
-     `(("python-setuptools" ,python-setuptools)))
     (home-page "http://pypi.python.org/pypi/zope.i18nmessageid")
     (synopsis "Message identifiers for internationalization")
     (description "Zope.i18nmessageid provides facilities for declaring
@@ -7072,8 +6921,6 @@ tables.")
     (build-system python-build-system)
     (native-inputs
      `(("python-six" ,python-six))) ; for tests
-    (inputs
-     `(("python-setuptools" ,python-setuptools)))
     (home-page "https://github.com/liris/websocket-client")
     (synopsis "WebSocket client for Python")
     (description "The Websocket-client module provides the low level APIs for
@@ -7401,8 +7248,6 @@ Blog, News or Announcements section to a Sphinx website.")
                (base32
                 "057qzi46h5dmxdqknsbrssn78lmqjlnm624iqdhrnpk26zcbi1d7"))))
     (build-system python-build-system)
-    (inputs
-     `(("python-setuptools" ,python-setuptools)))
     (home-page "https://github.com/kennethreitz/args")
     (synopsis "Command-line argument parser")
     (description
@@ -7448,8 +7293,6 @@ output, progress bar display, and pipes.")
                (base32
                 "1fdafq5hkis1fxqlmhw0sn44zp2ar46nxhbc22cvwg7hsd8z5gsa"))))
     (build-system python-build-system)
-    (inputs
-     `(("python-setuptools" ,python-setuptools)))
     (home-page "https://github.com/berkerpeksag/astor")
     (synopsis "Read and write Python ASTs")
     (description
@@ -7560,8 +7403,6 @@ authenticated session objects providing things like keep-alive.")
     (arguments
      `(#:python ,python-2
        #:tests? #f)) ; no test target
-    (native-inputs
-     `(("python2-setuptools" ,python2-setuptools)))
     (home-page "https://github.com/MiCHiLU/python-functools32")
     (synopsis
      "Backport of the functools module from Python 3.2.3")
@@ -7583,8 +7424,6 @@ authenticated session objects providing things like keep-alive.")
           "1vcb34dqhzkhbq1957vdjszhhm5y3j9ba88dgwhqx2zynhmk9qig"))))
     (build-system python-build-system)
     (arguments `(#:python ,python-2))
-    (native-inputs
-     `(("python2-setuptools" ,python2-setuptools)))
     (home-page "https://github.com/agronholm/pythonfutures")
     (synopsis
      "Backport of the concurrent.futures package from Python 3.2")
@@ -7625,7 +7464,6 @@ concurrent.futures package from Python 3.2")
       (native-inputs
        `(("python2-futures" ,python2-futures)
          ("python2-pytest" ,python2-pytest)
-         ("python2-setuptools" ,python2-setuptools)
          ,@(package-native-inputs promise))))))
 
 (define-public python-urllib3
@@ -7676,8 +7514,6 @@ supports url redirection and retries, and also gzip and deflate decoding.")
       (base32
        "1716z9pq1r5ys3nkg7wdrb3h2f9rmd0zdxpxzmx3bgwgf6xg48gb"))))
    (build-system python-build-system)
-   (inputs
-    `(("python-setuptools" ,python-setuptools)))
    (synopsis "colored terminal text rendering for Python")
    (description "Colorama is a Python library for rendering colored terminal
 text.")
@@ -7725,8 +7561,6 @@ library as well as on the command line.")
       (base32
        "18qfzfm40bgx672lkg8q9x5hdh76n7vax99aank7vh2nw21wg70m"))))
    (build-system python-build-system)
-   (inputs
-    `(("python-setuptools" ,python-setuptools)))
    (synopsis "Plugin and hook calling mechanism for Python")
    (description "Pluggy is an extraction of the plugin manager as used by
 Pytest but stripped of Pytest specific details.")
@@ -7782,8 +7616,6 @@ servers.")
       (base32
        "0g9xvl69y7nr3w7ag4fsp6sm4fqf6vrqjw7504x2hzrrsh3ampq8"))))
    (build-system python-build-system)
-   (inputs
-    `(("python-setuptools" ,python-setuptools)))
    (synopsis "JSON Matching Expressions")
    (description "JMESPath (pronounced “james path”) is a Python library that
 allows one to declaratively specify how to extract elements from a JSON
@@ -7811,7 +7643,6 @@ document.")
       ("python-docutils" ,python-docutils)
       ("python-mock" ,python-mock)
       ("python-nose" ,python-nose)
-      ("python-setuptools" ,python-setuptools)
       ("python-tox" ,python-tox)
       ("python-wheel" ,python-wheel)
       ("python-jmespath" ,python-jmespath)))
@@ -7844,7 +7675,6 @@ interface to the Amazon Web Services (AWS) API.")
       ("python-mock" ,python-mock)
       ("python-nose" ,python-nose)
       ("python-rsa" ,python-rsa)
-      ("python-setuptools" ,python-setuptools)
       ("python-sphinx" ,python-sphinx)
       ("python-tox" ,python-tox)
       ("python-wheel" ,python-wheel)
@@ -7897,9 +7727,6 @@ seamlessly into your existing Python unit testing work flow.")
                (base32
                 "15kzcr5pchf3id4ikdvlv752rc0j4d912n589l4rifp8qsj19l1x"))))
     (build-system python-build-system)
-    (native-inputs
-     `(;; setuptools required for python-2 variant
-       ("python-setuptools" ,python-setuptools)))
     (propagated-inputs
      `(("python-pytest" ,python-pytest)))
     (synopsis "Set-up and tear-down fixtures for unit tests")
@@ -8078,10 +7905,7 @@ and to spawn subprocesses to handle requests.")
     (build-system python-build-system)
     (native-inputs
      `(("python-nose" ,python-nose)))
-    (propagated-inputs
-     ;; This package uses pkg_resources, part of setuptools, during runtime,
-     ;; hence why not a native-input.
-     `(("python-setuptools" ,python-setuptools)))
+    ;; Note: setuptools used at runtime for pkg_resources
     (home-page "http://pythonpaste.org/deploy/")
     (synopsis
      "Load, configure, and compose WSGI applications and servers")
@@ -8911,8 +8735,6 @@ is made as zipfile like as possible.")
                         port)
                (close-port port)
                #t))))))
-    (native-inputs
-     `(("python-setuptools" ,python-setuptools)))
     (inputs
      ;; python-magic needs to be able to find libmagic.so.
      `(("file" ,file)))
@@ -8947,8 +8769,6 @@ the same purpose: to provide Python bindings for libmagic.")
      ;; s3cmd is written for python2 only and contains no tests.
      `(#:python ,python-2
        #:tests? #f))
-    (native-inputs
-     `(("python2-setuptools" ,python2-setuptools)))
     (inputs
      `(("python2-dateutil" ,python2-dateutil)
        ;; The python-file package also provides a magic.py module.
@@ -9043,8 +8863,6 @@ development version of CPython that are not available in older releases.")
                (strip-python2-variant python-bz2file))))
     (package
       (inherit base)
-      (native-inputs
-       `(("python2-setuptools" ,python2-setuptools)))
       (arguments
        `(#:python ,python-2
          #:phases
@@ -9101,7 +8919,6 @@ to support both Python 2 and Python 3 with minimal overhead.")
     (build-system python-build-system)
     (native-inputs
       `(("python-cython" ,python-cython)
-        ("python-setuptools" ,python-setuptools)
         ("python-sphinx" ,python-sphinx)))
     (inputs
       `(("pari-gp" ,pari-gp)))
@@ -9163,7 +8980,6 @@ respectively.")
                                    "            line += ' -L" pcre "/lib"
                                    " -L " libgc "/lib'")))
                   #t))))))
-  (native-inputs `(("python2-setuptools" ,python2-setuptools)))
   (inputs `(("pcre" ,pcre)
             ("libgc" ,libgc)))
   (home-page "https://shedskin.github.io/")
@@ -9211,8 +9027,6 @@ to occurences in strings and comments.")
         (base32
          "0i283z1pivmir61z8kbiycigc94l61v33ygzkhczf1ifq7cppyds"))))
     (build-system python-build-system)
-    (native-inputs
-     `(("python-setuptools" ,python-setuptools)))
     (home-page "https://github.com/ultrabug/py3status")
     (synopsis "Extensible i3status wrapper written in Python")
     (description "py3status is an i3status wrapper which extends i3status
@@ -9244,7 +9058,6 @@ own code, responding to click events and updating clock every second.")
              (zero? (system* "py.test" "-vv" "tests" "README.rst")))))))
     (native-inputs
      `(("python-pytest" ,python-pytest)
-       ("python-setuptools" ,python-setuptools)
        ("python-six" ,python-six)))
     (home-page "https://github.com/ionelmc/python-tblib")
     (synopsis "Traceback serialization library")
@@ -9308,8 +9121,6 @@ provides support for parsing, splitting and formatting SQL statements.")
                (base32
                 "04h0m54dyqg49vyarq26mry6kbivnpl47rnmmrk9qn8wpfxviybr"))))
     (build-system python-build-system)
-    (native-inputs
-     `(("python-setuptools" ,python-setuptools)))
     (home-page "https://greenlet.readthedocs.io/")
     (synopsis "Lightweight in-process concurrent programming")
     (description
@@ -9372,8 +9183,6 @@ to provide a high-level synchronous API on top of the libev event loop.")
                (base32
                 "0ydxrp9myw1mvsz3qfzx5579y5llmqa82pxvqchgp5syczffi450"))))
     (build-system python-build-system)
-    (native-inputs
-     `(("python-setuptools" ,python-setuptools)))
     (propagated-inputs
      `(("python-zope-interface" ,python-zope-interface)))
     (home-page "https://twistedmatrix.com/")
@@ -9484,8 +9293,6 @@ data in Python.")
          "10pb864if9qi2pq9lfb9m8f7z7ss6rml80gf1d9h64lap5crjnjj"))))
     (build-system python-build-system)
     (arguments '(#:tests? #f)) ; XXX: needs zookeeper
-    (native-inputs
-     `(("python-setuptools" ,python-setuptools)))
     (propagated-inputs
      `(("python-six" ,python-six)))
     (home-page "https://kazoo.readthedocs.org")
@@ -9514,8 +9321,6 @@ programming errors.")
                 "1id6sr159p6aa13bxcqyr9gln8sqg1l0ddzns5iws8kk5q1p5cfv"))))
     (build-system python-build-system)
     (arguments '(#:tests? #f)) ; XXX: needs zookeeper, kafka, etc.
-    (native-inputs
-     `(("python-setuptools" ,python-setuptools)))
     (propagated-inputs
      `(("python-gevent" ,python-gevent)
        ("python-kazoo" ,python-kazoo)
@@ -9577,8 +9382,6 @@ specified in POSIX.1-2001 and POSIX.1-2008.")
                (base32
                 "02vgirw2bcgvpcxhv5hf3yvvb4h5wzd1lpjx8na5psdmaffj6l3z"))))
     (build-system python-build-system)
-    (native-inputs
-     `(("python2-setuptools" ,python2-setuptools)))
     (arguments
      `(#:tests? #f
        #:python ,python-2))
@@ -9602,8 +9405,6 @@ etc.")
                (base32
                 "016kf3irrclpkpvcm7q0gmkfibq7jgy30a9v73pp42bq9h9a32bl"))))
     (build-system python-build-system)
-    (native-inputs
-     `(("python-setuptools" ,python-setuptools)))
     (home-page "https://github.com/agoragames/chai")
     (synopsis "Mocking framework for Python")
     (description
@@ -9654,8 +9455,6 @@ datetime type.")
               (base32
                "1jhnxgnw8y3mbzjssixh6qkc7a3afc4fygajhqrqalnilyvpzshq"))))
     (build-system python-build-system)
-    (native-inputs
-     `(("python-setuptools" ,python-setuptools)))
     (home-page "http://github.com/jpvanhal/inflection")
     (synopsis "Python string transformation library")
     (description
@@ -9678,8 +9477,6 @@ underscored string.")
                (base32
                 "1hz1x9blsbxya1y9nnhnwwdnqmakxi9mc0jkwj0rn6b1h44i0f86"))))
     (build-system python-build-system)
-    (native-inputs
-     `(("python-setuptools" ,python-setuptools)))
     (home-page "http://github.com/toastdriven/pylev")
     (synopsis "Levenshtein distance implementation in Python")
     (description "Pure Python Levenshtein implementation, based off the
@@ -9730,8 +9527,6 @@ docstring and colored output.")
                (base32
                 "0s22aqqkdscyh8sjspyyax7qa1aiz8p4midrnyf39717fhfczm6x"))))
     (build-system python-build-system)
-    (native-inputs
-     `(("python-setuptools" ,python-setuptools)))
     (home-page "https://github.com/ionelmc/python-lazy-object-proxy")
     (synopsis "Lazy object proxy for python")
     (description
@@ -9755,8 +9550,6 @@ until the object is actually required, and caches the result of said call.")
               "1z472r63gdqsxhsxj3plr5vs478yf4303vrqxxpsccc940g441hl"))))
   (build-system python-build-system)
   (arguments '(#:tests? #f)) ; XXX: requires internet access
-  (native-inputs
-   `(("python-setuptools" ,python-setuptools)))
   (home-page "http://www.dnspython.org")
   (synopsis "DNS toolkit for Python")
   (description
@@ -9787,8 +9580,6 @@ It supports TSIG authenticated messages and EDNS0.")
              (substitute* "setup.py"
                (("dnspython3") "dnspython"))
              #t)))))
-    (native-inputs
-     `(("python-setuptools" ,python-setuptools)))
     (propagated-inputs
      `(("python-dnspython" ,python-dnspython)
        ("python-idna" ,python-idna)))
@@ -9812,8 +9603,6 @@ It supports TSIG authenticated messages and EDNS0.")
                (base32
                 "1jwg9z4rz51mcka1821rwgycsd0mcicyp1kiwjfa2kvg8bm9p2qd"))))
     (build-system python-build-system)
-    (native-inputs
-     `(("python-setuptools" ,python-setuptools)))
     (home-page "https://github.com/hamstah/ukpostcodeparser")
     (synopsis "UK Postcode parser for Python")
     (description
@@ -9872,8 +9661,6 @@ addresses, and phone numbers.")
                (base32
                 "1f5m28vkh4ksq3d80d8mmd2z8wxvc3mgy2pmrv2751dm2xgznm4w"))))
     (build-system python-build-system)
-    (native-inputs
-     `(("python-setuptools" ,python-setuptools)))
     (propagated-inputs
      `(("python-pyyaml" ,python-pyyaml)))
     (home-page "https://github.com/mk-fg/pretty-yaml")
@@ -9897,8 +9684,6 @@ YAML-serialized data.")
                (base32
                 "0arc6njvs6i9v9hgvzk5m50296g7zy5m9d7pyb43vdsdgxrci5gy"))))
     (build-system python-build-system)
-    (native-inputs
-     `(("python-setuptools" ,python-setuptools)))
     (home-page "https://flexmock.readthedocs.org")
     (synopsis "Testing library for Python")
     (description
@@ -9921,8 +9706,6 @@ mocks, stubs and fakes.")
                 "1li49irsqha17nrda4nsb48biyy0rarp9pphf0jpqwm5zr8hv569"))))
     (build-system python-build-system)
     (arguments '(#:tests? #f)) ; no tests
-    (native-inputs
-     `(("python-setuptools" ,python-setuptools)))
     (propagated-inputs
      `(("python-arrow" ,python-arrow)
        ("python-blinker" ,python-blinker)
@@ -10921,8 +10704,6 @@ with an associated set of resolve methods that know how to fetch data.")
           "01hwzjc1zshk4vvxrcghm398fpy4jls66dyz06g07mrwqif8878p"))))
     (build-system python-build-system)
     (arguments `(#:tests? #f)) ; fails to import test modules
-    (native-inputs
-     `(("python-setuptools" ,python-setuptools)))
     (inputs
      `(("python-bcrypt" ,python-bcrypt)
        ("python-click" ,python-click)
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 37+ messages in thread

* [PATCH 06/14] gnu: Remove python-setuptools and python2-setuptools from inputs (part 2)
  2016-09-28 13:58 [PATCH 00/14] Change python-build-system (fixes bug 20765) Hartmut Goebel
                   ` (4 preceding siblings ...)
  2016-09-28 13:58 ` [PATCH 05/14] gnu: Remove python-setuptools and python2-setuptools from inputs (part 1) Hartmut Goebel
@ 2016-09-28 13:58 ` Hartmut Goebel
  2016-09-28 13:58 ` [PATCH 07/14] gnu: Remove python-setuptools and python2-setuptools from inputs (part 3) Hartmut Goebel
                   ` (9 subsequent siblings)
  15 siblings, 0 replies; 37+ messages in thread
From: Hartmut Goebel @ 2016-09-28 13:58 UTC (permalink / raw)
  To: guix-devel

This are the simple changes (only lines removed) in all modules beside
python.scm.

* gnu/packages/admin.scm
* gnu/packages/backup.scm
* gnu/packages/bioinformatics.scm
* gnu/packages/django.scm
* gnu/packages/docker.scm
* gnu/packages/game-development.scm
* gnu/packages/key-mon.scm
* gnu/packages/mail.scm
* gnu/packages/music.scm
* gnu/packages/openstack.scm
* gnu/packages/tls.scm
---
 gnu/packages/admin.scm            |  4 ----
 gnu/packages/backup.scm           |  2 --
 gnu/packages/bioinformatics.scm   |  8 --------
 gnu/packages/django.scm           |  6 ------
 gnu/packages/docker.scm           |  2 --
 gnu/packages/game-development.scm |  2 --
 gnu/packages/key-mon.scm          |  2 --
 gnu/packages/mail.scm             |  2 --
 gnu/packages/music.scm            |  1 -
 gnu/packages/openstack.scm        | 12 ------------
 gnu/packages/tls.scm              |  1 -
 11 files changed, 42 deletions(-)

diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm
index c0eed7b..443f895 100644
--- a/gnu/packages/admin.scm
+++ b/gnu/packages/admin.scm
@@ -1323,8 +1323,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
@@ -1684,8 +1682,6 @@ 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)
diff --git a/gnu/packages/backup.scm b/gnu/packages/backup.scm
index e77c4f2..ac341d3 100644
--- a/gnu/packages/backup.scm
+++ b/gnu/packages/backup.scm
@@ -334,8 +334,6 @@ errors.")
         (base32
          "1nwmmh816f96h0ff1jxk95ad38ilbhbdl5dgibx1d4cl81dsi48d"))))
     (build-system python-build-system)
-    (native-inputs
-     `(("python2-setuptools" ,python2-setuptools)))
     (inputs
      `(("python" ,python-2)
        ("librsync" ,librsync)))
diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
index 1f11052..445c161 100644
--- a/gnu/packages/bioinformatics.scm
+++ b/gnu/packages/bioinformatics.scm
@@ -2691,8 +2691,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
@@ -2971,8 +2969,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
@@ -3393,7 +3389,6 @@ interrupted by stop codons.  OrfM finds and prints these ORFs.")
     (native-inputs
      `(("python-docutils" ,python2-docutils)
        ("python-nose" ,python2-nose)
-       ("python-setuptools" ,python2-setuptools)
        ("python-sphinx" ,python2-sphinx)))
     (home-page "http://pacificbiosciences.github.io/pbcore/")
     (synopsis "Library for reading and writing PacBio data files")
@@ -3898,7 +3893,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)))
@@ -7238,8 +7232,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
diff --git a/gnu/packages/django.scm b/gnu/packages/django.scm
index 8d4a7e4..90baccd 100644
--- a/gnu/packages/django.scm
+++ b/gnu/packages/django.scm
@@ -55,10 +55,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
@@ -113,8 +109,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
diff --git a/gnu/packages/docker.scm b/gnu/packages/docker.scm
index 0760001..3cfdb7e 100644
--- a/gnu/packages/docker.scm
+++ b/gnu/packages/docker.scm
@@ -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)))
diff --git a/gnu/packages/game-development.scm b/gnu/packages/game-development.scm
index 5e6cf0b..65f7d87 100644
--- a/gnu/packages/game-development.scm
+++ b/gnu/packages/game-development.scm
@@ -584,8 +584,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)
diff --git a/gnu/packages/key-mon.scm b/gnu/packages/key-mon.scm
index c76360c..6237a17 100644
--- a/gnu/packages/key-mon.scm
+++ b/gnu/packages/key-mon.scm
@@ -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)
diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm
index 09c15e2..28a7bf7 100644
--- a/gnu/packages/mail.scm
+++ b/gnu/packages/mail.scm
@@ -1258,8 +1258,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)
diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm
index 796ec7a..7501821 100644
--- a/gnu/packages/music.scm
+++ b/gnu/packages/music.scm
@@ -1749,7 +1749,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)
diff --git a/gnu/packages/openstack.scm b/gnu/packages/openstack.scm
index 62f1e84..9cbce7b 100644
--- a/gnu/packages/openstack.scm
+++ b/gnu/packages/openstack.scm
@@ -51,7 +51,6 @@
         ("python-stevedore" ,python-stevedore)))
     (inputs
       `(("python-pbr" ,python-pbr)
-        ("python-setuptools" ,python-setuptools)
         ;; Tests
         ("python-fixtures" ,python-fixtures)
         ("python-mock" ,python-mock)
@@ -88,7 +87,6 @@ all the files it generates a report.")
     (inputs
       `(("python-babel" ,python-babel)
         ("python-pbr" ,python-pbr)
-        ("python-setuptools" ,python-setuptools)
         ;; Tests.
         ("python-oslotest" ,python-oslotest)))
     (home-page "http://www.openstack.org/")
@@ -152,7 +150,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/")
@@ -188,7 +185,6 @@ tested on Python version 3.2, 2.7 and 2.6.")
         ("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/")
@@ -383,7 +379,6 @@ common features used in Tempest.")
         ("python-stevedore" ,python-stevedore)))
     (inputs
       `(("python-pbr" ,python-pbr)
-        ("python-setuptools" ,python-setuptools)
         ;; Tests
         ("python-oslo.i18n" ,python-oslo.i18n)
         ("python-mock" ,python-mock)
@@ -414,7 +409,6 @@ common features used in Tempest.")
     (inputs
       `(("python-babel" ,python-babel)
         ("python-pbr" ,python-pbr)
-        ("python-setuptools" ,python-setuptools)
         ;; Tests.
         ("python-oslotest" ,python-oslotest)))
     (home-page "http://launchpad.net/oslo")
@@ -445,7 +439,6 @@ pipeline and used by various modules such as logging.")
         ("python-six" ,python-six)))
     (inputs
       `(("python-pbr" ,python-pbr)
-        ("python-setuptools" ,python-setuptools)
         ;; Tests
         ("python-mock" ,python-mock)
         ("python-mox3" ,python-mox3)
@@ -525,7 +518,6 @@ handlers and support for context specific logging (like resource id’s etc).")
     (inputs
       `(("python-babel" ,python-babel)
         ("python-pbr" ,python-pbr)
-        ("python-setuptools" ,python-setuptools)
         ;; Tests.
         ("python-mock" ,python-mock)
         ("python-oslo.i18n" ,python-oslo.i18n)
@@ -558,7 +550,6 @@ in transmittable and storable formats, such as JSON and MessagePack.")
       `(("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")
@@ -593,7 +584,6 @@ from the OpenStack project.")
     (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)
@@ -637,7 +627,6 @@ and better support for mocking results.")
     (inputs
       `(("python-babel" ,python-babel)
         ("python-pbr" ,python-pbr)
-        ("python-setuptools" ,python-setuptools)
         ;; Tests.
         ("python-oslotest" ,python-oslotest)
         ("python-mock" ,python-mock)
@@ -743,7 +732,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)
diff --git a/gnu/packages/tls.scm b/gnu/packages/tls.scm
index 15e3e43..126e9df 100644
--- a/gnu/packages/tls.scm
+++ b/gnu/packages/tls.scm
@@ -501,7 +501,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)
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 37+ messages in thread

* [PATCH 07/14] gnu: Remove python-setuptools and python2-setuptools from inputs (part 3)
  2016-09-28 13:58 [PATCH 00/14] Change python-build-system (fixes bug 20765) Hartmut Goebel
                   ` (5 preceding siblings ...)
  2016-09-28 13:58 ` [PATCH 06/14] gnu: Remove python-setuptools and python2-setuptools from inputs (part 2) Hartmut Goebel
@ 2016-09-28 13:58 ` Hartmut Goebel
  2016-09-28 13:58 ` [PATCH 08/14] gnu: Remove python-setuptools and python2-setuptools from inputs (part 4) Hartmut Goebel
                   ` (8 subsequent siblings)
  15 siblings, 0 replies; 37+ messages in thread
From: Hartmut Goebel @ 2016-09-28 13:58 UTC (permalink / raw)
  To: guix-devel

These are the easy changes, where python-setuptools resp. python2-setuptools
is removed, and some code-lines beside have been affected.

* gnu/packages/admin.scm
* gnu/packages/backup.scm
* gnu/packages/bioinformatics.scm
* gnu/packages/docbook.scm
* gnu/packages/freedesktop.scm
* gnu/packages/lirc.scm
* gnu/packages/mp3.scm
* gnu/packages/nutrition.scm
* gnu/packages/openstack.scm
* gnu/packages/password-utils.scm
* gnu/packages/python.scm
* gnu/packages/rdf.scm
* gnu/packages/terminals.scm
* gnu/packages/version-control.scm
* gnu/packages/xdisorg.scm
---
 gnu/packages/admin.scm           |   3 +-
 gnu/packages/backup.scm          |   3 +-
 gnu/packages/bioinformatics.scm  |  48 +++------
 gnu/packages/docbook.scm         |   3 +-
 gnu/packages/freedesktop.scm     |   3 +-
 gnu/packages/lirc.scm            |   3 +-
 gnu/packages/mp3.scm             |   3 +-
 gnu/packages/nutrition.scm       |   6 +-
 gnu/packages/openstack.scm       |  18 ++--
 gnu/packages/password-utils.scm  |   3 +-
 gnu/packages/python.scm          | 227 +++++++++++++--------------------------
 gnu/packages/rdf.scm             |   3 +-
 gnu/packages/terminals.scm       |   3 +-
 gnu/packages/version-control.scm |   3 +-
 gnu/packages/xdisorg.scm         |   3 +-
 15 files changed, 111 insertions(+), 221 deletions(-)

diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm
index 443f895..1a50036 100644
--- a/gnu/packages/admin.scm
+++ b/gnu/packages/admin.scm
@@ -1345,8 +1345,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)
diff --git a/gnu/packages/backup.scm b/gnu/packages/backup.scm
index ac341d3..7c7273e 100644
--- a/gnu/packages/backup.scm
+++ b/gnu/packages/backup.scm
@@ -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)
diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
index 445c161..611cbb6 100644
--- a/gnu/packages/bioinformatics.scm
+++ b/gnu/packages/bioinformatics.scm
@@ -213,8 +213,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)
@@ -470,8 +469,7 @@ intended to behave exactly the same as the original BWK awk.")
        ("samtools" ,samtools)))
     (native-inputs
      `(("python-pyyaml" ,python2-pyyaml)
-       ("python-nose" ,python2-nose)
-       ("python-setuptools" ,python2-setuptools)))
+       ("python-nose" ,python2-nose)))
     (home-page "https://pythonhosted.org/pybedtools/")
     (synopsis "Python wrapper for BEDtools programs")
     (description
@@ -1278,8 +1276,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
@@ -1311,8 +1308,7 @@ multiple sequence alignments.")
      `(("ncurses"           ,ncurses)
        ("zlib"              ,zlib)))
     (native-inputs
-     `(("python-cython"     ,python-cython)
-       ("python-setuptools" ,python-setuptools)))
+     `(("python-cython"     ,python-cython)))
     (home-page "https://github.com/pysam-developers/pysam")
     (synopsis "Python bindings to the SAMtools C API")
     (description
@@ -1478,9 +1474,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
@@ -1653,8 +1648,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
@@ -1752,8 +1746,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
@@ -1906,9 +1899,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
@@ -2564,8 +2556,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 +2802,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
@@ -3295,9 +3285,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
@@ -3432,8 +3421,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")
@@ -3495,8 +3483,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
@@ -4608,8 +4595,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
diff --git a/gnu/packages/docbook.scm b/gnu/packages/docbook.scm
index 3d18d45..8efe417 100644
--- a/gnu/packages/docbook.scm
+++ b/gnu/packages/docbook.scm
@@ -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)
diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm
index 84154b3..4f885a0 100644
--- a/gnu/packages/freedesktop.scm
+++ b/gnu/packages/freedesktop.scm
@@ -251,8 +251,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
diff --git a/gnu/packages/lirc.scm b/gnu/packages/lirc.scm
index b8fbeb6..d4c2d18 100644
--- a/gnu/packages/lirc.scm
+++ b/gnu/packages/lirc.scm
@@ -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))))))
diff --git a/gnu/packages/mp3.scm b/gnu/packages/mp3.scm
index 37407cd..eac2d23 100644
--- a/gnu/packages/mp3.scm
+++ b/gnu/packages/mp3.scm
@@ -470,8 +470,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")
diff --git a/gnu/packages/nutrition.scm b/gnu/packages/nutrition.scm
index 6363798..9e0430b 100644
--- a/gnu/packages/nutrition.scm
+++ b/gnu/packages/nutrition.scm
@@ -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
diff --git a/gnu/packages/openstack.scm b/gnu/packages/openstack.scm
index 9cbce7b..eee066e 100644
--- a/gnu/packages/openstack.scm
+++ b/gnu/packages/openstack.scm
@@ -121,8 +121,7 @@ manner.")
         ("python-pyflakes-0.8.1" ,python-pyflakes-0.8.1)
         ("python-six" ,python-six)))
     (inputs
-      `(("python-setuptools" ,python-setuptools)
-        ;; Tests
+      `(;; Tests
         ("python-testscenarios" ,python-testscenarios)))
     (home-page "http://github.com/openstack-dev/hacking")
     (synopsis "OpenStack hacking guideline enforcement")
@@ -221,8 +220,7 @@ tested on Python version 3.2, 2.7 and 2.6.")
        ("python-subunit" ,python-subunit)
        ("python-testtools" ,python-testtools)))
     (inputs
-      `(("python-babel" ,python-babel)
-        ("python-setuptools" ,python-setuptools)))
+      `(("python-babel" ,python-babel)))
     (home-page "http://www.openstack.org/")
     (synopsis "Testr wrapper to provide functionality for OpenStack projects")
     (description
@@ -290,8 +288,7 @@ portions of your testing code.")
     (inputs
       `(("python-pbr" ,python-pbr)))
     (native-inputs
-      `(("python-setuptools" ,python-setuptools)
-        ;; Tests
+      `(;; Tests
         ("python-docutils" ,python-docutils)
         ("python-mock" ,python-mock)
         ("python-oslotest" ,python-oslotest)
@@ -345,8 +342,7 @@ extensions.")
       `(("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 "http://www.openstack.org/")
     (synopsis "OpenStack functional testing library")
     (description
@@ -483,8 +479,7 @@ in an application or library.")
       ("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
@@ -656,8 +651,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)
diff --git a/gnu/packages/password-utils.scm b/gnu/packages/password-utils.scm
index d2410c6..a5e5276 100644
--- a/gnu/packages/password-utils.scm
+++ b/gnu/packages/password-utils.scm
@@ -238,8 +238,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
diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index 242036f..a1cb188 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -436,8 +436,7 @@ pidof, tty, taskset, pmap.")
          "1z27wdxs5rj5xhhqfzvzn3yg682irkxw6dcs5jj7mcf97psk8gd8"))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-nose" ,python-nose)
-       ("python-setuptools" ,python-setuptools)))
+     `(("python-nose" ,python-nose)))
     (inputs
      `(("python-py-bcrypt" ,python-py-bcrypt)))
     (arguments
@@ -640,8 +639,7 @@ using Python 2.4 or higher and provides access to the Olson timezone database.")
         "0k43pi0p1dwpds2w0km3fw92wixzxv2vw7p09capxmjz5cfh23lw"))))
     (build-system python-build-system)
     (inputs
-     `(("python-pytz" ,python-pytz)
-       ("python-setuptools" ,python-setuptools)))
+     `(("python-pytz" ,python-pytz)))
     (arguments `(#:tests? #f)) ; no test target
     (home-page "http://babel.pocoo.org/")
     (synopsis
@@ -1349,8 +1347,7 @@ backported for previous versions of Python from 2.4 to 3.3.")
         "0iv1c34npr4iynwpgv1vkjx9rjd18a85ir8c01gc5f7wp8iv7l1x"))))
     (build-system python-build-system)
     (inputs
-     `(("python-setuptools" ,python-setuptools)
-       ("python-six" ,python-six)
+     `(("python-six" ,python-six)
        ("python-parse" ,python-parse)))
     (arguments '(#:tests? #f))            ;TODO: tests require pytest
     (home-page "https://github.com/jenisys/parse_type")
@@ -1597,8 +1594,7 @@ code introspection, and logging.")
             "@pytest.mark.xfail\n    def test_remove_dir_prefix(self):")))))
     (build-system python-build-system)
     (inputs
-     `(("python-setuptools" ,python-setuptools)
-       ("python-py" ,python-py)
+     `(("python-py" ,python-py)
        ("python-nose" ,python-nose)
        ("python-mock" ,python-mock)))
     (home-page "http://pytest.org")
@@ -1784,8 +1780,7 @@ result back.")
          "0f4w84k8ck82syys7yg9maz93mqzc8p5ymis941x034v44jzq74m"))))
     (build-system python-build-system)
     (inputs
-     `(("python-setuptools" ,python-setuptools)
-       ("python-pytest" ,python-pytest)))
+     `(("python-pytest" ,python-pytest)))
     (home-page "http://pythonpaste.org/scripttest/")
     (synopsis "Python library to test command-line scripts")
     (description "Scripttest is a Python helper library for testing
@@ -1813,8 +1808,7 @@ subprocess and see the output as well as any file modifications.")
     (propagated-inputs
      `(("python-mimeparse" ,python-mimeparse)))
     (inputs
-     `(("python-setuptools" ,python-setuptools)
-       ("python-extras" ,python-extras)))
+     `(("python-extras" ,python-extras)))
     (home-page "https://github.com/testing-cabal/testtools")
     (synopsis
      "Extensions to the Python standard library unit testing framework")
@@ -1842,8 +1836,7 @@ compatibility.")
          "1671jvrvqlmbnc42j7pc5y6vc37q44aiwrq0zic652pxyy2fxvjg"))))
     (build-system python-build-system)
     (inputs
-     `(("python-setuptools" ,python-setuptools)
-       ("python-testtools" ,python-testtools)
+     `(("python-testtools" ,python-testtools)
        ("python-mimeparse" ,python-mimeparse)))
     (home-page "https://launchpad.net/testscenarios")
     (synopsis "Pyunit extension for dependency injection")
@@ -1895,8 +1888,7 @@ use of resources by test cases.")
          "1nkw9wfbvizmpajbj3in8ns07g7lwkiv8hip14jjlwk3cacls6jv"))))
     (build-system python-build-system)
     (inputs
-     `(("python-setuptools" ,python-setuptools)
-       ("python-testtools" ,python-testtools)
+     `(("python-testtools" ,python-testtools)
        ("python-mimeparse" ,python-mimeparse)
        ("python-testscenarios" ,python-testscenarios)))
     (home-page "http://launchpad.net/subunit")
@@ -1959,9 +1951,7 @@ Python tests.")
     (arguments
      `(#:tests? #f)) ;; Most tests seem to use the Internet.
     (inputs
-      `(("python-fixtures-0.3.16" ,python-fixtures-0.3.16)
-        ("python-pip" ,python-pip)
-        ("python-setuptools" ,python-setuptools)))
+      `(("python-fixtures-0.3.16" ,python-fixtures-0.3.16)))
     (home-page "https://launchpad.net/pbr")
     (synopsis "Change the default behavior of Python’s setuptools")
     (description
@@ -1996,8 +1986,7 @@ and sensible default behaviors into your setuptools run.")
       `(("python-fixtures" ,python-fixtures)
         ("python-mimeparse" ,python-mimeparse)
         ("python-mock" ,python-mock)
-        ("python-setuptools" ,python-setuptools)
-        ("python-six" ,python-six)
+         ("python-six" ,python-six)
         ("python-sphinx" ,python-sphinx)
         ("python-testrepository" ,python-testrepository)
         ("python-testresources" ,python-testresources)
@@ -2063,8 +2052,7 @@ Python tests.")
      `(("python-fixtures-0.3.16" ,python-fixtures-0.3.16)
        ("python-testtools" ,python-testtools)))
     (inputs
-     `(("python-setuptools" ,python-setuptools)
-       ("python-subunit" ,python-subunit)
+     `(("python-subunit" ,python-subunit)
        ("python-mimeparse" ,python-mimeparse)))
     (home-page "https://launchpad.net/testrepository")
     (synopsis "Database for Python test results")
@@ -2166,8 +2154,7 @@ backported from Python 2.7 for Python 2.4+.")
                "1iypp6z46r19n4xmgx6m1lwmlpfjh8vapq8izigrqlaarvp2y64c"))))
     (build-system python-build-system)
     (inputs
-     `(("python-setuptools" ,python-setuptools)
-       ("python-six" ,python-six)
+     `(("python-six" ,python-six)
        ("python-parse" ,python-parse)
        ("python-parse-type" ,python-parse-type)))
     (arguments `(#:tests? #f))          ;TODO: tests require nose>=1.3 and
@@ -2295,8 +2282,7 @@ with sensible defaults out of the box.")
           "0j0n38hg1jvrmyy68f9ikvzq1gs9g0sx4ws7maf8wi3bwbbqmfqy"))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-setuptools" ,python-setuptools)
-       ("python-jsonschema" ,python-jsonschema)
+     `(("python-jsonschema" ,python-jsonschema)
        ("python-pytest-cov" ,python-pytest-cov)))
     (home-page "https://bitbucket.org/pypa/wheel/")
     (synopsis "Format for built Python packages")
@@ -2331,8 +2317,7 @@ installed with a newer @code{pip} or with wheel's own command line utility.")
                "0zsqrzlybf25xscgi7ja4s48y2abf9wvjkn47wh984qgs1fq2xy5"))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-setuptools" ,python-setuptools)
-       ("python-py" ,python-py)
+     `(("python-py" ,python-py)
        ("python-pytest" ,python-pytest)
        ("python-pytest-cov" ,python-pytest-cov)
        ("python-wheel" ,python-wheel)))
@@ -2395,8 +2380,7 @@ version numbers.")
                "0hddbqjm4jq63y8jf44nswina1crjs16l9snb6m3vvgyg31klrrn"))))
     (build-system python-build-system)
     (inputs
-     `(("python-setuptools" ,python-setuptools)
-       ("python-vcversioner" ,python-vcversioner)))
+     `(("python-vcversioner" ,python-vcversioner)))
     (home-page "http://github.com/Julian/jsonschema")
     (synopsis "Implementation of JSON Schema for Python")
     (description
@@ -2449,8 +2433,7 @@ somewhat intelligeble.")
          "1556v2jppd8mjkkj66pxb5rcazm35jq81r233mdl8hfmz9n3icp1"))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-setuptools" ,python-setuptools)
-       ("python-pytest-runner" ,python-pytest-runner)))
+     `(("python-pytest-runner" ,python-pytest-runner)))
     (arguments
      '(#:tests? #f)) ; test suite doesn't work
     (home-page "http://github.com/progrium/pyjwt")
@@ -2579,8 +2562,7 @@ object.")
                (("skipif.*") "skipif(True, reason=\"Guix\")\n"))
              (zero? (system* "py.test")))))))
     (inputs
-     `(("python-setuptools" ,python-setuptools)
-       ("python-mock" ,python-mock)
+     `(("python-mock" ,python-mock)
        ("python-pytest" ,python-pytest)))
     (home-page "https://virtualenv.pypa.io/")
     (synopsis "Virtual Python environment builder")
@@ -2628,8 +2610,7 @@ for Python.")
          "1x0v41lp5m1pjix3l46zx02b7lqp2hflgpnxwkywxynvi3zz47xw"))))
     (build-system python-build-system)
     (inputs
-     `(("python-setuptools" ,python-setuptools)
-       ("python-markupsafe" ,python-markupsafe)))
+     `(("python-markupsafe" ,python-markupsafe)))
     (home-page "http://jinja.pocoo.org/")
     (synopsis "Python template engine")
     (description
@@ -2674,8 +2655,7 @@ logic-free templating system Mustache.")
                 "1dvw3f8jgj6h0fxkghbgyclvdzc7l0ig7n0vis70awb5kczb9bs3"))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-setuptools" ,python-setuptools)
-       ("python-nose"       ,python-nose)))
+     `(("python-nose"       ,python-nose)))
     (home-page "http://pythonhosted.org/joblib/")
     (synopsis "Using Python functions as pipeline jobs")
     (description
@@ -2753,8 +2733,7 @@ reStructuredText.")
          "011xizm3jnmf4cvs5i6kgf6c5nn046h79i8j0vd0f27yw9j3p4wl"))))
     (build-system python-build-system)
     (inputs
-     `(("python-setuptools" ,python-setuptools)
-       ("python-jinja2" ,python-jinja2)
+     `(("python-jinja2" ,python-jinja2)
        ("python-docutils" ,python-docutils)
        ("python-pygments" ,python-pygments)))
     (home-page "http://sphinx-doc.org/")
@@ -2811,8 +2790,7 @@ sources.")
          "0mkimp1fpdan4p3882vzcws4l594k71ich4g0wq97jbra7p602n0"))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-setuptools" ,python-setuptools)
-       ("python-pytz" ,python-pytz)
+     `(("python-pytz" ,python-pytz)
        ("python-six" ,python-six)))
     (home-page "https://github.com/getpelican/feedgenerator")
     (synopsis
@@ -2965,8 +2943,7 @@ mining and data analysis.")
        ("python-six" ,python-six)
        ("python-pillow" ,python-pillow)))
     (native-inputs
-     `(("python-cython" ,python-cython)
-       ("python-setuptools" ,python-setuptools)))
+     `(("python-cython" ,python-cython)))
     (home-page "http://scikit-image.org/")
     (synopsis "Image processing in Python")
     (description
@@ -3001,8 +2978,7 @@ mining and data analysis.")
     ;; Tests require a running Redis server
     (arguments '(#:tests? #f))
     (native-inputs
-     `(("python-setuptools" ,python-setuptools)
-       ("python-pytest" ,python-pytest)))
+     `(("python-pytest" ,python-pytest)))
     (home-page "https://github.com/andymccurdy/redis-py")
     (synopsis "Redis Python client")
     (description
@@ -3173,8 +3149,7 @@ capabilities.")
        ("python2-pysnptools" ,python2-pysnptools)))
     (native-inputs
      `(("unzip" ,unzip)
-       ("python2-mock" ,python2-mock)
-       ("python2-setuptools" ,python2-setuptools)))
+       ("python2-mock" ,python2-mock)))
     (home-page "http://research.microsoft.com/en-us/um/redmond/projects/mscompbio/fastlmm/")
     (synopsis "Perform genome-wide association studies on large data sets")
     (description
@@ -3314,8 +3289,7 @@ that client code uses to construct the grammar directly in Python code.")
              (("3") "2"))))))
     (build-system python-build-system)
     (inputs
-     `(("python-setuptools" ,python-setuptools)
-       ("python-docutils" ,python-docutils)
+     `(("python-docutils" ,python-docutils)
        ("python-sphinx" ,python-sphinx)
        ("python-nose" ,python-nose)))
     (home-page "https://pypi.python.org/pypi/numpydoc")
@@ -3395,8 +3369,7 @@ transcendental functions).")
        ("python-pycairo" ,python-pycairo)
        ("python-cairocffi" ,python-cairocffi)))
     (inputs
-     `(("python-setuptools" ,python-setuptools)
-       ("python-dateutil" ,python-dateutil-2)
+     `(("python-dateutil" ,python-dateutil-2)
        ("python-six" ,python-six)
        ("python-pytz" ,python-pytz)
        ("python-numpy" ,python-numpy-bootstrap)
@@ -3522,8 +3495,7 @@ toolkits.")
        ("python2-pandas" ,python2-pandas)
        ("python2-six" ,python2-six)))
     (native-inputs
-     `(("unzip" ,unzip)
-       ("python2-setuptools" ,python2-setuptools)))
+     `(("unzip" ,unzip)))
     (home-page "http://research.microsoft.com/en-us/um/redmond/projects/mscompbio/")
     (synopsis "Library for reading and manipulating genetic data")
     (description
@@ -3552,8 +3524,7 @@ operators such as union, intersection, and difference.")
        ("pcre" ,pcre)
        ("r" ,r)))
     (native-inputs
-     `(("python-setuptools" ,python-setuptools)
-       ("zlib" ,zlib)))
+     `(("zlib" ,zlib)))
     (home-page "http://rpy.sourceforge.net/")
     (synopsis "Python interface to the R language")
     (description "rpy2 is a redesign and rewrite of rpy.  It is providing a
@@ -3840,8 +3811,7 @@ services for your Python modules and applications.")
          "1w9x3dfrg8b5lqhpjl0fczfyf9842wbqwgxbjjq4vfpxv5jwm49l"))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-setuptools" ,python-setuptools)
-       ("python-nose"       ,python-nose)))
+     `(("python-nose"       ,python-nose)))
     (inputs
      `(("freetype" ,freetype)
        ("lcms"     ,lcms)
@@ -3903,8 +3873,7 @@ a general image processing tool.")
     (outputs '("out" "doc"))
     (build-system python-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("python-setuptools" ,python-setuptools)))
+     `(("pkg-config" ,pkg-config)))
     (arguments
      `(#:phases
        (alist-replace
@@ -3955,8 +3924,7 @@ a front-end for C compilers or analysis tools.")
     (native-inputs
      `(("pkg-config" ,pkg-config)
        ("python-sphinx" ,python-sphinx)
-       ("python-pytest" ,python-pytest)
-       ("python-setuptools" ,python-setuptools)))
+       ("python-pytest" ,python-pytest)))
     (arguments
      `(#:phases
        (alist-cons-after
@@ -4041,8 +4009,7 @@ support for Python 3 and PyPy.  It is based on cffi.")
     (native-inputs
      `(("pkg-config" ,pkg-config)
        ("python-sphinx" ,python-sphinx)
-       ("python-docutils" ,python-docutils)
-       ("python-setuptools" ,python-setuptools)))
+       ("python-docutils" ,python-docutils)))
     (propagated-inputs
      `(("python-xcffib" ,python-xcffib))) ; used at run time
     (arguments
@@ -4119,8 +4086,7 @@ etc.  The core of this module is a decorator factory.")
     ;; should be set to the path of the libdrmaa library.
     (arguments '(#:tests? #f))
     (native-inputs
-     `(("python-nose" ,python-nose)
-       ("python-setuptools" ,python-setuptools)))
+     `(("python-nose" ,python-nose)))
     (home-page "https://pypi.python.org/pypi/drmaa")
     (synopsis "Python bindings for the DRMAA library")
     (description
@@ -4228,8 +4194,7 @@ them as the version argument or in a SCM managed file.")
     (propagated-inputs
      `(("python-appdirs" ,python-appdirs)))
     (native-inputs
-     `(("python-setuptools" ,python-setuptools)
-       ("python-setuptools-scm" ,python-setuptools-scm)
+     `(("python-setuptools-scm" ,python-setuptools-scm)
        ("python-pytest" ,python-pytest)
        ("python-pytest-runner" ,python-pytest-runner)))
     (home-page "http://github.com/jaraco/path.py")
@@ -4284,8 +4249,7 @@ PickleShare.")
         (base32 "0wwi1c6md4vkbcsfsf8dklf3vr4mcdj4mpxkanwgb6jb1432x5yw"))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-setuptools" ,python-setuptools)
-       ("unzip" ,unzip)))
+     `(("unzip" ,unzip)))
     (home-page "http://cheeseshop.python.org/pypi/simplegeneric")
     (synopsis "Python module for simple generic functions")
     (description
@@ -4392,8 +4356,7 @@ without using the configuration machinery.")
      `(("pkg-config" ,pkg-config)
        ("python-sphinx" ,python-sphinx)
        ("texlive" ,texlive)
-       ("texinfo" ,texinfo)
-       ("python-setuptools" ,python-setuptools)))
+       ("texinfo" ,texinfo)))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -4639,8 +4602,7 @@ implementation of D-Bus.")
            "0w4jb0wpx785qw42r3h4fh7gl5w2968q48i7gygybsfxck8nzffs"))))
     (build-system python-build-system)
     (inputs
-      `(("python-setuptools" ,python-setuptools)
-        ("sqlite" ,sqlite)))
+      `(("sqlite" ,sqlite)))
     (arguments
      `(#:phases
         ;; swap check and install phases
@@ -4675,8 +4637,7 @@ translate the complete SQLite API into Python.")
     (build-system python-build-system)
     (inputs
       `(("libxml2" ,libxml2)
-        ("libxslt" ,libxslt)
-        ("python-setuptools" ,python-setuptools)))
+        ("libxslt" ,libxslt)))
     (home-page "http://lxml.de/")
     (synopsis
       "Python XML processing library")
@@ -4820,8 +4781,7 @@ interfaces in an easy and portable manner.")
     (propagated-inputs
      `(("python-decorator" ,python-decorator)))
     (native-inputs
-     `(("python-setuptools" ,python-setuptools)
-       ("python-nose" ,python-nose)))
+     `(("python-nose" ,python-nose)))
     (home-page "http://networkx.github.io/")
     (synopsis "Python module for creating and manipulating graphs and networks")
     (description
@@ -5112,8 +5072,7 @@ applications.")
      `(("zeromq" ,zeromq)))
     (native-inputs
      `(("pkg-config" ,pkg-config)
-       ("python-nose" ,python-nose)
-       ("python-setuptools" ,python-setuptools)))
+       ("python-nose" ,python-nose)))
     (home-page "http://github.com/zeromq/pyzmq")
     (synopsis "Python bindings for 0MQ")
     (description
@@ -5181,8 +5140,7 @@ PEP 8.")
     (build-system python-build-system)
     (inputs
       `(("python-pytest" ,python-pytest)
-        ("python-pytest-runner" ,python-pytest-runner)
-        ("python-setuptools" ,python-setuptools)))
+        ("python-pytest-runner" ,python-pytest-runner)))
     (home-page "https://github.com/flintwork/mccabe")
     (synopsis "McCabe checker, plugin for flake8")
     (description
@@ -5202,8 +5160,7 @@ complexity of Python source code.")
         (uri (pypi-uri "mccabe" version))
         (sha256
           (base32
-            "0fi4a81kr5bcv5p4xgibqr595hyj5dafkqgsmfk96mfy8w71fajs"))))
-    (inputs `(("python-setuptools" ,python-setuptools)))))
+            "0fi4a81kr5bcv5p4xgibqr595hyj5dafkqgsmfk96mfy8w71fajs"))))))
 
 (define-public python2-mccabe-0.2.1
   (package-with-python2 python-mccabe-0.2.1))
@@ -5259,8 +5216,7 @@ complexity of Python source code.")
             "0bs9cz4fr99r2rwig1b8jwaadl1nan7kgpdzqwj0bwbckwbmh7nc"))))
     (build-system python-build-system)
     (inputs
-      `(("python-setuptools" ,python-setuptools)
-        ("python-pep8" ,python-pep8)
+      `(("python-pep8" ,python-pep8)
         ("python-pyflakes" ,python-pyflakes)
         ("python-mccabe" ,python-mccabe)
         ("python-mock" ,python-mock)
@@ -5280,8 +5236,7 @@ complexity of Python source code.")
 (define-public python-flake8-2.2.4
   (package (inherit python-flake8)
     (inputs
-      `(("python-setuptools" ,python-setuptools)
-        ("python-pep8" ,python-pep8-1.5.7)
+      `(("python-pep8" ,python-pep8-1.5.7)
         ("python-pyflakes" ,python-pyflakes-0.8.1)
         ("python-mccabe" ,python-mccabe-0.2.1)
         ("python-mock" ,python-mock)
@@ -5314,8 +5269,7 @@ complexity of Python source code.")
          "17zqjp9m4d1w3jf2rbbq5xshcw24q1vlcv24gkgfqqyyymajxahx"))))
     (build-system python-build-system)
     (inputs
-     `(("python-setuptools" ,python-setuptools)
-       ("python-nose" ,python-nose)
+     `(("python-nose" ,python-nose)
        ("python-cython" ,python-cython)))
     (home-page "https://github.com/lepture/mistune")
     (synopsis "Markdown parser in pure Python")
@@ -5374,8 +5328,7 @@ markdown_py is also provided to convert Markdown files to HTML.")
          "0nggns5kikn32yyda2zrj1xdmh49pi3v0drggcdwljbv36r8zdyw"))))
     (build-system python-build-system)
     (inputs
-     `(("python-setuptools" ,python-setuptools)
-       ("python-nose" ,python-nose)))
+     `(("python-nose" ,python-nose)))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -5526,8 +5479,7 @@ should be stored on various operating systems.")
      `(("fuse" ,fuse)
        ("attr" ,attr)))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("python-setuptools" ,python-setuptools)))
+     `(("pkg-config" ,pkg-config)))
     (synopsis "Python bindings for FUSE")
     (description
      "Python-LLFUSE is a set of Python bindings for the low level FUSE API.")
@@ -5700,8 +5652,7 @@ fractional seconds) of a clock which never goes backwards.")
          "02bhhzijfhv8hmi1i54d4b0v43liwhnywhflvxsv4x3zax9s3afq"))))
     (build-system python-build-system)
     (inputs
-      `(("python-nose" ,python-nose)
-        ("python-setuptools" ,python-setuptools)))
+      `(("python-nose" ,python-nose)))
     (home-page "http://webob.org/")
     (synopsis "WSGI request and response object")
     (description
@@ -5730,8 +5681,7 @@ object to help create WSGI responses.")
          ;; Current test in setup.py does not work as of 0.9.4, so use nose to
          ;; run tests instead for now.
          (replace 'check (lambda _ (zero? (system* "nosetests")))))))
-    (native-inputs `(("python-nose"       ,python-nose)
-                     ("python-setuptools" ,python-setuptools)))
+    (native-inputs `(("python-nose"       ,python-nose)))
     (home-page "http://www.python-excel.org/")
     (synopsis "Library for extracting data from Excel files")
     (description "This packages provides a library to extract data from
@@ -5810,8 +5760,7 @@ printing of sub-tables by specifying a row range.")
      `(("python-numexpr" ,python-numexpr)
        ("python-numpy" ,python-numpy)))
     (native-inputs
-     `(("python-setuptools" ,python-setuptools)
-       ("python-cython" ,python-cython)
+     `(("python-cython" ,python-cython)
        ("pkg-config" ,pkg-config)))
     (inputs
      `(("hdf5" ,hdf5)
@@ -6096,8 +6045,7 @@ library.")
          "08cm8d4228fj0qnrysy3qv1a6022zr3dcs25amd14lgxil6vvx26"))))
     (build-system python-build-system)
     (inputs
-      `(("python-setuptools" ,python-setuptools)
-        ("python-virtualenv" ,python-virtualenv)
+      `(("python-virtualenv" ,python-virtualenv)
         ;; Tests
         ("python-mock" ,python-mock)
         ("python-pytest" ,python-pytest)
@@ -6189,8 +6137,7 @@ a hash value.")
                        (close-port port)
                        #t))))))
     (inputs
-     `(("python-setuptools" ,python-setuptools)
-       ("libarchive" ,libarchive)))
+     `(("libarchive" ,libarchive)))
     (home-page "https://github.com/Changaco/python-libarchive-c")
     (synopsis "Python interface to libarchive")
     (description
@@ -6313,8 +6260,7 @@ automatically detect a wide range of file encodings.")
          "16bf890xbdz3m30rsv2qacklh2rdn1zrfspfnwzx9g7vwz8yw4r1"))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-pytest" ,python-pytest)
-       ("python-setuptools" ,python-setuptools)))
+     `(("python-pytest" ,python-pytest)))
     (arguments
      `(#:phases (alist-replace
                  'check
@@ -6729,8 +6675,7 @@ This allows one to make simple text-mode user interfaces on Unix-like systems")
     (propagated-inputs
      `(("python-pytz" ,python-pytz)))
     (native-inputs
-     `(("python-nose" ,python-nose)
-       ("python-setuptools" ,python-setuptools)))
+     `(("python-nose" ,python-nose)))
     (home-page "https://github.com/kurtraschke/pyRFC3339")
     (synopsis "Python timestamp library")
     (description "Python library for generating and parsing RFC 3339-compliant
@@ -6783,8 +6728,7 @@ addon modules.")
               (patches (search-patches "python-configobj-setuptools.patch"))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-setuptools" ,python-setuptools)
-       ("python-six" ,python-six)))
+     `(("python-six" ,python-six)))
     (synopsis "Config file reading, writing and validation")
     (description "ConfigObj is a simple but powerful config file reader and
 writer: an ini file round tripper.  Its main feature is that it is very easy to
@@ -7269,8 +7213,7 @@ Blog, News or Announcements section to a Sphinx website.")
                 "1an5lkkqk1zha47198p42ji3m94xmzx1a03dn7866m87n4r4q8h5"))))
     (build-system python-build-system)
     (inputs
-     `(("python-args" ,python-args)
-       ("python-setuptools" ,python-setuptools)))
+     `(("python-args" ,python-args)))
     (home-page "https://github.com/kennethreitz/clint")
     (synopsis "Command-line interface tools")
     (description
@@ -7315,8 +7258,7 @@ Abstract Syntax Tree.")
                 "12rp1d9ba7nvd5rhaxi6xzx1rm67r1k1ylsrkzhpwnphqpb06cvj"))))
     (build-system python-build-system)
     (inputs
-     `(("python-appdirs" ,python-appdirs)
-       ("python-setuptools" ,python-setuptools)))
+     `(("python-appdirs" ,python-appdirs)))
     (home-page "https://github.com/alex/rply")
     (synopsis "Parser generator for Python")
     (description
@@ -7342,8 +7284,7 @@ with a new public API, and RPython support.")
     (inputs
      `(("python-astor" ,python-astor)
        ("python-clint" ,python-clint)
-       ("python-rply" ,python-rply)
-       ("python-setuptools" ,python-setuptools)))
+       ("python-rply" ,python-rply)))
     (home-page "http://hylang.org/")
     (synopsis "Lisp frontend to Python")
     (description
@@ -7480,8 +7421,7 @@ concurrent.futures package from Python 3.2")
     (build-system python-build-system)
     (arguments `(#:tests? #f))
     (native-inputs
-     `(("python-setuptools" ,python-setuptools)
-       ;; some packages for tests
+     `(;; some packages for tests
        ("python-nose" ,python-nose)
        ("python-mock" ,python-mock)
        ("python-tornado" ,python-tornado)))
@@ -7536,8 +7476,7 @@ text.")
        "0xwp929g7lvb1sghxfpqlxvgg96qcwqdbhh27sjplx30n3xp3wrh"))))
    (build-system python-build-system)
    (inputs
-    `(("python-pyasn1" ,python-pyasn1)
-      ("python-setuptools" ,python-setuptools)))
+    `(("python-pyasn1" ,python-pyasn1)))
    (synopsis "Pure-Python RSA implementation")
    (description "Python-RSA is a pure-Python RSA implementation.  It supports
 encryption and decryption, signing and verifying signatures, and key
@@ -7587,8 +7526,7 @@ Pytest but stripped of Pytest specific details.")
     ;; pytest breaks other packages.
     '(#:tests? #f))
    (inputs
-    `(("python-setuptools" ,python-setuptools)
-      ("python-pluggy" ,python-pluggy)
+    `(("python-pluggy" ,python-pluggy)
       ("python-py" ,python-py)
       ("python-virtualenv" ,python-virtualenv)
       ("python-pytest" ,python-pytest)))
@@ -7713,8 +7651,7 @@ seamlessly into your existing Python unit testing work flow.")
                      (strip-python2-variant python-hypothesis))))
     (package (inherit hypothesis)
       (native-inputs
-       `(("python2-enum34" ,python2-enum34)
-         ("python2-setuptools" ,python2-setuptools))))))
+       `(("python2-enum34" ,python2-enum34))))))
 
 (define-public python-pytest-subtesthack
   (package
@@ -7935,10 +7872,9 @@ file.")
     (build-system python-build-system)
     (native-inputs
      `(("python-nose" ,python-nose)))
+    ;; Note: setuptools used at runtime for pkg_resources
     (propagated-inputs
-     `(;; Uses pkg_resources provided by setuptools internally.
-       ("python-setuptools" ,python-setuptools)
-       ("python-six" ,python-six)))
+     `(("python-six" ,python-six)))
     (arguments
      '(;; Tests don't pass on Python 3, but work fine on Python 2.
        ;; (As of 2.0.2, Python 3 support in Paste is presently a bit broken,
@@ -7979,10 +7915,9 @@ follows ideas flowing from WSGI (Web Standard Gateway Interface).")
     (build-system python-build-system)
     (native-inputs
      `(("python-nose" ,python-nose)))
+    ;; Note: setuptools used at runtime for pkg_resources
     (propagated-inputs
-     `(;; Uses pkg_resources provided by setuptools internally.
-       ("python-setuptools" ,python-setuptools)
-       ("python-paste" ,python-paste)
+     `(("python-paste" ,python-paste)
        ("python-pastedeploy" ,python-pastedeploy)))
     (home-page "http://pythonpaste.org/script/")
     (arguments
@@ -8646,8 +8581,7 @@ encoding algorithms to do fuzzy string matching.")
      `(;; It supports Python 3, but Python 3 can already do Unicode CSV.
        #:python ,python-2))
     (native-inputs
-     `(("python2-setuptools" ,python2-setuptools)
-       ("python2-unittest2" ,python2-unittest2)))
+     `(("python2-unittest2" ,python2-unittest2)))
     (home-page "https://github.com/jdunck/python-unicodecsv")
     (synopsis "Unicode CSV module for Python 2")
     (description "Unicodecsv is a drop-in replacement for Python 2.7's CSV
@@ -8802,8 +8736,7 @@ CloudFront content delivery network.")
             "1pw0kmvc57sjmaxi6c54fqsnihqj6hvhc9y1vaz36axafzqam7bh"))))
     (build-system python-build-system)
     (native-inputs
-      `(("python-nose" ,python-nose)
-        ("python-setuptools" ,python-setuptools)))
+      `(("python-nose" ,python-nose)))
     (inputs
       `(("pkg-config" ,pkg-config)))
     (arguments
@@ -9005,8 +8938,7 @@ Python.  It generates C++ code and a Makefile."))
      `(#:python ,python-2))
     (build-system python-build-system)
     (native-inputs
-     `(("python2-unittest2" ,python2-unittest2)
-       ("python2-setuptools" ,python2-setuptools)))
+     `(("python2-unittest2" ,python2-unittest2)))
     (home-page "https://github.com/python-rope/rope")
     (synopsis "Refactoring library for Python")
     (description "Rope is a refactoring library for Python.  It facilitates
@@ -9099,8 +9031,7 @@ multiple processes (imagine multiprocessing, billiard, futures, celery etc).
                (system* "2to3" "--no-diff" "-wn" "sqlparse" "tests"))
              (zero? (system* "py.test")))))))
     (native-inputs
-     `(("python-pytest" ,python-pytest)
-       ("python-setuptools" ,python-setuptools)))
+     `(("python-pytest" ,python-pytest)))
     (home-page "https://github.com/andialbrecht/sqlparse")
     (synopsis "Non-validating SQL parser")
     (description "Sqlparse is a non-validating SQL parser for Python.  It
@@ -9157,8 +9088,7 @@ are synchronized with data exchanges on \"channels\".")
     (propagated-inputs
      `(("python-greenlet" ,python-greenlet)))
     (native-inputs
-     `(("python-setuptools" ,python-setuptools)
-       ("python-six" ,python-six)))
+     `(("python-six" ,python-six)))
     (inputs
      `(("c-ares" ,c-ares)
        ("libev" ,libev)))
@@ -9267,8 +9197,7 @@ It uses LR parsing and does extensive error checking.")
                          (("from common") "from nose.tools")))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-setuptools" ,python-setuptools)
-       ;; For testing
+     `(;; For testing
        ("python-nose" ,python-nose)))
     (home-page "https://bitbucket.org/astanin/python-tabulate")
     (synopsis "Pretty-print tabular data")
@@ -9427,8 +9356,7 @@ objects, patterned after the Mocha library for Ruby.")
                 "1bz7hkdgpqcjs866y58z8jywpy7al0f4rxdr00bh2l5qddyw245j"))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-setuptools" ,python-setuptools)
-       ;; For testing
+     `(;; For testing
        ("python-chai" ,python-chai)
        ("python-simplejson" ,python-simplejson)))
     (propagated-inputs
@@ -9499,8 +9427,7 @@ Wikipedia code samples at
                 "1k2dcl6mqpn5bljyl6w42rqyd9mb3y9kh2mg7m2x3kfjwvg0rpva"))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-setuptools" ,python-setuptools)
-       ;; For testing
+     `(;; For testing
        ("python-mock" ,python-mock)
        ("python-pytest" ,python-pytest)))
     (propagated-inputs
@@ -9625,8 +9552,7 @@ parsing UK postcodes.")
               "0vs0dkmg0dlaxf8w6q2i3k0i03gmp56ablldv7ci9x3nbadkn71g"))))
   (build-system python-build-system)
   (native-inputs
-   `(("python-setuptools" ,python-setuptools)
-     ;; For testing
+   `(;; For testing
      ("python-email-validator" ,python-email-validator)
      ("python-mock" ,python-mock)
      ("python-ukpostcodeparser" ,python-ukpostcodeparser)))
@@ -9809,8 +9735,7 @@ characters, mouse support, and auto suggestions.")
      `(("python-docopt" ,python-docopt)
        ("python-jedi" ,python-jedi)
        ("python-prompt-toolkit" ,python-prompt-toolkit)
-       ("python-pygments" ,python-pygments)
-       ("python-setuptools" ,python-setuptools)))
+       ("python-pygments" ,python-pygments)))
     (home-page "https://github.com/jonathanslenders/ptpython")
     (synopsis "Python Read-Eval-Print-Loop with nice IDE-like features")
     (description
diff --git a/gnu/packages/rdf.scm b/gnu/packages/rdf.scm
index d0a362c..1a8d133 100644
--- a/gnu/packages/rdf.scm
+++ b/gnu/packages/rdf.scm
@@ -318,8 +318,7 @@ ideal (e.g. in LV2 implementations or embedded applications).")
     (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")
diff --git a/gnu/packages/terminals.scm b/gnu/packages/terminals.scm
index d5c24d2..77449eb 100644
--- a/gnu/packages/terminals.scm
+++ b/gnu/packages/terminals.scm
@@ -159,8 +159,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
diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm
index 29559bd..0b0c57b 100644
--- a/gnu/packages/version-control.scm
+++ b/gnu/packages/version-control.scm
@@ -1154,8 +1154,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)
diff --git a/gnu/packages/xdisorg.scm b/gnu/packages/xdisorg.scm
index 323ff11..a3f5fce 100644
--- a/gnu/packages/xdisorg.scm
+++ b/gnu/packages/xdisorg.scm
@@ -91,8 +91,7 @@
     (inputs `(("pygtk" ,python2-pygtk)
               ("xrandr" ,xrandr)))
     (native-inputs `(("gettext"           ,gnu-gettext)
-                     ("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.
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 37+ messages in thread

* [PATCH 08/14] gnu: Remove python-setuptools and python2-setuptools from inputs (part 4)
  2016-09-28 13:58 [PATCH 00/14] Change python-build-system (fixes bug 20765) Hartmut Goebel
                   ` (6 preceding siblings ...)
  2016-09-28 13:58 ` [PATCH 07/14] gnu: Remove python-setuptools and python2-setuptools from inputs (part 3) Hartmut Goebel
@ 2016-09-28 13:58 ` Hartmut Goebel
  2016-09-28 13:58 ` [PATCH 09/14] gnu: Remove python-setuptools and python2-setuptools from inputs (part 5a) Hartmut Goebel
                   ` (7 subsequent siblings)
  15 siblings, 0 replies; 37+ messages in thread
From: Hartmut Goebel @ 2016-09-28 13:58 UTC (permalink / raw)
  To: guix-devel

This are the cases where setuptools are used in an inherited package and
removing this input keeps the need for inheriting the package.

* gnu/packages/bioinformatics.scm
* gnu/packages/python.scm
* gnu/packages/statistics.scm
---
 gnu/packages/bioinformatics.scm |  4 +---
 gnu/packages/python.scm         | 51 +++++++++++------------------------------
 gnu/packages/statistics.scm     |  5 +---
 3 files changed, 15 insertions(+), 45 deletions(-)

diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
index 611cbb6..2526ccc 100644
--- a/gnu/packages/bioinformatics.scm
+++ b/gnu/packages/bioinformatics.scm
@@ -524,9 +524,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)
diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index a1cb188..f61b1b9 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -1716,9 +1716,6 @@ same arguments.")
   (let ((base (package-with-python2
                 (strip-python2-variant python-pytest-mock))))
     (package (inherit base)
-      (native-inputs
-       `(("python2-setuptools" ,python2-setuptools)
-         ,@(package-native-inputs base)))
       (inputs
        `(("python2-mock" ,python2-mock)
          ,@(package-inputs base))))))
@@ -2476,8 +2473,7 @@ OAuth request-signing logic.")
   (let ((base (package-with-python2 (strip-python2-variant python-oauthlib))))
     (package
       (inherit base)
-      (native-inputs `(("python2-setuptools" ,python2-setuptools)
-                       ("python2-unittest2" ,python2-unittest2)
+      (native-inputs `(("python2-unittest2" ,python2-unittest2)
                        ,@(package-native-inputs base))))))
 
 (define-public python-itsdangerous
@@ -4843,9 +4839,7 @@ and statistical routines from scipy and statsmodels.")
     (package
       (inherit base)
       (propagated-inputs `(("python2-pytz" ,python2-pytz)
-                           ,@(package-propagated-inputs base)))
-      (native-inputs `(("python2-setuptools" ,python2-setuptools)
-                       ,@(package-native-inputs base))))))
+                           ,@(package-propagated-inputs base))))))
 
 (define-public python-sympy
   (package
@@ -4987,10 +4981,7 @@ connection to each user.")
        `(("python2-backport-ssl-match-hostname"
           ,python2-backport-ssl-match-hostname)
          ("python2-singledispatch" ,python2-singledispatch)
-          ,@(package-inputs tornado)))
-      (native-inputs
-       `(("python2-setuptools" ,python2-setuptools)
-         ,@(package-native-inputs tornado))))))
+          ,@(package-inputs tornado))))))
 
 ;; the python- version can be removed with python-3.5
 (define-public python-backports-abc
@@ -5381,10 +5372,7 @@ term.js Javascript terminal emulator library.")
       (propagated-inputs
        `(("python2-backport-ssl-match-hostname"
           ,python2-backport-ssl-match-hostname)
-          ,@(package-propagated-inputs terminado)))
-      (native-inputs
-       `(("python2-setuptools" ,python2-setuptools)
-         ,@(package-native-inputs terminado))))))
+          ,@(package-propagated-inputs terminado))))))
 
 (define-public python-fonttools
   (package
@@ -7325,8 +7313,7 @@ authenticated session objects providing things like keep-alive.")
   (let ((base (package-with-python2 (strip-python2-variant python-rauth))))
     (package
       (inherit base)
-      (native-inputs `(("python2-setuptools" ,python2-setuptools)
-                       ("python2-unittest2" ,python2-unittest2)
+      (native-inputs `(("python2-unittest2" ,python2-unittest2)
                        ,@(package-native-inputs base))))))
 
 (define-public python2-functools32
@@ -8057,8 +8044,7 @@ and provides a uniform API regardless of which JSON implementation is used.")
       (arguments `(;; Unlike the python 3 variant, we do run tests.  See above!
                    #:tests? #t
                    ,@(package-arguments anyjson)))
-      (native-inputs `(("python2-setuptools" ,python2-setuptools)
-                       ("python2-nose" ,python2-nose))))))
+      (native-inputs `(("python2-nose" ,python2-nose))))))
 
 (define-public python-amqp
   (package
@@ -8094,9 +8080,7 @@ alternative when librabbitmq is not available.")
                    ;; unmaintained.  Weirdly, does not do this on the python 3
                    ;; version?
                    #:tests? #f
-                   ,@(package-arguments amqp)))
-      (native-inputs `(("python2-setuptools" ,python2-setuptools)
-                       ,@(package-native-inputs amqp))))))
+                   ,@(package-arguments amqp))))))
 
 (define-public python-kombu
   (package
@@ -8132,8 +8116,7 @@ RabbitMQ messaging server is the most popular implementation.")
                 (strip-python2-variant python-kombu))))
     (package
       (inherit kombu)
-      (inputs `(("python2-setuptools" ,python2-setuptools)
-                ("python2-unittest2" ,python2-unittest2)
+      (inputs `(("python2-unittest2" ,python2-unittest2)
                 ,@(package-inputs kombu))))))
 
 (define-public python-billiard
@@ -8166,8 +8149,7 @@ Python 2.4 and 2.5, and will draw its fixes/improvements from python-trunk.")
                    (strip-python2-variant python-billiard))))
     (package
       (inherit billiard)
-      (native-inputs `(("python2-setuptools" ,python2-setuptools)
-                       ("python2-unittest2" ,python2-unittest2)
+      (native-inputs `(("python2-unittest2" ,python2-unittest2)
                        ("python2-mock" ,python2-mock)
                        ,@(package-native-inputs billiard))))))
 
@@ -8207,8 +8189,7 @@ synchronously (wait until ready).")
                  (strip-python2-variant python-celery))))
     (package
       (inherit celery)
-      (native-inputs `(("python2-setuptools" ,python2-setuptools)
-                       ("python2-unittest2" ,python2-unittest2)
+      (native-inputs `(("python2-unittest2" ,python2-unittest2)
                        ("python2-mock" ,python2-mock)
                        ,@(package-native-inputs celery))))))
 
@@ -8558,8 +8539,7 @@ encoding algorithms to do fuzzy string matching.")
   (let ((jellyfish (package-with-python2
                      (strip-python2-variant python-jellyfish))))
     (package (inherit jellyfish)
-      (native-inputs `(("python2-setuptools" ,python2-setuptools)
-                       ("python2-unicodecsv" ,python2-unicodecsv)
+      (native-inputs `(("python2-unicodecsv" ,python2-unicodecsv)
                        ,@(package-native-inputs jellyfish))))))
 
 (define-public python2-unicodecsv
@@ -9948,9 +9928,6 @@ binary or text.")
 (define-public python2-binaryornot
   (let ((base (package-with-python2 (strip-python2-variant python-binaryornot))))
     (package (inherit base)
-      (native-inputs
-       `(("python2-setuptools" ,python2-setuptools)
-         ,@(package-native-inputs base)))
       (inputs
        `(("python2-enum34" ,python2-enum34)
          ,@(package-inputs base))))))
@@ -10453,8 +10430,7 @@ functionality in the command line.")
   (let ((base (package-with-python2 (strip-python2-variant python-natsort))))
     (package (inherit base)
              (native-inputs
-              `(("python2-setuptools" ,python2-setuptools)
-                ("python2-pathlib" ,python2-pathlib)
+              `(("python2-pathlib" ,python2-pathlib)
                 ("python2-mock" ,python2-mock)
                 ("python2-enum34" ,python2-enum34)
                 ,@(package-native-inputs base))))))
@@ -10612,8 +10588,7 @@ with an associated set of resolve methods that know how to fetch data.")
                 (strip-python2-variant python-graphene))))
     (package (inherit base)
       (native-inputs
-       `(("python2-setuptools" ,python2-setuptools)
-         ("python2-sqlalchemy" ,python2-sqlalchemy)
+       `(("python2-sqlalchemy" ,python2-sqlalchemy)
          ,@(package-native-inputs base))))))
 
 (define-public python-nautilus
diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm
index 9cf79ef..79dbcc1 100644
--- a/gnu/packages/statistics.scm
+++ b/gnu/packages/statistics.scm
@@ -1475,10 +1475,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
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 37+ messages in thread

* [PATCH 09/14] gnu: Remove python-setuptools and python2-setuptools from inputs (part 5a)
  2016-09-28 13:58 [PATCH 00/14] Change python-build-system (fixes bug 20765) Hartmut Goebel
                   ` (7 preceding siblings ...)
  2016-09-28 13:58 ` [PATCH 08/14] gnu: Remove python-setuptools and python2-setuptools from inputs (part 4) Hartmut Goebel
@ 2016-09-28 13:58 ` Hartmut Goebel
  2016-09-28 13:58 ` [PATCH 10/14] gnu: Remove python-setuptools and python2-setuptools from inputs (part 5b) Hartmut Goebel
                   ` (6 subsequent siblings)
  15 siblings, 0 replies; 37+ messages in thread
From: Hartmut Goebel @ 2016-09-28 13:58 UTC (permalink / raw)
  To: guix-devel

This are the cases where setuptools are used in an inherited package and
removing this input also removes the need for inheriting the package. This is
the case if adding setuptools in the inherited packge was the only change.

Change this to not inherit and remove the new needless call to
"strip-python2-variant (if applicable).

This patch contains the changes for all modules beside python.scm.
---
 gnu/packages/bioinformatics.scm | 44 ++++++++---------------------------------
 gnu/packages/django.scm         | 16 ++-------------
 gnu/packages/gnupg.scm          |  7 +------
 gnu/packages/mpd.scm            |  9 ++-------
 gnu/packages/music.scm          | 17 ++++------------
 gnu/packages/openstack.scm      | 16 +++------------
 gnu/packages/password-utils.scm |  6 +-----
 gnu/packages/protobuf.scm       |  7 ++-----
 gnu/packages/statistics.scm     |  9 ++-------
 9 files changed, 25 insertions(+), 106 deletions(-)

diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
index 2526ccc..f4ac802 100644
--- a/gnu/packages/bioinformatics.scm
+++ b/gnu/packages/bioinformatics.scm
@@ -616,15 +616,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
@@ -1328,7 +1323,6 @@ also includes an interface for tabix.")
               (sha256
                (base32
                 "0y408fp6psqzwxpcpqn0wp7fr41dwz8d54wpj6j261fj5q8vs169"))))
-    (properties `((python2-variant . ,(delay python2-twobitreader))))
     (build-system python-build-system)
     (native-inputs
      `(("python-sphinx" ,python-sphinx)))
@@ -1340,11 +1334,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
@@ -1356,7 +1346,6 @@ UCSC genome browser.")
               (sha256
                (base32
                 "1nhxw8a5gn9as58i2ih52c5cjwj48ik418pzsjwph3s66mmy9yvq"))))
-    (properties `((python2-variant . ,(delay python2-plastid))))
     (build-system python-build-system)
     (arguments
      ;; Some test files are not included.
@@ -1380,12 +1369,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
@@ -1834,10 +1818,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
@@ -1862,15 +1843,10 @@ accessing bigWig files.")
      "DendroPy is a library for phylogenetics and phylogenetic computing: reading,
 writing, simulation, processing and manipulation of phylogenetic
 trees (phylogenies) and characters.")
-    (license license:bsd-3)
-    (properties `((python2-variant . ,(delay python2-dendropy))))))
+    (license license:bsd-3)))
 
 (define-public python2-dendropy
-  (let ((base (package-with-python2 (strip-python2-variant python-dendropy))))
-    (package
-      (inherit base)
-      (native-inputs `(("python2-setuptools" ,python2-setuptools)
-                       ,@(package-native-inputs base))))))
+  (package-with-python2 python-dendropy))
 
 
 (define-public deeptools
@@ -4439,11 +4415,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
diff --git a/gnu/packages/django.scm b/gnu/packages/django.scm
index 90baccd..13c9391 100644
--- a/gnu/packages/django.scm
+++ b/gnu/packages/django.scm
@@ -148,16 +148,10 @@ with arguments to the field constructor.")
     (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
@@ -177,13 +171,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))
diff --git a/gnu/packages/gnupg.scm b/gnu/packages/gnupg.scm
index 0eaeb45..6aa97a3 100644
--- a/gnu/packages/gnupg.scm
+++ b/gnu/packages/gnupg.scm
@@ -426,12 +426,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
diff --git a/gnu/packages/mpd.scm b/gnu/packages/mpd.scm
index ec0861d..83d9977 100644
--- a/gnu/packages/mpd.scm
+++ b/gnu/packages/mpd.scm
@@ -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
diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm
index 7501821..a8886db 100644
--- a/gnu/packages/music.scm
+++ b/gnu/packages/music.scm
@@ -1684,13 +1684,10 @@ hotttnesss, audio_summary, or tracks.
 about the track including key, duration, mode, tempo, time signature along with
 detailed track info including timbre, pitch, rhythm and loudness information.
 @end enumerate\n")
-    (license license:bsd-3)
-    (properties `((python2-variant . ,(delay python2-pyechonest))))))
+    (license license:bsd-3)))
 
 (define-public python2-pyechonest
-  (package (inherit (package-with-python2
-                     (strip-python2-variant python-pyechonest)))
-    (native-inputs `(("python2-setuptools" ,python2-setuptools)))))
+  (package-with-python2 python-pyechonest))
 
 (define-public python-pylast
   (package
@@ -1716,16 +1713,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
diff --git a/gnu/packages/openstack.scm b/gnu/packages/openstack.scm
index eee066e..172de25 100644
--- a/gnu/packages/openstack.scm
+++ b/gnu/packages/openstack.scm
@@ -260,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
@@ -807,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))
diff --git a/gnu/packages/password-utils.scm b/gnu/packages/password-utils.scm
index a5e5276..362b8b5 100644
--- a/gnu/packages/password-utils.scm
+++ b/gnu/packages/password-utils.scm
@@ -363,8 +363,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))
diff --git a/gnu/packages/protobuf.scm b/gnu/packages/protobuf.scm
index 49be54c..d0907c6 100644
--- a/gnu/packages/protobuf.scm
+++ b/gnu/packages/protobuf.scm
@@ -70,10 +70,7 @@ internal RPC protocols and file formats.")
     (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))
diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm
index 79dbcc1..a3f9f2f 100644
--- a/gnu/packages/statistics.scm
+++ b/gnu/packages/statistics.scm
@@ -1404,15 +1404,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
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 37+ messages in thread

* [PATCH 10/14] gnu: Remove python-setuptools and python2-setuptools from inputs (part 5b)
  2016-09-28 13:58 [PATCH 00/14] Change python-build-system (fixes bug 20765) Hartmut Goebel
                   ` (8 preceding siblings ...)
  2016-09-28 13:58 ` [PATCH 09/14] gnu: Remove python-setuptools and python2-setuptools from inputs (part 5a) Hartmut Goebel
@ 2016-09-28 13:58 ` Hartmut Goebel
  2016-09-28 13:58 ` [PATCH 11/14] gnu: Remove needless inputs python-pip and python2-pip Hartmut Goebel
                   ` (5 subsequent siblings)
  15 siblings, 0 replies; 37+ messages in thread
From: Hartmut Goebel @ 2016-09-28 13:58 UTC (permalink / raw)
  To: guix-devel

This are the cases where setuptools are used in an inherited package and
removing this input also removes the need for inheriting the package. This is
the case if adding setuptools in the inherited packge was the only change.

Change this to not inherit and remove the new needless call to
"strip-python2-variant (if applicable).

This patch contains the changes for python.scm.

* gnu/packages/python.scm: (python-lockfile, python-keyring,
  python-dateutil-2, python-parsedatetime, python-pandas,
  python-pyicu, python-pytest-cov, python-pytest-runner,
  python-pytest-xdist, python-cov-core, python-itsdangerous,
  python-numexpr, python-sqlalchemy-utils, python-alembic,
  python-beautifulsoup4, python-msgpack, python-ipaddress,
  python-atomicwrites, python-apipkg, python-execnet,
  python-pytest-cache, python-wtforms, python-mako, python-waitress,
  python-wsgiproxy2, python-pyquery, python-webtest,
  python-translitcodec, python-editor,
  python-sphinxcontrib-programoutput, python-psycopg2, python-vobject,
  python-flask, python-cookies, python-responses, python-future,
  python-ply, python-wcwidth, python-prompt-toolkit, python-jedi,
  python-requests-oauthlib, python-pyserial, python-nltk,
  python-pymongo, python-sh, python-schematics, python-publicsuffix,
  python-publicsuffix2, python-url, python-freezegun,
  python-cachecontrol, python-lit, python-pytest-pep8,
  python-pytest-flakes, python-glances, python-graphql-core,
  python-graphql-relay): Remove neesless input "python2-setuptools")
  don't inherit, don't call strip-python2-variant.
  (python-lockfile, python-keyring, python-dateutil-2,
  python-parsedatetime, python-pandas, python-pyicu,
  python-pytest-cov, python-pytest-runner, python-pytest-xdist,
  python-cov-core, python-itsdangerous, python-numexpr,
  python-sqlalchemy-utils, python-alembic, python-beautifulsoup4,
  python-msgpack, python-ipaddress, python-atomicwrites,
  python-apipkg, python-execnet, python-pytest-cache, python-wtforms,
  python-mako, python-waitress, python-wsgiproxy2, python-pyquery,
  python-webtest, python-translitcodec, python-editor,
  python-sphinxcontrib-programoutput, python-psycopg2, python-vobject,
  python-flask, python-cookies, python-responses, python-future,
  python-ply, python-wcwidth, python-prompt-toolkit, python-jedi,
  python-requests-oauthlib, python-pyserial, python-nltk,
  python-pymongo, python-sh, python-schematics, python-nltk,
  python-publicsuffix2, python-cachecontrol, python-lit,
  python-pytest-pep8, python-pytest-flakes, python-glances,
  python-graphql-core, python-graphql-relay): Remove "python2-variant"
  property.
---
 gnu/packages/python.scm | 508 +++++++++++-------------------------------------
 1 file changed, 111 insertions(+), 397 deletions(-)

diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index f61b1b9..899573e 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -753,15 +753,10 @@ concepts.")
     (description
      "The lockfile package exports a LockFile class which provides a simple
 API for locking files.")
-    (license license:expat)
-    (properties `((python2-variant . ,(delay python2-lockfile))))))
+    (license license:expat)))
 
 (define-public python2-lockfile
-  (let ((base (package-with-python2 (strip-python2-variant python-lockfile))))
-    (package
-      (inherit base)
-      (native-inputs `(("python2-setuptools" ,python2-setuptools)
-                       ,@(package-native-inputs base))))))
+  (package-with-python2 python-lockfile))
 
 (define-public python-mock
   (package
@@ -895,15 +890,10 @@ etc.).  The package is structured to make adding new modules easy.")
 service from python.  It can be used in any application that needs safe
 password storage.")
     ;; "MIT" and PSF dual license
-    (license license:x11)
-    (properties `((python2-variant . ,(delay python2-keyring))))))
+    (license license:x11)))
 
 (define-public python2-keyring
-  (let ((base (package-with-python2 (strip-python2-variant python-keyring))))
-    (package
-      (inherit base)
-      (native-inputs `(("python2-setuptools" ,python2-setuptools)
-                       ,@(package-native-inputs base))))))
+  (package-with-python2 python-keyring))
 
 (define-public python-six
   (package
@@ -949,15 +939,10 @@ Python file, so it can be easily copied into your project.")
     (description
      "The dateutil module provides powerful extensions to the standard
 datetime module, available in Python 2.3+.")
-    (license license:bsd-3)
-    (properties `((python2-variant . ,(delay python2-dateutil-2))))))
+    (license license:bsd-3)))
 
 (define-public python2-dateutil-2
-  (let ((base (package-with-python2 (strip-python2-variant python-dateutil-2))))
-    (package
-      (inherit base)
-      (inputs `(("python2-setuptools" ,python2-setuptools)
-                ,@(package-inputs base))))))
+  (package-with-python2 python-dateutil-2))
 
 (define-public python-dateutil
   (package
@@ -1002,15 +987,10 @@ datetime module, available in Python 2.3+.")
      "Parse human-readable date/time text")
     (description
      "Parse human-readable date/time text.")
-    (license license:asl2.0)
-    (properties `((python2-variant . ,(delay python2-parsedatetime))))))
+    (license license:asl2.0)))
 
 (define-public python2-parsedatetime
-  (let ((base (package-with-python2 (strip-python2-variant python-parsedatetime))))
-    (package
-      (inherit base)
-      (native-inputs `(("python2-setuptools" ,python2-setuptools)
-                       ,@(package-native-inputs base))))))
+  (package-with-python2 python-parsedatetime))
 
 (define-public python-pandas
   (package
@@ -1041,15 +1021,10 @@ structures designed to make working with structured (tabular,
 multidimensional, potentially heterogeneous) and time series data both easy
 and intuitive.  It aims to be the fundamental high-level building block for
 doing practical, real world data analysis in Python.")
-    (license license:bsd-3)
-    (properties `((python2-variant . ,(delay python2-pandas))))))
+    (license license:bsd-3)))
 
 (define-public python2-pandas
-  (let ((base (package-with-python2 (strip-python2-variant python-pandas))))
-    (package
-      (inherit base)
-      (native-inputs `(("python2-setuptools" ,python2-setuptools)
-                       ,@(package-native-inputs base))))))
+  (package-with-python2 python-pandas))
 
 (define-public python-tzlocal
   (package
@@ -1184,14 +1159,10 @@ Python 3.3+.")
     (synopsis "Python extension wrapping the ICU C++ API")
     (description
      "PyICU is a python extension wrapping the ICU C++ API.")
-    (license license:x11)
-    (properties `((python2-variant . ,(delay python2-pyicu))))))
+    (license license:x11)))
 
 (define-public python2-pyicu
-  (package
-    (inherit (package-with-python2
-              (strip-python2-variant python-pyicu)))
-    (native-inputs `(("python2-setuptools" ,python2-setuptools)))))
+  (package-with-python2 python-pyicu))
 
 (define-public python2-dogtail
   ;; Python 2 only, as it leads to "TabError: inconsistent use of tabs and
@@ -1629,15 +1600,10 @@ and many external plugins.")
      "Pytest-cov produces coverage reports.  It supports centralised testing and
 distributed testing in both @code{load} and @code{each} modes.  It also
 supports coverage of subprocesses.")
-  (license license:expat)
-  (properties `((python2-variant . ,(delay python2-pytest-cov))))))
+  (license license:expat)))
 
 (define-public python2-pytest-cov
-  (let ((base (package-with-python2 (strip-python2-variant python-pytest-cov))))
-    (package
-      (inherit base)
-      (inputs `(("python2-setuptools" ,python2-setuptools)
-                ,@(package-inputs base))))))
+  (package-with-python2 python-pytest-cov))
 
 (define-public python-pytest-runner
   (package
@@ -1670,16 +1636,10 @@ supports coverage of subprocesses.")
     (description
      "This package provides a @command{pytest-runner} command that
 @file{setup.py} files can use to run tests.")
-    (license license:expat)
-    (properties `((python2-variant . ,(delay python2-pytest-runner))))))
+    (license license:expat)))
 
 (define-public python2-pytest-runner
-  (let ((base (package-with-python2
-                (strip-python2-variant python-pytest-runner))))
-    (package
-      (inherit base)
-      (native-inputs `(("python2-setuptools" ,python2-setuptools)
-                       ,@(package-native-inputs base))))))
+  (package-with-python2 python-pytest-runner))
 
 (define-public python2-pytest-runner
   (package-with-python2 python-pytest-runner))
@@ -1751,16 +1711,10 @@ to run tests repeatedly when failed, and the ability to run tests on multiple
 Python interpreters or platforms.  It uses rsync to copy the existing
 program code to a remote location, executes there, and then syncs the
 result back.")
-    (license license:expat)
-    (properties `((python2-variant . ,(delay python2-pytest-xdist))))))
+    (license license:expat)))
 
 (define-public python2-pytest-xdist
-  (let ((base (package-with-python2
-                (strip-python2-variant python-pytest-xdist))))
-    (package
-      (inherit base)
-      (native-inputs `(("python2-setuptools" ,python2-setuptools)
-                       ,@(package-native-inputs base))))))
+  (package-with-python2 python-pytest-xdist))
 
 (define-public python-scripttest
   (package
@@ -2104,15 +2058,10 @@ executed.")
     (description
      "This is a library package for use by pytest-cov, nose-cov and nose2-cov.
 It is useful for developing coverage plugins for these testing frameworks.")
-    (license license:expat)
-    (properties `((python2-variant . ,(delay python2-cov-core))))))
+    (license license:expat)))
 
 (define-public python2-cov-core
-  (let ((cov-core (package-with-python2 (strip-python2-variant python-cov-core))))
-    (package (inherit cov-core)
-      (native-inputs
-       `(("python2-setuptools" ,python2-setuptools)
-         ,@(package-native-inputs cov-core))))))
+ (package-with-python2 python-cov-core))
 
 (define-public python-discover
   (package
@@ -2495,16 +2444,10 @@ OAuth request-signing logic.")
     (description
      "Itsdangerous provides various helpers to pass trusted data to untrusted
 environments and back.")
-    (license license:bsd-3)
-    (properties `((python2-variant . ,(delay python2-itsdangerous))))))
+    (license license:bsd-3)))
 
 (define-public python2-itsdangerous
-  (let ((base (package-with-python2
-                (strip-python2-variant python-itsdangerous))))
-    (package
-      (inherit base)
-      (native-inputs `(("python2-setuptools" ,python2-setuptools)
-                       ,@(package-native-inputs base))))))
+  (package-with-python2 python-itsdangerous))
 
 (define-public python-pyyaml
   (package
@@ -3322,11 +3265,10 @@ doing the same calculation in Python.  In addition, its multi-threaded
 capabilities can make use of all your cores, which may accelerate
 computations, most specially if they are not memory-bounded (e.g. those using
 transcendental functions).")
-    (license license:expat)
-    (properties `((python2-variant . ,(delay python2-numexpr))))))
+    (license license:expat)))
 
 (define-public python2-numexpr
-  (package-with-python2 (strip-python2-variant python-numexpr)))
+  (package-with-python2 python-numexpr))
 
 (define-public python-matplotlib
   (package
@@ -3690,16 +3632,10 @@ simple and Pythonic domain language.")
     (description
      "SQLAlchemy-utils provides various utility functions and custom data types
 for SQLAlchemy.  SQLAlchemy is an SQL database abstraction library for Python.")
-    (properties `((python2-variant . ,(delay python2-sqlalchemy-utils))))
     (license license:bsd-3)))
 
 (define-public python2-sqlalchemy-utils
-  (let ((base (package-with-python2
-                (strip-python2-variant python-sqlalchemy-utils))))
-    (package (inherit base)
-      (native-inputs
-       `(("python2-setuptools" ,python2-setuptools)
-         ,@(package-native-inputs base))))))
+  (package-with-python2 python-sqlalchemy-utils))
 
 (define-public python-alembic
   (package
@@ -3726,16 +3662,10 @@ for SQLAlchemy.  SQLAlchemy is an SQL database abstraction library for Python.")
     (description
      "Alembic is a lightweight database migration tool for usage with the
 SQLAlchemy Database Toolkit for Python.")
-    (license license:expat)
-    (properties `((python2-variant . ,(delay python2-alembic))))))
+    (license license:expat)))
 
 (define-public python2-alembic
-  (let ((alembic (package-with-python2
-                  (strip-python2-variant python-alembic))))
-    (package
-      (inherit alembic)
-      (native-inputs `(("python2-setuptools" ,python2-setuptools)
-                       ,@(package-native-inputs alembic))))))
+  (package-with-python2 python-alembic))
 
 (define-public python-distutils-extra
   (package
@@ -4669,14 +4599,10 @@ screen-scraping projects.  It offers Pythonic idioms for navigating,
 searching, and modifying a parse tree, providing a toolkit for
 dissecting a document and extracting what you need.  It automatically
 converts incoming documents to Unicode and outgoing documents to UTF-8.")
-    (license license:expat)
-    (properties `((python2-variant . ,(delay python2-beautifulsoup4))))))
+    (license license:expat)))
 
 (define-public python2-beautifulsoup4
-  (package
-    (inherit (package-with-python2
-              (strip-python2-variant python-beautifulsoup4)))
-    (native-inputs `(("python2-setuptools" ,python2-setuptools)))))
+  (package-with-python2 python-beautifulsoup4))
 
 (define-public python2-cssutils
   (package
@@ -5512,14 +5438,10 @@ should be stored on various operating systems.")
 suitable for similar data to JSON.  This package provides CPython bindings for
 reading and writing MessagePack data.")
     (home-page "https://pypi.python.org/pypi/msgpack-python/")
-    (license license:asl2.0)
-    (properties `((python2-variant . ,(delay python2-msgpack))))))
+    (license license:asl2.0)))
 
 (define-public python2-msgpack
-  (package (inherit (package-with-python2
-                     (strip-python2-variant python-msgpack)))
-    (native-inputs
-     `(("python2-setuptools" ,python2-setuptools)))))
+  (package-with-python2 python-msgpack))
 
 (define-public python2-msgpack
   (package-with-python2 python-msgpack))
@@ -5828,15 +5750,10 @@ implementations of ASN.1-based codecs and protocols.")
  in Python.  This library is used to create, poke at, and manipulate IPv4 and
  IPv6 addresses and networks.  This is a port of the Python 3.3 ipaddress
  module to older versions of Python.")
-    (license license:psfl)
-    (properties `((python2-variant . ,(delay python2-ipaddress))))))
+    (license license:psfl)))
 
 (define-public python2-ipaddress
-  (let ((base (package-with-python2 (strip-python2-variant python-ipaddress))))
-    (package (inherit base)
-      (native-inputs
-       `(("python2-setuptools" ,python2-setuptools)
-         ,@(package-native-inputs base))))))
+  (package-with-python2 python-ipaddress))
 
 (define-public python2-ipaddr
   (package
@@ -6877,14 +6794,10 @@ WebSocket usage in Python programs.")
     (description "Library for atomic file writes using platform dependent tools
 for atomic file system operations.")
     (home-page "https://github.com/untitaker/python-atomicwrites")
-    (license license:expat)
-    (properties `((python2-variant . ,(delay python2-atomicwrites))))))
+    (license license:expat)))
 
 (define-public python2-atomicwrites
-  (package (inherit (package-with-python2
-                     (strip-python2-variant python-atomicwrites)))
-    (native-inputs
-     `(("python2-setuptools" ,python2-setuptools)))))
+  (package-with-python2 python-atomicwrites))
 
 (define-public python-requests-toolbelt
   (package
@@ -6967,15 +6880,10 @@ applications.")
 package and greatly reduce the number of imports for your users.  It is a small
 pure Python module that works on virtually all Python versions.")
     (home-page "https://bitbucket.org/hpk42/apipkg")
-    (license license:expat)
-    (properties `((python2-variant . ,(delay python2-apipkg))))))
+    (license license:expat)))
 
 (define-public python2-apipkg
-  (package
-    (inherit (package-with-python2
-              (strip-python2-variant python-apipkg)))
-    (native-inputs
-     `(("python2-setuptools" ,python2-setuptools)))))
+  (package-with-python2 python-apipkg))
 
 (define-public python-execnet
   (package
@@ -7003,17 +6911,10 @@ minimal and fast API targetting the following uses:
 @item write scripts to administer multiple environments
 @end enumerate")
     (home-page "http://codespeak.net/execnet/")
-    (license license:expat)
-    (properties `((python2-variant . ,(delay python2-execnet))))))
+    (license license:expat)))
 
 (define-public python2-execnet
-  (let ((execnet (package-with-python2
-                  (strip-python2-variant python-execnet))))
-    (package
-      (inherit execnet)
-      (native-inputs
-       `(("python2-setuptools" ,python2-setuptools)
-         ,@(package-native-inputs execnet))))))
+  (package-with-python2 python-execnet))
 
 ;;; The software provided by this package was integrated into pytest 2.8.
 (define-public python-pytest-cache
@@ -7036,17 +6937,10 @@ minimal and fast API targetting the following uses:
     (description "The pytest-cache plugin provides tools to rerun failures from
 the last py.test invocation.")
     (home-page "https://bitbucket.org/hpk42/pytest-cache/")
-    (license license:expat)
-    (properties `((python2-variant . ,(delay python2-pytest-cache))))))
+    (license license:expat)))
 
 (define-public python2-pytest-cache
-  (let ((pytest-cache (package-with-python2
-                        (strip-python2-variant python-pytest-cache))))
-    (package
-      (inherit pytest-cache)
-      (native-inputs
-       `(("python2-setuptools" ,python2-setuptools)
-         ,@(package-native-inputs pytest-cache))))))
+  (package-with-python2 python-pytest-cache))
 
 (define-public python-pytest-localserver
   (package
@@ -7712,14 +7606,10 @@ python-xdo for newer bindings.)")
      "WTForms is a flexible forms validation and rendering library
 for Python web development.  It is very similar to the web form API
 available in Django, but is a standalone package.")
-    (license license:bsd-3)
-    (properties `((python2-variant . ,(delay python2-wtforms))))))
+    (license license:bsd-3)))
 
 (define-public python2-wtforms
-  (package
-    (inherit (package-with-python2
-              (strip-python2-variant python-wtforms)))
-    (inputs `(("python2-setuptools" ,python2-setuptools)))))
+  (package-with-python2 python-wtforms))
 
 (define-public python-mako
   (package
@@ -7741,17 +7631,10 @@ available in Django, but is a standalone package.")
     (synopsis "Templating language for Python")
     (description "Mako is a templating language for Python that compiles
 templates into Python modules.")
-    (license license:expat)
-    (properties `((python2-variant . ,(delay python2-mako))))))
+    (license license:expat)))
 
 (define-public python2-mako
-  (let ((base (package-with-python2
-               (strip-python2-variant python-mako))))
-    (package
-      (inherit base)
-      (native-inputs
-       (cons `("python2-setuptools" ,python2-setuptools)
-             (package-native-inputs base))))))
+  (package-with-python2 python-mako))
 
 (define-public python-waitress
   (package
@@ -7769,14 +7652,10 @@ templates into Python modules.")
     (synopsis "Waitress WSGI server")
     (description "Waitress is meant to be a production-quality pure-Python WSGI
 server with very acceptable performance.")
-    (license license:zpl2.1)
-    (properties `((python2-variant . ,(delay python2-waitress))))))
+    (license license:zpl2.1)))
 
 (define-public python2-waitress
-  (package
-    (inherit (package-with-python2
-              (strip-python2-variant python-waitress)))
-    (native-inputs `(("python2-setuptools" ,python2-setuptools)))))
+  (package-with-python2 python-waitress))
 
 (define-public python-wsgiproxy2
   (package
@@ -7804,16 +7683,10 @@ server with very acceptable performance.")
 WSGIProxy turns WSGI function calls into HTTP requests.
 It also includes code to sign requests and pass private data,
 and to spawn subprocesses to handle requests.")
-    (license license:expat)
-    (properties `((python2-variant . ,(delay python2-wsgiproxy2))))))
+    (license license:expat)))
 
 (define-public python2-wsgiproxy2
-  (let ((wsgiproxy2 (package-with-python2
-                     (strip-python2-variant python-wsgiproxy2))))
-    (package
-      (inherit wsgiproxy2)
-      (inputs `(("python2-setuptools" ,python2-setuptools)
-                ,@(package-inputs wsgiproxy2))))))
+ (package-with-python2 python-wsgiproxy2))
 
 (define-public python-pastedeploy
   (package
@@ -7945,15 +7818,10 @@ layouts.")
     (description "pyquery allows you to make jQuery queries on xml documents.
 The API is as much as possible the similar to jQuery.  pyquery uses lxml for
 fast xml and html manipulation.")
-    (license license:bsd-3)
-    (properties `((python2-variant . ,(delay python2-pyquery))))))
+    (license license:bsd-3)))
 
 (define-public python2-pyquery
-  (let ((pyquery (package-with-python2
-                  (strip-python2-variant python-pyquery))))
-    (package
-      (inherit pyquery)
-      (native-inputs `(("python2-setuptools" ,python2-setuptools))))))
+  (package-with-python2 python-pyquery))
 
 (define-public python-webtest
   (package
@@ -7996,16 +7864,10 @@ fast xml and html manipulation.")
     (description "Webtest allows you to test your Python web applications
 without starting an HTTP server.  It supports anything that supports the
 minimum of WSGI.")
-    (license license:expat)
-    (properties `((python2-variant . ,(delay python2-webtest))))))
+    (license license:expat)))
 
 (define-public python2-webtest
-  (let ((webtest (package-with-python2
-                  (strip-python2-variant python-webtest))))
-    (package
-      (inherit webtest)
-      (native-inputs `(("python2-setuptools" ,python2-setuptools)
-                       ,@(package-native-inputs webtest))))))
+  (package-with-python2 python-webtest))
 
 (define-public python-anyjson
   (package
@@ -8215,14 +8077,10 @@ synchronously (wait until ready).")
      "This package contains codecs for transliterating ISO 10646 texts into
 best-effort representations using smaller coded character sets (ASCII,
 ISO 8859, etc.).")
-    (license license:expat)
-    (properties `((python2-variant . ,(delay python2-translitcodec))))))
+    (license license:expat)))
 
 (define-public python2-translitcodec
-  (package
-    (inherit (package-with-python2
-              (strip-python2-variant python-translitcodec)))
-    (native-inputs `(("python2-setuptools" ,python2-setuptools)))))
+  (package-with-python2 python-translitcodec))
 
 (define-public python-editor
   (package
@@ -8243,14 +8101,10 @@ ISO 8859, etc.).")
   (description
     "python-editor is a library that provides the editor module for
 programmatically interfacing with your system's $EDITOR.")
-  (license license:asl2.0)
-  (properties `((python2-variant . ,(delay python2-editor))))))
+  (license license:asl2.0)))
 
 (define-public python2-editor
-  (package
-    (inherit (package-with-python2
-              (strip-python2-variant python-editor)))
-    (inputs `(("python2-setuptools" ,python2-setuptools)))))
+  (package-with-python2 python-editor))
 
 (define-public python-sphinxcontrib-programoutput
   (package
@@ -8270,14 +8124,10 @@ programmatically interfacing with your system's $EDITOR.")
     (description "A Sphinx extension to literally insert the output of arbitrary
 commands into documents, helping you to keep your command examples up to date.")
     (home-page "https://github.com/lunaryorn/sphinxcontrib-programoutput")
-    (license license:bsd-2)
-    (properties `((python2-variant . ,(delay python2-sphinxcontrib-programoutput))))))
+    (license license:bsd-2)))
 
 (define-public python2-sphinxcontrib-programoutput
-  (package
-    (inherit (package-with-python2
-              (strip-python2-variant python-sphinxcontrib-programoutput)))
-    (native-inputs `(("python2-setuptools" ,python2-setuptools)))))
+  (package-with-python2 python-sphinxcontrib-programoutput))
 
 (define-public python-sphinx-repoze-autointerface
   (package
@@ -8326,14 +8176,10 @@ introspection of @code{zope.interface} instances in code.")
     (synopsis "Python PostgreSQL adapter")
     (description
      "psycopg2 is a thread-safe PostgreSQL adapter that implements DB-API 2.0. ")
-    (license license:lgpl3+)
-    (properties `((python2-variant . ,(delay python2-psycopg2))))))
+    (license license:lgpl3+)))
 
 (define-public python2-psycopg2
-  (package
-    (inherit (package-with-python2
-              (strip-python2-variant python-psycopg2)))
-    (native-inputs `(("python2-setuptools" ,python2-setuptools)))))
+  (package-with-python2 python-psycopg2))
 
 (define-public python-vobject
   (package
@@ -8356,14 +8202,10 @@ are supported and well tested. vCard 3.0 files are supported, and all data
 should be imported, but only a few components are understood in a sophisticated
 way.")
     (home-page "http://eventable.github.io/vobject/")
-    (license license:asl2.0)
-    (properties `((python2-variant . ,(delay python2-vobject))))))
+    (license license:asl2.0)))
 
 (define-public python2-vobject
-  (package
-    (inherit (package-with-python2
-              (strip-python2-variant python-vobject)))
-    (native-inputs `(("python2-setuptools" ,python2-setuptools)))))
+  (package-with-python2 python-vobject))
 
 (define-public python-munkres
   (package
@@ -8408,13 +8250,10 @@ useful for solving the Assignment Problem.")
     (description "Flask is a micro web framework based on the Werkzeug toolkit
 and Jinja2 template engine.  It is called a micro framework because it does not
 presume or force a developer to use a particular tool or library.")
-    (license license:bsd-3)
-    (properties `((python2-variant . ,(delay python2-flask))))))
+    (license license:bsd-3)))
 
 (define-public python2-flask
-  (package (inherit (package-with-python2
-                     (strip-python2-variant python-flask)))
-    (native-inputs `(("python2-setuptools" ,python2-setuptools)))))
+  (package-with-python2 python-flask))
 
 (define-public python-cookies
   (package
@@ -8436,15 +8275,10 @@ presume or force a developer to use a particular tool or library.")
     (description "A RFC 6265-compliant HTTP cookie parser and renderer in
 Python.")
     (home-page "https://gitlab.com/sashahart/cookies")
-    (license license:expat)
-    (properties `((python2-variant . ,(delay python2-cookies))))))
+    (license license:expat)))
 
 (define-public python2-cookies
-  (let ((cookies (package-with-python2
-                  (strip-python2-variant python-cookies))))
-    (package (inherit cookies)
-      (native-inputs `(("python2-setuptools" ,python2-setuptools)
-                       ,@(package-native-inputs cookies))))))
+  (package-with-python2 python-cookies))
 
 (define-public python-responses
   (package
@@ -8471,15 +8305,10 @@ Python.")
     (synopsis "Utility for mocking out the `requests` Python library")
     (description "A utility library for mocking out the `requests` Python
 library.")
-    (license license:asl2.0)
-    (properties `((python2-variant . ,(delay python2-responses))))))
+    (license license:asl2.0)))
 
 (define-public python2-responses
-  (let ((responses (package-with-python2
-                    (strip-python2-variant python-responses))))
-    (package (inherit responses)
-      (native-inputs `(("python2-setuptools" ,python2-setuptools)
-                       ,@(package-native-inputs responses))))))
+  (package-with-python2 python-responses))
 
 (define-public python-pathlib
   (package
@@ -8808,15 +8637,10 @@ development version of CPython that are not available in older releases.")
      "@code{python-future} is the missing compatibility layer between Python 2 and
 Python 3.  It allows you to use a single, clean Python 3.x-compatible codebase
 to support both Python 2 and Python 3 with minimal overhead.")
-    (license license:expat)
-    (properties `((python2-variant . ,(delay python2-future))))))
+    (license license:expat)))
 
 (define-public python2-future
-  (let ((base (package-with-python2
-               (strip-python2-variant python-future))))
-    (package
-      (inherit base)
-      (native-inputs `(("python2-setuptools" ,python2-setuptools))))))
+  (package-with-python2 python-future))
 
 (define-public python-cysignals
   (package
@@ -9149,14 +8973,10 @@ network support library.")
     (synopsis "Python Lex & Yacc")
     (description "PLY is a @code{lex}/@code{yacc} implemented purely in Python.
 It uses LR parsing and does extensive error checking.")
-    (license license:bsd-3)
-    (properties `((python2-variant . ,(delay python2-ply))))))
+    (license license:bsd-3)))
 
 (define-public python2-ply
-  (package
-    (inherit (package-with-python2
-              (strip-python2-variant python-ply)))
-    (native-inputs `(("python2-setuptools" ,python2-setuptools)))))
+  (package-with-python2 python-ply))
 
 (define-public python-tabulate
   (package
@@ -9269,14 +9089,10 @@ wide-character codes.  It is useful for those implementing a terminal emulator,
 or programs that carefully produce output to be interpreted by one.  It is a
 Python implementation of the @code{wcwidth} and @code{wcswidth} C functions
 specified in POSIX.1-2001 and POSIX.1-2008.")
-  (license license:expat)
-  (properties `((python2-variant . ,(delay python2-wcwidth))))))
+  (license license:expat)))
 
 (define-public python2-wcwidth
-  (package
-    (inherit (package-with-python2
-              (strip-python2-variant python-wcwidth)))
-    (native-inputs `(("python2-setuptools" ,python2-setuptools)))))
+  (package-with-python2 python-wcwidth))
 
 (define-public python2-jsonrpclib
   (package
@@ -9661,16 +9477,10 @@ interfaces in Python.  It's like GNU Readline but it also features syntax
 highlighting while typing, out-of-the-box multi-line input editing, advanced
 code completion, incremental search, support for Chinese double-width
 characters, mouse support, and auto suggestions.")
-  (license license:bsd-3)
-  (properties `((python2-variant . ,(delay python2-prompt-toolkit))))))
+  (license license:bsd-3)))
 
 (define-public python2-prompt-toolkit
-  (let ((base (package-with-python2 (strip-python2-variant python-prompt-toolkit))))
-    (package
-      (inherit base)
-      (native-inputs
-       `(("python2-setuptools" ,python2-setuptools)
-         ,@(package-native-inputs base))))))
+  (package-with-python2 python-prompt-toolkit))
 
 (define-public python-jedi
   (package
@@ -9689,16 +9499,10 @@ characters, mouse support, and auto suggestions.")
       "Autocompletion for Python that can be used for text editors")
     (description
       "Jedi is an autocompletion tool for Python that can be used for text editors.")
-    (license license:expat)
-    (properties `((python2-variant . ,(delay python2-jedi))))))
+    (license license:expat)))
 
 (define-public python2-jedi
-  (let ((base (package-with-python2 (strip-python2-variant python-jedi))))
-    (package
-      (inherit base)
-      (native-inputs
-       `(("python2-setuptools" ,python2-setuptools)
-         ,@(package-native-inputs base))))))
+  (package-with-python2 python-jedi))
 
 (define-public ptpython
   (package
@@ -9765,15 +9569,10 @@ etc.")
     (description
      "Requests-OAuthlib uses the Python Requests and OAuthlib libraries to
 provide an easy-to-use Python interface for building OAuth1 and OAuth2 clients.")
-    (license license:isc)
-    (properties `((python2-variant . ,(delay python2-requests-oauthlib))))))
+    (license license:isc)))
 
 (define-public python2-requests-oauthlib
-  (let ((base (package-with-python2 (strip-python2-variant python-requests-oauthlib))))
-    (package
-      (inherit base)
-      (native-inputs `(("python2-setuptools" ,python2-setuptools)
-                       ,@(package-native-inputs base))))))
+  (package-with-python2 python-requests-oauthlib))
 
 (define-public python-stem
   (package
@@ -9829,16 +9628,10 @@ relays publish about themselves.")
     (description "@code{pyserial} provide serial port bindings for Python.  It
 supports different byte sizes, stop bits, parity and flow control with RTS/CTS
 and/or Xon/Xoff.  The port is accessed in RAW mode.")
-    (license license:bsd-3)
-    (properties `((python2-variant . ,(delay python2-pyserial))))))
+    (license license:bsd-3)))
 
 (define-public python2-pyserial
-  (let ((base (package-with-python2 (strip-python2-variant python-pyserial))))
-    (package
-      (inherit base)
-      (native-inputs
-       `(("python2-setuptools" ,python2-setuptools)
-         ,@(package-native-inputs base))))))
+  (package-with-python2 python-pyserial))
 
 (define-public python-kivy
   (package
@@ -9949,15 +9742,10 @@ binary or text.")
 resources such as WordNet, along with a suite of text processing libraries
 for classification, tokenization, stemming, tagging, parsing, and semantic
 reasoning, wrappers for natural language processing libraries.")
-    (license license:asl2.0)
-    (properties `((python2-variant . ,(delay python2-nltk))))))
+    (license license:asl2.0)))
 
 (define-public python2-nltk
-  (let ((base (package-with-python2 (strip-python2-variant python-nltk))))
-    (package (inherit base)
-      (native-inputs
-       `(("python2-setuptools" ,python2-setuptools)
-         ,@(package-native-inputs base))))))
+  (package-with-python2 python-nltk))
 
 (define-public python-pymongo
   (package
@@ -9975,15 +9763,10 @@ reasoning, wrappers for natural language processing libraries.")
     (home-page "http://github.com/mongodb/mongo-python-driver")
     (synopsis "Python driver for MongoDB")
     (description "Python driver for MongoDB.")
-    (license license:asl2.0)
-    (properties `((python2-variant . ,(delay python2-pymongo))))))
+    (license license:asl2.0)))
 
 (define-public python2-pymongo
-  (let ((base (package-with-python2 (strip-python2-variant python-pymongo))))
-    (package (inherit base)
-      (native-inputs
-       `(("python2-setuptools" ,python2-setuptools)
-         ,@(package-native-inputs base))))))
+  (package-with-python2 python-pymongo))
 
 (define-public python-sh
   (package
@@ -10002,15 +9785,10 @@ reasoning, wrappers for natural language processing libraries.")
     (synopsis "Python subprocess interface")
     (description "Abstracts process invocation by providing a function
 interface for programs.")
-    (license license:expat)
-    (properties `((python2-variant . ,(delay python2-sh))))))
+    (license license:expat)))
 
 (define-public python2-sh
-  (let ((base (package-with-python2 (strip-python2-variant python-sh))))
-    (package (inherit base)
-      (native-inputs
-       `(("python2-setuptools" ,python2-setuptools)
-         ,@(package-native-inputs base))))))
+  (package-with-python2 python-sh))
 
 (define-public python-consul
   (package
@@ -10036,11 +9814,7 @@ discovery, monitoring and configuration.")
     (license license:expat)))
 
 (define-public python2-consul
-  (let ((consul (package-with-python2 python-consul)))
-    (package (inherit consul)
-      (native-inputs
-       `(("python2-setuptools" ,python2-setuptools)
-         ,@(package-native-inputs consul))))))
+  (package-with-python2 python-consul))
 
 (define-public python-schematics
   (package
@@ -10064,15 +9838,10 @@ discovery, monitoring and configuration.")
     (home-page "https://github.com/schematics/schematics")
     (synopsis "Python Data Structures for Humans")
     (description "Python Data Structures for Humans.")
-    (license license:bsd-3)
-    (properties `((python2-variant . ,(delay python2-schematics))))))
+    (license license:bsd-3)))
 
 (define-public python2-schematics
-  (let ((base (package-with-python2 (strip-python2-variant python-schematics))))
-    (package (inherit base)
-      (native-inputs
-       `(("python2-setuptools" ,python2-setuptools)
-         ,@(package-native-inputs base))))))
+  (package-with-python2 python-schematics))
 
 (define-public python-publicsuffix
   (package
@@ -10091,15 +9860,10 @@ discovery, monitoring and configuration.")
     (synopsis "Get suffix for a domain name")
     (description "Get a public suffix for a domain name using the Public Suffix
 List.")
-    (license license:expat)
-    (properties `((python2-variant . ,(delay python2-nltk))))))
+    (license license:expat)))
 
 (define-public python2-publicsuffix
-  (let ((base (package-with-python2 (strip-python2-variant python-publicsuffix))))
-    (package (inherit base)
-      (native-inputs
-       `(("python2-setuptools" ,python2-setuptools)
-         ,@(package-native-inputs base))))))
+  (package-with-python2 python-publicsuffix))
 
 (define-public python-publicsuffix2
   (package
@@ -10117,15 +9881,10 @@ List.")
     (synopsis "Get a public suffix for a domain name using the Public Suffix List")
     (description "Get a public suffix for a domain name using the Public Suffix
 List.  Forked from and using the same API as the publicsuffix package.")
-    (license (list license:expat license:mpl2.0))
-    (properties `((python2-variant . ,(delay python2-publicsuffix2))))))
+    (license (list license:expat license:mpl2.0))))
 
 (define-public python2-publicsuffix2
-  (let ((base (package-with-python2 (strip-python2-variant python-publicsuffix2))))
-    (package (inherit base)
-      (native-inputs
-       `(("python2-setuptools" ,python2-setuptools)
-         ,@(package-native-inputs base))))))
+  (package-with-python2 python-publicsuffix2))
 
 (define-public python-url
   (package
@@ -10155,10 +9914,7 @@ List.  Forked from and using the same API as the publicsuffix package.")
   (let ((base (package-with-python2 (strip-python2-variant python-url))))
     (package (inherit base)
       (inputs
-       `(("python2-publicsuffix" ,python2-publicsuffix)))
-      (native-inputs
-       `(("python2-setuptools" ,python2-setuptools)
-         ,@(package-native-inputs base))))))
+       `(("python2-publicsuffix" ,python2-publicsuffix))))))
 
 (define-public python-freezegun
   (package
@@ -10194,11 +9950,8 @@ time by mocking the datetime module.")
     (license license:asl2.0)))
 
 (define-public python2-freezegun
-  (let ((base (package-with-python2 (strip-python2-variant python-freezegun))))
-    (package (inherit base)
-      (native-inputs
-       `(("python2-setuptools" ,python2-setuptools)
-         ,@(package-native-inputs base))))))
+  (package-with-python2 python-freezegun))
+
 
 (define-public python-odfpy
   (package
@@ -10275,15 +10028,10 @@ Python to manipulate OpenDocument 1.2 files.")
     (synopsis "The httplib2 caching algorithms for use with requests")
     (description "CacheControl is a port of the caching algorithms in
 @code{httplib2} for use with @code{requests} session objects.")
-    (license license:asl2.0)
-    (properties `((python2-variant . ,(delay python2-cachecontrol))))))
+    (license license:asl2.0)))
 
 (define-public python2-cachecontrol
-  (let ((base (package-with-python2 (strip-python2-variant python-cachecontrol))))
-    (package (inherit base)
-             (native-inputs
-              `(("python2-setuptools" ,python2-setuptools)
-                ,@(package-native-inputs base))))))
+  (package-with-python2 python-cachecontrol))
 
 (define-public python-lit
   (package
@@ -10302,16 +10050,10 @@ Python to manipulate OpenDocument 1.2 files.")
     (description "@code{lit} is a portable tool for executing LLVM and Clang
 style test suites, summarizing their results, and providing indication of
 failures.")
-    (license license:ncsa)
-    (properties `((python2-variant . ,(delay python2-lit))))))
+    (license license:ncsa)))
 
 (define-public python2-lit
-  (let ((base (package-with-python2 (strip-python2-variant python-lit))))
-    (package
-      (inherit base)
-      (native-inputs
-       `(("python2-setuptools" ,python2-setuptools)
-         ,@(package-native-inputs base))))))
+  (package-with-python2 python-lit))
 
 (define-public python-pytest-pep8
   (package
@@ -10336,15 +10078,10 @@ failures.")
     (home-page "https://bitbucket.org/pytest-dev/pytest-pep8")
     (synopsis "Py.test plugin to check PEP8 requirements")
     (description "Pytest plugin for checking PEP8 compliance.")
-    (license license:expat)
-    (properties `((python2-variant . ,(delay python2-pytest-pep8))))))
+    (license license:expat)))
 
 (define-public python2-pytest-pep8
-  (let ((base (package-with-python2 (strip-python2-variant python-pytest-pep8))))
-    (package (inherit base)
-             (native-inputs
-              `(("python2-setuptools" ,python2-setuptools)
-                ,@(package-native-inputs base))))))
+  (package-with-python2 python-pytest-pep8))
 
 (define-public python-pytest-flakes
   (package
@@ -10377,15 +10114,10 @@ failures.")
     (home-page "https://github.com/fschulze/pytest-flakes")
     (synopsis "Py.test plugin to check source code with pyflakes")
     (description "Pytest plugin for checking Python source code with pyflakes.")
-    (license license:expat)
-    (properties `((python2-variant . ,(delay python2-pytest-flakes))))))
+    (license license:expat)))
 
 (define-public python2-pytest-flakes
-  (let ((base (package-with-python2 (strip-python2-variant python-pytest-flakes))))
-    (package (inherit base)
-             (native-inputs
-              `(("python2-setuptools" ,python2-setuptools)
-                ,@(package-native-inputs base))))))
+  (package-with-python2 python-pytest-flakes))
 
 (define-public python-natsort
   (package
@@ -10457,16 +10189,10 @@ functionality in the command line.")
     "Glances is a curses-based monitoring tool for a wide variety of platforms.
 Glances uses the PsUtil library to get information from your system. It monitors
 CPU, load, memory, network bandwidth, disk I/O, disk use, and more.")
-  (license license:lgpl3+)
-  (properties `((python2-variant . ,(delay python2-glances))))))
+  (license license:lgpl3+)))
 
 (define-public python2-glances
-  (let ((base (package-with-python2 (strip-python2-variant python-glances))))
-    (package
-      (inherit base)
-      (native-inputs
-       `(("python2-setuptools" ,python2-setuptools)
-         ,@(package-native-inputs base))))))
+  (package-with-python2 python-glances))
 
 (define-public python-graphql-core
   (package
@@ -10502,16 +10228,10 @@ CPU, load, memory, network bandwidth, disk I/O, disk use, and more.")
 runtime designed and used to request and deliver data to mobile and web apps.
 This library is a port of @url{https://github.com/graphql/graphql-js,graphql-js}
 to Python.")
-    (properties `((python2-variant . ,(delay python2-graphql-core))))
     (license license:expat)))
 
 (define-public python2-graphql-core
-  (let ((base (package-with-python2
-                (strip-python2-variant python-graphql-core))))
-    (package (inherit base)
-      (native-inputs
-       `(("python2-setuptools" ,python2-setuptools)
-         ,@(package-native-inputs base))))))
+  (package-with-python2 python-graphql-core))
 
 (define-public python-graphql-relay
   (package
@@ -10539,16 +10259,10 @@ using the GraphQL Python reference implementation of a GraphQL server.  It
 should be noted that the code is a exact port of the original
 @url{https://github.com/graphql/graphql-relay-js,graphql-relay js implementation}
 from Facebook.")
-    (properties `((python2-variant . ,(delay python2-graphql-relay))))
     (license license:expat)))
 
 (define-public python2-graphql-relay
-  (let ((base (package-with-python2
-                (strip-python2-variant python-graphql-relay))))
-    (package (inherit base)
-      (native-inputs
-       `(("python2-setuptools" ,python2-setuptools)
-         ,@(package-native-inputs base))))))
+  (package-with-python2 python-graphql-relay))
 
 (define-public python-graphene
   (package
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 37+ messages in thread

* [PATCH 11/14] gnu: Remove needless inputs python-pip and python2-pip.
  2016-09-28 13:58 [PATCH 00/14] Change python-build-system (fixes bug 20765) Hartmut Goebel
                   ` (9 preceding siblings ...)
  2016-09-28 13:58 ` [PATCH 10/14] gnu: Remove python-setuptools and python2-setuptools from inputs (part 5b) Hartmut Goebel
@ 2016-09-28 13:58 ` Hartmut Goebel
  2016-09-28 13:58 ` [PATCH 12/14] lint: 'check-inputs-should-not-be-an-input-at-all' checks for python-pip Hartmut Goebel
                   ` (4 subsequent siblings)
  15 siblings, 0 replies; 37+ messages in thread
From: Hartmut Goebel @ 2016-09-28 13:58 UTC (permalink / raw)
  To: guix-devel

This is installed together with Python 3 anyway and for our build
of Python 2.

* gnu/packages/python.scm (python-fixtures): remove input "python-pip".
* gnu/packages/pdf.scm (python2-reportlab): remove native-input
  "python2-pip". (python-reportlab): remove now needless property
  "python2-variant".
---
 gnu/packages/pdf.scm    | 8 ++------
 gnu/packages/python.scm | 3 +--
 2 files changed, 3 insertions(+), 8 deletions(-)

diff --git a/gnu/packages/pdf.scm b/gnu/packages/pdf.scm
index 61fe84e..614816f 100644
--- a/gnu/packages/pdf.scm
+++ b/gnu/packages/pdf.scm
@@ -634,14 +634,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
diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index 899573e..b30840a 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -1970,8 +1970,7 @@ and sensible default behaviors into your setuptools run.")
      `(("python-six" ,python-six)
        ("python-pbr-0.11" ,python-pbr-0.11)))
     (inputs
-     `(("python-pip" ,python-pip)
-       ;; Tests
+     `(;; Tests
        ("python-testtools" ,python-testtools)))
     (arguments
      '(#:tests? #f)) ; no setup.py test command
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 37+ messages in thread

* [PATCH 12/14] lint: 'check-inputs-should-not-be-an-input-at-all' checks for python-pip
  2016-09-28 13:58 [PATCH 00/14] Change python-build-system (fixes bug 20765) Hartmut Goebel
                   ` (10 preceding siblings ...)
  2016-09-28 13:58 ` [PATCH 11/14] gnu: Remove needless inputs python-pip and python2-pip Hartmut Goebel
@ 2016-09-28 13:58 ` Hartmut Goebel
  2016-09-28 13:58 ` [PATCH 13/14] gnu: python-h5py: Remove needless "python2-variant" property Hartmut Goebel
                   ` (3 subsequent siblings)
  15 siblings, 0 replies; 37+ messages in thread
From: Hartmut Goebel @ 2016-09-28 13:58 UTC (permalink / raw)
  To: guix-devel

... and python2-pip.

* guix/scripts/lint.scm (check-inputs-should-not-be-an-input-at-all):
  Add python-pip and python2-pip to the list of packages to be warned
  about.
---
 guix/scripts/lint.scm | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/guix/scripts/lint.scm b/guix/scripts/lint.scm
index ce9fee7..af38a3e 100644
--- a/guix/scripts/lint.scm
+++ b/guix/scripts/lint.scm
@@ -255,7 +255,9 @@ by two spaces; possible infraction~p at ~{~a~^, ~}")
         (inputs (package-inputs package))
         (input-names
           '("python-setuptools"
-            "python2-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)
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 37+ messages in thread

* [PATCH 13/14] gnu: python-h5py: Remove needless "python2-variant" property.
  2016-09-28 13:58 [PATCH 00/14] Change python-build-system (fixes bug 20765) Hartmut Goebel
                   ` (11 preceding siblings ...)
  2016-09-28 13:58 ` [PATCH 12/14] lint: 'check-inputs-should-not-be-an-input-at-all' checks for python-pip Hartmut Goebel
@ 2016-09-28 13:58 ` Hartmut Goebel
  2016-09-28 13:58 ` [PATCH 14/14] gnu: Remove work-arounds for bug 20765 (ensure uncompressed eggs) Hartmut Goebel
                   ` (2 subsequent siblings)
  15 siblings, 0 replies; 37+ messages in thread
From: Hartmut Goebel @ 2016-09-28 13:58 UTC (permalink / raw)
  To: guix-devel

* gnu/packages/python.scm (python-h5py): Remove "python2-variant"
  property. (python2-h5py): Don't call "strip-python2-variant".
---
 gnu/packages/python.scm | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index b30840a..b9fe1fc 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -726,11 +726,10 @@ HDF5 library from Python.  The low-level interface is intended to be a
 complete wrapping of the HDF5 API, while the high-level component supports
 access to HDF5 files, datasets and groups using established Python and NumPy
 concepts.")
-    (license license:bsd-3)
-    (properties `((python2-variant . ,(delay python2-h5py))))))
+    (license license:bsd-3)))
 
 (define-public python2-h5py
-  (package-with-python2 (strip-python2-variant python-h5py)))
+  (package-with-python2 python-h5py))
 
 (define-public python-lockfile
   (package
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 37+ messages in thread

* [PATCH 14/14] gnu: Remove work-arounds for bug 20765 (ensure uncompressed eggs)
  2016-09-28 13:58 [PATCH 00/14] Change python-build-system (fixes bug 20765) Hartmut Goebel
                   ` (12 preceding siblings ...)
  2016-09-28 13:58 ` [PATCH 13/14] gnu: python-h5py: Remove needless "python2-variant" property Hartmut Goebel
@ 2016-09-28 13:58 ` Hartmut Goebel
  2016-09-28 14:03 ` [PATCH 00/14] Change python-build-system (fixes bug 20765) Hartmut Goebel
  2016-10-02  2:27 ` Leo Famulari
  15 siblings, 0 replies; 37+ messages in thread
From: Hartmut Goebel @ 2016-09-28 13:58 UTC (permalink / raw)
  To: guix-devel

Bug 20765 is solved since we build all Python packages using
option "--single-version-externally-managed".

* gnu/packages/bioinformatics.scm (pbtranscript-tofu): Remove
  configure-flags. (pepr): remove phase "disable-egg-generation".
* gnu/packages/pdf.scm (reportlab): Remove configure-flags.
* gnu/packages/python.scm (python-sphinx-rtd-theme, python2-elib.intl,
  python-pkgconfig, python-pytest-pep8, python-pytest-flakes): Remove
  configure-flags. (python-pillow) remove phase
  "disable-egg-generation". (python-libarchive-c) Remove patching
  setup.cfg.
* gnu/packages/statistics.scm (python-patsy): remove phase
  "prevent-generation-of-egg-archive".
* gnu/packages/tls.scm (python-acme): remove phase
  "disable-egg-compression".
* gnu/packages/tor.scm (onionshare): Remove configure-flags.
---
 gnu/packages/bioinformatics.scm | 19 +----------------
 gnu/packages/pdf.scm            |  5 -----
 gnu/packages/python.scm         | 47 ++++-------------------------------------
 gnu/packages/statistics.scm     |  8 +------
 gnu/packages/tls.scm            |  9 --------
 gnu/packages/tor.scm            |  6 +-----
 6 files changed, 7 insertions(+), 87 deletions(-)

diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
index f4ac802..fce6a07 100644
--- a/gnu/packages/bioinformatics.scm
+++ b/gnu/packages/bioinformatics.scm
@@ -3429,11 +3429,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
@@ -7114,19 +7109,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)
diff --git a/gnu/packages/pdf.scm b/gnu/packages/pdf.scm
index 614816f..c8a6e05 100644
--- a/gnu/packages/pdf.scm
+++ b/gnu/packages/pdf.scm
@@ -622,11 +622,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")
diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index b9fe1fc..2540acb 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -2697,12 +2697,6 @@ sources.")
         (base32
          "19nw3rn7awplcdrz63kg1njqwkbymfg9lwn7l2grhdyhyr2gaa8g"))))
     (build-system python-build-system)
-    (arguments
-     `(;; 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=sphinx-rtd-theme.txt")))
     (inputs
      `(("python-docutils" ,python-docutils)
        ("python-sphinx" ,python-sphinx)))
@@ -3709,12 +3703,7 @@ Python's distutils.")
     (arguments
      ;; incompatible with Python 3 (exception syntax)
      `(#:python ,python-2
-       #:tests? #f
-       ;; 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=elib.txt")))
+       #:tests? #f))
     (home-page "https://github.com/dieterv/elib.intl")
     (synopsis "Enhanced internationalization for Python")
     (description
@@ -3747,17 +3736,6 @@ services for your Python modules and applications.")
     ;; Note: setuptools used at runtime for pkg_resources
     (arguments
      `(#:phases (modify-phases %standard-phases
-                  (add-before
-                   'install 'disable-egg-compression
-                   (lambda _
-                     ;; Leave the .egg uncompressed since compressing it would
-                     ;; prevent the GC from identifying run-time dependencies.
-                     ;; 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 'check-installed
                    (lambda _
@@ -6030,15 +6008,7 @@ a hash value.")
                        (substitute* "libarchive/ffi.py"
                          (("find_library\\('archive'\\)")
                           (string-append "'" libarchive
-                                         "/lib/libarchive.so'"))))
-
-                     ;; Do not make a compressed 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))))))
+                                         "/lib/libarchive.so'")))))))))
     (inputs
      `(("libarchive" ,libarchive)))
     (home-page "https://github.com/Changaco/python-libarchive-c")
@@ -8550,9 +8520,6 @@ CloudFront content delivery network.")
       `(;; Tests fail with "ValueError: _type_ 'v' not supported" on Python 3,
         ;; and on Python 2 they need the dl module deprecated since Python 2.6.
         #:tests? #f
-        ;; Prevent creation of the egg. This works around
-        ;; https://debbugs.gnu.org/cgi/bugreport.cgi?bug=20765 .
-        #:configure-flags '("--single-version-externally-managed" "--root=/")
         ;; Hard-code the path to pkg-config.
         #:phases
         (modify-phases %standard-phases
@@ -10065,10 +10032,7 @@ failures.")
                 "06032agzhw1i9d9qlhfblnl3dw5hcyxhagn7b120zhrszbjzfbh3"))))
     (build-system python-build-system)
     (arguments
-     `(#:tests? #f ; Fails with recent pytest and pep8. See upstream issues #8 and #12.
-       ;; Prevent creation of the egg. This works around
-       ;; https://debbugs.gnu.org/cgi/bugreport.cgi?bug=20765 .
-       #:configure-flags '("--single-version-externally-managed" "--root=/")))
+     `(#:tests? #f)) ; Fails with recent pytest and pep8. See upstream issues #8 and #12.
     (native-inputs
      `(("python-pytest" ,python-pytest)))
     (propagated-inputs
@@ -10093,10 +10057,7 @@ failures.")
                 "0flag3n33kbhyjrhzmq990rvg4yb8hhhl0i48q9hw0ll89jp28lw"))))
     (build-system python-build-system)
     (arguments
-     `(;; Prevent creation of the egg. This works around
-       ;; https://debbugs.gnu.org/cgi/bugreport.cgi?bug=20765 .
-       #:configure-flags '("--single-version-externally-managed" "--root=/")
-       #:phases
+     `(#:phases
        (modify-phases %standard-phases
          (delete 'check)
          (add-after 'install 'check
diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm
index a3f9f2f..8bb74c4 100644
--- a/gnu/packages/statistics.scm
+++ b/gnu/packages/statistics.scm
@@ -1382,13 +1382,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)
diff --git a/gnu/packages/tls.scm b/gnu/packages/tls.scm
index 126e9df..1fe3179 100644
--- a/gnu/packages/tls.scm
+++ b/gnu/packages/tls.scm
@@ -476,15 +476,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"))
diff --git a/gnu/packages/tor.scm b/gnu/packages/tor.scm
index 42d882e..237961b 100644
--- a/gnu/packages/tor.scm
+++ b/gnu/packages/tor.scm
@@ -221,11 +221,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
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 37+ messages in thread

* Re: [PATCH 00/14] Change python-build-system (fixes bug 20765)
  2016-09-28 13:58 [PATCH 00/14] Change python-build-system (fixes bug 20765) Hartmut Goebel
                   ` (13 preceding siblings ...)
  2016-09-28 13:58 ` [PATCH 14/14] gnu: Remove work-arounds for bug 20765 (ensure uncompressed eggs) Hartmut Goebel
@ 2016-09-28 14:03 ` Hartmut Goebel
  2016-09-28 15:54   ` Marius Bakke
  2016-10-02  2:27 ` Leo Famulari
  15 siblings, 1 reply; 37+ messages in thread
From: Hartmut Goebel @ 2016-09-28 14:03 UTC (permalink / raw)
  To: guix-devel


[-- Attachment #1.1: Type: text/plain, Size: 738 bytes --]

Hi, minor correction:

Am 28.09.2016 um 15:58 schrieb Hartmut Goebel:
> This series implements what I proposed in
>   <http://lists.gnu.org/archive/html/guix-devel/2016-09/msg02021.html>.
>
> A) For python2 include python2-setuptools as a native-input by default.
I implemented :
*
A1) Change the Python 2 build to bootstrap pip*

-- 
Schönen Gruß
Hartmut Goebel
Dipl.-Informatiker (univ), CISSP, CSSLP, ISO 27001 Lead Implementer
Information Security Management, Security Governance, Secure Software
Development

Goebel Consult, Landshut
http://www.goebel-consult.de

Blog: http://www.goebel-consult.de/blog/get-current-locale-with-ansible
Kolumne: http://www.cissp-gefluester.de/2010-08-scheingefechte-um-rim


[-- Attachment #1.2: Type: text/html, Size: 2086 bytes --]

[-- Attachment #2: S/MIME Cryptographic Signature --]
[-- Type: application/pkcs7-signature, Size: 2430 bytes --]

^ permalink raw reply	[flat|nested] 37+ messages in thread

* Re: [PATCH 00/14] Change python-build-system (fixes bug 20765)
  2016-09-28 14:03 ` [PATCH 00/14] Change python-build-system (fixes bug 20765) Hartmut Goebel
@ 2016-09-28 15:54   ` Marius Bakke
  2016-09-28 17:33     ` Hartmut Goebel
  2016-09-28 17:40     ` Hartmut Goebel
  0 siblings, 2 replies; 37+ messages in thread
From: Marius Bakke @ 2016-09-28 15:54 UTC (permalink / raw)
  To: Hartmut Goebel, guix-devel

Hartmut Goebel <h.goebel@goebel-consult.de> writes:

> Hi, minor correction:
>
> Am 28.09.2016 um 15:58 schrieb Hartmut Goebel:
>> This series implements what I proposed in
>>   <http://lists.gnu.org/archive/html/guix-devel/2016-09/msg02021.html>.
>>
>> A) For python2 include python2-setuptools as a native-input by default.
> I implemented :
> *
> A1) Change the Python 2 build to bootstrap pip*

Wow, amazing work! I am unable to apply these patches with "git am".
Any chance you can resend after "git format-patch"? For long patch
series, I tend to "git format-patch -n master --stdout > series.patch".

Or push a branch somewhere? It would probably be sensible to run this
through Hydra, but I'll try building (@ (gnu packages python)) on my
server.

Thanks!

^ permalink raw reply	[flat|nested] 37+ messages in thread

* Re: [PATCH 00/14] Change python-build-system (fixes bug 20765)
  2016-09-28 15:54   ` Marius Bakke
@ 2016-09-28 17:33     ` Hartmut Goebel
  2016-09-28 17:40     ` Hartmut Goebel
  1 sibling, 0 replies; 37+ messages in thread
From: Hartmut Goebel @ 2016-09-28 17:33 UTC (permalink / raw)
  To: Marius Bakke, guix-devel

Am 28.09.2016 um 17:54 schrieb Marius Bakke:
> I am unable to apply these patches with "git am".
> Any chance you can resend after "git format-patch"? For long patch
> series, I tend to "git format-patch -n master --stdout > series.patch".
I'm using "git format-patch --cover-letter -M origin/master -o
outgoing/" and can't see what should be different (except that you'll
end up with all patches in a single file).

The patch-series was created based on
58478cc1cb225e2eed979afa4021f850f3ebf121.

-- 
Regards
Hartmut Goebel

| Hartmut Goebel          | h.goebel@crazy-compilers.com               |
| www.crazy-compilers.com | compilers which you thought are impossible |

^ permalink raw reply	[flat|nested] 37+ messages in thread

* Re: [PATCH 00/14] Change python-build-system (fixes bug 20765)
  2016-09-28 15:54   ` Marius Bakke
  2016-09-28 17:33     ` Hartmut Goebel
@ 2016-09-28 17:40     ` Hartmut Goebel
  2016-09-30 14:39       ` Marius Bakke
  1 sibling, 1 reply; 37+ messages in thread
From: Hartmut Goebel @ 2016-09-28 17:40 UTC (permalink / raw)
  To: Marius Bakke, guix-devel

Am 28.09.2016 um 17:54 schrieb Marius Bakke:
> Or push a branch somewhere?

Branch is now available at 
<https://gitlab.com/htgoebel/guix/tree/python-build-system>

-- 
Regards
Hartmut Goebel

| Hartmut Goebel          | h.goebel@crazy-compilers.com               |
| www.crazy-compilers.com | compilers which you thought are impossible |

^ permalink raw reply	[flat|nested] 37+ messages in thread

* Re: [PATCH 00/14] Change python-build-system (fixes bug 20765)
  2016-09-28 17:40     ` Hartmut Goebel
@ 2016-09-30 14:39       ` Marius Bakke
  2016-10-02  9:05         ` Hartmut Goebel
                           ` (3 more replies)
  0 siblings, 4 replies; 37+ messages in thread
From: Marius Bakke @ 2016-09-30 14:39 UTC (permalink / raw)
  To: Hartmut Goebel, guix-devel

[-- Attachment #1: Type: text/plain, Size: 902 bytes --]

Hartmut Goebel <h.goebel@crazy-compilers.com> writes:

> Am 28.09.2016 um 17:54 schrieb Marius Bakke:
>> Or push a branch somewhere?
>
> Branch is now available at 
> <https://gitlab.com/htgoebel/guix/tree/python-build-system>

Thanks a lot for doing this!

After adding a couple of patches I'm able to build many python packages.
Patch #2 mostly emulates NixOS "shim" setup.py[0], required for packages
using distutils instead of setuptools.

Some packages really don't like the new configure flags however (scons).
Perhaps we should have them as default, but if #:configure-flags is set,
let them be overridden?

Also some packages are missing a dependency on "python-py"[1].

Perhaps we can set up a Hydra channel to deal with the fallout?

Cheers,
Marius

0: https://github.com/NixOS/nixpkgs/blob/master/pkgs/development/interpreters/python/run_setup.py

1: https://pypi.python.org/pypi/py/1.4.31


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0001-guix-python-build-system-fix-configure-flag-append-f.patch --]
[-- Type: text/x-patch, Size: 1261 bytes --]

From a12000dd320cebeb920a4f790fe9206a2b6bda41 Mon Sep 17 00:00:00 2001
From: Marius Bakke <mbakke@fastmail.com>
Date: Thu, 29 Sep 2016 18:29:21 +0100
Subject: [PATCH 1/2] guix: python-build-system: fix configure flag append
 (followup to dba07a8d1)

---
 guix/build/python-build-system.scm | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/guix/build/python-build-system.scm b/guix/build/python-build-system.scm
index 8d4d6d3..d07b83f 100644
--- a/guix/build/python-build-system.scm
+++ b/guix/build/python-build-system.scm
@@ -65,11 +65,11 @@
                   #:allow-other-keys)
   "Install a given Python package."
   (let* ((out (assoc-ref outputs "out"))
-         (params (append (list (string-append "--prefix=" out))
-                         "--single-version-externally-managed"
-                         "--root=/"
+         (params (append (list (string-append "--prefix=" out)
+                               "--single-version-externally-managed"
+                               "--root=/")
                          configure-flags)))
-        (call-setuppy "install" params)))
+    (call-setuppy "install" params)))
 
 (define* (wrap #:key inputs outputs #:allow-other-keys)
   (define (list-of-files dir)
-- 
2.10.0


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #3: 0002-guix-python-build-system-Import-setuptools-before-ca.patch --]
[-- Type: text/x-patch, Size: 1559 bytes --]

From 84fa3e8be3d3d868ddb9278a96807086415b754d Mon Sep 17 00:00:00 2001
From: Marius Bakke <mbakke@fastmail.com>
Date: Thu, 29 Sep 2016 18:41:35 +0100
Subject: [PATCH 2/2] guix: python-build-system: Import setuptools before
 calling `setup.py'.

This is needed for packages using "distutils" instead of "setuptools"
since the former does not understand the
"--single-version-externally-managed" flag. Also export __file__ since
it will be unset when setup.py is called from python "exec".

* guix/build/python-build-system.scm (call-setuppy): extend
"python setup.py" call to import setuptools, export __file__, and
call setup.py from setuptools python environment.
---
 guix/build/python-build-system.scm | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/guix/build/python-build-system.scm b/guix/build/python-build-system.scm
index d07b83f..4362c48 100644
--- a/guix/build/python-build-system.scm
+++ b/guix/build/python-build-system.scm
@@ -42,7 +42,11 @@
       (begin
          (format #t "running \"python setup.py\" with command ~s and parameters ~s~%"
                 command params)
-         (zero? (apply system* "python" "setup.py" command params)))
+         (zero? (apply system* "python"
+                       "-c" (string-append "import setuptools;"
+                                           "__file__='setup.py';"
+                                           "exec(open('setup.py').read())")
+                       command params)))
       (error "no setup.py found")))
 
 (define* (build #:rest empty)
-- 
2.10.0


^ permalink raw reply related	[flat|nested] 37+ messages in thread

* Re: [PATCH 00/14] Change python-build-system (fixes bug 20765)
  2016-09-28 13:58 [PATCH 00/14] Change python-build-system (fixes bug 20765) Hartmut Goebel
                   ` (14 preceding siblings ...)
  2016-09-28 14:03 ` [PATCH 00/14] Change python-build-system (fixes bug 20765) Hartmut Goebel
@ 2016-10-02  2:27 ` Leo Famulari
  2016-10-02  2:46   ` Leo Famulari
  2016-10-02  9:18   ` Hartmut Goebel
  15 siblings, 2 replies; 37+ messages in thread
From: Leo Famulari @ 2016-10-02  2:27 UTC (permalink / raw)
  To: Hartmut Goebel; +Cc: guix-devel

On Wed, Sep 28, 2016 at 03:58:13PM +0200, Hartmut Goebel wrote:
> this is a patch-series fixing bug 20765.
> 
> Bug 20765 is about problems caused by python packages being installed as
> "zipped eggs" (basically these are zip-files).

Thanks for taking this on!

I will read it more thoroughly tomorrow.

I will test a few packages and, if they work, I plan to create a
python-build-system job on Hydra and try building it the entire package
tree (assuming that Hydra has the capacity).

> This series implements what I proposed in
>   <http://lists.gnu.org/archive/html/guix-devel/2016-09/msg02021.html>.
> 
> A) For python2 include python2-setuptools as a native-input by default.

Do all python-2 packages require setuptools, or just most of them?

> B) Install Python packages using --single-version-externally-managed

Okay.

> C) Strip python-setuptools and python2-setuptools from all native-inputs
>    defined in packages.

Hydra will test this :)

>  * update Python to 2.7.12 and 3.4.5.

Python 2.7.12 and 3.5.2 are on core-updates. Should I cherry-pick those
changes will testing these patches? Or should they work with the Python
packages that we have on master?

^ permalink raw reply	[flat|nested] 37+ messages in thread

* Re: [PATCH 00/14] Change python-build-system (fixes bug 20765)
  2016-10-02  2:27 ` Leo Famulari
@ 2016-10-02  2:46   ` Leo Famulari
  2016-10-02  9:19     ` Hartmut Goebel
  2016-10-02  9:18   ` Hartmut Goebel
  1 sibling, 1 reply; 37+ messages in thread
From: Leo Famulari @ 2016-10-02  2:46 UTC (permalink / raw)
  To: Hartmut Goebel; +Cc: guix-devel

On Sat, Oct 01, 2016 at 10:27:54PM -0400, Leo Famulari wrote:
> On Wed, Sep 28, 2016 at 03:58:13PM +0200, Hartmut Goebel wrote:
> > this is a patch-series fixing bug 20765.
> > 
> > Bug 20765 is about problems caused by python packages being installed as
> > "zipped eggs" (basically these are zip-files).
> 
> Thanks for taking this on!
> 
> I will read it more thoroughly tomorrow.
> 
> I will test a few packages and, if they work, I plan to create a
> python-build-system job on Hydra and try building it the entire package
> tree (assuming that Hydra has the capacity).

I underestimated the impact of this change. Just looking at libxcb,
which depends on python-minimal-wrapper, I see that ~2500 packages will
be rebuilt. So, depending on the status of core-updates, this should
wait until after core-updates is mostly built.

^ permalink raw reply	[flat|nested] 37+ messages in thread

* Re: [PATCH 00/14] Change python-build-system (fixes bug 20765)
  2016-09-30 14:39       ` Marius Bakke
@ 2016-10-02  9:05         ` Hartmut Goebel
  2016-10-02 12:14           ` Hartmut Goebel
  2016-10-02 14:24         ` Ludovic Courtès
                           ` (2 subsequent siblings)
  3 siblings, 1 reply; 37+ messages in thread
From: Hartmut Goebel @ 2016-10-02  9:05 UTC (permalink / raw)
  To: Marius Bakke, guix-devel

Am 30.09.2016 um 16:39 schrieb Marius Bakke:
> After adding a couple of patches I'm able to build many python packages.

Thanks for sharing. Sorry that you need #1 at all. I should have tested
my code another time prior to posting the patch.

> Patch #2 mostly emulates NixOS "shim" setup.py[0], required for packages
> using distutils instead of setuptools.

We should use the same code here pip uses [1,2], which is:

                "import setuptools, tokenize;__file__=%r;"
                "exec(compile(getattr(tokenize, 'open',
open)(__file__).read()"
                ".replace('\\r\\n', '\\n'), __file__, 'exec'))" %
self.setup_py

The main difference to your code is the use of token.open (Open a file
in read only mode using the encoding detected by detect_encoding() [3])
which we should use. Otherwise we will get encoding errors somewhen.

[1] https://github.com/pypa/pip/blob/8.1.2/pip/utils/setuptools_build.py
[2] https://github.com/pypa/pip/blob/8.1.2/pip/req/req_install.py#L849
[3] https://docs.python.org/3/library/tokenize.html#tokenize.open

> Some packages really don't like the new configure flags however (scons).
> Perhaps we should have them as default, but if #:configure-flags is set,
> let them be overridden?

Uff, this tricked me. I digged into scons and found it is redefining the
commands, much like setuptools do. For scons we could change the
setup.py, but where for sure are other packages having the same problem.
And there *may* be packages witch are incompatible with setuptools, too
(even if they should not).

I'm twofold regarding the behaviour of #:configure-flag. Emptying them
as soon as one passes some options flags is different to what other
builders are doing. E.g. gnu-build-system *adds* any option passed. So a
somewhat better solution would be to put
--single-version-external-managed and --root into the default
config-flags. But then if one needs to add options, this will become
complicated.

What about adding a flag #;use-setuptools, which defaults to #t?


> Also some packages are missing a dependency on "python-py"[1].
This is very curious, since python-setuptools does not have python-py as
input nor does it contain this package. Can you give an example please?


> Perhaps we can set up a Hydra channel to deal with the fallout?

Tonight Leo wrote that he will set up one.

-- 
Regards
Hartmut Goebel

| Hartmut Goebel          | h.goebel@crazy-compilers.com               |
| www.crazy-compilers.com | compilers which you thought are impossible |

^ permalink raw reply	[flat|nested] 37+ messages in thread

* Re: [PATCH 00/14] Change python-build-system (fixes bug 20765)
  2016-10-02  2:27 ` Leo Famulari
  2016-10-02  2:46   ` Leo Famulari
@ 2016-10-02  9:18   ` Hartmut Goebel
  1 sibling, 0 replies; 37+ messages in thread
From: Hartmut Goebel @ 2016-10-02  9:18 UTC (permalink / raw)
  To: Leo Famulari; +Cc: guix-devel

Am 02.10.2016 um 04:27 schrieb Leo Famulari:
> I will test a few packages and, if they work, I plan to create a
> python-build-system job on Hydra and try building it the entire
> package tree (assuming that Hydra has the capacity). 


Please note that you need to add Marius' patches [1] to make this work
at all. Mine had some errors :-(

[1] http://lists.gnu.org/archive/html/guix-devel/2016-09/msg02290.html

>> A) For python2 include python2-setuptools as a native-input by default.
> Do all python-2 packages require setuptools, or just most of them?

As I wrote in my follow-up correction, I implemented a different
strategy: pip and setuptools are now installed as part of python2, like
it is the default in Python 3.


>
>> C) Strip python-setuptools and python2-setuptools from all native-inputs
>>    defined in packages.
> Hydra will test this :)

Great, since this is a computer's job :-)

>>  * update Python to 2.7.12 and 3.4.5.
> Python 2.7.12 and 3.5.2 are on core-updates. Should I cherry-pick those
> changes will testing these patches? Or should they work with the Python
> packages that we have on master?

It should work both ways. I'll rebase and cleanup my by patch set later,
anyway, so we can verify then.

-- 
Regards
Hartmut Goebel

| Hartmut Goebel          | h.goebel@crazy-compilers.com               |
| www.crazy-compilers.com | compilers which you thought are impossible |

^ permalink raw reply	[flat|nested] 37+ messages in thread

* Re: [PATCH 00/14] Change python-build-system (fixes bug 20765)
  2016-10-02  2:46   ` Leo Famulari
@ 2016-10-02  9:19     ` Hartmut Goebel
  0 siblings, 0 replies; 37+ messages in thread
From: Hartmut Goebel @ 2016-10-02  9:19 UTC (permalink / raw)
  To: Leo Famulari; +Cc: guix-devel

Am 02.10.2016 um 04:46 schrieb Leo Famulari:
>> > I will test a few packages and, if they work, I plan to create a
>> > python-build-system job on Hydra and try building it the entire package
>> > tree (assuming that Hydra has the capacity).
> I underestimated the impact of this change. Just looking at libxcb,
> which depends on python-minimal-wrapper, I see that ~2500 packages will
> be rebuilt. So, depending on the status of core-updates, this should
> wait until after core-updates is mostly built.

Ups, I didn't expect this, too.

-- 
Regards
Hartmut Goebel

| Hartmut Goebel          | h.goebel@crazy-compilers.com               |
| www.crazy-compilers.com | compilers which you thought are impossible |

^ permalink raw reply	[flat|nested] 37+ messages in thread

* Re: [PATCH 00/14] Change python-build-system (fixes bug 20765)
  2016-10-02  9:05         ` Hartmut Goebel
@ 2016-10-02 12:14           ` Hartmut Goebel
  0 siblings, 0 replies; 37+ messages in thread
From: Hartmut Goebel @ 2016-10-02 12:14 UTC (permalink / raw)
  To: guix-devel, Marius Bakke, Leo Famulari

Hi,

Am 02.10.2016 um 11:05 schrieb Hartmut Goebel:
> What about adding a flag #;use-setuptools, which defaults to #t?

I just pushed to <https://gitlab.com/htgoebel/guix/tree/python-build-system>
- Marius' changes
- updated shim-code
- Add option "#:use-setuptools?" (default true).
- Fix for scons (as an example)

git fetch https://gitlab.com/htgoebel/guix.git python-build-system

-- 
Regards
Hartmut Goebel

| Hartmut Goebel          | h.goebel@crazy-compilers.com               |
| www.crazy-compilers.com | compilers which you thought are impossible |

^ permalink raw reply	[flat|nested] 37+ messages in thread

* Re: [PATCH 00/14] Change python-build-system (fixes bug 20765)
  2016-09-30 14:39       ` Marius Bakke
  2016-10-02  9:05         ` Hartmut Goebel
@ 2016-10-02 14:24         ` Ludovic Courtès
  2016-10-02 17:31           ` Hartmut Goebel
  2016-10-03  9:31         ` [PATCH 00/14] Change python-build-system (fixes bug 20765) Hartmut Goebel
  2016-10-04 21:39         ` Hartmut Goebel
  3 siblings, 1 reply; 37+ messages in thread
From: Ludovic Courtès @ 2016-10-02 14:24 UTC (permalink / raw)
  To: Marius Bakke; +Cc: guix-devel

Hi!

Marius Bakke <mbakke@fastmail.com> skribis:

> Hartmut Goebel <h.goebel@crazy-compilers.com> writes:
>
>> Am 28.09.2016 um 17:54 schrieb Marius Bakke:
>>> Or push a branch somewhere?
>>
>> Branch is now available at 
>> <https://gitlab.com/htgoebel/guix/tree/python-build-system>
>
> Thanks a lot for doing this!
>
> After adding a couple of patches I'm able to build many python packages.
> Patch #2 mostly emulates NixOS "shim" setup.py[0], required for packages
> using distutils instead of setuptools.
>
> Some packages really don't like the new configure flags however (scons).
> Perhaps we should have them as default, but if #:configure-flags is set,
> let them be overridden?

In general it seems like a good pattern.

> Also some packages are missing a dependency on "python-py"[1].
>
> Perhaps we can set up a Hydra channel to deal with the fallout?

I haven’t really followed, but if the two of you agree on that, that’s
definitely something we can do!

> From a12000dd320cebeb920a4f790fe9206a2b6bda41 Mon Sep 17 00:00:00 2001
> From: Marius Bakke <mbakke@fastmail.com>
> Date: Thu, 29 Sep 2016 18:29:21 +0100
> Subject: [PATCH 1/2] guix: python-build-system: fix configure flag append
>  (followup to dba07a8d1)
>
> ---
>  guix/build/python-build-system.scm | 8 ++++----
>  1 file changed, 4 insertions(+), 4 deletions(-)

Seems reasonable (with proper commit log).

> From 84fa3e8be3d3d868ddb9278a96807086415b754d Mon Sep 17 00:00:00 2001
> From: Marius Bakke <mbakke@fastmail.com>
> Date: Thu, 29 Sep 2016 18:41:35 +0100
> Subject: [PATCH 2/2] guix: python-build-system: Import setuptools before
>  calling `setup.py'.
>
> This is needed for packages using "distutils" instead of "setuptools"
> since the former does not understand the
> "--single-version-externally-managed" flag. Also export __file__ since
> it will be unset when setup.py is called from python "exec".

Please move this explanation as a comment right above the newly-added
code.

> * guix/build/python-build-system.scm (call-setuppy): extend
> "python setup.py" call to import setuptools, export __file__, and
> call setup.py from setuptools python environment.

It might be worth adding a comment on the general context in the code
here.

Regardless, it’s a good idea to get feedback from Hartmut and whoever
else knows more about Python than myself before committing.  :-)

Speaking of which, could you create an account on savannah.gnu.org and
send your account name to the folks marked as “project admins” on
<https://savannah.gnu.org/projects/guix/>?  Please send it as an
OpenPGP-signed message, using the OpenPGP key that you will then use to
sign commits.  Also, make sure to upload said key to pgp.mit.edu and to
add it on Savannah too.  If anything is unclear, let me know.  :-)

TIA!

Ludo’.

^ permalink raw reply	[flat|nested] 37+ messages in thread

* Re: [PATCH 00/14] Change python-build-system (fixes bug 20765)
  2016-10-02 14:24         ` Ludovic Courtès
@ 2016-10-02 17:31           ` Hartmut Goebel
  2016-10-02 18:01             ` Leo Famulari
  0 siblings, 1 reply; 37+ messages in thread
From: Hartmut Goebel @ 2016-10-02 17:31 UTC (permalink / raw)
  To: Marius Bakke; +Cc: guix-devel

Am 02.10.2016 um 16:24 schrieb Ludovic Courtès:
>
>> Subject: [PATCH 2/2] guix: python-build-system: Import setuptools before
>>  calling `setup.py'.
>>
>> This is needed for packages using "distutils" instead of "setuptools"
>> since the former does not understand the
>> "--single-version-externally-managed" flag. Also export __file__ since
>> it will be unset when setup.py is called from python "exec".
> Please move this explanation as a comment right above the newly-added
> code.

@marius: I already added this comment, see the fixups on my branch at
gitlab (which I'm going to clean up when we all agree on the result).

-- 
Regards
Hartmut Goebel

| Hartmut Goebel          | h.goebel@crazy-compilers.com               |
| www.crazy-compilers.com | compilers which you thought are impossible |

^ permalink raw reply	[flat|nested] 37+ messages in thread

* Re: [PATCH 00/14] Change python-build-system (fixes bug 20765)
  2016-10-02 17:31           ` Hartmut Goebel
@ 2016-10-02 18:01             ` Leo Famulari
  2016-10-02 19:25               ` Marius Bakke
  2016-10-10 13:24               ` Please set up Hydra channel for new python-build-system (was: [PATCH 00/14] Change python-build-system (fixes bug 20765)) Hartmut Goebel
  0 siblings, 2 replies; 37+ messages in thread
From: Leo Famulari @ 2016-10-02 18:01 UTC (permalink / raw)
  To: Hartmut Goebel; +Cc: guix-devel

On Sun, Oct 02, 2016 at 07:31:01PM +0200, Hartmut Goebel wrote:
> Am 02.10.2016 um 16:24 schrieb Ludovic Courtès:
> >
> >> Subject: [PATCH 2/2] guix: python-build-system: Import setuptools before
> >>  calling `setup.py'.
> >>
> >> This is needed for packages using "distutils" instead of "setuptools"
> >> since the former does not understand the
> >> "--single-version-externally-managed" flag. Also export __file__ since
> >> it will be unset when setup.py is called from python "exec".
> > Please move this explanation as a comment right above the newly-added
> > code.
> 
> @marius: I already added this comment, see the fixups on my branch at
> gitlab (which I'm going to clean up when we all agree on the result).

Let us know when the two of you think the code is ready to be tested on
Hydra, and I will set it up.

^ permalink raw reply	[flat|nested] 37+ messages in thread

* Re: [PATCH 00/14] Change python-build-system (fixes bug 20765)
  2016-10-02 18:01             ` Leo Famulari
@ 2016-10-02 19:25               ` Marius Bakke
  2016-10-10 13:24               ` Please set up Hydra channel for new python-build-system (was: [PATCH 00/14] Change python-build-system (fixes bug 20765)) Hartmut Goebel
  1 sibling, 0 replies; 37+ messages in thread
From: Marius Bakke @ 2016-10-02 19:25 UTC (permalink / raw)
  To: Leo Famulari, Hartmut Goebel; +Cc: guix-devel



On 2 October 2016 19:01:38 BST, Leo Famulari <leo@famulari.name> wrote:
>On Sun, Oct 02, 2016 at 07:31:01PM +0200, Hartmut Goebel wrote:
>> Am 02.10.2016 um 16:24 schrieb Ludovic Courtès:
>> >
>> >> Subject: [PATCH 2/2] guix: python-build-system: Import setuptools
>before
>> >>  calling `setup.py'.
>> >>
>> >> This is needed for packages using "distutils" instead of
>"setuptools"
>> >> since the former does not understand the
>> >> "--single-version-externally-managed" flag. Also export __file__
>since
>> >> it will be unset when setup.py is called from python "exec".
>> > Please move this explanation as a comment right above the
>newly-added
>> > code.
>> 
>> @marius: I already added this comment, see the fixups on my branch at
>> gitlab (which I'm going to clean up when we all agree on the result).
>
>Let us know when the two of you think the code is ready to be tested on
>Hydra, and I will set it up.

Just FYI: I will be offline for a couple of days while waiting for a newly ordered ARM chromebook (Asus C201).

If anyone wants to work on core/libreboot meanwhile that would be great ;-) 

I'll address the points raised Thursday or so. It makes sense to either apply these on core-updates or wait until it's merged before creating a channel/branch for Hydra IMO.

-- 
Marius

^ permalink raw reply	[flat|nested] 37+ messages in thread

* Re: [PATCH 00/14] Change python-build-system (fixes bug 20765)
  2016-09-30 14:39       ` Marius Bakke
  2016-10-02  9:05         ` Hartmut Goebel
  2016-10-02 14:24         ` Ludovic Courtès
@ 2016-10-03  9:31         ` Hartmut Goebel
  2016-10-04 21:39         ` Hartmut Goebel
  3 siblings, 0 replies; 37+ messages in thread
From: Hartmut Goebel @ 2016-10-03  9:31 UTC (permalink / raw)
  To: Marius Bakke, guix-devel

Am 30.09.2016 um 16:39 schrieb Marius Bakke:
> Also some packages are missing a dependency on "python-py"[1].

I found an example: python-pytest-cov fails in the "check" phase. This
is an undocumented requirement for the tests, resp. this is an
install-requirement for pytest, but pytest has "python-py" defined as a
normal input.

I also discovered that prior to my changes a .pth file was created in
some case where now it is not - as far as I've seen. I still need to
investigate this in detail.

I'll report when I'm done with this. Probably I will need to rework the
core of the patch-set.

-- 
Regards
Hartmut Goebel

| Hartmut Goebel          | h.goebel@crazy-compilers.com               |
| www.crazy-compilers.com | compilers which you thought are impossible |

^ permalink raw reply	[flat|nested] 37+ messages in thread

* Re: [PATCH 00/14] Change python-build-system (fixes bug 20765)
  2016-09-30 14:39       ` Marius Bakke
                           ` (2 preceding siblings ...)
  2016-10-03  9:31         ` [PATCH 00/14] Change python-build-system (fixes bug 20765) Hartmut Goebel
@ 2016-10-04 21:39         ` Hartmut Goebel
  3 siblings, 0 replies; 37+ messages in thread
From: Hartmut Goebel @ 2016-10-04 21:39 UTC (permalink / raw)
  To: Marius Bakke, guix-devel

Am 30.09.2016 um 16:39 schrieb Marius Bakke:

> Also some packages are missing a dependency on "python-py"[1].

FYI: I found an example: python-pytest-cov fails in the "check" phase.
This is an undocumented requirement for the tests, resp. this is an
install-requirement for pytest, but pytest has "python-py" defined as a
normal input.

I investigated this and found that the existing build-system was kind of
broken :-( Prior to my changes, a .pth file was created in
in many cases - while now it is never creates.

(For those not common to Python: .pth-files are an old way to specify
additional directories to be added to sys.path (PYTHONPATH). .pth-file
were rarely used until setuptools and easy-install came up. And now
since pip is the recommended install method, they are bound to vanish
again.)

This .pth file did not only point to the .egg-directory (or file, in
case of a zipped .egg), but also to the .eggs of the requirement of the
current package. In the case of pytest, the .pth file looked something
like thus:

   ./pytest-1.2.3.egg
   /gnu/store/…-python-py-3.2.1/lib/python3.4/site-packages/py-3.2.1.egg

Thus the .pth-file did "propagate" the inputs.

Due to my change the .pth-file is gone now, and thus all required inputs
need to be declared as propageded-inputs as uix.

I'm working on this, but it requires to have a look at many of the
packages' source to do it right and will take some days to finish.

-- 
Regards
Hartmut Goebel

| Hartmut Goebel          | h.goebel@crazy-compilers.com               |
| www.crazy-compilers.com | compilers which you thought are impossible |

^ permalink raw reply	[flat|nested] 37+ messages in thread

* Please set up Hydra channel for new python-build-system (was: [PATCH 00/14] Change python-build-system (fixes bug 20765))
  2016-10-02 18:01             ` Leo Famulari
  2016-10-02 19:25               ` Marius Bakke
@ 2016-10-10 13:24               ` Hartmut Goebel
  2016-10-12 14:29                 ` Leo Famulari
  1 sibling, 1 reply; 37+ messages in thread
From: Hartmut Goebel @ 2016-10-10 13:24 UTC (permalink / raw)
  To: Leo Famulari; +Cc: guix-devel

Hi Leo,
> Let us know when the two of you think the code is ready to be tested on
> Hydra, and I will set it up.

I now have a patch-set ready for testing. The patches will still need
some clean-up, but the result should be okay so far.

Please set up a Hydra channel so we can test cross building.

My WIP is still available at <https://gitlab.com/htgoebel/guix/tree/python-build-system>

-- 
Regards
Hartmut Goebel

| Hartmut Goebel          | h.goebel@crazy-compilers.com               |
| www.crazy-compilers.com | compilers which you thought are impossible |

^ permalink raw reply	[flat|nested] 37+ messages in thread

* Re: Please set up Hydra channel for new python-build-system (was: [PATCH 00/14] Change python-build-system (fixes bug 20765))
  2016-10-10 13:24               ` Please set up Hydra channel for new python-build-system (was: [PATCH 00/14] Change python-build-system (fixes bug 20765)) Hartmut Goebel
@ 2016-10-12 14:29                 ` Leo Famulari
  2016-10-12 14:37                   ` Andreas Enge
  0 siblings, 1 reply; 37+ messages in thread
From: Leo Famulari @ 2016-10-12 14:29 UTC (permalink / raw)
  To: Hartmut Goebel; +Cc: guix-devel

[-- Attachment #1: Type: text/plain, Size: 1070 bytes --]

On Mon, Oct 10, 2016 at 03:24:24PM +0200, Hartmut Goebel wrote:
> Hi Leo,
> > Let us know when the two of you think the code is ready to be tested on
> > Hydra, and I will set it up.
> 
> I now have a patch-set ready for testing. The patches will still need
> some clean-up, but the result should be okay so far.
> 
> Please set up a Hydra channel so we can test cross building.
> 
> My WIP is still available at <https://gitlab.com/htgoebel/guix/tree/python-build-system>

I've added you to the Guix group on Savannah, so you should be able to
push a branch called 'wip-python-build-system'.

Please read the file 'HACKING' carefully, and ask if you are unsure
about anything.

I'll set up a Hydra jobset for the branch once it has been created.

Welcome! I'm looking forward to seeing this new Python build system in
action.

[0]
It can be called 'python-build-system' if you don't expect to rebase or
break the history of the branch. We use the 'wip-' prefix to signal that
clones of the branch may become invalid due to rewritten history.

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 819 bytes --]

^ permalink raw reply	[flat|nested] 37+ messages in thread

* Re: Please set up Hydra channel for new python-build-system (was: [PATCH 00/14] Change python-build-system (fixes bug 20765))
  2016-10-12 14:29                 ` Leo Famulari
@ 2016-10-12 14:37                   ` Andreas Enge
  2016-10-12 14:51                     ` Leo Famulari
  0 siblings, 1 reply; 37+ messages in thread
From: Andreas Enge @ 2016-10-12 14:37 UTC (permalink / raw)
  To: Leo Famulari; +Cc: guix-devel

On Wed, Oct 12, 2016 at 10:29:54AM -0400, Leo Famulari wrote:
> I'll set up a Hydra jobset for the branch once it has been created.

Maybe it would be good to wait until core-updates is merged? Hydra is
currently busy building that. Also, there is still the wip-python branch
on hydra, maybe this could then be deleted, or commits cherry-picked?

Andreas

^ permalink raw reply	[flat|nested] 37+ messages in thread

* Re: Please set up Hydra channel for new python-build-system (was: [PATCH 00/14] Change python-build-system (fixes bug 20765))
  2016-10-12 14:37                   ` Andreas Enge
@ 2016-10-12 14:51                     ` Leo Famulari
  2016-10-13  8:17                       ` Vincent Legoll
  0 siblings, 1 reply; 37+ messages in thread
From: Leo Famulari @ 2016-10-12 14:51 UTC (permalink / raw)
  To: Andreas Enge; +Cc: guix-devel

[-- Attachment #1: Type: text/plain, Size: 1252 bytes --]

On Wed, Oct 12, 2016 at 04:37:06PM +0200, Andreas Enge wrote:
> On Wed, Oct 12, 2016 at 10:29:54AM -0400, Leo Famulari wrote:
> > I'll set up a Hydra jobset for the branch once it has been created.
> 
> Maybe it would be good to wait until core-updates is merged? Hydra is
> currently busy building that. Also, there is still the wip-python branch
> on hydra, maybe this could then be deleted, or commits cherry-picked?

Yes, I was going to coordinate with the rest of the admins to schedule
this Python rebuild. I think it should happen after this core-updates
cycle.

The wip-python branch is on hold until we have Python 3.5 in master. I
found some significant differences in how Python 3.4 and 3.5 affect
building, and I didn't want to juggle three different Python package
graphs: current master, current core-updates, and wip-pytohn.

The core Python packages are *extremely* tangled up in each other. Help
wanted, and I do plan to tackle it after the next release, and
potentially after this new build system is merged.

It depends on how quickly the new build system looks ready for master.
We could even restart wip-python on wip-python-build-system, since I
didn't make concrete progress on wip-python, unfortunately.

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 819 bytes --]

^ permalink raw reply	[flat|nested] 37+ messages in thread

* Re: Please set up Hydra channel for new python-build-system (was: [PATCH 00/14] Change python-build-system (fixes bug 20765))
  2016-10-12 14:51                     ` Leo Famulari
@ 2016-10-13  8:17                       ` Vincent Legoll
  0 siblings, 0 replies; 37+ messages in thread
From: Vincent Legoll @ 2016-10-13  8:17 UTC (permalink / raw)
  To: Leo Famulari; +Cc: guix-devel

Hello,

On Wed, Oct 12, 2016 at 4:51 PM, Leo Famulari <leo@famulari.name> wrote:
> The core Python packages are *extremely* tangled up in each other. Help
> wanted

Can you explain a bit what that would involve, what one can do to help, etc...

-- 
Vincent Legoll

^ permalink raw reply	[flat|nested] 37+ messages in thread

end of thread, other threads:[~2016-10-13  8:17 UTC | newest]

Thread overview: 37+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-09-28 13:58 [PATCH 00/14] Change python-build-system (fixes bug 20765) Hartmut Goebel
2016-09-28 13:58 ` [PATCH 01/14] gnu: ensure pip and setuptools are installed even for Python 2 Hartmut Goebel
2016-09-28 13:58 ` [PATCH 02/14] guix: build all Python packages with --single-version-externally-managed Hartmut Goebel
2016-09-28 13:58 ` [PATCH 03/14] guix: Add lint-checker for packages which should be no inputs at all Hartmut Goebel
2016-09-28 13:58 ` [PATCH 04/14] gnu: python-setuptools: remove pre-built binaries Hartmut Goebel
2016-09-28 13:58 ` [PATCH 05/14] gnu: Remove python-setuptools and python2-setuptools from inputs (part 1) Hartmut Goebel
2016-09-28 13:58 ` [PATCH 06/14] gnu: Remove python-setuptools and python2-setuptools from inputs (part 2) Hartmut Goebel
2016-09-28 13:58 ` [PATCH 07/14] gnu: Remove python-setuptools and python2-setuptools from inputs (part 3) Hartmut Goebel
2016-09-28 13:58 ` [PATCH 08/14] gnu: Remove python-setuptools and python2-setuptools from inputs (part 4) Hartmut Goebel
2016-09-28 13:58 ` [PATCH 09/14] gnu: Remove python-setuptools and python2-setuptools from inputs (part 5a) Hartmut Goebel
2016-09-28 13:58 ` [PATCH 10/14] gnu: Remove python-setuptools and python2-setuptools from inputs (part 5b) Hartmut Goebel
2016-09-28 13:58 ` [PATCH 11/14] gnu: Remove needless inputs python-pip and python2-pip Hartmut Goebel
2016-09-28 13:58 ` [PATCH 12/14] lint: 'check-inputs-should-not-be-an-input-at-all' checks for python-pip Hartmut Goebel
2016-09-28 13:58 ` [PATCH 13/14] gnu: python-h5py: Remove needless "python2-variant" property Hartmut Goebel
2016-09-28 13:58 ` [PATCH 14/14] gnu: Remove work-arounds for bug 20765 (ensure uncompressed eggs) Hartmut Goebel
2016-09-28 14:03 ` [PATCH 00/14] Change python-build-system (fixes bug 20765) Hartmut Goebel
2016-09-28 15:54   ` Marius Bakke
2016-09-28 17:33     ` Hartmut Goebel
2016-09-28 17:40     ` Hartmut Goebel
2016-09-30 14:39       ` Marius Bakke
2016-10-02  9:05         ` Hartmut Goebel
2016-10-02 12:14           ` Hartmut Goebel
2016-10-02 14:24         ` Ludovic Courtès
2016-10-02 17:31           ` Hartmut Goebel
2016-10-02 18:01             ` Leo Famulari
2016-10-02 19:25               ` Marius Bakke
2016-10-10 13:24               ` Please set up Hydra channel for new python-build-system (was: [PATCH 00/14] Change python-build-system (fixes bug 20765)) Hartmut Goebel
2016-10-12 14:29                 ` Leo Famulari
2016-10-12 14:37                   ` Andreas Enge
2016-10-12 14:51                     ` Leo Famulari
2016-10-13  8:17                       ` Vincent Legoll
2016-10-03  9:31         ` [PATCH 00/14] Change python-build-system (fixes bug 20765) Hartmut Goebel
2016-10-04 21:39         ` Hartmut Goebel
2016-10-02  2:27 ` Leo Famulari
2016-10-02  2:46   ` Leo Famulari
2016-10-02  9:19     ` Hartmut Goebel
2016-10-02  9:18   ` Hartmut Goebel

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).