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