aboutsummaryrefslogtreecommitdiff
path: root/gnu/packages/qt.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/qt.scm')
-rw-r--r--gnu/packages/qt.scm477
1 files changed, 194 insertions, 283 deletions
diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm
index 4fbb157600..21ccf15dc3 100644
--- a/gnu/packages/qt.scm
+++ b/gnu/packages/qt.scm
@@ -105,6 +105,39 @@
#:use-module (gnu packages xml)
#:use-module (srfi srfi-1))
+(define-public qite
+ (let ((commit "75fb3b6bbd5c6a5a8fc35e08a6efbfb588ed546a")
+ (revision "74"))
+ (package
+ (name "qite")
+ (version (git-version "0" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri
+ (git-reference
+ (url "https://github.com/Ri0n/qite")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0jmmgy9pvk9hwwph1nwy7hxhczy8drhl4ymhnjjn6yx7bckssvsq"))))
+ (build-system qt-build-system)
+ (arguments
+ `(#:tests? #f ; no target
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'chdir
+ (lambda _
+ (chdir "libqite")
+ #t)))))
+ (inputs
+ `(("qtbase" ,qtbase)
+ ("qtmultimedia" ,qtmultimedia)))
+ (home-page "https://github.com/Ri0n/qite/")
+ (synopsis "Qt Interactive Text Elements")
+ (description "Qite allows to manage interactive elements on QTextEdit.")
+ (license license:asl2.0))))
+
(define-public qt5ct
(package
(name "qt5ct")
@@ -161,34 +194,52 @@ window managers, that don't provide Qt integration by themselves.")
(license license:bsd-2)))
(define-public materialdecoration
- (package
- (name "materialdecoration")
- (version "1.1.0")
- (source
- (origin
- (method git-fetch)
- (uri
- (git-reference
- (url "https://github.com/lirios/materialdecoration.git")
- (commit "2079487116c6c794af3a15452342a69293039b46")))
- (file-name
- (git-file-name name version))
- (sha256
- (base32 "1pczmxbmnsgj9s1g6ap55qq2q4ccibcnhsw9b6cl5rzgc48izy06"))))
- (build-system qt-build-system)
- (native-inputs
- `(("cmake-shared" ,cmake-shared)
- ("extra-cmake-modules" ,extra-cmake-modules)
- ("pkg-config" ,pkg-config)))
- (inputs
- `(("qtbase" ,qtbase)
- ("qtwayland" ,qtwayland)
- ("wayland" ,wayland)))
- (synopsis "Material Decoration for Qt")
- (description "MaterialDecoration is a client-side decoration for Qt
+ (let ((commit "6a5de23f2e5162fbee39d16f938473ff970a2ec0")
+ (revision "9"))
+ (package
+ (name "materialdecoration")
+ (version
+ (git-version "1.1.0" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri
+ (git-reference
+ (url "https://github.com/lirios/materialdecoration.git")
+ (commit commit)))
+ (file-name
+ (git-file-name name version))
+ (sha256
+ (base32 "1zdrcb39fhhmn76w8anv1dnspz26pdl6izmj1mlm02aza4y8ffp4"))
+ (modules '((guix build utils)
+ (ice-9 ftw)
+ (srfi srfi-1)))
+ (snippet
+ `(begin
+ (delete-file-recursively "cmake/3rdparty")))))
+ (build-system qt-build-system)
+ (arguments
+ `(#:tests? #f ; No target
+ #:configure-flags
+ (list
+ (string-append "-DCMAKE_CXX_FLAGS=-I"
+ (assoc-ref %build-inputs "qtbase")
+ "/include/qt5/QtXkbCommonSupport/"
+ ,(package-version qtbase)))))
+ (native-inputs
+ `(("cmake-shared" ,cmake-shared)
+ ("extra-cmake-modules" ,extra-cmake-modules)
+ ("pkg-config" ,pkg-config)))
+ (inputs
+ `(("qtbase" ,qtbase)
+ ("qtwayland" ,qtwayland)
+ ("wayland" ,wayland)
+ ("xkbcommon" ,libxkbcommon)))
+ (synopsis "Material Decoration for Qt")
+ (description "MaterialDecoration is a client-side decoration for Qt
applications on Wayland.")
- (home-page "https://github.com/lirios/materialdecoration")
- (license license:lgpl3+)))
+ (home-page "https://github.com/lirios/materialdecoration")
+ (license license:lgpl3+))))
(define-public grantlee
(package
@@ -226,210 +277,6 @@ other text such as code. The syntax uses the syntax of the Django template
system, and the core design of Django is reused in Grantlee.")
(license license:lgpl2.1+)))
-(define-public qt-4
- (package
- (name "qt")
- (version "4.8.7")
- (source (origin
- (method url-fetch)
- (uri (string-append "http://download.qt-project.org/archive/qt/"
- (string-copy version 0 (string-rindex version #\.))
- "/" version
- "/qt-everywhere-opensource-src-"
- version ".tar.gz"))
- (sha256
- (base32
- "183fca7n7439nlhxyg1z7aky0izgbyll3iwakw4gwivy16aj5272"))
- (patches (search-patches "qt4-ldflags.patch"))
- (modules '((guix build utils)))
- (snippet
- ;; Remove webkit module, which is not built.
- '(begin (delete-file-recursively "src/3rdparty/webkit")
- #t))))
- (build-system gnu-build-system)
- (propagated-inputs
- `(("mesa" ,mesa)))
- (inputs
- `(("alsa-lib" ,alsa-lib)
- ("bluez" ,bluez)
- ("cups" ,cups)
- ("dbus" ,dbus)
- ("double-conversion" ,double-conversion)
- ("expat" ,expat)
- ("fontconfig" ,fontconfig)
- ("freetype" ,freetype)
- ("glib" ,glib)
- ("gstreamer" ,gstreamer)
- ("gst-plugins-base" ,gst-plugins-base)
- ("icu4c" ,icu4c)
- ("jasper" ,jasper)
- ("libinput" ,libinput-minimal)
- ("libmng" ,libmng)
- ("libpci" ,pciutils)
- ("libpng" ,libpng)
- ("libtiff" ,libtiff)
- ("libwebp" ,libwebp)
- ("libx11" ,libx11)
- ("libxcomposite" ,libxcomposite)
- ("libxcursor" ,libxcursor)
- ("libxext" ,libxext)
- ("libxfixes" ,libxfixes)
- ("libxi" ,libxi)
- ("libxinerama" ,libxinerama)
- ("libxkbcommon" ,libxkbcommon)
- ("libxml2" ,libxml2)
- ("libxrandr" ,libxrandr)
- ("libxrender" ,libxrender)
- ("libxslt" ,libxslt)
- ("libxtst" ,libxtst)
- ("mtdev" ,mtdev)
- ("mariadb-dev" ,mariadb "dev")
- ("nss" ,nss)
- ("postgresql" ,postgresql)
- ("pulseaudio" ,pulseaudio)
- ("pcre2" ,pcre2)
- ("sqlite" ,sqlite)
- ("udev" ,eudev)
- ("unixodbc" ,unixodbc)
- ("wayland" ,wayland)
- ("xcb-util" ,xcb-util)
- ("xcb-util-image" ,xcb-util-image)
- ("xcb-util-keysyms" ,xcb-util-keysyms)
- ("xcb-util-renderutil" ,xcb-util-renderutil)
- ("xcb-util-wm" ,xcb-util-wm)
- ("zlib" ,zlib)
- ("libjpeg" ,libjpeg-turbo)
- ("libsm" ,libsm)
- ("openssl" ,openssl-1.0)))
- (native-inputs
- `(;; XXX: The JavaScriptCore engine does not build with the C++11 standard.
- ;; We could build it with -std=gnu++98, but then we'll get in trouble with
- ;; ICU later. Just keep using GCC 5 for now.
- ("gcc@5" ,gcc-5)
- ("bison" ,bison)
- ("flex" ,flex)
- ("gperf" ,gperf)
- ("perl" ,perl)
- ("pkg-config" ,pkg-config)
- ("python" ,python-2)
- ("ruby" ,ruby)
- ("which" ,(@ (gnu packages base) which))))
- ;; Note: there are 37 MiB of examples and a '-exampledir' configure flags,
- ;; but we can't make them a separate output because "out" and "examples"
- ;; would refer to each other.
- (outputs '("out" ;112MiB core + 37MiB examples
- "doc")) ;280MiB of HTML + code
- (arguments
- `(#:phases
- (modify-phases %standard-phases
- (add-after 'set-paths 'hide-default-gcc
- (lambda* (#:key inputs #:allow-other-keys)
- (let ((gcc (assoc-ref inputs "gcc")))
- ;; Remove the default GCC from CPLUS_INCLUDE_PATH to prevent
- ;; conflicts with the GCC 5 input.
- (setenv "CPLUS_INCLUDE_PATH"
- (string-join
- (delete (string-append gcc "/include/c++")
- (string-split (getenv "CPLUS_INCLUDE_PATH") #\:))
- ":"))
- #t)))
- (replace
- 'configure
- (lambda* (#:key outputs #:allow-other-keys)
- (let ((out (assoc-ref outputs "out"))
- (doc (assoc-ref outputs "doc")))
- (substitute* '("configure")
- (("/bin/pwd") (which "pwd")))
- (substitute* "src/corelib/global/global.pri"
- (("/bin/ls") (which "ls")))
-
- (invoke
- "./configure"
- "-verbose"
- "-prefix" out
- "-nomake" "examples demos"
- ;; Note: Don't pass '-docdir' since 'qmake' and
- ;; libQtCore would record its value, thereby defeating
- ;; the whole point of having a separate output.
- "-datadir" (string-append out "/share/qt-" ,version
- "/data")
- "-importdir" (string-append out "/lib/qt-4"
- "/imports")
- "-plugindir" (string-append out "/lib/qt-4"
- "/plugins")
- "-translationdir" (string-append out "/share/qt-" ,version
- "/translations")
- "-demosdir" (string-append out "/share/qt-" ,version
- "/demos")
- "-examplesdir" (string-append out "/share/qt-" ,version
- "/examples")
- "-opensource"
- "-confirm-license"
- ;; explicitly link with dbus instead of dlopening it
- "-dbus-linked"
- ;; Skip the webkit module; it fails to build on armhf
- ;; and, apart from that, may pose security risks.
- "-no-webkit"
- ;; don't use the precompiled headers
- "-no-pch"
- ;; drop special machine instructions not supported
- ;; on all instances of the target
- ,@(if (string-prefix? "x86_64"
- (or (%current-target-system)
- (%current-system)))
- '()
- '("-no-mmx"
- "-no-3dnow"
- "-no-sse"
- "-no-sse2"))
- "-no-sse3"
- "-no-ssse3"
- "-no-sse4.1"
- "-no-sse4.2"
- "-no-avx"))))
- (add-after
- 'install 'move-doc
- (lambda* (#:key outputs #:allow-other-keys)
- ;; Because of qt4-documentation-path.patch, documentation ends up
- ;; being installed in OUT. Move it to the right place.
- (let* ((out (assoc-ref outputs "out"))
- (doc (assoc-ref outputs "doc"))
- (olddoc (string-append out "/doc"))
- (docdir (string-append doc "/share/doc/qt-" ,version)))
- (mkdir-p (dirname docdir))
-
- ;; Note: We can't use 'rename-file' here because OUT and DOC are
- ;; different "devices" due to bind-mounts.
- (copy-recursively olddoc docdir)
- (delete-file-recursively olddoc)
- #t))))))
- (native-search-paths
- (list (search-path-specification
- (variable "QMAKEPATH")
- (files '("lib/qt5")))
- (search-path-specification
- (variable "QML2_IMPORT_PATH")
- (files '("lib/qt5/qml")))
- (search-path-specification
- (variable "QT_PLUGIN_PATH")
- (files '("lib/qt5/plugins")))
- (search-path-specification
- (variable "XDG_DATA_DIRS")
- (files '("share")))
- (search-path-specification
- (variable "XDG_CONFIG_DIRS")
- (files '("etc/xdg")))))
- (home-page "https://www.qt.io/")
- (synopsis "Cross-platform GUI library")
- (description "Qt is a cross-platform application and UI framework for
-developers using C++ or QML, a CSS & JavaScript like language.")
- (license (list license:lgpl2.1 license:lgpl3))
-
- ;; Qt 4: 'QBasicAtomicPointer' leads to build failures on MIPS;
- ;; see <http://hydra.gnu.org/build/112828>.
- ;; Qt 5: assembler error; see <http://hydra.gnu.org/build/112526>.
- (supported-systems (delete "mips64el-linux" %supported-systems))))
-
(define (qt5-urls component version)
"Return a list of URLs for VERSION of the Qt5 COMPONENT."
;; We can't use a mirror:// scheme because these URLs are not exact copies:
@@ -2012,7 +1859,7 @@ module provides support functions to the automatically generated code.")
(license license:gpl3)))
(define-public python2-sip
- (package (inherit python-sip)
+ (package/inherit python-sip
(name "python2-sip")
(native-inputs
`(("python" ,python-2)))))
@@ -2197,13 +2044,13 @@ itself.")
;; Ultimately, it would be nicer to have a more modular set of python-pyqt-*
;; packages that could be used together.
(define-public python-pyqt-without-qtwebkit
- (package (inherit python-pyqt)
+ (package/inherit python-pyqt
(name "python-pyqt-without-qtwebkit")
(inputs
(alist-delete "qtwebkit" (package-inputs python-pyqt)))))
(define-public python2-pyqt
- (package (inherit python-pyqt)
+ (package/inherit python-pyqt
(name "python2-pyqt")
(propagated-inputs
`(("python-enum34" ,python2-enum34)
@@ -2235,53 +2082,6 @@ itself.")
("qtwebchannel" ,qtwebchannel)
("qtwebengine" ,qtwebengine)))))
-(define-public python2-pyqt-4
- (package (inherit python-pyqt)
- (name "python2-pyqt")
- (version "4.12.3")
- (source
- (origin
- (method url-fetch)
- (uri
- (string-append "mirror://sourceforge/pyqt/PyQt4/"
- "PyQt-" version "/PyQt4_gpl_x11-"
- version ".tar.gz"))
- (sha256
- (base32
- "0wnlasg62rm5d39nq1yw4namcx2ivxgzl93r5f2vb9s0yaz5l3x0"))))
- (native-inputs
- `(("qt" ,qt-4)))
- (inputs `(("python" ,python-2)))
- (propagated-inputs
- `(("python-sip" ,python2-sip)))
- (arguments
- `(#:tests? #f ; no check target
- #:modules ((srfi srfi-1)
- ,@%gnu-build-system-modules)
- #:phases
- (modify-phases %standard-phases
- (replace 'configure
- (lambda* (#:key inputs outputs #:allow-other-keys)
- (let* ((out (assoc-ref outputs "out"))
- (bin (string-append out "/bin"))
- (sip (string-append out "/share/sip"))
- (python (assoc-ref inputs "python"))
- (python-version
- (last (string-split python #\-)))
- (python-major+minor
- (string-join
- (take (string-split python-version #\.) 2)
- "."))
- (lib (string-append out "/lib/python"
- python-major+minor
- "/site-packages")))
- (invoke "python" "configure.py"
- "--confirm-license"
- "--bindir" bin
- "--destdir" lib
- "--sipdir" sip)))))))
- (license (list license:gpl2 license:gpl3)))) ; choice of either license
-
(define-public python-qtpy
(package
(name "python-qtpy")
@@ -2349,7 +2149,7 @@ indicators, code completion and call tips.")
(license license:gpl3+)))
(define-public python-qscintilla
- (package (inherit qscintilla)
+ (package/inherit qscintilla
(name "python-qscintilla")
(arguments
`(#:configure-flags
@@ -2397,7 +2197,7 @@ This package provides the Python bindings.")))
;; variables such as PYTHONPATH, so we need to build a union package to make
;; it work.
(define-public python-pyqt+qscintilla
- (package (inherit python-pyqt)
+ (package/inherit python-pyqt
(name "python-pyqt+qscintilla")
(source #f)
(build-system trivial-build-system)
@@ -2455,6 +2255,117 @@ This package provides the Python bindings.")))
securely. It will not store any data unencrypted unless explicitly requested.")
(license license:bsd-3)))
+(define-public qtsolutions
+ (let ((commit "9568abd142d581b67b86a5f63d823a34b0612702")
+ (revision "53"))
+ (package
+ (name "qtsolutions")
+ (version (git-version "0" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/qtproject/qt-solutions")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "17fnmassflm3vxi0krpr6fff368jy38cby31a48rban4nqqmgx7n"))
+ (modules '((guix build utils)
+ (ice-9 ftw)
+ (srfi srfi-1)))
+ (snippet
+ ;; Unvendor QtLockFile from QtSingleApplication.
+ '(begin
+ (with-directory-excursion "qtsingleapplication/src"
+ (for-each delete-file
+ (find-files "." "qtlockedfile.*\\.(h|cpp)"))
+ (substitute* "qtsingleapplication.pri"
+ ;; Add include path of LockedFile.
+ (("INCLUDEPATH \\+=")
+ "INCLUDEPATH += ../../qtlockedfile/src")
+ ;; Link library of LockedFile.
+ (("LIBS \\+=")
+ "LIBS += -lQtSolutions_LockedFile"))
+ (substitute* '("qtlocalpeer.h" "qtlocalpeer.cpp")
+ (("#include \"qtlockedfile.*\\.cpp\"") "")
+ ;; Unwrap namespace added in the vendoring process.
+ (("QtLP_Private::QtLockedFile")
+ "QtLockedFile")))
+ #t))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:tests? #f ; No target
+ #:imported-modules
+ ((guix build copy-build-system)
+ ,@%gnu-build-system-modules)
+ #:modules
+ (((guix build copy-build-system) #:prefix copy:)
+ (guix build gnu-build-system)
+ (guix build utils))
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'patch-source
+ (lambda* (#:key outputs #:allow-other-keys)
+ (substitute* (find-files "." "common.pri")
+ ;; Remove unnecessary prefixes/suffixes in library names.
+ (("qt5") "qt")
+ (("-head") ""))
+ ;; Disable building of examples.
+ (substitute* (find-files "." "\\.pro$")
+ (("SUBDIRS\\+=examples") ""))
+ ;; Fix deprecated functions.
+ (substitute* "qtsoap/src/qtsoap.cpp"
+ (("toAscii") "toUtf8"))
+ #t))
+ (replace 'configure
+ (lambda _
+ (for-each (lambda (solution)
+ (with-directory-excursion solution
+ (invoke "./configure" "-library")
+ (invoke "qmake")))
+ '("qtlockedfile" "qtpropertybrowser" "qtservice"
+ "qtsingleapplication" "qtsoap"))
+ #t))
+ (replace 'build
+ (lambda _
+ (for-each (lambda (solution)
+ (with-directory-excursion solution
+ (invoke "make")))
+ '("qtlockedfile" "qtpropertybrowser" "qtservice"
+ "qtsingleapplication" "qtsoap"))
+ #t))
+ (replace 'install
+ (lambda args
+ (for-each (lambda (solution)
+ (with-directory-excursion solution
+ (apply
+ (assoc-ref copy:%standard-phases 'install)
+ #:install-plan
+ '(("src" "include" #:include-regexp ("\\.h$"))
+ ("lib" "lib"))
+ args)))
+ '("qtlockedfile" "qtpropertybrowser" "qtservice"
+ "qtsingleapplication" "qtsoap")))))))
+ (inputs
+ `(("qtbase" ,qtbase)))
+ (synopsis "Collection of Qt extensions")
+ (description "QtSolutions is a set of components extending Qt.
+@itemize
+@item QtLockedFile: A class that extends QFile with advisory locking functions.
+@item QtPropertyBrowser: A framework that enables the user to edit a set of
+properties.
+@item QtService: A helper for writing services such as Unix daemons.
+@item QtSingleApplication: A component that provides support for applications
+that can be only started once per user.
+@item QtSoap: A component that provides basic web service support with version
+1.1 of the SOAP protocol.
+@end itemize\n")
+ (home-page "https://doc.qt.io/archives/qq/qq09-qt-solutions.html")
+ (license (list license:bsd-3
+ ;; QScriptParser and QScriptGrammar specifically allow
+ ;; redistribution under GPL3 or LGPL2.1
+ license:gpl3 license:lgpl2.1)))))
+
(define-public qwt
(package
(name "qwt")