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