gnu: Add python-pyqtwebengine.

* gnu/packages/qt.scm (python-pyqtwebengine): New variable.
This commit is contained in:
Mike Rosset 2020-01-14 03:06:36 -08:00 committed by Pierre Neidhardt
parent 9deae98281
commit eb5af18e7e
No known key found for this signature in database
GPG Key ID: 9BDCF497A4BBCC7F

View File

@ -38,6 +38,7 @@
#:use-module (guix build-system cmake)
#:use-module (guix build-system gnu)
#:use-module (guix build-system trivial)
#:use-module (guix build-system python)
#:use-module (guix packages)
#:use-module (guix deprecation)
#:use-module (guix utils)
@ -1997,6 +1998,88 @@ framework. The bindings are implemented as a set of Python modules and
contain over 620 classes.")
(license license:gpl3)))
(define-public python-pyqtwebengine
(package
(name "python-pyqtwebengine")
(version "5.12.1")
(source
(origin
(method url-fetch)
(uri (string-append
"https://www.riverbankcomputing.com/static/Downloads/PyQtWebEngine/"
version "/PyQtWebEngine_gpl-" version ".tar.gz"))
(sha256
(base32
"0wylkd7fh2g27y3710rpxmj9wx0wpi3z7qbv6khiddm15rkh81w6"))))
(build-system gnu-build-system)
(native-inputs
`(("python" ,python)
("python-sip" ,python-sip)
;; qtbase is required for qmake
("qtbase" ,qtbase)))
(inputs
`(("python" ,python-wrapper)
("python-sip" ,python-sip)
("python-pyqt" ,python-pyqt)
("qtbase" ,qtbase)
("qtsvg" ,qtsvg)
("qtdeclarative" ,qtdeclarative)
("qtwebchannel" ,qtwebchannel)
("python-pyqt" ,python-pyqt)
("qtwebengine" ,qtwebengine)))
(arguments
`(#:modules ((srfi srfi-1)
,@%gnu-build-system-modules)
#:phases
(modify-phases %standard-phases
(replace 'configure
(lambda* (#:key inputs outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(sipdir (string-append out "/share/sip"))
(pyqt-sipdir (string-append
(assoc-ref inputs "python-pyqt") "/share/sip"))
(python (assoc-ref inputs "python"))
(python-version
(last (string-split python #\-)))
(python-major+minor
(string-join
(take (string-split python-version #\.) 2) "."))
(lib (string-append out "/lib/python"
python-major+minor
"/site-packages/PyQt5"))
(stubs (string-append lib "/PyQt5")))
(mkdir-p sipdir)
(invoke "python" "configure.py"
"-w"
"--no-dist-info"
"--destdir" lib
"--no-qsci-api"
"--stubsdir" stubs
"--sipdir" sipdir
"--pyqt-sipdir" pyqt-sipdir))))
;; Because this has a different prefix than python-pyqt then we need
;; to make this a namespace of it's own
(add-after 'install 'make-namespace
(lambda* (#:key inputs outputs #:allow-other-keys)
(let* ((__init__.py (string-append
(assoc-ref outputs "out")
"/lib/python3.7/site-packages/PyQt5/__init__.py")))
(with-output-to-file __init__.py
(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 QtWebEngine")
(description
"PyQtWebEngine is a set of Python bindings for The Qt Company's Qt
WebEngine libraries. The bindings sit on top of PyQt5 and are implemented as a
set of three modules. Prior to v5.12 these bindings were part of PyQt
itself.")
(license license:gpl3)))
;; XXX: This is useful because qtwebkit does not build reliably at this time.
;; Ultimately, it would be nicer to have a more modular set of python-pyqt-*
;; packages that could be used together.