Subject: [PATCH]: Add PyQt 6.
From: Zhu Zihao <[email-masked]>
To: guix-patches <[email-masked]>
Date: Fri, 26 Aug 2022 22:50:00 +0800
List-Id: <debbugs-submit.debbugs.gnu.org>

From f14e4b2e32240ef169514127d61da775b641f97d Mon Sep 17 00:00:00 2001
From: Zhu Zihao <[email-masked]>
Date: Thu, 25 Aug 2022 14:58:57 +0800
Subject: [PATCH 1/9] gnu: Add python-pyqt6-sip.

* gnu/packages/qt.scm (python-pyqt6-sip): New variable.
---
 gnu/packages/qt.scm | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm
index 25d56acdc3..1f8e51c667 100644
--- a/gnu/packages/qt.scm
+++ b/gnu/packages/qt.scm
@@ -3088,6 +3088,21 @@ (define-public python-pyqt5-sip
     (description "Sip module support for PyQt5")
     (license license:lgpl2.1+)))
 
+(define-public python-pyqt6-sip
+  (package
+    (inherit python-pyqt5-sip)
+    (name "python-pyqt6-sip")
+    (version "13.4.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "PyQt6_sip" version))
+       (sha256
+        (base32
+         "0yfra2rk4072kqfs0hks7fpjqd8946inhzcmfqdm3mvjb3pa71vd"))))
+    (synopsis "Sip module support for PyQt6")
+    (description "Sip module support for PyQt6")))
+
 (define-public python-pyqtwebengine
   (package
     (name "python-pyqtwebengine")
-- 
2.37.2

From 6cdce14bb88eebfc7da1a5aa3f59eab663550589 Mon Sep 17 00:00:00 2001
From: Zhu Zihao <[email-masked]>
Date: Thu, 25 Aug 2022 18:19:51 +0800
Subject: [PATCH 2/9] gnu: python-pyqtwebengine: Rename to
 python-pyqtwebengine-5.

Automated via the follownig commands:

  git grep -l '\bpython-pyqtwebengine\b' | xargs sed -E 's/python-pyqtwebengine/\0-5/g' -i
---
 gnu/packages/ebook.scm        | 2 +-
 gnu/packages/education.scm    | 4 ++--
 gnu/packages/orange.scm       | 2 +-
 gnu/packages/qt.scm           | 6 +++---
 gnu/packages/vpn.scm          | 2 +-
 gnu/packages/web-browsers.scm | 6 +++---
 6 files changed, 11 insertions(+), 11 deletions(-)

diff --git a/gnu/packages/ebook.scm b/gnu/packages/ebook.scm
index c3a27cb113..edcf7b486f 100644
--- a/gnu/packages/ebook.scm
+++ b/gnu/packages/ebook.scm
@@ -198,7 +198,7 @@ (define-public calibre
            python-pychm
            python-pygments
            python-pyqt-without-qtwebkit
-           python-pyqtwebengine
+           python-pyqtwebengine-5
            python-regex
            speech-dispatcher
            python-zeroconf
diff --git a/gnu/packages/education.scm b/gnu/packages/education.scm
index c5666fb02e..3c574b4176 100644
--- a/gnu/packages/education.scm
+++ b/gnu/packages/education.scm
@@ -801,8 +801,8 @@ (define-public anki
        ("python-jsonschema" ,python-jsonschema)
        ("python-markdown" ,python-markdown)
        ("python-pyaudio" ,python-pyaudio)
-       ;; `python-pyqtwebengine' must precede `python-pyqt' in PYTHONPATH.
-       ("python-pyqtwebengine" ,python-pyqtwebengine)
+       ;; `python-pyqtwebengine-5' must precede `python-pyqt' in PYTHONPATH.
+       ("python-pyqtwebengine-5" ,python-pyqtwebengine-5)
        ("python-pyqt" ,python-pyqt-without-qtwebkit)
        ("python-requests" ,python-requests)
        ("python-send2trash" ,python-send2trash)
diff --git a/gnu/packages/orange.scm b/gnu/packages/orange.scm
index 367c9cc288..ef6f36d8a8 100644
--- a/gnu/packages/orange.scm
+++ b/gnu/packages/orange.scm
@@ -162,7 +162,7 @@ (define-public orange
            python-pygments
            python-pyqt-without-qtwebkit
            python-pyqtgraph
-           python-pyqtwebengine
+           python-pyqtwebengine-5
            python-pyyaml
            python-qtconsole
            python-requests
diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm
index 1f8e51c667..e6779e333a 100644
--- a/gnu/packages/qt.scm
+++ b/gnu/packages/qt.scm
@@ -3025,7 +3025,7 @@ (define-public python-pyqt
                            ,@%gnu-build-system-modules)
        #:phases
        (modify-phases %standard-phases
-         ;; When building python-pyqtwebengine, <qprinter.h> can not be
+         ;; When building python-pyqtwebengine-5, <qprinter.h> can not be
          ;; included.  Here we substitute the full path to the header in the
          ;; store.
          (add-before 'configure 'substitute-source
@@ -3103,7 +3103,7 @@ (define-public python-pyqt6-sip
     (synopsis "Sip module support for PyQt6")
     (description "Sip module support for PyQt6")))
 
-(define-public python-pyqtwebengine
+(define-public python-pyqtwebengine-5
   (package
     (name "python-pyqtwebengine")
     (version "5.15.2")
@@ -3187,7 +3187,7 @@ (define-public python-pyqtwebengine
     (license license:gpl3)))
 
 ;; XXX: This is useful for removing qtwebkit from other packages' dependency
-;; graphs, as well as for preventing python-pyqtwebengine from transitively
+;; graphs, as well as for preventing python-pyqtwebengine-5 from transitively
 ;; depending on qtwebkit.
 ;; Ultimately, it would be nicer to have a more modular set of python-pyqt-*
 ;; packages that could be used together.
diff --git a/gnu/packages/vpn.scm b/gnu/packages/vpn.scm
index 1ec619b0c2..eeb5991303 100644
--- a/gnu/packages/vpn.scm
+++ b/gnu/packages/vpn.scm
@@ -751,7 +751,7 @@ (define-public openconnect-sso
            python-prompt-toolkit
            python-requests
            python-pyqt-without-qtwebkit
-           python-pyqtwebengine
+           python-pyqtwebengine-5
            python-pysocks
            python-pyxdg
            python-structlog
diff --git a/gnu/packages/web-browsers.scm b/gnu/packages/web-browsers.scm
index 68d27a838b..8708efdb56 100644
--- a/gnu/packages/web-browsers.scm
+++ b/gnu/packages/web-browsers.scm
@@ -488,11 +488,11 @@ (define-public qutebrowser
            python-pygments
            python-pynacl
            python-pyyaml
-           ;; FIXME: python-pyqtwebengine needs to come before python-pyqt so
+           ;; FIXME: python-pyqtwebengine-5 needs to come before python-pyqt so
            ;; that it's __init__.py is used first.
-           python-pyqtwebengine
+           python-pyqtwebengine-5
            python-pyqt-without-qtwebkit
-           ;; While qtwebengine-5 is provided by python-pyqtwebengine, it's
+           ;; While qtwebengine-5 is provided by python-pyqtwebengine-5, it's
            ;; included here so we can wrap QTWEBENGINEPROCESS_PATH.
            qtwebengine-5))
     (arguments
-- 
2.37.2

From 5890b5be7cc4ceaa6efad623eb56300dfc1a3e15 Mon Sep 17 00:00:00 2001
From: Zhu Zihao <[email-masked]>
Date: Thu, 25 Aug 2022 19:05:17 +0800
Subject: [PATCH 3/9] gnu: python-pyqt-without-qtwebkit: Rename to
 python-pyqt-5-without-qtwebkit.

Automated by following script:

  git grep -l '\bpython-pyqt-without-qtwebkit' | \
    xargs sed -E 's/python-pyqt-without-qtwebkit/python-pyqt-5-without-qtwebkit/g' -i
---
 gnu/packages/backup.scm       | 2 +-
 gnu/packages/ebook.scm        | 4 ++--
 gnu/packages/education.scm    | 2 +-
 gnu/packages/orange.scm       | 2 +-
 gnu/packages/python-check.scm | 2 +-
 gnu/packages/python-xyz.scm   | 2 +-
 gnu/packages/qt.scm           | 4 ++--
 gnu/packages/radio.scm        | 2 +-
 gnu/packages/vpn.scm          | 2 +-
 gnu/packages/web-browsers.scm | 2 +-
 10 files changed, 12 insertions(+), 12 deletions(-)

diff --git a/gnu/packages/backup.scm b/gnu/packages/backup.scm
index 0d03d2e87f..f673e16a4a 100644
--- a/gnu/packages/backup.scm
+++ b/gnu/packages/backup.scm
@@ -1336,7 +1336,7 @@ (define-public vorta
            python-paramiko
            python-peewee
            python-psutil
-           python-pyqt-without-qtwebkit
+           python-pyqt-5-without-qtwebkit
            python-secretstorage
            ;; This is included so that the qt-wrap phase picks it up.
            qtsvg-5))
diff --git a/gnu/packages/ebook.scm b/gnu/packages/ebook.scm
index edcf7b486f..f105d43754 100644
--- a/gnu/packages/ebook.scm
+++ b/gnu/packages/ebook.scm
@@ -197,7 +197,7 @@ (define-public calibre
            python-py7zr
            python-pychm
            python-pygments
-           python-pyqt-without-qtwebkit
+           python-pyqt-5-without-qtwebkit
            python-pyqtwebengine-5
            python-regex
            speech-dispatcher
@@ -243,7 +243,7 @@ (define-public calibre
                  (string-append "[tool.sip.project]
 sip-include-dirs = [\""
                                 #$(this-package-input
-                                   "python-pyqt-without-qtwebkit")
+                                   "python-pyqt-5-without-qtwebkit")
                                 "/share/sip\"]")))
               (substitute* "src/calibre/ebooks/pdf/pdftohtml.py"
                 (("PDFTOHTML = 'pdftohtml'")
diff --git a/gnu/packages/education.scm b/gnu/packages/education.scm
index 3c574b4176..b2e8eb4568 100644
--- a/gnu/packages/education.scm
+++ b/gnu/packages/education.scm
@@ -803,7 +803,7 @@ (define-public anki
        ("python-pyaudio" ,python-pyaudio)
        ;; `python-pyqtwebengine-5' must precede `python-pyqt' in PYTHONPATH.
        ("python-pyqtwebengine-5" ,python-pyqtwebengine-5)
-       ("python-pyqt" ,python-pyqt-without-qtwebkit)
+       ("python-pyqt" ,python-pyqt-5-without-qtwebkit)
        ("python-requests" ,python-requests)
        ("python-send2trash" ,python-send2trash)
        ("python-sip" ,python-sip)
diff --git a/gnu/packages/orange.scm b/gnu/packages/orange.scm
index ef6f36d8a8..0da1f28692 100644
--- a/gnu/packages/orange.scm
+++ b/gnu/packages/orange.scm
@@ -160,7 +160,7 @@ (define-public orange
            python-orange-widget-base
            python-pandas
            python-pygments
-           python-pyqt-without-qtwebkit
+           python-pyqt-5-without-qtwebkit
            python-pyqtgraph
            python-pyqtwebengine-5
            python-pyyaml
diff --git a/gnu/packages/python-check.scm b/gnu/packages/python-check.scm
index 7cc266fbce..e866de2212 100644
--- a/gnu/packages/python-check.scm
+++ b/gnu/packages/python-check.scm
@@ -1624,7 +1624,7 @@ (define-public python-pytest-qt
              (setenv "QT_QPA_PLATFORM" "offscreen")
              #t)))))
     (propagated-inputs
-     (list python-pyqt-without-qtwebkit))
+     (list python-pyqt-5-without-qtwebkit))
     (native-inputs
      (list python-pytest python-pytest-runner python-setuptools-scm))
     (home-page "https://github.com/pytest-dev/pytest-qt")
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index f7971b75fa..d362850466 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -15562,7 +15562,7 @@ (define-public python-pyqtgraph
      (list qtbase-5))
     (propagated-inputs
      (list python-h5py python-numpy python-pyopengl python-scipy
-           python-pyqt-without-qtwebkit))
+           python-pyqt-5-without-qtwebkit))
     (home-page "http://www.pyqtgraph.org")
     (synopsis "Scientific graphics and GUI library for Python")
     (description
diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm
index e6779e333a..df12c37964 100644
--- a/gnu/packages/qt.scm
+++ b/gnu/packages/qt.scm
@@ -3127,7 +3127,7 @@ (define-public python-pyqtwebengine-5
     (inputs
      `(("python" ,python-wrapper)
        ("python-sip" ,python-sip)
-       ("python-pyqt" ,python-pyqt-without-qtwebkit)
+       ("python-pyqt" ,python-pyqt-5-without-qtwebkit)
        ("qtbase" ,qtbase-5)
        ("qtsvg-5" ,qtsvg-5)
        ("qtdeclarative-5" ,qtdeclarative-5)
@@ -3191,7 +3191,7 @@ (define-public python-pyqtwebengine-5
 ;; depending on qtwebkit.
 ;; Ultimately, it would be nicer to have a more modular set of python-pyqt-*
 ;; packages that could be used together.
-(define-public python-pyqt-without-qtwebkit
+(define-public python-pyqt-5-without-qtwebkit
   (package/inherit python-pyqt
     (name "python-pyqt-without-qtwebkit")
     (inputs
diff --git a/gnu/packages/radio.scm b/gnu/packages/radio.scm
index bc2c13b847..7d1d9da0b1 100644
--- a/gnu/packages/radio.scm
+++ b/gnu/packages/radio.scm
@@ -597,7 +597,7 @@ (define-public gnuradio
            python-numpy
            python-pycairo
            python-pygobject
-           python-pyqt-without-qtwebkit
+           python-pyqt-5-without-qtwebkit
            python-pyqtgraph
            python-pyyaml
            qtbase-5
diff --git a/gnu/packages/vpn.scm b/gnu/packages/vpn.scm
index eeb5991303..a0fd20d246 100644
--- a/gnu/packages/vpn.scm
+++ b/gnu/packages/vpn.scm
@@ -750,7 +750,7 @@ (define-public openconnect-sso
            python-lxml
            python-prompt-toolkit
            python-requests
-           python-pyqt-without-qtwebkit
+           python-pyqt-5-without-qtwebkit
            python-pyqtwebengine-5
            python-pysocks
            python-pyxdg
diff --git a/gnu/packages/web-browsers.scm b/gnu/packages/web-browsers.scm
index 8708efdb56..634d9ea0bf 100644
--- a/gnu/packages/web-browsers.scm
+++ b/gnu/packages/web-browsers.scm
@@ -491,7 +491,7 @@ (define-public qutebrowser
            ;; FIXME: python-pyqtwebengine-5 needs to come before python-pyqt so
            ;; that it's __init__.py is used first.
            python-pyqtwebengine-5
-           python-pyqt-without-qtwebkit
+           python-pyqt-5-without-qtwebkit
            ;; While qtwebengine-5 is provided by python-pyqtwebengine-5, it's
            ;; included here so we can wrap QTWEBENGINEPROCESS_PATH.
            qtwebengine-5))
-- 
2.37.2

From 5614cc205c8ef9dc10f24726ea959f13220fac13 Mon Sep 17 00:00:00 2001
From: Zhu Zihao <[email-masked]>
Date: Thu, 25 Aug 2022 19:17:54 +0800
Subject: [PATCH 4/9] gnu: python-pyqt: Rename to python-pyqt-5.

Automated by following scripts and some manually fix:

  git grep -l '\bpython-pyqt\b' | xargs sed -E \
    -e 's/,python-pyqt/\0-5/g' \
    -e 's/pyqt$/\0-5/g' \
    -e 's/pyqt /pyqt-5 /g' \
    -e 's/pyqt\)/pyqt-5)/g' -i
---
 gnu/packages/audio.scm        |  4 ++--
 gnu/packages/chemistry.scm    |  2 +-
 gnu/packages/cups.scm         |  2 +-
 gnu/packages/education.scm    |  2 +-
 gnu/packages/engineering.scm  |  2 +-
 gnu/packages/finance.scm      |  6 +++---
 gnu/packages/games.scm        |  2 +-
 gnu/packages/maths.scm        |  2 +-
 gnu/packages/music.scm        |  4 ++--
 gnu/packages/pdf.scm          |  4 ++--
 gnu/packages/photo.scm        |  2 +-
 gnu/packages/plotutils.scm    |  2 +-
 gnu/packages/python-web.scm   |  2 +-
 gnu/packages/python-xyz.scm   |  8 ++++----
 gnu/packages/qt.scm           | 14 +++++++-------
 gnu/packages/radio.scm        |  6 +++---
 gnu/packages/stenography.scm  |  2 +-
 gnu/packages/text-editors.scm |  2 +-
 gnu/packages/video.scm        |  2 +-
 gnu/packages/web-browsers.scm |  2 +-
 20 files changed, 36 insertions(+), 36 deletions(-)

diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm
index c0bfb3b9d8..083b9ca971 100644
--- a/gnu/packages/audio.scm
+++ b/gnu/packages/audio.scm
@@ -5104,9 +5104,9 @@ (define-public carla
            gtk+-2              ;needed for bridging GTK2 plugins in GTK3 hosts
            gtk+
            python-pyliblo
-           python-pyqt
+           python-pyqt-5
            python-rdflib
-           ;; python-pyqt shows the following error without python-wrapper:
+           ;; python-pyqt-5 shows the following error without python-wrapper:
            ;; Error while finding module specification for 'PyQt5.uic.pyuic'
            ;; (ModuleNotFoundError: No module named 'PyQt5')
            python-wrapper
diff --git a/gnu/packages/chemistry.scm b/gnu/packages/chemistry.scm
index 735d599d2d..f00e96bdc2 100644
--- a/gnu/packages/chemistry.scm
+++ b/gnu/packages/chemistry.scm
@@ -555,7 +555,7 @@ (define-public python-pymol
            libxml2
            mmtf-cpp
            msgpack
-           python-pyqt
+           python-pyqt-5
            glm
            netcdf))
     (native-inputs
diff --git a/gnu/packages/cups.scm b/gnu/packages/cups.scm
index 3de9ddbf22..7e5ddaa7e3 100644
--- a/gnu/packages/cups.scm
+++ b/gnu/packages/cups.scm
@@ -689,7 +689,7 @@ (define-public hplip
        ("python" ,python)
        ("python-dbus" ,python-dbus)
        ("python-pygobject" ,python-pygobject)
-       ("python-pyqt" ,python-pyqt)
+       ("python-pyqt" ,python-pyqt-5)
        ("python-wrapper" ,python-wrapper)
        ("sane-backends" ,sane-backends-minimal)
        ("zlib" ,zlib)))
diff --git a/gnu/packages/education.scm b/gnu/packages/education.scm
index b2e8eb4568..d11f4e956e 100644
--- a/gnu/packages/education.scm
+++ b/gnu/packages/education.scm
@@ -434,7 +434,7 @@ (define-public toutenclic
     (native-inputs
      (list unzip))
     (inputs
-     (list python-pyqt))
+     (list python-pyqt-5))
     (synopsis "School tools for physically disabled children")
     (description "ToutEnClic is intended to facilitate the schooling
 of physically disabled children in ordinary schools.  It is both
diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm
index f195179413..947047fd11 100644
--- a/gnu/packages/engineering.scm
+++ b/gnu/packages/engineering.scm
@@ -3418,7 +3418,7 @@ (define-public uranium
            python
            python-cryptography
            python-numpy
-           python-pyqt
+           python-pyqt-5
            python-scipy
            python-shapely
            python-trimesh
diff --git a/gnu/packages/finance.scm b/gnu/packages/finance.scm
index 849f9aba99..79f00e3738 100644
--- a/gnu/packages/finance.scm
+++ b/gnu/packages/finance.scm
@@ -581,7 +581,7 @@ (define-public electrum
            python-hidapi
            python-ledgerblue
            python-protobuf
-           python-pyqt
+           python-pyqt-5
            python-qdarkstyle
            python-qrcode
            zbar))
@@ -680,7 +680,7 @@ (define-public electron-cash
            python-pathvalidate
            python-protobuf
            python-pyaes
-           python-pyqt
+           python-pyqt-5
            python-pysocks
            python-qdarkstyle
            python-qrcode
@@ -1100,7 +1100,7 @@ (define-public python-trezor
            python-black
            python-isort
            python-protobuf
-           python-pyqt
+           python-pyqt-5
            python-pytest))
     (home-page "https://github.com/trezor/python-trezor")
     (synopsis "Python library for communicating with TREZOR Hardware Wallet")
diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm
index 5dc7298acb..b40fde45a4 100644
--- a/gnu/packages/games.scm
+++ b/gnu/packages/games.scm
@@ -10503,7 +10503,7 @@ (define-public kajongg
            libkmahjongg
            python
            python-twisted
-           python-pyqt
+           python-pyqt-5
            python-zope-interface
            qtbase-5
            qtsvg-5))
diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm
index 72d5e9a83a..947578c038 100644
--- a/gnu/packages/maths.scm
+++ b/gnu/packages/maths.scm
@@ -3150,7 +3150,7 @@ (define-public veusz
      (list ghostscript ;optional, for EPS/PS output
            python-dbus
            python-h5py ;optional, for HDF5 data
-           python-pyqt
+           python-pyqt-5
            qtbase-5
            qtsvg-5))
     (propagated-inputs
diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm
index e1de632dda..cedfb4fee7 100644
--- a/gnu/packages/music.scm
+++ b/gnu/packages/music.scm
@@ -2890,7 +2890,7 @@ (define-public frescobaldi
            python-ly
            python-poppler-qt5
            python-pyportmidi
-           python-pyqt
+           python-pyqt-5
            python-sip))
     (home-page "https://www.frescobaldi.org/")
     (synopsis "LilyPond sheet music text editor")
@@ -3553,7 +3553,7 @@ (define-public picard
      `(("gettext" ,gettext-minimal)
        ("python-dateutil" ,python-dateutil)))
     (inputs
-     (list chromaprint python-discid python-pyqt python-mutagen))
+     (list chromaprint python-discid python-pyqt-5 python-mutagen))
     (home-page "https://picard.musicbrainz.org/")
     (synopsis "Graphical music tagging application")
     (description
diff --git a/gnu/packages/pdf.scm b/gnu/packages/pdf.scm
index 39266a2822..d94c2e2f75 100644
--- a/gnu/packages/pdf.scm
+++ b/gnu/packages/pdf.scm
@@ -180,7 +180,7 @@ (define-public flyer-composer
                    (,(string-append qtbase "/lib/qt5/plugins/platforms"))))
                #t))))))
     (inputs
-     (list python-pypdf2 python-pyqt python-poppler-qt5 qtbase-5))
+     (list python-pypdf2 python-pyqt-5 python-poppler-qt5 qtbase-5))
     (home-page "http://crazy-compilers.com/flyer-composer")
     (synopsis "Rearrange PDF pages to print as flyers on one sheet")
     (description "@command{flyer-composer} can be used to prepare one- or
@@ -351,7 +351,7 @@ (define-public python-poppler-qt5
     (native-inputs
      (list pkg-config))
     (inputs
-     (list python-sip-4 python-pyqt poppler-qt5 qtbase-5))
+     (list python-sip-4 python-pyqt-5 poppler-qt5 qtbase-5))
     (home-page "https://pypi.org/project/python-poppler-qt5/")
     (synopsis "Python bindings for Poppler-Qt5")
     (description
diff --git a/gnu/packages/photo.scm b/gnu/packages/photo.scm
index 19c171a9bb..56806ad014 100644
--- a/gnu/packages/photo.scm
+++ b/gnu/packages/photo.scm
@@ -118,7 +118,7 @@ (define-public rapid-photo-downloader
        ("libnotify" ,libnotify)
        ("libmediainfo" ,libmediainfo)
        ("usdisks" ,udisks)
-       ("python-pyqt" ,python-pyqt)
+       ("python-pyqt" ,python-pyqt-5)
        ("python-pygobject" ,python-pygobject)
        ("python-gphoto2" ,python-gphoto2)
        ("python-pyzmq" ,python-pyzmq)
diff --git a/gnu/packages/plotutils.scm b/gnu/packages/plotutils.scm
index a5e1a1ad55..83a869137c 100644
--- a/gnu/packages/plotutils.scm
+++ b/gnu/packages/plotutils.scm
@@ -327,7 +327,7 @@ (define-public asymptote
            python
            python-cson
            python-numpy
-           python-pyqt
+           python-pyqt-5
            readline
            zlib))
     (arguments
diff --git a/gnu/packages/python-web.scm b/gnu/packages/python-web.scm
index d060d5b27c..9c57aaa25e 100644
--- a/gnu/packages/python-web.scm
+++ b/gnu/packages/python-web.scm
@@ -7153,7 +7153,7 @@ (define-public python-woob
            python-lxml
            python-pillow
            python-prettytable
-           python-pyqt
+           python-pyqt-5
            python-pyyaml
            python-requests
            python-six
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index d362850466..67d1128b88 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -13584,7 +13584,7 @@ (define-public python-qtconsole
                (("def test_other_output") "def _test_other_output")))))))
     (propagated-inputs
      (list python-ipykernel python-ipython-genutils python-jupyter-client
-           python-jupyter-core python-pygments python-pyqt python-pyzmq
+           python-jupyter-core python-pygments python-pyqt-5 python-pyzmq
            python-qtpy python-traitlets))
     (native-inputs
      (list python-flaky python-pytest python-pytest-qt))
@@ -15596,7 +15596,7 @@ (define-public python-qasync
     (native-inputs
      (list python-pytest python-pytest-runner))
     (propagated-inputs
-     (list python-pyqt))
+     (list python-pyqt-5))
     (home-page "https://github.com/CabbageDevelopment/qasync")
     (synopsis "Implementation of the PEP 3156 Event-Loop with Qt")
     (description
@@ -25269,7 +25269,7 @@ (define-public offlate
             python-pyenchant
             python-pygit2
             python-pygithub
-            python-pyqt
+            python-pyqt-5
             python-requests
             python-ruamel.yaml
             python-translate-toolkit
@@ -26198,7 +26198,7 @@ (define-public pyzo
        ;; symbol: objc_getClass".
        #:tests? #f))
     (propagated-inputs
-     (list python-pyqt))
+     (list python-pyqt-5))
     (home-page "https://pyzo.org")
     (synopsis
      "Python IDE for scientific computing")
diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm
index df12c37964..25bc0a1dad 100644
--- a/gnu/packages/qt.scm
+++ b/gnu/packages/qt.scm
@@ -2978,7 +2978,7 @@ (define-public python-sip-4
                        "--incdir" include)))))))
     (license license:gpl3)))
 
-(define-public python-pyqt
+(define-public python-pyqt-5
   (package
     (name "python-pyqt")
     (version "5.15.2")
@@ -3162,7 +3162,7 @@ (define-public python-pyqtwebengine-5
                        "--stubsdir" stubs
                        "--sipdir" sipdir
                        "--pyqt-sipdir" pyqt-sipdir))))
-         ;; Because this has a different prefix than python-pyqt then we need
+         ;; Because this has a different prefix than python-pyqt-5 then we need
          ;; to make this a namespace of its own.
          (add-after 'install 'make-namespace
            (lambda* (#:key inputs outputs #:allow-other-keys)
@@ -3192,10 +3192,10 @@ (define-public python-pyqtwebengine-5
 ;; Ultimately, it would be nicer to have a more modular set of python-pyqt-*
 ;; packages that could be used together.
 (define-public python-pyqt-5-without-qtwebkit
-  (package/inherit python-pyqt
+  (package/inherit python-pyqt-5
     (name "python-pyqt-without-qtwebkit")
     (inputs
-     (alist-delete "qtwebkit" (package-inputs python-pyqt)))))
+     (alist-delete "qtwebkit" (package-inputs python-pyqt-5)))))
 
 (define-public python-pyqt-builder
   (package
@@ -3322,7 +3322,7 @@ (define-public python-qscintilla
     (inputs
      `(("qscintilla" ,qscintilla)
        ("python" ,python)
-       ("python-pyqt" ,python-pyqt)))
+       ("python-pyqt" ,python-pyqt-5)))
     (description "QScintilla is a port to Qt of Neil Hodgson's Scintilla C++
 editor control.  QScintilla includes features especially useful when editing
 and debugging source code.  These include support for syntax styling, error
@@ -3334,7 +3334,7 @@ (define-public python-qscintilla
 ;; variables such as PYTHONPATH, so we need to build a union package to make
 ;; it work.
 (define-public python-pyqt+qscintilla
-  (package/inherit python-pyqt
+  (package/inherit python-pyqt-5
     (name "python-pyqt+qscintilla")
     (source #f)
     (build-system trivial-build-system)
@@ -3349,7 +3349,7 @@ (define-public python-pyqt+qscintilla
                                    directories)
                       #t)))))
     (inputs
-     `(("python-pyqt" ,python-pyqt)
+     `(("python-pyqt" ,python-pyqt-5)
        ("python-qscintilla" ,python-qscintilla)))
     (synopsis "Union of PyQt and the Qscintilla extension")
     (description
diff --git a/gnu/packages/radio.scm b/gnu/packages/radio.scm
index 7d1d9da0b1..4f356d677d 100644
--- a/gnu/packages/radio.scm
+++ b/gnu/packages/radio.scm
@@ -734,7 +734,7 @@ (define-public gr-osmosdr
              log4cpp
              python
              python-numpy
-             python-pyqt
+             python-pyqt-5
              rtl-sdr
              soapysdr
              spdlog
@@ -1576,7 +1576,7 @@ (define-public nanovna-saver
     (native-inputs
      (list python-cython))
     (inputs
-     (list python-numpy python-pyqt python-pyserial python-scipy))
+     (list python-numpy python-pyqt-5 python-pyserial python-scipy))
     (arguments
      '(#:tests? #f))
     (home-page "https://github.com/NanoVNA-Saver/nanovna-saver")
@@ -2470,7 +2470,7 @@ (define-public urh
            python-numpy
            python-psutil
            python-pyaudio
-           python-pyqt
+           python-pyqt-5
            rtl-sdr))
     (arguments
      `(#:phases
diff --git a/gnu/packages/stenography.scm b/gnu/packages/stenography.scm
index 3b86ab6bcf..2be3461a4d 100644
--- a/gnu/packages/stenography.scm
+++ b/gnu/packages/stenography.scm
@@ -49,7 +49,7 @@ (define-public plover
      (list python-pytest))
     (inputs
      (list python-appdirs
-           python-pyqt
+           python-pyqt-5
            python-babel
            python-dbus
            python-hidapi
diff --git a/gnu/packages/text-editors.scm b/gnu/packages/text-editors.scm
index 839f812733..555d9cf620 100644
--- a/gnu/packages/text-editors.scm
+++ b/gnu/packages/text-editors.scm
@@ -770,7 +770,7 @@ (define-public manuskript
                    #:icon "manuskript"
                    #:categories "Office;WordProcessor;"))))))))
     (inputs
-     (list pandoc python-lxml python-markdown python-pyqt qtsvg-5))
+     (list pandoc python-lxml python-markdown python-pyqt-5 qtsvg-5))
     (home-page "http://www.theologeek.ch/manuskript/")
     (synopsis "Tool for writers")
     (description "Manuskript provides a rich environment to help
diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm
index 556eb46df4..40d74c741d 100644
--- a/gnu/packages/video.scm
+++ b/gnu/packages/video.scm
@@ -4762,7 +4762,7 @@ (define-public openshot
            font-dejavu
            libopenshot
            python
-           python-pyqt
+           python-pyqt-5
            python-pyzmq
            python-requests
            qtsvg-5))
diff --git a/gnu/packages/web-browsers.scm b/gnu/packages/web-browsers.scm
index 634d9ea0bf..f2bb61d0bb 100644
--- a/gnu/packages/web-browsers.scm
+++ b/gnu/packages/web-browsers.scm
@@ -488,7 +488,7 @@ (define-public qutebrowser
            python-pygments
            python-pynacl
            python-pyyaml
-           ;; FIXME: python-pyqtwebengine-5 needs to come before python-pyqt so
+           ;; FIXME: python-pyqtwebengine-5 needs to come before python-pyqt-5 so
            ;; that it's __init__.py is used first.
            python-pyqtwebengine-5
            python-pyqt-5-without-qtwebkit
-- 
2.37.2

From 5949dc9870560a474d79337b8cfe3abdde7792f3 Mon Sep 17 00:00:00 2001
From: Zhu Zihao <[email-masked]>
Date: Thu, 25 Aug 2022 19:25:45 +0800
Subject: [PATCH 5/9] gnu: python-pyqt+qscintilla: Rename to
 python-pyqt-5+qscintilla.

* gnu/packages/qt.scm (python-pyqt+qscintilla): Rename to
python-pyqt-5+qscintilla.
* gnu/packages/geo.scm (qgjs)[inputs]: Ditto.
* gnu/packages/medical.scm (openmolar-1)[inputs]: Ditto.
* gnu/packages/python-xyz.scm (autokey)[inputs]: Ditto.
---
 gnu/packages/geo.scm        | 2 +-
 gnu/packages/medical.scm    | 2 +-
 gnu/packages/python-xyz.scm | 2 +-
 gnu/packages/qt.scm         | 2 +-
 4 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/gnu/packages/geo.scm b/gnu/packages/geo.scm
index 66c97d3d6a..2678c08a02 100644
--- a/gnu/packages/geo.scm
+++ b/gnu/packages/geo.scm
@@ -2607,7 +2607,7 @@ (define-public qgis
            python-owslib
            python-psycopg2
            python-pygments
-           python-pyqt+qscintilla
+           python-pyqt-5+qscintilla
            python-pytz
            python-pyyaml
            python-requests
diff --git a/gnu/packages/medical.scm b/gnu/packages/medical.scm
index 6c9cc757eb..60fb8c6091 100644
--- a/gnu/packages/medical.scm
+++ b/gnu/packages/medical.scm
@@ -49,7 +49,7 @@ (define-public openmolar-1
               (("/usr") (assoc-ref outputs "out")))
             #t)))))
    (inputs
-    (list python-pyqt+qscintilla python-mysqlclient qscintilla))
+    (list python-pyqt-5+qscintilla python-mysqlclient qscintilla))
    (home-page "https://openmolar.com/om1")
    (synopsis "Dental practice management software")
    (description "Openmolar is a dental practice management suite.  Its
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 67d1128b88..82eaeec90f 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -4357,7 +4357,7 @@ (define-public autokey
            python-ipython
            python-pygobject
            python-pyinotify
-           python-pyqt+qscintilla
+           python-pyqt-5+qscintilla
            python-xlib
            wmctrl
            zenity))
diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm
index 25bc0a1dad..d9b32749cc 100644
--- a/gnu/packages/qt.scm
+++ b/gnu/packages/qt.scm
@@ -3333,7 +3333,7 @@ (define-public python-qscintilla
 ;; PyQt only looks for modules in its own directory.  It ignores environment
 ;; variables such as PYTHONPATH, so we need to build a union package to make
 ;; it work.
-(define-public python-pyqt+qscintilla
+(define-public python-pyqt-5+qscintilla
   (package/inherit python-pyqt-5
     (name "python-pyqt+qscintilla")
     (source #f)
-- 
2.37.2

From 5e054770ff6f50478be9860f0c75ffc706e980ec Mon Sep 17 00:00:00 2001
From: Zhu Zihao <[email-masked]>
Date: Thu, 25 Aug 2022 20:06:14 +0800
Subject: [PATCH 6/9] gnu: python-sip: Update to 6.6.2.

* gnu/packages/qt.scm (python-sip): Update to 6.6.2
[propagated-inputs]: Add missing input python-ply.
---
 gnu/packages/qt.scm | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm
index d9b32749cc..c7ea6e6713 100644
--- a/gnu/packages/qt.scm
+++ b/gnu/packages/qt.scm
@@ -2904,7 +2904,7 @@ (define-public single-application-qt5
 (define-public python-sip
   (package
     (name "python-sip")
-    (version "5.5.0")
+    (version "6.6.2")
     (source
       (origin
         (method url-fetch)
@@ -2914,12 +2914,12 @@ (define-public python-sip
                                   "/sip-" version ".tar.gz")))
         (sha256
          (base32
-          "1idaivamp1jvbbai9yzv471c62xbqxhaawccvskaizihkd0lq0jx"))))
+          "03frpw2l2krigibx32cbyl9kx696vwkhj52pmqjybn6zqp0zlghf"))))
     (build-system python-build-system)
     (native-inputs
      (list python-wrapper))
     (propagated-inputs
-     (list python-toml python-packaging))
+     (list python-toml python-packaging python-ply))
     (home-page "https://www.riverbankcomputing.com/software/sip/intro")
     (synopsis "Python binding creator for C and C++ libraries")
     (description
-- 
2.37.2

From 750cd9f80a3a02b64c933b8308fa1e0ef0ab8333 Mon Sep 17 00:00:00 2001
From: Zhu Zihao <[email-masked]>
Date: Thu, 25 Aug 2022 22:41:25 +0800
Subject: [PATCH 7/9] gnu: python-pyqt-builder: Update to 1.13.0.

* gnu/packages/qt.scm (python-pyqt-builder): Update to 1.13.0.
---
 gnu/packages/qt.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm
index c7ea6e6713..b89cf989ec 100644
--- a/gnu/packages/qt.scm
+++ b/gnu/packages/qt.scm
@@ -3200,14 +3200,14 @@ (define-public python-pyqt-5-without-qtwebkit
 (define-public python-pyqt-builder
   (package
    (name "python-pyqt-builder")
-   (version "1.9.0")
+   (version "1.13.0")
    (source
     (origin
      (method url-fetch)
      (uri (pypi-uri "PyQt-builder" version))
      (sha256
       (base32
-       "0nh0054c54ji3sm6d268fccf0y5f613spswwgwqd3rnn816hnljl"))))
+       "1vwyd2hs13zh0ybvkn36h73031ha7c41sf4v28735dff7065hxs8"))))
    (build-system python-build-system)
    (inputs
     (list python-sip))
-- 
2.37.2

From 18831a399f1be3748c55d25c3c1bb80036c2cbcb Mon Sep 17 00:00:00 2001
From: Zhu Zihao <[email-masked]>
Date: Fri, 26 Aug 2022 17:50:36 +0800
Subject: [PATCH 8/9] gnu: Add python-pyqt, version 6.3.1.

* gnu/packages/qt.scm (python-pyqt): New variable.
---
 gnu/packages/qt.scm | 59 +++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 59 insertions(+)

diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm
index b89cf989ec..ac575c9828 100644
--- a/gnu/packages/qt.scm
+++ b/gnu/packages/qt.scm
@@ -2978,6 +2978,65 @@ (define-public python-sip-4
                        "--incdir" include)))))))
     (license license:gpl3)))
 
+(define-public python-pyqt
+  (package
+    (name "python-pyqt")
+    (version "6.3.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "PyQt6" version))
+       (file-name (string-append "PyQt6-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0mwp5iyh21jzsvd66rcpxzr142kiv769dqwpr0gps17pp8fy5ilc"))))
+    (inputs
+     (list python-wrapper
+           qtbase
+           qtdeclarative
+           qtmultimedia
+           qtpositioning
+           qtsvg
+           qttools
+           qtwebchannel
+           qtwebsockets))
+    (propagated-inputs
+     (list python-pyqt6-sip))
+    (native-inputs
+     (list python-pyqt-builder
+           python-sip
+           python-wrapper
+           qtbase))                     ;qmake
+    (build-system gnu-build-system)
+    (arguments
+     (list
+      #:imported-modules `((guix build python-build-system)
+                           ,@%gnu-build-system-modules)
+      #:modules `(((guix build python-build-system) #:select (site-packages))
+                  ,@%gnu-build-system-modules)
+      #:phases
+      #~(modify-phases %standard-phases
+          (replace 'configure
+            (lambda* (#:key inputs outputs #:allow-other-keys)
+              (invoke "sip-build"
+                      "--verbose"
+                      "--confirm-license"
+                      "--no-make"
+                      "--qmake" (search-input-file inputs "/bin/qmake")
+                      "--target-dir" (site-packages inputs outputs)
+                      "--scripts-dir" (string-append #$output "/bin"))))
+          (add-before 'build 'enter-build-directory
+            (lambda _ (chdir "build") #t))
+          (add-after 'install 'leave-build-directory
+            (lambda _ (chdir "..") #t)))))
+    (home-page "https://www.riverbankcomputing.com/software/pyqt/intro")
+    (synopsis "Python bindings for Qt6")
+    (description
+     "PyQt is a set of Python v3 bindings for the Qt6 application framework.
+The bindings are implemented as a set of Python modules and contain over
+620 classes.")
+    (license license:gpl3)))
+
 (define-public python-pyqt-5
   (package
     (name "python-pyqt")
-- 
2.37.2

From 0856c6efcd09be2a5326af457b01f994c954d959 Mon Sep 17 00:00:00 2001
From: Zhu Zihao <[email-masked]>
Date: Fri, 26 Aug 2022 22:32:24 +0800
Subject: [PATCH 9/9] gnu: Add python-pyqtwebengine, version 6.3.1.

* gnu/packages/qt.scm (python-pyqtwebengine): New variable.
---
 gnu/packages/qt.scm | 104 ++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 104 insertions(+)

diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm
index ac575c9828..821e824e36 100644
--- a/gnu/packages/qt.scm
+++ b/gnu/packages/qt.scm
@@ -3162,6 +3162,110 @@ (define-public python-pyqt6-sip
     (synopsis "Sip module support for PyQt6")
     (description "Sip module support for PyQt6")))
 
+(define-public python-pyqtwebengine
+  (package
+    (name "python-pyqtwebengine")
+    (version "6.3.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "PyQt6_WebEngine" version))
+       (sha256
+        (base32
+         "01zhx1yz8ggi6n9rwqi1z18aznbl3ndwa5yn090z85abgd9gblf3"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     (list python
+           python-sip
+           python-pyqt-builder
+           ;; qtbase is required for qmake
+           qtbase))
+    (inputs
+     (list python-pyqt
+           qtbase
+           qtdeclarative
+           qtwebchannel
+           qtwebengine))
+    (arguments
+     (list
+      #:imported-modules `((guix build python-build-system)
+                           ,@%gnu-build-system-modules)
+      #:modules
+      `((ice-9 regex)
+        ((guix build python-build-system)
+         #:select (site-packages python-version))
+        ,@%gnu-build-system-modules)
+      #:phases
+      #~(modify-phases %standard-phases
+          (add-before 'configure 'fix-pyqt-sip-dirs
+            (lambda _
+              (define sip-dir
+                (string-append
+                 #$(this-package-input "python-pyqt")
+                 "/lib/python"
+                 (python-version #$(this-package-native-input "python"))
+                 "/site-packages/PyQt6/bindings"))
+
+              (substitute* "pyproject.toml"
+                (("tool\\.sip\\.project.+$" all)
+                 (format #f "~asip-include-dirs = [\"~a\"]~%"
+                         all sip-dir)))))
+          (replace 'configure
+            (lambda* (#:key inputs native-inputs outputs #:allow-other-keys)
+              (invoke "sip-build"
+                      "--verbose"
+                      "--no-make"
+                      "--target-dir" (site-packages inputs outputs))))
+          ;; XXX: qmake generates Makefile that tries to link with
+          ;; <path-to-qtbase>/lib/libQt6Qml.so. This phase deletes these
+          ;; bad references.
+          (add-after 'configure 'delete-bad-references
+            (lambda* (#:key inputs #:allow-other-keys)
+              (substitute* '("build/QtWebEngineCore/Makefile"
+                             "build/QtWebEngineQuick/Makefile"
+                             "build/QtWebEngineWidgets/Makefile")
+                (((string-append
+                   (regexp-quote #$(this-package-input "qtbase"))
+                   "/lib/libQt6(Qml|QmlModels|WebEngineCore)\\.so"))
+                 ""))))
+          (add-after 'configure 'absolutize-qprinter.h
+            (lambda* (#:key inputs  #:allow-other-keys)
+              (let* ((qtprinter.h
+                      (string-append
+                       "\""
+                       (search-input-file
+                        inputs
+                        "include/qt6/QtPrintSupport/qprinter.h")
+                       "\"")))
+                (substitute* (find-files "build/QtWebEngineWidgets"
+                                         "\\.(cpp|h)$")
+                  (("<qprinter.h>")
+                   qtprinter.h))
+                #t)))
+          (add-before 'build 'enter-build-directory
+            (lambda _ (chdir "build") #t))
+          (add-after 'install 'leave-build-directory
+            (lambda _ (chdir "..") #t))
+          (add-after 'install 'make-namespace
+            (lambda* (#:key inputs outputs #:allow-other-keys)
+              (let* ((init (string-append
+                            (site-packages inputs outputs)
+                            "/PyQt6/__init__.py")))
+                (with-output-to-file init
+                  (lambda _
+                    (display "\
+from pkgutil import extend_path
+__path__ = extend_path(__path__, __name__)
+")))
+                #t))))))
+    (home-page "https://www.riverbankcomputing.com/software/pyqtwebengine/intro")
+    (synopsis "Python bindings for QtWebEngine6")
+    (description
+     "PyQtWebEngine is a set of Python bindings for The Qt Company's Qt
+WebEngine libraries.  The bindings sit on top of PyQt6 and are implemented as a
+set of three modules.")
+    (license license:gpl3)))
+
 (define-public python-pyqtwebengine-5
   (package
     (name "python-pyqtwebengine")
-- 
2.37.2

-- 
Retrieve my PGP public key:

  gpg --recv-keys 481F5EEEBA425ADC13247C76A6E672D981B8E744

Zihao