From 0b33f8d10fc3de8652932b46a485b78e7aa305c3 Mon Sep 17 00:00:00 2001 From: Raghav Gururajan Date: Sun, 7 Mar 2021 10:44:55 -0500 Subject: [PATCH 2/3] gnu: Add qtsolutions. * gnu/packages/qt.scm (qtsolutions): New variable. --- gnu/packages/qt.scm | 110 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 110 insertions(+) diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm index c49251053d..66483f1c48 100644 --- a/gnu/packages/qt.scm +++ b/gnu/packages/qt.scm @@ -105,6 +105,116 @@ #:use-module (gnu packages xml) #:use-module (srfi srfi-1)) +(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://code.qt.io/qt-solutions/qt-solutions") + (commit commit))) + (file-name + (git-file-name name version)) + (sha256 + (base32 "17fnmassflm3vxi0krpr6fff368jy38cby31a48rban4nqqmgx7n")))) + (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 prefix in library names. + (("qt5") + "qt") + ;; Remove suffix in library names. + (("-head") + "") + ;; Generate libraries directly in output. + (("\\$\\$PWD") + (assoc-ref outputs "out"))) + ;; Disable building of examples. + (substitute* (find-files "." "\\.pro$") + (("SUBDIRS\\+=examples") + "")) + ;; Fix deprecated functions. + (substitute* "qtsoap/src/qtsoap.cpp" + (("toAscii") + "toLatin1")) + #t)) + (replace 'configure + (lambda _ + (for-each (lambda (solution) + (with-directory-excursion solution + (invoke "./configure" "-library") + (invoke "qmake"))) + (list + "qtlockedfile" + "qtpropertybrowser" + "qtservice" + "qtsingleapplication" + "qtsoap")) + #t)) + (replace 'build + (lambda _ + (for-each (lambda (solution) + (with-directory-excursion solution + (invoke "make"))) + (list + "qtlockedfile" + "qtpropertybrowser" + "qtservice" + "qtsingleapplication" + "qtsoap")) + #t)) + (replace 'install + (lambda args + (apply (assoc-ref copy:%standard-phases 'install) + #:install-plan + '(("qtlockedfile/src" "include/qtlockedfile" + #:include-regexp ("\\.h$")) + ("qtpropertybrowser/src" "include/qtpropertybrowser" + #:include-regexp ("\\.h$")) + ("qtservice/src" "include/qtservice" + #:include-regexp ("\\.h$")) + ("qtsingleapplication/src" "include/qtsingleapplication" + #:include-regexp ("\\.h$")) + ("qtsoap/src" "include/qtsoap" + #:include-regexp ("\\.h$"))) + args)))))) + (inputs + `(("qtbase" ,qtbase))) + (synopsis "Qt Solutions") + (description "QtSolutions are set of components that extends 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 component useful for developing Windows services and 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 license:lgpl2.1+)))) + (define-public qite (let ((commit "75fb3b6bbd5c6a5a8fc35e08a6efbfb588ed546a") (revision "74")) -- 2.30.1