summaryrefslogtreecommitdiff
path: root/gnu/packages/qt.scm
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2022-11-28 12:26:32 +0100
committerLudovic Courtès <ludo@gnu.org>2022-11-28 12:26:32 +0100
commit459e4f2a4f2b16daded2aaba20edf3fffa4095f3 (patch)
treed1e2ada4dcfde3d3b4119087550c26856b42dbcf /gnu/packages/qt.scm
parenta3264f31df9774ea514e18ed8e7b6bcb44061edc (diff)
parente6bffa99b19fe01067937a4930f1b107bd0ac398 (diff)
Merge commit 'master' into version-1.4.0
Diffstat (limited to 'gnu/packages/qt.scm')
-rw-r--r--gnu/packages/qt.scm540
1 files changed, 486 insertions, 54 deletions
diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm
index 8cbb2c6a07..a0ced6451b 100644
--- a/gnu/packages/qt.scm
+++ b/gnu/packages/qt.scm
@@ -25,6 +25,7 @@
;;; Copyright © 2021 Nicolò Balzarotti <nicolo@nixo.xyz>
;;; Copyright © 2022 Foo Chuan Wei <chuanwei.foo@hotmail.com>
;;; Copyright © 2022 Zhu Zihao <all_but_last@163.com>
+;;; Copyright © 2022 Petr Hodina <phodina@protonmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -48,6 +49,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 +61,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 +146,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/")
@@ -219,10 +224,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-5)
- ("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 +259,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 +824,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")
@@ -1802,9 +1869,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
@@ -1814,6 +1894,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")
@@ -1917,12 +2018,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
@@ -2478,16 +2579,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 '())
@@ -2882,11 +2983,13 @@ linux/libcurl_wrapper.h"
python-html5lib)))
(inputs
(modify-inputs (package-inputs qtwebengine-5)
- (replace "qtbase" qtbase)
- (replace "qtdeclarative" qtdeclarative)
(replace "qtmultimedia" qtmultimedia)
- (replace "qtwebchannel" qtwebchannel)
(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)
@@ -2941,8 +3044,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")
@@ -3088,9 +3190,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"))
@@ -3215,8 +3315,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
@@ -3376,8 +3475,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)
@@ -3405,8 +3503,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)))
@@ -3484,8 +3581,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
@@ -3509,8 +3605,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)
@@ -3518,16 +3613,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)
@@ -3607,8 +3700,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")
@@ -3850,7 +3942,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
@@ -3861,13 +3953,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")
@@ -3905,7 +3995,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
@@ -3959,7 +4049,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
@@ -4054,7 +4144,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"
@@ -4114,7 +4204,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")
@@ -4291,8 +4381,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
@@ -4300,6 +4389,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