projects/guix·blob javascript-team · refs

1287 lines · 42.8 KiB

1;;; GNU Guix --- Functional package management for GNU
2;;; Copyright © 2017, 2019, 2020 Hartmut Goebel <[email protected]>
3;;; Copyright © 2016 David Craven <[email protected]>
4;;; Copyright © 2017 Thomas Danckaert <[email protected]>
5;;; Copyright © 2018 Mark Meyer <[email protected]>
6;;; Copyright © 2019, 2021, 2022, 2024 Efraim Flashner <[email protected]>
7;;; Copyright © 2020 Timotej Lazar <[email protected]>
8;;; Copyright © 2018, 2020 Tobias Geerinckx-Rice <[email protected]>
9;;; Copyright © 2020 Michael Rohleder <[email protected]> <[email protected]>
10;;; Copyright © 2020 Prafulla Giri <[email protected]>
11;;; Copyright © 2021-2024 Vinicius Monego <[email protected]>
12;;; Copyright © 2022 Brendan Tildesley <[email protected]>
13;;; Copyright © 2022 Petr Hodina <[email protected]>
14;;; Copyright © 2023-2025 Zheng Junjie <[email protected]>
15;;; Copyright © 2024 Maxim Cournoyer <[email protected]>
16;;; Copyright © 2024-2026 Sughosha <[email protected]>
17;;; Copyright © 2025 Sergio Pastor Pérez <[email protected]>
18;;; Copyright © 2025 Andreas Enge <[email protected]>
19;;;
20;;; This file is part of GNU Guix.
21;;;
22;;; GNU Guix is free software; you can redistribute it and/or modify it
23;;; under the terms of the GNU General Public License as published by
24;;; the Free Software Foundation; either version 3 of the License, or (at
25;;; your option) any later version.
26;;;
27;;; GNU Guix is distributed in the hope that it will be useful, but
28;;; WITHOUT ANY WARRANTY; without even the implied warranty of
29;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
30;;; GNU General Public License for more details.
31;;;
32;;; You should have received a copy of the GNU General Public License
33;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
34
35(define-module (gnu packages kde-multimedia)
36 #:use-module (guix build-system cmake)
37 #:use-module (guix build-system qt)
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 (guix gexp)
44 #:use-module (gnu packages)
45 #:use-module (gnu packages algebra)
46 #:use-module (gnu packages audio)
47 #:use-module (gnu packages base)
48 #:use-module (gnu packages bash)
49 #:use-module (gnu packages compression)
50 #:use-module (gnu packages cdrom)
51 #:use-module (gnu packages check)
52 #:use-module (gnu packages crypto)
53 #:use-module (gnu packages databases)
54 #:use-module (gnu packages docbook)
55 #:use-module (gnu packages freedesktop)
56 #:use-module (gnu packages glib)
57 #:use-module (gnu packages gpodder)
58 #:use-module (gnu packages graphics)
59 #:use-module (gnu packages gtk)
60 #:use-module (gnu packages gnome)
61 #:use-module (gnu packages gstreamer)
62 #:use-module (gnu packages kde-frameworks)
63 #:use-module (gnu packages kde-plasma)
64 #:use-module (gnu packages libcanberra)
65 #:use-module (gnu packages libusb)
66 #:use-module (gnu packages linux)
67 #:use-module (gnu packages mp3)
68 #:use-module (gnu packages music)
69 #:use-module (gnu packages pkg-config)
70 #:use-module (gnu packages python)
71 #:use-module (gnu packages pulseaudio)
72 #:use-module (gnu packages qt)
73 #:use-module (gnu packages readline)
74 #:use-module (gnu packages tls)
75 #:use-module (gnu packages video)
76 #:use-module (gnu packages vulkan)
77 #:use-module (gnu packages xiph)
78 #:use-module (gnu packages xdisorg)
79 #:use-module (gnu packages xml)
80 #:use-module (gnu packages xorg))
81
82(define-public phonon
83 (package
84 (name "phonon")
85 (version "4.12.0")
86 (source (origin
87 (method url-fetch)
88 (uri (string-append
89 "mirror://kde/stable/phonon"
90 "/" version "/"
91 name "-" version ".tar.xz"))
92 (sha256
93 (base32
94 "16pk8g5rx00x45gnxrqg160b1l02fds1b7iz6shllbfczghgz1rj"))))
95 (build-system qt-build-system)
96 (native-inputs
97 (list appstream extra-cmake-modules pkg-config qttools))
98 (inputs (list glib pulseaudio qt5compat qtwayland))
99 (arguments
100 (list #:qtbase qtbase
101 #:configure-flags
102 #~(list "-DPHONON_BUILD_QT5=OFF"
103 "-DPHONON_BUILD_QT6=ON"
104 "-DCMAKE_CXX_FLAGS=-fPIC")))
105 (home-page "https://community.kde.org/Phonon")
106 (synopsis "KDE's multimedia library")
107 (description "KDE's multimedia library.")
108 (license license:lgpl2.1+)))
109
110(define-public phonon-qt5
111 (package
112 (inherit phonon)
113 (name "phonon-qt5")
114 (native-inputs
115 (list appstream extra-cmake-modules pkg-config qttools-5))
116 (inputs (list glib pulseaudio qtwayland-5))
117 (arguments
118 (substitute-keyword-arguments (package-arguments phonon)
119 ((#:qtbase _ #f)
120 qtbase-5)
121 ((#:configure-flags _ '())
122 #~(list "-DPHONON_BUILD_QT5=ON"
123 "-DPHONON_BUILD_QT6=OFF"
124 "-DCMAKE_CXX_FLAGS=-fPIC"))))
125 (home-page "https://community.kde.org/Phonon")
126 (synopsis "KDE's multimedia library")
127 (description "KDE's multimedia library.")
128 (license license:lgpl2.1+)))
129
130(define-public phonon-backend-vlc
131 (package
132 (name "phonon-backend-vlc")
133 (version "0.12.0")
134 (source (origin
135 (method url-fetch)
136 (uri (string-append
137 "mirror://kde/stable/phonon/"
138 name "/" version "/"
139 name "-" version ".tar.xz"))
140 (sha256
141 (base32
142 "19f9wzff4nr36ryq18i6qvsq5kqxfkpqsmsvrarr8jqy8pf7k11k"))))
143 (build-system cmake-build-system)
144 (arguments
145 (list #:tests? #f
146 #:configure-flags
147 #~(list "-DPHONON_BUILD_QT5=OFF"
148 "-DPHONON_BUILD_QT6=ON")))
149 (native-inputs
150 (list extra-cmake-modules qttools))
151 (inputs
152 (list phonon qtbase vlc))
153 (home-page "https://community.kde.org/Phonon")
154 (synopsis "Phonon backend which uses VLC")
155 (description "Phonon makes use of backend libraries to provide sound.
156Phonon-VLC is a backend based on the VLC multimedia library.")
157 (license license:lgpl2.1)))
158
159(define-public audiocd-kio
160 (package
161 (name "audiocd-kio")
162 (version "26.04.1")
163 (source
164 (origin
165 (method url-fetch)
166 (uri (string-append "mirror://kde/stable/release-service/" version
167 "/src/audiocd-kio-" version ".tar.xz"))
168 (sha256
169 (base32 "044q0brnxs0l5nfvf5qah3d5wq8jy8qw8mhh2n3vv5niz2cn93y9"))))
170 (build-system qt-build-system)
171 (native-inputs
172 (list extra-cmake-modules kdoctools))
173 (inputs
174 (list cdparanoia
175 flac
176 kcmutils
177 kconfig
178 ki18n
179 kio
180 libkcddb
181 libkcompactdisc
182 libvorbis
183 phonon))
184 (arguments
185 (list #:qtbase qtbase
186 #:tests? #f))
187 (home-page "https://apps.kde.org/kio_audiocd/")
188 (synopsis "Transparent audio CD integration for applications using the KDE
189Platform")
190 (description "KIO AudioCD is a KIO slave that enables KIO-aware
191applications (such as Dolphin or k3b) to access audio and CD text data on the
192audio compact disks. It allows transparent drag and drop conversion of audio
193data into the popular formats and has a configuration System Settings module
194available in the \"Multimedia\" section.
195
196This package is part of the KDE multimedia module.")
197 (license ;; GPL for programs, FDL for documentation
198 (list license:gpl2+ license:fdl1.2+))))
199
200(define-public amarok
201 (package
202 (name "amarok")
203 (version "3.3.2")
204 (source (origin
205 (method url-fetch)
206 (uri (string-append "mirror://kde/stable/amarok/" version
207 "/amarok-" version ".tar.xz"))
208 (sha256
209 (base32
210 "02v6sf2v9hnkzzkxq3xszazxbswaymqhnvvyyf6f86wrsc4nnhxa"))))
211 (build-system qt-build-system)
212 (arguments
213 (list #:qtbase qtbase
214 #:test-exclude "testtrackforurlworker"
215 #:phases
216 #~(modify-phases %standard-phases
217 (add-before 'configure 'check-setup
218 (lambda _
219 ;; Set home directory.
220 (setenv "HOME" "/tmp")
221 ;; testplaylistlayout looks for "amarok/data" directory in
222 ;; $XDG_DATA_DIRS. Maybe it is for testing after installing.
223 ;; As a workaround, set XDG_DATA_DIRS pointing to $TMPDIR
224 ;; which contains "amarok/data" directory.
225 (let ((linktarget (string-append (dirname (getcwd))
226 "/amarok")))
227 (if (not (equal? (basename (getcwd)) "amarok"))
228 (symlink (getcwd) linktarget))
229 (setenv "XDG_DATA_DIRS"
230 (string-append (getenv "XDG_DATA_DIRS") ":"
231 (dirname linktarget))))))
232 (replace 'check
233 (lambda* (#:key tests? #:allow-other-keys)
234 (when tests?
235 ;; testsqlscanmanager fails, even when run manually.
236 (invoke "ctest" "-E" "testsqlscanmanager"))))
237 (add-after 'install 'wrap-program
238 (lambda _
239 (wrap-program (string-append #$output "/bin/amarok")
240 `("GST_PLUGIN_SYSTEM_PATH" ":" suffix
241 (,(getenv "GST_PLUGIN_SYSTEM_PATH")))))))))
242 (native-inputs
243 (list extra-cmake-modules
244 googletest
245 kdoctools
246 `(,mariadb-embedded "dev")
247 pkg-config
248 qttools))
249 (inputs
250 ;; TODO: Add packages containing "gstreamer-cdda-1.0" and
251 ;; "gstreamer-netbuffer-1.0" modules.
252 (list ffmpeg
253 fftw
254 glib
255 gstreamer
256 gst-plugins-bad
257 gst-plugins-base
258 gst-plugins-good
259 gst-plugins-ugly
260 gst-libav
261 karchive
262 kcodecs
263 kcolorscheme
264 kconfig
265 kconfigwidgets
266 kcoreaddons
267 kcmutils
268 kcrash
269 kdbusaddons
270 kdnssd
271 kglobalaccel
272 kguiaddons
273 ki18n
274 kiconthemes
275 kio
276 kirigami
277 knotifications
278 kpackage
279 kstatusnotifieritem
280 ktexteditor
281 ktextwidgets
282 kwallet
283 kwidgetsaddons
284 kwindowsystem
285 libofa
286 libmtp
287 libmygpo-qt
288 libxcrypt
289 `(,mariadb-embedded "lib")
290 openssl
291 python
292 qt5compat
293 qtsvg
294 qtwayland
295 qtwebengine
296 solid
297 taglib
298 threadweaver))
299 (home-page "https://amarok.kde.org/")
300 (synopsis "Audio player for KDE")
301 (description
302 "Amarok is a music player and collection manager. It features:
303@itemize
304@item dynamic playlists matching different criteria,
305@item collection managing with rating support,
306@item support for basic MTP and UMS music player devices,
307@item integrated internet services such as Magnatune, Ampache and more,
308@item scripting support,
309@item cover manager and
310@item replay gain support
311@end itemize")
312 (license license:gpl2+)))
313
314(define-public dragon
315 (package
316 (name "dragon")
317 (version "26.04.1")
318 (source
319 (origin
320 (method url-fetch)
321 (uri (string-append "mirror://kde/stable/release-service/" version
322 "/src/dragon-" version ".tar.xz"))
323 (sha256
324 (base32 "0qkjk8q7jdhm1jni89djv6s28975iva03rjvvs0daqfhaxdlnai9"))))
325 (build-system qt-build-system)
326 (native-inputs
327 (list extra-cmake-modules kdoctools pkg-config))
328 (inputs
329 (list ffmpeg
330 kconfig
331 kconfigwidgets
332 kcoreaddons
333 kcrash
334 kdbusaddons
335 ki18n
336 kio
337 kjobwidgets
338 knotifications
339 kparts
340 kirigami
341 kwidgetsaddons
342 kwindowsystem
343 kxmlgui
344 breeze-icons ; default icon set
345 qtmultimedia
346 qtwayland
347 solid))
348 (arguments
349 (list #:qtbase qtbase
350 #:tests? #f))
351 (home-page "https://apps.kde.org/dragonplayer/")
352 (synopsis "Simple video player")
353 (description "Dragon Player is a multimedia player where the focus is on
354simplicity, instead of features. Dragon Player does one thing, and only one
355thing, which is playing multimedia files. It's simple interface is designed
356not to get in your way and instead empower you to simply play multimedia
357files.
358
359This package is part of the KDE multimedia module.")
360 (license ;; GPL for programs, FDL for documentation
361 (list license:gpl2+ license:fdl1.2+))))
362
363(define-public haruna
364 (package
365 (name "haruna")
366 (version "1.8.1")
367 (source (origin
368 (method url-fetch)
369 (uri (string-append "mirror://kde/stable/haruna/" version
370 "/haruna-" version ".tar.xz"))
371 (sha256
372 (base32 "0jsbzi4ni3aypsb2faj0n85y0qikhrzh3hwrd1hdm4hj2vim9w81"))))
373 (build-system qt-build-system)
374 (arguments
375 (list #:qtbase qtbase
376 #:tests? #f
377 #:phases
378 #~(modify-phases %standard-phases
379 (add-after 'unpack 'fix-yt-dlp-path
380 (lambda* (#:key inputs #:allow-other-keys)
381 (substitute* "src/application.cpp"
382 (("findExecutable\\(u\"yt-dlp\"")
383 (string-append "findExecutable(u\""
384 (search-input-file inputs "bin/yt-dlp")
385 "\""))))))))
386 (native-inputs
387 (list extra-cmake-modules pkg-config))
388 (inputs
389 (list breeze ;default theme
390 breeze-icons ;default icon set
391 ffmpeg
392 kcolorscheme
393 kconfig
394 kcoreaddons
395 kcrash
396 kdsingleapplication
397 kfilemetadata
398 ki18n
399 kiconthemes
400 kio
401 kirigami
402 kitemmodels
403 kwindowsystem
404 mpvqt
405 qqc2-desktop-style
406 sonnet
407 qt5compat
408 qtshadertools
409 qtwayland
410 yt-dlp))
411 (home-page "https://haruna.kde.org/")
412 (synopsis "Video player built with Qt/QML and libmpv")
413 (description "Haruna is a video player build with Qt/QML and libmpv.")
414 (license license:gpl3+)))
415
416(define-public elisa
417 (package
418 (name "elisa")
419 (version "26.04.1")
420 (source
421 (origin
422 (method url-fetch)
423 (uri (string-append "mirror://kde/stable/release-service/" version
424 "/src/elisa-" version ".tar.xz"))
425 (sha256
426 (base32 "0vykp1iidnmz12063vhvgg9kxq1nh0f51yxyyc5xxw0kwkh150ia"))))
427 (build-system qt-build-system)
428 (native-inputs
429 (list extra-cmake-modules pkg-config dbus kdoctools
430 xorg-server-for-tests python-minimal))
431 (inputs
432 (list kconfig
433 baloo
434 kconfigwidgets
435 kcoreaddons
436 kcrash
437 kcmutils
438 kdbusaddons
439 kdeclarative
440 kfilemetadata
441 ki18n
442 kiconthemes
443 kio
444 kirigami
445 kirigami-addons
446 qqc2-desktop-style
447 kparts
448 kpackage
449 kwidgetsaddons
450 kxmlgui
451 breeze-icons ; default icon set
452 phonon
453 qtsvg
454 qtdeclarative
455 qtmultimedia
456 ;; TODO: upnpqt https://gitlab.com/homeautomationqt/upnp-player-qt
457 qtwayland
458 vlc))
459 (arguments
460 (list #:qtbase qtbase
461 #:tests? #f ;; many tests fail
462 #:phases
463 #~(modify-phases %standard-phases
464 (add-before 'check 'start-xorg-server
465 (lambda* (#:key inputs #:allow-other-keys)
466 ;; The test suite requires a running X server, setting
467 ;; QT_QPA_PLATFORM=offscreen does not suffice.
468 (system "Xvfb :1 -screen 0 640x480x24 &")
469 (setenv "DISPLAY" ":1")))
470 (replace 'check
471 (lambda* (#:key tests? #:allow-other-keys)
472 (when tests?
473 (setenv "CTEST_OUTPUT_ON_FAILURE" "1")
474 (invoke "dbus-launch" "make" "test")))))))
475 (home-page "https://apps.kde.org/elisa/")
476 (synopsis "Powerful music player for Plasma 5")
477 (description "Elisa is a simple music player aiming to provide a nice
478experience for its users. Elisa browses music by album, artist or
479all tracks. The music is indexed using either a private indexer or an indexer
480using Baloo. The private one can be configured to scan music on chosen paths.
481The Baloo one is much faster because Baloo is providing all needed data from
482its own database. You can build and play your own playlist.")
483 (license license:lgpl3+)))
484
485(define-public ffmpegthumbs
486 (package
487 (name "ffmpegthumbs")
488 (version "26.04.1")
489 (source
490 (origin
491 (method url-fetch)
492 (uri (string-append "mirror://kde/stable/release-service/" version
493 "/src/ffmpegthumbs-" version ".tar.xz"))
494 (sha256
495 (base32 "1zplaxd1a7dpk72ijx72158qcj1gwbg7xvjvq90skx025xwgcf6z"))))
496 (build-system qt-build-system)
497 (native-inputs
498 (list extra-cmake-modules pkg-config))
499 (inputs
500 (list ffmpeg kconfig ki18n kio taglib))
501 (arguments (list #:qtbase qtbase
502 #:tests? #f
503 #:configure-flags #~(list "-DQT_MAJOR_VERSION=6")))
504 (home-page "https://apps.kde.org/ffmpegthumbs/")
505 (synopsis "Video thumbnail generator for KDE using ffmpeg")
506 (description "
507FFMpegThumbs is a video thumbnail generator for KDE file managers
508like Dolphin and Konqueror. It enables them to show preview images
509of video files using FFMpeg.
510
511This package is part of the KDE multimedia module.")
512 (license license:gpl2+)))
513
514(define-public juk
515 (package
516 (name "juk")
517 (version "26.04.1")
518 (source
519 (origin
520 (method url-fetch)
521 (uri (string-append "mirror://kde/stable/release-service/" version
522 "/src/juk-" version ".tar.xz"))
523 (sha256
524 (base32 "1kz6ck50q1pnpayzvganfh6agyi1zyxq9154mzf1gcm6zc7m570p"))))
525 (build-system qt-build-system)
526 (native-inputs
527 (list extra-cmake-modules kdoctools))
528 (inputs
529 (list kcoreaddons
530 kcompletion
531 kconfig
532 kcrash
533 kdbusaddons
534 kglobalaccel
535 ki18n
536 kiconthemes
537 kjobwidgets
538 kio
539 knotifications
540 ktextwidgets
541 kstatusnotifieritem
542 kwallet
543 kwidgetsaddons
544 kwindowsystem
545 kxmlgui
546 breeze-icons ; default icon set
547 qtmultimedia
548 qtsvg
549 qtwayland
550 taglib))
551 (arguments (list #:qtbase qtbase))
552 (home-page "https://apps.kde.org/juk/")
553 (synopsis "Music jukebox / music player")
554 (description "JuK is a powerful music player capable of managing a large
555music collection.
556
557Some of JuK's features include:
558@itemize
559@item Music collection, playlists, and smart playlists
560@item Tag editing support, including the ability to edit multiple files at once
561@item Tag-based music file organization and renaming
562@item CD burning support using k3b
563@item Album art using Google Image Search
564@end itemize
565
566This package is part of the KDE multimedia module.")
567 (license license:gpl2+)))
568
569(define-public kdenlive
570 (package
571 (name "kdenlive")
572 (version "26.04.3")
573 (source
574 (origin
575 (method url-fetch)
576 (uri (string-append "mirror://kde/stable/release-service/" version
577 "/src/kdenlive-" version ".tar.xz"))
578 (sha256
579 (base32 "0kif7zwb3pgb36y12f97vjlnmqx028r0z153izikkdqgdj7winy8"))))
580 (build-system qt-build-system)
581 (arguments
582 ;; XXX otiotest seemingly freezes. Additionally, tests/mixtest.cpp:818
583 ;; fails with an unexpected exception.
584 (list
585 #:qtbase qtbase
586 #:configure-flags #~(list "-DFETCH_OTIO=off")
587 #:tests? #f
588 #:phases
589 #~(modify-phases %standard-phases
590 (add-after 'install 'wrap-executable
591 (lambda _
592 (let* ((ffmpeg #$(this-package-input "ffmpeg"))
593 (ladspa #$(this-package-input "ladspa"))
594 (qtbase #$(this-package-input "qtbase")))
595 (wrap-program (string-append #$output "/bin/kdenlive")
596 `("PATH" ":" prefix
597 ,(list (string-append ffmpeg "/bin")))
598 `("LADSPA_PATH" ":" =
599 (,(string-append ladspa "/lib/ladspa")))
600 `("QT_QPA_PLATFORM_PLUGIN_PATH" ":" =
601 (,(string-append qtbase "/lib/qt6/plugins/platforms")))
602 `("MLT_PREFIX" ":" =
603 (,#$(this-package-input "mlt"))))))))))
604 (native-inputs
605 (list extra-cmake-modules frei0r-api kdoctools pkg-config qttools))
606 (inputs
607 (list bash-minimal
608 breeze ; make dark theme available easily
609 breeze-icons ; recommended icon set
610 ffmpeg
611 imath
612 karchive
613 kcrash
614 kdbusaddons
615 kddockwidgets
616 kdeclarative
617 kfilemetadata
618 kguiaddons
619 kiconthemes
620 kirigami
621 knewstuff
622 knotifications
623 knotifyconfig
624 kparts
625 kplotting
626 ktextwidgets
627 ladspa
628 mlt
629 opentimelineio
630 purpose
631 qqc2-desktop-style
632 qtbase
633 qtdeclarative
634 qtmultimedia
635 qtnetworkauth
636 qtsvg
637 qtwayland
638 shared-mime-info))
639 (native-search-paths
640 (list (search-path-specification
641 (variable "FREI0R_PATH")
642 (files (list "lib/frei0r-1")))))
643 (home-page "https://kdenlive.org")
644 (synopsis "Non-linear video editor")
645 (description "Kdenlive is an acronym for KDE Non-Linear Video Editor.
646
647Non-linear video editing is much more powerful than beginner's (linear)
648editors, hence it requires a bit more organization before starting. However,
649it is not reserved to specialists and can be used for small personal
650projects.")
651 (license license:gpl2+)))
652
653(define-public kid3
654 (package
655 (name "kid3")
656 (version "3.9.7")
657 (source
658 (origin
659 (method url-fetch)
660 (uri (string-append "mirror://kde/stable/kid3/" version
661 "/kid3-" version ".tar.xz"))
662 (sha256
663 (base32 "0q07f4fwh8lwbqi7qm2ga01a6hsqaarnr1vqi6npipnxskvyxkzr"))))
664 (build-system qt-build-system)
665 (arguments
666 (list
667 #:configure-flags
668 #~(list
669 "-DBUILD_WITH_QT6=ON"
670 "-DWITH_FFMPEG=ON"
671 (string-append "-DDOCBOOK_XSL_DIR="
672 #$(this-package-native-input "docbook-xsl")))
673 #:qtbase qtbase
674 #:phases
675 #~(modify-phases %standard-phases
676 ;; FIXME: Documentation build scripts use unix pipes, which will fail
677 ;; in the build environment.
678 (add-after 'unpack 'skip-docs
679 (lambda _
680 (substitute* "CMakeLists.txt"
681 (("add_subdirectory\\(doc\\)") "")))))))
682 (native-inputs
683 (list docbook-xsl
684 extra-cmake-modules
685 kdoctools
686 libxslt
687 python-minimal-wrapper
688 qttools))
689 (inputs
690 (list chromaprint
691 ffmpeg-6
692 flac
693 id3lib
694 kconfig
695 kconfigwidgets
696 kcoreaddons
697 kio
698 kwidgetsaddons
699 kxmlgui
700 libvorbis
701 qtdeclarative
702 qtmultimedia
703 qtwayland
704 readline
705 taglib
706 zlib))
707 (home-page "https://kid3.kde.org/")
708 (synopsis "Audio tag editor")
709 (description "Kid3 is an audio tag editor for KDE that supports a large
710variety of formats.")
711 (license license:gpl2+)))
712
713(define-public k3b
714 (package
715 (name "k3b")
716 (version "26.04.1")
717 (source
718 (origin
719 (method url-fetch)
720 (uri (string-append "mirror://kde/stable/release-service/" version
721 "/src/k3b-" version ".tar.xz"))
722 (sha256
723 (base32 "0ai74pxqiqm2vdbpy3mwaaxwigy7dsb4ivykyfqwl13iwzpm5109"))))
724 (build-system qt-build-system)
725 (arguments
726 (list
727 #:qtbase qtbase
728 #:phases
729 #~(modify-phases %standard-phases
730 (add-after 'unpack 'set-absolute-library-paths
731 (lambda* (#:key inputs #:allow-other-keys)
732 ;; Set absolute paths for dlopened libraries. We can’t use k3b’s
733 ;; runpath as they are loaded by the Qt library.
734 (let ((libcdio-paranoia (assoc-ref inputs "libcdio-paranoia"))
735 (libdvdcss (assoc-ref inputs "libdvdcss")))
736 (substitute* "libk3b/tools/k3bcdparanoialib.cpp"
737 (("\"(cdio_cdda|cdio_paranoia)\"" _ library)
738 (string-append "\"" libcdio-paranoia "/lib/" library "\"")))
739 (substitute* "libk3b/tools/k3blibdvdcss.cpp"
740 (("\"(dvdcss)\"" _ library)
741 (string-append "\"" libdvdcss "/lib/" library "\""))))))
742 (add-before 'configure 'fix-cmake-taglib
743 (lambda _
744 ;; Use the CMake variables provided by FindTaglib from
745 ;; extra-cmake-modules, instead of bundled FindTaglib.cmake:
746 (substitute*
747 '("plugins/decoder/mp3/CMakeLists.txt"
748 "plugins/decoder/flac/CMakeLists.txt"
749 "plugins/project/audiometainforenamer/CMakeLists.txt")
750 (("TAGLIB_INCLUDES") "Taglib_INCLUDE_DIRS")
751 (("TAGLIB_LIBRARIES") "Taglib_LIBRARIES"))))
752 (add-after 'qt-wrap 'wrap-path
753 (lambda* (#:key inputs outputs #:allow-other-keys)
754 ;; Set paths to backend programs.
755 (wrap-program (string-append (assoc-ref outputs "out") "/bin/k3b")
756 `("PATH" ":" prefix
757 ,(map (lambda (input)
758 (string-append (assoc-ref inputs input) "/bin"))
759 '("cdrdao" "cdrtools" "dvd+rw-tools" "libburn" "sox")))))))))
760 (native-inputs
761 (list extra-cmake-modules pkg-config kdoctools))
762 (inputs
763 (list bash-minimal
764 breeze-icons ; default icon set
765 cdrdao
766 cdrtools
767 dvd+rw-tools
768 ffmpeg-6
769 flac
770 karchive
771 kauth
772 kcmutils
773 kconfig
774 kcoreaddons
775 kfilemetadata
776 ki18n
777 kiconthemes
778 kio
779 kjobwidgets
780 knewstuff
781 knotifications
782 knotifyconfig
783 kservice
784 kwidgetsaddons
785 kxmlgui
786 lame
787 libburn
788 libcdio-paranoia
789 libdvdcss
790 libdvdread
791 ;; TODO: LibFuzzer
792 libkcddb
793 libmad
794 libmpcdec
795 ;;("libmusicbrainz" ,libmusicbrainz) ; wants old version 2
796 libsamplerate
797 libsndfile
798 libvorbis
799 qtwayland
800 shared-mime-info
801 solid
802 sox
803 taglib
804 zlib))
805 (home-page "https://apps.kde.org/k3b/")
806 (synopsis "Sophisticated CD/DVD burning application")
807 (description "K3b is CD-writing software which intends to be feature-rich
808and provide an easily usable interface. Features include burning audio CDs
809from .WAV and .MP3 audio files, configuring external programs and configuring
810devices.
811
812The @code{udisks-service-type} should be enabled for @command{k3b} to discover
813the available CD drives.")
814 (license ;; GPL for programs, FDL for documentation
815 (list license:gpl2+ license:fdl1.2+))))
816
817(define-public kaffeine
818 (let* ((commit "0a363690f5b320ec55f190a4d32d09d73a8c86f1")
819 (revision "0"))
820 (package
821 (name "kaffeine")
822 (version (git-version "2.0.19" revision commit))
823 (source
824 (origin
825 (method git-fetch)
826 (uri (git-reference
827 (url "https://invent.kde.org/multimedia/kaffeine.git/")
828 (commit commit)))
829 (file-name (git-file-name name version))
830 (sha256
831 (base32 "0959sw7xdkv3blv6k1p7k91ki0s30ki54jh516n52lp6h48q6z1p"))))
832 (build-system qt-build-system)
833 (native-inputs
834 (list extra-cmake-modules pkg-config kdoctools))
835 (inputs
836 (list breeze-icons ; default icon set
837 eudev
838 kcoreaddons
839 kdbusaddons
840 ki18n
841 kio
842 kwidgetsaddons
843 kwindowsystem
844 kxmlgui
845 libxscrnsaver
846 qtwayland
847 solid
848 v4l-utils ; libdvbv5
849 vlc))
850 (arguments
851 (list #:qtbase qtbase
852 #:tests? #f
853 #:phases
854 #~(modify-phases %standard-phases
855 (add-after 'unpack 'fix-code
856 (lambda _
857 (substitute* "src/dvb/dvbdevice_linux.cpp"
858 (("\\s*qPrintable\\(transponder\\.getTransmissionType\\(\\)\\)\\);")
859 "transponder.getTransmissionType());")))))))
860 (home-page "https://apps.kde.org/kaffeine/")
861 (synopsis "Versatile media player for KDE")
862 (description "Kaffeine is a media player for KDE. While it supports
863multiple Phonon backends, its default backend is Xine, giving Kaffeine a wide
864variety of supported media types and letting Kaffeine access CDs, DVDs, and
865network streams easily.
866
867Kaffeine can keep track of multiple playlists simultaneously, and supports
868autoloading of subtitle files for use while playing video.")
869 (license ;; GPL for programs, FDL for documentation
870 (list license:gpl2+ license:fdl1.2+)))))
871
872(define-public kamoso
873 (package
874 (name "kamoso")
875 (version "26.04.1")
876 (source
877 (origin
878 (method url-fetch)
879 (uri (string-append "mirror://kde/stable/release-service/" version
880 "/src/kamoso-" version ".tar.xz"))
881 (sha256
882 (base32 "01b769wihi29gf6jsw71m7xjljqf2c79yq3vnsfrrn24rcnwsfmp"))))
883 (build-system qt-build-system)
884 (native-inputs
885 (list
886 extra-cmake-modules
887 `(,glib "bin")
888 kdoctools
889 pkg-config))
890 (inputs
891 (list gstreamer
892 gst-plugins-base
893 gst-plugins-bad
894 gst-plugins-good-qt
895 kconfig
896 ki18n
897 kio
898 kirigami
899 kirigami-addons
900 kitemmodels
901 knotifications
902 kparts
903 breeze-icons ; default icon set
904 purpose
905 qtdeclarative
906 qtwayland))
907 (arguments
908 (list
909 #:qtbase qtbase
910 #:tests? #f
911 #:phases
912 #~(modify-phases %standard-phases
913 (add-after 'install 'wrap-program
914 (lambda _
915 (wrap-program (string-append #$output "/bin/kamoso")
916 `("GST_PLUGIN_SYSTEM_PATH" ":" suffix
917 (,(getenv "GST_PLUGIN_SYSTEM_PATH")))))))))
918 (home-page "https://apps.kde.org/kamoso/")
919 (synopsis "Take pictures and videos out of your webcam")
920 (description "Kamoso is a simple and friendly program to use your
921camera. Use it to take pictures and make videos to share.")
922 (license ;; GPL for programs, LGPL for libraries
923 (list license:gpl2+ license:lgpl2.0+))))
924
925(define-public kasts
926 (package
927 (name "kasts")
928 (version "26.04.1")
929 (source
930 (origin
931 (method url-fetch)
932 (uri (string-append "mirror://kde/stable/release-service/" version
933 "/src/kasts-" version ".tar.xz"))
934 (sha256
935 (base32 "1i47nkyh8s4866bg0cc0q5ai41f0z9pj0i73qm382w0ygxhl35x5"))))
936 (build-system qt-build-system)
937 (native-inputs (list pkg-config extra-cmake-modules))
938 (inputs (list breeze-icons
939 gstreamer
940 kcolorscheme
941 kcoreaddons
942 kcrash
943 kdbusaddons
944 ki18n
945 kiconthemes
946 kirigami
947 kirigami-addons
948 kwindowsystem
949 libxkbcommon
950 python
951 qqc2-desktop-style
952 qtdeclarative
953 qtkeychain-qt6
954 qtmultimedia
955 qtsvg
956 qtwayland
957 sonnet
958 syndication
959 taglib
960 threadweaver
961 vlc
962 vulkan-headers
963 vulkan-loader))
964 (arguments
965 (list
966 #:qtbase qtbase
967 #:tests? #f))
968 (home-page "https://apps.kde.org/kasts/")
969 (synopsis "Convergent podcast client")
970 (description
971 "Kasts is a convergent podcast application that looks good on
972desktop and mobile.
973
974Its main features are:
975- Episode management through play queue
976- Sync playback positions with other clients through gpodder.net or
977 gpodder-nextcloud
978- Variable playback speed
979- Search for podcasts
980- Full system integration: e.g. inhibit system suspend while listening")
981 (license (list license:gpl2+ license:lgpl2.1+))))
982
983(define-public kmix
984 (package
985 (name "kmix")
986 (version "26.04.1")
987 (source
988 (origin
989 (method url-fetch)
990 (uri (string-append "mirror://kde/stable/release-service/" version
991 "/src/kmix-" version ".tar.xz"))
992 (sha256
993 (base32 "1src7ljg78hv549l8i3527f45vmq9nk6kcxnjlsvif4snqspgvva"))))
994 (build-system qt-build-system)
995 (arguments (list #:qtbase qtbase))
996 (native-inputs
997 (list extra-cmake-modules kdoctools pkg-config))
998 (inputs
999 (list alsa-lib
1000 glib
1001 kcompletion
1002 kconfig
1003 kconfigwidgets
1004 kcrash
1005 kdbusaddons
1006 kglobalaccel
1007 ki18n
1008 kiconthemes
1009 knotifications
1010 kstatusnotifieritem
1011 kwidgetsaddons
1012 kwindowsystem
1013 kxmlgui
1014 libcanberra
1015 breeze-icons ; default icon set
1016 libplasma
1017 pulseaudio
1018 qtwayland
1019 solid))
1020 (home-page "https://apps.kde.org/kmix/")
1021 (synopsis "Volume control and mixer")
1022 (description "KMix is an audio device mixer, used to adjust volume, select
1023recording inputs, and set other hardware options.
1024
1025This package is part of the KDE multimedia module.")
1026 (license ;; GPL for programs, LGPL for libraries, FDL for documentation
1027 (list license:gpl2+ license:lgpl2.0+ license:fdl1.2+))))
1028
1029(define-public kwave
1030 (package
1031 (name "kwave")
1032 (version "26.04.1")
1033 (source
1034 (origin
1035 (method url-fetch)
1036 (uri (string-append "mirror://kde/stable/release-service/" version
1037 "/src/kwave-" version ".tar.xz"))
1038 (sha256
1039 (base32 "0v36isr465d781d53gqssy7ijkgxlxvvn020bhxi22s7znw0g4za"))))
1040 (build-system qt-build-system)
1041 (native-inputs
1042 (list extra-cmake-modules (librsvg-for-system) pkg-config kdoctools
1043 tzdata-for-tests))
1044 (inputs
1045 (list alsa-lib
1046 audiofile
1047 flac
1048 id3lib
1049 karchive
1050 kcompletion
1051 kconfig
1052 kconfigwidgets
1053 kcoreaddons
1054 kcrash
1055 kdbusaddons
1056 ki18n
1057 kiconthemes
1058 kio
1059 kservice
1060 ktextwidgets
1061 kwidgetsaddons
1062 kxmlgui
1063 libmad
1064 libsamplerate
1065 libvorbis
1066 opus
1067 breeze-icons ; default icon set
1068 pulseaudio
1069 qtmultimedia
1070 qtwayland
1071 zlib))
1072 (arguments
1073 (list
1074 #:qtbase qtbase
1075 #:phases
1076 #~(modify-phases %standard-phases
1077 (add-before 'check 'set-TZDATA
1078 (lambda* (#:key inputs tests? #:allow-other-keys)
1079 (setenv "TZDIR"
1080 (search-input-directory inputs
1081 "share/zoneinfo")))))))
1082 (home-page "https://apps.kde.org/kwave/")
1083 (synopsis "Sound editor for KDE")
1084 (description "Kwave is a sound editor designed for the KDE Desktop
1085Environment.
1086
1087With Kwave you can record, play back, import and edit many sorts of audio
1088files including multi-channel files. It includes some plugins to transform
1089audio files in several ways and presents a graphical view with a complete
1090zoom- and scroll capability.
1091
1092Its features include:
1093@itemize
1094@item 24 Bit Support
1095@item Undo/Redo
1096@item Use of multicore CPUs (SMP, hyperthreading)
1097@item Simple Drag & Drop
1098@item Realtime Pre-Listen for some effects
1099@item Support for multi-track files
1100@item Playback and recording via native ALSA (or OSS, deprecated)
1101@item Playback via PulseAudio and Phonon
1102@item Load and edit-capability for large files (can use virtual memory)
1103@item Reading and auto-repair of damaged wav-files
1104@item Supports multiple windows
1105@item Extendable Plugin interface
1106@item a nice splashscreen
1107@item some label handling
1108@end itemize")
1109 (license ;; GPL for programs, LGPL for libraries, FDL for documentation
1110 (list license:gpl2+ license:lgpl2.0+ license:fdl1.2+
1111 license:cc-by-sa3.0 license:cc-by-sa4.0 ;; icons, samples
1112 license:cc0 license:bsd-3)))) ;; utilities files
1113
1114(define-public libkcddb
1115 (package
1116 (name "libkcddb")
1117 (version "26.04.1")
1118 (source
1119 (origin
1120 (method url-fetch)
1121 (uri (string-append "mirror://kde/stable/release-service/" version
1122 "/src/libkcddb-" version ".tar.xz"))
1123 (sha256
1124 (base32 "0j8r0z9hmmr6qbdlnvrhf57mz3w6mqmlrww8kzwpnip76s5bfwzs"))))
1125 (build-system qt-build-system)
1126 (propagated-inputs
1127 (list kconfig)) ;as required by KCddb6Config.cmake
1128 (native-inputs
1129 (list extra-cmake-modules kdoctools))
1130 (inputs
1131 (list kcodecs
1132 ki18n
1133 kio
1134 kcmutils
1135 kwidgetsaddons
1136 libmusicbrainz))
1137 (arguments
1138 (list
1139 #:qtbase qtbase
1140 #:configure-flags #~(list "-DQT_MAJOR_VERSION=6")
1141 #:tests? #f)) ; Most tests require network
1142 (home-page "https://invent.kde.org/multimedia/libkcddb")
1143 (synopsis "CDDB library for KDE Platform (runtime)")
1144 (description "A library for retrieving and sending cddb information.")
1145 (license ;; GPL for programs, LGPL for libraries, FDL for documentation
1146 (list license:gpl2+ license:lgpl2.0+ license:fdl1.2+))))
1147
1148(define-public libkcompactdisc
1149 (package
1150 (name "libkcompactdisc")
1151 (version "25.12.3")
1152 (source
1153 (origin
1154 (method url-fetch)
1155 (uri (string-append "mirror://kde/stable/release-service/" version
1156 "/src/libkcompactdisc-" version ".tar.xz"))
1157 (sha256
1158 (base32 "0rz5ksxr538drn4mklgif5kfq0y3ynmmhk10a4a0vkx386gnnk0g"))))
1159 (build-system qt-build-system)
1160 (native-inputs
1161 (list extra-cmake-modules))
1162 (inputs
1163 (list alsa-lib
1164 kcoreaddons
1165 ki18n
1166 phonon
1167 solid))
1168 (arguments (list
1169 #:configure-flags #~(list "-DQT_MAJOR_VERSION=6")
1170 #:tests? #f
1171 #:qtbase qtbase))
1172 (home-page "https://invent.kde.org/multimedia/libkcompactdisc")
1173 (synopsis "KDE library for playing & ripping CDs")
1174 (description "The KDE Compact Disc library provides an API for
1175applications using the KDE Platform to interface with the CD drives for audio
1176CDs.")
1177 (license ;; GPL for programs, LGPL for libraries
1178 (list license:gpl2+ license:lgpl2.0+))))
1179
1180(define-public mpvqt
1181 (package
1182 (name "mpvqt")
1183 (version "1.1.1")
1184 (source (origin
1185 (method url-fetch)
1186 (uri (string-append
1187 "mirror://kde//stable/mpvqt/"
1188 name "-" version ".tar.xz"))
1189 (sha256
1190 (base32
1191 "0cix3ssvpw9wg8h06zr5x0jcm1f1p0c6524ac9zh3wwc6dlymldx"))))
1192 (build-system qt-build-system)
1193 (native-inputs
1194 (list extra-cmake-modules pkg-config))
1195 (propagated-inputs
1196 (list mpv qtdeclarative)) ;as required by MpvQtConfig.cmake
1197 (arguments
1198 (list #:qtbase qtbase
1199 #:tests? #f))
1200 (home-page "https://invent.kde.org/libraries/mpvqt")
1201 (synopsis "libmpv wrapper for QtQuick2 and QML")
1202 (description "This package provides a libmpv wrapper for QtQuick2 and QML.")
1203 (license license:lgpl2.1+)))
1204
1205(define-public plasmatube
1206 (package
1207 (name "plasmatube")
1208 (version "26.04.1")
1209 (source
1210 (origin
1211 (method url-fetch)
1212 (uri (string-append "mirror://kde/stable/release-service/" version
1213 "/src/plasmatube-" version ".tar.xz"))
1214 (sha256
1215 (base32 "10xy1dnpmx1gz84p34jazkmnggfcym537claq8gd8y960nszx2cf"))))
1216 (build-system qt-build-system)
1217 (native-inputs (list extra-cmake-modules pkg-config python-minimal))
1218 (inputs
1219 (list kconfig
1220 kcoreaddons
1221 kdbusaddons
1222 kdeclarative ; for org.kde.kquickcontrolsaddons
1223 ki18n
1224 kirigami
1225 kirigami-addons
1226 kitemmodels
1227 kwindowsystem
1228 mpvqt
1229 purpose
1230 qqc2-desktop-style ; for org.kde.desktop
1231 qtdeclarative
1232 qtkeychain-qt6
1233 qtmultimedia
1234 qtsvg
1235 qtwayland
1236 sonnet
1237 yt-dlp))
1238 (arguments (list #:qtbase qtbase))
1239 (home-page "https://apps.kde.org/plasmatube/")
1240 (synopsis "YouTube and PeerTube video player")
1241 (description
1242 "Plasmatube is a YouTube video player that uses Invidious and Piped
1243APIs. It can also play videos from PeerTube sources.")
1244 (license license:gpl3+)))
1245
1246(define-public rattlesnake
1247 (let ((commit "2f0631f201f16e1c17bcf82af24087370b799562") ;no tags
1248 (revision "0"))
1249 (package
1250 (name "rattlesnake")
1251 (version (git-version "0" revision commit))
1252 (source (origin
1253 (method git-fetch)
1254 (uri (git-reference
1255 (url "https://invent.kde.org/multimedia/rattlesnake")
1256 (commit commit)))
1257 (file-name (git-file-name name version))
1258 (sha256
1259 (base32
1260 "0iaandlbv2v4a6wsdxk19ynj77axd3kc72nw28bvbsfb0kqc0mai"))))
1261 (build-system qt-build-system)
1262 (arguments
1263 (list
1264 #:qtbase qtbase
1265 #:tests? #f ;no tests
1266 #:phases
1267 #~(modify-phases %standard-phases
1268 (add-after 'install 'wrap-program
1269 (lambda _
1270 (wrap-program (string-append #$output "/bin/rattlesnake")
1271 `("GST_PLUGIN_SYSTEM_PATH" ":" suffix
1272 (,(getenv "GST_PLUGIN_SYSTEM_PATH")))))))))
1273 (native-inputs
1274 (list extra-cmake-modules))
1275 (inputs
1276 (list gst-plugins-base
1277 gst-plugins-good
1278 gstreamer
1279 kirigami
1280 kirigami-addons
1281 qtdeclarative
1282 qtmultimedia
1283 qtwayland))
1284 (home-page "https://invent.kde.org/multimedia/rattlesnake")
1285 (synopsis "Metronome")
1286 (description "Rattlesnake is a metronome app.")
1287 (license license:gpl3+))))