Subject: [bug#70855] [PATCH 25/92] gnu: gunicorn: Move to pyproject-build-system.

From: Nicolas Graves <[email-masked]>
Date: Fri, 10 May 2024 00:53:20 +0200

* gnu/packages/python-web.scm (gunicorn): Improve package style.
  [build-system]: Move to pyproject-build-system.
  [arguments]<#:phases>: Remove check phase replacement, now in
  <#:test-flags>. Use gexp. Remove wrap phase replacement (will not be
  needed after merge of 25235).

Change-Id: I83e09cd0a22c0a5d249e50af199c5c648e53aa65
---
 gnu/packages/python-web.scm | 41 ++++++++++---------------------------
 1 file changed, 11 insertions(+), 30 deletions(-)

diff --git a/gnu/packages/python-web.scm b/gnu/packages/python-web.scm
index fd9d49e2e2f..494b11422f3 100644
--- a/gnu/packages/python-web.scm
+++ b/gnu/packages/python-web.scm
@@ -6064,29 +6064,25 @@ (define-public gunicorn
         (base32
          "1s7670qw36x90bgmazmgib170i5gnpyb2ypxzlla7y0mpasniag0"))))
     (outputs '("out" "doc"))
-    (build-system python-build-system)
+    (build-system pyproject-build-system)
     (arguments
-     `(#:phases
-       (modify-phases %standard-phases
+     (list
+      #:test-flags '(list
+                     ;; Disable the geventlet tests because eventlet uses
+                     ;; dnspython, which does not work in the build
+                     ;; container due to lack of /etc/resolv.conf, etc.
+                     "--ignore=tests/workers/test_geventlet.py")
+      #:phases
+      #~(modify-phases %standard-phases
          (add-after 'build 'build-doc
            (lambda _
              (invoke "make" "-C" "docs" "PAPER=a4" "html" "info")
              (delete-file "docs/build/texinfo/Makefile")
              (delete-file "docs/build/texinfo/Gunicorn.texi")))
-         (replace 'check
-           (lambda* (#:key tests? #:allow-other-keys)
-             (if tests?
-                 (begin
-                   (invoke "pytest" "-vv"
-                           ;; Disable the geventlet tests because eventlet uses
-                           ;; dnspython, which does not work in the build
-                           ;; container due to lack of /etc/resolv.conf, etc.
-                           "--ignore=tests/workers/test_geventlet.py"))
-                 (format #t "test suite not run~%"))))
          (add-after 'install 'install-doc
            (lambda* (#:key outputs #:allow-other-keys)
              (let* ((doc (string-append (assoc-ref outputs "doc")
-                                        "/share/doc/" ,name "-" ,version))
+                                        "/share/doc/" #$name "-" #$version))
                     (html (string-append doc "/html"))
                     (info (string-append doc "/info"))
                     (examples (string-append doc "/examples")))
@@ -6098,22 +6094,7 @@ (define-public gunicorn
                (copy-recursively "examples" examples)
                (for-each (lambda (file)
                            (copy-file file (string-append doc "/" file)))
-                         '("README.rst" "NOTICE" "LICENSE" "THANKS")))))
-         ;; XXX: The wrap phase includes native inputs on PYTHONPATH, (see
-         ;; <https://bugs.gnu.org/25235>), leading to an inflated closure
-         ;; size.  Override it to only add the essential entries.
-         (replace 'wrap
-           (lambda* (#:key native-inputs inputs outputs #:allow-other-keys)
-             (let* ((out (assoc-ref outputs "out"))
-                    (python (assoc-ref (or native-inputs inputs) "python"))
-                    (sitedir (string-append "/lib/python"
-                                            (python-version python)
-                                            "/site-packages")))
-               (wrap-program (string-append out "/bin/gunicorn")
-                 `("PYTHONPATH" ":" prefix
-                   ,(map (lambda (output)
-                           (string-append output sitedir))
-                         (list python out))))))))))
+                         '("README.rst" "NOTICE" "LICENSE" "THANKS"))))))))
     (native-inputs
      (list binutils ;; for ctypes.util.find_library()
            python-aiohttp
-- 
2.41.0