Zhu Zihao wrote 3 years ago
(name . guix-patches)(address . guix-patches@gnu.org)
From f14e4b2e32240ef169514127d61da775b641f97d Mon Sep 17 00:00:00 2001
From: Zhu Zihao <all_but_last@163.com>
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(+)
Toggle diff (28 lines)
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 5949dc9870560a474d79337b8cfe3abdde7792f3 Mon Sep 17 00:00:00 2001
From: Zhu Zihao <all_but_last@163.com>
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(-)
Toggle diff (54 lines)
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 <all_but_last@163.com>
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(-)
Toggle diff (30 lines)
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 <all_but_last@163.com>
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(-)
Toggle diff (23 lines)
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 <all_but_last@163.com>
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(+)
Toggle diff (72 lines)
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 <all_but_last@163.com>
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(+)
Toggle diff (117 lines)
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