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