;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013, 2014, 2015 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2015 Sou Bunnbu <iyzsong@gmail.com>
-;;; Copyright © 2015, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2015, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2015, 2016, 2017, 2018, 2019 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016, 2017 ng0 <ng0@n0.is>
;;; Copyright © 2016 Thomas Danckaert <post@thomasdanckaert.be>
;;; Copyright © 2018 Nicolas Goaziou <mail@nicolasgoaziou.fr>
;;; Copyright © 2018 Hartmut Goebel <h.goebel@crazy-compilers.com>
;;; Copyright © 2018 Eric Bavier <bavier@member.fsf.org>
-;;; Copyright © 2019 Marius Bakke <mbakke@fastmail.com>
+;;; Copyright © 2019, 2020 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2018 John Soo <jsoo1@asu.edu>
+;;; Copyright © 2020 Mike Rosset <mike.rosset@gmail.com>
+;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
;;;
;;; This file is part of GNU Guix.
;;;
#: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)
#:use-module (gnu packages)
#:use-module (gnu packages base)
#:use-module (gnu packages cmake)
#:use-module (gnu packages compression)
#:use-module (gnu packages cups)
+ #:use-module (gnu packages curl)
#:use-module (gnu packages databases)
#:use-module (gnu packages documentation)
#:use-module (gnu packages fontutils)
#:use-module (gnu packages flex)
#:use-module (gnu packages freedesktop)
#:use-module (gnu packages gcc)
+ #:use-module (gnu packages ghostscript)
#:use-module (gnu packages gl)
#:use-module (gnu packages glib)
+ #:use-module (gnu packages gnupg)
#:use-module (gnu packages gperf)
#:use-module (gnu packages gstreamer)
#:use-module (gnu packages gtk)
#:use-module (gnu packages icu4c)
#:use-module (gnu packages image)
+ #:use-module (gnu packages libevent)
#:use-module (gnu packages linux)
#:use-module (gnu packages llvm)
#:use-module (gnu packages maths)
+ #:use-module (gnu packages ninja)
#:use-module (gnu packages nss)
#:use-module (gnu packages pciutils)
#:use-module (gnu packages pcre)
#:use-module (gnu packages perl)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages pulseaudio)
+ #:use-module (gnu packages protobuf)
#:use-module (gnu packages python)
#:use-module (gnu packages python-xyz)
+ #:use-module (gnu packages regex)
#:use-module (gnu packages ruby)
#:use-module (gnu packages sdl)
+ #:use-module (gnu packages serialization)
#:use-module (gnu packages sqlite)
+ #:use-module (gnu packages telephony)
#:use-module (gnu packages tls)
+ #:use-module (gnu packages valgrind)
+ #:use-module (gnu packages video)
#:use-module (gnu packages vulkan)
#:use-module (gnu packages xdisorg)
+ #:use-module (gnu packages xiph)
#:use-module (gnu packages xorg)
#:use-module (gnu packages xml)
#:use-module (srfi srfi-1))
("qtscript" ,qtscript)))
(build-system cmake-build-system)
(arguments
- `(#:phases
+ `(#:configure-flags '("-DCMAKE_CXX_STANDARD=11")
+ #:phases
(modify-phases %standard-phases
(add-after 'unpack 'delete-broken-tests
(lambda _
system, and the core design of Django is reused in Grantlee.")
(license license:lgpl2.0+)))
-(define-public qt
+(define-public qt-4
(package
(name "qt")
- (version "5.12.5")
- (outputs '("out" "examples"))
+ (version "4.8.7")
(source (origin
(method url-fetch)
- (uri
- (string-append
- "http://download.qt.io/official_releases/qt/"
- (version-major+minor version)
- "/" version
- "/single/qt-everywhere-src-"
- version ".tar.xz"))
+ (uri (string-append "http://download.qt-project.org/official_releases/qt/"
+ (string-copy version 0 (string-rindex version #\.))
+ "/" version
+ "/qt-everywhere-opensource-src-"
+ version ".tar.gz"))
(sha256
(base32
- "160jr7w39lpd7cwnlbgf5yj8halan7zpnxj2hbwwlrvpvchrwad2"))
+ "183fca7n7439nlhxyg1z7aky0izgbyll3iwakw4gwivy16aj5272"))
+ (patches (search-patches "qt4-ldflags.patch"))
(modules '((guix build utils)))
(snippet
- '(begin
- ;; Remove qtwebengine, which relies on a bundled copy of
- ;; chromium. Not only does it fail compilation in qt 5.5:
- ;; 3rdparty/chromium/ui/gfx/codec/jpeg_codec.cc:362:10:
- ;; error: cannot convert ‘bool’ to ‘boolean’ in return
- ;; it might also pose security problems.
- ;; Alternatively, we could use the "-skip qtwebengine"
- ;; configuration option.
- (delete-file-recursively "qtwebengine")
- ;; The following snippets are copied from their mondular-qt counterparts.
- (for-each
- (lambda (dir)
- (delete-file-recursively (string-append "qtbase/src/3rdparty/" dir)))
- (list "double-conversion" "freetype" "harfbuzz-ng"
- "libpng" "libjpeg" "pcre2" "sqlite" "xcb"
- "zlib"))
- (for-each
- (lambda (dir)
- (delete-file-recursively dir))
- (list "qtimageformats/src/3rdparty"
- "qtmultimedia/examples/multimedia/spectrum/3rdparty"
- "qtwayland/examples"
- "qtscxml/tests/3rdparty"
- "qtcanvas3d/examples/canvas3d/3rdparty"))
- ;; Tests depend on this example, which depends on the 3rd party code.
- (substitute* "qtmultimedia/examples/multimedia/multimedia.pro"
- (("spectrum") "#"))
- (substitute* "qtxmlpatterns/tests/auto/auto.pro"
- (("qxmlquery") "# qxmlquery")
- (("xmlpatterns ") "# xmlpatterns"))
- (substitute* "qtwebglplugin/tests/plugins/platforms/platforms.pro"
- (("webgl") "# webgl"))
- (substitute* "qtscxml/tests/auto/auto.pro"
- (("scion") "#"))
- (substitute* "qtnetworkauth/tests/auto/auto.pro"
- (("oauth1 ") "# oauth1 "))
- (substitute* "qtremoteobjects/tests/auto/qml/qml.pro"
- (("integration") "# integration")
- (("usertypes") "# usertypes"))
- #t))))
+ ;; Remove webkit module, which is not built.
+ '(begin (delete-file-recursively "src/3rdparty/webkit")
+ #t))))
(build-system gnu-build-system)
(propagated-inputs
`(("mesa" ,mesa)))
("glib" ,glib)
("gstreamer" ,gstreamer)
("gst-plugins-base" ,gst-plugins-base)
- ("harfbuzz" ,harfbuzz)
("icu4c" ,icu4c)
("jasper" ,jasper)
("libinput" ,libinput-minimal)
- ("libjpeg" ,libjpeg)
("libmng" ,libmng)
("libpci" ,pciutils)
("libpng" ,libpng)
("mariadb" ,mariadb "lib")
("mariadb-dev" ,mariadb "dev")
("nss" ,nss)
- ("openssl" ,openssl)
("postgresql" ,postgresql)
("pulseaudio" ,pulseaudio)
("pcre2" ,pcre2)
("xcb-util-keysyms" ,xcb-util-keysyms)
("xcb-util-renderutil" ,xcb-util-renderutil)
("xcb-util-wm" ,xcb-util-wm)
- ("zlib" ,zlib)))
+ ("zlib" ,zlib)
+ ("libjpeg" ,libjpeg-turbo)
+ ("libsm" ,libsm)
+ ("openssl" ,openssl-1.0)))
(native-inputs
- `(("bison" ,bison)
+ `(;; 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" ,gcc-5)
+ ("bison" ,bison)
("flex" ,flex)
("gperf" ,gperf)
("perl" ,perl)
("pkg-config" ,pkg-config)
("python" ,python-2)
("ruby" ,ruby)
- ("vulkan-headers" ,vulkan-headers)
("which" ,(@ (gnu packages base) which))))
- (arguments
- `(#:parallel-build? #f ; Triggers race condition in qtbase module on Hydra.
- #:phases
- (modify-phases %standard-phases
- (add-after 'configure 'patch-bin-sh
- (lambda _
- (substitute* '("qtbase/configure"
- "qtbase/mkspecs/features/qt_functions.prf"
- "qtbase/qmake/library/qmakebuiltins.cpp")
- (("/bin/sh") (which "sh")))
- #t))
- (replace 'configure
- (lambda* (#:key outputs #:allow-other-keys)
- (let ((out (assoc-ref outputs "out"))
- (examples (assoc-ref outputs "examples")))
- (substitute* '("configure" "qtbase/configure")
- (("/bin/pwd") (which "pwd")))
- (substitute* "qtbase/src/corelib/global/global.pri"
- (("/bin/ls") (which "ls")))
- ;; do not pass "--enable-fast-install", which makes the
- ;; configure process fail
- (invoke
- "./configure"
- "-verbose"
- "-prefix" out
- "-docdir" (string-append out "/share/doc/qt5")
- "-headerdir" (string-append out "/include/qt5")
- "-archdatadir" (string-append out "/lib/qt5")
- "-datadir" (string-append out "/share/qt5")
- "-examplesdir" (string-append
- examples "/share/doc/qt5/examples") ; 151MiB
- "-opensource"
- "-confirm-license"
-
- ;; These features require higher versions of Linux than the
- ;; minimum version of the glibc. See
- ;; src/corelib/global/minimum-linux_p.h. By disabling these
- ;; features Qt5 applications can be used on the oldest
- ;; kernels that the glibc supports, including the RHEL6
- ;; (2.6.32) and RHEL7 (3.10) kernels.
- "-no-feature-getentropy" ; requires Linux 3.17
- "-no-feature-renameat2" ; requires Linux 3.16
-
- ;; Do not build examples; for the time being, we
- ;; prefer to save the space and build time.
- "-no-compile-examples"
- ;; Most "-system-..." are automatic, but some use
- ;; the bundled copy by default.
- "-system-sqlite"
- "-system-harfbuzz"
- "-system-pcre"
- ;; explicitly link with openssl instead of dlopening it
- "-openssl-linked"
- ;; explicitly link with dbus instead of dlopening it
- "-dbus-linked"
- ;; 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-sse2"))
- "-no-mips_dsp"
- "-no-mips_dspr2"))))
- (add-after 'install 'patch-mkspecs
- (lambda* (#:key outputs #:allow-other-keys)
- (let* ((out (assoc-ref outputs "out"))
- (archdata (string-append out "/lib/qt5"))
- (mkspecs (string-append archdata "/mkspecs"))
- (qt_config.prf (string-append
- mkspecs "/features/qt_config.prf")))
- ;; For each Qt module, let `qmake' uses search paths in the
- ;; module directory instead of all in QT_INSTALL_PREFIX.
- (substitute* qt_config.prf
- (("\\$\\$\\[QT_INSTALL_HEADERS\\]")
- "$$clean_path($$replace(dir, mkspecs/modules, ../../include/qt5))")
- (("\\$\\$\\[QT_INSTALL_LIBS\\]")
- "$$clean_path($$replace(dir, mkspecs/modules, ../../lib))")
- (("\\$\\$\\[QT_HOST_LIBS\\]")
- "$$clean_path($$replace(dir, mkspecs/modules, ../../lib))")
- (("\\$\\$\\[QT_INSTALL_BINS\\]")
- "$$clean_path($$replace(dir, mkspecs/modules, ../../bin))"))
-
- ;; Searches Qt tools in the current PATH instead of QT_HOST_BINS.
- (substitute* (string-append mkspecs "/features/qt_functions.prf")
- (("cmd = \\$\\$\\[QT_HOST_BINS\\]/\\$\\$2")
- "cmd = $$system(which $${2}.pl 2>/dev/null || which $${2})"))
-
- ;; Resolve qmake spec files within qtbase by absolute paths.
- (substitute*
- (map (lambda (file)
- (string-append mkspecs "/features/" file))
- '("device_config.prf" "moc.prf" "qt_build_config.prf"
- "qt_config.prf" "winrt/package_manifest.prf"))
- (("\\$\\$\\[QT_HOST_DATA/get\\]") archdata)
- (("\\$\\$\\[QT_HOST_DATA/src\\]") archdata))
- #t)))
- (add-after 'unpack 'patch-paths
- ;; Use the absolute paths for dynamically loaded libs, otherwise
- ;; the lib will be searched in LD_LIBRARY_PATH which typically is
- ;; not set in guix.
- (lambda* (#:key inputs #:allow-other-keys)
- ;; libresolve
- (let ((glibc (assoc-ref inputs ,(if (%current-target-system)
- "cross-libc" "libc"))))
- (substitute* '("qtbase/src/network/kernel/qdnslookup_unix.cpp"
- "qtbase/src/network/kernel/qhostinfo_unix.cpp")
- (("^\\s*(lib.setFileName\\(QLatin1String\\(\")(resolv\"\\)\\);)" _ a b)
- (string-append a glibc "/lib/lib" b))))
- ;; X11/locale (compose path)
- (substitute* "qtbase/src/plugins/platforminputcontexts/compose/generator/qtablegenerator.cpp"
- ;; Don't search in /usr/…/X11/locale, …
- (("^\\s*m_possibleLocations.append\\(QStringLiteral\\(\"/usr/.*/X11/locale\"\\)\\);" line)
- (string-append "// " line))
- ;; … but use libx11's path
- (("^\\s*(m_possibleLocations.append\\(QStringLiteral\\()X11_PREFIX \"(/.*/X11/locale\"\\)\\);)" _ a b)
- (string-append a "\"" (assoc-ref inputs "libx11") b)))
- ;; libGL
- (substitute* "qtbase/src/plugins/platforms/xcb/gl_integrations/xcb_glx/qglxintegration.cpp"
- (("^\\s*(QLibrary lib\\(QLatin1String\\(\")(GL\"\\)\\);)" _ a b)
- (string-append a (assoc-ref inputs "mesa") "/lib/lib" b)))
- ;; libXcursor
- (substitute* "qtbase/src/plugins/platforms/xcb/qxcbcursor.cpp"
- (("^\\s*(QLibrary xcursorLib\\(QLatin1String\\(\")(Xcursor\"\\), 1\\);)" _ a b)
- (string-append a (assoc-ref inputs "libxcursor") "/lib/lib" b))
- (("^\\s*(xcursorLib.setFileName\\(QLatin1String\\(\")(Xcursor\"\\)\\);)" _ a b)
- (string-append a (assoc-ref inputs "libxcursor") "/lib/lib" b)))
- #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 <http://hydra.gnu.org/build/112828>.
- ;; Qt 5: assembler error; see <http://hydra.gnu.org/build/112526>.
- (supported-systems (delete "mips64el-linux" %supported-systems))))
-
-(define-public qt-4
- (package (inherit qt)
- (version "4.8.7")
- (source (origin
- (method url-fetch)
- (uri (string-append "http://download.qt-project.org/official_releases/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))))
- (inputs
- `(,@(fold alist-delete
- (package-inputs qt)
- '("harfbuzz" "libjpeg" "openssl"))
- ("libjpeg" ,libjpeg-8)
- ("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" ,gcc-5)
- ,@(fold alist-delete
- (package-native-inputs qt)
- '("vulkan-headers"))))
-
;; 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.
;; different "devices" due to bind-mounts.
(copy-recursively olddoc docdir)
(delete-file-recursively olddoc)
- #t))))))))
+ #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 <http://hydra.gnu.org/build/112828>.
+ ;; Qt 5: assembler error; see <http://hydra.gnu.org/build/112526>.
+ (supported-systems (delete "mips64el-linux" %supported-systems))))
(define-public qtbase
(package
(name "qtbase")
- (version "5.12.5")
+ (version "5.12.7")
(source (origin
(method url-fetch)
(uri (string-append "https://download.qt.io/official_releases/qt/"
version ".tar.xz"))
(sha256
(base32
- "09fnwjyxl4fsvlajkdvizw9spfkxq5mvaqld7mckxnm9ppxvz2pw"))
+ "0pb68d30clksdhgy8n6rrs838bb3qcsfq4pv463yy2nr4p5kk2di"))
;; Use TZDIR to avoid depending on package "tzdata".
(patches (search-patches "qtbase-use-TZDIR.patch"))
(modules '((guix build utils)))
(build-system gnu-build-system)
(propagated-inputs
`(("mesa" ,mesa)
+ ;; Use which the package, not the function
("which" ,(@ (gnu packages base) which))))
(inputs
`(("alsa-lib" ,alsa-lib)
("xcb-util-keysyms" ,xcb-util-keysyms)
("xcb-util-renderutil" ,xcb-util-renderutil)
("xcb-util-wm" ,xcb-util-wm)
+ ("xdg-utils" ,xdg-utils)
("zlib" ,zlib)))
(native-inputs
`(("bison" ,bison)
("gperf" ,gperf)
("perl" ,perl)
("pkg-config" ,pkg-config)
- ("python" ,python-2)
+ ("python" ,python)
("vulkan-headers" ,vulkan-headers)
("ruby" ,ruby)))
(arguments
"qmake/library/qmakebuiltins.cpp")
(("/bin/sh") (which "sh")))
#t))
+ (add-after 'configure 'patch-xdg-open
+ (lambda _
+ (substitute* '("src/platformsupport/services/genericunix/qgenericunixservices.cpp")
+ (("^.*const char \\*browsers.*$" all)
+ (string-append "*browser = QStringLiteral(\""
+ (which "xdg-open")
+ "\"); return true; \n" all)))
+ #t))
(replace 'configure
(lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out")))
;; kernels that the glibc supports, including the RHEL6
;; (2.6.32) and RHEL7 (3.10) kernels.
"-no-feature-getentropy" ; requires Linux 3.17
+ "-no-feature-renameat2" ; requires Linux 3.16
;; Do not build examples; if desired, these could go
;; into a separate output, but for the time being, we
(("\\$\\$\\[QT_HOST_DATA/get\\]") archdata)
(("\\$\\$\\[QT_HOST_DATA/src\\]") archdata))
#t)))
+ (add-after 'patch-mkspecs 'patch-prl-files
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out")))
+ ;; Insert absolute references to the qtbase libraries because
+ ;; QT_INSTALL_LIBS does not always resolve correctly, depending
+ ;; on context. See <https://bugs.gnu.org/38405>
+ (substitute* (find-files (string-append out "/lib") "\\.prl$")
+ (("\\$\\$\\[QT_INSTALL_LIBS\\]")
+ (string-append out "/lib")))
+ #t)))
(add-after 'unpack 'patch-paths
;; Use the absolute paths for dynamically loaded libs, otherwise
;; the lib will be searched in LD_LIBRARY_PATH which typically is
developers using C++ or QML, a CSS & JavaScript like language.")
(license (list license:lgpl2.1 license:lgpl3))))
+;; This variant fixes a problem with the CMake macros shipped by qtbase. See
+;; discussion at <https://lists.gnu.org/archive/html/guix-devel/2020-02/msg00308.html>.
+(define-public qtbase-patched
+ (let ((src (package-source qtbase)))
+ (hidden-package
+ (package
+ (inherit qtbase)
+ (source
+ (origin
+ (inherit src)
+ (patches
+ (append (search-patches "qtbase-QTBUG-81715.patch")
+ (origin-patches src)))))))))
+
+;; qt used to refer to the monolithic Qt 5.x package
+(define-deprecated qt qtbase)
+
+
(define-public qtsvg
(package (inherit qtbase)
(name "qtsvg")
- (version "5.12.5")
+ (version "5.12.7")
(source (origin
(method url-fetch)
(uri (string-append "https://download.qt.io/official_releases/qt/"
version ".tar.xz"))
(sha256
(base32
- "0h4qcy5l3gzcgqp53nqqa1wlbxqklly402q9m5z1srwzfk7r39vm"))))
+ "1f3vqv3s83gjillhgi0wghyf3825fgy1ffhvkxhdk673shb0kxjb"))))
(propagated-inputs `())
(native-inputs `(("perl" ,perl)))
(inputs
(define-public qtimageformats
(package (inherit qtsvg)
(name "qtimageformats")
- (version "5.12.5")
+ (version "5.12.7")
(source (origin
(method url-fetch)
(uri (string-append "https://download.qt.io/official_releases/qt/"
version ".tar.xz"))
(sha256
(base32
- "02hzkrlqk3waiqgbjx7npyb7y85p2ri6p076ppkbjbsl6143j6cz"))
+ "02zpcbx71dz6xvga07dnzqwdfz9pjmy673n706fj8pxq9zi9xlcv"))
(modules '((guix build utils)))
(snippet
'(begin
(define-public qtx11extras
(package (inherit qtsvg)
(name "qtx11extras")
- (version "5.12.5")
+ (version "5.12.7")
(source (origin
(method url-fetch)
(uri (string-append "https://download.qt.io/official_releases/qt/"
version ".tar.xz"))
(sha256
(base32
- "0s1a0sbnf7d415mkdrihjdybi0vsq5ccwjm6qrw0h14bwkrmlhl9"))))
+ "15hb90n47khsp3qnzyjd3mh8gi9qvy07dqdr4qspiww43r5mz293"))))
(arguments
(substitute-keyword-arguments (package-arguments qtsvg)
((#:tests? _ #f) #f))) ; TODO: Enable the tests
(define-public qtxmlpatterns
(package (inherit qtsvg)
(name "qtxmlpatterns")
- (version "5.12.5")
+ (version "5.12.7")
(source (origin
(method url-fetch)
(uri (string-append "https://download.qt.io/official_releases/qt/"
version ".tar.xz"))
(sha256
(base32
- "1gdsm12bfg0xg4g09ar26l8zqqqgbk22z522y7q8wyc7gw8dj1dr"))))
+ "0ys1kf0zdn8gak1ik9p7i7bdyfz2frvklcyz013s9wm1550h20lh"))))
(arguments
(substitute-keyword-arguments (package-arguments qtsvg)
+ ((#:tests? _ #f) #f) ; TODO: Enable the tests
((#:phases phases)
`(modify-phases ,phases
(add-after 'unpack 'disable-network-tests
(("qxmlquery") "# qxmlquery")
(("xmlpatterns ") "# xmlpatterns"))
#t))))))
- (native-inputs `(("perl" ,perl)))
+ (native-inputs `(("perl" ,perl)
+ ("qtdeclarative" ,qtdeclarative)))
(inputs `(("qtbase" ,qtbase)))
(synopsis "Qt XML patterns module")
(description "The QtXmlPatterns module is a XQuery and XPath engine for
(define-public qtdeclarative
(package (inherit qtsvg)
(name "qtdeclarative")
- (version "5.12.5")
+ (version "5.12.7")
(source (origin
(method url-fetch)
(uri (string-append "https://download.qt.io/official_releases/qt/"
version ".tar.xz"))
(sha256
(base32
- "144i5crdp9szj0906vs01bhgwvcx29a1pvrf6mp9w9819cyk5i92"))))
+ "1gg9xbv8ah4p55ws97brwn0csl0k3j1x6zdknrrsnh7j6nh0bp2w"))))
(arguments
(substitute-keyword-arguments (package-arguments qtsvg)
((#:tests? _ #f) #f))) ; TODO: Enable the tests
(native-inputs
`(("perl" ,perl)
("pkg-config" ,pkg-config)
- ("python" ,python-2)
- ("qtsvg" ,qtsvg)
- ("qtxmlpatterns" ,qtxmlpatterns)))
+ ("python" ,python)
+ ("python-wrapper" ,python-wrapper)
+ ("qtsvg" ,qtsvg)))
(inputs
`(("mesa" ,mesa)
("qtbase" ,qtbase)))
(define-public qtconnectivity
(package (inherit qtsvg)
(name "qtconnectivity")
- (version "5.12.5")
+ (version "5.12.7")
(source (origin
(method url-fetch)
(uri (string-append "https://download.qt.io/official_releases/qt/"
version ".tar.xz"))
(sha256
(base32
- "12z8ing2bpkk53hgqn0y15j12npqv4sfkpgc2x6prx49srr2rxmx"))))
+ "06h71pd5w5prh722mcbgmx7l71xvh5xpjrlbg17yblx0n6wlhwb4"))))
(native-inputs
`(("perl" ,perl)
("pkg-config" ,pkg-config)
(define-public qtwebsockets
(package (inherit qtsvg)
(name "qtwebsockets")
- (version "5.12.5")
+ (version "5.12.7")
(source (origin
(method url-fetch)
(uri (string-append "https://download.qt.io/official_releases/qt/"
version ".tar.xz"))
(sha256
(base32
- "0qij55bifdg0ip9kc5ka6f6cl39nnn2bmplrhada23lwqjbycn2x"))))
+ "05rv52pp5zg4g14zh7c6jc77l426056b8xyr40ps6cpmb0jkrlbg"))))
(arguments
(substitute-keyword-arguments (package-arguments qtsvg)
((#:tests? _ #f) #f))) ; TODO: Enable the tests
(define-public qtsensors
(package (inherit qtsvg)
(name "qtsensors")
- (version "5.12.5")
+ (version "5.12.7")
(source (origin
(method url-fetch)
(uri (string-append "https://download.qt.io/official_releases/qt/"
version ".tar.xz"))
(sha256
(base32
- "118bra2ik3d2ji7cpy14plz25pl2ch15dpklr0zv4ns7dxq6ma73"))))
+ "0h77h34rn6cgy5qiqq163pj3bhbka1ydkfgjcx01ns1g9sgym6ib"))))
(arguments
(substitute-keyword-arguments (package-arguments qtsvg)
((#:parallel-tests? _ #f) #f) ; can lead to race condition
(define-public qtmultimedia
(package (inherit qtsvg)
(name "qtmultimedia")
- (version "5.12.5")
+ (version "5.12.7")
(source (origin
(method url-fetch)
(uri (string-append "https://download.qt.io/official_releases/qt/"
version ".tar.xz"))
(sha256
(base32
- "1727wf76nlc6snc9800rky6zz45i240gr8b025j4vwayvkys986m"))
+ "07fvnjywn3hkrxfbxasmy83jr6jq9lf1grasfwij54hz6y0smg98"))
(modules '((guix build utils)))
(snippet
'(begin
(native-inputs
`(("perl" ,perl)
("pkg-config" ,pkg-config)
- ("python" ,python-2)
+ ("python" ,python)
("qtdeclarative" ,qtdeclarative)))
(inputs
`(("alsa-lib" ,alsa-lib)
(define-public qtwayland
(package (inherit qtsvg)
(name "qtwayland")
- (version "5.12.5")
+ (version "5.12.7")
(source (origin
(method url-fetch)
(uri (string-append "https://download.qt.io/official_releases/qt/"
version ".tar.xz"))
(sha256
(base32
- "0iiqdwn54y8lsmq3y0w681q6wl0l18g06px1za9iyia9f4k33z99"))
+ "1ib61zh6jrab3yz592p47ldfgphi4i184kqf14vhwn31akibh6pw"))
(modules '((guix build utils)))
(snippet
;; The examples try to build and cause the build to fail
(define-public qtserialport
(package (inherit qtsvg)
(name "qtserialport")
- (version "5.12.5")
+ (version "5.12.7")
(source (origin
(method url-fetch)
(uri (string-append "https://download.qt.io/official_releases/qt/"
version ".tar.xz"))
(sha256
(base32
- "0qmq3yppc54vf7xrwyrwk91h6x04w0hf4bnw5b3y5kwyllhh7vzq"))))
+ "07vjv3p7n7n5v15wdpi8x5sbnvyjqdh85qfzf9mz8l6ppqp2hk12"))))
(native-inputs `(("perl" ,perl)))
(inputs
`(("qtbase" ,qtbase)
(define-public qtserialbus
(package (inherit qtsvg)
(name "qtserialbus")
- (version "5.12.5")
+ (version "5.12.7")
(source (origin
(method url-fetch)
(uri (string-append "https://download.qt.io/official_releases/qt/"
version ".tar.xz"))
(sha256
(base32
- "08icq26m8a0pnapwds0mv7haybizchkmqxg0g8r6xi83lxhswx44"))))
+ "1bkyk1v7bcq657n88a6675lj55vl9y8v46h4kf27v58yjzgiw842"))))
(inputs
`(("qtbase" ,qtbase)
("qtserialport" ,qtserialport)))
(define-public qtwebchannel
(package (inherit qtsvg)
(name "qtwebchannel")
- (version "5.12.5")
+ (version "5.12.7")
(source (origin
(method url-fetch)
(uri (string-append "https://download.qt.io/official_releases/qt/"
version ".tar.xz"))
(sha256
(base32
- "1s65nfs4y031vldf7dk7rdjsfi8a0z04w787rwz0bvi20z11l7cz"))))
+ "0xff3fbbpcl0kkq0rg9npj127ycirygicbkxlf0v593sjpjp5bmh"))))
(native-inputs
`(("perl" ,perl)
("qtdeclarative" ,qtdeclarative)
(define-public qtwebglplugin
(package (inherit qtsvg)
(name "qtwebglplugin")
- (version "5.12.5")
+ (version "5.12.7")
(source (origin
(method url-fetch)
(uri (string-append "https://download.qt.io/official_releases/qt/"
version ".tar.xz"))
(sha256
(base32
- "1xy45djrc4lcnvd5vq3ds2scpzkpcxhsnvmsmgbnvwmnwnrb5hxa"))))
+ "0fswnmhb8fm7wqgzv8cjy1j2sgb5mhx80jl411laawn7bf2ysjg0"))))
(arguments
(substitute-keyword-arguments (package-arguments qtsvg)
((#:phases phases)
(define-public qtwebview
(package (inherit qtsvg)
(name "qtwebview")
- (version "5.12.5")
+ (version "5.12.7")
(source (origin
(method url-fetch)
(uri (string-append "https://download.qt.io/official_releases/qt/"
version ".tar.xz"))
(sha256
(base32
- "09ig6dyvzxl499vplmpdd6shvs2mfvbgqx48cgs3hs6d6p1xim56"))))
+ "1rvvkg6dl34hklllnlzlcffik746f15lzxdnwggc97dmx8n2vy6k"))))
(native-inputs
`(("perl" ,perl)))
(inputs
(define-public qtlocation
(package (inherit qtsvg)
(name "qtlocation")
- (version "5.12.5")
+ (version "5.12.7")
(source (origin
(method url-fetch)
(uri (string-append "https://download.qt.io/official_releases/qt/"
version ".tar.xz"))
(sha256
(base32
- "08h10khklf811bqn143pbkcipfn6nwysxs1mw5bcmi5banbvbj0j"))))
+ "07vq4aycayq2bg8yi4awidb25xyvws2ajbnrmad3rnpg1fw0bsfi"))))
(arguments
(substitute-keyword-arguments (package-arguments qtsvg)
((#:tests? _ #f) #f))) ; TODO: Enable the tests
(define-public qttools
(package (inherit qtsvg)
(name "qttools")
- (version "5.12.5")
+ (version "5.12.7")
(source (origin
(method url-fetch)
(uri (string-append "https://download.qt.io/official_releases/qt/"
version ".tar.xz"))
(sha256
(base32
- "09a0siyiny5wgsnyqxi5y7s1n2dc975wn831sryl71a9gc29bq18"))))
+ "0j1rl368sjknsmwp2f7bwqcb0sx13l3l4dxbm70873si9l8rf2l6"))))
(arguments
(substitute-keyword-arguments (package-arguments qtsvg)
((#:tests? _ #f) #f))) ; TODO: Enable the tests
(define-public qtscript
(package (inherit qtsvg)
(name "qtscript")
- (version "5.12.5")
+ (version "5.12.7")
(source (origin
(method url-fetch)
(uri (string-append "https://download.qt.io/official_releases/qt/"
version ".tar.xz"))
(sha256
(base32
- "1x0x9zr31ic5yki45r48bkmb9w9pvqawppklnws07117x15770q0"))
+ "06a02230mj4bd8qvjaf2q97grzbj1c1rq36x7236fnhjsikbq7fa"))
(patches (search-patches "qtscript-disable-tests.patch"))))
(native-inputs
`(("perl" ,perl)
(define-public qtquickcontrols
(package (inherit qtsvg)
(name "qtquickcontrols")
- (version "5.12.5")
+ (version "5.12.7")
(source (origin
(method url-fetch)
(uri (string-append "https://download.qt.io/official_releases/qt/"
version ".tar.xz"))
(sha256
(base32
- "0n953lnz6gsa8dpa7c93i4qv50jzdyahgs28qxvabnn3vbxsxpj6"))))
+ "1rar337vv0dx52r2gxwiwy1axn0fpy79rka09xizjlxsdg3vnf0h"))))
(arguments
(substitute-keyword-arguments (package-arguments qtsvg)
((#:tests? _ #f) #f))) ; TODO: Enable the tests
(define-public qtquickcontrols2
(package (inherit qtsvg)
(name "qtquickcontrols2")
- (version "5.12.5")
+ (version "5.12.7")
(source (origin
(method url-fetch)
(uri (string-append "https://download.qt.io/official_releases/qt/"
version ".tar.xz"))
(sha256
(base32
- "13ybd87shs09lpr1rji5k0wik1rmwa8lh78vab5vcva8jb2bsi6p"))))
+ "0dx2jag6l5a80220fvmf49z1psliqf1ijqx6jsvvzv81mpjjd59s"))))
(arguments
(substitute-keyword-arguments (package-arguments qtsvg)
((#:tests? _ #f) #f))) ; TODO: Enable the tests
(define-public qtgraphicaleffects
(package (inherit qtsvg)
(name "qtgraphicaleffects")
- (version "5.12.5")
+ (version "5.12.7")
(source (origin
(method url-fetch)
(uri (string-append "https://download.qt.io/official_releases/qt/"
version ".tar.xz"))
(sha256
(base32
- "1ba6qr4h16zap9f36dw5qip97s4bv83prncqka043l70w2kxpgdx"))))
+ "1knapc14a80cn2f5bbfj7lhq9flr3v0gwjg9ka7xl8y642235w02"))))
(arguments
(substitute-keyword-arguments (package-arguments qtsvg)
((#:tests? _ #f) #f))) ; TODO: Enable the tests
types. The effects cover functional areas such as blending, masking, blurring,
coloring, and many more.")))
-(define-public qtdeclarative-render2d
- ;; As of Qt-5.8.0 this module has been merged into qtdeclarative
- (package (inherit qtsvg)
- (name "qtdeclarative-render2d")
- (version "5.7.1")
- (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"))
- (sha256
- (base32
- "0zwch9vn17f3bpy300jcfxx6cx9qymk5j7khx0x9k1xqid4166c3"))
- (modules '((guix build utils)))
- (snippet
- '(begin
- (delete-file-recursively "tools/opengldummy/3rdparty")
- #t))))
- (native-inputs `())
- (inputs
- `(("qtbase" ,qtbase)
- ("qtdeclarative" ,qtdeclarative)))
- (synopsis "Qt Declarative Render module")
- (description "The Qt Declarative Render 2D module provides a Raster
-backend for QtQuick scene graph.")
- (properties `((superseded . ,qtdeclarative)))))
-
(define-public qtgamepad
(package (inherit qtsvg)
(name "qtgamepad")
- (version "5.12.5")
+ (version "5.12.7")
(source (origin
(method url-fetch)
(uri (string-append "https://download.qt.io/official_releases/qt/"
version ".tar.xz"))
(sha256
(base32
- "0czdmmbjc6zpj213pwwgjh0h2awzmrgkqy5gl5a5vk7p8wfz126y"))))
+ "150y7bc755l9y8w7nkg3gfw5n6rlj9hhq0ibc9g1xgllpr18qqq7"))))
(native-inputs
`(("perl" ,perl)
("pkg-config" ,pkg-config)))
(define-public qtscxml
(package (inherit qtsvg)
(name "qtscxml")
- (version "5.12.5")
+ (version "5.12.7")
(source (origin
(method url-fetch)
(uri (string-append "https://download.qt.io/official_releases/qt/"
version ".tar.xz"))
(sha256
(base32
- "034n97nyz9ymjcxzqchvwr1bllzwav9hjpjkqggygcnd010wf7kg"))
+ "1dpvjkvwc3fj86vay8q8vzym73cix7ri2ianx87ck0gqjny51adg"))
(modules '((guix build utils)))
(snippet
'(begin
(define-public qtpurchasing
(package (inherit qtsvg)
(name "qtpurchasing")
- (version "5.12.5")
+ (version "5.12.7")
(source (origin
(method url-fetch)
(uri (string-append "https://download.qt.io/official_releases/qt/"
version ".tar.xz"))
(sha256
(base32
- "0nv1psq1vsrpvk8y3lqgxl0g1w7ll6nrxhgw9zxg71ykhm4vrkkv"))))
+ "0xjsn7p629ni68vk4xlw2cvcs53ipcqv1pa4hck0nabddcgcnzkg"))))
(inputs
`(("qtbase" ,qtbase)
("qtdeclarative" ,qtdeclarative)))
(define-public qtcanvas3d
(package (inherit qtsvg)
(name "qtcanvas3d")
- (version "5.12.5")
+ (version "5.12.7")
(source (origin
(method url-fetch)
(uri (string-append "https://download.qt.io/official_releases/qt/"
version ".tar.xz"))
(sha256
(base32
- "036q2r1disvb8aaiix7p0yn4wwqfq22qnsfkmqvgnnncwdnf0lqm"))
+ "0l0c1p6jwz5rygyxslfw7jw3wbd23w5n9zg04aqlh5g15qx52fmn"))
(modules '((guix build utils)))
(snippet
'(begin
(define-public qtcharts
(package (inherit qtsvg)
(name "qtcharts")
- (version "5.12.5")
+ (version "5.12.7")
(source (origin
(method url-fetch)
(uri (string-append "https://download.qt.io/official_releases/qt/"
version ".tar.xz"))
(sha256
(base32
- "02361bf59bsnhk0kz767vbg4rbx8qn5z92avcfhh00ds2slk0z2c"))))
+ "0pyg2lpxmhf4amj57zihp5ry0y9m39xq5hbcx4hqj78bdm96ah23"))))
(arguments
(substitute-keyword-arguments (package-arguments qtsvg)
((#:tests? _ #f) #f))) ; TODO: Enable the tests
(define-public qtdatavis3d
(package (inherit qtsvg)
(name "qtdatavis3d")
- (version "5.12.5")
+ (version "5.12.7")
(source (origin
(method url-fetch)
(uri (string-append "https://download.qt.io/official_releases/qt/"
version ".tar.xz"))
(sha256
(base32
- "1ws46ijmxmrgg6rmg9mb5sfa2zx4rpjw1f7vqqcgpirhafznbq8x"))))
+ "09wbv4g29sq5z2fphk2910albr3iv3l14nch3ml77w6drw9mgzq7"))))
(arguments
(substitute-keyword-arguments (package-arguments qtsvg)
((#:tests? _ #f) #f))) ; TODO: Enable the tests
(define-public qtnetworkauth
(package (inherit qtsvg)
(name "qtnetworkauth")
- (version "5.12.5")
+ (version "5.12.7")
(source (origin
(method url-fetch)
(uri (string-append "https://download.qt.io/official_releases/qt/"
version ".tar.xz"))
(sha256
(base32
- "1wd967sqw0rf8j6wg4qm45rsrzfbg0kcf9j0rrq0qm9h5md4fcq9"))))
+ "0sspni7zllhspk70yjj2d0li9r4rs3iflnksj8mvjx2yl9qpryyb"))))
(arguments
(substitute-keyword-arguments (package-arguments qtsvg)
((#:phases phases)
(define-public qtremoteobjects
(package (inherit qtsvg)
(name "qtremoteobjects")
- (version "5.12.5")
+ (version "5.12.7")
(source (origin
(method url-fetch)
(uri (string-append "https://download.qt.io/official_releases/qt/"
version ".tar.xz"))
(sha256
(base32
- "1kgarxc63jx12ifgjj8cw2033nm1p0lkxq6762zyy7yxjfpk3wdc"))))
+ "03qjj7l63wn1zqkmlja9yrnc38rf6b3apnmsn0kw0h61x72awskd"))))
(arguments
(substitute-keyword-arguments (package-arguments qtsvg)
((#:phases phases)
(define-public qtspeech
(package (inherit qtsvg)
(name "qtspeech")
- (version "5.12.5")
+ (version "5.12.7")
(source (origin
(method url-fetch)
(uri (string-append "https://download.qt.io/official_releases/qt/"
version ".tar.xz"))
(sha256
(base32
- "0nzj6vs56qplym1rr1jbybbpr5jwqhbjqk9igpcj06kd4gbhqk7r"))))
+ "0q30m9l28zsdzdmny7wjskd2fjfrgh1l595wir6bhwhil95g3i0c"))))
+
(arguments
(substitute-keyword-arguments (package-arguments qtsvg)
((#:tests? _ #f) #f))) ; TODO: Enable the tests
In such a scenario, the messaging application can read out the incoming
message.")))
+(define-public qtwebengine
+ (package
+ (inherit qtsvg)
+ (name "qtwebengine")
+ (version (package-version qtbase))
+ (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"))
+ (sha256
+ (base32
+ "1yj6pcj945fpbc7nihav0plxpx8ikylmxjy7wqdv5znslgf59dw3"))
+ (modules '((ice-9 ftw)
+ (ice-9 match)
+ (srfi srfi-1)
+ (srfi srfi-26)
+ (guix build utils)))
+ (snippet
+ '(begin
+ (let ((preserved-third-party-files
+ '("base/third_party/dmg_fp"
+ "base/third_party/dynamic_annotations"
+ "base/third_party/icu"
+ "base/third_party/libevent"
+ "base/third_party/nspr"
+ "base/third_party/superfasthash"
+ "base/third_party/symbolize"
+ "base/third_party/xdg_mime"
+ "base/third_party/xdg_user_dirs"
+ "net/third_party/http2"
+ "net/third_party/mozilla_security_manager"
+ "net/third_party/nss"
+ "net/third_party/spdy"
+ "net/third_party/quic"
+ "third_party/abseil-cpp"
+ "third_party/angle"
+ "third_party/angle/src/common/third_party/base"
+ "third_party/angle/src/common/third_party/smhasher"
+ "third_party/angle/src/third_party/compiler"
+ "third_party/blink"
+ "third_party/boringssl"
+ "third_party/boringssl/src/third_party/fiat"
+ "third_party/breakpad"
+ "third_party/brotli"
+ "third_party/ced"
+ "third_party/crc32c"
+ "third_party/ffmpeg"
+ "third_party/googletest"
+ "third_party/hunspell"
+ "third_party/iccjpeg"
+ "third_party/icu"
+ "third_party/inspector_protocol"
+ "third_party/jinja2"
+ "third_party/jstemplate"
+ "third_party/khronos"
+ "third_party/leveldatabase"
+ "third_party/libaddressinput"
+ "third_party/libjingle_xmpp"
+ "third_party/libpng"
+ "third_party/libsrtp"
+ "third_party/libsync"
+ "third_party/libudev"
+ "third_party/libvpx"
+ "third_party/libwebm"
+ "third_party/libwebp"
+ "third_party/libxml"
+ "third_party/libxslt"
+ "third_party/libyuv"
+ "third_party/lss"
+ "third_party/markupsafe"
+ "third_party/mesa"
+ "third_party/metrics_proto"
+ "third_party/modp_b64"
+ "third_party/opus"
+ "third_party/ots"
+ "third_party/ply"
+ "third_party/polymer"
+ "third_party/protobuf"
+ "third_party/pyjson5"
+ "third_party/re2"
+ "third_party/rnnoise"
+ "third_party/skia"
+ "third_party/skia/third_party/gif"
+ "third_party/skia/third_party/skcms"
+ "third_party/smhasher"
+ "third_party/snappy"
+ "third_party/sqlite"
+ "third_party/usrsctp"
+ "third_party/web-animations-js"
+ "third_party/webrtc"
+ "third_party/webrtc_overrides"
+ "third_party/widevine/cdm/widevine_cdm_common.h"
+ "third_party/widevine/cdm/widevine_cdm_version.h"
+ "third_party/woff2"
+ "third_party/yasm"
+ "third_party/zlib"
+ "url/third_party/mozilla"
+ "v8/src/third_party/utf8-decoder"
+ "v8/src/third_party/valgrind"
+ "v8/third_party/antlr4"
+ "v8/third_party/inspector_protocol"))
+ (protected (make-regexp "\\.(gn|gyp)i?$")))
+ (define preserved-club
+ (map (lambda (member)
+ (string-append "./" member))
+ preserved-third-party-files))
+ (define (empty? dir)
+ (equal? (scandir dir) '("." "..")))
+ (define (third-party? file)
+ (string-contains file "third_party/"))
+ (define (useless? file)
+ (any (cute string-suffix? <> file)
+ '(".zip" ".so" ".dll" ".exe" ".jar")))
+ (define (parents child)
+ ;; Return all parent directories of CHILD up to and including
+ ;; the closest "third_party".
+ (let* ((dirs (match (string-split child #\/)
+ ((dirs ... last) dirs)))
+ (closest (list-index (lambda (dir)
+ (string=? "third_party" dir))
+ (reverse dirs)))
+ (delim (- (length dirs) closest)))
+ (fold (lambda (dir prev)
+ (cons (string-append (car prev) "/" dir)
+ prev))
+ (list (string-join (list-head dirs delim) "/"))
+ (list-tail dirs delim))))
+ (define (remove-loudly file)
+ (format #t "deleting ~a...~%" file)
+ (force-output)
+ (delete-file file))
+ (define (delete-unwanted-files child stat flag base level)
+ (match flag
+ ((or 'regular 'symlink 'stale-symlink)
+ (when (third-party? child)
+ (unless (or (member child preserved-club)
+ (any (cute member <> preserved-club)
+ (parents child))
+ (regexp-exec protected child))
+ (remove-loudly child)))
+ (when (and (useless? child) (file-exists? child))
+ (remove-loudly child))
+ #t)
+ ('directory-processed
+ (when (empty? child)
+ (rmdir child))
+ #t)
+ (_ #t)))
+
+ (with-directory-excursion "src/3rdparty"
+ ;; TODO: Try removing "gn" too for future versions of qtwebengine.
+ (delete-file-recursively "ninja")
+
+ (with-directory-excursion "chromium"
+ ;; Delete bundled software and binaries that were not explicitly
+ ;; preserved above.
+ (nftw "." delete-unwanted-files 'depth 'physical)
+
+ ;; Assert that each preserved item is present to catch removals.
+ (for-each (lambda (third-party)
+ (unless (file-exists? third-party)
+ (error (format #f "~s does not exist!~%" third-party))))
+ preserved-club)
+
+ ;; Use relative header locations instead of hard coded ones.
+ (substitute*
+ "base/third_party/dynamic_annotations/dynamic_annotations.c"
+ (("base/third_party/valgrind") "valgrind"))
+ (substitute*
+ "third_party/breakpad/breakpad/src/common/linux/libcurl_wrapper.h"
+ (("third_party/curl") "curl"))
+
+ ;; Replace Google Analytics bundle with an empty file and hope
+ ;; no one notices.
+ (mkdir-p "third_party/analytics")
+ (call-with-output-file
+ "third_party/analytics/google-analytics-bundle.js"
+ (lambda (port)
+ (const #t)))))
+
+ ;; Do not enable support for loading the Widevine DRM plugin.
+ (substitute* "src/core/config/common.pri"
+ (("enable_widevine=true")
+ "enable_widevine=false"))
+ #t)))))
+ (build-system gnu-build-system)
+ (native-inputs
+ `(("bison" ,bison)
+ ("flex" ,flex)
+ ("gperf" ,gperf)
+ ("ninja" ,ninja)
+ ("perl" ,perl)
+ ("pkg-config" ,pkg-config)
+ ("python-2" ,python-2)
+ ("ruby" ,ruby)))
+ (inputs
+ `(("alsa-lib" ,alsa-lib)
+ ("atk" ,atk)
+ ("cups-minimal" ,cups-minimal)
+ ("curl" ,curl)
+ ("dbus" ,dbus)
+ ("ffmpeg" ,ffmpeg)
+ ("fontconfig" ,fontconfig)
+ ("harbuzz" ,harfbuzz)
+ ("icu4c" ,icu4c)
+ ("jsoncpp" ,jsoncpp)
+ ("lcms" ,lcms)
+ ("libcap" ,libcap)
+ ("libevent" ,libevent)
+ ("libgcrypt" ,libgcrypt)
+ ("libjpeg" ,libjpeg-turbo)
+ ("libvpx" ,libvpx)
+ ;; FIXME: configure does not find system lcms
+ ;; ("lcms" ,lcms)
+ ("libwebp" ,libwebp)
+ ("libx11" ,libx11)
+ ("libxcb" ,libxcb)
+ ("libxcomposite" ,libxcomposite)
+ ("libxcursor" ,libxcursor)
+ ("libxi" ,libxi)
+ ("libxkbcommon" ,libxkbcommon)
+ ;; FIXME: libxml2 needs to built with icu support though it links to
+ ;; libxml2 configure summary still states "Checking for compatible
+ ;; system libxml2... no"
+ ("libxml2" ,libxml2)
+ ("libxrandr" ,libxrandr)
+ ("libxrender" ,libxrender)
+ ("libxslt" ,libxslt)
+ ("libxtst" ,libxtst)
+ ("mesa" ,mesa)
+ ("minizip" ,minizip)
+ ("nss" ,nss)
+ ("opus" ,opus)
+ ("pciutils" ,pciutils)
+ ("protobuf" ,protobuf)
+ ("pulseaudio" ,pulseaudio)
+ ("qtbase" ,qtbase)
+ ("qtdeclarative" ,qtdeclarative)
+ ("qtmultimedia" ,qtmultimedia)
+ ("qtwebchannel" ,qtwebchannel)
+ ("re2" ,re2)
+ ("snappy" ,snappy)
+ ("udev" ,eudev)
+ ("valgrind" ,valgrind)
+ ("xcb-util" ,xcb-util)))
+ (arguments
+ (substitute-keyword-arguments (package-arguments qtsvg)
+ ((#:phases phases)
+ `(modify-phases ,phases
+ (add-before 'configure 'substitute-source
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out"))
+ (nss (assoc-ref inputs "nss"))
+ (udev (assoc-ref inputs "udev")))
+ ;; Qtwebengine is not installed into the same prefix as
+ ;; qtbase. Some qtbase QTLibraryInfo constants will not
+ ;; work. Replace with the full path to the qtwebengine
+ ;; translations and locales in the store.
+ (substitute* "src/core/web_engine_library_info.cpp"
+ (("QLibraryInfo::location\\(QLibraryInfo::TranslationsPath\\)")
+ (string-append "QLatin1String(\"" out "/share/qt5/translations\")"))
+ (("QLibraryInfo::location\\(QLibraryInfo::DataPath\\)")
+ (string-append "QLatin1String(\"" out "/share/qt5\")")))
+ ;; Substitute full dynamic library path for nss.
+ (substitute* "src/3rdparty/chromium/crypto/nss_util.cc"
+ (("libnssckbi.so")
+ (string-append nss "/lib/nss/libnssckbi.so")))
+ ;; Substitute full dynamic library path for udev.
+ (substitute* "src/3rdparty/chromium/device/udev_linux/udev1_loader.cc"
+ (("libudev.so.1")
+ (string-append udev "/lib/libudev.so.1")))
+ #t)))
+ (add-before 'configure 'set-env
+ (lambda _
+ ;; Avoids potential race conditions.
+ (setenv "PYTHONDONTWRITEBYTECODE" "1")
+ (setenv "NINJAFLAGS"
+ (string-append "-k1" ;less verbose build output
+ ;; Respect the '--cores' option of 'guix build'.
+ " -j" (number->string (parallel-job-count))))
+ #t))
+ (replace 'configure
+ (lambda _
+ ;; Valid QT_BUILD_PARTS variables are:
+ ;; libs tools tests examples demos docs translations
+ (invoke "qmake" "QT_BUILD_PARTS = libs tools" "--"
+ "--webengine-printing-and-pdf=no"
+ "--webengine-ffmpeg=system"
+ "--webengine-icu=system"
+ "--webengine-pepper-plugins=no")))))
+ ;; Tests are disabled due to "Could not find QtWebEngineProcess error"
+ ;; It's possible this can be fixed by setting QTWEBENGINEPROCESS_PATH
+ ;; before running tests.
+ ((#:tests? _ #f) #f)))
+ (native-search-paths
+ (list (search-path-specification
+ (file-type 'regular)
+ (separator #f)
+ (variable "QTWEBENGINEPROCESS_PATH")
+ (files '("lib/qt5/libexec/QtWebEngineProcess")))))
+ (home-page "https://wiki.qt.io/QtWebEngine")
+ (synopsis "Qt WebEngine module")
+ (description "The Qt5WebEngine module provides support for web applications
+using the Chromium browser project. The Chromium source code has Google services
+and binaries removed, and adds modular support for using system libraries.")
+ (license license:lgpl2.1+)))
+
(define-public python-sip
(package
(name "python-sip")
,@%gnu-build-system-modules)
#:phases
(modify-phases %standard-phases
+ ;; When building python-pyqtwebengine, <qprinter.h> can not be
+ ;; included. Here we substitute the full path to the header in the
+ ;; 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"))
(bin (string-append out "/bin"))
(sip (string-append out "/share/sip"))
- (plugins (string-append out "/plugins"))
+ (plugins (string-append out "/lib/qt5/plugins"))
(designer (string-append plugins "/designer"))
(qml (string-append plugins "/PyQt5"))
(python (assoc-ref inputs "python"))
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.
(origin
(method url-fetch)
(uri (string-append "https://github.com/annulen/webkit/releases/download/"
- name "-" version "/" name "-" version ".tar.xz"))
+ "qtwebkit-" version "/qtwebkit-" version ".tar.xz"))
(sha256
(base32
"05syvwi3jw9abwsc93rmjkna0vyh6bkfrsqhwir48ms54icfwzim"))
("libjpeg" ,libjpeg)
("libpng" ,libpng)
("libwebp" ,libwebp)
- ("sqlite" ,sqlite)
+ ("sqlite" ,sqlite-with-column-metadata)
("fontconfig" ,fontconfig)
("libxrender" ,libxrender)
("qtbase" ,qtbase)
(define-public dotherside
(package
(name "dotherside")
- (version "0.6.3")
+ (version "0.6.4")
(source
(origin
- (method url-fetch)
- (uri (string-append "https://github.com/filcuc/DOtherSide/"
- "archive/v" version ".tar.gz"))
- (file-name (string-append name "-" version ".tar.gz"))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/filcuc/DOtherSide")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
(sha256
(base32
- "0azq7qlsrfdwbd6qsi7d3c1knn42qw0r47g43xf7clwbinapswpz"))))
+ "09fz6v8rp28997f235yaifj8p4vvsyv45knc1iivgdvx7msgcd0m"))))
(build-system cmake-build-system)
(native-inputs
`(("qttools" ,qttools)))
"0g8jacm2iqd7lw2m7f1dp1nnrsk38bl3m8pihm8zz9gxs8d31sf5"))))
(build-system cmake-build-system)
(inputs
- `(("llvm-6" ,llvm-6)
- ("clang-6" ,clang-6)
+ `(("clang-toolchain" ,clang-toolchain-6)
("libxml2" ,libxml2)
("libxslt" ,libxslt)
("python-wrapper" ,python-wrapper)
(lambda _ (chdir "sources/shiboken2") #t))
(add-before 'configure 'set-build-env
(lambda* (#:key inputs #:allow-other-keys)
- (let ((llvm (assoc-ref inputs "llvm-6")))
+ (let ((llvm (assoc-ref inputs "clang-toolchain")))
(setenv "CLANG_INSTALL_DIR" llvm)
#t))))))
(home-page "https://wiki.qt.io/Qt_for_Python")
`(("libcxx" ,libcxx-6)
("libxml2" ,libxml2)
("libxslt" ,libxslt)
- ("llvm-6" ,llvm-6)
- ("clang-6" ,clang-6)
+ ("clang-toolchain" ,clang-toolchain-6)
("qtbase" ,qtbase)
("qtdatavis3d" ,qtdatavis3d)
("qtlocation" ,qtlocation)
;; FIXME: Building tests fail.
#:configure-flags '("-DBUILD_TESTS=FALSE")
#:phases
- (modify-phases
- %standard-phases
+ (modify-phases %standard-phases
(add-after 'unpack 'go-to-source-dir
(lambda _ (chdir "sources/pyside2") #t))
(add-before 'configure 'set-clang-dir
(lambda* (#:key inputs #:allow-other-keys)
- (let ((clang (assoc-ref inputs "clang-6"))
+ (let ((clang (assoc-ref inputs "clang-toolchain"))
(libcxx (assoc-ref inputs "libcxx")))
(setenv "CLANG_INSTALL_DIR" clang)
(substitute* "cmake/Macros/PySideModules.cmake"