X-Git-Url: https://git.hcoop.net/jackhill/guix/guix.git/blobdiff_plain/de3c03a47160dec355d9b19ad5ca210d90c15fd7..bdb1a3385df8b16ecdbded9142ed12c40b2a5954:/gnu/packages/qt.scm diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm index a596ca4ce6..fb1a3b598e 100644 --- a/gnu/packages/qt.scm +++ b/gnu/packages/qt.scm @@ -1,7 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2013, 2014, 2015 Andreas Enge ;;; Copyright © 2015 Sou Bunnbu -;;; Copyright © 2015, 2018, 2019, 2020 Ludovic Courtès +;;; Copyright © 2015, 2018, 2019, 2020, 2021 Ludovic Courtès ;;; Copyright © 2015, 2016, 2017, 2018, 2019 Efraim Flashner ;;; Copyright © 2016, 2017 Nikita ;;; Copyright © 2016 Thomas Danckaert @@ -20,6 +20,7 @@ ;;; Copyright © 2020 Jonathan Brielmaier ;;; Copyright © 2020 Michael Rohleder ;;; Copyright © 2020 Maxim Cournoyer +;;; Copyright © 2021 Brendan Tildesley ;;; ;;; This file is part of GNU Guix. ;;; @@ -45,6 +46,7 @@ #:use-module (guix build-system gnu) #:use-module (guix build-system trivial) #:use-module (guix build-system python) + #:use-module (guix build-system qt) #:use-module (guix packages) #:use-module (guix deprecation) #:use-module (guix utils) @@ -67,10 +69,12 @@ #:use-module (gnu packages glib) #:use-module (gnu packages gnupg) #:use-module (gnu packages gperf) + #:use-module (gnu packages graphics) #:use-module (gnu packages gstreamer) #:use-module (gnu packages gtk) #:use-module (gnu packages icu4c) #:use-module (gnu packages image) + #:use-module (gnu packages kde-frameworks) #:use-module (gnu packages libevent) #:use-module (gnu packages linux) #:use-module (gnu packages llvm) @@ -85,6 +89,7 @@ #:use-module (gnu packages pulseaudio) #:use-module (gnu packages protobuf) #:use-module (gnu packages python) + #:use-module (gnu packages python-build) #:use-module (gnu packages python-xyz) #:use-module (gnu packages regex) #:use-module (gnu packages ruby) @@ -102,6 +107,142 @@ #:use-module (gnu packages xml) #:use-module (srfi srfi-1)) +(define-public qite + (let ((commit "75fb3b6bbd5c6a5a8fc35e08a6efbfb588ed546a") + (revision "74")) + (package + (name "qite") + (version (git-version "0" revision commit)) + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/Ri0n/qite") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0jmmgy9pvk9hwwph1nwy7hxhczy8drhl4ymhnjjn6yx7bckssvsq")))) + (build-system qt-build-system) + (arguments + `(#:tests? #f ; no target + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'chdir + (lambda _ + (chdir "libqite") + #t))))) + (inputs + `(("qtbase" ,qtbase) + ("qtmultimedia" ,qtmultimedia))) + (home-page "https://github.com/Ri0n/qite/") + (synopsis "Qt Interactive Text Elements") + (description "Qite allows to manage interactive elements on QTextEdit.") + (license license:asl2.0)))) + +(define-public qt5ct + (package + (name "qt5ct") + (version "1.1") + (source + (origin + (method url-fetch) + (uri + (string-append "mirror://sourceforge/qt5ct/qt5ct-" version ".tar.bz2")) + (sha256 + (base32 "1lnx4wqk87lbr6lqc64w5g5ppjjv75kq2r0q0bz9gfpryzdw8xxg")))) + (build-system gnu-build-system) + (arguments + `(#:tests? #f ; No target + #:imported-modules + (,@%gnu-build-system-modules + (guix build cmake-build-system) + (guix build qt-build-system)) + #:modules + ((guix build gnu-build-system) + ((guix build qt-build-system) + #:prefix qt:) + (guix build utils)) + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'patch + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "qt5ct.pro" + (("\\$\\$\\[QT_INSTALL_BINS\\]/lrelease") + (string-append (assoc-ref inputs "qttools") + "/bin/lrelease"))) + #t)) + (replace 'configure + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out"))) + (invoke "qmake" + (string-append "PREFIX=" out) + (string-append "BINDIR=" out "/bin") + (string-append "DATADIR=" out "/share") + (string-append "PLUGINDIR=" out "/lib/qt5/plugins"))) + #t)) + (add-after 'install 'qt-wrap + (assoc-ref qt:%standard-phases 'qt-wrap))))) + (native-inputs + `(("qttools" ,qttools))) + (inputs + `(("qtbase" ,qtbase) + ("qtsvg" ,qtsvg))) + (synopsis "Qt5 Configuration Tool") + (description "Qt5CT is a program that allows users to configure Qt5 +settings (such as icons, themes, and fonts) in desktop environments or +window managers, that don't provide Qt integration by themselves.") + (home-page "https://qt5ct.sourceforge.io/") + (license license:bsd-2))) + +(define-public materialdecoration + (let ((commit "6a5de23f2e5162fbee39d16f938473ff970a2ec0") + (revision "9")) + (package + (name "materialdecoration") + (version + (git-version "1.1.0" revision commit)) + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/lirios/materialdecoration.git") + (commit commit))) + (file-name + (git-file-name name version)) + (sha256 + (base32 "1zdrcb39fhhmn76w8anv1dnspz26pdl6izmj1mlm02aza4y8ffp4")) + (modules '((guix build utils) + (ice-9 ftw) + (srfi srfi-1))) + (snippet + `(begin + (delete-file-recursively "cmake/3rdparty"))))) + (build-system qt-build-system) + (arguments + `(#:tests? #f ; No target + #:configure-flags + (list + (string-append "-DCMAKE_CXX_FLAGS=-I" + (assoc-ref %build-inputs "qtbase") + "/include/qt5/QtXkbCommonSupport/" + ,(package-version qtbase))))) + (native-inputs + `(("cmake-shared" ,cmake-shared) + ("extra-cmake-modules" ,extra-cmake-modules) + ("pkg-config" ,pkg-config))) + (inputs + `(("qtbase" ,qtbase) + ("qtwayland" ,qtwayland) + ("wayland" ,wayland) + ("xkbcommon" ,libxkbcommon))) + (synopsis "Material Decoration for Qt") + (description "MaterialDecoration is a client-side decoration for Qt +applications on Wayland.") + (home-page "https://github.com/lirios/materialdecoration") + (license license:lgpl3+)))) + (define-public grantlee (package (name "grantlee") @@ -138,229 +279,38 @@ other text such as code. The syntax uses the syntax of the Django template system, and the core design of Django is reused in Grantlee.") (license license:lgpl2.1+))) -(define-public qt-4 - (package - (name "qt") - (version "4.8.7") - (source (origin - (method url-fetch) - (uri (string-append "http://download.qt-project.org/archive/qt/" - (string-copy version 0 (string-rindex version #\.)) - "/" version - "/qt-everywhere-opensource-src-" - version ".tar.gz")) - (sha256 - (base32 - "183fca7n7439nlhxyg1z7aky0izgbyll3iwakw4gwivy16aj5272")) - (patches (search-patches "qt4-ldflags.patch")) - (modules '((guix build utils))) - (snippet - ;; Remove webkit module, which is not built. - '(begin (delete-file-recursively "src/3rdparty/webkit") - #t)))) - (build-system gnu-build-system) - (propagated-inputs - `(("mesa" ,mesa))) - (inputs - `(("alsa-lib" ,alsa-lib) - ("bluez" ,bluez) - ("cups" ,cups) - ("dbus" ,dbus) - ("double-conversion" ,double-conversion) - ("expat" ,expat) - ("fontconfig" ,fontconfig) - ("freetype" ,freetype) - ("glib" ,glib) - ("gstreamer" ,gstreamer) - ("gst-plugins-base" ,gst-plugins-base) - ("icu4c" ,icu4c) - ("jasper" ,jasper) - ("libinput" ,libinput-minimal) - ("libmng" ,libmng) - ("libpci" ,pciutils) - ("libpng" ,libpng) - ("libtiff" ,libtiff) - ("libwebp" ,libwebp) - ("libx11" ,libx11) - ("libxcomposite" ,libxcomposite) - ("libxcursor" ,libxcursor) - ("libxext" ,libxext) - ("libxfixes" ,libxfixes) - ("libxi" ,libxi) - ("libxinerama" ,libxinerama) - ("libxkbcommon" ,libxkbcommon) - ("libxml2" ,libxml2) - ("libxrandr" ,libxrandr) - ("libxrender" ,libxrender) - ("libxslt" ,libxslt) - ("libxtst" ,libxtst) - ("mtdev" ,mtdev) - ("mariadb" ,mariadb "lib") - ("mariadb-dev" ,mariadb "dev") - ("nss" ,nss) - ("postgresql" ,postgresql) - ("pulseaudio" ,pulseaudio) - ("pcre2" ,pcre2) - ("sqlite" ,sqlite) - ("udev" ,eudev) - ("unixodbc" ,unixodbc) - ("wayland" ,wayland) - ("xcb-util" ,xcb-util) - ("xcb-util-image" ,xcb-util-image) - ("xcb-util-keysyms" ,xcb-util-keysyms) - ("xcb-util-renderutil" ,xcb-util-renderutil) - ("xcb-util-wm" ,xcb-util-wm) - ("zlib" ,zlib) - ("libjpeg" ,libjpeg-turbo) - ("libsm" ,libsm) - ("openssl" ,openssl-1.0))) - (native-inputs - `(;; XXX: The JavaScriptCore engine does not build with the C++11 standard. - ;; We could build it with -std=gnu++98, but then we'll get in trouble with - ;; ICU later. Just keep using GCC 5 for now. - ("gcc@5" ,gcc-5) - ("bison" ,bison) - ("flex" ,flex) - ("gperf" ,gperf) - ("perl" ,perl) - ("pkg-config" ,pkg-config) - ("python" ,python-2) - ("ruby" ,ruby) - ("which" ,(@ (gnu packages base) which)))) - ;; Note: there are 37 MiB of examples and a '-exampledir' configure flags, - ;; but we can't make them a separate output because "out" and "examples" - ;; would refer to each other. - (outputs '("out" ;112MiB core + 37MiB examples - "doc")) ;280MiB of HTML + code - (arguments - `(#:phases - (modify-phases %standard-phases - (add-after 'set-paths 'hide-default-gcc - (lambda* (#:key inputs #:allow-other-keys) - (let ((gcc (assoc-ref inputs "gcc"))) - ;; Remove the default GCC from CPLUS_INCLUDE_PATH to prevent - ;; conflicts with the GCC 5 input. - (setenv "CPLUS_INCLUDE_PATH" - (string-join - (delete (string-append gcc "/include/c++") - (string-split (getenv "CPLUS_INCLUDE_PATH") #\:)) - ":")) - #t))) - (replace - 'configure - (lambda* (#:key outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out")) - (doc (assoc-ref outputs "doc"))) - (substitute* '("configure") - (("/bin/pwd") (which "pwd"))) - (substitute* "src/corelib/global/global.pri" - (("/bin/ls") (which "ls"))) - - (invoke - "./configure" - "-verbose" - "-prefix" out - "-nomake" "examples demos" - ;; Note: Don't pass '-docdir' since 'qmake' and - ;; libQtCore would record its value, thereby defeating - ;; the whole point of having a separate output. - "-datadir" (string-append out "/share/qt-" ,version - "/data") - "-importdir" (string-append out "/lib/qt-4" - "/imports") - "-plugindir" (string-append out "/lib/qt-4" - "/plugins") - "-translationdir" (string-append out "/share/qt-" ,version - "/translations") - "-demosdir" (string-append out "/share/qt-" ,version - "/demos") - "-examplesdir" (string-append out "/share/qt-" ,version - "/examples") - "-opensource" - "-confirm-license" - ;; explicitly link with dbus instead of dlopening it - "-dbus-linked" - ;; Skip the webkit module; it fails to build on armhf - ;; and, apart from that, may pose security risks. - "-no-webkit" - ;; don't use the precompiled headers - "-no-pch" - ;; drop special machine instructions not supported - ;; on all instances of the target - ,@(if (string-prefix? "x86_64" - (or (%current-target-system) - (%current-system))) - '() - '("-no-mmx" - "-no-3dnow" - "-no-sse" - "-no-sse2")) - "-no-sse3" - "-no-ssse3" - "-no-sse4.1" - "-no-sse4.2" - "-no-avx")))) - (add-after - 'install 'move-doc - (lambda* (#:key outputs #:allow-other-keys) - ;; Because of qt4-documentation-path.patch, documentation ends up - ;; being installed in OUT. Move it to the right place. - (let* ((out (assoc-ref outputs "out")) - (doc (assoc-ref outputs "doc")) - (olddoc (string-append out "/doc")) - (docdir (string-append doc "/share/doc/qt-" ,version))) - (mkdir-p (dirname docdir)) - - ;; Note: We can't use 'rename-file' here because OUT and DOC are - ;; different "devices" due to bind-mounts. - (copy-recursively olddoc docdir) - (delete-file-recursively olddoc) - #t)))))) - (native-search-paths - (list (search-path-specification - (variable "QMAKEPATH") - (files '("lib/qt5"))) - (search-path-specification - (variable "QML2_IMPORT_PATH") - (files '("lib/qt5/qml"))) - (search-path-specification - (variable "QT_PLUGIN_PATH") - (files '("lib/qt5/plugins"))) - (search-path-specification - (variable "XDG_DATA_DIRS") - (files '("share"))) - (search-path-specification - (variable "XDG_CONFIG_DIRS") - (files '("etc/xdg"))))) - (home-page "https://www.qt.io/") - (synopsis "Cross-platform GUI library") - (description "Qt is a cross-platform application and UI framework for -developers using C++ or QML, a CSS & JavaScript like language.") - (license (list license:lgpl2.1 license:lgpl3)) - - ;; Qt 4: 'QBasicAtomicPointer' leads to build failures on MIPS; - ;; see . - ;; Qt 5: assembler error; see . - (supported-systems (delete "mips64el-linux" %supported-systems)))) +(define (qt5-urls component version) + "Return a list of URLs for VERSION of the Qt5 COMPONENT." + ;; We can't use a mirror:// scheme because these URLs are not exact copies: + ;; the layout differs between them. + (list (string-append "https://download.qt.io/official_releases/qt/" + (version-major+minor version) "/" version + "/submodules/" component "-everywhere-src-" + version ".tar.xz") + (string-append "https://download.qt.io/archive/qt/" + (version-major+minor version) "/" version + "/submodules/" component "-everywhere-src-" + version ".tar.xz") + (let ((directory (string-append "qt5" (string-drop component 2)))) + (string-append "http://sources.buildroot.net/" directory "/" + component "-everywhere-src-" version ".tar.xz")) + (string-append "https://distfiles.macports.org/qt5/" + component "-everywhere-src-" version ".tar.xz"))) (define-public qtbase (package (name "qtbase") - (version "5.14.2") + (version "5.15.2") (source (origin (method url-fetch) - (uri (string-append "https://download.qt.io/official_releases/qt/" - (version-major+minor version) "/" version - "/submodules/" name "-everywhere-src-" - version ".tar.xz")) + (uri (qt5-urls name version)) (sha256 (base32 - "12mjsahlma9rw3vz9a6b5h2s6ylg8b34hxc2vnlna5ll429fgfa8")) + "1y70libf2x52lpbqvhz10lpk7nyl1ajjwzjxly9pjdpfj4jsv7wh")) ;; Use TZDIR to avoid depending on package "tzdata". (patches (search-patches "qtbase-use-TZDIR.patch" "qtbase-moc-ignore-gcc-macro.patch" - "qtbase-absolute-runpath.patch" - "qtbase-fix-krita-deadlock.patch")) + "qtbase-absolute-runpath.patch")) (modules '((guix build utils))) (snippet ;; corelib uses bundled harfbuzz, md4, md5, sha3 @@ -406,7 +356,6 @@ developers using C++ or QML, a CSS & JavaScript like language.") ("libxslt" ,libxslt) ("libxtst" ,libxtst) ("mtdev" ,mtdev) - ("mariadb" ,mariadb "lib") ("mariadb-dev" ,mariadb "dev") ("nss" ,nss) ("openssl" ,openssl) @@ -609,16 +558,13 @@ developers using C++ or QML, a CSS & JavaScript like language.") (define-public qtsvg (package (inherit qtbase) (name "qtsvg") - (version "5.14.2") + (version "5.15.2") (source (origin (method url-fetch) - (uri (string-append "https://download.qt.io/official_releases/qt/" - (version-major+minor version) "/" version - "/submodules/" name "-everywhere-src-" - version ".tar.xz")) + (uri (qt5-urls name version)) (sha256 (base32 - "18dmfc8s428fzbk7k5vl3212b25455ayrz7s716nwyiy3ahgmmy7")))) + "0pjqrdmd1991x9h4rl8sf81pkd89hfd5h1a2gp3fjw96pk0w5hwb")))) (propagated-inputs `()) (native-inputs `(("perl" ,perl))) (inputs @@ -684,16 +630,13 @@ HostData=lib/qt5 (define-public qtimageformats (package (inherit qtsvg) (name "qtimageformats") - (version "5.14.2") + (version "5.15.2") (source (origin (method url-fetch) - (uri (string-append "https://download.qt.io/official_releases/qt/" - (version-major+minor version) "/" version - "/submodules/" name "-everywhere-src-" - version ".tar.xz")) + (uri (qt5-urls name version)) (sha256 (base32 - "132g4rlm61pdcpcrclr1rwpbrxn7va4wjfb021mh8pn1cl0wlgkk")) + "1msk8a0z8rr16hkp2fnv668vf6wayiydqgc2mcklaa04rv3qb0mz")) (modules '((guix build utils))) (snippet '(begin @@ -725,16 +668,13 @@ support for MNG, TGA, TIFF and WBMP image formats."))) (define-public qtx11extras (package (inherit qtsvg) (name "qtx11extras") - (version "5.14.2") + (version "5.15.2") (source (origin (method url-fetch) - (uri (string-append "https://download.qt.io/official_releases/qt/" - (version-major+minor version) "/" version - "/submodules/" name "-everywhere-src-" - version ".tar.xz")) + (uri (qt5-urls name version)) (sha256 (base32 - "0njlh6d327nll7d8qaqrwr5x15m9yzgyar2j45qigs1f7ah896my")))) + "0gkfzj195v9flwljnqpdz3a532618yn4h2577nlsai56x4p7053h")))) (arguments (substitute-keyword-arguments (package-arguments qtsvg) ((#:tests? _ #f) #f))) ; TODO: Enable the tests @@ -749,16 +689,13 @@ from within Qt 5."))) (define-public qtxmlpatterns (package (inherit qtsvg) (name "qtxmlpatterns") - (version "5.14.2") + (version "5.15.2") (source (origin (method url-fetch) - (uri (string-append "https://download.qt.io/official_releases/qt/" - (version-major+minor version) "/" version - "/submodules/" name "-everywhere-src-" - version ".tar.xz")) + (uri (qt5-urls name version)) (sha256 (base32 - "1dyg1z4349k04yyzn8xbp4f5qjgm60gz6wgzp80khpilcmk8g6i1")))) + "1ypj5jpa31rlx8yfw3y9jia212lfnxvnqkvygs6ihjf3lxi23skn")))) (arguments (substitute-keyword-arguments (package-arguments qtsvg) ((#:tests? _ #f) #f) ; TODO: Enable the tests @@ -780,16 +717,13 @@ xmlpatternsvalidator."))) (define-public qtdeclarative (package (inherit qtsvg) (name "qtdeclarative") - (version "5.14.2") + (version "5.15.2") (source (origin (method url-fetch) - (uri (string-append "https://download.qt.io/official_releases/qt/" - (version-major+minor version) "/" version - "/submodules/" name "-everywhere-src-" - version ".tar.xz")) + (uri (qt5-urls name version)) (sha256 (base32 - "0l0nhc2si6dl9r4s1bs45z90qqigs8jnrsyjjdy38q4pvix63i53")))) + "0lancdn7y0lrlmyn5cbdm0izd5yprvd5n77nhkb7a3wl2sbx0066")))) (arguments (substitute-keyword-arguments (package-arguments qtsvg) ((#:tests? _ #f) #f) ;TODO: Enable the tests @@ -824,16 +758,13 @@ with JavaScript and C++."))) (define-public qtconnectivity (package (inherit qtsvg) (name "qtconnectivity") - (version "5.14.2") + (version "5.15.2") (source (origin (method url-fetch) - (uri (string-append "https://download.qt.io/official_releases/qt/" - (version-major+minor version) "/" version - "/submodules/" name "-everywhere-src-" - version ".tar.xz")) + (uri (qt5-urls name version)) (sha256 (base32 - "0a5wzin635b926b8prdwfazgy1vhyf8m6an64wp2lpkp78z7prmb")))) + "185zci61ip1wpjrygcw2m6v55lvninc0b8y2p3jh6qgpf5w35003")))) (native-inputs `(("perl" ,perl) ("pkg-config" ,pkg-config) @@ -848,16 +779,13 @@ with Bluetooth and NFC."))) (define-public qtwebsockets (package (inherit qtsvg) (name "qtwebsockets") - (version "5.14.2") + (version "5.15.2") (source (origin (method url-fetch) - (uri (string-append "https://download.qt.io/official_releases/qt/" - (version-major+minor version) "/" version - "/submodules/" name "-everywhere-src-" - version ".tar.xz")) + (uri (qt5-urls name version)) (sha256 (base32 - "116amx4mnv50k0fpswgpr5x8wjny8nbffrjmld01pzhkhfqn4vph")))) + "0gr399fn5n8j3m9d3vv01vcbr1cb7pw043j04cnnxzrlvn2jvd50")))) (arguments (substitute-keyword-arguments (package-arguments qtsvg) ((#:tests? _ #f) #f))) ; TODO: Enable the tests @@ -875,16 +803,13 @@ consume data received from the server, or both."))) (define-public qtsensors (package (inherit qtsvg) (name "qtsensors") - (version "5.14.2") + (version "5.15.2") (source (origin (method url-fetch) - (uri (string-append "https://download.qt.io/official_releases/qt/" - (version-major+minor version) "/" version - "/submodules/" name "-everywhere-src-" - version ".tar.xz")) + (uri (qt5-urls name version)) (sha256 (base32 - "0qccpgbhyg9k4x5nni7xm0pyvaqia3zrcd42cn7ksf5h21lwmkxw")))) + "0fa81r7bn1mf9ynwsx524a55dx1q0jb4vda6j48ssb4lx7wi201z")))) (arguments (substitute-keyword-arguments (package-arguments qtsvg) ((#:parallel-tests? _ #f) #f) ; can lead to race condition @@ -908,16 +833,13 @@ recognition API for devices."))) (define-public qtmultimedia (package (inherit qtsvg) (name "qtmultimedia") - (version "5.14.2") + (version "5.15.2") (source (origin (method url-fetch) - (uri (string-append "https://download.qt.io/official_releases/qt/" - (version-major+minor version) "/" version - "/submodules/" name "-everywhere-src-" - version ".tar.xz")) + (uri (qt5-urls name version)) (sha256 (base32 - "1sczzcvk3c5gczz53yvp8ma6gp8aixk5pcq7wh344c9md3g8xkbs")) + "1xbd6kc7i0iablqdkvfrajpi32cbq7j6ajbfyyyalcai1s0mhdqc")) (modules '((guix build utils))) (snippet '(begin @@ -959,22 +881,13 @@ set of plugins for interacting with pulseaudio and GStreamer."))) (define-public qtwayland (package (inherit qtsvg) (name "qtwayland") - (version "5.14.2") + (version "5.15.2") (source (origin (method url-fetch) - (uri (string-append "https://download.qt.io/official_releases/qt/" - (version-major+minor version) "/" version - "/submodules/" name "-everywhere-src-" - version ".tar.xz")) + (uri (qt5-urls name version)) (sha256 (base32 - "0al3yypy3fin62n8d1859jh0mn0fbpa161l7f37hgd4gf75365nk")) - (modules '((guix build utils))) - (snippet - ;; The examples try to build and cause the build to fail - '(begin - (delete-file-recursively "examples") - #t)))) + "1ddfx4nak16xx0zh1kl836zxvpbixmmjyplsmfmg65pqkwi34dqr")))) (arguments (substitute-keyword-arguments (package-arguments qtsvg) ((#:phases phases) @@ -1011,6 +924,7 @@ set of plugins for interacting with pulseaudio and GStreamer."))) ("mesa" ,mesa) ("mtdev" ,mtdev) ("qtbase" ,qtbase) + ("vulkan-headers" ,vulkan-headers) ("wayland" ,wayland))) (synopsis "Qt Wayland module") (description "The Qt Wayland module provides the QtWayland client and @@ -1019,16 +933,13 @@ compositor libraries."))) (define-public qtserialport (package (inherit qtsvg) (name "qtserialport") - (version "5.14.2") + (version "5.15.2") (source (origin (method url-fetch) - (uri (string-append "https://download.qt.io/official_releases/qt/" - (version-major+minor version) "/" version - "/submodules/" name "-everywhere-src-" - version ".tar.xz")) + (uri (qt5-urls name version)) (sha256 (base32 - "08ga9a1lwj83872nxablk602z1dq0la6jqsiicvd7m1sfbfpgnd6")))) + "17gp5qzg4wdg8qlxk2p3mh8x1vk33rf33wic3fy0cws193bmkiar")))) (native-inputs `(("perl" ,perl))) (inputs `(("qtbase" ,qtbase) @@ -1053,16 +964,13 @@ interacting with serial ports from within Qt."))) (define-public qtserialbus (package (inherit qtsvg) (name "qtserialbus") - (version "5.14.2") + (version "5.15.2") (source (origin (method url-fetch) - (uri (string-append "https://download.qt.io/official_releases/qt/" - (version-major+minor version) "/" version - "/submodules/" name "-everywhere-src-" - version ".tar.xz")) + (uri (qt5-urls name version)) (sha256 (base32 - "14bahg82jciciqkl74q9hvf3a8kp3pk5v731vp2416k4b8bn4xqb")))) + "125x6756fjpldqy6wbw6cg7ngjh2016aiq92bchh719z1mf7xsxf")))) (arguments (substitute-keyword-arguments (package-arguments qtsvg) ((#:phases phases '%standard-phases) @@ -1088,16 +996,13 @@ and others."))) (define-public qtwebchannel (package (inherit qtsvg) (name "qtwebchannel") - (version "5.14.2") + (version "5.15.2") (source (origin (method url-fetch) - (uri (string-append "https://download.qt.io/official_releases/qt/" - (version-major+minor version) "/" version - "/submodules/" name "-everywhere-src-" - version ".tar.xz")) + (uri (qt5-urls name version)) (sha256 (base32 - "0x7q66994pw6cd0f505bmirw1sssqs740zaw8lyqqqr32m2ch7bx")))) + "1h9y634phvvk557mhmf9z4lmxr41rl8x9mqy2lzp31mk8ffffzqj")))) (native-inputs `(("perl" ,perl) ("qtdeclarative" ,qtdeclarative) @@ -1112,16 +1017,13 @@ popular web engines, Qt WebKit 2 and Qt WebEngine."))) (define-public qtwebglplugin (package (inherit qtsvg) (name "qtwebglplugin") - (version "5.14.2") + (version "5.15.2") (source (origin (method url-fetch) - (uri (string-append "https://download.qt.io/official_releases/qt/" - (version-major+minor version) "/" version - "/submodules/" name "-everywhere-src-" - version ".tar.xz")) + (uri (qt5-urls name version)) (sha256 (base32 - "05rl657848fsprsnabdqb5z363c6drjc32k59223vl351f8ihhgb")))) + "0ihlnhv8ldkqz82v3j7j22lrhk17b6ghra8sx85y2agd2ysq5rw1")))) (arguments (substitute-keyword-arguments (package-arguments qtsvg) ((#:phases phases) @@ -1148,16 +1050,13 @@ OpenGL ES 2.0 and can be used in HTML5 canvas elements"))) (define-public qtwebview (package (inherit qtsvg) (name "qtwebview") - (version "5.14.2") + (version "5.15.2") (source (origin (method url-fetch) - (uri (string-append "https://download.qt.io/official_releases/qt/" - (version-major+minor version) "/" version - "/submodules/" name "-everywhere-src-" - version ".tar.xz")) + (uri (qt5-urls name version)) (sha256 (base32 - "0jzzcm7z5njkddzfhmyjz4dbbzq8h93980cci4479zc4xq9r47y6")))) + "1rw1wibmbxlj6xc86qs3y8h42al1vczqiksyxzaylxs9gqb4d7xy")))) (native-inputs `(("perl" ,perl))) (inputs @@ -1171,7 +1070,7 @@ native APIs where it makes sense."))) (define-public qtlocation (package (inherit qtsvg) (name "qtlocation") - (version "5.14.2") + (version "5.15.2") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" @@ -1180,7 +1079,7 @@ native APIs where it makes sense."))) version ".tar.xz")) (sha256 (base32 - "1k3m8zhbv04yrqvj7jlnh8f9xczdsmla59j9gcwsqvbg76y0hxy3")))) + "184jychnlfhplpwc5cdcsapwljgwvzk5qpf3val4kpq8w44wnkwq")))) (arguments (substitute-keyword-arguments (package-arguments qtsvg) ((#:tests? _ #f) #f))) ; TODO: Enable the tests @@ -1201,16 +1100,13 @@ positioning and geolocation plugins."))) (define-public qttools (package (inherit qtsvg) (name "qttools") - (version "5.14.2") + (version "5.15.2") (source (origin (method url-fetch) - (uri (string-append "https://download.qt.io/official_releases/qt/" - (version-major+minor version) "/" version - "/submodules/" name "-everywhere-src-" - version ".tar.xz")) + (uri (qt5-urls name version)) (sha256 (base32 - "1iakl3hlyg51ri1czmis8mmb257b0y1zk2a2knybd3mq69wczc2v")))) + "1k618f7v6jaj0ygy8d7jvgb8zjr47sn55kiskbdkkizp3z7d12f1")))) (arguments (substitute-keyword-arguments (package-arguments qtsvg) ((#:tests? _ #f) #f))) ; TODO: Enable the tests @@ -1229,16 +1125,13 @@ that helps in Qt development."))) (define-public qtscript (package (inherit qtsvg) (name "qtscript") - (version "5.14.2") + (version "5.15.2") (source (origin (method url-fetch) - (uri (string-append "https://download.qt.io/official_releases/qt/" - (version-major+minor version) "/" version - "/submodules/" name "-everywhere-src-" - version ".tar.xz")) + (uri (qt5-urls name version)) (sha256 (base32 - "1zlvg3hc6h70d789g3kv6dxbwswzkskkm00bdgl01grwrdy4izg9")) + "0gk74hk488k9ldacxbxcranr3arf8ifqg8kz9nm1rgdgd59p36d2")) (patches (search-patches "qtscript-disable-tests.patch")))) (native-inputs `(("perl" ,perl) @@ -1253,16 +1146,13 @@ ECMAScript and Qt."))) (define-public qtquickcontrols (package (inherit qtsvg) (name "qtquickcontrols") - (version "5.14.2") + (version "5.15.2") (source (origin (method url-fetch) - (uri (string-append "https://download.qt.io/official_releases/qt/" - (version-major+minor version) "/" version - "/submodules/" name "-everywhere-src-" - version ".tar.xz")) + (uri (qt5-urls name version)) (sha256 (base32 - "0qa4dlhn3iv9yvaic8hw86v6h8rn9sgq8xjfdaym04pfshfyypfm")))) + "1dczakl868mg0lnwpf082jjc5976ycn879li1vqlgw5ihirzp4y3")))) (arguments (substitute-keyword-arguments (package-arguments qtsvg) ((#:tests? _ #f) #f))) ; TODO: Enable the tests @@ -1277,16 +1167,13 @@ can be used to build complete interfaces in Qt Quick."))) (define-public qtquickcontrols2 (package (inherit qtsvg) (name "qtquickcontrols2") - (version "5.14.2") + (version "5.15.2") (source (origin (method url-fetch) - (uri (string-append "https://download.qt.io/official_releases/qt/" - (version-major+minor version) "/" version - "/submodules/" name "-everywhere-src-" - version ".tar.xz")) + (uri (qt5-urls name version)) (sha256 (base32 - "0q0mk2mjlf9ll0gdrdzxy8096s6g9draaqiwrlvdpa7lv14x7xzs")))) + "06c9vrwvbjmzapmfa25y34lgjkzg57xxbm92nr6wkv5qykjnq6v7")))) (arguments (substitute-keyword-arguments (package-arguments qtsvg) ((#:tests? _ #f) #f))) ; TODO: Enable the tests @@ -1302,16 +1189,13 @@ not available."))) (define-public qtgraphicaleffects (package (inherit qtsvg) (name "qtgraphicaleffects") - (version "5.14.2") + (version "5.15.2") (source (origin (method url-fetch) - (uri (string-append "https://download.qt.io/official_releases/qt/" - (version-major+minor version) "/" version - "/submodules/" name "-everywhere-src-" - version ".tar.xz")) + (uri (qt5-urls name version)) (sha256 (base32 - "03xmwhapv0b2qj661iaqqrvhxc7qiid0acrp6rj85824ha2pyyj8")))) + "1r6zfc0qga2ax155js7c8y5rx6vgayf582s921j09mb797v6g3gc")))) (arguments (substitute-keyword-arguments (package-arguments qtsvg) ((#:tests? _ #f) #f))) ; TODO: Enable the tests @@ -1329,16 +1213,13 @@ coloring, and many more."))) (define-public qtgamepad (package (inherit qtsvg) (name "qtgamepad") - (version "5.14.2") + (version "5.15.2") (source (origin (method url-fetch) - (uri (string-append "https://download.qt.io/official_releases/qt/" - (version-major+minor version) "/" version - "/submodules/" name "-everywhere-src-" - version ".tar.xz")) + (uri (qt5-urls name version)) (sha256 (base32 - "00wd3h465waxdghg2vdhs5pkj0xikwjn88l12477dksm8zdslzgp")))) + "0p07bg93fdfn4gr2kv38qgnws5znhswajrxdfs8xc9l3i7vi2xn7")))) (native-inputs `(("perl" ,perl) ("pkg-config" ,pkg-config))) @@ -1359,16 +1240,13 @@ and mobile applications targeting TV-like form factors."))) (define-public qtscxml (package (inherit qtsvg) (name "qtscxml") - (version "5.14.2") + (version "5.15.2") (source (origin (method url-fetch) - (uri (string-append "https://download.qt.io/official_releases/qt/" - (version-major+minor version) "/" version - "/submodules/" name "-everywhere-src-" - version ".tar.xz")) + (uri (qt5-urls name version)) (sha256 (base32 - "141pfschv6zmcvvn3pi7f5vb4nf96zpngy80f9bly1sn58syl303")) + "1p5771b9hnpchfcdgy0zkhwg09a6xq88934aggp0rij1k85mkfb0")) (modules '((guix build utils))) (snippet '(begin @@ -1390,16 +1268,13 @@ also contains functionality to support data models and executable content."))) (define-public qtpurchasing (package (inherit qtsvg) (name "qtpurchasing") - (version "5.14.2") + (version "5.15.2") (source (origin (method url-fetch) - (uri (string-append "https://download.qt.io/official_releases/qt/" - (version-major+minor version) "/" version - "/submodules/" name "-everywhere-src-" - version ".tar.xz")) + (uri (qt5-urls name version)) (sha256 (base32 - "0lg8x7g7dkf95xwxq8b4yw4ypdz68igkscya96xwbklg3q08gc39")))) + "09rjx53519dfk4qj2gbn3vlxyriasyb747wpg1p11y7jkwqhs4l7")))) (inputs `(("qtbase" ,qtbase) ("qtdeclarative" ,qtdeclarative))) @@ -1410,16 +1285,13 @@ purchasing goods and services."))) (define-public qtcharts (package (inherit qtsvg) (name "qtcharts") - (version "5.14.2") + (version "5.15.2") (source (origin (method url-fetch) - (uri (string-append "https://download.qt.io/official_releases/qt/" - (version-major+minor version) "/" version - "/submodules/" name "-everywhere-src-" - version ".tar.xz")) + (uri (qt5-urls name version)) (sha256 (base32 - "1drvm15i6n10b6a1acgarig120ppvqh3r6fqqdn8i3blx81m5cmd")))) + "049x7z8zcp9jixmdv2fjscy2ggpd6za9hkdbb2bqp2mxjm0hwxg0")))) (arguments (substitute-keyword-arguments (package-arguments qtsvg) ((#:tests? _ #f) #f))) ; TODO: Enable the tests @@ -1437,16 +1309,13 @@ selecting one of the charts themes.") (define-public qtdatavis3d (package (inherit qtsvg) (name "qtdatavis3d") - (version "5.14.2") + (version "5.15.2") (source (origin (method url-fetch) - (uri (string-append "https://download.qt.io/official_releases/qt/" - (version-major+minor version) "/" version - "/submodules/" name "-everywhere-src-" - version ".tar.xz")) + (uri (qt5-urls name version)) (sha256 (base32 - "080fkpxg70m3c697wfnkjhca58b7r1xsqd559jzb21985pdh6g3j")))) + "1zdn3vm0nfy9ny7c783aabp3mhlnqhi9fw2rljn7ibbksmsnasi2")))) (arguments (substitute-keyword-arguments (package-arguments qtsvg) ((#:tests? _ #f) #f))) ; TODO: Enable the tests @@ -1464,16 +1333,13 @@ customized by using themes or by adding custom items and labels to them.") (define-public qtnetworkauth (package (inherit qtsvg) (name "qtnetworkauth") - (version "5.14.2") + (version "5.15.2") (source (origin (method url-fetch) - (uri (string-append "https://download.qt.io/official_releases/qt/" - (version-major+minor version) "/" version - "/submodules/" name "-everywhere-src-" - version ".tar.xz")) + (uri (qt5-urls name version)) (sha256 (base32 - "0pi6p7bq54kzij2p69cgib7n55k69jsq0yqq09yli645s4ym202g")))) + "11fdgacv4syr8bff2vdw7rb0dg1gcqpdf37hm3pn31d6z91frhpw")))) (arguments (substitute-keyword-arguments (package-arguments qtsvg) ((#:phases phases) @@ -1493,16 +1359,13 @@ implementation of OAuth and OAuth2 authenticathon methods for Qt."))) (define-public qtremoteobjects (package (inherit qtsvg) (name "qtremoteobjects") - (version "5.14.2") + (version "5.15.2") (source (origin (method url-fetch) - (uri (string-append "https://download.qt.io/official_releases/qt/" - (version-major+minor version) "/" version - "/submodules/" name "-everywhere-src-" - version ".tar.xz")) + (uri (qt5-urls name version)) (sha256 (base32 - "1mhlws5w0igf5hw0l90p6dz6k7w16dqfbnk2li0zxdmayk2039m6")))) + "1hngbp0vkr35rpsrac7b9vx6f360v8v2g0fffzm590l8j2ybd0b7")))) (arguments (substitute-keyword-arguments (package-arguments qtsvg) ((#:phases phases) @@ -1530,16 +1393,13 @@ processes or computers."))) (define-public qtspeech (package (inherit qtsvg) (name "qtspeech") - (version "5.14.2") + (version "5.15.2") (source (origin (method url-fetch) - (uri (string-append "https://download.qt.io/official_releases/qt/" - (version-major+minor version) "/" version - "/submodules/" name "-everywhere-src-" - version ".tar.xz")) + (uri (qt5-urls name version)) (sha256 (base32 - "1nn6kspbp8hfkz1jhzc1qx1m9z7r1bgkdqgi9n4vl1q25yk8x7jy")))) + "1xc3x3ghnhgchsg1kgj156yg69wn4rwjx8r28i1jd05hxjggn468")))) (arguments (substitute-keyword-arguments (package-arguments qtsvg) @@ -1568,7 +1428,7 @@ message."))) (origin (method git-fetch) (uri (git-reference - (url "https://github.com/manisandro/qtspell.git") + (url "https://github.com/manisandro/qtspell") (commit version))) (file-name (git-file-name name version)) (sha256 @@ -1598,13 +1458,10 @@ using the Enchant spell-checking library.") (source (origin (method url-fetch) - (uri (string-append "https://download.qt.io/official_releases/qt/" - (version-major+minor version) "/" version - "/submodules/" name "-everywhere-src-" - version ".tar.xz")) + (uri (qt5-urls name version)) (sha256 (base32 - "0iy9lsl6zxlkca6x2p1506hbj3wmhnaipg23z027wfccbnkxcsg1")) + "1q4idxdm81sx102xc12ixj0xpfx52d6vwvs3jpapnkyq8c7cmby8")) (modules '((ice-9 ftw) (ice-9 match) (srfi srfi-1) @@ -1613,8 +1470,9 @@ using the Enchant spell-checking library.") (snippet '(begin (let ((preserved-third-party-files - '("base/third_party/cityhash" - "base/third_party/dmg_fp" + '("base/third_party/double_conversion" + "base/third_party/cityhash" + "base/third_party/cityhash_v103" "base/third_party/dynamic_annotations" "base/third_party/icu" "base/third_party/libevent" @@ -1637,19 +1495,26 @@ using the Enchant spell-checking library.") "third_party/blink" "third_party/boringssl" "third_party/boringssl/src/third_party/fiat" - "third_party/boringssl/src/third_party/sike" - "third_party/boringssl/linux-x86_64/crypto/third_party/sike" - "third_party/boringssl/linux-aarch64/crypto/third_party/sike" "third_party/breakpad" "third_party/brotli" "third_party/ced" "third_party/cld_3" + "third_party/closure_compiler" + "third_party/crashpad" + "third_party/crashpad/crashpad/third_party/lss" + "third_party/crashpad/crashpad/third_party/zlib" "third_party/crc32c" "third_party/dav1d" "third_party/dawn" + "third_party/devtools-frontend" + "third_party/devtools-frontend/src/front_end/third_party/fabricjs" + "third_party/devtools-frontend/src/front_end/third_party/lighthouse" + "third_party/devtools-frontend/src/front_end/third_party/wasmparser" + "third_party/devtools-frontend/src/third_party/axe-core" "third_party/emoji-segmenter" "third_party/ffmpeg" "third_party/googletest" + "third_party/harfbuzz-ng/utils" "third_party/hunspell" "third_party/iccjpeg" "third_party/icu" @@ -1660,8 +1525,9 @@ using the Enchant spell-checking library.") "third_party/khronos" "third_party/leveldatabase" "third_party/libaddressinput" + "third_party/libgifcodec" "third_party/libjingle_xmpp" - "third_party/libjpeg" + "third_party/libjpeg_turbo" "third_party/libpng" "third_party/libsrtp" "third_party/libsync" @@ -1673,6 +1539,7 @@ using the Enchant spell-checking library.") "third_party/libxslt" "third_party/libyuv" "third_party/lss" + "third_party/mako" "third_party/markupsafe" "third_party/mesa_headers" "third_party/metrics_proto" @@ -1681,18 +1548,25 @@ using the Enchant spell-checking library.") "third_party/one_euro_filter" "third_party/opus" "third_party/ots" + "third_party/pdfium" + "third_party/pdfium/third_party/agg23" + "third_party/pdfium/third_party/base" + "third_party/pdfium/third_party/freetype" + "third_party/pdfium/third_party/lcms" + "third_party/pdfium/third_party/libopenjpeg20" + "third_party/pdfium/third_party/skia_shared" "third_party/perfetto" "third_party/pffft" "third_party/ply" "third_party/polymer" "third_party/protobuf" + "third_party/protobuf/third_party/six" "third_party/pyjson5" "third_party/re2" "third_party/rnnoise" "third_party/skia" "third_party/skia/include/third_party/skcms/skcms.h" "third_party/skia/include/third_party/vulkan" - "third_party/skia/third_party/gif" "third_party/skia/third_party/skcms" "third_party/skia/third_party/vulkanmemoryallocator" "third_party/smhasher" @@ -1793,7 +1667,7 @@ using the Enchant spell-checking library.") (("third_party/curl") "curl")) (substitute* '("components/viz/common/gpu/vulkan_context_provider.h" - "components/viz/common/resources/resource_format_utils.h" + "components/viz/common/resources/resource_format_utils_vulkan.h" "gpu/config/gpu_util.cc") (("third_party/vulkan/include/") "")) @@ -1819,6 +1693,7 @@ using the Enchant spell-checking library.") ("perl" ,perl) ("pkg-config" ,pkg-config) ("python-2" ,python-2) + ("python-six" ,python2-six) ("ruby" ,ruby))) (inputs `(("alsa-lib" ,alsa-lib) @@ -1873,23 +1748,6 @@ using the Enchant spell-checking library.") (substitute-keyword-arguments (package-arguments qtsvg) ((#:phases phases) `(modify-phases ,phases - (add-after 'unpack 'fix-build-with-newer-re2 - (lambda _ - ;; Adjust for API change in re2, taken from - ;; https://chromium-review.googlesource.com/c/chromium/src/+/2145261 - (substitute* "src/3rdparty/chromium/components/autofill/core\ -/browser/address_rewriter.cc" - (("options\\.set_utf8\\(true\\)") - "options.set_encoding(RE2::Options::EncodingUTF8)")) - #t)) - (add-after 'unpack 'patch-ninja-version-check - (lambda _ - ;; The build system assumes the system Ninja is too old because - ;; it only checks for versions 1.7 through 1.9. We have 1.10. - (substitute* "configure.pri" - (("1\\.\\[7-9\\]\\.\\*") - "1.([7-9]|1[0-9]).*")) - #t)) (add-before 'configure 'substitute-source (lambda* (#:key inputs outputs #:allow-other-keys) (let ((out (assoc-ref outputs "out")) @@ -1951,18 +1809,57 @@ and binaries removed, and adds modular support for using system libraries.") (define-public python-sip (package (name "python-sip") - (version "4.19.22") + (version "5.5.0") + (source + (origin + (method url-fetch) + (uri (list (pypi-uri "sip" version) + (string-append "https://www.riverbankcomputing.com/static/" + "Downloads/sip/" version + "/sip-" version ".tar.gz"))) + (sha256 + (base32 + "1idaivamp1jvbbai9yzv471c62xbqxhaawccvskaizihkd0lq0jx")))) + (build-system python-build-system) + (native-inputs + `(("python" ,python-wrapper))) + (propagated-inputs + `(("python-toml" ,python-toml) + ("python-packaging" ,python-packaging))) + (home-page "https://www.riverbankcomputing.com/software/sip/intro") + (synopsis "Python binding creator for C and C++ libraries") + (description + "SIP is a tool to create Python bindings for C and C++ libraries. It +was originally developed to create PyQt, the Python bindings for the Qt +toolkit, but can be used to create bindings for any C or C++ library. + +SIP comprises a code generator and a Python module. The code generator +processes a set of specification files and generates C or C++ code, which +is then compiled to create the bindings extension module. The SIP Python +module provides support functions to the automatically generated code.") + ;; There is a choice between a python like license, gpl2 and gpl3. + ;; For compatibility with pyqt, we need gpl3. + (license license:gpl3))) + +(define-public python-sip-4 + (package + (inherit python-sip) + (name "python-sip") + (version "4.19.24") (source (origin (method url-fetch) - (uri (string-append "https://www.riverbankcomputing.com/static/" - "Downloads/sip/" version "/sip-" version ".tar.gz")) + (uri (list (pypi-uri "sip" version) + (string-append "https://www.riverbankcomputing.com/static/" + "Downloads/sip/" version + "/sip-" version ".tar.gz"))) (sha256 (base32 - "0idywc326l8v1m3maprg1aq2gph67mmnnsskvlwfx8n19s16idz1")))) + "1ra15vb5i9gkg2vdvh16cq9x2mmzw1yi3xphxs8q34q1pf83gkgd")))) (build-system gnu-build-system) (native-inputs `(("python" ,python-wrapper))) + (propagated-inputs `()) (arguments `(#:tests? #f ; no check target #:imported-modules ((guix build python-build-system) @@ -1985,31 +1882,12 @@ and binaries removed, and adds modular support for using system libraries.") "--bindir" bin "--destdir" lib "--incdir" include))))))) - (home-page "https://www.riverbankcomputing.com/software/sip/intro") - (synopsis "Python binding creator for C and C++ libraries") - (description - "SIP is a tool to create Python bindings for C and C++ libraries. It -was originally developed to create PyQt, the Python bindings for the Qt -toolkit, but can be used to create bindings for any C or C++ library. - -SIP comprises a code generator and a Python module. The code generator -processes a set of specification files and generates C or C++ code, which -is then compiled to create the bindings extension module. The SIP Python -module provides support functions to the automatically generated code.") - ;; There is a choice between a python like license, gpl2 and gpl3. - ;; For compatibility with pyqt, we need gpl3. (license license:gpl3))) -(define-public python2-sip - (package (inherit python-sip) - (name "python2-sip") - (native-inputs - `(("python" ,python-2))))) - (define-public python-pyqt (package (name "python-pyqt") - (version "5.14.2") + (version "5.15.2") (source (origin (method url-fetch) @@ -2019,17 +1897,17 @@ 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 - "1c4y4qi1l540gd125ikj0al00k5pg65kmqaixcfbzslrsrphq8xx")) - (patches (search-patches "pyqt-configure.patch" - "pyqt-public-sip.patch")))) + "1z74295i69cha52llsqffzhb5zz7qnbjc64h8qg21l91jgf0harp")) + (patches (search-patches "pyqt-configure.patch")))) (build-system gnu-build-system) (native-inputs `(("qtbase" ,qtbase))) ; for qmake (propagated-inputs - `(("python-sip" ,python-sip))) + `(("python-sip" ,python-sip) + ("python-pyqt5-sip" ,python-pyqt5-sip))) (inputs `(("python" ,python-wrapper) ("qtbase" ,qtbase) @@ -2098,10 +1976,29 @@ framework. The bindings are implemented as a set of Python modules and contain over 620 classes.") (license license:gpl3))) +(define-public python-pyqt5-sip + (package + (name "python-pyqt5-sip") + (version "12.8.1") + (source + (origin + (method url-fetch) + (uri (pypi-uri "PyQt5_sip" version)) + (sha256 + (base32 + "1gg032ys4pccwkdzmdryadc9a4lq85nr05pag9swrsdykbdl9s9h")))) + (build-system python-build-system) + (arguments + `(#:tests? #f)) ;; No test code. + (home-page "https://www.riverbankcomputing.com/software/sip/") + (synopsis "Sip module support for PyQt5") + (description "Sip module support for PyQt5") + (license license:lgpl2.1+))) + (define-public python-pyqtwebengine (package (name "python-pyqtwebengine") - (version "5.14.0") + (version "5.15.2") (source (origin (method url-fetch) @@ -2113,7 +2010,7 @@ contain over 620 classes.") "/PyQtWebEngine-" version ".tar.gz"))) (sha256 (base32 - "14hw49akb35n9pgiw564x8ykmsifihn9p2ax2x4zmywb3w2ra5g1")))) + "0d56ak71r14w4f9r96vaj34qcn2rbln3s6ildvvyc707fjkzwwjd")))) (build-system gnu-build-system) (native-inputs `(("python" ,python) @@ -2186,102 +2083,71 @@ itself.") ;; 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 - (package (inherit python-pyqt) + (package/inherit python-pyqt (name "python-pyqt-without-qtwebkit") (inputs (alist-delete "qtwebkit" (package-inputs python-pyqt))))) -(define-public python2-pyqt - (package (inherit python-pyqt) - (name "python2-pyqt") - (propagated-inputs - `(("python-enum34" ,python2-enum34) - ("python-sip" ,python2-sip))) - (native-inputs - `(("python-sip" ,python2-sip) - ("qtbase" ,qtbase))) - (inputs - `(("python" ,python-2) - ("python2-enum34" ,python2-enum34) - ,@(alist-delete "python" (package-inputs python-pyqt)))))) - -(define-public python2-pyqtwebengine - (package/inherit - python-pyqtwebengine - (name "python2-pyqtwebengine") - (native-inputs - `(("python" ,python-2) - ("python-sip" ,python2-sip) - ;; qtbase is required for qmake - ("qtbase" ,qtbase))) +(define-public python-pyqt-builder + (package + (name "python-pyqt-builder") + (version "1.9.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "PyQt-builder" version)) + (sha256 + (base32 + "0nh0054c54ji3sm6d268fccf0y5f613spswwgwqd3rnn816hnljl")))) + (build-system python-build-system) (inputs - `(("python" ,python-2) - ("python-sip" ,python2-sip) - ("python-pyqt" ,python2-pyqt) - ("qtbase" ,qtbase) - ("qtsvg" ,qtsvg) - ("qtdeclarative" ,qtdeclarative) - ("qtwebchannel" ,qtwebchannel) - ("qtwebengine" ,qtwebengine))))) - -(define-public python2-pyqt-4 - (package (inherit python-pyqt) - (name "python2-pyqt") - (version "4.12") + `(("python-sip" ,python-sip))) + (home-page "https://www.riverbankcomputing.com/static/Docs/PyQt-builder/") + (synopsis "PEP 517 compliant PyQt build system") + (description "PyQt-builder is a tool for generating Python bindings for C++ +libraries that use the Qt application framework. The bindings are built on +top of the PyQt bindings for Qt. PyQt-builder is used to build PyQt itself.") + ;; Either version 2 or 3, but no other version. See the file + ;; 'pyqtbuild/builder.py' in the source distribution for more information. + (license (list license:gpl2 license:gpl3)))) + +(define-public python-qtpy + (package + (name "python-qtpy") + (version "1.9.0") (source - (origin - (method url-fetch) - (uri - (string-append "mirror://sourceforge/pyqt/PyQt4/" - "PyQt-" version "/PyQt4_gpl_x11-" - version ".tar.gz")) - (sha256 - (base32 - "1nw8r88a5g2d550yvklawlvns8gd5slw53yy688kxnsa65aln79w")))) - (native-inputs - `(("python-sip" ,python2-sip) - ("qt" ,qt-4))) - (inputs `(("python" ,python-2))) + (origin + (method url-fetch) + (uri (pypi-uri "QtPy" version)) + (sha256 + (base32 + "13cw8l7zrhbdi03k1wl1pg9xdl4ahdfa7yz8gd0f23sxnm22rdrd")))) + (build-system python-build-system) + (propagated-inputs + `(("python-pyside2" ,python-pyside-2))) (arguments - `(#:tests? #f ; no check target - #: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")) - (bin (string-append out "/bin")) - (sip (string-append out "/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"))) - (invoke "python" "configure.py" - "--confirm-license" - "--bindir" bin - "--destdir" lib - "--sipdir" sip))))))) - (license (list license:gpl2 license:gpl3)))) ; choice of either license + `(;; Not all supported bindings are packaged. Especially PyQt4. + #:tests? #f)) + (home-page "https://github.com/spyder-ide/qtpy") + (synopsis + "Qt bindings (PyQt5, PyQt4 and PySide) and additional custom QWidgets") + (description + "Provides an abstraction layer on top of the various Qt bindings +(PyQt5, PyQt4 and PySide) and additional custom QWidgets.") + (license license:expat))) (define-public qscintilla (package (name "qscintilla") - (version "2.10.8") + (version "2.11.6") (source (origin (method url-fetch) - (uri (string-append "mirror://sourceforge/pyqt/QScintilla2/" - "QScintilla-" version "/QScintilla_gpl-" - version ".tar.gz")) + (uri (string-append "https://www.riverbankcomputing.com/static" + "/Downloads/QScintilla/" version + "/QScintilla-" version ".tar.gz")) (sha256 (base32 - "1swjr786w04r514pry9pn32ivza4il1cg35s60qy39cwc175pka6")))) + "19r0vpqb4m9bqwxmjp9w6x0hgahkrg7zryk78hwgplj7vdbn0d77")))) (build-system gnu-build-system) (arguments `(#:phases @@ -2312,7 +2178,7 @@ indicators, code completion and call tips.") (license license:gpl3+))) (define-public python-qscintilla - (package (inherit qscintilla) + (package/inherit qscintilla (name "python-qscintilla") (arguments `(#:configure-flags @@ -2360,7 +2226,7 @@ This package provides the Python bindings."))) ;; 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 (name "python-pyqt+qscintilla") (source #f) (build-system trivial-build-system) @@ -2418,6 +2284,117 @@ This package provides the Python bindings."))) securely. It will not store any data unencrypted unless explicitly requested.") (license license:bsd-3))) +(define-public qtsolutions + (let ((commit "9568abd142d581b67b86a5f63d823a34b0612702") + (revision "53")) + (package + (name "qtsolutions") + (version (git-version "0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/qtproject/qt-solutions") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "17fnmassflm3vxi0krpr6fff368jy38cby31a48rban4nqqmgx7n")) + (modules '((guix build utils) + (ice-9 ftw) + (srfi srfi-1))) + (snippet + ;; Unvendor QtLockFile from QtSingleApplication. + '(begin + (with-directory-excursion "qtsingleapplication/src" + (for-each delete-file + (find-files "." "qtlockedfile.*\\.(h|cpp)")) + (substitute* "qtsingleapplication.pri" + ;; Add include path of LockedFile. + (("INCLUDEPATH \\+=") + "INCLUDEPATH += ../../qtlockedfile/src") + ;; Link library of LockedFile. + (("LIBS \\+=") + "LIBS += -lQtSolutions_LockedFile")) + (substitute* '("qtlocalpeer.h" "qtlocalpeer.cpp") + (("#include \"qtlockedfile.*\\.cpp\"") "") + ;; Unwrap namespace added in the vendoring process. + (("QtLP_Private::QtLockedFile") + "QtLockedFile"))) + #t)))) + (build-system gnu-build-system) + (arguments + `(#:tests? #f ; No target + #:imported-modules + ((guix build copy-build-system) + ,@%gnu-build-system-modules) + #:modules + (((guix build copy-build-system) #:prefix copy:) + (guix build gnu-build-system) + (guix build utils)) + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'patch-source + (lambda* (#:key outputs #:allow-other-keys) + (substitute* (find-files "." "common.pri") + ;; Remove unnecessary prefixes/suffixes in library names. + (("qt5") "qt") + (("-head") "")) + ;; Disable building of examples. + (substitute* (find-files "." "\\.pro$") + (("SUBDIRS\\+=examples") "")) + ;; Fix deprecated functions. + (substitute* "qtsoap/src/qtsoap.cpp" + (("toAscii") "toUtf8")) + #t)) + (replace 'configure + (lambda _ + (for-each (lambda (solution) + (with-directory-excursion solution + (invoke "./configure" "-library") + (invoke "qmake"))) + '("qtlockedfile" "qtpropertybrowser" "qtservice" + "qtsingleapplication" "qtsoap")) + #t)) + (replace 'build + (lambda _ + (for-each (lambda (solution) + (with-directory-excursion solution + (invoke "make"))) + '("qtlockedfile" "qtpropertybrowser" "qtservice" + "qtsingleapplication" "qtsoap")) + #t)) + (replace 'install + (lambda args + (for-each (lambda (solution) + (with-directory-excursion solution + (apply + (assoc-ref copy:%standard-phases 'install) + #:install-plan + '(("src" "include" #:include-regexp ("\\.h$")) + ("lib" "lib")) + args))) + '("qtlockedfile" "qtpropertybrowser" "qtservice" + "qtsingleapplication" "qtsoap"))))))) + (inputs + `(("qtbase" ,qtbase))) + (synopsis "Collection of Qt extensions") + (description "QtSolutions is a set of components extending Qt. +@itemize +@item QtLockedFile: A class that extends QFile with advisory locking functions. +@item QtPropertyBrowser: A framework that enables the user to edit a set of +properties. +@item QtService: A helper for writing services such as Unix daemons. +@item QtSingleApplication: A component that provides support for applications +that can be only started once per user. +@item QtSoap: A component that provides basic web service support with version +1.1 of the SOAP protocol. +@end itemize\n") + (home-page "https://doc.qt.io/archives/qq/qq09-qt-solutions.html") + (license (list license:bsd-3 + ;; QScriptParser and QScriptGrammar specifically allow + ;; redistribution under GPL3 or LGPL2.1 + license:gpl3 license:lgpl2.1))))) + (define-public qwt (package (name "qwt") @@ -2826,3 +2803,35 @@ being fully customizable and easy to extend.") ;; According to LICENSE, either version 2 or version 3 of the GNU GPL may ;; be used. (license (list license:gpl2 license:gpl3)))) + + +(define-public soqt + (let ((commit-ref "fb8f655632bb9c9c60e0ff9fa69a5ba22d3ff99d") + (revision "1")) + (package + (name "soqt") + (version (git-version "1.6.0" revision commit-ref)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/coin3d/soqt") + (commit commit-ref) + (recursive? #t))) + (file-name (git-file-name name version)) + (sha256 + (base32 "16vikb3fy8rmk10sg5g0gy2c343hi3x7zccsga90ssnkzpq6m032")))) + (build-system cmake-build-system) + (arguments '(#:tests? #f)) ; There are no tests + (native-inputs + `(("pkg-config" ,pkg-config) + ("cmake" ,cmake))) + (inputs + `(("qtbase" ,qtbase) + ("coin3D" ,coin3D-4))) + (home-page "https://github.com/coin3d/soqt") + (synopsis "Qt GUI component toolkit library for Coin") + (description "SoQt is a Qt GUI component toolkit library for Coin. It is +also compatible with SGI and TGS Open Inventor, and the API is based on the API +of the InventorXt GUI component toolkit.") + (license license:bsd-3))))