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