Subject: [PATCH] gnu: Add kirigami.
From: Hartmut Goebel <[email-masked]>
To: [email-masked]
Date: Wed, 7 Feb 2018 00:00:00 +0100
List-Id: <debbugs-submit.debbugs.gnu.org>

---
 gnu/packages/kde-frameworks.scm | 60 +++++++++++++++++++++++++++++++++++++++++
 1 file changed, 60 insertions(+)

diff --git a/gnu/packages/kde-frameworks.scm b/gnu/packages/kde-frameworks.scm
index ef2a7cb07..946c7511a 100644
--- a/gnu/packages/kde-frameworks.scm
+++ b/gnu/packages/kde-frameworks.scm
@@ -766,6 +766,66 @@ but also for getting notified upon idle time events, such as custom timeouts,
 or user activity.")
     (license (list license:gpl2+ license:lgpl2.1+))))
 
+(define-public kirigami
+  ;; Kirigami is listed as tier 1 framework, but optionally includes
+  ;; plasma-framework which is tier 3.
+  (package
+    (name "kirigami")
+    (version "5.39.0")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "mirror://kde/stable/frameworks/"
+                    (version-major+minor version) "/"
+                    "kirigami2-" version ".tar.xz"))
+              (sha256
+               (base32
+                "0spgylk4yjy74rs5d5b28qv72qz5ra9j3wfmk6vx2b6cvf1fw517"))))
+    (properties `((upstream-name . "kirigami2")))
+    (build-system cmake-build-system)
+    (native-inputs
+     `(("extra-cmake-modules" ,extra-cmake-modules)
+       ("qttools" ,qttools)))
+    (inputs
+     `(("kwindowsystem" ,kwindowsystem)
+       ;; TODO: Find a way to activate this optional include without
+       ;; introducing a recursive dependency.
+       ;;("plasma-frameworks" ,plasma-framework) ;; Tier 3!
+       ("qtbase" ,qtbase)
+       ("qtdeclarative" ,qtdeclarative)
+       ("qtquickcontrols2" ,qtquickcontrols2)
+       ("qtsvg" ,qtsvg)
+       ;; Run-time dependency
+       ("qtgraphicaleffects" ,qtgraphicaleffects)))
+    (arguments
+     `(#:tests? #f ;; FIXME: Test suite is broken,
+       ;; see https://bugs.kde.org/show_bug.cgi?id=386456
+       ;; Note for when enabling the tests: The test-suite is meant to be run
+       ;; without prior installation, see
+       ;; https://cgit.kde.org/kirigami.git/commit/?id=24ad2c9
+       #:phases
+       (modify-phases %standard-phases
+         (add-before 'check 'check-setup
+           (lambda* (#:key outputs #:allow-other-keys)
+             ;; make Qt render "offscreen", required for tests
+             (setenv "QT_QPA_PLATFORM" "offscreen")
+             #t)))))
+    (home-page "https://community.kde.org/Frameworks")
+    (synopsis "QtQuick plugins to build user interfaces based on the KDE UX
+guidelines")
+    (description "Kirigami is a set of QtQuick components at the moment
+targeted for mobile use (in the future desktop as well) targeting both Plasma
+Mobile and Android.  It’s not a whole set of components, all the “Primitive”
+ones like buttons and textboxes are a job for QtQuickControls (soon
+QtQuickControls2) but it’s a set of high level components to make the creation
+of applications that look and feel great on mobile as well as desktop devices
+and follow the Kirigami Human Interface Guidelines.  The target of those
+components is anybody that wants to do an application using QtQuick as its
+main UI, especially if targeting a mobile platform, without adding many
+dependencies.  They work on a variety of platforms, such as Plasma Mobile,
+Desktop Linux, Android and Windows.")
+    (license license:lgpl2.1+)))
+
 (define-public kitemmodels
   (package
     (name "kitemmodels")
-- 
2.13.6