;;; 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 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))
("xcb-util-renderutil" ,xcb-util-renderutil)
("xcb-util-wm" ,xcb-util-wm)
("zlib" ,zlib)
- ("libjpeg" ,libjpeg-8)
+ ("libjpeg" ,libjpeg-turbo)
("libsm" ,libsm)
("openssl" ,openssl-1.0)))
(native-inputs
(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 qtbase)
+(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
(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.
"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"