gnu: python-babel: Update to 2.7.0.
[guix.git] / gnu / packages / kde-frameworks.scm
blobec735d8903be900b6f9d4d0f9ebf84054f3d63f7
1 ;;; GNU Guix --- Functional package management for GNU
2 ;;; Copyright © 2015 Andreas Enge <andreas@enge.fr>
3 ;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
4 ;;; Copyright © 2016-2019 Hartmut Goebel <h.goebel@crazy-compilers.com>
5 ;;; Copyright © 2016 David Craven <david@craven.ch>
6 ;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be>
7 ;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
8 ;;; Copyright © 2019 Ricardo Wurmus <rekado@elephly.net>
9 ;;;
10 ;;; This file is part of GNU Guix.
11 ;;;
12 ;;; GNU Guix is free software; you can redistribute it and/or modify it
13 ;;; under the terms of the GNU General Public License as published by
14 ;;; the Free Software Foundation; either version 3 of the License, or (at
15 ;;; your option) any later version.
16 ;;;
17 ;;; GNU Guix is distributed in the hope that it will be useful, but
18 ;;; WITHOUT ANY WARRANTY; without even the implied warranty of
19 ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
20 ;;; GNU General Public License for more details.
21 ;;;
22 ;;; You should have received a copy of the GNU General Public License
23 ;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
25 (define-module (gnu packages kde-frameworks)
26   #:use-module (guix build-system cmake)
27   #:use-module (guix download)
28   #:use-module ((guix licenses) #:prefix license:)
29   #:use-module (guix packages)
30   #:use-module (guix utils)
31   #:use-module (gnu packages)
32   #:use-module (gnu packages acl)
33   #:use-module (gnu packages admin)
34   #:use-module (gnu packages aidc)
35   #:use-module (gnu packages attr)
36   #:use-module (gnu packages avahi)
37   #:use-module (gnu packages base)
38   #:use-module (gnu packages boost)
39   #:use-module (gnu packages bison)
40   #:use-module (gnu packages boost)
41   #:use-module (gnu packages compression)
42   #:use-module (gnu packages databases)
43   #:use-module (gnu packages disk)
44   #:use-module (gnu packages docbook)
45   #:use-module (gnu packages flex)
46   #:use-module (gnu packages freedesktop)
47   #:use-module (gnu packages gettext)
48   #:use-module (gnu packages gl)
49   #:use-module (gnu packages glib)
50   #:use-module (gnu packages gnome)
51   #:use-module (gnu packages gnupg)
52   #:use-module (gnu packages gperf)
53   #:use-module (gnu packages graphics)
54   #:use-module (gnu packages gstreamer)
55   #:use-module (gnu packages image)
56   #:use-module (gnu packages kerberos)
57   #:use-module (gnu packages libreoffice)
58   #:use-module (gnu packages linux)
59   #:use-module (gnu packages mp3)
60   #:use-module (gnu packages openbox)
61   #:use-module (gnu packages pdf)
62   #:use-module (gnu packages pcre)
63   #:use-module (gnu packages perl)
64   #:use-module (gnu packages pkg-config)
65   #:use-module (gnu packages polkit)
66   #:use-module (gnu packages python)
67   #:use-module (gnu packages python-xyz)
68   #:use-module (gnu packages qt)
69   #:use-module (gnu packages textutils)
70   #:use-module (gnu packages tls)
71   #:use-module (gnu packages version-control)
72   #:use-module (gnu packages video)
73   #:use-module (gnu packages web)
74   #:use-module (gnu packages xml)
75   #:use-module (gnu packages xorg)
76   #:use-module (srfi srfi-1))
78 (define-public extra-cmake-modules
79   (package
80     (name "extra-cmake-modules")
81     (version "5.55.0")
82     (source (origin
83               (method url-fetch)
84               (uri (string-append
85                     "mirror://kde/stable/frameworks/"
86                     (version-major+minor version) "/"
87                     name "-" version ".tar.xz"))
88               (sha256
89                (base32
90                 "1x868hs9jiqzkqx7gld4mdm5dzfxc5kann22y15a4f7g5a957534"))))
91     (build-system cmake-build-system)
92     (native-inputs
93      `(("qtbase" ,qtbase))) ; For tests (needs qmake)
94     (arguments
95      `(#:phases
96        (modify-phases %standard-phases
97          (add-after 'unpack 'fix-lib-path
98            (lambda _
99              ;; Always install into /lib and not into /lib64.
100              (substitute* "kde-modules/KDEInstallDirs.cmake"
101                (("\"lib64\"") "\"lib\"")
102                ;; TODO: Base the following on values taken from Qt
103                ;; Install plugins into lib/qt5/plugins
104                ;; TODO: Check if this is okay for Android, too
105                ;; (see comment in KDEInstallDirs.cmake)
106                (("_define_relative\\(QTPLUGINDIR \"\\$\\{_pluginsDirParent}\" \"plugins\"")
107                 "_define_relative(QTPLUGINDIR \"${_pluginsDirParent}\" \"qt5/plugins\"")
108                ;; Install imports into lib/qt5/imports
109                (("_define_relative\\(QTQUICKIMPORTSDIR QTPLUGINDIR \"imports\"")
110                 "_define_relative(QTQUICKIMPORTSDIR LIBDIR \"qt5/imports\"")
111                ;; Install qml-files into lib/qt5/qml
112                (("_define_relative\\(QMLDIR LIBDIR \"qml\"")
113                 "_define_relative(QMLDIR LIBDIR \"qt5/qml\""))
114              (substitute* "modules/ECMGeneratePriFile.cmake"
115                ;; Install pri-files into lib/qt5/mkspecs
116                (("set\\(ECM_MKSPECS_INSTALL_DIR mkspecs/modules")
117                 "set(ECM_MKSPECS_INSTALL_DIR lib/qt5/mkspecs/modules"))
118              #t))
119          ;; install and check phase are swapped to prevent install from failing
120          ;; after testsuire has run
121          (add-after 'install 'check-post-install
122            (assoc-ref %standard-phases 'check))
123          (delete 'check))))
124     ;; optional dependencies - to save space, we do not add these inputs.
125     ;; Sphinx > 1.2:
126     ;;   Required to build Extra CMake Modules documentation in Qt Help format.
127     ;; Qt5LinguistTools , Qt5 linguist tools. , <http://www.qt.io/>
128     ;;   Required to run tests for the ECMPoQmTools module.
129     ;; Qt5Core
130     ;;   Required to run tests for the ECMQtDeclareLoggingCategory module,
131     ;;   and for some tests of the KDEInstallDirs module.
132     (home-page "https://community.kde.org/Frameworks")
133     (synopsis "CMake module files for common software used by KDE")
134     (description "The Extra CMake Modules package, or ECM, adds to the
135 modules provided by CMake to find common software.  In addition, it provides
136 common build settings used in software produced by the KDE community.")
137     (license license:bsd-3)))
139 (define-public phonon
140   (package
141     (name "phonon")
142     (version "4.10.1")
143     (source (origin
144               (method url-fetch)
145               (uri (string-append
146                     "mirror://kde/stable/phonon"
147                     "/" version "/"
148                     name "-" version ".tar.xz"))
149               (sha256
150                (base32
151                 "1dwdw0hm6685psrp7v9frhkhqvsxrbdnm3gw794j5z7g3brqvag5"))))
152     (build-system cmake-build-system)
153     (native-inputs
154      ;; TODO: Think about adding pulseaudio. Is it required for sound?
155      ;; TODO: Add building the super experimental QML support
156      `(("extra-cmake-modules" ,extra-cmake-modules)
157        ("pkg-config" ,pkg-config)
158        ("qttools" ,qttools)))
159     (inputs
160      `(("qtbase" ,qtbase)))
161     (arguments
162      `(#:configure-flags
163        '("-DCMAKE_CXX_FLAGS=-fPIC"
164          "-DPHONON_BUILD_PHONON4QT5=ON")
165        #:phases
166        (modify-phases %standard-phases
167          (add-before 'install 'patch-installdir
168            (lambda* (#:key inputs outputs #:allow-other-keys)
169              (let ((regex (string-append "(INSTALL DESTINATION \")"
170                                          (assoc-ref inputs "qtbase"))))
171                (substitute* "cmake_install.cmake"
172                  ((regex all dest)
173                   (string-append dest (assoc-ref outputs "out")))))
174            #t)))))
175     (home-page "https://phonon.kde.org")
176     (synopsis "KDE's multimedia library")
177     (description "KDE's multimedia library.")
178     (license license:lgpl2.1+)))
180 (define-public phonon-backend-gstreamer
181   (package
182     (name "phonon-backend-gstreamer")
183     (version "4.9.0")
184     (source (origin
185               (method url-fetch)
186               (uri (string-append
187                     "mirror://kde/stable/phonon/"
188                     name "/" version "/"
189                     name "-" version ".tar.xz"))
190               (sha256
191                (base32
192                 "1wc5p1rqglf0n1avp55s50k7fjdzdrhg0gind15k8796w7nfbhyf"))))
193     (build-system cmake-build-system)
194     (native-inputs
195      `(("extra-cmake-modules" ,extra-cmake-modules)
196        ("pkg-config" ,pkg-config)))
197     (inputs
198      `(("qtbase" ,qtbase)
199        ("phonon" ,phonon)
200        ("qtbase" ,qtbase)
201        ("qtx11extras" ,qtx11extras)
202        ("gstreamer" ,gstreamer)
203        ("gst-plugins-base" ,gst-plugins-base)
204        ("libxml2" ,libxml2)))
205     (arguments
206      `(#:configure-flags
207        '( "-DPHONON_BUILD_PHONON4QT5=ON")))
208     (home-page "https://phonon.kde.org")
209     (synopsis "Phonon backend which uses GStreamer")
210     (description "Phonon makes use of backend libraries to provide sound.
211 Phonon-GStreamer is a backend based on the GStreamer multimedia library.")
212     ;; license: source files mention "either version 2.1 or 3"
213     (license (list license:lgpl2.1 license:lgpl3))))
215 (define-public kpmcore
216   (package
217     (name "kpmcore")
218     (version "3.3.0")
219     (source (origin
220               (method url-fetch)
221               (uri (string-append
222                     "mirror://kde/stable/kpmcore"
223                     "/" version "/src/"
224                     name "-" version ".tar.xz"))
225               (sha256
226                (base32
227                 "0s6v0jfrhjg31ri5p6h9n4w29jvasf5dj954j3vfpzl91lygmmmq"))))
228     (build-system cmake-build-system)
229     (native-inputs
230      `(("extra-cmake-modules" ,extra-cmake-modules)
231        ("pkg-config" ,pkg-config)))
232     (inputs
233      `(("kconfigwidgets" ,kconfigwidgets)
234        ("kiconthemes" ,kiconthemes)
235        ("kio" ,kio)
236        ("ki18n" ,ki18n)
237        ("kservice" ,kservice)
238        ("libatasmart" ,libatasmart)
239        ("parted" ,parted)
240        ("qtbase" ,qtbase)
241        ("util-linux" ,util-linux)))
242     (home-page "https://community.kde.org/Frameworks")
243     (synopsis "Library for managing partitions")
244     (description "Library for managing partitions.")
245     (license license:gpl3+)))
248 ;; Tier 1
250 ;; Tier 1 frameworks depend only on Qt (and possibly a small number of other
251 ;; third-party libraries), so can easily be used by an Qt-based project.
253 (define-public attica
254   (package
255     (name "attica")
256     (version "5.55.0")
257     (source (origin
258               (method url-fetch)
259               (uri (string-append
260                     "mirror://kde/stable/frameworks/"
261                     (version-major+minor version) "/"
262                     name "-" version ".tar.xz"))
263               (sha256
264                (base32
265                 "0bsn9mi3nj23k2r3mfgjm9i1mp8qnwf08xn9x757wk3xas0cx98v"))))
266     (build-system cmake-build-system)
267     (arguments
268      `(#:phases
269        (modify-phases %standard-phases
270          (add-after 'unpack 'disable-network-tests
271            (lambda _
272              ;; These tests require network access.
273              (substitute* "autotests/CMakeLists.txt"
274                ((".*providertest.cpp") "")))))))
275     (native-inputs
276      `(("extra-cmake-modules" ,extra-cmake-modules)))
277     (inputs
278      `(("qtbase" ,qtbase)))
279     (home-page "https://community.kde.org/Frameworks")
280     (synopsis "Open Collaboration Service client library")
281     (description "Attica is a Qt library that implements the Open
282 Collaboration Services API version 1.6.
284 It grants easy access to the services such as querying information about
285 persons and contents.  The library is used in KNewStuff3 as content provider.
286 In order to integrate with KDE's Plasma Desktop, a platform plugin exists in
287 kdebase.
289 The REST API is defined here:
290 http://freedesktop.org/wiki/Specifications/open-collaboration-services/")
291     (license (list license:lgpl2.1+ license:lgpl3+))))
293 (define-public bluez-qt
294   (package
295     (name "bluez-qt")
296     (version "5.55.0")
297     (source (origin
298               (method url-fetch)
299               (uri (string-append
300                     "mirror://kde/stable/frameworks/"
301                     (version-major+minor version) "/"
302                     name "-" version ".tar.xz"))
303               (sha256
304                (base32
305                 "1ixad1ya3c339c675w8nwmbga8ydq16db9fk2az3gjm68z3dch8a"))))
306     (build-system cmake-build-system)
307     (native-inputs
308      `(("dbus" ,dbus)
309        ("extra-cmake-modules" ,extra-cmake-modules)))
310     (inputs
311      ;; TODO: qtdeclarative (yields one failing test)
312      `(("qtbase" ,qtbase)))
313     (arguments
314      `(#:configure-flags
315        (list (string-append
316               "-DUDEV_RULES_INSTALL_DIR=" %output "/lib/udev/rules.d"))
317        ;; TODO: Make tests pass: DBUS_FATAL_WARNINGS=0 still yields 7/8 tests
318        ;; failing.  When running after install, tests hang.
319        #:tests? #f))
320     (home-page "https://community.kde.org/Frameworks")
321     (synopsis "QML wrapper for BlueZ")
322     (description "bluez-qt is a Qt-style library for accessing the bluez
323 Bluetooth stack.  It is used by the KDE Bluetooth stack, BlueDevil.")
324     (license (list license:lgpl2.1+ license:lgpl3+))))
326 (define-public breeze-icons
327   (package
328     (name "breeze-icons")
329     (version "5.55.0")
330     (source (origin
331               (method url-fetch)
332               (uri (string-append
333                     "mirror://kde/stable/frameworks/"
334                     (version-major+minor version) "/"
335                     name "-" version ".tar.xz"))
336               (sha256
337                (base32
338                 "03mb7x8mc2h6cjb4mrifrbkbpj3lv9c0mg4m619rqiydg0p1yf49"))))
339     (build-system cmake-build-system)
340     (native-inputs
341      `(("extra-cmake-modules" ,extra-cmake-modules)
342        ("fdupes" ,fdupes)
343        ("libxml2" ,libxml2)))
344     (inputs
345      `(("qtbase" ,qtbase)))
346     (home-page "https://community.kde.org/Frameworks")
347     (synopsis "Default KDE Plasma 5 icon theme")
348     (description "Breeze provides a freedesktop.org compatible icon theme.
349 It is the default icon theme for the KDE Plasma 5 desktop.")
350     ;; The license file mentions lgpl3+. The license files in the source
351     ;; directories are lgpl3, while the top directory contains the lgpl2.1.
352     ;; text.
353     (license license:lgpl3+)))
355 (define-public kapidox
356   (package
357     (name "kapidox")
358     (version "5.55.0")
359     (source (origin
360               (method url-fetch)
361               (uri (string-append
362                     "mirror://kde/stable/frameworks/"
363                     (version-major+minor version) "/"
364                     name "-" version ".tar.xz"))
365               (sha256
366                (base32
367                 "0x41adp3rnvr6njc57ffdyh6d5i5aw13xcjdr4p6kacw9pk63ajf"))))
368     (build-system cmake-build-system)
369     (arguments
370      `(#:tests? #f)) ; has no test target
371     (native-inputs
372      `(("extra-cmake-modules" ,extra-cmake-modules)))
373     (propagated-inputs
374      ;; kapidox is a python programm
375      ;; TODO: check if doxygen has to be installed, the readme does not
376      ;; mention it. The openSuse .rpm lists doxygen, graphviz, graphviz-gd,
377      ;; and python-xml.
378      `(("python" ,python)
379        ("python-jinja2" ,python-jinja2)
380        ("python-pyyaml" ,python-pyyaml)))
381     (inputs
382      `(("qtbase" ,qtbase)))
383     (home-page "https://community.kde.org/Frameworks")
384     (synopsis "KDE Doxygen Tools")
385     (description "This framework contains scripts and data for building API
386 documentation (dox) in a standard format and style for KDE.
388 For the actual documentation extraction and formatting the Doxygen tool is
389 used, but this framework provides a wrapper script to make generating the
390 documentation more convenient (including reading settings from the target
391 framework or other module) and a standard template for the generated
392 documentation.")
393     ;; Most parts are bsd-2, but incuded jquery is expat
394     ;; This list is taken from http://packaging.neon.kde.org/cgit/
395     (license (list license:bsd-2 license:expat))))
397 (define-public karchive
398   (package
399     (name "karchive")
400     (version "5.55.0")
401     (source (origin
402               (method url-fetch)
403               (uri (string-append
404                     "mirror://kde/stable/frameworks/"
405                     (version-major+minor version) "/"
406                     name "-" version ".tar.xz"))
407               (sha256
408                (base32
409                 "1llznxc5wjjnmbjx8iwi3a93gc2z0z344viknsgls1fwdjjfyxc4"))))
410     (build-system cmake-build-system)
411     (native-inputs
412      `(("extra-cmake-modules" ,extra-cmake-modules)))
413     (inputs
414      `(("bzip2" ,bzip2)
415        ("qtbase" ,qtbase)
416        ("xz" ,xz)
417        ("zlib" ,zlib)))
418     (home-page "https://community.kde.org/Frameworks")
419     (synopsis "Qt 5 addon providing access to numerous types of archives")
420     (description "KArchive provides classes for easy reading, creation and
421 manipulation of @code{archive} formats like ZIP and TAR.
423 It also provides transparent compression and decompression of data, like the
424 GZip format, via a subclass of QIODevice.")
425     ;; The included licenses is are gpl2 and lgpl2.1, but the sources are
426     ;; under a variety of licenses.
427     ;; This list is taken from http://packaging.neon.kde.org/cgit/
428     (license (list license:lgpl2.1 license:lgpl2.1+
429                    license:lgpl3+ license:bsd-2))))
431 (define-public kcodecs
432   (package
433     (name "kcodecs")
434     (version "5.55.0")
435     (source (origin
436               (method url-fetch)
437               (uri (string-append
438                     "mirror://kde/stable/frameworks/"
439                     (version-major+minor version) "/"
440                     name "-" version ".tar.xz"))
441               (sha256
442                (base32
443                 "0491j6l28jwfpgaqs2816qpyggnra2df33iw3fgvb0wd4r4gvmjb"))))
444     (build-system cmake-build-system)
445     (native-inputs
446      `(("extra-cmake-modules" ,extra-cmake-modules)
447        ("gperf" ,gperf)
448        ("qttools" ,qttools)))
449     (inputs
450      `(("qtbase" ,qtbase)))
451     (home-page "https://community.kde.org/Frameworks")
452     (synopsis "String encoding and manipulating library")
453     (description "KCodecs provide a collection of methods to manipulate
454 strings using various encodings.
456 It can automatically determine the charset of a string, translate XML
457 entities, validate email addresses, and find encodings by name in a more
458 tolerant way than QTextCodec (useful e.g. for data coming from the
459 Internet).")
460     ;; The included licenses is are gpl2 and lgpl2.1, but the sources are
461     ;; under a variety of licenses.
462     ;; This list is taken from http://packaging.neon.kde.org/cgit/
463     (license (list license:gpl2 license:gpl2+ license:bsd-2
464                    license:lgpl2.1 license:lgpl2.1+ license:expat
465                    license:lgpl3+ license:mpl1.1))))
467 (define-public kconfig
468   (package
469     (name "kconfig")
470     (version "5.55.0")
471     (source (origin
472               (method url-fetch)
473               (uri (string-append
474                     "mirror://kde/stable/frameworks/"
475                     (version-major+minor version) "/"
476                     name "-" version ".tar.xz"))
477               (sha256
478                (base32
479                 "06gscipc3914gwiswhp1xx4sy74bpy645ykq2i6r1sb6sm16hmja"))))
480     (build-system cmake-build-system)
481     (native-inputs
482      `(("dbus" ,dbus)
483        ("extra-cmake-modules" ,extra-cmake-modules)
484        ("inetutils" ,inetutils)
485        ("qttools" ,qttools)
486        ("xorg-server" ,xorg-server)))
487     (inputs
488      `(("qtbase" ,qtbase)))
489     (arguments
490      `(#:phases
491        (modify-phases %standard-phases
492          (add-before 'check 'check-setup
493            (lambda _
494              (setenv "HOME" (getcwd))
495              (setenv "TMPDIR" (getcwd))
496              #t))
497          (replace 'check
498            (lambda _
499              (setenv "QT_QPA_PLATFORM" "offscreen")
500              (invoke "dbus-launch" "ctest" "."))))))
501     (home-page "https://community.kde.org/Frameworks")
502     (synopsis "Kconfiguration settings framework for Qt")
503     (description "KConfig provides an advanced configuration system.
504 It is made of two parts: KConfigCore and KConfigGui.
506 KConfigCore provides access to the configuration files themselves.
507 It features:
509 @enumerate
510 @item Code generation: describe your configuration in an XML file, and use
511 `kconfig_compiler to generate classes that read and write configuration
512 entries.
514 @item Cascading configuration files (global settings overridden by local
515 settings).
517 @item Optional shell expansion support (see docs/options.md).
519 @item The ability to lock down configuration options (see docs/options.md).
520 @end enumerate
522 KConfigGui provides a way to hook widgets to the configuration so that they
523 are automatically initialized from the configuration and automatically
524 propagate their changes to their respective configuration files.")
525     ;; The included licenses is are gpl2 and lgpl2.1, but the sources are
526     ;; under a variety of licenses.
527     ;; This list is taken from http://packaging.neon.kde.org/cgit/
528     (license (list license:lgpl2.1 license:lgpl2.1+ license:expat
529                    license:lgpl3+ license:gpl1 ; licende:mit-olif
530                    license:bsd-2 license:bsd-3))))
532 (define-public kcoreaddons
533   (package
534     (name "kcoreaddons")
535     (version "5.55.0")
536     (source (origin
537               (method url-fetch)
538               (uri (string-append
539                     "mirror://kde/stable/frameworks/"
540                     (version-major+minor version) "/"
541                     name "-" version ".tar.xz"))
542               (sha256
543                (base32
544                 "1j7bc5fhak8db3vdfslbjdffbdclakhfwsni2a855d08yfrl1n1w"))))
545     (build-system cmake-build-system)
546     (native-inputs
547      `(("extra-cmake-modules" ,extra-cmake-modules)
548        ("qttools" ,qttools)
549        ("shared-mime-info" ,shared-mime-info)
550        ;; TODO: FAM: File alteration notification http://oss.sgi.com/projects/fam
551        ("xorg-server" ,xorg-server))) ; for the tests
552     (inputs
553      `(("qtbase" ,qtbase)))
554     (arguments
555      `(#:phases
556        (modify-phases %standard-phases
557          (add-before 'check 'blacklist-failing-test
558            (lambda _
559              ;; Blacklist failing tests.
560              (with-output-to-file "autotests/BLACKLIST"
561                (lambda _
562                  ;; FIXME: Make it pass.  Test failure caused by stout/stderr
563                  ;; being interleaved.
564                  (display "[test_channels]\n*\n")
565                  ;; This fails with ENOSPC because of too many inotify watches.
566                  (display "[benchNotifyWatcher]\n*\n")))
567              #t))
568          ;; See upstream commit ee424e9b62368485bba4193053cabb553a1d268e
569          (add-after 'unpack 'fix-broken-test
570            (lambda _
571              (substitute* "autotests/kdirwatch_unittest.cpp"
572                (("QVERIFY\\(waitForRecreationSignal\\(watch, existingFile\\)\\);" m)
573                 (string-append m "\nwaitUntilNewSecond();")))
574              #t))
575          (add-before 'check 'check-setup
576            (lambda _
577              (setenv "HOME" (getcwd))
578              (setenv "TMPDIR" (getcwd))
579              #t)))))
580     (home-page "https://community.kde.org/Frameworks")
581     (synopsis "Qt addon library with a collection of non-GUI utilities")
582     (description "KCoreAddons provides classes built on top of QtCore to
583 perform various tasks such as manipulating mime types, autosaving files,
584 creating backup files, generating random sequences, performing text
585 manipulations such as macro replacement, accessing user information and
586 many more.")
587     (license (list license:lgpl2.0+ license:lgpl2.1+))))
589 (define-public kdbusaddons
590   (package
591     (name "kdbusaddons")
592     (version "5.55.0")
593     (source (origin
594               (method url-fetch)
595               (uri (string-append
596                     "mirror://kde/stable/frameworks/"
597                     (version-major+minor version) "/"
598                     name "-" version ".tar.xz"))
599               (sha256
600                (base32
601                 "1sj3cycgci3ih65bkh7bsvbzyp7r654ppcryj4azpcsxqhy5gc7l"))
602               (patches (search-patches "kdbusaddons-kinit-file-name.patch"))))
603     (build-system cmake-build-system)
604     (native-inputs
605      `(("extra-cmake-modules" ,extra-cmake-modules)
606        ("dbus" ,dbus)
607        ("qttools" ,qttools)))
608     (inputs
609      `(("qtbase" ,qtbase)
610        ("qtx11extras" ,qtx11extras)
611        ("kinit" ,kinit-bootstrap))) ;; kinit-bootstrap: kinit package which does not depend on kdbusaddons.
612     (arguments
613      `(#:phases
614        (modify-phases %standard-phases
615          (add-before
616           'configure 'patch-source
617           (lambda* (#:key inputs #:allow-other-keys)
618             ;; look for the kdeinit5 executable in kinit's store directory,
619             ;; instead of the current application's directory:
620             (substitute* "src/kdeinitinterface.cpp"
621               (("@SUBSTITUTEME@") (assoc-ref inputs "kinit")))))
622          (replace 'check
623            (lambda _
624              (setenv "DBUS_FATAL_WARNINGS" "0")
625              (invoke "dbus-launch" "ctest" "."))))))
626     (home-page "https://community.kde.org/Frameworks")
627     (synopsis "Convenience classes for DBus")
628     (description "KDBusAddons provides convenience classes on top of QtDBus,
629 as well as an API to create KDED modules.")
630     ;; Some source files mention lgpl2.0+, but the included license is
631     ;; the lgpl2.1. Some source files are under non-copyleft licenses.
632     (license license:lgpl2.1+)))
634 (define-public kdnssd
635   (package
636     (name "kdnssd")
637     (version "5.55.0")
638     (source (origin
639               (method url-fetch)
640               (uri (string-append
641                     "mirror://kde/stable/frameworks/"
642                     (version-major+minor version) "/"
643                     name "-" version ".tar.xz"))
644               (sha256
645                (base32
646                 "0lljj7mxmqm60kfzr37zb7z58mfyfh7zgykf7a5is1k0lxpgk6zc"))))
647     (build-system cmake-build-system)
648     (native-inputs
649      `(("extra-cmake-modules" ,extra-cmake-modules)
650        ("qttools" ,qttools)))
651     (inputs
652      `(("avahi" ,avahi) ; alternativly dnssd could be used
653        ("qtbase" ,qtbase)))
654     (home-page "https://community.kde.org/Frameworks")
655     (synopsis "Network service discovery using Zeroconf")
656     (description "KDNSSD is a library for handling the DNS-based Service
657 Discovery Protocol (DNS-SD), the layer of Zeroconf that allows network services,
658 such as printers, to be discovered without any user intervention or centralized
659 infrastructure.")
660     (license license:lgpl2.1+)))
662 (define-public kguiaddons
663   (package
664     (name "kguiaddons")
665     (version "5.55.0")
666     (source (origin
667               (method url-fetch)
668               (uri (string-append
669                     "mirror://kde/stable/frameworks/"
670                     (version-major+minor version) "/"
671                     name "-" version ".tar.xz"))
672               (sha256
673                (base32
674                 "190jwhvq2fi8g03saszlaslzxmcbqrbwli9f9vm6h5j9nnc0z6h3"))))
675     (build-system cmake-build-system)
676     ;; TODO: Build packages for the Python bindings.  Ideally this will be
677     ;; done for all versions of python guix supports.  Requires python,
678     ;; python-sip, clang-python, libclang.  Requires python-2 in all cases for
679     ;; clang-python.
680     (native-inputs
681      `(("extra-cmake-modules" ,extra-cmake-modules)
682        ("pkg-config" ,pkg-config)))
683     (inputs
684      `(("qtbase" ,qtbase)
685        ("qtx11extras" ,qtx11extras)))
686     (arguments
687      `(#:phases
688        (modify-phases %standard-phases
689          (add-before 'check 'check-setup
690            (lambda _
691              ;; make Qt render "offscreen", required for tests
692              (setenv "QT_QPA_PLATFORM" "offscreen")
693              #t)))))
694     (home-page "https://community.kde.org/Frameworks")
695     (synopsis "Utilities for graphical user interfaces")
696     (description "The KDE GUI addons provide utilities for graphical user
697 interfaces in the areas of colors, fonts, text, images, keyboard input.")
698     (license (list license:gpl2+ license:lgpl2.1+))))
700 (define-public ki18n
701   (package
702     (name "ki18n")
703     (version "5.55.0")
704     (source (origin
705               (method url-fetch)
706               (uri (string-append
707                     "mirror://kde/stable/frameworks/"
708                     (version-major+minor version) "/"
709                     name "-" version ".tar.xz"))
710               (sha256
711                (base32
712                 "0kvwjzqibby9fawyfb8bd81abjhsjlyi8xy9mcapnih5x2gx3z92"))))
713     (build-system cmake-build-system)
714     (propagated-inputs
715      `(("gettext" ,gettext-minimal)
716        ("python" ,python)))
717     (native-inputs
718      `(("extra-cmake-modules" ,extra-cmake-modules)))
719     (inputs
720      `(("qtbase" ,qtbase)
721        ("qtdeclarative" ,qtdeclarative)
722        ("qtscript" ,qtscript)))
723     (arguments
724      `(#:phases
725        (modify-phases %standard-phases
726          (add-before 'check 'check-setup
727            (lambda _
728              (setenv "HOME" (getcwd))
729              #t)))))
730     (home-page "https://community.kde.org/Frameworks")
731     (synopsis "KDE Gettext-based UI text internationalization")
732     (description "KI18n provides functionality for internationalizing user
733 interface text in applications, based on the GNU Gettext translation system.  It
734 wraps the standard Gettext functionality, so that the programmers and translators
735 can use the familiar Gettext tools and workflows.
737 KI18n provides additional functionality as well, for both programmers and
738 translators, which can help to achieve a higher overall quality of source and
739 translated text.  This includes argument capturing, customizable markup, and
740 translation scripting.")
741     (license license:lgpl2.1+)))
743 (define-public kidletime
744   (package
745     (name "kidletime")
746     (version "5.55.0")
747     (source (origin
748               (method url-fetch)
749               (uri (string-append
750                     "mirror://kde/stable/frameworks/"
751                     (version-major+minor version) "/"
752                     name "-" version ".tar.xz"))
753               (sha256
754                (base32
755                 "1kq6zh6cjhzffjhxnc7l1pw6g38swxyspp8xl8c860zdhc9xfd1g"))))
756     (build-system cmake-build-system)
757     (native-inputs
758      `(("extra-cmake-modules" ,extra-cmake-modules)
759        ("pkg-config" ,pkg-config)))
760     (inputs
761      `(("libxscrnsaver" ,libxscrnsaver) ; X-Screensaver based poller, fallback mode
762        ("qtbase" ,qtbase)
763        ("qtx11extras" ,qtx11extras)))
764     (home-page "https://community.kde.org/Frameworks")
765     (synopsis "Reporting of idle time of user and system")
766     (description "KIdleTime is a singleton reporting information on idle time.
767 It is useful not only for finding out about the current idle time of the PC,
768 but also for getting notified upon idle time events, such as custom timeouts,
769 or user activity.")
770     (license (list license:gpl2+ license:lgpl2.1+))))
772 (define-public kirigami
773   ;; Kirigami is listed as tier 1 framework, but optionally includes
774   ;; plasma-framework which is tier 3.
775   (package
776     (name "kirigami")
777     (version "5.55.0")
778     (source (origin
779               (method url-fetch)
780               (uri (string-append
781                     "mirror://kde/stable/frameworks/"
782                     (version-major+minor version) "/"
783                     "kirigami2-" version ".tar.xz"))
784               (sha256
785                (base32
786                 "11djxli5cq7pn19lmjz2y7z39mhlr98jskasfzyax546j47v973k"))))
787     (properties `((upstream-name . "kirigami2")))
788     (build-system cmake-build-system)
789     (native-inputs
790      `(("extra-cmake-modules" ,extra-cmake-modules)
791        ("qttools" ,qttools)))
792     (inputs
793      `(("kwindowsystem" ,kwindowsystem)
794        ;; TODO: Find a way to activate this optional include without
795        ;; introducing a recursive dependency.
796        ;;("plasma-frameworks" ,plasma-framework) ;; Tier 3!
797        ("qtbase" ,qtbase)
798        ("qtdeclarative" ,qtdeclarative)
799        ("qtquickcontrols2" ,qtquickcontrols2)
800        ("qtsvg" ,qtsvg)
801        ;; Run-time dependency
802        ("qtgraphicaleffects" ,qtgraphicaleffects)))
803     (home-page "https://community.kde.org/Frameworks")
804     (synopsis "QtQuick components for mobile user interfaces")
805     (description "Kirigami is a set of high level QtQuick components looking
806 and feeling well on both mobile and desktop devices.  They ease the creation
807 of applications that follow the Kirigami Human Interface Guidelines.")
808     (license license:lgpl2.1+)))
810 (define-public kitemmodels
811   (package
812     (name "kitemmodels")
813     (version "5.55.0")
814     (source (origin
815               (method url-fetch)
816               (uri (string-append
817                     "mirror://kde/stable/frameworks/"
818                     (version-major+minor version) "/"
819                     name "-" version ".tar.xz"))
820               (sha256
821                (base32
822                 "13609avkqrfi79zyr737662nr8bwcfdya9dxc6gzyqx5i0l2nbw6"))))
823     (build-system cmake-build-system)
824     (native-inputs
825      `(("extra-cmake-modules" ,extra-cmake-modules)))
826     (inputs
827      `(("qtbase" ,qtbase)
828        ("qtdeclarative" ,qtdeclarative)))
829     (arguments
830      `(#:phases
831        (modify-phases %standard-phases
832          (add-before 'check 'check-setup
833            (lambda _
834              ;; make Qt render "offscreen", required for tests
835              (setenv "QT_QPA_PLATFORM" "offscreen")
836              #t)))))
837     (home-page "https://community.kde.org/Frameworks")
838     (synopsis "Set of item models extending the Qt model-view framework")
839     (description "KItemModels provides the following models:
841 @enumerate
842 @item KBreadcrumbSelectionModel - Selects the parents of selected items to
843 create breadcrumbs.
845 @item KCheckableProxyModel - Adds a checkable capability to a source model.
847 @item KConcatenateRowsProxyModel - Concatenates rows from multiple source models.
849 @item KDescendantsProxyModel - Proxy Model for restructuring a Tree into a list.
851 @item KExtraColumnsProxyModel - Adds columns after existing columns.
853 @item KLinkItemSelectionModel - Share a selection in multiple views which do
854 not have the same source model.
856 @item KModelIndexProxyMapper - Mapping of indexes and selections through proxy
857 models.
859 @item KRearrangeColumnsProxyModel - Can reorder and hide columns from the source
860 model.
862 @item KRecursiveFilterProxyModel - Recursive filtering of models.
864 @item KSelectionProxyModel - A Proxy Model which presents a subset of its source
865 model to observers
866 @end enumerate")
867     (license license:lgpl2.1+)))
869 (define-public kitemviews
870   (package
871     (name "kitemviews")
872     (version "5.55.0")
873     (source (origin
874               (method url-fetch)
875               (uri (string-append
876                     "mirror://kde/stable/frameworks/"
877                     (version-major+minor version) "/"
878                     name "-" version ".tar.xz"))
879               (sha256
880                (base32
881                 "1mgh7z5xcbhc7a2qq8mqfp7j4amk93hypkpy2zc3rdhc60ps94ad"))))
882     (build-system cmake-build-system)
883     (native-inputs
884      `(("extra-cmake-modules" ,extra-cmake-modules)
885        ("qttools" ,qttools)))
886     (inputs
887      `(("qtbase" ,qtbase)))
888     (arguments
889      `(#:phases
890        (modify-phases %standard-phases
891          (add-before 'check 'check-setup
892            (lambda _
893              (setenv "DBUS_FATAL_WARNINGS" "0")
894              ;; make Qt render "offscreen", required for tests
895              (setenv "QT_QPA_PLATFORM" "offscreen")
896              #t)))))
897     (home-page "https://community.kde.org/Frameworks")
898     (synopsis "Set of item views extending the Qt model-view framework")
899     (description "KItemViews includes a set of views, which can be used with
900 item models.  It includes views for categorizing lists and to add search filters
901 to flat and hierarchical lists.")
902     (license (list license:gpl2+ license:lgpl2.1+))))
904 (define-public kplotting
905   (package
906     (name "kplotting")
907     (version "5.55.0")
908     (source (origin
909               (method url-fetch)
910               (uri (string-append
911                     "mirror://kde/stable/frameworks/"
912                     (version-major+minor version) "/"
913                     name "-" version ".tar.xz"))
914               (sha256
915                (base32
916                 "0nn2v1yvvpzpi1y1pm47zvmwsa942c7d9n8iqymqihnp0fqjr8y7"))))
917     (build-system cmake-build-system)
918     (native-inputs
919      `(("extra-cmake-modules" ,extra-cmake-modules)))
920     (inputs
921      `(("qtbase" ,qtbase)))
922     (arguments
923      `(#:phases
924        (modify-phases %standard-phases
925          (add-before 'check 'check-setup
926            (lambda _ ; kplotting
927              ;; make Qt render "offscreen", required for tests
928              (setenv "QT_QPA_PLATFORM" "offscreen")
929              #t)))))
930     (home-page "https://community.kde.org/Frameworks")
931     (synopsis "Data plotting library")
932     (description "KPlotWidget is a QWidget-derived class that provides a virtual
933 base class for easy data-plotting.  The idea behind KPlotWidget is that you only
934 have to specify information in \"data units\", the natural units of the
935 data being plotted.  KPlotWidget automatically converts everything to screen
936 pixel units.")
937     (license license:lgpl2.1+)))
939 (define-public ksyntaxhighlighting
940   (package
941     (name "ksyntaxhighlighting")
942     (version "5.55.0")
943     (source (origin
944               (method url-fetch)
945               (uri (string-append
946                     "mirror://kde/stable/frameworks/"
947                     (version-major+minor version) "/"
948                     "syntax-highlighting-" version ".tar.xz"))
949               (sha256
950                (base32
951                 "00w5nmz9l70znv8q7q1zw3f7gngwfgf41iwbs53zqcv1z7wmrz6m"))))
952     (build-system cmake-build-system)
953     (native-inputs
954      `(("extra-cmake-modules" ,extra-cmake-modules)
955        ("perl" ,perl)
956        ("qttools" ,qttools)
957        ;; Optional, for compile-time validation of syntax definition files:
958        ("qtxmlpatterns" ,qtxmlpatterns)))
959     (inputs
960      `(("qtbase" ,qtbase)))
961     (arguments
962      `(#:phases
963        (modify-phases %standard-phases
964          (add-after 'patch-source-shebangs 'unpatch-source-shebang
965            (lambda _
966              ;; revert the patch-shebang phase on scripts which are
967              ;; in fact test data
968              (substitute* '("autotests/input/test.bash"
969                             "autotests/folding/test.bash.fold")
970                (((which "bash")) "/bin/bash"))
971              (substitute* '("autotests/input/highlight.sh"
972                             "autotests/folding/highlight.sh.fold")
973                (((which "sh")) " /bin/sh")) ;; space in front!
974              (substitute* '("autotests/input/highlight.pl"
975                             "autotests/folding/highlight.pl.fold")
976                (((which "perl")) "/usr/bin/perl"))
977              #t)))))
978     (home-page "https://community.kde.org/Frameworks")
979     (synopsis "Syntax highlighting engine for Kate syntax definitions")
980     (description "This is a stand-alone implementation of the Kate syntax
981 highlighting engine.  It's meant as a building block for text editors as well
982 as for simple highlighted text rendering (e.g. as HTML), supporting both
983 integration with a custom editor as well as a ready-to-use
984 @code{QSyntaxHighlighter} sub-class.")
985     (properties `((upstream-name . "syntax-highlighting")))
986     (license license:lgpl2.1+)))
988 (define-public kwayland
989   (package
990     (name "kwayland")
991     (version "5.55.0")
992     (source (origin
993               (method url-fetch)
994               (uri (string-append
995                     "mirror://kde/stable/frameworks/"
996                     (version-major+minor version) "/"
997                     name "-" version ".tar.xz"))
998               (sha256
999                (base32
1000                 "0m9q13qzgvp03jrsyc59l6pp7jf0dvhx768p21drs46qxw6wla7l"))))
1001     (build-system cmake-build-system)
1002     (native-inputs
1003      `(("extra-cmake-modules" ,extra-cmake-modules)
1004        ("pkg-config" ,pkg-config)))
1005     (inputs
1006      `(("qtbase" ,qtbase)
1007        ("wayland" ,wayland)))
1008     (arguments
1009      `(#:tests? #f ; FIXME tests require weston to run
1010                    ; weston requires wayland flags in mesa
1011        #:phases
1012        (modify-phases %standard-phases
1013          (add-before 'check 'check-setup
1014            (lambda _
1015              (setenv "XDG_RUNTIME_DIR" "/tmp")
1016              #t)))))
1017     (home-page "https://community.kde.org/Frameworks")
1018     (synopsis "Qt-style API to interact with the wayland client and server")
1019     (description "As the names suggest they implement a Client respectively a
1020 Server API for the Wayland protocol.  The API is Qt-styled removing the needs to
1021 interact with a for a Qt developer uncomfortable low-level C-API.  For example
1022 the callback mechanism from the Wayland API is replaced by signals, data types
1023 are adjusted to be what a Qt developer expects - two arguments of int are
1024 represented by a QPoint or a QSize.")
1025     (license license:lgpl2.1+)))
1027 (define-public kwidgetsaddons
1028   (package
1029     (name "kwidgetsaddons")
1030     (version "5.55.0")
1031     (source (origin
1032               (method url-fetch)
1033               (uri (string-append
1034                     "mirror://kde/stable/frameworks/"
1035                     (version-major+minor version) "/"
1036                     name "-" version ".tar.xz"))
1037               (sha256
1038                (base32
1039                 "0kpbvvmjrhxxjqc0cb63zlq06a3xspq43xv3wdingcn28zypynzc"))))
1040     (build-system cmake-build-system)
1041     (native-inputs
1042      `(("extra-cmake-modules" ,extra-cmake-modules)
1043        ("qttools" ,qttools)
1044        ("xorg-server" ,xorg-server)))
1045     (inputs
1046      `(("qtbase" ,qtbase)))
1047     (arguments
1048      `(#:phases
1049        (modify-phases %standard-phases
1050          (add-before 'check 'check-setup
1051            (lambda _
1052              ;; make Qt render "offscreen", required for tests
1053              (setenv "QT_QPA_PLATFORM" "offscreen")
1054              (setenv "DBUS_FATAL_WARNINGS" "0")
1055              #t))
1056          (add-before 'check 'start-xorg-server
1057            (lambda* (#:key inputs #:allow-other-keys)
1058              ;; The test suite requires a running X server.
1059              ;; Xvfb doesn't have proper glx support and needs a pixeldepth
1060              ;; of 24 bit to avoid "libGL error: failed to load driver: swrast"
1061              ;;                    "Could not initialize GLX"
1062              (system (string-append (assoc-ref inputs "xorg-server")
1063                                     "/bin/Xvfb :1 -screen 0 640x480x24 &"))
1064              (setenv "DISPLAY" ":1")
1065              #t)))))
1066     (home-page "https://community.kde.org/Frameworks")
1067     (synopsis "Large set of desktop widgets")
1068     (description "Provided are action classes that can be added to toolbars or
1069 menus, a wide range of widgets for selecting characters, fonts, colors, actions,
1070 dates and times, or MIME types, as well as platform-aware dialogs for
1071 configuration pages, message boxes, and password requests.")
1072     (license (list license:gpl2+ license:lgpl2.1+))))
1074 (define-public kwindowsystem
1075   (package
1076     (name "kwindowsystem")
1077     (version "5.55.0")
1078     (source (origin
1079               (method url-fetch)
1080               (uri (string-append
1081                     "mirror://kde/stable/frameworks/"
1082                     (version-major+minor version) "/"
1083                     name "-" version ".tar.xz"))
1084               (sha256
1085                (base32
1086                 "10zdxm08d758zbwlrbsn0ghxjpf39ids2s5pnca072gbrbrxv656"))))
1087     (build-system cmake-build-system)
1088     (native-inputs
1089      `(("extra-cmake-modules" ,extra-cmake-modules)
1090        ("pkg-config" ,pkg-config)
1091        ("dbus" ,dbus) ; for the tests
1092        ("openbox" ,openbox) ; for the tests
1093        ("qttools" ,qttools)
1094        ("xorg-server" ,xorg-server))) ; for the tests
1095     (inputs
1096      `(("libxrender" ,libxrender)
1097        ("qtbase" ,qtbase)
1098        ("qtx11extras" ,qtx11extras)
1099        ("xcb-utils-keysyms" ,xcb-util-keysyms)))
1100     (arguments
1101      `(#:phases
1102        (modify-phases %standard-phases
1103          (add-before 'check 'blacklist-failing-tests
1104            (lambda _
1105              ;; Blacklist a failing test-functions. FIXME: Make it pass.
1106              (with-output-to-file "autotests/BLACKLIST"
1107                (lambda _
1108                  (display "[testState]\n*\n")
1109                  (display "[testSupported]\n*\n")))
1110              #t))
1111          (replace 'check
1112            (lambda _
1113              ;; The test suite requires a running window anager
1114              (system "Xvfb :1 -ac -screen 0 640x480x24 &")
1115              (setenv "DISPLAY" ":1")
1116              (sleep 5) ;; Give Xvfb a few moments to get on it's feet
1117              (system "openbox &")
1118              (setenv "CTEST_OUTPUT_ON_FAILURE" "1")
1119              (setenv "DBUS_FATAL_WARNINGS" "0")
1120              (invoke "dbus-launch" "ctest" "."))))))
1121     (home-page "https://community.kde.org/Frameworks")
1122     (synopsis "KDE access to the windowing system")
1123     (description "KWindowSystem provides information about and allows
1124 interaction with the windowing system.  It provides a high level API, which
1125 is windowing system independent and has platform specific
1126 implementations.  This API is inspired by X11 and thus not all functionality
1127 is available on all windowing systems.
1129 In addition to the high level API, this framework also provides several
1130 lower level classes for interaction with the X Windowing System.")
1131     ;; Some source files mention lgpl2.0+, but the included license is
1132     ;; the lgpl2.1. Some source files are under non-copyleft licenses.
1133     (license license:lgpl2.1+)))
1135 (define-public modemmanager-qt
1136   (package
1137     (name "modemmanager-qt")
1138     (version "5.55.0")
1139     (source (origin
1140               (method url-fetch)
1141               (uri (string-append
1142                     "mirror://kde/stable/frameworks/"
1143                     (version-major+minor version) "/"
1144                     name "-" version ".tar.xz"))
1145               (sha256
1146                (base32
1147                 "10pkgm4dzsrfnjsf78pssd1wp0y27d1y834chd267hx9vgrv8axm"))))
1148     (build-system cmake-build-system)
1149     (native-inputs
1150      `(("extra-cmake-modules" ,extra-cmake-modules)
1151        ("dbus" ,dbus)
1152        ("pkg-config" ,pkg-config)))
1153     (propagated-inputs
1154      ;; Headers contain #include <ModemManager/ModemManager.h>
1155      `(("modem-manager" ,modem-manager)))
1156     (inputs
1157      `(("qtbase" ,qtbase)))
1158     (arguments
1159      `(#:phases
1160        (modify-phases %standard-phases
1161          (replace 'check
1162            (lambda _
1163              (setenv "DBUS_FATAL_WARNINGS" "0")
1164              (invoke "dbus-launch" "ctest" "."))))))
1165     (home-page "https://community.kde.org/Frameworks")
1166     (synopsis "Qt wrapper for ModemManager DBus API")
1167     (description "ModemManagerQt provides access to all ModemManager features
1168 exposed on DBus.  It allows you to manage modem devices and access to
1169 information available for your modem devices, like signal, location and
1170 messages.")
1171     (license license:lgpl2.1+)))
1173 (define-public networkmanager-qt
1174   (package
1175     (name "networkmanager-qt")
1176     (version "5.55.0")
1177     (source (origin
1178               (method url-fetch)
1179               (uri (string-append
1180                     "mirror://kde/stable/frameworks/"
1181                     (version-major+minor version) "/"
1182                     name "-" version ".tar.xz"))
1183               (sha256
1184                (base32
1185                 "0j8l4k13vsqh0a8mw8dw5bc78xvxhz2rh7bb870as04i32bvw772"))))
1186     (build-system cmake-build-system)
1187     (native-inputs
1188      `(("extra-cmake-modules" ,extra-cmake-modules)
1189        ("dbus" ,dbus)
1190        ("pkg-config" ,pkg-config)))
1191     (propagated-inputs
1192      ;; Headers contain #include <NetworkManager.h> and
1193      ;;                 #include <libnm/NetworkManager.h>
1194      `(("network-manager" ,network-manager)))
1195     (inputs
1196      `(("qtbase" ,qtbase)))
1197     (arguments
1198      `(#:phases
1199        (modify-phases %standard-phases
1200          (replace 'check
1201            (lambda _
1202              (setenv "DBUS_FATAL_WARNINGS" "0")
1203              (invoke "dbus-launch" "ctest" "."))))))
1204     (home-page "https://community.kde.org/Frameworks")
1205     (synopsis "Qt wrapper for NetworkManager DBus API")
1206     (description "NetworkManagerQt provides access to all NetworkManager
1207 features exposed on DBus.  It allows you to manage your connections and control
1208 your network devices and also provides a library for parsing connection settings
1209 which are used in DBus communication.")
1210     (license license:lgpl2.1+)))
1212 (define-public oxygen-icons
1213   (package
1214     (name "oxygen-icons")
1215     (version "5.55.0")
1216     (source (origin
1217               (method url-fetch)
1218               (uri (string-append
1219                     "mirror://kde/stable/frameworks/"
1220                     (version-major+minor version) "/"
1221                     name "5" "-" version ".tar.xz"))
1222               (sha256
1223                (base32
1224                 "0fvm9bq1573xkha4a577s1iik8nwzks8xhrli5mm6rbh53s12wp4"))))
1225     (build-system cmake-build-system)
1226     (native-inputs
1227      `(("extra-cmake-modules" ,extra-cmake-modules)
1228        ("fdupes" ,fdupes)))
1229     (inputs
1230      `(("qtbase" ,qtbase)))
1231     (home-page "https://community.kde.org/Frameworks")
1232     (synopsis "Oxygen provides the standard icon theme for the KDE desktop")
1233     (description "Oxygen icon theme for the KDE desktop")
1234     (license license:lgpl3+)
1235     (properties '((upstream-name . "oxygen-icons5")))))
1237 (define-public prison
1238   (package
1239     (name "prison")
1240     (version "5.55.0")
1241     (source
1242      (origin
1243        (method url-fetch)
1244        (uri (string-append "mirror://kde/stable/frameworks/"
1245                            (version-major+minor version) "/"
1246                            name "-" version ".tar.xz"))
1247        (sha256
1248         (base32 "1xadc2fq6csml78czg5p572cwvmqmn334a5dxjnd7k1pdx50gi07"))))
1249     (build-system cmake-build-system)
1250     (native-inputs
1251      `(("extra-cmake-modules" ,extra-cmake-modules)))
1252     (inputs
1253      `(("libdmtx" ,libdmtx)
1254        ("qrencode" ,qrencode)
1255        ("qtbase" ,qtbase))) ;; TODO: rethink: nix propagates this
1256     (home-page "https://api.kde.org/frameworks/prison/html/index.html")
1257     (synopsis "Barcode generation abstraction layer")
1258     (description "Prison is a Qt-based barcode abstraction layer/library and
1259 provides uniform access to generation of barcodes with data.")
1260     (license license:lgpl2.1+)))
1262 (define-public qqc2-desktop-style
1263   (package
1264     (name "qqc2-desktop-style")
1265     (version "5.55.0")
1266     (source (origin
1267               (method url-fetch)
1268               (uri (string-append
1269                     "mirror://kde/stable/frameworks/"
1270                     (version-major+minor version) "/"
1271                     name "-" version ".tar.xz"))
1272               (sha256
1273                (base32
1274                 "0aj37ldc3ywqap3sz73j54kbzycn529imr15jgl252k04rqpjya5"))))
1275     (build-system cmake-build-system)
1276     (native-inputs
1277      `(("extra-cmake-modules" ,extra-cmake-modules)
1278        ("pkg-config" ,pkg-config)))
1279     (inputs
1280      `(("kauth" ,kauth)
1281        ("kconfigwidgets" ,kconfigwidgets) ; optional
1282        ("kcoreaddons" ,kcoreaddons)
1283        ("kiconthemes" ,kiconthemes) ; optional
1284        ("kirigami" ,kirigami)
1285        ("qtbase" ,qtbase)
1286        ("qtdeclarative" ,qtdeclarative)
1287        ("qtquickcontrols2" ,qtquickcontrols2)))
1288     (home-page "https://community.kde.org/Frameworks")
1289     (synopsis "QtQuickControls2 style that integrates with the desktop")
1290     (description "This is a style for QtQuickControls2 which is using
1291 QWidget's QStyle to paint the controls in order to give it a native look and
1292 feel.")
1293     ;; Mostly LGPL 2+, but many files are dual-licensed
1294     (license (list license:lgpl2.1+ license:gpl3+))))
1296 (define-public solid
1297   (package
1298     (name "solid")
1299     (version "5.55.0")
1300     (source (origin
1301               (method url-fetch)
1302               (uri (string-append
1303                     "mirror://kde/stable/frameworks/"
1304                     (version-major+minor version) "/"
1305                     name "-" version ".tar.xz"))
1306               (sha256
1307                (base32
1308                 "18dw55g41q34m2qzvybvpsas1dnyryqxnlf2md0xc4r36ib9p2pn"))))
1309     (build-system cmake-build-system)
1310     (arguments
1311      `(#:phases
1312        (modify-phases %standard-phases
1313          (replace 'check
1314            (lambda _
1315              (setenv "DBUS_FATAL_WARNINGS" "0")
1316              (invoke "dbus-launch" "ctest" "."))))))
1317     (native-inputs
1318      `(("bison" ,bison)
1319        ("dbus" ,dbus)
1320        ("extra-cmake-modules" ,extra-cmake-modules)
1321        ("flex" ,flex)
1322        ("qttools" ,qttools)))
1323     (inputs
1324      `(("qtbase" ,qtbase)
1325        ("qtdeclarative" ,qtdeclarative)
1326        ("udev" ,eudev)))
1327     ;; TODO: Add runtime-only dependency MediaPlayerInfo
1328     (home-page "https://community.kde.org/Frameworks")
1329     (synopsis "Desktop hardware abstraction")
1330     (description "Solid is a device integration framework.  It provides a way of
1331 querying and interacting with hardware independently of the underlying operating
1332 system.")
1333     (license license:lgpl2.1+)))
1335 (define-public sonnet
1336   (package
1337     (name "sonnet")
1338     (version "5.55.0")
1339     (source (origin
1340               (method url-fetch)
1341               (uri (string-append
1342                     "mirror://kde/stable/frameworks/"
1343                     (version-major+minor version) "/"
1344                     name "-" version ".tar.xz"))
1345               (sha256
1346                (base32
1347                 "13bb1s2f4kfaikcga297j2fqlyr4qxdcq4v1b3zs1gas4z1wpcg6"))))
1348     (build-system cmake-build-system)
1349     (arguments
1350      `(#:phases
1351        (modify-phases %standard-phases
1352          (add-before 'check 'check-setup
1353            (lambda _
1354              ;; make Qt render "offscreen", required for tests
1355              (setenv "QT_QPA_PLATFORM" "offscreen")
1356              #t)))))
1357     (native-inputs
1358      `(("extra-cmake-modules" ,extra-cmake-modules)
1359        ("pkg-config" ,pkg-config)
1360        ("qttools" ,qttools)))
1361     (inputs
1362      `(("hunspell" ,hunspell)
1363        ;; TODO: hspell (for Hebrew), Voikko (for Finish)
1364        ("qtbase" ,qtbase)))
1365     (home-page "https://community.kde.org/Frameworks")
1366     (synopsis "Multi-language spell checker")
1367     (description "Sonnet is a plugin-based spell checking library for Qt-based
1368 applications.  It supports several different plugins, including HSpell, Enchant,
1369 ASpell and HUNSPELL.")
1370     (license license:lgpl2.1+)))
1372 (define-public threadweaver
1373   (package
1374     (name "threadweaver")
1375     (version "5.55.0")
1376     (source (origin
1377               (method url-fetch)
1378               (uri (string-append
1379                     "mirror://kde/stable/frameworks/"
1380                     (version-major+minor version) "/"
1381                     name "-" version ".tar.xz"))
1382               (sha256
1383                (base32
1384                 "0r0ml5pz7h0vmydcg4gqqkl21lp6c5gqdwyfsnyad02dcjkh4hql"))))
1385     (build-system cmake-build-system)
1386     (native-inputs
1387      `(("extra-cmake-modules" ,extra-cmake-modules)))
1388     (inputs
1389      `(("qtbase" ,qtbase)))
1390     (home-page "https://community.kde.org/Frameworks")
1391     (synopsis "Helper for multithreaded programming")
1392     (description "ThreadWeaver is a helper for multithreaded programming.  It
1393 uses a job-based interface to queue tasks and execute them in an efficient way.")
1394     (license license:lgpl2.1+)))
1397 ;; Tier 2
1399 ;; Tier 2 frameworks additionally depend on tier 1 frameworks, but still have
1400 ;; easily manageable dependencies.
1402 (define-public kactivities
1403   (package
1404     (name "kactivities")
1405     (version "5.55.0")
1406     (source (origin
1407               (method url-fetch)
1408               (uri (string-append
1409                     "mirror://kde/stable/frameworks/"
1410                     (version-major+minor version) "/"
1411                     name "-" version ".tar.xz"))
1412               (sha256
1413                (base32
1414                 "0dp9vx2nl9fnawzcz04fqa731s3bk2izxrqbvn71aqyrs7fymabg"))))
1415     (build-system cmake-build-system)
1416     (native-inputs
1417      `(("extra-cmake-modules" ,extra-cmake-modules)))
1418     (inputs
1419      `(("boost" ,boost)
1420        ("kauth" ,kauth)
1421        ("kbookmarks" ,kbookmarks)
1422        ("kcodecs" ,kcodecs)
1423        ("kcompletion" ,kcompletion)
1424        ("kconfig" ,kconfig)
1425        ("kconfigwidgets" ,kconfigwidgets)
1426        ("kcoreaddons" ,kcoreaddons)
1427        ("kio" ,kio)
1428        ("kitemviews" ,kitemviews)
1429        ("kjobwidgets" ,kjobwidgets)
1430        ("kservice" ,kservice)
1431        ("kwidgetsaddons" ,kwidgetsaddons)
1432        ("kwindowsystem" ,kwindowsystem)
1433        ("kxmlgui" ,kxmlgui)
1434        ("qtbase" ,qtbase)
1435        ("qtdeclarative" ,qtdeclarative)
1436        ("solid" ,solid)))
1437     (home-page "https://community.kde.org/Frameworks")
1438     (synopsis "Core components for the KDE Activity concept")
1439     (description "KActivities provides the infrastructure needed to manage a
1440 user's activities, allowing them to switch between tasks, and for applications
1441 to update their state to match the user's current activity.  This includes a
1442 daemon, a library for interacting with that daemon, and plugins for integration
1443 with other frameworks.")
1444     ;; triple licensed
1445     (license (list license:gpl2+ license:lgpl2.0+ license:lgpl2.1+))))
1447 (define-public kauth
1448   (package
1449     (name "kauth")
1450     (version "5.55.0")
1451     (source (origin
1452               (method url-fetch)
1453               (uri (string-append
1454                     "mirror://kde/stable/frameworks/"
1455                     (version-major+minor version) "/"
1456                     name "-" version ".tar.xz"))
1457               (sha256
1458                (base32
1459                 "1w6bp2kbp1sn4cl76fgl2pqrg660ix99qq4h65g090kc934np3zc"))))
1460     (build-system cmake-build-system)
1461     (native-inputs
1462      `(("dbus" ,dbus)
1463        ("extra-cmake-modules" ,extra-cmake-modules)
1464        ("qttools" ,qttools)))
1465     (inputs
1466      `(("kcoreaddons" ,kcoreaddons)
1467        ("polkit-qt" ,polkit-qt)
1468        ("qtbase" ,qtbase)))
1469     (arguments
1470      `(#:phases
1471        (modify-phases %standard-phases
1472          (add-after 'unpack 'fix-cmake-install-directories
1473            (lambda _
1474              ;; Make packages using kauth put their policy files and helpers
1475              ;; into their own prefix.
1476              (substitute* "KF5AuthConfig.cmake.in"
1477                (("@KAUTH_POLICY_FILES_INSTALL_DIR@")
1478                 "${KDE_INSTALL_DATADIR}/polkit-1/actions")
1479                (("@KAUTH_HELPER_INSTALL_DIR@")
1480                 "${KDE_INSTALL_LIBEXECDIR}")
1481                (("@KAUTH_HELPER_INSTALL_ABSOLUTE_DIR@")
1482                 "${KDE_INSTALL_LIBEXECDIR}"))))
1483          (replace 'check
1484            (lambda _
1485              (setenv "DBUS_FATAL_WARNINGS" "0")
1486              (invoke "dbus-launch" "ctest" "."))))))
1487     (home-page "https://community.kde.org/Frameworks")
1488     (synopsis "Execute actions as privileged user")
1489     (description "KAuth provides a convenient, system-integrated way to offload
1490 actions that need to be performed as a privileged user to small set of helper
1491 utilities.")
1492     (license license:lgpl2.1+)))
1494 (define-public kcompletion
1495   (package
1496     (name "kcompletion")
1497     (version "5.55.0")
1498     (source (origin
1499               (method url-fetch)
1500               (uri (string-append
1501                     "mirror://kde/stable/frameworks/"
1502                     (version-major+minor version) "/"
1503                     name "-" version ".tar.xz"))
1504               (sha256
1505                (base32
1506                 "08ym79fqk7vshsf3jk37d6jvg7ys63kwflcn5dff5ci18jan2ir2"))))
1507     (build-system cmake-build-system)
1508     (native-inputs
1509      `(("extra-cmake-modules" ,extra-cmake-modules)
1510        ("qttools" ,qttools)))
1511     (inputs
1512      `(("kconfig" ,kconfig)
1513        ("kwidgetsaddons" ,kwidgetsaddons)
1514        ("qtbase" ,qtbase)))
1515     (arguments
1516      `(#:phases
1517        (modify-phases %standard-phases
1518          (add-before 'check 'check-setup
1519            (lambda _
1520              ;; make Qt render "offscreen", required for tests
1521              (setenv "QT_QPA_PLATFORM" "offscreen")
1522              #t)))))
1523     (home-page "https://community.kde.org/Frameworks")
1524     (synopsis "Powerful autocompletion framework and widgets")
1525     (description "This framework helps implement autocompletion in Qt-based
1526 applications.  It provides a set of completion-ready widgets, or can be
1527 integrated it into your application's other widgets.")
1528     (license license:lgpl2.1+)))
1530 (define-public kcrash
1531   (package
1532     (name "kcrash")
1533     (version "5.55.0")
1534     (source (origin
1535               (method url-fetch)
1536               (uri (string-append
1537                     "mirror://kde/stable/frameworks/"
1538                     (version-major+minor version) "/"
1539                     name "-" version ".tar.xz"))
1540               (sha256
1541                (base32
1542                 "08a8c5mbj6ll0d1ivhcjx5ga1jfbnwxsk618wcfpwwi6mkxrc3f9"))))
1543     (build-system cmake-build-system)
1544     (native-inputs
1545      `(("extra-cmake-modules" ,extra-cmake-modules)))
1546     (inputs
1547      `(("kcoreaddons" ,kcoreaddons)
1548        ("kwindowsystem" ,kwindowsystem)
1549        ("qtbase" ,qtbase)
1550        ("qtx11extras" ,qtx11extras)))
1551     (arguments
1552      `(#:phases
1553        (modify-phases %standard-phases
1554          (add-before 'check 'check-setup
1555            (lambda _
1556              ;; make Qt render "offscreen", required for tests
1557              (setenv "QT_QPA_PLATFORM" "offscreen")
1558              #t)))))
1559     (home-page "https://community.kde.org/Frameworks")
1560     (synopsis "Graceful handling of application crashes")
1561     (description "KCrash provides support for intercepting and handling
1562 application crashes.")
1563     (license license:lgpl2.1+)))
1565 (define-public kdoctools
1566   (package
1567     (name "kdoctools")
1568     (version "5.55.0")
1569     (source (origin
1570               (method url-fetch)
1571               (uri (string-append
1572                     "mirror://kde/stable/frameworks/"
1573                     (version-major+minor version) "/"
1574                     name "-" version ".tar.xz"))
1575               (sha256
1576                (base32
1577                 "0dlal0vkxf5yh1hbfhrcrxqqi1w43q7bvv8ws8pb18jjgimzr46l"))))
1578     (build-system cmake-build-system)
1579     (native-inputs
1580      `(("extra-cmake-modules" ,extra-cmake-modules)))
1581     (inputs
1582      `(("docbook-xml" ,docbook-xml)
1583        ("docbook-xsl" ,docbook-xsl)
1584        ("karchive" ,karchive)
1585        ("ki18n" ,ki18n)
1586        ("libxml2" ,libxml2)
1587        ("libxslt" ,libxslt)
1588        ("perl" ,perl)
1589        ("perl-uri" ,perl-uri)
1590        ("qtbase" ,qtbase)))
1591     (arguments
1592      `(#:phases
1593        (modify-phases %standard-phases
1594          (add-after 'unpack 'cmake-find-docbook
1595            (lambda* (#:key inputs #:allow-other-keys)
1596              (substitute* (find-files "cmake" "\\.cmake$")
1597                (("CMAKE_SYSTEM_PREFIX_PATH")
1598                 "CMAKE_PREFIX_PATH"))
1599              (substitute* "cmake/FindDocBookXML4.cmake"
1600                (("^.*xml/docbook/schema/dtd.*$")
1601                 "xml/dtd/docbook\n"))
1602              (substitute* "cmake/FindDocBookXSL.cmake"
1603                (("^.*xml/docbook/stylesheet.*$")
1604                 (string-append "xml/xsl/docbook-xsl-"
1605                                ,(package-version docbook-xsl) "\n")))
1606              #t))
1607          (add-after 'install 'add-symlinks
1608            ;; Some package(s) (e.g. kdelibs4support) refer to this locale by a
1609            ;; different spelling.
1610            (lambda* (#:key outputs #:allow-other-keys)
1611              (let ((xsl (string-append (assoc-ref outputs "out")
1612                                        "/share/kf5/kdoctools/customization/xsl/")))
1613                (symlink (string-append xsl "pt_br.xml")
1614                         (string-append xsl "pt-BR.xml")))
1615              #t)))))
1616     (home-page "https://community.kde.org/Frameworks")
1617     (synopsis "Create documentation from DocBook")
1618     (description "Provides tools to generate documentation in various format
1619 from DocBook files.")
1620     (license license:lgpl2.1+)))
1622 (define-public kfilemetadata
1623   (package
1624     (name "kfilemetadata")
1625     (version "5.55.0")
1626     (source (origin
1627               (method url-fetch)
1628               (uri (string-append
1629                     "mirror://kde/stable/frameworks/"
1630                     (version-major+minor version) "/"
1631                     name "-" version ".tar.xz"))
1632               (sha256
1633                (base32
1634                 "0fqj266f9f66rfjzg0rl35fac5rn5n3npyfb4gsla3mdc8fjz9mi"))))
1635     (build-system cmake-build-system)
1636     (arguments
1637      `(#:phases
1638        (modify-phases %standard-phases
1639          (add-before 'check 'disable-failing-test
1640            (lambda _
1641              ;; Blacklist a failing test-function. FIXME: Make it pass.
1642              ;; UserMetaDataWriterTest fails with getxattr("…/writertest.txt")
1643              ;; -> EOPNOTSUPP (Operation not supported)
1644              (with-output-to-file "autotests/BLACKLIST"
1645                (lambda _
1646                  (display "[test]\n*\n")))
1647              #t)))))
1648     (native-inputs
1649      `(("extra-cmake-modules" ,extra-cmake-modules)
1650        ("pkg-config" ,pkg-config)
1651        ("python-2" ,python-2)))
1652     (inputs
1653      `(("attr" ,attr)
1654        ;; TODO: EPub http://sourceforge.net/projects/ebook-tools
1655        ("karchive" ,karchive)
1656        ("ki18n" ,ki18n)
1657        ("qtmultimedia" ,qtmultimedia)
1658        ("qtbase" ,qtbase)
1659        ;; Required run-time packages
1660        ("catdoc" ,catdoc)
1661        ;; Optional run-time packages
1662        ("exiv2" ,exiv2)
1663        ("ffmpeg" ,ffmpeg)
1664        ("poppler-qt5" ,poppler-qt5)
1665        ("taglib" ,taglib)))
1666     (home-page "https://community.kde.org/Frameworks")
1667     (synopsis "Extract metadata from different fileformats")
1668     (description "KFileMetaData provides a simple library for extracting the
1669 text and metadata from a number of different files.  This library is typically
1670 used by file indexers to retrieve the metadata.  This library can also be used
1671 by applications to write metadata.")
1672     (license (list license:lgpl2.0 license:lgpl2.1 license:lgpl3))))
1674 (define-public kimageformats
1675   (package
1676     (name "kimageformats")
1677     (version "5.55.0")
1678     (source (origin
1679               (method url-fetch)
1680               (uri (string-append
1681                     "mirror://kde/stable/frameworks/"
1682                     (version-major+minor version) "/"
1683                     name "-" version ".tar.xz"))
1684               (sha256
1685                (base32
1686                 "0hhxv8m5993vlpi5yf7w3fadzckficn16flshdkby7bwq8agrbz1"))))
1687     (build-system cmake-build-system)
1688     (native-inputs
1689      `(("extra-cmake-modules" ,extra-cmake-modules)
1690        ("pkg-config" ,pkg-config)))
1691     (inputs
1692      `(("karchive" ,karchive) ; for Krita and OpenRaster images
1693        ("openexr" ,openexr) ; for OpenEXR high dynamic-range images
1694        ("qtbase" ,qtbase)))
1695     (arguments
1696      `(#:phases
1697        (modify-phases %standard-phases
1698          ;; This test fails regularly (also at KDE CI, see
1699          ;; https://build.kde.org/job/Frameworks%20kimageformats%20kf5-qt5%20XenialQt5.7/6/testReport/)
1700          ;; delete offending portion
1701          (add-after 'unpack 'neuter-read-xcf-test
1702            (lambda _
1703              (delete-file "autotests/read/xcf/simple-rgba-gimp-2.8.10.png")
1704              (delete-file "autotests/read/xcf/simple-rgba-gimp-2.8.10.xcf")))
1705          (add-before 'check 'check-setup
1706            (lambda _
1707              ;; make Qt render "offscreen", required for tests
1708              (setenv "QT_QPA_PLATFORM" "offscreen")
1709              (setenv "QT_PLUGIN_PATH"
1710                      (string-append (getcwd) "/bin:"
1711                                     (getenv "QT_PLUGIN_PATH")))
1712              #t)))
1713        ;; FIXME: The header files of ilmbase (propagated by openexr) are not
1714        ;; found when included by the header files of openexr, and an explicit
1715        ;; flag needs to be set.
1716        #:configure-flags
1717        (list (string-append "-DCMAKE_CXX_FLAGS=-I"
1718                             (assoc-ref %build-inputs "ilmbase")
1719                             "/include/OpenEXR"))))
1720     (home-page "https://community.kde.org/Frameworks")
1721     (synopsis "Plugins to allow QImage to support extra file formats")
1722     (description "This framework provides additional image format plugins for
1723 QtGui.  As such it is not required for the compilation of any other software,
1724 but may be a runtime requirement for Qt-based software to support certain image
1725 formats.")
1726     (license license:lgpl2.1+)))
1728 (define-public kjobwidgets
1729   (package
1730     (name "kjobwidgets")
1731     (version "5.55.0")
1732     (source (origin
1733               (method url-fetch)
1734               (uri (string-append
1735                     "mirror://kde/stable/frameworks/"
1736                     (version-major+minor version) "/"
1737                     name "-" version ".tar.xz"))
1738               (sha256
1739                (base32
1740                 "1pbx974jpn8n2080gblmbh8q0yb5wxb9xblpm100rbhpg20sc2by"))))
1741     (build-system cmake-build-system)
1742     (native-inputs
1743      `(("extra-cmake-modules" ,extra-cmake-modules)
1744        ("qttools" ,qttools)))
1745     (inputs
1746      `(("kcoreaddons" ,kcoreaddons)
1747        ("kwidgetsaddons" ,kwidgetsaddons)
1748        ("qtbase" ,qtbase)
1749        ("qtx11extras" ,qtx11extras)))
1750     (home-page "https://community.kde.org/Frameworks")
1751     (synopsis "Widgets for showing progress of asynchronous jobs")
1752     (description "KJobWIdgets provides widgets for showing progress of
1753 asynchronous jobs.")
1754     (license license:lgpl2.1+)))
1756 (define-public knotifications
1757   (package
1758     (name "knotifications")
1759     (version "5.55.0")
1760     (source (origin
1761               (method url-fetch)
1762               (uri (string-append
1763                     "mirror://kde/stable/frameworks/"
1764                     (version-major+minor version) "/"
1765                     name "-" version ".tar.xz"))
1766               (sha256
1767                (base32
1768                 "1dbrk9r3w8pmg15bhrb8qdk4fiqvc9qggb67zvk1n7ddlfkyarz6"))))
1769     (build-system cmake-build-system)
1770     (native-inputs
1771      `(("extra-cmake-modules" ,extra-cmake-modules)
1772        ("dbus" ,dbus)
1773        ("qttools" ,qttools)))
1774     (inputs
1775      `(("kcodecs" ,kcodecs)
1776        ("kconfig" ,kconfig)
1777        ("kcoreaddons" ,kcoreaddons)
1778        ("kwindowsystem" ,kwindowsystem)
1779        ("phonon" ,phonon)
1780        ("qtbase" ,qtbase)
1781        ("qtspeech" ,qtspeech)
1782        ;; TODO: Think about adding dbusmenu-qt5 from
1783        ;; https://launchpad.net/libdbusmenu-qt
1784        ("qtx11extras" ,qtx11extras)))
1785     (arguments
1786      `(#:phases
1787        (modify-phases %standard-phases
1788          (add-before 'check 'check-setup
1789            (lambda _
1790              (setenv "HOME" (getcwd))
1791              #t))
1792          (replace 'check
1793            (lambda _
1794              (setenv "DBUS_FATAL_WARNINGS" "0")
1795              (invoke "dbus-launch" "ctest" "."))))))
1796     (home-page "https://community.kde.org/Frameworks")
1797     (synopsis "Desktop notifications")
1798     (description "KNotification is used to notify the user of an event.  It
1799 covers feedback and persistent events.")
1800     (license license:lgpl2.1+)))
1802 (define-public kpackage
1803   (package
1804     (name "kpackage")
1805     (version "5.55.0")
1806     (source (origin
1807               (method url-fetch)
1808               (uri (string-append
1809                     "mirror://kde/stable/frameworks/"
1810                     (version-major+minor version) "/"
1811                     name "-" version ".tar.xz"))
1812               (sha256
1813                (base32
1814                 "175b0lj4qybddjpc25b1p60lr8f9220i9ymk3wk3y3vf4893v833"))
1815               ;; Default to: external paths/symlinks can be followed by a
1816               ;; package
1817               (patches (search-patches "kpackage-allow-external-paths.patch"))))
1818     (build-system cmake-build-system)
1819     (native-inputs
1820      `(("extra-cmake-modules" ,extra-cmake-modules)))
1821     (inputs
1822      `(("karchive" ,karchive)
1823        ("kconfig" ,kconfig)
1824        ("kcoreaddons" ,kcoreaddons)
1825        ("kdoctools" ,kdoctools)
1826        ("ki18n" ,ki18n)
1827        ("qtbase" ,qtbase)))
1828     (arguments
1829      `(#:phases
1830        (modify-phases %standard-phases
1831          (add-after 'unpack 'patch
1832            (lambda _
1833              ;; Make QDirIterator follow symlinks
1834              (substitute* '("src/kpackage/packageloader.cpp"
1835                             "src/kpackage/private/packagejobthread.cpp")
1836                (("^\\s*(const QDirIterator::IteratorFlags flags = QDirIterator::Subdirectories)(;)" _ a b)
1837                 (string-append a " | QDirIterator::FollowSymlinks" b))
1838                (("^\\s*(QDirIterator it\\(.*, QDirIterator::Subdirectories)(\\);)" _ a b)
1839                 (string-append a " | QDirIterator::FollowSymlinks" b)))
1840              #t))
1841          (add-after 'unpack 'patch-tests
1842            (lambda _
1843              ;; /bin/ls doesn't exist in the build-container use /etc/passwd
1844              (substitute* "autotests/packagestructuretest.cpp"
1845                (("(addDirectoryDefinition\\(\")bin(\".*\")bin(\".*\")bin\""
1846                  _ a b c)
1847                 (string-append a "etc" b "etc" c "etc\""))
1848                (("filePath\\(\"bin\", QStringLiteral\\(\"ls\"))")
1849                 "filePath(\"etc\", QStringLiteral(\"passwd\"))")
1850                (("\"/bin/ls\"") "\"/etc/passwd\""))
1851              #t))
1852          (add-before 'check 'check-setup
1853            (lambda _
1854              (setenv "HOME" (getcwd))
1855              #t)))))
1856     (home-page "https://community.kde.org/Frameworks")
1857     (synopsis "Installation and loading of additional content as packages")
1858     (description "The Package framework lets the user install and load packages
1859 of non binary content such as scripted extensions or graphic assets, as if they
1860 were traditional plugins.")
1861     (license (list license:gpl2+ license:lgpl2.1+))))
1863 (define-public kpty
1864   (package
1865     (name "kpty")
1866     (version "5.55.0")
1867     (source (origin
1868               (method url-fetch)
1869               (uri (string-append
1870                     "mirror://kde/stable/frameworks/"
1871                     (version-major+minor version) "/"
1872                     name "-" version ".tar.xz"))
1873               (sha256
1874                (base32
1875                 "0r5080xl7x13qmjnjssb0d1pk626anaa4xahb7fi869fndr4xhzn"))))
1876     (build-system cmake-build-system)
1877     (native-inputs
1878      `(("extra-cmake-modules" ,extra-cmake-modules)))
1879     (inputs
1880      `(("kcoreaddons" ,kcoreaddons)
1881        ("ki18n" ,ki18n)
1882        ;; TODO: utempter, for managing UTMP entries
1883        ("qtbase" ,qtbase)))
1884     (arguments
1885      `(#:tests? #f ; FIXME: 1/1 tests fail.
1886        #:phases
1887        (modify-phases %standard-phases
1888          (add-after 'unpack 'patch-tests
1889            (lambda _
1890              (substitute* "autotests/kptyprocesstest.cpp"
1891                (("/bin/bash") (which "bash")))
1892              #t)))))
1893     (home-page "https://community.kde.org/Frameworks")
1894     (synopsis "Interfacing with pseudo terminal devices")
1895     (description "This library provides primitives to interface with pseudo
1896 terminal devices as well as a KProcess derived class for running child processes
1897 and communicating with them using a pty.")
1898     (license (list license:gpl2+ license:lgpl2.1+))))
1900 (define-public kunitconversion
1901   (package
1902     (name "kunitconversion")
1903     (version "5.55.0")
1904     (source (origin
1905               (method url-fetch)
1906               (uri (string-append
1907                     "mirror://kde/stable/frameworks/"
1908                     (version-major+minor version) "/"
1909                     name "-" version ".tar.xz"))
1910               (sha256
1911                (base32
1912                 "1v5cfxk5v76w1f1qvrpilrs111wvp8bn2p3bswhqp4lg0qxync0q"))))
1913     (build-system cmake-build-system)
1914     (arguments
1915      `(#:phases
1916        (modify-phases %standard-phases
1917          (add-after 'unpack 'disable-a-failing-test-case
1918            (lambda _
1919              ;; FIXME: Re-enable this test-case. It was committed with the
1920              ;; message: "tsan says it's clean, apart from issues in Qt
1921              ;; (reported upstream)"
1922              (substitute* "autotests/convertertest.cpp"
1923                (("const int numThreads = 2") "const int numThreads = 0")))))))
1924     (native-inputs
1925      `(("extra-cmake-modules" ,extra-cmake-modules)))
1926     (inputs
1927      `(("ki18n" ,ki18n)
1928        ("qtbase" ,qtbase)))
1929     (home-page "https://community.kde.org/Frameworks")
1930     (synopsis "Converting physical units")
1931     (description "KUnitConversion provides functions to convert values in
1932 different physical units.  It supports converting different prefixes (e.g. kilo,
1933 mega, giga) as well as converting between different unit systems (e.g. liters,
1934 gallons).")
1935     (license license:lgpl2.1+)))
1938 ;; Tier 3
1940 ;; Tier 3 frameworks are generally more powerful, comprehensive packages, and
1941 ;; consequently have more complex dependencies.
1943 (define-public baloo
1944   (package
1945     (name "baloo")
1946     (version "5.55.0")
1947     (source (origin
1948               (method url-fetch)
1949               (uri (string-append
1950                     "mirror://kde/stable/frameworks/"
1951                     (version-major+minor version) "/"
1952                     name "-" version ".tar.xz"))
1953               (sha256
1954                (base32
1955                 "068ms071639pskhjz37cszylvfzzqhp7x1rmwdfn5nlvzrv6lrxh"))))
1956     (build-system cmake-build-system)
1957     (propagated-inputs
1958      `(("kcoreaddons" ,kcoreaddons)
1959        ("kfilemetadata" ,kfilemetadata)))
1960     (native-inputs
1961      `(("dbus" ,dbus)
1962        ("extra-cmake-modules" ,extra-cmake-modules)))
1963     (inputs
1964      `(("kbookmarks" ,kbookmarks)
1965        ("kcompletion" ,kcompletion)
1966        ("kconfig" ,kconfig)
1967        ("kcrash" ,kcrash)
1968        ("kdbusaddons" ,kdbusaddons)
1969        ("kidletime" ,kidletime)
1970        ("kio" ,kio)
1971        ("kitemviews" ,kitemviews)
1972        ("ki18n" ,ki18n)
1973        ("kjobwidgets" ,kjobwidgets)
1974        ("kservice" ,kservice)
1975        ("kwidgetsaddons" ,kwidgetsaddons)
1976        ("kxmlgui" ,kxmlgui)
1977        ("lmdb" ,lmdb)
1978        ("qtbase" ,qtbase)
1979        ("qtdeclarative" ,qtdeclarative)
1980        ("solid" ,solid)))
1981     (arguments
1982      `(#:phases
1983        (modify-phases %standard-phases
1984          (add-before 'check 'check-setup
1985            (lambda _
1986              (setenv "HOME" (getcwd))
1987              ;; make Qt render "offscreen", required for tests
1988              (setenv "QT_QPA_PLATFORM" "offscreen")
1989              #t))
1990          (add-after 'unpack 'remove-failing-test
1991            ;; This test fails on i686 and aarch64
1992            (lambda _
1993              (substitute* "autotests/unit/file/CMakeLists.txt"
1994                (("^\\s*ecm_add_test\\(.* TEST_NAME metadatamovertest .*" line)
1995                 (string-append "# " line)))
1996              #t))
1997          (replace 'check
1998            (lambda _
1999              (setenv "DBUS_FATAL_WARNINGS" "0")
2000              (invoke "dbus-launch" "ctest" "."))))))
2001     (home-page "https://community.kde.org/Frameworks")
2002     (synopsis "File searching and indexing")
2003     (description "Baloo provides file searching and indexing.  It does so by
2004 maintaining an index of the contents of your files.")
2005     ;; dual licensed
2006     (license (list license:gpl2+ license:lgpl2.1+))))
2008 (define-public kactivities-stats
2009   (package
2010     (name "kactivities-stats")
2011     (version "5.55.0")
2012     (source (origin
2013               (method url-fetch)
2014               (uri (string-append
2015                     "mirror://kde/stable/frameworks/"
2016                     (version-major+minor version) "/"
2017                     name "-" version ".tar.xz"))
2018               (sha256
2019                (base32
2020                 "12n178244ysfak0x9qm9a2k814qi56w8xpkg03na7hlsz2l4y9v6"))))
2021     (build-system cmake-build-system)
2022     (native-inputs
2023      `(("extra-cmake-modules" ,extra-cmake-modules)))
2024     (inputs
2025      `(("boost" ,boost)
2026        ("kactivities" ,kactivities)
2027        ("kconfig" ,kconfig)
2028        ("qtbase" ,qtbase)
2029        ("qtdeclarative" ,qtdeclarative)))
2030     (home-page "https://community.kde.org/Frameworks")
2031     (synopsis "Access usage statistics collected by the activity manager")
2032     (description "The KActivitiesStats library provides a querying mechanism for
2033 the data that the activitiy manager collects - which documents have been opened
2034 by which applications, and what documents have been linked to which activity.")
2035     ;; triple licensed
2036     (license (list license:lgpl2.0+ license:lgpl2.1+ license:lgpl3+))))
2038 (define-public kbookmarks
2039   (package
2040     (name "kbookmarks")
2041     (version "5.55.0")
2042     (source (origin
2043               (method url-fetch)
2044               (uri (string-append
2045                     "mirror://kde/stable/frameworks/"
2046                     (version-major+minor version) "/"
2047                     name "-" version ".tar.xz"))
2048               (sha256
2049                (base32
2050                 "0vsn98znzdbiy8clbl9p3kiag3zvxgc9701gwg2ig8mpv3ci9lkg"))))
2051     (build-system cmake-build-system)
2052     (propagated-inputs
2053      `(("kwidgetsaddons" ,kwidgetsaddons)))
2054     (native-inputs
2055      `(("extra-cmake-modules" ,extra-cmake-modules)
2056        ("qttools" ,qttools)))
2057     (inputs
2058      `(("kauth" ,kauth)
2059        ("kcodecs" ,kcodecs)
2060        ("kconfig" ,kconfig)
2061        ("kconfigwidgets" ,kconfigwidgets)
2062        ("kcoreaddons" ,kcoreaddons)
2063        ("kiconthemes" ,kiconthemes)
2064        ("kxmlgui" ,kxmlgui)
2065        ("qtbase" ,qtbase)))
2066     (arguments
2067      `(#:phases
2068        (modify-phases %standard-phases
2069          (add-before 'check 'check-setup
2070            (lambda _
2071              (setenv "HOME" (getcwd))
2072              ;; make Qt render "offscreen", required for tests
2073              (setenv "QT_QPA_PLATFORM" "offscreen")
2074              #t)))))
2075     (home-page "https://community.kde.org/Frameworks")
2076     (synopsis "Bookmarks management library")
2077     (description "KBookmarks lets you access and manipulate bookmarks stored
2078 using the XBEL format.")
2079     (license license:lgpl2.1+)))
2081 (define-public kcmutils
2082   (package
2083     (name "kcmutils")
2084     (version "5.55.0")
2085     (source (origin
2086               (method url-fetch)
2087               (uri (string-append
2088                     "mirror://kde/stable/frameworks/"
2089                     (version-major+minor version) "/"
2090                     name "-" version ".tar.xz"))
2091               (sha256
2092                (base32
2093                 "1f49864xpxrbj77n7l474wkn3rw4zy8vkl3psdya7ccdk7ac2s0k"))))
2094     (build-system cmake-build-system)
2095     (propagated-inputs
2096      `(("kconfigwidgets" ,kconfigwidgets)
2097        ("kservice" ,kservice)))
2098     (native-inputs
2099      `(("extra-cmake-modules" ,extra-cmake-modules)))
2100     (arguments
2101      `(#:phases
2102        (modify-phases %standard-phases
2103          (add-after 'unpack 'patch
2104            (lambda _
2105              (substitute* "src/kpluginselector.cpp"
2106                ;; make QDirIterator follow symlinks
2107                (("^\\s*(QDirIterator it\\(.*, QDirIterator::Subdirectories)(\\);)" _ a b)
2108                 (string-append a " | QDirIterator::FollowSymlinks" b)))
2109              (substitute* "src/kcmoduleloader.cpp"
2110                ;; print plugin name when loading fails
2111                (("^\\s*(qWarning\\(\\) << \"Error loading) (plugin:\")( << loader\\.errorString\\(\\);)" _ a b c)
2112                 (string-append a " KCM plugin\" << mod.service()->library() << \":\"" c)))
2113              #t)))))
2114     (inputs
2115      `(("kauth" ,kauth)
2116        ("kcodecs" ,kcodecs)
2117        ("kconfig" ,kconfig)
2118        ("kcoreaddons" ,kcoreaddons)
2119        ("kdeclarative" ,kdeclarative)
2120        ("kiconthemes" ,kiconthemes)
2121        ("kitemviews" ,kitemviews)
2122        ("ki18n" ,ki18n)
2123        ("kpackage" ,kpackage)
2124        ("kwidgetsaddons" ,kwidgetsaddons)
2125        ("kxmlgui" ,kxmlgui)
2126        ("qtbase" ,qtbase)
2127        ("qtdeclarative" ,qtdeclarative)))
2128     (home-page "https://community.kde.org/Frameworks")
2129     (synopsis "Utilities for KDE System Settings modules")
2130     (description "KCMUtils provides various classes to work with KCModules.
2131 KCModules can be created with the KConfigWidgets framework.")
2132     (license license:lgpl2.1+)))
2134 (define-public kconfigwidgets
2135   (package
2136     (name "kconfigwidgets")
2137     (version "5.55.0")
2138     (source (origin
2139               (method url-fetch)
2140               (uri (string-append
2141                     "mirror://kde/stable/frameworks/"
2142                     (version-major+minor version) "/"
2143                     name "-" version ".tar.xz"))
2144               (sha256
2145                (base32
2146                 "0npfp6z5lc2h8y6slmz3sbymyyv9k2w73rpsjzl5zswqhzlvrb5k"))))
2147     (build-system cmake-build-system)
2148     (propagated-inputs
2149      `(("kauth" ,kauth)
2150        ("kcodecs" ,kcodecs)
2151        ("kconfig" ,kconfig)
2152        ("kwidgetsaddons" ,kwidgetsaddons)))
2153     (native-inputs
2154      `(("extra-cmake-modules" ,extra-cmake-modules)
2155        ("kdoctools" ,kdoctools)))
2156     (inputs
2157      `(("kcoreaddons" ,kcoreaddons)
2158        ("kguiaddons" ,kguiaddons)
2159        ("ki18n" ,ki18n)
2160        ("qtbase" ,qtbase)))
2161     (arguments
2162      `(#:phases
2163        (modify-phases %standard-phases
2164          (add-after 'unpack 'patch
2165            (lambda _
2166              (substitute* "src/khelpclient.cpp"
2167                ;; make QDirIterator follow symlinks
2168                (("^\\s*(QDirIterator it\\(.*, QDirIterator::Subdirectories)(\\);)" _ a b)
2169                 (string-append a " | QDirIterator::FollowSymlinks" b)))
2170              #t))
2171          (add-before 'check 'check-setup
2172            (lambda _
2173              ;; make Qt render "offscreen", required for tests
2174              (setenv "QT_QPA_PLATFORM" "offscreen")
2175              #t)))))
2176     (home-page "https://community.kde.org/Frameworks")
2177     (synopsis "Widgets for configuration dialogs")
2178     (description "KConfigWidgets provides easy-to-use classes to create
2179 configuration dialogs, as well as a set of widgets which uses KConfig to store
2180 their settings.")
2181     ;; dual licensed
2182     (license (list license:gpl2+ license:lgpl2.1+))))
2184 (define-public kdeclarative
2185   (package
2186     (name "kdeclarative")
2187     (version "5.55.0")
2188     (source (origin
2189               (method url-fetch)
2190               (uri (string-append
2191                     "mirror://kde/stable/frameworks/"
2192                     (version-major+minor version) "/"
2193                     name "-" version ".tar.xz"))
2194               (sha256
2195                (base32
2196                 "043jl7rn9yawh04fwgaxb8iwksn3z8qb4yfc4s6v1znwcs7ajlda"))))
2197     (build-system cmake-build-system)
2198     (propagated-inputs
2199      `(("kconfig" ,kconfig)
2200        ("kpackage" ,kpackage)))
2201     (native-inputs
2202      `(("extra-cmake-modules" ,extra-cmake-modules)
2203        ("pkg-config" ,pkg-config)
2204        ("xorg-server" ,xorg-server)))
2205     (inputs
2206      `(("kauth" ,kauth)
2207        ("kbookmarks" ,kbookmarks)
2208        ("kcodecs" ,kcodecs)
2209        ("kcompletion" ,kcompletion)
2210        ("kconfigwidgets" ,kconfigwidgets)
2211        ("kcoreaddons" ,kcoreaddons)
2212        ("kglobalaccel" ,kglobalaccel)
2213        ("kguiaddons" ,kguiaddons)
2214        ("kiconthemes" ,kiconthemes)
2215        ("kio" ,kio)
2216        ("kitemviews" ,kitemviews)
2217        ("ki18n" ,ki18n)
2218        ("kjobwidgets" ,kjobwidgets)
2219        ("kservice" ,kservice)
2220        ("kwidgetsaddons" ,kwidgetsaddons)
2221        ("kwindowsystem" ,kwindowsystem)
2222        ("kxmlgui" ,kxmlgui)
2223        ("libepoxy" ,libepoxy)
2224        ("qtbase" ,qtbase)
2225        ("qtdeclarative" ,qtdeclarative)
2226        ("solid" ,solid)))
2227     (arguments
2228      `(#:phases
2229        (modify-phases %standard-phases
2230          (add-before 'check 'start-xorg-server
2231            (lambda* (#:key inputs #:allow-other-keys)
2232              ;; The test suite requires a running X server, setting
2233              ;; QT_QPA_PLATFORM=offscreen does not suffice.
2234              (system (string-append (assoc-ref inputs "xorg-server")
2235                                     "/bin/Xvfb :1 -screen 0 640x480x24 &"))
2236              (setenv "DISPLAY" ":1")
2237              #t)))))
2238     (home-page "https://community.kde.org/Frameworks")
2239     (synopsis "Integration of QML and KDE work spaces")
2240     (description "KDeclarative provides integration of QML and KDE work spaces.
2241 It's comprises two parts: a library used by the C++ part of your application to
2242 intergrate QML with KDE Frameworks specific features, and a series of QML imports
2243 that offer bindings to some of the Frameworks.")
2244     ;; dual licensed
2245     (license (list license:gpl2+ license:lgpl2.1+))))
2247 (define-public kded
2248   (package
2249     (name "kded")
2250     (version "5.55.0")
2251     (source (origin
2252               (method url-fetch)
2253               (uri (string-append
2254                     "mirror://kde/stable/frameworks/"
2255                     (version-major+minor version) "/"
2256                     name "-" version ".tar.xz"))
2257               (sha256
2258                (base32
2259                 "0kn9kzzji257mppd12jzwiibha8127ajxvng2ls765lylv9nad7q"))))
2260     (build-system cmake-build-system)
2261     (native-inputs
2262      `(("extra-cmake-modules" ,extra-cmake-modules)))
2263     (inputs
2264      `(("kconfig" ,kconfig)
2265        ("kcoreaddons" ,kcoreaddons)
2266        ("kcrash" ,kcrash)
2267        ("kdbusaddons" ,kdbusaddons)
2268        ("kdoctools" ,kdoctools)
2269        ("kinit" ,kinit)
2270        ("kservice" ,kservice)
2271        ("qtbase" ,qtbase)))
2272     (home-page "https://community.kde.org/Frameworks")
2273     (synopsis "Central daemon of KDE work spaces")
2274     (description "KDED stands for KDE Daemon.  KDED runs in the background and
2275 performs a number of small tasks.  Some of these tasks are built in, others are
2276 started on demand.")
2277     ;; dual licensed
2278     (license (list license:lgpl2.0+ license:lgpl2.1+))))
2280 (define-public kdesignerplugin
2281   (package
2282     (name "kdesignerplugin")
2283     (version "5.55.0")
2284     (source (origin
2285               (method url-fetch)
2286               (uri (string-append
2287                     "mirror://kde/stable/frameworks/"
2288                     (version-major+minor version) "/"
2289                     name "-" version ".tar.xz"))
2290               (sha256
2291                (base32
2292                 "114035wil0p5z6h0li8wjzivsdxhqbih54kn4nvhn43b71xnzs3y"))))
2293     (build-system cmake-build-system)
2294     (native-inputs
2295      `(("extra-cmake-modules" ,extra-cmake-modules)
2296        ("qttools" ,qttools)))
2297     (inputs
2298      `(("kconfig" ,kconfig)
2299        ("kcoreaddons" ,kcoreaddons)
2300        ("kdoctools" ,kdoctools)
2301        ("qtbase" ,qtbase)
2302        ;; optional:
2303        ("kcompletion" ,kcompletion)
2304        ("kconfigwidgets" ,kconfigwidgets)
2305        ("kiconthemes" ,kiconthemes)
2306        ("kitemviews" ,kitemviews)
2307        ("kio" ,kio)
2308        ("kplotting" ,kplotting)
2309        ("ktextwidgets" ,ktextwidgets)
2310        ("kdewebkit" ,kdewebkit)
2311        ("kwidgetsaddons" ,kwidgetsaddons)
2312        ("kxmlgui" ,kxmlgui)
2313        ("qtwebkit" ,qtwebkit)
2314        ("sonnet" ,sonnet)))
2315     (arguments
2316      `(#:phases
2317        (modify-phases %standard-phases
2318          (add-before 'check 'check-setup
2319            (lambda _
2320              ;; make Qt render "offscreen", required for tests
2321              (setenv "QT_QPA_PLATFORM" "offscreen")
2322              #t)))))
2323     (home-page "https://community.kde.org/Frameworks")
2324     (synopsis "Integrating KDE frameworks widgets with Qt Designer")
2325     (description "This framework provides plugins for Qt Designer that allow it
2326 to display the widgets provided by various KDE frameworks, as well as a utility
2327 (kgendesignerplugin) that can be used to generate other such plugins from
2328 ini-style description files.")
2329     (license license:lgpl2.1+)))
2331 (define-public kdesu
2332   (package
2333     (name "kdesu")
2334     (version "5.55.0")
2335     (source (origin
2336               (method url-fetch)
2337               (uri (string-append
2338                     "mirror://kde/stable/frameworks/"
2339                     (version-major+minor version) "/"
2340                     name "-" version ".tar.xz"))
2341               (sha256
2342                (base32
2343                 "1x2gjnmgpcaxvfav2pm92zfgxbn60awpvmn9ycs68rq47p6h9x0f"))))
2344     (build-system cmake-build-system)
2345     (propagated-inputs
2346      `(("kpty" ,kpty)))
2347     (native-inputs
2348      `(("extra-cmake-modules" ,extra-cmake-modules)))
2349     (inputs
2350      `(("kconfig" ,kconfig)
2351        ("kcoreaddons" ,kcoreaddons)
2352        ("ki18n" ,ki18n)
2353        ("kservice" ,kservice)
2354        ("qtbase" ,qtbase)))
2355     (home-page "https://community.kde.org/Frameworks")
2356     (synopsis "User interface for running shell commands with root privileges")
2357     (description "KDESU provides functionality for building GUI front ends for
2358 (password asking) console mode programs.  kdesu and kdessh use it to interface
2359 with su and ssh respectively.")
2360     (license license:lgpl2.1+)))
2362 (define-public kdewebkit
2363   (package
2364     (name "kdewebkit")
2365     (version "5.55.0")
2366     (source (origin
2367               (method url-fetch)
2368               (uri (string-append
2369                     "mirror://kde/stable/frameworks/"
2370                     (version-major+minor version) "/"
2371                     name "-" version ".tar.xz"))
2372               (sha256
2373                (base32
2374                 "1mnbdsiih94hlwwff9fs9gnzl3y7ayf1pskmz1rajgjmqd6rm7mm"))))
2375     (build-system cmake-build-system)
2376     (native-inputs
2377      `(("extra-cmake-modules" ,extra-cmake-modules)))
2378     (inputs
2379      `(("kconfig" ,kconfig)
2380        ("kcoreaddons" ,kcoreaddons)
2381        ("kio" ,kio)
2382        ("kjobwidgets" ,kjobwidgets)
2383        ("kparts" ,kparts)
2384        ("kservice" ,kservice)
2385        ("kwallet" ,kwallet)
2386        ("qtbase" ,qtbase)
2387        ("qtwebkit" ,qtwebkit)))
2388     (home-page "https://community.kde.org/Frameworks")
2389     (synopsis "KDE Integration for QtWebKit")
2390     (description "This library provides KDE integration of the HTML rendering
2391 engine WebKit via QtWebKit.")
2392     (license license:lgpl2.1+)))
2394 (define-public kemoticons
2395   (package
2396     (name "kemoticons")
2397     (version "5.55.0")
2398     (source (origin
2399               (method url-fetch)
2400               (uri (string-append
2401                     "mirror://kde/stable/frameworks/"
2402                     (version-major+minor version) "/"
2403                     name "-" version ".tar.xz"))
2404               (sha256
2405                (base32
2406                 "03vx22f9mjd10qm61f6ihr283w2sarrhg0rssxp7g7wahvshcvmh"))))
2407     (build-system cmake-build-system)
2408     (propagated-inputs
2409      `(("kservice" ,kservice)))
2410     (native-inputs
2411      `(("extra-cmake-modules" ,extra-cmake-modules)))
2412     (inputs
2413      `(("karchive" ,karchive)
2414        ("kconfig" ,kconfig)
2415        ("kcoreaddons" ,kcoreaddons)
2416        ("qtbase" ,qtbase)))
2417     (arguments
2418      `(#:phases
2419        (modify-phases %standard-phases
2420          (add-before 'check 'check-setup
2421            (lambda _
2422              (setenv "HOME" (getcwd))
2423              ;; make Qt render "offscreen", required for tests
2424              (setenv "QT_QPA_PLATFORM" "offscreen")
2425              #t)))))
2426     (home-page "https://community.kde.org/Frameworks")
2427     (synopsis "Convert text emoticons to graphical emoticons")
2428     (description "KEmoticons converts emoticons from text to a graphical
2429 representation with images in HTML.  It supports setting different themes for
2430 emoticons coming from different providers.")
2431     ;; dual licensed, image files are licensed under cc-by-sa4.0
2432     (license (list license:gpl2+ license:lgpl2.1+ license:cc-by-sa4.0))))
2434 (define-public kglobalaccel
2435   (package
2436     (name "kglobalaccel")
2437     (version "5.55.0")
2438     (source (origin
2439               (method url-fetch)
2440               (uri (string-append
2441                     "mirror://kde/stable/frameworks/"
2442                     (version-major+minor version) "/"
2443                     name "-" version ".tar.xz"))
2444               (sha256
2445                (base32
2446                 "1c6dxp6jvbw8l74n1mv0v62yr34b9447szhvd61y4sxmmfjimhz4"))))
2447     (build-system cmake-build-system)
2448     (native-inputs
2449      `(("extra-cmake-modules" ,extra-cmake-modules)
2450        ("pkg-config" ,pkg-config)
2451        ("qttools" ,qttools)))
2452     (inputs
2453      `(("kconfig" ,kconfig)
2454        ("kcrash" ,kcrash)
2455        ("kcoreaddons" ,kcoreaddons)
2456        ("kdbusaddons" ,kdbusaddons)
2457        ("kservice" ,kservice)
2458        ("kwindowsystem" ,kwindowsystem)
2459        ("libxcb" ,libxcb)
2460        ("qtbase" ,qtbase)
2461        ("qtx11extras" ,qtx11extras)
2462        ("xcb-util-keysyms" ,xcb-util-keysyms)))
2463     (arguments
2464      `(#:phases
2465        (modify-phases %standard-phases
2466          (add-before 'check 'check-setup
2467            (lambda _
2468              ;; make Qt render "offscreen", required for tests
2469              (setenv "QT_QPA_PLATFORM" "offscreen")
2470              #t)))))
2471     (home-page "https://community.kde.org/Frameworks")
2472     (synopsis "Global desktop keyboard shortcuts")
2473     (description "KGlobalAccel allows you to have global accelerators that are
2474 independent of the focused window.  Unlike regular shortcuts, the application's
2475 window does not need focus for them to be activated.")
2476     (license license:lgpl2.1+)))
2478 (define-public kiconthemes
2479   (package
2480     (name "kiconthemes")
2481     (version "5.55.0")
2482     (source (origin
2483               (method url-fetch)
2484               (uri (string-append
2485                     "mirror://kde/stable/frameworks/"
2486                     (version-major+minor version) "/"
2487                     name "-" version ".tar.xz"))
2488               (sha256
2489                (base32
2490                 "1rgbfklb7xxg7z2zyrsmaxf883ixgfbkqilps3npwk3xac2f66rw"))))
2491     (build-system cmake-build-system)
2492     (native-inputs
2493      `(("extra-cmake-modules" ,extra-cmake-modules)
2494        ("shared-mime-info" ,shared-mime-info)))
2495     (inputs
2496      `(("karchive" ,karchive)
2497        ("kauth" ,kauth)
2498        ("kcodecs" ,kcodecs)
2499        ("kcoreaddons" ,kcoreaddons)
2500        ("kconfig" ,kconfig)
2501        ("kconfigwidgets" ,kconfigwidgets)
2502        ("ki18n" ,ki18n)
2503        ("kitemviews" ,kitemviews)
2504        ("kwidgetsaddons" ,kwidgetsaddons)
2505        ("qtbase" ,qtbase)
2506        ("qtsvg" ,qtsvg)))
2507     (arguments
2508      `(#:phases
2509        (modify-phases %standard-phases
2510          (add-before 'check 'check-setup
2511            (lambda* (#:key inputs #:allow-other-keys)
2512              (setenv "XDG_DATA_DIRS"
2513                      (string-append (assoc-ref inputs "shared-mime-info")
2514                                     "/share"))
2515              (setenv "HOME" (getcwd))
2516              ;; make Qt render "offscreen", required for tests
2517              (setenv "QT_QPA_PLATFORM" "offscreen")
2518              #t)))))
2519     (home-page "https://community.kde.org/Frameworks")
2520     (synopsis "Icon GUI utilities")
2521     (description "This library contains classes to improve the handling of icons
2522 in applications using the KDE Frameworks.")
2523     (license license:lgpl2.1+)))
2525 (define-public kinit
2526   (package
2527     (name "kinit")
2528     (version "5.55.0")
2529     (source (origin
2530               (method url-fetch)
2531               (uri (string-append
2532                     "mirror://kde/stable/frameworks/"
2533                     (version-major+minor version) "/"
2534                     name "-" version ".tar.xz"))
2535               (sha256
2536                (base32
2537                 "11xwiny5sfqbdls249vnq6ssp5pzw1w9wg4ql9nkwwygl4ml8b9y"))
2538               ;; Use the store paths for other packages and dynamically loaded
2539               ;; libs
2540               (patches (search-patches "kinit-kdeinit-extra_libs.patch"
2541                                        "kinit-kdeinit-libpath.patch"))))
2542     (build-system cmake-build-system)
2543     (arguments
2544      `(#:phases
2545        (modify-phases %standard-phases
2546          (add-after 'unpack 'patch-paths
2547            (lambda* (#:key inputs outputs #:allow-other-keys)
2548              ;; Set patched-in values:
2549              (substitute* "src/kdeinit/kinit.cpp"
2550                (("GUIX_PKGS_KF5_KIO") (assoc-ref inputs "kio"))
2551                (("GUIX_PKGS_KF5_PARTS") (assoc-ref inputs "kparts"))
2552                (("GUIX_PKGS_KF5_PLASMA") (assoc-ref inputs "plasma-framework")))
2553              #t)))))
2554     (native-search-paths
2555      (list (search-path-specification
2556             (variable "KDEINIT5_LIBRARY_PATH")
2557             (files '("lib/")))))
2558     (native-inputs
2559      `(("extra-cmake-modules" ,extra-cmake-modules)
2560        ("pkg-config" ,pkg-config)))
2561     (inputs
2562      `(("kauth" ,kauth)
2563        ("kbookmarks" ,kbookmarks)
2564        ("kcodecs" ,kcodecs)
2565        ("kcompletion" ,kcompletion)
2566        ("kconfig" ,kconfig)
2567        ("kconfigwidgets" ,kconfigwidgets)
2568        ("kcoreaddons" ,kcoreaddons)
2569        ("kcrash" ,kcrash)
2570        ("kdoctools" ,kdoctools)
2571        ("kio" ,kio)
2572        ("kitemviews" ,kitemviews)
2573        ("ki18n" ,ki18n)
2574        ("kjobwidgets" ,kjobwidgets)
2575        ("kparts" ,kparts)
2576        ("kservice" ,kservice)
2577        ("kwidgetsaddons" ,kwidgetsaddons)
2578        ("kwindowsystem" ,kwindowsystem)
2579        ("kxmlgui" ,kxmlgui)
2580        ("libcap" ,libcap) ; to install start_kdeinit with CAP_SYS_RESOURCE
2581        ("plasma-framework" ,plasma-framework)
2582        ("qtbase" ,qtbase)
2583        ("solid" ,solid)))
2584     (home-page "https://community.kde.org/Frameworks")
2585     (synopsis "Library to speed up start of applications on KDE workspaces")
2586     (description "Kdeinit is a process launcher similar to init used for booting
2587 UNIX.  It launches processes by forking and then loading a dynamic library which
2588 contains a @code{kdemain(@dots{})} function.  Using kdeinit to launch KDE
2589 applications makes starting KDE applications faster and reduces memory
2590 consumption.")
2591     ;; dual licensed
2592     (license (list license:lgpl2.0+ license:lgpl2.1+))))
2594 (define-public kio
2595   (package
2596     (name "kio")
2597     (version "5.55.0")
2598     (source (origin
2599               (method url-fetch)
2600               (uri (string-append
2601                     "mirror://kde/stable/frameworks/"
2602                     (version-major+minor version) "/"
2603                     name "-" version ".tar.xz"))
2604               (sha256
2605                (base32
2606                 "1k3cn7hvp5z9nirss29v164hahrlvlqivxlk64c8w9ynjx699ira"))
2607               (patches (search-patches "kio-search-smbd-on-PATH.patch"))))
2608     (build-system cmake-build-system)
2609     (propagated-inputs
2610      `(("kbookmarks" ,kbookmarks)
2611        ("kconfig" ,kconfig)
2612        ("kcompletion" ,kcompletion)
2613        ("kcoreaddons" ,kcoreaddons)
2614        ("kitemviews" ,kitemviews)
2615        ("kjobwidgets" ,kjobwidgets)
2616        ("kservice" ,kservice)
2617        ("kxmlgui" ,kxmlgui)
2618        ("solid" ,solid)))
2619     (native-inputs
2620      `(("dbus" ,dbus)
2621        ("extra-cmake-modules" ,extra-cmake-modules)))
2622     (inputs
2623      `(;; TODO:  LibACL , <ftp://oss.sgi.com/projects/xfs/cmd_tars>
2624        ("krb5" ,mit-krb5)
2625        ("karchive" ,karchive)
2626        ("kauth" ,kauth)
2627        ("kcodecs" ,kcodecs)
2628        ("kconfigwidgets" ,kconfigwidgets)
2629        ("kcrash" ,kcrash)
2630        ("kdbusaddons" ,kdbusaddons)
2631        ("kdoctools" ,kdoctools)
2632        ("kiconthemes" ,kiconthemes)
2633        ("ki18n" ,ki18n)
2634        ("knotifications" ,knotifications)
2635        ("ktextwidgets" ,ktextwidgets)
2636        ("kwallet" ,kwallet)
2637        ("kwidgetsaddons" ,kwidgetsaddons)
2638        ("kwindowsystem" ,kwindowsystem)
2639        ("libxml2" ,libxml2)
2640        ("libxslt" ,libxslt)
2641        ("qtbase" ,qtbase)
2642        ("qtscript" ,qtscript)
2643        ("qtx11extras" ,qtx11extras)
2644        ("sonnet" ,sonnet)))
2645     (arguments
2646      `(#:tests? #f ; FIXME: 41/50 tests fail.
2647        #:phases
2648        (modify-phases %standard-phases
2649          (add-after 'unpack 'patch
2650            (lambda _
2651              ;; Better error message (taken from NixOS)
2652              (substitute* "src/kiod/kiod_main.cpp"
2653                (("(^\\s*qCWarning(KIOD_CATEGORY) << \"Error loading plugin:\")( << loader.errorString();)" _ a b)
2654                 (string-append a "<< name" b)))
2655              #t))
2656          (add-before 'check 'check-setup
2657            (lambda _
2658              (setenv "HOME" (getcwd))
2659              (setenv "XDG_RUNTIME_DIR" (getcwd))
2660              ;; make Qt render "offscreen", required for tests
2661              (setenv "QT_QPA_PLATFORM" "offscreen")
2662              #t))
2663          (add-after 'install 'add-symlinks
2664            ;; Some package(s) (e.g. bluedevil) refer to these service types by
2665            ;; the wrong name.  I would prefer to patch those packages, but I
2666            ;; cannot find the files!
2667            (lambda* (#:key outputs #:allow-other-keys)
2668              (let ((kst5 (string-append (assoc-ref outputs "out")
2669                                         "/share/kservicetypes5/")))
2670                (symlink (string-append kst5 "kfileitemactionplugin.desktop")
2671                         (string-append kst5 "kfileitemaction-plugin.desktop"))))))))
2672     ;;(replace 'check
2673     ;;  (lambda _
2674     ;;    (setenv "DBUS_FATAL_WARNINGS" "0")
2675     ;;    (zero? (system* "dbus-launch" "ctest" ".")))))))
2676     (home-page "https://community.kde.org/Frameworks")
2677     (synopsis "Network transparent access to files and data")
2678     (description "This framework implements a lot of file management functions.
2679 It supports accessing files locally as well as via HTTP and FTP out of the box
2680 and can be extended by plugins to support other protocols as well.  There is a
2681 variety of plugins available, e.g. to support access via SSH.  The framework can
2682 also be used to bridge a native protocol to a file-based interface.  This makes
2683 the data accessible in all applications using the KDE file dialog or any other
2684 KIO enabled infrastructure.")
2685     (license license:lgpl2.1+)))
2687 (define-public knewstuff
2688   (package
2689     (name "knewstuff")
2690     (version "5.55.0")
2691     (source (origin
2692               (method url-fetch)
2693               (uri (string-append
2694                     "mirror://kde/stable/frameworks/"
2695                     (version-major+minor version) "/"
2696                     name "-" version ".tar.xz"))
2697               (sha256
2698                (base32
2699                 "0a2d9wrhjsjl0klsrn501sp9681v7qmq6hmalw061arjv165dzw2"))))
2700     (build-system cmake-build-system)
2701     (propagated-inputs
2702      `(("attica" ,attica)
2703        ("kservice" ,kservice)
2704        ("kxmlgui" ,kxmlgui)))
2705     (native-inputs
2706      `(("extra-cmake-modules" ,extra-cmake-modules)))
2707     (inputs
2708      `(("karchive" ,karchive)
2709        ("kauth" ,kauth)
2710        ("kbookmarks" ,kbookmarks)
2711        ("kcodecs" ,kcodecs)
2712        ("kcompletion" ,kcompletion)
2713        ("kconfig" ,kconfig)
2714        ("kconfigwidgets" ,kconfigwidgets)
2715        ("kcoreaddons" ,kcoreaddons)
2716        ("kio" ,kio)
2717        ("kitemviews" ,kitemviews)
2718        ("ki18n" ,ki18n)
2719        ("kiconthemes" ,kiconthemes)
2720        ("kjobwidgets" ,kjobwidgets)
2721        ("ktextwidgets" ,ktextwidgets)
2722        ("kwidgetsaddons" ,kwidgetsaddons)
2723        ("qtbase" ,qtbase)
2724        ("qtdeclarative" ,qtdeclarative)
2725        ("solid" ,solid)
2726        ("sonnet" ,sonnet)))
2727     (arguments
2728      `(#:phases
2729        (modify-phases %standard-phases
2730          (add-before 'check 'check-setup
2731            (lambda _ ; XDG_DATA_DIRS isn't set
2732              (setenv "HOME" (getcwd))
2733              ;; make Qt render "offscreen", required for tests
2734              (setenv "QT_QPA_PLATFORM" "offscreen")
2735              #t)))))
2736     (home-page "https://community.kde.org/Frameworks")
2737     (synopsis "Framework for downloading and sharing additional application data")
2738     (description "The KNewStuff library implements collaborative data sharing
2739 for applications.  It uses libattica to support the Open Collaboration Services
2740 specification.")
2741     (license license:lgpl2.1+)))
2743 (define-public knotifyconfig
2744   (package
2745     (name "knotifyconfig")
2746     (version "5.55.0")
2747     (source (origin
2748               (method url-fetch)
2749               (uri (string-append
2750                     "mirror://kde/stable/frameworks/"
2751                     (version-major+minor version) "/"
2752                     name "-" version ".tar.xz"))
2753               (sha256
2754                (base32
2755                 "01hxj6s2sq5k5j6j1y4c5gxyl1886j7ghh0hdc95b7n4gdjwwbci"))))
2756     (build-system cmake-build-system)
2757     (native-inputs
2758      `(("extra-cmake-modules" ,extra-cmake-modules)))
2759     (inputs
2760      `(("kauth" ,kauth)
2761        ("kbookmarks" ,kbookmarks)
2762        ("kcodecs" ,kcodecs)
2763        ("kcompletion" ,kcompletion)
2764        ("kconfig" ,kconfig)
2765        ("kconfigwidgets" ,kconfigwidgets)
2766        ("kcoreaddons" ,kcoreaddons)
2767        ("kio" ,kio)
2768        ("kitemviews" ,kitemviews)
2769        ("ki18n" ,ki18n)
2770        ("kjobwidgets" ,kjobwidgets)
2771        ("knotifications" ,knotifications)
2772        ("kservice" ,kservice)
2773        ("kwidgetsaddons" ,kwidgetsaddons)
2774        ("kxmlgui" ,kxmlgui)
2775        ("phonon" ,phonon)
2776        ("qtbase" ,qtbase)
2777        ("solid" ,solid)))
2778     (home-page "https://community.kde.org/Frameworks")
2779     (synopsis "Configuration dialog for desktop notifications")
2780     (description "KNotifyConfig provides a configuration dialog for desktop
2781 notifications which can be embedded in your application.")
2782     ;; dual licensed
2783     (license (list license:lgpl2.0+ license:lgpl2.1+))))
2785 (define-public kparts
2786   (package
2787     (name "kparts")
2788     (version "5.55.0")
2789     (source (origin
2790               (method url-fetch)
2791               (uri (string-append
2792                     "mirror://kde/stable/frameworks/"
2793                     (version-major+minor version) "/"
2794                     name "-" version ".tar.xz"))
2795               (sha256
2796                (base32
2797                 "0gqkgnvkdai8hbg1n32jq4a3yzlkarmw8a7hxlfr0ykgysanjh65"))))
2798     (build-system cmake-build-system)
2799     (propagated-inputs
2800      `(("kio" ,kio)
2801        ("ktextwidgets" ,ktextwidgets)
2802        ("kxmlgui" ,kxmlgui)))
2803     (native-inputs
2804      `(("extra-cmake-modules" ,extra-cmake-modules)
2805        ("shared-mime-info" ,shared-mime-info)))
2806     (inputs
2807      `(("kauth" ,kauth)
2808        ("kbookmarks" ,kbookmarks)
2809        ("kcodecs" ,kcodecs)
2810        ("kcompletion" ,kcompletion)
2811        ("kconfig" ,kconfig)
2812        ("kconfigwidgets" ,kconfigwidgets)
2813        ("kcoreaddons" ,kcoreaddons)
2814        ("kiconthemes" ,kiconthemes)
2815        ("kitemviews" ,kitemviews)
2816        ("ki18n" ,ki18n)
2817        ("kjobwidgets" ,kjobwidgets)
2818        ("kservice" ,kservice)
2819        ("kwidgetsaddons" ,kwidgetsaddons)
2820        ("qtbase" ,qtbase)
2821        ("solid" ,solid)
2822        ("sonnet" ,sonnet)))
2823     (arguments
2824      `(#:phases
2825        (modify-phases %standard-phases
2826          (add-before 'check 'check-setup
2827            (lambda _
2828              ;; make Qt render "offscreen", required for tests
2829              (setenv "QT_QPA_PLATFORM" "offscreen")
2830              #t)))))
2831     (home-page "https://community.kde.org/Frameworks")
2832     (synopsis "Plugin framework for user interface components")
2833     (description "This library implements the framework for KDE parts, which are
2834 widgets with a user-interface defined in terms of actions.")
2835     (license license:lgpl2.1+)))
2837 (define-public kpeople
2838   (package
2839     (name "kpeople")
2840     (version "5.55.0")
2841     (source (origin
2842               (method url-fetch)
2843               (uri (string-append
2844                     "mirror://kde/stable/frameworks/"
2845                     (version-major+minor version) "/"
2846                     name "-" version ".tar.xz"))
2847               (sha256
2848                (base32
2849                 "0vbgi4l14g4f0klbxqbkjcag6yi0ghhpxn5nik5sssmcx8qyk885"))))
2850     (build-system cmake-build-system)
2851     (native-inputs
2852      `(("extra-cmake-modules" ,extra-cmake-modules)))
2853     (inputs
2854      `(("kconfig" ,kconfig)
2855        ("kcoreaddons" ,kcoreaddons)
2856        ("kitemviews" ,kitemviews)
2857        ("ki18n" ,ki18n)
2858        ("kservice" ,kservice)
2859        ("kwidgetsaddons" ,kwidgetsaddons)
2860        ("qtbase" ,qtbase)
2861        ("qtdeclarative" ,qtdeclarative)))
2862     (arguments
2863      `(#:tests? #f ; FIXME: 1/3 tests fail.
2864        #:phases
2865        (modify-phases %standard-phases
2866          (add-before 'check 'check-setup
2867            (lambda _
2868              ;; make Qt render "offscreen", required for tests
2869              (setenv "QT_QPA_PLATFORM" "offscreen")
2870              #t)))))
2871     (home-page "https://community.kde.org/Frameworks")
2872     (synopsis "Provides access to all contacts and aggregates them by person")
2873     (description "KPeople offers unified access to our contacts from different
2874 sources, grouping them by person while still exposing all the data.  KPeople
2875 also provides facilities to integrate the data provided in user interfaces by
2876 providing QML and Qt Widgets components.  The sources are plugin-based, allowing
2877 to easily extend the contacts collection.")
2878     (license license:lgpl2.1+)))
2880 (define-public krunner
2881   (package
2882     (name "krunner")
2883     (version "5.55.0")
2884     (source (origin
2885               (method url-fetch)
2886               (uri (string-append
2887                     "mirror://kde/stable/frameworks/"
2888                     (version-major+minor version) "/"
2889                     name "-" version ".tar.xz"))
2890               (sha256
2891                (base32
2892                 "0yw2jh9dailhcwkkjl2qggg5k90bwbfsn88a3hzwyj2ng2haypis"))))
2893     (build-system cmake-build-system)
2894     (propagated-inputs
2895      `(("plasma-framework" ,plasma-framework)))
2896     (native-inputs
2897      `(("extra-cmake-modules" ,extra-cmake-modules)))
2898     (inputs
2899      `(("kauth" ,kauth)
2900        ("kbookmarks" ,kbookmarks)
2901        ("kcodecs" ,kcodecs)
2902        ("kcompletion" ,kcompletion)
2903        ("kconfig" ,kconfig)
2904        ("kconfigwidgets" ,kconfigwidgets)
2905        ("kcoreaddons" ,kcoreaddons)
2906        ("kio" ,kio)
2907        ("kitemviews" ,kitemviews)
2908        ("ki18n" ,ki18n)
2909        ("kjobwidgets" ,kjobwidgets)
2910        ("kpackage" ,kpackage)
2911        ("kservice" ,kservice)
2912        ("kwidgetsaddons" ,kwidgetsaddons)
2913        ("kwindowsystem" ,kwindowsystem)
2914        ("kxmlgui" ,kxmlgui)
2915        ("qtbase" ,qtbase)
2916        ("qtdeclarative" ,qtdeclarative)
2917        ("solid" ,solid)
2918        ("threadweaver" ,threadweaver)))
2919     (arguments
2920      `(#:phases
2921        (modify-phases %standard-phases
2922          (add-after 'unpack 'fix-paths-for-test
2923            ;; This test tries to access paths like /home, /usr/bin and /bin/ls
2924            ;; which don't exist in the build-container. Change to existing paths.
2925            (lambda _
2926              (substitute* "autotests/runnercontexttest.cpp"
2927                (("/home\"") "/tmp\"") ;; single path-part
2928                (("//usr/bin\"") (string-append (getcwd) "\"")) ;; multiple path-parts
2929                (("/bin/ls" path)
2930                 (string-append (assoc-ref %build-inputs "coreutils") path)))))
2931          (add-before 'check 'check-setup
2932            (lambda _
2933              (setenv "HOME" (getcwd))
2934              ;; make Qt render "offscreen", required for tests
2935              (setenv "QT_QPA_PLATFORM" "offscreen")
2936              ;; Blacklist some failing test-functions. FIXME: Make them pass.
2937              (with-output-to-file "bin/BLACKLIST"
2938                (lambda _
2939                  (display "[testMatch]\n*\n")
2940                  (display "[testMulti]\n*\n")))
2941              #t)))))
2942     (home-page "https://community.kde.org/Frameworks")
2943     (synopsis "Framework for Plasma runners")
2944     (description "The Plasma workspace provides an application called KRunner
2945 which, among other things, allows one to type into a text area which causes
2946 various actions and information that match the text appear as the text is being
2947 typed.")
2948     (license license:lgpl2.1+)))
2950 (define-public kservice
2951   (package
2952     (name "kservice")
2953     (version "5.55.0")
2954     (source (origin
2955               (method url-fetch)
2956               (uri (string-append
2957                     "mirror://kde/stable/frameworks/"
2958                     (version-major+minor version) "/"
2959                     name "-" version ".tar.xz"))
2960               (sha256
2961                (base32
2962                 "0k8xksmw2ai7m0js7l98rv5v6ykifmnqiyy2yc1xhgn40lf1r89j"))))
2963     (build-system cmake-build-system)
2964     (propagated-inputs
2965      `(("kconfig" ,kconfig)
2966        ("kcoreaddons" ,kcoreaddons)))
2967     (native-inputs
2968      `(("bison" ,bison)
2969        ("extra-cmake-modules" ,extra-cmake-modules)
2970        ("flex" ,flex)))
2971     (inputs
2972      `(("kcrash" ,kcrash)
2973        ("kdbusaddons" ,kdbusaddons)
2974        ("kdoctools" ,kdoctools)
2975        ("ki18n" ,ki18n)
2976        ("qtbase" ,qtbase)))
2977     (arguments
2978      `(#:tests? #f ; FIXME: 6/10 tests fail.
2979        #:phases
2980        (modify-phases %standard-phases
2981          (add-after 'unpack 'patch
2982            ;; Adopted from NixOS' patches "qdiriterator-follow-symlinks" and
2983            ;; "no-canonicalize-path".
2984            (lambda _
2985              (substitute* "src/sycoca/kbuildsycoca.cpp"
2986                ;; make QDirIterator follow symlinks
2987                (("^\\s*(QDirIterator it\\(.*, QDirIterator::Subdirectories)(\\);)" _ a b)
2988                 (string-append a " | QDirIterator::FollowSymlinks" b)))
2989              (substitute* "src/sycoca/vfolder_menu.cpp"
2990                ;; Normalize path, but don't resolve symlinks (taken from
2991                ;; NixOS)
2992                (("^\\s*QString resolved = QDir\\(dir\\)\\.canonicalPath\\(\\);")
2993                 "QString resolved = QDir::cleanPath(dir);"))
2994              #t))
2995          (add-before 'check 'check-setup
2996            (lambda _
2997              (setenv "HOME" (getcwd))
2998              ;; make Qt render "offscreen", required for tests
2999              (setenv "QT_QPA_PLATFORM" "offscreen")
3000              #t)))))
3001     (home-page "https://community.kde.org/Frameworks")
3002     (synopsis "Plugin framework for desktop services")
3003     (description "KService provides a plugin framework for handling desktop
3004 services.  Services can be applications or libraries.  They can be bound to MIME
3005 types or handled by application specific code.")
3006     ;; triple licensed
3007     (license (list license:gpl2+ license:gpl3+ license:lgpl2.1+))))
3009 (define-public ktexteditor
3010   (package
3011     (name "ktexteditor")
3012     (version "5.55.0")
3013     (source (origin
3014               (method url-fetch)
3015               (uri (string-append
3016                     "mirror://kde/stable/frameworks/"
3017                     (version-major+minor version) "/"
3018                     "ktexteditor-" version ".tar.xz"))
3019               (sha256
3020                (base32
3021                 "0b5zqhm5aw7jj7dj600xa674ik11gwyzamhyz5962xhvsg5pyjwx"))))
3022     (build-system cmake-build-system)
3023     (propagated-inputs
3024      `(("kparts" ,kparts)))
3025     (native-inputs
3026      `(("extra-cmake-modules" ,extra-cmake-modules)
3027        ("pkg-config" ,pkg-config)))
3028     (inputs
3029      `(;; TODO: editor-config
3030        ("karchive" ,karchive)
3031        ("kauth" ,kauth)
3032        ("kbookmarks" ,kbookmarks)
3033        ("kcodecs" ,kcodecs)
3034        ("kcompletion" ,kcompletion)
3035        ("kconfig" ,kconfig)
3036        ("kconfigwidgets" ,kconfigwidgets)
3037        ("kcoreaddons" ,kcoreaddons)
3038        ("kguiaddons" ,kguiaddons)
3039        ("kiconthemes" ,kiconthemes)
3040        ("kio" ,kio)
3041        ("kitemviews" ,kitemviews)
3042        ("ki18n" ,ki18n)
3043        ("kjobwidgets" ,kjobwidgets)
3044        ("kservice" ,kservice)
3045        ("ksyntaxhighlighting" ,ksyntaxhighlighting)
3046        ("ktextwidgets" ,ktextwidgets)
3047        ("kwidgetsaddons" ,kwidgetsaddons)
3048        ("kxmlgui" ,kxmlgui)
3049        ("libgit2" ,libgit2)
3050        ("perl" ,perl)
3051        ("qtbase" ,qtbase)
3052        ("qtdeclarative" ,qtdeclarative)
3053        ("qtscript" ,qtscript)
3054        ("qtxmlpatterns" ,qtxmlpatterns)
3055        ("solid" ,solid)
3056        ("sonnet" ,sonnet)))
3057     (arguments
3058      `(#:tests? #f ; FIXME: 2/54 tests fail: Cannot find fontdirectory qtbase/lib/font
3059        #:phases
3060        (modify-phases %standard-phases
3061          (add-after 'unpack 'setup
3062            (lambda* (#:key inputs #:allow-other-keys)
3063              (setenv "XDG_DATA_DIRS" ; FIXME build phase doesn't find parts.desktop
3064                      (string-append (assoc-ref inputs "kparts") "/share"))
3065              #t))
3066          (add-before 'check 'check-setup
3067            (lambda _
3068              (setenv "HOME" (getcwd))
3069              ;; make Qt render "offscreen", required for tests
3070              (setenv "QT_QPA_PLATFORM" "offscreen")
3071              #t))
3072          (add-after 'install 'add-symlinks
3073            ;; Some package(s) (e.g. plasma-sdk) refer to these service types
3074            ;; by the wrong name.  I would prefer to patch those packages, but
3075            ;; I cannot find the files!
3076            (lambda* (#:key outputs #:allow-other-keys)
3077              (let ((kst5 (string-append (assoc-ref outputs "out")
3078                                         "/share/kservicetypes5/")))
3079                (symlink (string-append kst5 "ktexteditorplugin.desktop")
3080                         (string-append kst5 "ktexteditor-plugin.desktop"))
3081                #t))))))
3082     (home-page "https://community.kde.org/Frameworks")
3083     (synopsis "Full text editor component")
3084     (description "KTextEditor provides a powerful text editor component that you
3085 can embed in your application, either as a KPart or using the KF5::TextEditor
3086 library.")
3087     ;; triple licensed
3088     (license (list license:gpl2+ license:lgpl2.0+ license:lgpl2.1+))))
3090 (define-public ktextwidgets
3091   (package
3092     (name "ktextwidgets")
3093     (version "5.55.0")
3094     (source (origin
3095               (method url-fetch)
3096               (uri (string-append
3097                     "mirror://kde/stable/frameworks/"
3098                     (version-major+minor version) "/"
3099                     name "-" version ".tar.xz"))
3100               (sha256
3101                (base32
3102                 "1ymqmb5z4flzrns3wdjagxbzbpighbincwbhy29a0mqg4zcm82xk"))))
3103     (build-system cmake-build-system)
3104     (propagated-inputs
3105      `(("ki18n" ,ki18n)
3106        ("sonnet" ,sonnet)))
3107     (native-inputs
3108      `(("extra-cmake-modules" ,extra-cmake-modules)))
3109     (inputs
3110      `(("kauth" ,kauth)
3111        ("kcodecs" ,kcodecs)
3112        ("kcompletion" ,kcompletion)
3113        ("kconfig" ,kconfig)
3114        ("kconfigwidgets" ,kconfigwidgets)
3115        ("kcoreaddons" ,kcoreaddons)
3116        ("kiconthemes" ,kiconthemes)
3117        ("kservice" ,kservice)
3118        ("kwidgetsaddons" ,kwidgetsaddons)
3119        ("kwindowsystem" ,kwindowsystem)
3120        ("qtbase" ,qtbase)
3121        ("qtspeech" ,qtspeech)))
3122     (arguments
3123      `(#:phases
3124        (modify-phases %standard-phases
3125          (add-before 'check 'check-setup
3126            (lambda _
3127              ;; make Qt render "offscreen", required for tests
3128              (setenv "QT_QPA_PLATFORM" "offscreen")
3129              #t)))))
3130     (home-page "https://community.kde.org/Frameworks")
3131     (synopsis "Text editing widgets")
3132     (description "KTextWidgets provides widgets for displaying and editing text.
3133 It supports rich text as well as plain text.")
3134     ;; dual licensed
3135     (license (list license:lgpl2.0+ license:lgpl2.1+))))
3137 (define-public kwallet
3138   (package
3139     (name "kwallet")
3140     (version "5.55.0")
3141     (source (origin
3142               (method url-fetch)
3143               (uri (string-append
3144                     "mirror://kde/stable/frameworks/"
3145                     (version-major+minor version) "/"
3146                     name "-" version ".tar.xz"))
3147               (sha256
3148                (base32
3149                 "1dp072h5r6yd81i69759pj8klfsikrg25za44sry2kh6fxvwmngm"))))
3150     (build-system cmake-build-system)
3151     (native-inputs
3152      `(("extra-cmake-modules" ,extra-cmake-modules)))
3153     (inputs
3154      `(("gpgme" ,gpgme)
3155        ("kauth" ,kauth)
3156        ("kcodecs" ,kcodecs)
3157        ("kconfig" ,kconfig)
3158        ("kconfigwidgets" ,kconfigwidgets)
3159        ("kcoreaddons" ,kcoreaddons)
3160        ("kdbusaddons" ,kdbusaddons)
3161        ("kdoctools" ,kdoctools)
3162        ("kiconthemes" ,kiconthemes)
3163        ("ki18n" ,ki18n)
3164        ("knotifications" ,knotifications)
3165        ("kservice" ,kservice)
3166        ("kwidgetsaddons" ,kwidgetsaddons)
3167        ("kwindowsystem" ,kwindowsystem)
3168        ("libgcrypt" ,libgcrypt)
3169        ("phonon" ,phonon)
3170        ("qgpgme" ,qgpgme)
3171        ("qtbase" ,qtbase)))
3172     (home-page "https://community.kde.org/Frameworks")
3173     (synopsis "Safe desktop-wide storage for passwords")
3174     (description "This framework contains an interface to KWallet, a safe
3175 desktop-wide storage for passwords and the kwalletd daemon used to safely store
3176 the passwords on KDE work spaces.")
3177     (license license:lgpl2.1+)))
3179 (define-public kxmlgui
3180   (package
3181     (name "kxmlgui")
3182     (version "5.55.0")
3183     (source (origin
3184               (method url-fetch)
3185               (uri (string-append
3186                     "mirror://kde/stable/frameworks/"
3187                     (version-major+minor version) "/"
3188                     name "-" version ".tar.xz"))
3189               (sha256
3190                (base32
3191                 "0ph67zarf1sccvp7882brrihv4dsmxq0nggan0rnk54qg0zdhgcn"))))
3192     (build-system cmake-build-system)
3193     (propagated-inputs
3194      `(("kconfig" ,kconfig)
3195        ("kconfigwidgets" ,kconfigwidgets)))
3196     (native-inputs
3197      `(("extra-cmake-modules" ,extra-cmake-modules)))
3198     (inputs
3199      `(("attica" ,attica)
3200        ("kauth" ,kauth)
3201        ("kcodecs" ,kcodecs)
3202        ("kcoreaddons" ,kcoreaddons)
3203        ("kglobalaccel" ,kglobalaccel)
3204        ("kiconthemes" ,kiconthemes)
3205        ("kitemviews" ,kitemviews)
3206        ("ki18n" ,ki18n)
3207        ("ktextwidgets" ,ktextwidgets)
3208        ("kwidgetsaddons" ,kwidgetsaddons)
3209        ("kwindowsystem" ,kwindowsystem)
3210        ("qtbase" ,qtbase)
3211        ("sonnet" ,sonnet)))
3212     (arguments
3213      `(#:tests? #f ; FIXME: 1/5 tests fail.
3214        #:phases
3215        (modify-phases %standard-phases
3216          (add-before 'check 'check-setup
3217            (lambda _
3218              (setenv "HOME" (getcwd))
3219              ;; make Qt render "offscreen", required for tests
3220              (setenv "QT_QPA_PLATFORM" "offscreen")
3221              #t)))))
3222     (home-page "https://community.kde.org/Frameworks")
3223     (synopsis "Framework for managing menu and toolbar actions")
3224     (description "KXMLGUI provides a framework for managing menu and toolbar
3225 actions in an abstract way.  The actions are configured through a XML description
3226 and hooks in the application code.  The framework supports merging of multiple
3227 descriptions for integrating actions from plugins.")
3228     ;; dual licensed
3229     (license (list license:gpl2+ license:lgpl2.1+))))
3231 (define-public kxmlrpcclient
3232   (package
3233     (name "kxmlrpcclient")
3234     (version "5.55.0")
3235     (source (origin
3236               (method url-fetch)
3237               (uri (string-append
3238                     "mirror://kde/stable/frameworks/"
3239                     (version-major+minor version) "/"
3240                     name "-" version ".tar.xz"))
3241               (sha256
3242                (base32
3243                 "1573wnv2fbjjzgx3f1qm7y8wlj22bz45mny0rxci90i76nnh4538"))))
3244     (build-system cmake-build-system)
3245     (propagated-inputs
3246      `(("kio" ,kio)))
3247     (native-inputs
3248      `(("extra-cmake-modules" ,extra-cmake-modules)))
3249     (inputs
3250      `(("kauth" ,kauth)
3251        ("kbookmarks" ,kbookmarks)
3252        ("kcodecs" ,kcodecs)
3253        ("kcompletion" ,kcompletion)
3254        ("kconfig" ,kconfig)
3255        ("kconfigwidgets" ,kconfigwidgets)
3256        ("kcoreaddons" ,kcoreaddons)
3257        ("kitemviews" ,kitemviews)
3258        ("ki18n" ,ki18n)
3259        ("kjobwidgets" ,kjobwidgets)
3260        ("kservice" ,kservice)
3261        ("kwidgetsaddons" ,kwidgetsaddons)
3262        ("kxmlgui" ,kxmlgui)
3263        ("qtbase" ,qtbase)
3264        ("solid" ,solid)))
3265     (home-page "https://community.kde.org/Frameworks")
3266     (synopsis "XML-RPC client")
3267     (description "This library contains simple XML-RPC Client support.  It is a
3268 complete client and is easy to use.  Only one interface is exposed,
3269 kxmlrpcclient/client.h and from that interface, you only need to use 3 methods:
3270 setUrl, setUserAgent and call.")
3271     ;; dual licensed
3272     (license (list license:bsd-2 license:lgpl2.1+))))
3274 (define-public plasma-framework
3275   (package
3276     (name "plasma-framework")
3277     (version "5.55.0")
3278     (source (origin
3279               (method url-fetch)
3280               (uri (string-append
3281                     "mirror://kde/stable/frameworks/"
3282                     (version-major+minor version) "/"
3283                     name "-" version ".tar.xz"))
3284               (sha256
3285                (base32
3286                 "1pvxxw52s03i11p5byd2sh8sbvlk6h8q6briq9d4qvjy6c0pmbq4"))))
3287     (build-system cmake-build-system)
3288     (propagated-inputs
3289      `(("kpackage" ,kpackage)
3290        ("kservice" ,kservice)))
3291     (native-inputs
3292      `(("extra-cmake-modules" ,extra-cmake-modules)
3293        ("pkg-config" ,pkg-config)))
3294     (inputs
3295      `(("kactivities" ,kactivities)
3296        ("karchive" ,karchive)
3297        ("kauth" ,kauth)
3298        ("kbookmarks" ,kbookmarks)
3299        ("kcodecs" ,kcodecs)
3300        ("kcompletion" ,kcompletion)
3301        ("kconfig" ,kconfig)
3302        ("kconfigwidgets" ,kconfigwidgets)
3303        ("kcoreaddons" ,kcoreaddons)
3304        ("kdbusaddons" ,kdbusaddons)
3305        ("kdeclarative" ,kdeclarative)
3306        ("kdoctools" ,kdoctools)
3307        ("kglobalaccel" ,kglobalaccel)
3308        ("kguiaddons" ,kguiaddons)
3309        ("kiconthemes" ,kiconthemes)
3310        ("kirigami" ,kirigami)
3311        ("kitemviews" ,kitemviews)
3312        ("kio" ,kio)
3313        ("ki18n" ,ki18n)
3314        ("kjobwidgets" ,kjobwidgets)
3315        ("knotificantions" ,knotifications)
3316        ("kwayland" ,kwayland)
3317        ("kwidgetsaddons" ,kwidgetsaddons)
3318        ("kwindowsystem" ,kwindowsystem)
3319        ("kxmlgui" ,kxmlgui)
3320        ("phonon" ,phonon)
3321        ("qtbase" ,qtbase)
3322        ("qtdeclarative" ,qtdeclarative)
3323        ("qtquickcontrols2" ,qtquickcontrols2)
3324        ("qtsvg" ,qtsvg)
3325        ("qtx11extras" ,qtx11extras)
3326        ("solid" ,solid)))
3327     (arguments
3328      `(#:tests? #f ; FIXME: 9/15 tests fail.
3329        #:phases
3330        (modify-phases %standard-phases
3331          (add-before 'check 'check-setup
3332            (lambda _
3333              (setenv "HOME" (getcwd))
3334              ;; make Qt render "offscreen", required for tests
3335              (setenv "QT_QPA_PLATFORM" "offscreen")
3336              #t)))))
3337     (home-page "https://community.kde.org/Frameworks")
3338     (synopsis "Libraries, components and tools of Plasma workspaces")
3339     (description "The plasma framework provides QML components, libplasma and
3340 script engines.")
3341     ;; dual licensed
3342     (license (list license:gpl2+ license:lgpl2.1+))))
3344 ;; This version of kdbusaddons does not use kinit as an input, and is used to
3345 ;; build kinit-bootstrap, as well as bootstrap versions of all kinit
3346 ;; dependencies which also rely on kdbusaddons.
3347 (define kdbusaddons-bootstrap
3348   (package
3349     (inherit kdbusaddons)
3350     (source (origin
3351               (inherit (package-source kdbusaddons))
3352               (patches '())))
3353     (inputs (alist-delete "kinit" (package-inputs kdbusaddons)))
3354     (arguments
3355      (substitute-keyword-arguments (package-arguments kdbusaddons)
3356        ((#:phases phases)
3357         `(modify-phases ,phases
3358            (delete 'patch-source)))))))
3360 (define kinit-bootstrap
3361   ((package-input-rewriting `((,kdbusaddons . ,kdbusaddons-bootstrap))) kinit))
3364 ;; Tier 4
3366 ;; Tier 4 frameworks can be mostly ignored by application programmers; this
3367 ;; tier consists of plugins acting behind the scenes to provide additional
3368 ;; functionality or platform integration to existing frameworks (including
3369 ;; Qt).
3371 (define-public kde-frameworkintegration
3372   (package
3373     (name "kde-frameworkintegration")
3374     (version "5.55.0")
3375     (source (origin
3376               (method url-fetch)
3377               (uri (string-append
3378                     "mirror://kde/stable/frameworks/"
3379                     (version-major+minor version) "/"
3380                     "frameworkintegration-" version ".tar.xz"))
3381               (sha256
3382                (base32
3383                 "0pfpk268x06pjwciv4jr5v259kjck0sf4xzsgn29ifkmsk74wwmi"))))
3384     (build-system cmake-build-system)
3385     (native-inputs
3386      `(("extra-cmake-modules" ,extra-cmake-modules)
3387        ("pkg-config" ,pkg-config)))
3388     ;; TODO: Optional packages not yet in Guix: packagekitqt5, AppStreamQt
3389     (inputs
3390      `(("kconfig" ,kconfig)
3391        ("kconfigwidgets" ,kconfigwidgets)
3392        ("kcoreaddons" ,kcoreaddons)
3393        ("ki18n" ,ki18n)
3394        ("kiconthemes" ,kiconthemes)
3395        ("kitemviews" ,kitemviews)
3396        ("knewstuff" ,knewstuff)
3397        ("knotificantions" ,knotifications)
3398        ("kpackage" ,kpackage)
3399        ("kwidgetsaddons" ,kwidgetsaddons)
3400        ("qtbase" ,qtbase)
3401        ("qtx11extras" ,qtx11extras)))
3402     (arguments
3403      `(#:phases
3404        (modify-phases %standard-phases
3405          (add-before 'check 'check-setup
3406            (lambda _
3407              (setenv "HOME" (getcwd))
3408              ;; Make Qt render "offscreen", required for tests
3409              (setenv "QT_QPA_PLATFORM" "offscreen")
3410              #t)))))
3411     (home-page "https://community.kde.org/Frameworks")
3412     (synopsis "KDE Frameworks 5 workspace and cross-framework integration plugins")
3413     (description "Framework Integration is a set of plugins responsible for
3414 better integration of Qt applications when running on a KDE Plasma
3415 workspace.")
3416     ;; This package is distributed under either LGPL2 or LGPL3, but some
3417     ;; files are explicitly LGPL2+.
3418     (license (list license:lgpl2.0 license:lgpl3 license:lgpl2.0+))
3419     (properties `((upstream-name . "frameworkintegration")))))
3422 ;; Porting Aids
3424 ;; Porting Aids frameworks provide code and utilities to ease the transition
3425 ;; from kdelibs 4 to KDE Frameworks 5. Code should aim to port away from this
3426 ;; framework, new projects should avoid using these libraries.
3428 (define-public kdelibs4support
3429   (package
3430     (name "kdelibs4support")
3431     (version "5.55.0")
3432     (source
3433      (origin
3434        (method url-fetch)
3435        (uri (string-append
3436              "mirror://kde/stable/frameworks/"
3437              (version-major+minor version) "/portingAids/"
3438              name "-" version ".tar.xz"))
3439        (sha256
3440         (base32 "1l1gjv06yp9jdiapiypwscbb6y0rfgrnw9rdsl7kkxh9ps8b8j39"))))
3441     (build-system cmake-build-system)
3442     (native-inputs
3443      `(("dbus" ,dbus)
3444        ("docbook-xml" ,docbook-xml-4.4) ; optional
3445        ("extra-cmake-modules" ,extra-cmake-modules)
3446        ("perl" ,perl)
3447        ("perl-uri" ,perl-uri)
3448        ("pkg-config" ,pkg-config)
3449        ("shared-mime-info" ,shared-mime-info)
3450        ("kjobwidgets" ,kjobwidgets) ;; required for running the tests
3451        ("strace" ,strace)
3452        ("tzdata" ,tzdata)))
3453     (propagated-inputs
3454      ;; These are required to be installed along with this package, see
3455      ;; lib64/cmake/KF5KDELibs4Support/KF5KDELibs4SupportConfig.cmake
3456      `(("karchive" ,karchive)
3457        ("kauth" ,kauth)
3458        ("kconfigwidgets" ,kconfigwidgets)
3459        ("kcoreaddons" ,kcoreaddons)
3460        ("kcrash" ,kcrash)
3461        ("kdbusaddons" ,kdbusaddons)
3462        ("kdesignerplugin" ,kdesignerplugin)
3463        ("kdoctools" ,kdoctools)
3464        ("kemoticons" ,kemoticons)
3465        ("kguiaddons" ,kguiaddons)
3466        ("kiconthemes" ,kiconthemes)
3467        ("kinit" ,kinit)
3468        ("kitemmodels" ,kitemmodels)
3469        ("knotifications" ,knotifications)
3470        ("kparts" ,kparts)
3471        ("ktextwidgets" ,ktextwidgets)
3472        ("kunitconversion" ,kunitconversion)
3473        ("kwindowsystem" ,kwindowsystem)
3474        ("qtbase" ,qtbase)))
3475     (inputs
3476      `(("kcompletion" ,kcompletion)
3477        ("kconfig" ,kconfig)
3478        ("kded" ,kded)
3479        ("kglobalaccel" ,kglobalaccel)
3480        ("ki18n" ,ki18n)
3481        ("kio" ,kio)
3482        ("kservice" ,kservice)
3483        ("kwidgetsaddons" ,kwidgetsaddons)
3484        ("kxmlgui" ,kxmlgui)
3485        ("libsm" ,libsm)
3486        ("networkmanager-qt" ,networkmanager-qt)
3487        ("openssl" ,openssl)
3488        ("qtsvg" ,qtsvg)
3489        ("qttools" ,qttools)
3490        ("qtx11extras" ,qtx11extras)))
3491     ;; FIXME: Use Guix ca-bundle.crt in etc/xdg/ksslcalist and
3492     ;; share/kf5/kssl/ca-bundle.crt
3493     ;; TODO: NixOS has nix-kde-include-dir.patch to change std-dir "include"
3494     ;; into "@dev@/include/". Think about whether this is needed for us, too.
3495     (arguments
3496      `(#:phases
3497        (modify-phases %standard-phases
3498          (add-after 'unpack 'make-cmake-to-find-docbook
3499            (lambda _
3500              (substitute* "cmake/FindDocBookXML4.cmake"
3501                (("^.*xml/docbook/schema/dtd.*$")
3502                 "xml/dtd/docbook\n"))
3503              #t))
3504          (delete 'check)
3505          (add-after 'install 'check-post-install
3506            (lambda* (#:key inputs tests? #:allow-other-keys)
3507              (setenv "HOME" (getcwd))
3508              (setenv "TZDIR"    ; KDateTimeTestsome needs TZDIR
3509                      (string-append (assoc-ref inputs "tzdata")
3510                                     "/share/zoneinfo"))
3511              ;; Make Qt render "offscreen", required for tests
3512              (setenv "QT_QPA_PLATFORM" "offscreen")
3513              ;; enable debug output
3514              (setenv "CTEST_OUTPUT_ON_FAILURE" "1") ; enable debug output
3515              (setenv "DBUS_FATAL_WARNINGS" "0")
3516              ;; Make kstandarddirstest pass (see https://bugs.kde.org/381098)
3517              (mkdir-p ".kde-unit-test/xdg/config")
3518              (with-output-to-file ".kde-unit-test/xdg/config/foorc"
3519                (lambda () #t))  ;; simply touch the file
3520              ;; Blacklist a test-function (failing at build.kde.org, too).
3521              (with-output-to-file "autotests/BLACKLIST"
3522                (lambda _
3523                  (display "[testSmb]\n*\n")))
3524              ;; kuniqueapptest hangs. FIXME: Make this test pass.
3525              (invoke "dbus-launch" "ctest" "."
3526                      "-E" "kstandarddirstest|kuniqueapptest"))))))
3527     (home-page "https://community.kde.org/Frameworks")
3528     (synopsis "KDE Frameworks 5 porting aid from KDELibs4")
3529     (description "This framework provides code and utilities to ease the
3530 transition from kdelibs 4 to KDE Frameworks 5.  This includes CMake macros and
3531 C++ classes whose functionality has been replaced by code in CMake, Qt and
3532 other frameworks.
3534 Code should aim to port away from this framework eventually.  The API
3535 documentation of the classes in this framework and the notes at
3536 http://community.kde.org/Frameworks/Porting_Notes should help with this.")
3537     ;; Most files are distributed under LGPL2+, but the package includes code
3538     ;; under a variety of licenses.
3539     (license (list license:lgpl2.1+ license:lgpl2.0 license:lgpl2.0+
3540                    license:gpl2 license:gpl2+
3541                    license:expat license:bsd-2 license:bsd-3
3542                    license:public-domain))))
3544 (define-public khtml
3545   (package
3546     (name "khtml")
3547     (version "5.55.0")
3548     (source
3549      (origin
3550        (method url-fetch)
3551        (uri (string-append
3552              "mirror://kde/stable/frameworks/"
3553              (version-major+minor version) "/portingAids/"
3554              name "-" version ".tar.xz"))
3555        (sha256
3556         (base32 "0wh9z5xm0gaf1c2s7cq7763jfyv83d58x80nwsvb0ayd6y8id1bq"))))
3557     (build-system cmake-build-system)
3558     (native-inputs
3559      `(("extra-cmake-modules" ,extra-cmake-modules)
3560        ("perl" ,perl)))
3561     (inputs
3562      `(("giflib" ,giflib)
3563        ("gperf" ,gperf)
3564        ("karchive" ,karchive)
3565        ("kcodecs" ,kcodecs)
3566        ("kglobalaccel" ,kglobalaccel)
3567        ("ki18n" ,ki18n)
3568        ("kiconthemes" ,kiconthemes)
3569        ("kio" ,kio)
3570        ("kjs" ,kjs)
3571        ("knotifications" ,knotifications)
3572        ("kparts" ,kparts)
3573        ("ktextwidgets" ,ktextwidgets)
3574        ("kwallet" ,kwallet)
3575        ("kwidgetsaddons" ,kwidgetsaddons)
3576        ("kwindowsystem" ,kwindowsystem)
3577        ("kxmlgui" ,kxmlgui)
3578        ("libjpeg" ,libjpeg)
3579        ("libpng" ,libpng)
3580        ("openssl" ,openssl)
3581        ("phonon" ,phonon)
3582        ("qtbase" ,qtbase)
3583        ("qtx11extras" ,qtx11extras)
3584        ("sonnet" ,sonnet)))
3585     (arguments
3586      `(#:phases
3587        (modify-phases %standard-phases
3588          (add-before 'check 'check-setup
3589            (lambda _
3590              ;; Make Qt render "offscreen", required for tests
3591              (setenv "QT_QPA_PLATFORM" "offscreen")
3592              #t)))))
3593     (home-page "https://community.kde.org/Frameworks")
3594     (synopsis "KDE Frameworks 5 HTML widget and component")
3595     (description "KHTML is a web rendering engine, based on the KParts
3596 technology and using KJS for JavaScript support.")
3597     ;; Most files are distributed under LGPL2+, but the package includes code
3598     ;; under a variety of licenses.
3599     (license (list license:lgpl2.0+ license:lgpl2.1+
3600                    license:gpl2  license:gpl3+
3601                    license:expat license:bsd-2 license:bsd-3))))
3603 (define-public kjs
3604   (package
3605     (name "kjs")
3606     (version "5.55.0")
3607     (source
3608      (origin
3609        (method url-fetch)
3610        (uri (string-append
3611              "mirror://kde/stable/frameworks/"
3612              (version-major+minor version) "/portingAids/"
3613              name "-" version ".tar.xz"))
3614        (sha256
3615         (base32 "0c1wyxsgn70jvw7zcjjpw12w9sg9xxvyslgnqlnnyh8sx7rrp70c"))))
3616     (build-system cmake-build-system)
3617     (native-inputs
3618      `(("extra-cmake-modules" ,extra-cmake-modules)
3619        ("kdoctools" ,kdoctools)
3620        ("perl" ,perl)
3621        ("pkg-config" ,pkg-config)))
3622     (inputs
3623      `(("pcre" ,pcre)
3624        ("qtbase" ,qtbase)))
3625     (home-page "https://community.kde.org/Frameworks")
3626     (synopsis "KDE Frameworks 5 support for Javascript scripting in Qt
3627 applications")
3628     (description "Add-on library to Qt which adds JavaScript scripting
3629 support.")
3630     ;; Most files are distributed under LGPL2+, but the package also includes
3631     ;; code under a variety of licenses.
3632     (license (list license:lgpl2.1+
3633                    license:bsd-2 license:bsd-3
3634                    (license:non-copyleft "file://src/kjs/dtoa.cpp")))))
3636 (define-public kjsembed
3637   (package
3638     (name "kjsembed")
3639     (version "5.55.0")
3640     (source
3641      (origin
3642        (method url-fetch)
3643        (uri (string-append
3644              "mirror://kde/stable/frameworks/"
3645              (version-major+minor version) "/portingAids/"
3646              name "-" version ".tar.xz"))
3647        (sha256
3648         (base32 "0dh9012y9bqj48jp50lrsmd28bbvf4jd93l34vfzmza252yvyw3l"))))
3649     (build-system cmake-build-system)
3650     (native-inputs
3651      `(("extra-cmake-modules" ,extra-cmake-modules)
3652        ("kdoctools" ,kdoctools)
3653        ("qttools" ,qttools)))
3654     (inputs
3655      `(("ki18n" ,ki18n)
3656        ("kjs" ,kjs)
3657        ("qtbase" ,qtbase)
3658        ("qtsvg" ,qtsvg)))
3659     (home-page "https://community.kde.org/Frameworks")
3660     (synopsis "KDE Frameworks 5 embedded Javascript engine for Qt")
3661     (description "KJSEmbed provides a method of binding Javascript objects to
3662 QObjects, so you can script your applications.")
3663     (license license:lgpl2.1+)))
3665 (define-public kmediaplayer
3666   (package
3667     (name "kmediaplayer")
3668     (version "5.55.0")
3669     (source
3670      (origin
3671        (method url-fetch)
3672        (uri (string-append
3673              "mirror://kde/stable/frameworks/"
3674              (version-major+minor version) "/portingAids/"
3675              name "-" version ".tar.xz"))
3676        (sha256
3677         (base32 "0gpfrhgk2l63lyz0bz93cg7mc5g7mjvrkfvpyndmi1v7vhndp5zq"))))
3678     (build-system cmake-build-system)
3679     (native-inputs
3680      `(("extra-cmake-modules" ,extra-cmake-modules)
3681        ("kdoctools" ,kdoctools)
3682        ("qttools" ,qttools)))
3683     (inputs
3684      `(("kcompletion" ,kcompletion)
3685        ("kcoreaddons" ,kcoreaddons)
3686        ("ki18n" ,ki18n)
3687        ("kiconthemes" ,kiconthemes)
3688        ("kio" ,kio)
3689        ("kparts" ,kparts)
3690        ("kwidgetsaddons" ,kwidgetsaddons)
3691        ("kxmlgui" ,kxmlgui)
3692        ("qtbase" ,qtbase)))
3693     (arguments
3694      `(#:phases
3695        (modify-phases %standard-phases
3696          (add-before 'check 'check-setup
3697            (lambda _
3698              ;; Make Qt render "offscreen", required for tests
3699              (setenv "QT_QPA_PLATFORM" "offscreen")
3700              #t)))))
3701     (home-page "https://community.kde.org/Frameworks")
3702     (synopsis "KDE Frameworks 5 plugin interface for media player features")
3703     (description "KMediaPlayer builds on the KParts framework to provide a
3704 common interface for KParts that can play media files.
3706 This framework is a porting aid.  It is not recommended for new projects, and
3707 existing projects that use it are advised to port away from it, and use plain
3708 KParts instead.")
3709     (license license:expat)))
3711 (define-public kross
3712   (package
3713     (name "kross")
3714     (version "5.55.0")
3715     (source
3716      (origin
3717        (method url-fetch)
3718        (uri (string-append
3719              "mirror://kde/stable/frameworks/"
3720              (version-major+minor version) "/portingAids/"
3721              name "-" version ".tar.xz"))
3722        (sha256
3723         (base32 "0p3q36gka6m62nryc3l11d30mlhiqjpghvfcyq6wikiqlv2kqvjs"))))
3724     (build-system cmake-build-system)
3725     (native-inputs
3726      `(("extra-cmake-modules" ,extra-cmake-modules)
3727        ("kdoctools" ,kdoctools)
3728        ("qttools" ,qttools)))
3729     (inputs
3730      `(("kcompletion" ,kcompletion)
3731        ("kcoreaddons" ,kcoreaddons)
3732        ("ki18n" ,ki18n)
3733        ("kiconthemes" ,kiconthemes)
3734        ("kparts" ,kparts)
3735        ("kwidgetsaddons" ,kwidgetsaddons)
3736        ("kxmlgui" ,kxmlgui)
3737        ("qtbase" ,qtbase)
3738        ("qtscript" ,qtscript)))
3739     (home-page "https://community.kde.org/Frameworks")
3740     (synopsis "KDE Frameworks 5 solution for application scripting")
3741     (description "Kross is a scripting bridge for the KDE Development Platform
3742 used to embed scripting functionality into an application.  It supports
3743 QtScript as a scripting interpreter backend.
3745 Kross provides an abstract API to provide scripting functionality in a
3746 interpreter-independent way.  The application that uses Kross should not need
3747 to know anything about the scripting language being used.  The core of Kross
3748 provides the framework to deal transparently with interpreter-backends and
3749 offers abstract functionality to deal with scripts.")
3750     ;; Most files are distributed under LGPL2+, but the package includes code
3751     ;; under a variety of licenses.
3752     (license (list license:lgpl2.0+ license:lgpl2.1+
3753                    license:lgpl2.0 license:gpl3+))))