Subject: Re: bug#38148: [PATCH 1/2] gnu: Add python-pyqtwebengine.

From: Pierre Neidhardt <[email-masked]>
Date: Mon, 13 Jan 2020 15:16:14 +0100

Thanks for the patches, comments below:

Mike Rosset <[email-masked]> writes:

> * gnu/packages/qt.scm (python-pyqtwebengine): New variable.
> ---
>  gnu/packages/qt.scm | 97 +++++++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 97 insertions(+)
>
> diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm
> index 514577678e..fcb297e99c 100644
> --- a/gnu/packages/qt.scm
> +++ b/gnu/packages/qt.scm
> @@ -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)
> @@ -1947,6 +1948,17 @@ module provides support functions to the automatically generated code.")
>                    ,@%gnu-build-system-modules)
>         #:phases
>         (modify-phases %standard-phases
> +         ;; When building python-pyqtwebengine <qprinter.h> can not be

Comma after python-pyqtwebengine helps with readability.

> +         ;; included. Here we substitute the full path to the header in the

Double-space after period.

> +         ;; store.
> +         (add-before 'configure 'substitute-source
> +           (lambda* (#:key inputs  #:allow-other-keys)
> +             (let* ((qtbase (assoc-ref inputs "qtbase"))
> +                    (qtprinter.h (string-append "\"" qtbase "/include/qt5/QtPrintSupport/qprinter.h\"")))
> +               (substitute* "sip/QtPrintSupport/qprinter.sip"
> +                 (("<qprinter.h>")
> +                  qtprinter.h))
> +               #t)))
>           (replace 'configure
>             (lambda* (#:key inputs outputs #:allow-other-keys)
>               (let* ((out (assoc-ref outputs "out"))
> @@ -1986,6 +1998,91 @@ framework.  The bindings are implemented as a set of Python modules and
>  contain over 620 classes.")
>      (license license:gpl3)))

Please apply the above pyqt change to a separate commit.

> +(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)
> +       ("qtwebengine" ,qtwebengine)
> +       ("python-pyqt" ,python-pyqt)
> +       ("qtwebengine" ,qtwebengine)))

qbwebengine duplicate.

> +    (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)
> +                      "."))

Use version-major+minor from (guix utils) instead?

> +                    (lib (string-append out "/lib/python"
> +                                        python-major+minor
> +                                        "/site-packages/PyQt5"))
> +                    (stubs (string-append lib "/PyQt5")))
> +
> +               (system* "mkdir" "-p" sipdir)

(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 then python-pyqt then we need

"then python-pyqt" -> "than python-pyqt".

> +         ;; to make this a namespace of it's own

Missing period.

-- 
Pierre Neidhardt
https://ambrevar.xyz/