Subject: [bug#42885] [PATCH 06/27] gnu: python-pyqt: Fix build for new python-sip.

From: Brendan Tildesley <[email-masked]>
Date: Wed, 10 Mar 2021 20:00:32 +1100

* gnu/packages/qt.scm (python-pyqt)
[source]: Remove pyqt-public-sip.patch. PyQt uses python-pyqt5-sip
now. This patch is still used by python2-pyqt so we don't delete it completely.
[inputs]: Add python-pyqt-builder, python-pyqt5-sip
[arguments]: Add phase to link PyQt5-sip module.
---
 gnu/packages/qt.scm | 18 ++++++++++++++----
 1 file changed, 14 insertions(+), 4 deletions(-)

diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm
index 65e61d4dc4..b615a74755 100644
--- a/gnu/packages/qt.scm
+++ b/gnu/packages/qt.scm
@@ -2074,12 +2074,11 @@ module provides support functions to the automatically generated code.")
                    (string-append "https://www.riverbankcomputing.com/static/"
                                   "Downloads/PyQt5/" version "/PyQt5-"
                                   version ".tar.gz")))
-        (file-name (string-append "PyQt5-"version ".tar.gz"))
+        (file-name (string-append "PyQt5-" version ".tar.gz"))
         (sha256
          (base32
           "1z74295i69cha52llsqffzhb5zz7qnbjc64h8qg21l91jgf0harp"))
-       (patches (search-patches "pyqt-configure.patch"
-                                "pyqt-public-sip.patch"))))
+        (patches (search-patches "pyqt-configure.patch"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("qtbase" ,qtbase))) ; for qmake
@@ -2087,6 +2086,8 @@ module provides support functions to the automatically generated code.")
      `(("python-sip" ,python-sip)))
     (inputs
      `(("python" ,python-wrapper)
+       ("python-pyqt-builder" ,python-pyqt-builder)
+       ("python-pyqt5-sip" ,python-pyqt5-sip)
        ("qtbase" ,qtbase)
        ("qtconnectivity" ,qtconnectivity)
        ("qtdeclarative" ,qtdeclarative)
@@ -2144,7 +2145,16 @@ module provides support functions to the automatically generated code.")
                        ; installed into the python package's
                        ; site-package directory, which is read-only.
                        "--stubsdir" stubs
-                       "--sipdir" sip)))))))
+                       "--sipdir" sip))))
+         ;; Linking here means the sip module can be found without
+         ;; python-pyqt5-sip needing to be added as an input.
+         (add-after 'install 'pyqt5-sip
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (pyqt5-sip  (assoc-ref inputs "python-pyqt5-sip"))
+                    (site "/lib/python3.8/site-packages/PyQt5/")
+                    (.so (first (find-files (string-append pyqt5-sip site) "sip.*"))))
+               (symlink .so (string-append out site (basename .so)))))))))
     (home-page "https://www.riverbankcomputing.com/software/pyqt/intro")
     (synopsis "Python bindings for Qt")
     (description
-- 
2.30.1