gnu: Further simplify package inputs.
[jackhill/guix/guix.git] / gnu / packages / kde.scm
1 ;;; GNU Guix --- Functional package management for GNU
2 ;;; Copyright © 2016, 2017, 2019, 2020, 2021 Efraim Flashner <efraim@flashner.co.il>
3 ;;; Copyright © 2016 David Craven <david@craven.ch>
4 ;;; Copyright © 2016, 2017 Thomas Danckaert <post@thomasdanckaert.be>
5 ;;; Copyright © 2017, 2018 Mark Meyer <mark@ofosos.org>
6 ;;; Copyright © 2017–2021 Tobias Geerinckx-Rice <me@tobias.gr>
7 ;;; Copyright © 2018 Gábor Boskovits <boskovits@gmail.com>
8 ;;; Copyright © 2019 Nicolas Goaziou <mail@nicolasgoaziou.fr>
9 ;;; Copyright © 2018, 2019, 2020 Hartmut Goebel <h.goebel@crazy-compilers.com>
10 ;;; Copyright © 2019, 2020, 2021 Ludovic Courtès <ludo@gnu.org>
11 ;;; Copyright © 2020 Marius Bakke <marius@gnu.org>
12 ;;; Copyright © 2020, 2021 Michael Rohleder <mike@rohleder.de>
13 ;;; Copyright © 2020 Prafulla Giri <pratheblackdiamond@gmail.com>
14 ;;; Copyright © 2020, 2021 Zheng Junjie <873216071@qq.com>
15 ;;; Copyright © 2021 Alexandros Theodotou <alex@zrythm.org>
16 ;;; Copyright © 2021 la snesne <lasnesne@lagunposprasihopre.org>
17 ;;; Copyright © 2021 Vinicius Monego <monego@posteo.net>
18 ;;;
19 ;;; This file is part of GNU Guix.
20 ;;;
21 ;;; GNU Guix is free software; you can redistribute it and/or modify it
22 ;;; under the terms of the GNU General Public License as published by
23 ;;; the Free Software Foundation; either version 3 of the License, or (at
24 ;;; your option) any later version.
25 ;;;
26 ;;; GNU Guix is distributed in the hope that it will be useful, but
27 ;;; WITHOUT ANY WARRANTY; without even the implied warranty of
28 ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
29 ;;; GNU General Public License for more details.
30 ;;;
31 ;;; You should have received a copy of the GNU General Public License
32 ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
33
34 (define-module (gnu packages kde)
35 #:use-module (guix build-system cmake)
36 #:use-module (guix build-system qt)
37 #:use-module (guix deprecation)
38 #:use-module (guix download)
39 #:use-module (guix git-download)
40 #:use-module ((guix licenses) #:prefix license:)
41 #:use-module (guix packages)
42 #:use-module (guix utils)
43 #:use-module (gnu packages)
44 #:use-module (gnu packages algebra)
45 #:use-module (gnu packages apr)
46 #:use-module (gnu packages astronomy)
47 #:use-module (gnu packages audio)
48 #:use-module (gnu packages bison)
49 #:use-module (gnu packages boost)
50 #:use-module (gnu packages code)
51 #:use-module (gnu packages cpp)
52 #:use-module (gnu packages compression)
53 #:use-module (gnu packages curl)
54 #:use-module (gnu packages djvu)
55 #:use-module (gnu packages documentation)
56 #:use-module (gnu packages gnupg)
57 #:use-module (gnu packages ebook)
58 #:use-module (gnu packages flex)
59 #:use-module (gnu packages fontutils)
60 #:use-module (gnu packages geo)
61 #:use-module (gnu packages gettext)
62 #:use-module (gnu packages ghostscript)
63 #:use-module (gnu packages gl)
64 #:use-module (gnu packages gnome)
65 #:use-module (gnu packages gps)
66 #:use-module (gnu packages graphics)
67 #:use-module (gnu packages image)
68 #:use-module (gnu packages kde-frameworks)
69 #:use-module (gnu packages kde-pim)
70 #:use-module (gnu packages kde-plasma)
71 #:use-module (gnu packages linux)
72 #:use-module (gnu packages llvm)
73 #:use-module (gnu packages markup)
74 #:use-module (gnu packages maths)
75 #:use-module (gnu packages pdf)
76 #:use-module (gnu packages perl)
77 #:use-module (gnu packages photo)
78 #:use-module (gnu packages pkg-config)
79 #:use-module (gnu packages protobuf)
80 #:use-module (gnu packages pulseaudio)
81 #:use-module (gnu packages python)
82 #:use-module (gnu packages tls)
83 #:use-module (gnu packages qt)
84 #:use-module (gnu packages version-control)
85 #:use-module (gnu packages video)
86 #:use-module (gnu packages xdisorg)
87 #:use-module (gnu packages xml)
88 #:use-module (gnu packages xorg))
89
90 (define-public baloo-widgets
91 (package
92 (name "baloo-widgets")
93 (version "20.04.1")
94 (source
95 (origin
96 (method url-fetch)
97 (uri (string-append "mirror://kde/stable/release-service/" version
98 "/src/baloo-widgets-" version ".tar.xz"))
99 (sha256
100 (base32 "1x4v79vhvc5ixkbsf3jyjz5ig1lf78rfw3r7g3llpb4j1kcp3wh0"))))
101 (build-system qt-build-system)
102 (native-inputs
103 (list extra-cmake-modules))
104 (inputs
105 (list baloo kconfig ki18n kio qtbase-5))
106 (arguments
107 `(#:phases
108 (modify-phases %standard-phases
109 (add-before 'check 'check-setup
110 (lambda _
111 (setenv "QT_QPA_PLATFORM" "offscreen")
112 #t)))))
113 (home-page "https://community.kde.org/Baloo")
114 (synopsis "Wigets for use with Baloo")
115 (description "Baloo is a framework for searching and managing metadata.
116 This package contains GUI widgets for baloo.")
117 (license license:lgpl2.0+)))
118
119 (define-public grantleetheme
120 (package
121 (name "grantleetheme")
122 (version "20.04.1")
123 (source
124 (origin
125 (method url-fetch)
126 (uri (string-append "mirror://kde/stable/release-service/" version
127 "/src/grantleetheme-" version ".tar.xz"))
128 (sha256
129 (base32 "0gabc5cb0sf00s7m5v2jnq55qsrdbrq6nqd15y1i15p788zifsjx"))
130 (patches (search-patches "grantlee-merge-theme-dirs.patch"))))
131 (build-system qt-build-system)
132 (arguments `(#:tests? #f)) ; unexpected error in the test suite.
133 (native-inputs
134 (list extra-cmake-modules libxml2)) ;; xmllint required for tests
135 (inputs
136 (list grantlee
137 kguiaddons
138 ki18n
139 kiconthemes
140 knewstuff
141 qtbase-5))
142 (home-page "https://invent.kde.org/pim/grantleetheme")
143 (synopsis "Library providing Grantlee theme support")
144 (description "This library provides Grantlee theme support.")
145 (license ;; LGPL for libraries, FDL for documentation
146 (list license:lgpl2.1+ license:fdl1.2+))))
147
148 (define-public akregator
149 (package
150 (name "akregator")
151 (version "20.04.1")
152 (source
153 (origin
154 (method url-fetch)
155 (uri (string-append "mirror://kde/stable/release-service/" version
156 "/src/akregator-" version ".tar.xz"))
157 (sha256
158 (base32 "1711yhwsdq9iyc3wm3a4xmz81p73hvvc0h58sasc89ifpry50k2p"))))
159 (build-system qt-build-system)
160 (arguments
161 `(#:phases
162 (modify-phases %standard-phases
163 (add-after 'install 'wrap-qt-process-path
164 (lambda* (#:key inputs outputs #:allow-other-keys)
165 (let* ((out (assoc-ref outputs "out"))
166 (bin (string-append out "/bin/akregator"))
167 (qt-process-path (string-append
168 (assoc-ref inputs "qtwebengine")
169 "/lib/qt5/libexec/QtWebEngineProcess")))
170 (wrap-program bin
171 `("QTWEBENGINEPROCESS_PATH" = (,qt-process-path)))
172 #t))))))
173 (native-inputs
174 (list extra-cmake-modules kdoctools))
175 (inputs
176 (list akonadi
177 akonadi-contacts
178 akonadi-mime
179 boost
180 breeze-icons
181 gpgme
182 grantlee
183 grantleetheme
184 kcmutils
185 kcontacts
186 kcrash
187 kimap
188 kitemmodels
189 kmessagelib
190 kmime
191 knotifications
192 knotifyconfig
193 kontactinterface
194 kpimcommon
195 kpimtextedit
196 kqtquickcharts
197 ktexteditor
198 kuserfeedback
199 libkdepim
200 libkleo
201 qgpgme
202 qtbase-5
203 qtdeclarative
204 qtwebchannel
205 qtwebengine
206 syndication))
207 (home-page "https://apps.kde.org/en/akregator")
208 (synopsis "KDE Feed Reader")
209 (description
210 "Akregator is a news feed reader. It enables you to follow news
211 sites, blogs and other RSS/Atom-enabled websites without the need to manually
212 check for updates using a web browser. Akregator is designed to be both easy to
213 use and to be powerful enough to read hundreds of news sources conveniently.
214 It comes with a fast search, advanced archiving functionality and an internal
215 browser for easy news reading.")
216 (license license:gpl2+)))
217
218 (define-public kdenlive
219 (let ((version "21.08.3"))
220 (package
221 (name "kdenlive")
222 (version version)
223 (source
224 (origin
225 (method git-fetch)
226 (uri (git-reference
227 (url "https://invent.kde.org/multimedia/kdenlive")
228 (commit (string-append "v" version))))
229 (file-name (string-append name "-" version "-checkout"))
230 (sha256
231 (base32 "0lpspak5djkbn2xbmmbxls258310g45n3a08sghkjl08bx6ilvc9"))))
232 (build-system qt-build-system)
233 (native-inputs
234 (list extra-cmake-modules pkg-config qttools))
235 (inputs
236 (list breeze ; make dark them available easily
237 breeze-icons ; recommended icon set
238 ffmpeg
239 frei0r-plugins
240 karchive
241 kcrash
242 kdbusaddons
243 kdeclarative
244 kdoctools
245 kfilemetadata
246 kguiaddons
247 kiconthemes
248 knewstuff
249 knotifications
250 knotifyconfig
251 kparts
252 kplotting
253 mlt
254 purpose
255 qtbase-5
256 qtdeclarative
257 qtgraphicaleffects
258 qtmultimedia
259 qtnetworkauth
260 qtquickcontrols
261 qtquickcontrols2
262 qtscript
263 qtsvg
264 qtwebkit
265 shared-mime-info))
266 (arguments
267 ;; XXX: there is a single test that spawns other tests and
268 ;; 1/3 tests failed and 1/327 assertions failed. It seems
269 ;; that individual tests can't be skipped.
270 `(#:configure-flags (list "-DBUILD_TESTING=off")
271 #:tests? #f
272 #:phases
273 (modify-phases %standard-phases
274 (add-after 'install 'wrap-executable
275 (lambda* (#:key inputs outputs #:allow-other-keys)
276 (let* ((out (assoc-ref outputs "out"))
277 (qtbase (assoc-ref inputs "qtbase"))
278 (frei0r (assoc-ref inputs "frei0r-plugins"))
279 (ffmpeg (assoc-ref inputs "ffmpeg")))
280 (wrap-program (string-append out "/bin/kdenlive")
281 `("PATH" ":" prefix
282 ,(list (string-append ffmpeg "/bin")))
283 `("FREI0R_PATH" ":" =
284 (,(string-append frei0r "/lib/frei0r-1/")))
285 `("QT_QPA_PLATFORM_PLUGIN_PATH" ":" =
286 (,(string-append qtbase "/lib/qt5/plugins/platforms")))
287 `("MLT_PREFIX" ":" =
288 (,(assoc-ref inputs "mlt"))))))))))
289 (home-page "https://kdenlive.org")
290 (synopsis "Non-linear video editor")
291 (description "Kdenlive is an acronym for KDE Non-Linear Video Editor.
292
293 Non-linear video editing is much more powerful than beginner's (linear)
294 editors, hence it requires a bit more organization before starting. However,
295 it is not reserved to specialists and can be used for small personal
296 projects.")
297 (license license:gpl2+))))
298
299 (define-public kdevelop
300 (package
301 (name "kdevelop")
302 (version "5.6.1")
303 (source
304 (origin
305 (method url-fetch)
306 (uri (string-append "mirror://kde/stable/kdevelop"
307 "/" version "/src/kdevelop-"
308 version ".tar.xz"))
309 (sha256
310 (base32 "02ip5r67hjfpywkm3mz86n6wbqcr7996ifzfd2fyzsvm4998hi4y"))))
311 (build-system qt-build-system)
312 (native-inputs
313 (list extra-cmake-modules pkg-config shared-mime-info qttools))
314 (inputs
315 `(("boost" ,boost)
316 ("clang" ,clang)
317 ("grantlee" ,grantlee)
318 ("karchive" ,karchive)
319 ("kcmutils" ,kcmutils)
320 ("kcrash" ,kcrash)
321 ("kdeclarative" ,kdeclarative)
322 ("kdoctools" ,kdoctools)
323 ("kguiaddons" ,kguiaddons)
324 ("ki18n" ,ki18n)
325 ("kiconthemes" ,kiconthemes)
326 ("kio" ,kio) ;; not checked as requirement
327 ("kitemmodels" ,kitemmodels)
328 ("kitemviews" ,kitemviews)
329 ("kjobwidgets" ,kjobwidgets)
330 ("knotifications" ,knotifications)
331 ("knotifyconfig" ,knotifyconfig)
332 ("kparts" ,kparts)
333 ("kservice" ,kservice)
334 ("ktexteditor" ,ktexteditor)
335 ("kwindowsystem" ,kwindowsystem)
336 ("kxmlgui" ,kxmlgui)
337 ("libkomparediff2" ,libkomparediff2)
338 ("oxygen-icons" ,oxygen-icons)
339 ("qtbase" ,qtbase-5)
340 ("qtdeclarative" ,qtdeclarative)
341 ("qtquickcontrols" ,qtquickcontrols) ;; not checked as requirement
342 ("qtquickcontrols2" ,qtquickcontrols2) ;; not checked as requirement
343 ("qtwebkit" ,qtwebkit)
344 ("threadweaver" ,threadweaver)
345
346 ;; recommendes
347 ("astyle" ,astyle)
348 ("kdevelop-pg-qt" ,kdevelop-pg-qt)
349 ("libksysguard" ,libksysguard)
350
351 ;; optional
352 ("apr" ,apr) ; required for subversion support
353 ("apr-util" ,apr-util) ; required for subversion support
354 ("attica" ,attica)
355 ("kconfigwidgets" ,kconfigwidgets)
356 ("knewstuff" ,knewstuff)
357 ("krunner" ,krunner)
358 ;; TODO: OktetaGui, OktetaKastenControllers
359 ("plasma" ,plasma-framework)
360 ;; TODO: purpose
361 ("sonnet" ,sonnet)
362 ("subversion" ,subversion)))
363
364 ;; run-time packages - TODO
365 ;; ClazyStandalone
366 ;; Cppcheck
367 ;; heaptrack
368 ;; heaptrack_gui
369 ;; meson
370 (arguments
371 `(#:tests? #f ;; there are some issues with the test suite
372 #:phases
373 (modify-phases %standard-phases
374 (add-before 'configure 'add-include-path
375 (lambda* (#:key inputs #:allow-other-keys)
376 (substitute* "cmake/modules/FindClang.cmake"
377 (("^\\s*PATHS \"\\$\\{CLANG_LIBRARY_DIRS\\}\"" line)
378 (string-append line " " (assoc-ref inputs "clang") "/lib")))
379 #t)))))
380 (home-page "https://kdevelop.org")
381 (synopsis "IDE for C, C++, Python, Javascript and PHP")
382 (description "The KDevelop IDE provides semantic syntax highlighting, as
383 well as code navigation and completion for C, C++ (using Clang/LLVM), QML,
384 JavaScript, Python and PHP. It also integrates with a debugger, different
385 build systems (CMake, QMake, custom Makefiles) and version control
386 software (Git, Subversion, Mercurial, CVS and Bazaar).")
387 (license license:lgpl2.1+)))
388
389 (define-public kdevelop-pg-qt
390 (package
391 (name "kdevelop-pg-qt")
392 (version "2.2.1")
393 (source
394 (origin
395 (method git-fetch)
396 (uri (git-reference
397 (url "https://github.com/KDE/kdevelop-pg-qt")
398 (commit (string-append "v" version))))
399 (file-name (git-file-name name version))
400 (sha256
401 (base32 "1kfab4p717acbdkcdi41d98vwch7v431gb2qi6s38hmclsf8bf8g"))))
402 (native-inputs
403 (list extra-cmake-modules))
404 (inputs
405 (list qtbase-5))
406 (build-system cmake-build-system)
407 (home-page "https://kde.org")
408 (synopsis "Parser generator library for KDevplatform")
409 (description "KDevelop-PG-Qt is the parser generator used in KDevplatform
410 for some KDevelop language plugins (Ruby, PHP, CSS...).")
411 (license license:lgpl2.0+)))
412
413 ;; kdevplatform was merged into kdevelop as of 5.2.x
414 (define-deprecated kdevplatform kdevelop)
415
416 (define-public kdiagram
417 (package
418 (name "kdiagram")
419 (version "2.7.0")
420 (source
421 (origin
422 (method url-fetch)
423 (uri (string-append "mirror://kde/stable/kdiagram/" version
424 "/kdiagram-" version ".tar.xz"))
425 (sha256
426 (base32 "1pgvf2q8b59hw0jg5ajmj5nrn4q8cgnifpvdd0fynk2ml6zym8k3"))
427 (patches (search-patches
428 "kdiagram-Fix-missing-link-libraries.patch"))))
429 (build-system qt-build-system)
430 (native-inputs
431 (list extra-cmake-modules qttools))
432 (inputs
433 (list qtbase-5 qtsvg))
434 (home-page "https://invent.kde.org/graphics/kdiagram")
435 (synopsis "Libraries for creating business diagrams")
436 (description "This package provides libraries for integrating business
437 diagrams in Qt-based applications.
438
439 @code{KCharts} provides an implementation of the ODF Chart specification. It
440 supports stock charts, box charts, and whisker charts. @code{KGantt} provides
441 a module for implementing ODF Gantt charts, which are bar charts that
442 illustrate project schedules.")
443 (license license:gpl2+)))
444
445 (define-public krita
446 (package
447 (name "krita")
448 (version "4.4.8")
449 (source (origin
450 (method url-fetch)
451 (uri (string-append
452 "mirror://kde/stable/krita/" version
453 "/krita-" version ".tar.gz"))
454 (sha256
455 (base32
456 "1y0d8gnxfdg5nfwk8dgx8fc2bwskvnys049napb1a9fr25bqmimw"))))
457 (build-system cmake-build-system)
458 (arguments
459 `(#:tests? #f
460 #:configure-flags
461 (list "-DBUILD_TESTING=OFF"
462 (string-append "-DCMAKE_CXX_FLAGS=-I"
463 (assoc-ref %build-inputs "openexr")
464 "/include/OpenEXR"))
465 #:phases
466 (modify-phases %standard-phases
467 ;; Ensure that icons are found at runtime.
468 ;; This works around <https://bugs.gnu.org/22138>.
469 (add-after 'install 'wrap-executable
470 (lambda* (#:key inputs outputs #:allow-other-keys)
471 (let ((out (assoc-ref outputs "out"))
472 (qt '("qtbase" "qtsvg")))
473 (wrap-program (string-append out "/bin/krita")
474 `("QT_PLUGIN_PATH" ":" prefix
475 ,(map (lambda (label)
476 (string-append (assoc-ref inputs label)
477 "/lib/qt5/plugins/"))
478 qt)))
479 #t))))))
480 (native-inputs
481 (list curl
482 eigen
483 extra-cmake-modules
484 gettext-minimal
485 kitemmodels
486 pkg-config
487 qwt
488 vc))
489 (inputs
490 (list boost
491 exiv2
492 fftw
493 gsl
494 ilmbase
495 karchive
496 kcompletion
497 kconfig
498 kcoreaddons
499 kcrash
500 kguiaddons
501 ki18n
502 kiconthemes
503 kio
504 kitemviews
505 kwidgetsaddons
506 kwindowsystem
507 kxmlgui
508 lcms
509 libjpeg-turbo
510 libpng
511 libraw-0.18
512 libtiff
513 libx11
514 libxcb
515 libxi
516 openexr-2
517 perl
518 poppler-qt5
519 qtbase-5
520 qtdeclarative
521 qtmultimedia
522 qtsvg
523 qtx11extras
524 quazip-0
525 zlib))
526 (home-page "https://krita.org")
527 (synopsis "Digital painting application")
528 (description
529 "Krita is a professional painting tool designed for concept artists,
530 illustrators, matte and texture artists, and the VFX industry. Notable
531 features include brush stabilizers, brush engines and wrap-around mode.")
532 (license license:gpl2+)))
533
534 (define-public massif-visualizer
535 (package
536 (name "massif-visualizer")
537 (version "0.7.0")
538 (source
539 (origin
540 (method url-fetch)
541 (uri (string-append
542 "mirror://kde/stable/massif-visualizer/" version
543 "/src/massif-visualizer-" version ".tar.xz"))
544 (sha256
545 (base32 "0v8z6r9gngzckvqyxjm9kp7hilwfqibyk2f9vag9l98ar0iwr97q"))))
546 (build-system cmake-build-system)
547 (native-inputs
548 (list extra-cmake-modules pkg-config shared-mime-info))
549 (inputs
550 (list karchive
551 kcoreaddons
552 kparts
553 kdiagram
554 kgraphviewer
555 kio
556 ki18n
557 qtbase-5
558 qtsvg
559 qtxmlpatterns))
560 (home-page "https://apps.kde.org/en/massif-visualizer")
561 (synopsis "Visualize massif data generated by Valgrind")
562 (description
563 "Massif Visualizer is a tool that visualizes massif data.
564 You run your application in Valgrind with @code{--tool=massif} and then open
565 the generated @file{massif.out.%pid} in the visualizer. Gzip or Bzip2
566 compressed massif files can also be opened transparently.")
567 (license license:gpl2+)))
568
569 (define-public libkomparediff2
570 (package
571 (name "libkomparediff2")
572 (version "20.04.1")
573 (source
574 (origin
575 (method url-fetch)
576 (uri (string-append "mirror://kde/stable/release-service/" version
577 "/src/libkomparediff2-" version ".tar.xz"))
578 (sha256
579 (base32 "0m8m7sgpf2f4nxpaaymyvihlk0pcyblyd99mcbibrnyr5kzkzzdc"))))
580 (native-inputs
581 (list extra-cmake-modules pkg-config))
582 (inputs
583 (list kcodecs
584 kconfig
585 kcoreaddons
586 ki18n
587 kio
588 kxmlgui
589 qtbase-5))
590 (build-system cmake-build-system)
591 (home-page "https://kde.org")
592 (synopsis "Library to compare files and strings, used in Kompare and KDevelop")
593 (description "Libkomparediff2 is a library to work with diffs and patches,
594 used in KDE development tools Kompare and KDevelop.")
595
596 ;; GPL, some files are also licensed under LGPL or BSD, see COPYING in the
597 ;; source archive
598 (license (list license:gpl2+ license:lgpl2.0+ license:bsd-3))))
599
600 (define-public qca
601 (package
602 (name "qca")
603 (version "2.3.3")
604 (source
605 (origin
606 (method url-fetch)
607 (uri (string-append "mirror://kde/stable/qca/" version
608 "/qca-" version ".tar.xz"))
609 (sha256
610 (base32 "0rvvf97la95lah67jcj0p06n4br0pc2mri0q1hn4x522hndqybjn"))))
611 (build-system cmake-build-system)
612 (native-inputs
613 (list pkg-config))
614 (inputs
615 (list openssl qtbase-5))
616 (home-page "https://userbase.kde.org/QCA")
617 (synopsis "Libraries for the Qt Cryptographic Architecture")
618 (description "The Qt Cryptographic Architecture (QCA) provides a
619 straightforward and cross-platform API for a range of cryptographic features,
620 including SSL/TLS, X.509 certificates, SASL, OpenPGP, S/MIME CMS, and smart
621 cards.")
622 (license license:lgpl2.1+)))
623
624 (define-public kpmcore
625 (package
626 (name "kpmcore")
627 (version "4.1.0")
628 (source (origin
629 (method url-fetch)
630 (uri (string-append
631 "mirror://kde/stable/kpmcore"
632 "/" version "/src/"
633 name "-" version ".tar.xz"))
634 (sha256
635 (base32
636 "0jsig7algmab9h0fb09my0axjqzw83zgscamhzl8931lribs6idm"))))
637 (build-system cmake-build-system)
638 (native-inputs
639 (list extra-cmake-modules pkg-config))
640 (inputs
641 (list kauth
642 kcoreaddons
643 ki18n
644 kwidgetsaddons
645 qtbase-5
646 qca
647 `(,util-linux "lib")))
648 (home-page "https://community.kde.org/Frameworks")
649 (synopsis "Library for managing partitions")
650 (description "Library for managing partitions.")
651 (license license:gpl3+)))
652
653 (define-public snorenotify
654 (package
655 (name "snorenotify")
656 (version "0.7.0")
657 (source
658 (origin
659 (method url-fetch)
660 (uri (string-append "mirror://kde/stable/snorenotify/"
661 version "/src/snorenotify-" version ".tar.xz"))
662 (sha256
663 (base32
664 "0jz6ivk90h7iwgyxar7xzzj8yvzn6s1my6cqs9bdnwqswfk1nhbd"))))
665 (build-system cmake-build-system)
666 (arguments
667 `(#:tests? #f)) ; both tests fail, require display
668 (inputs
669 (list qtbase-5))
670 (native-inputs
671 (list extra-cmake-modules qttools))
672 (home-page "https://techbase.kde.org/Projects/Snorenotify")
673 (synopsis "Qt notification framework")
674 (description "Snorenotify is a multi platform Qt notification framework.
675 Using a plugin system it is possible to create notifications with many
676 different notification systems.")
677 (license license:lgpl3)))
678
679 (define-public kdeconnect
680 (package
681 (name "kdeconnect")
682 (version "20.04.2")
683 (source
684 (origin
685 (method url-fetch)
686 (uri (string-append "mirror://kde/stable/release-service/"
687 version "/src/kdeconnect-kde-"
688 version ".tar.xz"))
689 (sha256
690 (base32
691 "0yq3afbbcc9gmlcachvh3xz3gdj57092fpagp36l5knw8gr0d9ip"))))
692 (build-system qt-build-system)
693 (arguments
694 `(#:configure-flags '("-DBUILD_TESTING=ON"
695 "-DKDE_INSTALL_LIBEXECDIR=libexec")
696 #:phases
697 (modify-phases %standard-phases
698 (add-after 'unpack 'adjust-include-header
699 (lambda _
700 (substitute* "plugins/runcommand/runcommandplugin.cpp"
701 (("<kcmutils_version.h>")
702 "<KF5/kcmutils_version.h>")))))
703 #:tests? #f)) ; tests fail hard in our build environment
704 (native-inputs
705 `(("extra-cmake-modules" ,extra-cmake-modules)
706 ("kdoctools" ,kdoctools)
707 ("libxtst" ,libxtst)
708 ("pkg-config" ,pkg-config)
709 ("python" ,python-wrapper)))
710 (inputs
711 (list kcmutils
712 kconfigwidgets
713 kdbusaddons
714 ki18n
715 kiconthemes
716 kio
717 kirigami
718 knotifications
719 kpeople
720 kpeoplevcard
721 kwayland
722 libfakekey
723 pulseaudio-qt
724 qca
725 qtbase-5
726 qtdeclarative
727 qtgraphicaleffects
728 qtmultimedia
729 qtquickcontrols
730 qtquickcontrols2
731 qtx11extras))
732 (home-page "https://community.kde.org/KDEConnect")
733 (synopsis "Enable your devices to communicate with each other")
734 (description "KDE Connect is a project that enables all your devices to
735 communicate with each other. Here's a few things KDE Connect can do:
736 @enumerate
737 @item Receive your phone notifications on your desktop computer and reply to messages
738 @item Control music playing on your desktop from your phone
739 @item Use your phone as a remote control for your desktop
740 @item Run predefined commands on your PC from connected devices
741 @item Check your phones battery level from the desktop
742 @item Ring your phone to help finding it
743 @item Share files and links between devices
744 @item Browse your phone from the desktop
745 @item Control the desktop's volume from the phone
746 @end enumerate")
747 (properties `((upstream-name . "kdeconnect-kde")))
748 (license (list license:gpl2 license:gpl3)))) ; dual licensed
749
750 (define-public labplot
751 (package
752 (name "labplot")
753 (version "2.8.2")
754 (source
755 (origin
756 (method url-fetch)
757 (uri (string-append "mirror://kde/stable/labplot"
758 "/" version "/labplot-"
759 version ".tar.xz"))
760 (sha256
761 (base32 "1yhxnchwb4n83sxrbn4im41g2sqr0xsim2y242mvyd8pjzd83icf"))))
762 (build-system qt-build-system)
763 (arguments
764 `(#:configure-flags
765 (list "-DENABLE_CANTOR=OFF" ;not packaged
766 "-DENABLE_MQTT=OFF" ;not packaged (qtmqtt)
767 ;; FIXME: readstat (optional dependency) is available in the
768 ;; statistics module, but that module can't be used here.
769 "-DENABLE_READSTAT=OFF"
770 ;; This is a bundled library that is not packaged.
771 "-DENABLE_LIBORIGIN=ON")
772 #:phases
773 (modify-phases %standard-phases
774 (replace 'check
775 (lambda* (#:key tests? #:allow-other-keys)
776 (when tests?
777 ;; This test fails, I don't know why.
778 (invoke "ctest" "-E" "parsertest"))
779 #t)))))
780 (native-inputs
781 `(("bison" ,bison)
782 ("extra-cmake-modules" ,extra-cmake-modules)
783 ("pkg-config" ,pkg-config)
784 ("python" ,python-wrapper)
785 ("qttools" ,qttools)))
786 (inputs
787 (list breeze ;for dark themes
788 breeze-icons ;for icons
789 gsl
790 karchive
791 kcompletion
792 kconfig
793 kconfigwidgets
794 kcoreaddons
795 kcrash
796 kdoctools
797 ki18n
798 kiconthemes
799 kio
800 knewstuff
801 kparts
802 kservice
803 ksyntaxhighlighting
804 ktextwidgets
805 kuserfeedback
806 kwidgetsaddons
807 kxmlgui
808 qtbase-5
809 qtsvg
810 shared-mime-info
811 ;; Optional.
812 cfitsio
813 fftw
814 hdf5
815 libcerf
816 lz4
817 netcdf
818 qtserialport
819 zlib))
820 (home-page "https://labplot.kde.org/")
821 (synopsis "Interactive graphing and analysis of scientific data")
822 (description "LabPlot is a tool for interactive graphing and analysis of
823 scientific data. It provides an easy way to create, manage and edit plots and
824 to perform data analysis.")
825 (license (list license:gpl2+ ;labplot
826 license:gpl3+)))) ;liborigin
827
828 (define-public kqtquickcharts
829 (package
830 (name "kqtquickcharts")
831 (version "20.04.1")
832 (source
833 (origin
834 (method url-fetch)
835 (uri (string-append "mirror://kde/stable/release-service/"
836 version "/src/kqtquickcharts-" version ".tar.xz"))
837 (sha256
838 (base32
839 "1wxp35mf9zlpgzi4msdl86b2krdq2ipqw371gyx23r7j84vdyxi3"))))
840 (build-system cmake-build-system)
841 (native-inputs
842 (list extra-cmake-modules))
843 (inputs
844 (list qtbase-5 qtdeclarative))
845 (home-page "https://phabricator.kde.org/source/kqtquickcharts/")
846 (synopsis "Interactive charts for Qt Quick")
847 (description
848 "Kqtquickcharts is a QtQuick plugin to render beautiful and interactive
849 charts.")
850 (license license:lgpl2.1+)))
851
852 (define-public kdf
853 (package
854 (name "kdf")
855 (version "20.12.1")
856 (source (origin
857 (method url-fetch)
858 (uri (string-append "mirror://kde/stable/release-service/"
859 version "/src/kdf-" version ".tar.xz"))
860 (sha256
861 (base32
862 "0ba67hs4vlb3qyvdzhnpmf8p62df12s8aqw4hzf9vnxff3qix5k1"))))
863 (build-system qt-build-system)
864 (native-inputs
865 (list extra-cmake-modules kdoctools))
866 (inputs
867 (list kcmutils
868 kconfigwidgets
869 kcoreaddons
870 ki18n
871 kiconthemes
872 kio
873 knotifications
874 kwidgetsaddons
875 kxmlgui
876 qtbase-5))
877 (home-page "https://kde.org/applications/system/kdk")
878 (synopsis "View Disk Usage")
879 (description "KDiskFree displays the available file devices (hard drive
880 partitions, floppy and CD drives, etc.) along with information on their
881 capacity, free space, type and mount point. It also allows you to mount and
882 unmount drives and view them in a file manager.")
883 (license license:gpl2+)))
884
885 (define-public kcachegrind
886 (package
887 (name "kcachegrind")
888 (version "20.04.1")
889 (source (origin
890 (method url-fetch)
891 (uri (string-append "mirror://kde/stable/release-service/" version
892 "/src/kcachegrind-" version ".tar.xz"))
893 (sha256
894 (base32
895 "0fx17s6fj1pxl1mgfrqhchk8sihkbji1x8y3nhb1r0971wzd1nsc"))))
896 (build-system cmake-build-system)
897 (native-inputs
898 (list extra-cmake-modules perl python qttools kdoctools))
899 (inputs
900 (list qtbase-5 karchive ki18n kio kdbusaddons))
901 ;; Note: The 'hotshot2calltree' and 'pprof2calltree' scripts depend on
902 ;; Python and PHP, respectively. These are optional and we ignore them
903 ;; for now.
904 (home-page "https://kcachegrind.github.io/html/Home.html")
905 (synopsis "Visualize profiles produces by Valgrind's Cachegrind tool")
906 (description
907 "The data files generated by the Callgrind of Valgrind, an application
908 profiler, can be loaded into KCachegrind for browsing the performance results.
909 There is also a command-line tool to get ASCII reports from data files without
910 the need to use KCachegrind.
911
912 The format of Callgrind output is documented. With conversion scripts,
913 KCachegrind is able to visualize output of other profilers like OProfile, a
914 system-wide profiler for Linux using statistical sampling with hardware
915 performance counters. There also exist converters for profiling output of
916 Python, PHP, and Perl.")
917 (license license:gpl2)))
918
919 (define-public libkdegames
920 (package
921 (name "libkdegames")
922 (version "20.04.1")
923 (source
924 (origin
925 (method url-fetch)
926 (uri (string-append "mirror://kde/stable/release-service/" version
927 "/src/libkdegames-" version ".tar.xz"))
928 (sha256
929 (base32 "1xsrrvhwjwi5aajcaxydmzc69i4yx6shs8ly8vr85njc188ycg13"))))
930 (build-system qt-build-system)
931 (native-inputs
932 (list extra-cmake-modules))
933 (inputs
934 (list karchive
935 kbookmarks
936 kcodecs
937 kcompletion
938 kconfigwidgets
939 kcrash
940 kdbusaddons
941 kdeclarative
942 kdnssd
943 kglobalaccel
944 kguiaddons
945 ki18n
946 kiconthemes
947 ;("kio" ,kio)
948 kitemviews
949 kjobwidgets
950 knewstuff
951 kservice
952 ktextwidgets
953 kwidgetsaddons
954 kxmlgui
955 libsndfile
956 openal
957 qtbase-5
958 qtdeclarative
959 qtsvg))
960 (home-page "https://games.kde.org/")
961 (synopsis "Runtime library for kdegames")
962 (description "Runtime library for kdegames")
963 (license (list license:gpl2+ license:fdl1.2+))))
964
965 (define-public marble-qt
966 (package
967 (name "marble-qt")
968 (version "21.08.3")
969 (source
970 (origin
971 (method git-fetch)
972 (uri (git-reference
973 (url "https://invent.kde.org/education/marble.git/")
974 (commit (string-append "v" version))))
975 (file-name (git-file-name name version))
976 (sha256
977 (base32 "15gqym45z0gjzdc4ypfj0fki96c3dad4ygsi6lfr8yvwsx8swrb6"))))
978 (build-system qt-build-system)
979 (arguments
980 ;; FIXME: libmarblewidget-qt5.so.28 not found. Also enable the
981 ;; corresponding configure flag to build tests.
982 `(#:tests? #f
983 #:configure-flags
984 (list "-DBUILD_MARBLE_TOOLS=YES" ; file conversion tools
985 "-DBUILD_TOUCH=YES"
986 "-DBUILD_MARBLE_TESTS=FALSE")))
987 (native-inputs
988 (list extra-cmake-modules qttools))
989 ;; One optional dependency missing: libwlocate.
990 (inputs
991 (list gpsd
992 kcoreaddons
993 kcrash
994 kdoctools
995 ki18n
996 kio
997 knewstuff
998 kparts
999 krunner
1000 kwallet
1001 perl
1002 phonon
1003 protobuf
1004 qtbase-5
1005 qtdeclarative
1006 qtlocation
1007 qtserialport
1008 qtsvg
1009 ;; ("qtwebengine" ,qtwebengine) ; FIXME: not found by CMake
1010 shapelib
1011 shared-mime-info
1012 zlib))
1013 (home-page "https://marble.kde.org/")
1014 (synopsis "Virtual globe and world atlas")
1015 (description "Marble is similar to a desktop globe. At closer scale it
1016 becomes a world atlas, while OpenStreetMap takes the user to street level. It
1017 supports searching for places of interest, viewing Wikipedia articles,
1018 creating routes by drag and drop and more.")
1019 (license license:lgpl2.1+)))
1020
1021 (define-public okular
1022 (package
1023 (name "okular")
1024 (version "20.12.1")
1025 (source
1026 (origin
1027 (method url-fetch)
1028 (uri (string-append "mirror://kde/stable/release-service/" version
1029 "/src/" name "-" version ".tar.xz"))
1030 (sha256
1031 (base32 "0gpm7n47yijsjg4yba561j5pbvd98hgvr93w1kvzk851nb87m89c"))))
1032 (build-system qt-build-system)
1033 ;; The tests fail because they can't find the proper mimetype plugins:
1034 ;; "org.kde.okular.core: No plugin for mimetype '"image/jpeg"'."
1035 ;; The built program seems to work okay, so we skip the tests for now.
1036 (arguments
1037 `(#:tests? #f
1038 #:configure-flags
1039 (list "-DBUILD_TESTING=OFF")))
1040 (native-inputs
1041 (list extra-cmake-modules kdoctools pkg-config))
1042 (inputs
1043 (list ebook-tools
1044 breeze-icons
1045 discount
1046 djvulibre
1047 kactivities
1048 khtml
1049 chmlib
1050 kdegraphics-mobipocket
1051 karchive
1052 kbookmarks
1053 kcompletion
1054 kconfig
1055 qtbase-5
1056 libjpeg-turbo
1057 libtiff
1058 kirigami
1059 purpose
1060 freetype
1061 kiconthemes
1062 kio
1063 kparts
1064 kpty
1065 qtspeech
1066 kwallet
1067 kwindowsystem
1068 libkexiv2
1069 libspectre
1070 libzip
1071 phonon
1072 poppler-qt5
1073 qca
1074 qtdeclarative
1075 qtsvg
1076 threadweaver
1077 kcrash
1078 kjs))
1079 (home-page "https://kde.org/applications/graphics/okular/")
1080 (synopsis "Document viewer")
1081 (description
1082 "Okular is a document viewer developed for KDE. It can display files in
1083 a variety of formats, including PDF, PostScript, DejaVu, and EPub.")
1084 (license license:gpl2+)))
1085
1086 (define-public poxml
1087 (package
1088 (name "poxml")
1089 (version "20.12.1")
1090 (source (origin
1091 (method url-fetch)
1092 (uri
1093 (string-append "mirror://kde/stable/release-service/" version
1094 "/src/poxml-" version ".tar.xz"))
1095 (sha256
1096 (base32
1097 "1smjvblx0jcv3afs2sr4qcmvhqd44iw24hvr9fppa3nxhrmjwmlk"))))
1098 (build-system cmake-build-system)
1099 (native-inputs
1100 (list extra-cmake-modules kdoctools))
1101 (inputs
1102 (list gettext-minimal qtbase-5))
1103 (home-page "https://kde.org/applications/development")
1104 (synopsis "Tools for translating DocBook XML files with Gettext")
1105 (description "This is a collection of tools that facilitate translating
1106 DocBook XML files using Gettext message files (PO files). Also included are
1107 several command-line utilities for manipulating DocBook XML files, PO files and
1108 PO template files.")
1109 (license license:gpl2+)))
1110
1111 (define-public kdegraphics-mobipocket
1112 (package
1113 (name "kdegraphics-mobipocket")
1114 (version "20.12.0")
1115 (source
1116 (origin
1117 (method url-fetch)
1118 (uri (string-append "mirror://kde/stable/release-service/" version
1119 "/src/" name "-" version ".tar.xz"))
1120 (sha256
1121 (base32 "0fm880lp9g60zgrkjyh4jxws6x0s77l9ia4f8pza3w8sxcbbswk5"))))
1122 (build-system cmake-build-system)
1123 (native-inputs
1124 (list extra-cmake-modules))
1125 (inputs
1126 (list kio qtbase-5))
1127 (home-page "https://apps.kde.org/en/kdegraphics_mobipocket")
1128 (synopsis "KDE thumbnailer for Mobipocket files")
1129 (description "This package provides a KDE plugin that shows thumbnails of
1130 Mobipocket e-books in Dolphin and other KDE apps.")
1131 (license license:gpl2+)))
1132
1133 (define-public libkexiv2
1134 (package
1135 (name "libkexiv2")
1136 (version "20.12.0")
1137 (source
1138 (origin
1139 (method url-fetch)
1140 (uri (string-append "mirror://kde/stable/release-service/" version
1141 "/src/" name "-" version ".tar.xz"))
1142 (sha256
1143 (base32 "0k0iinf7s8qlk3fwvq7iic1b4zn2gm65rfd58q7d3wb1i1j2hjjk"))))
1144 (build-system cmake-build-system)
1145 (native-inputs
1146 (list extra-cmake-modules))
1147 (inputs
1148 (list exiv2 qtbase-5))
1149 (home-page "https://invent.kde.org/graphics/libkexiv2")
1150 (synopsis "Manipulate the metadata of images")
1151 (description "Libkexiv2 wraps the Exiv2 library, allowing to manipulate
1152 picture metadata as EXIF/IPTC and XMP.")
1153 (license license:gpl2+)))
1154
1155 (define-public zeroconf-ioslave
1156 (package
1157 (name "zeroconf-ioslave")
1158 (version "20.04.1")
1159 (source
1160 (origin
1161 (method url-fetch)
1162 (uri (string-append "mirror://kde/stable/release-service/" version
1163 "/src/zeroconf-ioslave-" version ".tar.xz"))
1164 (sha256
1165 (base32 "1qck5jyc4psslpibhki8sz8aj0hsnx8z791vzyn10lmdzn71vx8c"))))
1166 (build-system qt-build-system)
1167 (native-inputs
1168 (list extra-cmake-modules))
1169 (inputs
1170 (list kdbusaddons kdnssd ki18n kio qtbase-5))
1171 (home-page "https://kde.org/applications/internet/org.kde.zeroconf_ioslave")
1172 (synopsis "DNS-SD Service Discovery Monitor")
1173 (description "Adds an entry to Dolphin's Network page to show local
1174 services such as printers which advertise themselves with DNSSD (called Avahi
1175 or Bonjour by other projects).")
1176 (license ;; GPL for programs, LGPL for libraries, FDL for documentation
1177 (list license:gpl2+ license:lgpl2.0+ license:fdl1.2+))))
1178
1179
1180 (define-public kuserfeedback
1181 ;; FIXME: Try to reduce data collection and ensure transmission i disabled by default.
1182 ;; FIXME: Check https://www.reddit.com/r/kde/comments/f7ojg9 for insights
1183 (package
1184 (name "kuserfeedback")
1185 (version "1.0.0")
1186 (source
1187 (origin
1188 (method url-fetch)
1189 (uri (string-append "mirror://kde/stable/kuserfeedback/"
1190 "/kuserfeedback-" version ".tar.xz"))
1191 (sha256
1192 (base32 "1dwx9fscnfp3zsxdir774skn8xvad2dvscnaaw3ji6mrnkmm6bss"))))
1193 (build-system qt-build-system)
1194 (native-inputs
1195 (list extra-cmake-modules
1196 qttools
1197 ;; For optional component "Survey target expression parser"
1198 bison
1199 flex
1200 ;; For syntax checking and unit tests of PHP server code
1201 ;;("php" ,php)
1202 ;;("phpunit" ,phpunit)
1203 ))
1204 (inputs
1205 (list qtbase-5 qtcharts qtdeclarative qtsvg))
1206 (arguments
1207 `(#:tests? #f)) ;; 4/17 fail
1208 (home-page "https://api.kde.org/frameworks/kuserfeedback/html/")
1209 (synopsis "Framework for collecting feedback from application users via
1210 telemetry and targeted surveys")
1211 (description "This framework consists of the following components:
1212 @itemize
1213 @item Libraries for use in applications.
1214 @item QML bindings for the above.
1215 @item A server application.
1216 @item A management and analytics application.
1217 @end itemize")
1218 (license license:expat)))