summaryrefslogtreecommitdiff
path: root/gnu/packages/qt.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/qt.scm')
-rw-r--r--gnu/packages/qt.scm1003
1 files changed, 792 insertions, 211 deletions
diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm
index 541e1e6c06..7a1d60a2e5 100644
--- a/gnu/packages/qt.scm
+++ b/gnu/packages/qt.scm
@@ -11,7 +11,7 @@
;;; Copyright © 2018, 2020, 2022 Nicolas Goaziou <[email protected]>
;;; Copyright © 2018 Hartmut Goebel <[email protected]>
;;; Copyright © 2018 Eric Bavier <[email protected]>
-;;; Copyright © 2019, 2020 Marius Bakke <[email protected]>
+;;; Copyright © 2019, 2020, 2022 Marius Bakke <[email protected]>
;;; Copyright © 2018 John Soo <[email protected]>
;;; Copyright © 2020 Mike Rosset <[email protected]>
;;; Copyright © 2020 Jakub Kądziołka <[email protected]>
@@ -25,6 +25,8 @@
;;; Copyright © 2021 Nicolò Balzarotti <[email protected]>
;;; Copyright © 2022 Foo Chuan Wei <[email protected]>
;;; Copyright © 2022 Zhu Zihao <[email protected]>
+;;; Copyright © 2022 Petr Hodina <[email protected]>
+;;; Copyright © 2022 Yash Tiwari <[email protected]>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -48,6 +50,7 @@
#:use-module (guix git-download)
#:use-module (guix build-system cmake)
#:use-module (guix build-system gnu)
+ #:use-module (guix build-system meson)
#:use-module (guix build-system trivial)
#:use-module (guix build-system python)
#:use-module (guix build-system qt)
@@ -59,17 +62,21 @@
#:use-module (gnu packages bash)
#:use-module (gnu packages base)
#:use-module (gnu packages bison)
+ #:use-module (gnu packages check)
#:use-module (gnu packages cmake)
#:use-module (gnu packages compression)
+ #:use-module (gnu packages cpp)
#:use-module (gnu packages cups)
#:use-module (gnu packages curl)
#:use-module (gnu packages databases)
#:use-module (gnu packages documentation)
+ #:use-module (gnu packages elf)
#:use-module (gnu packages enchant)
#:use-module (gnu packages fontutils)
#:use-module (gnu packages flex)
#:use-module (gnu packages freedesktop)
#:use-module (gnu packages gcc)
+ #:use-module (gnu packages gdb)
#:use-module (gnu packages ghostscript)
#:use-module (gnu packages gl)
#:use-module (gnu packages glib)
@@ -140,8 +147,7 @@
(modify-phases %standard-phases
(add-after 'unpack 'chdir
(lambda _
- (chdir "libqite")
- #t)))))
+ (chdir "libqite"))))))
(inputs
(list qtbase-5 qtmultimedia-5))
(home-page "https://github.com/Ri0n/qite/")
@@ -183,6 +189,49 @@ window managers, that don't provide Qt integration by themselves.")
(home-page "https://qt5ct.sourceforge.io/")
(license license:bsd-2)))
+(define-public kvantum
+ (package
+ (name "kvantum")
+ (version "1.0.7")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://github.com/tsujan/Kvantum/releases/download/V"
+ version "/Kvantum-" version ".tar.xz"))
+ (sha256
+ (base32
+ "0zwxswbgd3wc7al3fhrl5qc0fmmb6mkygywjh1spbqpl7s8jw5s3"))))
+ (build-system qt-build-system)
+ (arguments
+ (list
+ #:tests? #f ;no tests
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'chdir
+ (lambda _
+ (chdir "Kvantum")))
+ (add-after 'chdir 'patch-style-dir
+ (lambda _
+ (substitute* "style/CMakeLists.txt"
+ (("\\$\\{KVANTUM_STYLE_DIR\\}")
+ (string-append #$output
+ "/lib/qt5/plugins/styles"))))))))
+ (native-inputs (list qttools-5))
+ (inputs (list
+ kwindowsystem
+ libx11
+ libxext
+ qtbase-5
+ qtsvg-5
+ qtx11extras))
+ (synopsis "SVG-based theme engine for Qt")
+ (description
+ "Kvantum is an SVG-based theme engine for Qt,
+tuned to KDE and LXQt, with an emphasis on elegance, usability and
+practicality.")
+ (home-page "https://github.com/tsujan/Kvantum")
+ (license license:gpl3+)))
+
(define-public materialdecoration
(let ((commit "6a5de23f2e5162fbee39d16f938473ff970a2ec0")
(revision "9"))
@@ -219,10 +268,10 @@ window managers, that don't provide Qt integration by themselves.")
(native-inputs
(list cmake-shared extra-cmake-modules pkg-config))
(inputs
- `(("qtbase" ,qtbase-5)
- ("qtwayland" ,qtwayland)
- ("wayland" ,wayland)
- ("xkbcommon" ,libxkbcommon)))
+ (list qtbase-5
+ qtwayland-5
+ wayland
+ libxkbcommon))
(synopsis "Material Decoration for Qt")
(description "MaterialDecoration is a client-side decoration for Qt
applications on Wayland.")
@@ -254,8 +303,7 @@ applications on Wayland.")
(add-before 'check 'check-setup
(lambda _
;; make Qt render "offscreen", required for tests
- (setenv "QT_QPA_PLATFORM" "offscreen")
- #t)))))
+ (setenv "QT_QPA_PLATFORM" "offscreen"))))))
(home-page "https://github.com/steveire/grantlee")
(synopsis "Libraries for text templating with Qt")
(description "Grantlee Templates can be used for theming and generation of
@@ -820,6 +868,69 @@ developers using C++ or QML, a CSS & JavaScript like language.")
(variable "XDG_CONFIG_DIRS")
(files '("etc/xdg")))))))
+(define-public qt3d-5
+ (package
+ (inherit qtbase-5)
+ (name "qt3d")
+ (version "5.15.5")
+ (source (origin
+ (method url-fetch)
+ (uri (qt-urls name version))
+ (sha256
+ (base32
+ "1m3y7d58crn0qgfwkimxcggssn2pbs8nj5b9diwns6rwqg4aqk20"))))
+ (propagated-inputs `())
+ (native-inputs (list perl))
+ (inputs (list mesa qtbase-5 vulkan-headers zlib))
+ (arguments
+ (list #:phases #~(modify-phases %standard-phases
+ (add-before 'configure 'configure-qmake
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let* ((tmpdir (string-append (getenv "TMPDIR")))
+ (qmake (string-append tmpdir "/qmake"))
+ (qt.conf (string-append tmpdir "/qt.conf")))
+ (symlink (which "qmake") qmake)
+ (setenv "PATH"
+ (string-append tmpdir ":"
+ (getenv "PATH")))
+ (with-output-to-file qt.conf
+ (lambda ()
+ (format #t "[Paths]
+Prefix=~a
+ArchData=lib/qt5
+Data=share/qt5
+Documentation=share/doc/qt5
+Headers=include/qt5
+Libraries=lib
+LibraryExecutables=lib/qt5/libexec
+Binaries=bin
+Tests=tests
+Plugins=lib/qt5/plugins
+Imports=lib/qt5/imports
+Qml2Imports=lib/qt5/qml
+Translations=share/qt5/translations
+Settings=etc/xdg
+Examples=share/doc/qt5/examples
+HostPrefix=~a
+HostData=lib/qt5
+HostBinaries=bin
+HostLibraries=lib
+
+[EffectiveSourcePaths]
+HostPrefix=~a
+HostData=lib/qt5"
+ #$output #$output #$(this-package-input
+ "qtbase")))))))
+ (replace 'configure
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (invoke "qmake"
+ "QT_BUILD_PARTS = libs tools tests")))
+ (add-before 'check 'set-display
+ (lambda _
+ (setenv "QT_QPA_PLATFORM" "offscreen"))))))
+ (synopsis "Qt module for 3D")
+ (description "The Qt3d module provides classes for displaying 3D.")))
+
(define-public qt5compat
(package
(name "qt5compat")
@@ -1448,14 +1559,16 @@ record media, and manage a collection of media content. It also contains a
set of plugins for interacting with pulseaudio and GStreamer.")
(license (package-license qtbase))))
-(define-public qtwayland
+(define-public qtwayland-5
(package (inherit qtsvg-5)
(name "qtwayland")
(version "5.15.5")
(source (origin
(method url-fetch)
(uri (qt-urls name version))
- (patches (search-patches "qtwayland-gcc-11.patch"))
+ (patches (search-patches "qtwayland-gcc-11.patch"
+ "qtwayland-dont-recreate-callbacks.patch"
+ "qtwayland-cleanup-callbacks.patch"))
(sha256
(base32
"0yy8qf9kn15iqsxi2r7jbcsc0vsdyfz7bbxmfn4i9qmz1yvg0jgr"))))
@@ -1496,6 +1609,56 @@ set of plugins for interacting with pulseaudio and GStreamer.")
(description "The Qt Wayland module provides the QtWayland client and
compositor libraries.")))
+(define-public qtwayland
+ (package
+ (name "qtwayland")
+ (version "6.3.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (qt-urls name version))
+ (sha256
+ (base32 "1w60p1did7awdlzq5k8vnq2ncpskb07cpvz31cbv99bjs6igw53g"))))
+ (build-system cmake-build-system)
+ (arguments
+ (list #:configure-flags #~(list "-DQT_BUILD_TESTS=ON")
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'disable-failing-tests
+ (lambda _
+ ;; FIXME: tst_seatv4::animatedCursor() fails here.
+ ;; See also: <https://bugreports.qt.io/browse/QTBUG-78317>
+ (substitute* "tests/auto/client/seatv4/tst_seatv4.cpp"
+ (((string-append
+ "QVERIFY\\(!cursorSurface\\(\\)->"
+ "m_waitingFrameCallbacks\\.empty\\(\\)\\);")) "")
+ (("QTRY_COMPARE\\(bufferSpy\\.count\\(\\), 1\\);") ""))))
+ (add-before 'check 'set-test-environment
+ (lambda _
+ ;; Do not fail just because /etc/machine-id is missing.
+ (setenv "DBUS_FATAL_WARNINGS" "0")
+ ;; Make Qt render "offscreen", required for tests.
+ (setenv "QT_QPA_PLATFORM" "offscreen"))))))
+ (native-inputs (list glib perl pkg-config qtdeclarative))
+ (inputs
+ (list fontconfig
+ freetype
+ libx11
+ libxcomposite
+ libxext
+ libxkbcommon
+ libxrender
+ mesa
+ mtdev
+ qtbase
+ vulkan-headers
+ wayland))
+ (synopsis "Qt Wayland module")
+ (description "The Qt Wayland module provides the QtWayland client and
+compositor libraries.")
+ (home-page (package-home-page qtbase))
+ (license (package-license qtbase))))
+
(define-public qtserialport
(package (inherit qtsvg-5)
(name "qtserialport")
@@ -1630,7 +1793,7 @@ application).")
(native-inputs '())
(inputs
(list mesa qtbase-5 qtdeclarative-5 qtwebsockets-5 zlib))
- (synopsis "QPA plugin for running an application via a browser using
+ (synopsis "QPA plugin for running applications via a browser using
streamed WebGL commands")
(description "Qt back end that uses WebGL for rendering. It allows Qt
applications (with some limitations) to run in a web browser that supports
@@ -1752,9 +1915,22 @@ that helps in Qt development.")))
(list
;; The build system attempts to fetch online resources and fails when
;; building the test suite.
- #:configure-flags #~(list "-DQT_BUILD_TESTS=OFF")))
+ #:configure-flags #~(list "-DQT_BUILD_TESTS=OFF")
+ #:phases #~(modify-phases %standard-phases
+ (add-after 'install 'sanity-check
+ (lambda* (#:key outputs #:allow-other-keys)
+ ;; This validation exists to validate that the dynamic
+ ;; library for Clang works as intended; there was
+ ;; originally problems due to left-overs patching the
+ ;; value of BUILD_SHARED_LIBS in CLANG-FROM-LLVM that
+ ;; would cause the following error: "CommandLine Error:
+ ;; Option 'filter' registered more than once!"
+ (invoke/quiet (search-input-file outputs "bin/qdoc")
+ "--help"))))))
(native-inputs (list perl qtdeclarative vulkan-headers))
- (inputs (list libxkbcommon mesa qtbase))
+ ;; Use clang-15, which is built using as a single shared library, which is
+ ;; what the build system of qttools expects.
+ (inputs (list clang-15 libxkbcommon mesa qtbase))
(home-page (package-home-page qtbase))
(synopsis "Qt Tools and Designer modules")
(description "The Qt Tools module provides a set of applications to browse
@@ -1764,6 +1940,27 @@ that helps in Qt development.")
;; LICENSES/Qt-GPL-exception-1.0.txt).
(license (list license:gpl3))))
+(define-public qttranslations
+ (package
+ (name "qttranslations")
+ (version "6.3.1")
+ (source (origin
+ (method url-fetch)
+ (uri (qt-urls name version))
+ (sha256
+ (base32
+ "15yvvxw1vngnjlly6cady05ljamg01qiaqn2vh0xkph855gdbgfp"))))
+ (build-system cmake-build-system)
+ (arguments (list #:tests? #f))
+ (native-inputs (list qtbase qttools))
+ (home-page (package-home-page qtbase))
+ (synopsis "Qt translation catalogs")
+ (description "This package contains the translations for Qt contributed by
+the Qt community.")
+ ;; GPL 3 only with Qt GPL exception 1.0 (see:
+ ;; LICENSES/Qt-GPL-exception-1.0.txt).
+ (license (list license:gpl3))))
+
(define-public qtscript
(package (inherit qtsvg-5)
(name "qtscript")
@@ -1867,12 +2064,12 @@ coloring, and many more.")))
(native-inputs
(list perl pkg-config))
(inputs
- `(("fontconfig" ,fontconfig)
- ("freetype" ,freetype)
- ("libxrender" ,libxrender)
- ("sdl2" ,sdl2)
- ("qtbase" ,qtbase-5)
- ("qtdeclarative-5" ,qtdeclarative-5)))
+ (list fontconfig
+ freetype
+ libxrender
+ sdl2
+ qtbase-5
+ qtdeclarative-5))
(synopsis "Qt Gamepad module")
(description "The Qt Gamepad module is an add-on library that enables Qt
applications to support the use of gamepad hardware and in some cases remote
@@ -2129,6 +2326,61 @@ using the Enchant spell-checking library.")
;; COPYING file specify GPL3, but source code files all refer to GPL2+.
(license license:gpl2+)))
+(define remove-third-party-files
+ #~(begin
+ (define preserved-club
+ ;; Prefix exceptions with ./ for comparison with ftw.
+ (map (cut string-append "./" <>)
+ preserved-third-party-files))
+ (define protected (make-regexp "\\.(gn|gyp)i?$"))
+ (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 loop ((parent (dirname child))
+ (parents '()))
+ (if (string=? "third_party" (basename parent))
+ (cons parent parents)
+ (loop (dirname parent)
+ (cons parent parents)))))
+ (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)))
+
+ (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)))
+
(define-public qtwebengine-5
(package
(inherit qtsvg-5)
@@ -2147,7 +2399,7 @@ using the Enchant spell-checking library.")
(srfi srfi-26)
(guix build utils)))
(snippet
- '(begin
+ #~(begin
(let ((preserved-third-party-files
'("base/third_party/double_conversion"
"base/third_party/cityhash"
@@ -2283,54 +2535,7 @@ using the Enchant spell-checking library.")
"v8/src/third_party/valgrind"
"v8/src/third_party/siphash"
"v8/third_party/v8/builtins"
- "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)))
+ "v8/third_party/inspector_protocol")))
(with-directory-excursion "src/3rdparty"
;; TODO: Try removing "gn" too for future versions of qtwebengine-5.
@@ -2339,13 +2544,7 @@ using the Enchant spell-checking library.")
(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)
+ #$remove-third-party-files
;; Use relative header locations instead of hard coded ones.
(substitute*
@@ -2393,7 +2592,7 @@ using the Enchant spell-checking library.")
cups-minimal
curl
dbus
- ffmpeg
+ ffmpeg-4
fontconfig
harfbuzz
icu4c
@@ -2428,16 +2627,16 @@ using the Enchant spell-checking library.")
pciutils
protobuf
pulseaudio
- qtbase-5
- qtdeclarative-5
qtmultimedia-5
- qtwebchannel-5
re2
snappy
eudev
valgrind
vulkan-headers
xcb-util))
+ (propagated-inputs
+ ;; Required by Qt5WebEngineCoreConfig.cmake.
+ (list qtbase-5 qtdeclarative-5 qtwebchannel-5))
(arguments
(substitute-keyword-arguments (package-arguments qtsvg-5)
((#:modules modules '())
@@ -2525,7 +2724,7 @@ and binaries removed, and adds modular support for using system libraries.")
(srfi srfi-26)
(guix build utils)))
(snippet
- '(begin
+ #~(begin
(let ((preserved-third-party-files
'("base/third_party/double_conversion"
"base/third_party/cityhash"
@@ -2547,12 +2746,25 @@ and binaries removed, and adds modular support for using system libraries.")
"third_party/angle/src/common/third_party/base"
"third_party/angle/src/common/third_party/smhasher"
"third_party/angle/src/common/third_party/xxhash"
+ "third_party/angle/src/third_party/trace_event"
+ "third_party/angle/src/third_party/volk"
"third_party/axe-core"
"third_party/blink"
"third_party/boringssl"
"third_party/boringssl/src/third_party/fiat"
"third_party/breakpad"
"third_party/brotli"
+ "third_party/catapult"
+ "third_party/catapult/common/py_vulcanize/third_party/rcssmin"
+ "third_party/catapult/common/py_vulcanize/third_party/rjsmin"
+ "third_party/catapult/third_party/polymer"
+ "third_party/catapult/tracing/third_party/d3/d3.min.js"
+ "third_party/catapult/tracing/third_party/gl-matrix/dist/gl-matrix-min.js"
+ "third_party/catapult/tracing/third_party/jpeg-js/jpeg-js-decoder.js"
+ "third_party/catapult/tracing/third_party/jszip/jszip.min.js"
+ "third_party/catapult/tracing/third_party/mannwhitneyu/mannwhitneyu.js"
+ "third_party/catapult/tracing/third_party/oboe/dist"
+ "third_party/catapult/tracing/third_party/pako/pako.min.js"
"third_party/ced"
"third_party/cld_3"
"third_party/closure_compiler"
@@ -2562,16 +2774,39 @@ and binaries removed, and adds modular support for using system libraries.")
"third_party/crc32c"
"third_party/dav1d"
"third_party/dawn"
+ "third_party/dawn/third_party/tint"
"third_party/devtools-frontend"
+ "third_party/devtools-frontend/src/front_end/third_party/i18n"
+ "third_party/devtools-frontend/src/front_end/third_party/acorn"
+ "third_party/devtools-frontend/src/front_end/third_party/acorn-loose"
+ "third_party/devtools-frontend/src/front_end/third_party/axe-core"
+ "third_party/devtools-frontend/src/front_end/third_party/chromium"
+ "third_party/devtools-frontend/src/front_end/third_party/codemirror"
+ "third_party/devtools-frontend/src/front_end/third_party/diff"
+ "third_party/devtools-frontend/src/front_end/third_party/intl-messageformat"
"third_party/devtools-frontend/src/front_end/third_party/lighthouse"
+ "third_party/devtools-frontend/src/front_end/third_party/lit-html"
+ "third_party/devtools-frontend/src/front_end/third_party/marked"
"third_party/devtools-frontend/src/front_end/third_party/wasmparser"
+ "third_party/devtools-frontend/src/third_party/typescript"
"third_party/emoji-segmenter"
- "third_party/ffmpeg"
+ "third_party/fdlibm"
+ "third_party/ffmpeg/libavcodec/avcodec.h"
+ "third_party/ffmpeg/libavcodec/packet.h"
+ "third_party/ffmpeg/libavformat/avformat.h"
+ "third_party/ffmpeg/libavformat/avio.h"
+ "third_party/ffmpeg/libavutil/avutil.h"
+ "third_party/ffmpeg/libavutil/imgutils.h"
+ "third_party/ffmpeg/libavutil/log.h"
+ "third_party/ffmpeg/libavutil/mathematics.h"
+ "third_party/ffmpeg/libavutil/opt.h"
+ "third_party/freetype"
"third_party/googletest"
- "third_party/harfbuzz-ng/utils"
+ "third_party/harfbuzz-ng"
+ "third_party/highway"
"third_party/hunspell"
"third_party/iccjpeg"
- "third_party/icu"
+ "third_party/icu" ;TODO: make pdfium use system version
"third_party/inspector_protocol"
"third_party/jinja2"
"third_party/jsoncpp"
@@ -2579,19 +2814,35 @@ and binaries removed, and adds modular support for using system libraries.")
"third_party/khronos"
"third_party/leveldatabase"
"third_party/libaddressinput"
+ "third_party/libaom"
+ "third_party/libaom/source/libaom/third_party/fastfeat"
+ "third_party/libaom/source/libaom/third_party/vector"
+ "third_party/libaom/source/libaom/third_party/x86inc"
+ "third_party/libavif"
+ "third_party/libgav1"
"third_party/libgifcodec"
"third_party/libjingle_xmpp"
"third_party/libjpeg_turbo"
- "third_party/libpng"
+ "third_party/libjxl"
+ "third_party/libpng" ;TODO: make pdfium use system version
"third_party/libsrtp"
"third_party/libsync"
"third_party/libudev"
+ "third_party/liburlpattern"
"third_party/libvpx"
"third_party/libwebm"
- "third_party/libwebp"
- "third_party/libxml"
- "third_party/libxslt"
+ "third_party/libwebp/src/webp/decode.h"
+ "third_party/libwebp/src/webp/demux.h"
+ "third_party/libwebp/src/webp/encode.h"
+ "third_party/libwebp/src/webp/format_constants.h"
+ "third_party/libwebp/src/webp/mux.h"
+ "third_party/libwebp/src/webp/mux_types.h"
+ "third_party/libwebp/src/webp/types.h"
+ "third_party/libx11"
+ "third_party/libxcb-keysyms"
+ "third_party/libxml/chromium"
"third_party/libyuv"
+ "third_party/lottie"
"third_party/lss"
"third_party/mako"
"third_party/markupsafe"
@@ -2599,18 +2850,27 @@ and binaries removed, and adds modular support for using system libraries.")
"third_party/metrics_proto"
"third_party/modp_b64"
"third_party/nasm"
+ "third_party/node"
"third_party/one_euro_filter"
- "third_party/openh264/src/codec/api/svc"
- "third_party/opus"
+ "third_party/openh264"
+ "third_party/opus/src/include/opus.h"
+ "third_party/opus/src/include/opus_custom.h"
+ "third_party/opus/src/include/opus_defines.h"
+ "third_party/opus/src/include/opus_multistream.h"
+ "third_party/opus/src/include/opus_types.h"
"third_party/ots"
"third_party/pdfium"
"third_party/pdfium/third_party/agg23"
"third_party/pdfium/third_party/base"
+ "third_party/pdfium/third_party/bigint"
"third_party/pdfium/third_party/freetype"
"third_party/pdfium/third_party/lcms"
"third_party/pdfium/third_party/libopenjpeg20"
+ "third_party/pdfium/third_party/libpng16"
+ "third_party/pdfium/third_party/libtiff"
"third_party/pdfium/third_party/skia_shared"
"third_party/perfetto"
+ "third_party/perfetto/protos/third_party/chromium"
"third_party/pffft"
"third_party/ply"
"third_party/polymer"
@@ -2626,9 +2886,18 @@ and binaries removed, and adds modular support for using system libraries.")
"third_party/skia/third_party/vulkanmemoryallocator"
"third_party/smhasher"
"third_party/snappy"
+ "third_party/speech-dispatcher"
"third_party/sqlite"
"third_party/usb_ids"
"third_party/usrsctp"
+ "third_party/vulkan-deps/glslang"
+ "third_party/vulkan-deps/spirv-headers"
+ "third_party/vulkan-deps/spirv-tools"
+ "third_party/vulkan-deps/vulkan-headers"
+ "third_party/vulkan-deps/vulkan-loader"
+ "third_party/vulkan-deps/vulkan-tools"
+ "third_party/vulkan-deps/vulkan-validation-layers"
+ "third_party/vulkan_memory_allocator"
"third_party/web-animations-js"
"third_party/webrtc"
"third_party/webrtc/common_audio/third_party/ooura"
@@ -2642,58 +2911,15 @@ and binaries removed, and adds modular support for using system libraries.")
"third_party/widevine/cdm/widevine_cdm_common.h"
"third_party/widevine/cdm/widevine_cdm_version.h"
"third_party/woff2"
- "third_party/zlib"
+ "third_party/wuffs"
+ "third_party/x11proto"
+ "third_party/zlib" ;TODO: make pdfium use system version
"url/third_party/mozilla"
"v8/src/third_party/utf8-decoder"
"v8/src/third_party/valgrind"
"v8/src/third_party/siphash"
"v8/third_party/v8/builtins"
- "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)))
- ('directory-processed
- (when (empty? child)
- (rmdir child)))
- (_ #t)))
+ "v8/third_party/inspector_protocol")))
(with-directory-excursion "src/3rdparty"
(delete-file-recursively "ninja")
@@ -2701,15 +2927,7 @@ and binaries removed, and adds modular support for using system libraries.")
(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)
+ #$remove-third-party-files
;; Use relative header locations instead of hard coded ones.
(substitute*
@@ -2744,7 +2962,7 @@ linux/libcurl_wrapper.h"
#:configure-flags
;; Use the CMake ninja generator, otherwise the build fails (see:
;; https://bugreports.qt.io/browse/QTBUG-96897).
- #~(list "-GNinja" ;
+ #~(list "-GNinja"
;; Manually add the NSS library prefix to the linker
;; search path, otherwise it fails to be linked (see:
;; https://bugreports.qt.io/browse/QTBUG-105053).
@@ -2759,15 +2977,29 @@ linux/libcurl_wrapper.h"
"-DQT_FEATURE_webengine_printing_and_pdf=OFF"
"-DQT_FEATURE_webengine_pepper_plugins=OFF" ;widevine
"-DQT_FEATURE_system_ffmpeg=ON"
+
;; Do not artificially limit codec support; video decoding is
;; done by ffmpeg.
"-DQT_FEATURE_webengine_proprietary_codecs=ON"
+
+ ;; Use system libraries where possible (see src/core/CMakeLists.txt).
"-DQT_FEATURE_webengine_system_alsa=ON"
+ "-DQT_FEATURE_webengine_system_ffmpeg=ON"
+ "-DQT_FEATURE_webengine_system_freetype=ON"
+ "-DQT_FEATURE_webengine_system_harfbuzz=ON"
"-DQT_FEATURE_webengine_system_icu=ON"
- "-DQT_FEATURE_webengine_system_libxml=ON"
+ "-DQT_FEATURE_webengine_system_lcms2=ON"
+ "-DQT_FEATURE_webengine_system_libevent=ON"
+ "-DQT_FEATURE_webengine_system_libjpeg=ON"
"-DQT_FEATURE_webengine_system_libpci=ON"
"-DQT_FEATURE_webengine_system_libpng=ON"
+ "-DQT_FEATURE_webengine_system_libwebp=ON"
+ "-DQT_FEATURE_webengine_system_libxml=ON"
+ "-DQT_FEATURE_webengine_system_libxslt=ON"
+ "-DQT_FEATURE_webengine_system_minizip=ON"
+ "-DQT_FEATURE_webengine_system_opus=ON"
"-DQT_FEATURE_webengine_system_pulseaudio=ON"
+ "-DQT_FEATURE_webengine_system_re2=ON"
"-DQT_FEATURE_webengine_system_zlib=ON")
#:phases
#~(modify-phases %standard-phases
@@ -2825,18 +3057,22 @@ linux/libcurl_wrapper.h"
(native-inputs
(modify-inputs (package-native-inputs qtwebengine-5)
(delete "python2" "python2-six")
+ (replace "node" node-lts)
(append clang-14
lld-as-ld-wrapper
- node-lts
python-wrapper
+ python-beautifulsoup4
python-html5lib)))
(inputs
(modify-inputs (package-inputs qtwebengine-5)
- (replace "qtbase" qtbase)
- (replace "qtdeclarative" qtdeclarative)
(replace "qtmultimedia" qtmultimedia)
- (replace "qtwebchannel" qtwebchannel)
+ (replace "harfbuzz" harfbuzz-5)
(append libxkbfile xkeyboard-config)))
+ (propagated-inputs
+ (modify-inputs (package-propagated-inputs qtwebengine-5)
+ (replace "qtbase" qtbase)
+ (replace "qtdeclarative" qtdeclarative)
+ (replace "qtwebchannel" qtwebchannel)))
(native-search-paths
(list (search-path-specification
(file-type 'regular)
@@ -2891,8 +3127,7 @@ system libraries.")
(string-append source "/" file)
(string-append out "/include")))
'("SingleApplication"
- "singleapplication.h" "singleapplication_p.h"))
- #t))))))
+ "singleapplication.h" "singleapplication_p.h"))))))))
(inputs
(list qtbase-5))
(home-page "https://github.com/itay-grudev/SingleApplication")
@@ -3038,9 +3273,7 @@ module provides support functions to the automatically generated code.")
(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)))
+ (("<qprinter.h>") qtprinter.h)))))
(replace 'configure
(lambda* (#:key inputs outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
@@ -3165,8 +3398,7 @@ contain over 620 classes.")
(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
@@ -3234,6 +3466,25 @@ top of the PyQt bindings for Qt. PyQt-builder is used to build PyQt itself.")
(PyQt5, PyQt4 and PySide) and additional custom QWidgets.")
(license license:expat)))
+(define-public python-qt.py
+ (package
+ (name "python-qt.py")
+ (version "1.3.7")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "Qt.py" version))
+ (sha256
+ (base32 "07rvfwzjl378j75j2va0c6xylwx16icxa6dycsjgjc329pgpng40"))))
+ (build-system python-build-system)
+ (native-inputs (list python-pyqt))
+ (home-page "https://github.com/mottosso/Qt.py")
+ (synopsis "Abstraction layer for Python Qt bindings")
+ (description
+ "This package provides an abstraction layer on top of the various Qt
+bindings (PySide, PySide2, PyQt4 and PyQt5).")
+ (license license:expat)))
+
(define-public qscintilla
(package
(name "qscintilla")
@@ -3307,8 +3558,7 @@ indicators, code completion and call tips.")
(string-append out "/lib")))
;; And fix the installed.txt file
(substitute* "installed.txt"
- (("/gnu/store/[^/]+") out)))
- #t)))))
+ (("/gnu/store/[^/]+") out))))))))
(inputs
`(("qscintilla" ,qscintilla)
("python" ,python)
@@ -3336,8 +3586,7 @@ This package provides the Python bindings.")))
(match %build-inputs
(((names . directories) ...)
(union-build (assoc-ref %outputs "out")
- directories)
- #t)))))
+ directories))))))
(inputs
`(("python-pyqt" ,python-pyqt)
("python-qscintilla" ,python-qscintilla)))
@@ -3415,8 +3664,7 @@ securely. It will not store any data unencrypted unless explicitly requested.")
(("#include \"qtlockedfile.*\\.cpp\"") "")
;; Unwrap namespace added in the vendoring process.
(("QtLP_Private::QtLockedFile")
- "QtLockedFile")))
- #t))))
+ "QtLockedFile")))))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f ; No target
@@ -3440,8 +3688,7 @@ securely. It will not store any data unencrypted unless explicitly requested.")
(("SUBDIRS\\+=examples") ""))
;; Fix deprecated functions.
(substitute* "qtsoap/src/qtsoap.cpp"
- (("toAscii") "toUtf8"))
- #t))
+ (("toAscii") "toUtf8"))))
(replace 'configure
(lambda _
(for-each (lambda (solution)
@@ -3449,16 +3696,14 @@ securely. It will not store any data unencrypted unless explicitly requested.")
(invoke "./configure" "-library")
(invoke "qmake")))
'("qtlockedfile" "qtpropertybrowser" "qtservice"
- "qtsingleapplication" "qtsoap"))
- #t))
+ "qtsingleapplication" "qtsoap"))))
(replace 'build
(lambda _
(for-each (lambda (solution)
(with-directory-excursion solution
(invoke "make")))
'("qtlockedfile" "qtpropertybrowser" "qtservice"
- "qtsingleapplication" "qtsoap"))
- #t))
+ "qtsingleapplication" "qtsoap"))))
(replace 'install
(lambda args
(for-each (lambda (solution)
@@ -3538,8 +3783,7 @@ that can be only started once per user.
;; Remove some incomplete manual pages.
(for-each delete-file (find-files "doc/man/man3" "^_tmp.*"))
(mkdir-p man)
- (copy-recursively "doc/man" man)
- #t))))))
+ (copy-recursively "doc/man" man)))))))
(home-page "http://qwt.sourceforge.net")
(synopsis "Qt widgets for plots, scales, dials and other technical software
GUI components")
@@ -3672,35 +3916,32 @@ a binding language:
@end itemize\n")
(license license:lgpl3))) ;version 3 only (+ exception)
-;; There have been no public releases yet.
(define-public qtcolorwidgets
- (let ((commit "a95f72e935fe9e046061a1d1c3930cbfbcb533e0")
- (revision "1"))
- (package
- (name "qtcolorwidgets")
- (version (git-version "0" revision commit))
- (source (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://gitlab.com/mattia.basaglia/Qt-Color-Widgets")
- (commit commit)))
- (file-name (git-file-name name version))
- (sha256
- (base32
- "0dkiwlqh2gwhlp78c1fmchj3shl4p9inspcl96ya5aa8mn6kydy8"))))
- (build-system cmake-build-system)
- (arguments `(#:tests? #f)) ; There are no tests
- (native-inputs
- (list qttools-5))
- (inputs
- (list qtbase-5))
- (home-page "https://gitlab.com/mattia.basaglia/Qt-Color-Widgets")
- (synopsis "Color management widgets")
- (description "QtColorWidgets provides a Qt color dialog that is more
+ (package
+ (name "qtcolorwidgets")
+ (version "2.2.0")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://gitlab.com/mattia.basaglia/Qt-Color-Widgets")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1fp7sr5a56bjp2abc6ng331q0bwvk6mf2nxdga81aj6cd9afs22q"))))
+ (build-system cmake-build-system)
+ (arguments '(#:tests? #f)) ;there are no tests
+ (native-inputs
+ (list qttools-5))
+ (inputs
+ (list qtbase-5))
+ (home-page "https://gitlab.com/mattia.basaglia/Qt-Color-Widgets")
+ (synopsis "Color management widgets")
+ (description "QtColorWidgets provides a Qt color dialog that is more
user-friendly than the default @code{QColorDialog} and several other
color-related widgets.")
- ;; Includes a license exception for combining with GPL2 code.
- (license license:lgpl3+))))
+ ;; Includes a license exception for combining with GPL2 code.
+ (license license:lgpl3+)))
(define-public qcustomplot
(package
@@ -3784,7 +4025,7 @@ color-related widgets.")
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'use-shiboken-dir-only
- (lambda _ (chdir "sources/shiboken2") #t))
+ (lambda _ (chdir "sources/shiboken2")))
(add-before 'configure 'make-files-writable-and-update-timestamps
(lambda _
;; The build scripts need to modify some files in
@@ -3795,13 +4036,11 @@ color-related widgets.")
(for-each (lambda (file)
(make-file-writable file)
(utime file circa-1980 circa-1980))
- (find-files ".")))
- #t))
+ (find-files ".")))))
(add-before 'configure 'set-build-env
(lambda _
(let ((llvm #$(this-package-input "clang-toolchain")))
- (setenv "CLANG_INSTALL_DIR" llvm)
- #t))))))
+ (setenv "CLANG_INSTALL_DIR" llvm)))))))
(home-page "https://wiki.qt.io/Qt_for_Python")
(synopsis
"Shiboken generates bindings for C++ libraries using CPython source code")
@@ -3839,7 +4078,7 @@ color-related widgets.")
((#:phases p)
#~(modify-phases #$p
(replace 'use-shiboken-dir-only
- (lambda _ (chdir "sources/shiboken6") #t))))
+ (lambda _ (chdir "sources/shiboken6")))))
((#:configure-flags flags)
#~(cons*
;; The RUNPATH of shibokenmodule contains the entry in build
@@ -3893,7 +4132,7 @@ color-related widgets.")
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'go-to-source-dir
- (lambda _ (chdir "sources/pyside2") #t))
+ (lambda _ (chdir "sources/pyside2")))
(add-after 'go-to-source-dir 'fix-qt-module-detection
(lambda _
;; Activate qt module support even if it not in the same
@@ -3988,7 +4227,7 @@ generate Python bindings for your C or C++ code.")
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'go-to-source-dir
- (lambda _ (chdir "sources/pyside6") #t))
+ (lambda _ (chdir "sources/pyside6")))
(add-after 'go-to-source-dir 'fix-qt-module-detection
(lambda _
(substitute* "cmake/PySideHelpers.cmake"
@@ -4048,7 +4287,7 @@ generate Python bindings for your C or C++ code.")))
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'go-to-source-dir
- (lambda _ (chdir "sources/pyside2-tools") #t)))))
+ (lambda _ (chdir "sources/pyside2-tools"))))))
(home-page "https://wiki.qt.io/Qt_for_Python")
(synopsis
"Command line tools for PySide2")
@@ -4165,7 +4404,7 @@ data.")
(native-inputs
(list pkg-config cmake))
(inputs
- (list qtbase-5 coin3D-4))
+ (list qtbase-5 coin3D))
(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
@@ -4225,8 +4464,7 @@ and import their menus over DBus.")
(lambda* (#:key tests? #:allow-other-keys)
(when tests?
(invoke "ctest" "-E" ;; These tests try connect to the internet.
- "(kdsoap-webcalls|kdsoap-webcalls_wsdl|kdsoap-test_calc)"))
- #t)))))
+ "(kdsoap-webcalls|kdsoap-webcalls_wsdl|kdsoap-test_calc)")))))))
(home-page "https://www.kdab.com/development-resources/qt-tools/kd-soap/")
(synopsis "Qt SOAP component")
(description "KD SOAP is a tool for creating client applications for web
@@ -4234,6 +4472,349 @@ services using the XML based SOAP protocol and without the need for a dedicated
web server.")
(license (list license:gpl2 license:gpl3))))
+(define-public libaccounts-qt
+ (package
+ (name "libaccounts-qt")
+ (version "1.16")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://gitlab.com/accounts-sso/libaccounts-qt")
+ (commit (string-append "VERSION_" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1vmpjvysm0ld8dqnx8msa15hlhrkny02cqycsh4k2azrnijg0xjz"))))
+ (build-system gnu-build-system)
+ (arguments
+ (list #:tests? #f ;TODO
+ #:phases
+ #~(modify-phases %standard-phases
+ (replace 'configure
+ (lambda _
+ (substitute* "tests/tst_libaccounts.pro"
+ (("QMAKE_RPATHDIR = \\$\\$\\{QMAKE_LIBDIR\\}")
+ (string-append "QMAKE_RPATHDIR ="
+ #$output "/lib")))
+ (invoke "qmake"
+ (string-append "PREFIX=" #$output)
+ (string-append "LIBDIR=" #$output "/lib")))))))
+ ;; * SignOnQt5 (required version >= 8.55), D-Bus service which performs
+ ;; user authentication on behalf of its clients,
+ ;; <https://gitlab.com/accounts-sso/signond>
+ (native-inputs (list doxygen pkg-config qtbase-5 qttools-5))
+ (inputs (list glib signond libaccounts-glib))
+ (home-page "https://accounts-sso.gitlab.io/")
+ (synopsis "Qt5 bindings for libaccounts-glib")
+ (description
+ "Accounts SSO is a framework for application developers who
+wish to acquire, use and store web account details and credentials. It
+handles the authentication process of an account and securely stores the
+credentials and service-specific settings.")
+ (license license:lgpl2.1+)))
+
+(define-public libsignon-glib
+ (package
+ (name "libsignon-glib")
+ (version "2.1")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://gitlab.com/accounts-sso/libsignon-glib")
+ (commit (string-append "VERSION_" version))
+ (recursive? #t)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0gnx9gqsh0hcfm1lk7w60g64mkn1iicga5f5xcy1j9a9byacsfd0"))))
+ (build-system meson-build-system)
+ (arguments
+ (list #:tests? #f ;TODO: ninja: no work to do.
+ #:imported-modules `((guix build python-build-system)
+ ,@%meson-build-system-modules)
+ #:modules '(((guix build python-build-system)
+ #:select (python-version))
+ (guix build meson-build-system)
+ (guix build utils))
+ #:configure-flags
+ #~(list "-Dtests=true"
+ (string-append "-Dpy-overrides-dir="
+ #$output "/lib/python"
+ (python-version #$(this-package-input
+ "python"))
+ "/site-packages/gi/overrides"))))
+ (native-inputs (list dbus
+ dbus-test-runner
+ `(,glib "bin")
+ gobject-introspection
+ gtk-doc
+ pkg-config
+ vala))
+ (inputs (list check signond python python-pygobject))
+ (propagated-inputs (list glib))
+ (home-page "https://accounts-sso.gitlab.io/libsignon-glib/")
+ (synopsis "Single signon authentication library for GLib applications")
+ (description
+ "This package provides single signon authentication library for
+GLib applications.")
+ (license license:lgpl2.1+)))
+
+(define-public packagekit-qt5
+ (package
+ (name "packagekit-qt5")
+ (version "1.0.2")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/hughsie/PackageKit-Qt")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1d20r503msw1vix3nb6a8bmdqld7fj8k9jk33bkqsc610a2zsms6"))))
+ (build-system cmake-build-system)
+ (arguments '(#:tests? #f)) ;no test suite
+ (native-inputs (list pkg-config))
+ (inputs (list packagekit qtbase-5))
+ (home-page "https://www.freedesktop.org/software/PackageKit/pk-intro.html")
+ (synopsis "Qt5 bindings for PackageKit")
+ (description "Provides Qt5 bindings to PackageKit which is a DBUS
+abstraction layer that allows the session user to manage packages in
+a secure way.")
+ (license license:lgpl2.1+)))
+
+(define-public signond
+ (package
+ (name "signond")
+ (version "8.61")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://gitlab.com/accounts-sso/signond")
+ (commit (string-append "VERSION_" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0k6saz5spys4a4p6ws0ayrjks2gqdqvz7zfmlhdpz5axha0gbqq4"))))
+ (build-system qt-build-system)
+ (native-inputs (list doxygen pkg-config qtbase-5 qttools-5))
+ (inputs (list dbus glib libaccounts-glib))
+ (arguments
+ (list #:tests? #f ; Figure out how to run tests
+ #:phases
+ #~(modify-phases %standard-phases
+ (delete 'validate-runpath)
+ (replace 'configure
+ (lambda _
+ (substitute* "src/signond/signond.pro"
+ (("/etc/")
+ (string-append #$output "/etc/")))
+ (substitute*
+ '("tests/extensions/extensions.pri"
+ "tests/signond-tests/mock-ac-plugin/plugin.pro"
+ "tests/signond-tests/identity-tool.pro"
+ "tests/signond-tests/mock-ac-plugin/identity-ac-helper.pro"
+ "tests/libsignon-qt-tests/libsignon-qt-tests.pro"
+ "tests/signond-tests/signond-tests.pri")
+ (("QMAKE_RPATHDIR = \\$\\$\\{QMAKE_LIBDIR\\}")
+ (string-append "QMAKE_RPATHDIR = "
+ #$output "/lib:"
+ #$output "/lib/signon")))
+ (invoke "qmake"
+ (string-append "PREFIX=" #$output)
+ (string-append "LIBDIR=" #$output "/lib")))))))
+ (home-page "http://accounts-sso.gitlab.io/signond/index.html")
+ (synopsis "Perform user authentication over D-Bus")
+ (description "This package provides a D-Bus service which performs user
+authentication on behalf of its clients.")
+ (license license:lgpl2.1+)))
+
+(define-public signon-plugin-oauth2
+ (package
+ (name "signon-plugin-oauth2")
+ (version "0.25")
+ (home-page "https://gitlab.com/accounts-sso/signon-plugin-oauth2")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url home-page)
+ (commit (string-append "VERSION_" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "16aslnyk8jdg03zcg97rp6qzd0gmclj14hyhliksz8jgfz1l0w7c"))))
+ (build-system qt-build-system)
+ (native-inputs (list doxygen pkg-config))
+ (inputs (list signond))
+ (arguments
+ (list #:tests? #f ;no tests
+ #:make-flags #~(list (string-append "INSTALL_ROOT=" #$output))
+ #:phases
+ #~(modify-phases %standard-phases
+ (replace 'configure
+ (lambda _
+ (substitute* "common-project-config.pri"
+ (("-Werror")
+ ""))
+ (invoke "qmake"
+ (string-append "PREFIX=" #$output)
+ (string-append "LIBDIR=" #$output "/lib")))))))
+ (synopsis "OAuth 2 plugin for signon")
+ (description
+ "This plugin for the Accounts-SSO SignOn daemon handles the OAuth
+1.0 and 2.0 authentication protocols.")
+ (license license:lgpl2.1+)))
+
+(define-public clazy
+ (package
+ (name "clazy")
+ (version "1.11")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/KDE/clazy")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1y0n1jknq566z1rifkgdm1yqb0mw564lp51jidfz7q9w91spijci"))))
+ (build-system cmake-build-system)
+ (native-inputs (list python))
+ (inputs (list clang llvm))
+ (home-page "https://github.com/KDE/clazy/")
+ (synopsis "Qt-oriented static code analyzer")
+ (description "clazy is a compiler plugin which allows @command{clang} to
+understand Qt semantics. It can emit more than fifty (50) Qt-related compiler
+warnings, ranging from unneeded memory allocations to misuses of the API,
+including @i{fix-its} for automatic refactoring.")
+ (license license:lgpl2.0+)))
+
+(define-public qt-creator
+ (package
+ (name "qt-creator")
+ (version "9.0.0")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://download.qt.io/official_releases/qtcreator/"
+ (version-major+minor version) "/" version
+ "/qt-creator-opensource-src-" version ".tar.gz"))
+ (modules '((guix build utils)))
+ (snippet '(begin
+ (for-each
+ delete-file-recursively
+ ;; Remove bundled libraries, where supported.
+ ;; TODO: package and unbundle litehtml
+ '("src/libs/3rdparty/yaml-cpp"
+ "src/shared/qbs/src/shared/qtscript/src/3rdparty"
+ "tests/unit/unittest/3rdparty"
+ ;; Marketplace recommends nonfree extensions;
+ ;; remove it.
+ "src/plugins/marketplace"))
+ (substitute* "src/plugins/CMakeLists.txt"
+ (("add_subdirectory\\(marketplace).*") ""))
+ (substitute* "src/plugins/plugins.qbs"
+ ((".*marketplace/marketplace.qbs.*") ""))))
+ (sha256
+ (base32
+ "1adyxs0cnqx14gwzkvh909c52449ia6y87n1r4qf6wwydhch43cs"))))
+ (build-system qt-build-system)
+ (arguments
+ (list
+ #:qtbase qtbase
+ #:configure-flags
+ #~(list "-DWITH_DOCS=ON"
+ "-DBUILD_DEVELOPER_DOCS=ON"
+ "-DCMAKE_VERBOSE_MAKEFILE=ON"
+ "-DWITH_TESTS=ON"
+ ;; Extend the RUNPATH with lib/qtcreator, which contains
+ ;; multiple shared objects.
+ (string-append "-DCMAKE_SHARED_LINKER_FLAGS=-Wl,-rpath="
+ #$output "/lib/qtcreator"))
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'fix-tests-build
+ (lambda _
+ ;; Add a missing link directive (see:
+ ;; https://bugreports.qt.io/browse/QTCREATORBUG-28434).
+ (substitute* "src/libs/tracing/CMakeLists.txt"
+ (("DEPENDS Utils Qt5::Qml Qt5::Quick")
+ "DEPENDS Utils Qt5::Quick")
+ (("PUBLIC_DEPENDS Qt5::Widgets")
+ "PUBLIC_DEPENDS Qt5::Widgets Qt5::Qml"))))
+ (add-after 'unpack 'patch-paths
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* '("src/libs/utils/commandline.cpp"
+ "src/libs/utils/deviceshell.cpp")
+ (("/bin/sh")
+ (search-input-file inputs "bin/sh")))
+ (substitute* "src/libs/utils/qtcprocess.cpp"
+ (("/usr/bin/env")
+ (search-input-file inputs "bin/env")))
+ (substitute* "tests/auto/utils/qtcprocess/tst_qtcprocess.cpp"
+ (("/bin/sh")
+ (which "sh")))))
+ (add-before 'build 'build-doc
+ (lambda _
+ (invoke "cmake" "--build" "." "--target=docs" "-v")))
+ (add-after 'build-doc 'install-doc
+ (lambda _
+ (invoke "cmake" "--install" "." "--prefix" #$output
+ "--component=qch_docs")
+ (invoke "cmake" "--install" "." "--prefix" #$output
+ "--component=html_docs")))
+ (replace 'check
+ ;; Loosely based on .github/workflows/build_cmake.yml.
+ (lambda* (#:key tests? parallel-tests? #:allow-other-keys)
+ (when tests?
+ (invoke "xvfb-run" ;for the 'renderpass' tests
+ "ctest" "-j" (if parallel-tests?
+ (number->string (parallel-job-count))
+ "1")
+ "--label-exclude" "exclude_from_precheck"
+ "--exclude-regex" "tst_perfdata"))))
+ (add-after 'qt-wrap 'wrap-bin
+ ;; Make a few well-integrated tools readily available.
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (wrap-program (search-input-file outputs "bin/qtcreator")
+ `("PATH" suffix ,(map (lambda (c)
+ (dirname (search-input-file inputs c)))
+ '("bin/clang-tidy"
+ "bin/clazy-standalone"
+ "bin/gdb"
+ "bin/valgrind")))))))))
+ (native-inputs
+ (list googletest
+ pkg-config
+ python
+ qttools
+ qttranslations
+ vulkan-headers
+ xvfb-run))
+ (inputs
+ (list bash-minimal
+ coreutils-minimal
+ clang
+ clazy
+ elfutils
+ gdb
+ libxkbcommon
+ llvm
+ qt5compat
+ qtdeclarative
+ qtshadertools
+ qtsvg
+ yaml-cpp
+ valgrind
+ vulkan-loader
+ `(,zstd "lib")))
+ (home-page "https://www.qt.io/")
+ (synopsis "Integrated development environment (IDE) for Qt")
+ (description "Qt Creator is an IDE tailored to the needs of Qt developers.
+It includes features such as an advanced code editor, a visual debugger and a
+@acronym{GUI, Graphical User Interface} designer.")
+ (license license:gpl3+))) ;with the Qt Company GPL Exception 1.0
+
;;;
;;; Avoid adding new packages to the end of this file. To reduce the chances
;;; of a merge conflict, place them above by existing packages with similar