gnu: dnsmasq: Update to 2.87.
[jackhill/guix/guix.git] / gnu / packages / kde-plasma.scm
CommitLineData
bec2a2e1
MB
1;;; GNU Guix --- Functional package management for GNU
2;;; Copyright © 2016 Thomas Danckaert <post@thomasdanckaert.be>
cdf7fea1 3;;; Copyright © 2018 Meiyo Peng <meiyo.peng@gmail.com>
6a97dfff 4;;; Copyright © 2019 Marius Bakke <mbakke@fastmail.com>
d3f1ef38 5;;; Copyright © 2017, 2019, 2020 Hartmut Goebel <h.goebel@crazy-compilers.com>
c31f2d01 6;;; Copyright © 2019 Tobias Geerinckx-Rice <me@tobias.gr>
c386de05 7;;; Copyright © 2020 Zheng Junjie <873216071@qq.com>
2ac5bdfa 8;;; Copyright © 2022 Brendan Tildesley <mail@brendan.scot>
bec2a2e1
MB
9;;;
10;;; This file is part of GNU Guix.
11;;;
12;;; GNU Guix is free software; you can redistribute it and/or modify it
13;;; under the terms of the GNU General Public License as published by
14;;; the Free Software Foundation; either version 3 of the License, or (at
15;;; your option) any later version.
16;;;
17;;; GNU Guix is distributed in the hope that it will be useful, but
18;;; WITHOUT ANY WARRANTY; without even the implied warranty of
19;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20;;; GNU General Public License for more details.
21;;;
22;;; You should have received a copy of the GNU General Public License
23;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
24
25(define-module (gnu packages kde-plasma)
26 #:use-module (guix packages)
27 #:use-module (guix download)
28 #:use-module ((guix licenses) #:prefix license:)
54b0b96c 29 #:use-module (guix gexp)
bec2a2e1 30 #:use-module (guix build-system cmake)
cd165d10 31 #:use-module (guix build-system qt)
2ac5bdfa 32 #:use-module (gnu packages admin)
bec2a2e1 33 #:use-module (gnu packages compression)
fd56c4be 34 #:use-module (gnu packages freedesktop)
bec2a2e1 35 #:use-module (gnu packages glib)
20693769 36 #:use-module (gnu packages gtk)
bec2a2e1 37 #:use-module (gnu packages kde-frameworks)
fd56c4be 38 #:use-module (gnu packages linux)
bec2a2e1 39 #:use-module (gnu packages pkg-config)
20693769 40 #:use-module (gnu packages python)
bec2a2e1 41 #:use-module (gnu packages qt)
7fc78b2d 42 #:use-module (gnu packages xdisorg)
20693769
SF
43 #:use-module (gnu packages xorg)
44 #:use-module (gnu packages web))
bec2a2e1 45
d3f1ef38
HG
46(define-public breeze
47 (package
48 (name "breeze")
7f0f53eb 49 (version "5.25.3")
d3f1ef38
HG
50 (source (origin
51 (method url-fetch)
52 (uri (string-append "mirror://kde/stable/plasma/" version "/"
53 name "-" version ".tar.xz"))
54 (sha256
55 (base32
7f0f53eb 56 "0za75ckgfcdxrh2qxgyl2c1273g2xqwmd55njsis1yvwryadypqw"))))
d3f1ef38
HG
57 (build-system qt-build-system)
58 ;; TODO: Warning at /gnu/store/…-kpackage-5.34.0/…/KF5PackageMacros.cmake:
59 ;; warnings during generation of metainfo for org.kde.breezedark.desktop:
60 ;; Package type "Plasma/LookAndFeel" not found
61 ;; TODO: Check whether is makes sence splitting into several outputs, like
62 ;; Debian does:
63 ;; - breeze-cursor-theme
64 ;; - "out", "devel"
65 ;; - kde-style-breeze - Widget style
66 ;; - kde-style-breeze-qt4 - propably not useful
67 ;; - kwin-style-breeze
68 ;; - qml-module-qtquick-controls-styles-breeze - QtQuick style
69 (native-inputs
8394619b 70 (list extra-cmake-modules pkg-config))
d3f1ef38 71 (inputs
8394619b
LC
72 (list kcmutils ; optional
73 kconfigwidgets
74 kcoreaddons
75 kde-frameworkintegration ; optional
76 kdecoration
77 kguiaddons
78 ki18n
7f0f53eb 79 kirigami
8394619b
LC
80 kiconthemes ; for optional kde-frameworkintegration
81 kpackage
82 kwayland ; optional
83 kwindowsystem
84 qtbase-5
735d340a 85 qtdeclarative-5 ; optional
8394619b 86 qtx11extras))
d3f1ef38
HG
87 (home-page "https://invent.kde.org/plasma/breeze")
88 (synopsis "Default KDE Plasma theme")
89 (description "Artwork, styles and assets for the Breeze visual style for
90the Plasma Desktop. Breeze is the default theme for the KDE Plasma desktop.")
91 (license license:gpl2+)))
92
20693769
SF
93(define-public breeze-gtk
94 (package
95 (name "breeze-gtk")
96 (version "5.19.5")
97 (source (origin
98 (method url-fetch)
99 (uri (string-append "mirror://kde/stable/plasma/"
100 version "/" name
101 "-" version ".tar.xz"))
102 (sha256
103 (base32
104 "1j2nq9yw1ragmgwrz9f6ca4ifpi86qv1bbprdgd2qm2yh7vb44sj"))))
105 (build-system qt-build-system)
106 (arguments
107 '(#:tests? #f)) ;no 'test' target
108 (native-inputs (list breeze extra-cmake-modules sassc python
109 python-pycairo))
110 (home-page "https://invent.kde.org/plasma/breeze")
111 (synopsis "Default KDE Plasma theme (GTK+ port)")
112 (description "GTK+ port of the Breeze visual style for the Plasma Desktop.
113Breeze is the default theme for the KDE Plasma desktop.")
114 (license (list license:bsd-3 ;cmake/FindSass.cmake
115 license:lgpl2.1+)))) ;<all other files>
116
6a97dfff
HG
117(define-public kdecoration
118 (package
119 (name "kdecoration")
7f0f53eb 120 (version "5.25.3")
6a97dfff
HG
121 (source (origin
122 (method url-fetch)
123 (uri (string-append "mirror://kde/stable/plasma/" version
124 "/kdecoration-" version ".tar.xz"))
125 (sha256
126 (base32
7f0f53eb 127 "0b6ynqkndmlac89hv339k365m7wykp9y238df62jlq4vpr1r9x9y"))))
cd165d10 128 (build-system qt-build-system)
6a97dfff 129 (native-inputs
8394619b 130 (list extra-cmake-modules))
6a97dfff 131 (inputs
2ac5bdfa 132 (list kcoreaddons ki18n qtbase-5))
b828057e 133 (home-page "https://invent.kde.org/plasma/kdecoration")
6a97dfff
HG
134 (synopsis "Plugin based library to create window decorations")
135 (description "KDecoration is a library to create window decorations.
136These window decorations can be used by for example an X11 based window
137manager which re-parents a Client window to a window decoration frame.")
138 (license license:lgpl3+)))
139
c386de05
Z
140(define-public ksshaskpass
141 (package
142 (name "ksshaskpass")
7f0f53eb 143 (version "5.25.3")
c386de05
Z
144 (source (origin
145 (method url-fetch)
146 (uri (string-append "mirror://kde/stable/plasma/" version
147 "/ksshaskpass-" version ".tar.xz"))
148 (sha256
149 (base32
7f0f53eb 150 "0sfl77szvfq9c7v0gsv5nnf7h5kxigyy2z2p1cwmhm1pq4n606nk"))))
c386de05
Z
151 (build-system qt-build-system)
152 (native-inputs
8394619b 153 (list extra-cmake-modules kdoctools))
c386de05 154 (inputs
8394619b 155 (list kcoreaddons ki18n kwallet kwidgetsaddons qtbase-5))
c386de05
Z
156 (home-page "https://invent.kde.org/plasma/ksshaskpass")
157 (synopsis "Front-end for ssh-add using kwallet")
158 (description "Ksshaskpass is a front-end for @code{ssh-add} which stores the
159password of the ssh key in KWallet. Ksshaskpass is not meant to be executed
160directly, you need to tell @code{ssh-add} about it. @code{ssh-add} will then
161call it if it is not associated to a terminal.")
162 (license license:gpl2+)))
163
7fc78b2d
BT
164(define-public layer-shell-qt
165 (package
166 (name "layer-shell-qt")
7f0f53eb 167 (version "5.25.3")
7fc78b2d
BT
168 (source (origin
169 (method url-fetch)
170 (uri (string-append "mirror://kde/stable/plasma/" version
171 "/layer-shell-qt-" version ".tar.xz"))
172 (sha256
173 (base32
7f0f53eb 174 "06rxqm4wh4mcszrwb2dbgpxj3dqfx0rccyyjp091lbsncqm1gib0"))))
7fc78b2d
BT
175 (build-system qt-build-system)
176 (native-inputs
177 (list extra-cmake-modules pkg-config))
178 (inputs
179 (list libxkbcommon
180 qtbase-5
181 qtdeclarative-5
034f68ba 182 qtwayland-5
7fc78b2d
BT
183 wayland
184 wayland-protocols))
185 (home-page "https://invent.kde.org/plasma/layer-shell-qt")
186 (synopsis "Qt component for the Wayland ql-layer-shell protocol")
187 (description "Qt component for the Wayland ql-layer-shell protocol.")
188 (license license:gpl2+)))
189
fd56c4be
HG
190(define-public kscreenlocker
191 (package
192 (name "kscreenlocker")
7f0f53eb 193 (version "5.25.3")
fd56c4be
HG
194 (source (origin
195 (method url-fetch)
196 (uri (string-append "mirror://kde/stable/plasma/" version
197 "/kscreenlocker-" version ".tar.xz"))
198 (sha256
199 (base32
7f0f53eb 200 "1kii3r3j89avwyb00wrw80k5sj0q4wqgmy1q0yxfps9jk729k3wc"))))
0f4c320c 201 (build-system qt-build-system)
fd56c4be 202 (arguments
0f4c320c
HG
203 `(#:tests? #f ;; TODO: make tests pass
204 #:phases
fd56c4be
HG
205 (modify-phases %standard-phases
206 (add-before 'check 'check-setup
207 (lambda* (#:key inputs outputs #:allow-other-keys)
07e98fb9 208 (system "Xvfb :1 -screen 0 640x480x24 &")
fd56c4be
HG
209 (setenv "DISPLAY" ":1")
210 #t))
211 (delete 'check)
212 ;; Tests use the installed library and require a DBus session.
213 (add-after 'install 'check
0f4c320c
HG
214 (lambda* (#:key tests? #:allow-other-keys)
215 (if tests?
216 (begin
217 (setenv "CTEST_OUTPUT_ON_FAILURE" "1")
2ac5bdfa 218 (invoke "dbus-launch" "ctest")))
0f4c320c 219 #t)))))
fd56c4be 220 (native-inputs
8394619b
LC
221 (list extra-cmake-modules pkg-config
222 ;; For tests.
223 dbus xorg-server-for-tests))
fd56c4be 224 (inputs
2ac5bdfa 225 (list kcmutils
7f0f53eb 226 kconfig
2ac5bdfa
BT
227 kcrash
228 kdeclarative
229 kglobalaccel
230 ki18n
231 kidletime
232 knotifications
233 ktextwidgets
234 kwayland
235 kwindowsystem
236 kxmlgui
237 layer-shell-qt
238 libseccomp ;for sandboxing the look'n'feel package
239 libxcursor ;missing in CMakeList.txt
240 libxi ;XInput, required for grabbing XInput2 devices
241 linux-pam
242 elogind ;optional loginctl support
243 qtbase-5
244 qtdeclarative-5
245 qtx11extras
246 solid
247 wayland
248 xcb-util-keysyms))
b828057e 249 (home-page "https://invent.kde.org/plasma/kscreenlocker")
fd56c4be
HG
250 (synopsis "Screen locking library")
251 (description
252 "@code{kscreenlocker} is a library for creating secure lock screens.")
253 (license license:gpl2+)))
254
bec2a2e1
MB
255(define-public libkscreen
256 (package
257 (name "libkscreen")
7f0f53eb 258 (version "5.25.3")
bec2a2e1
MB
259 (source
260 (origin
261 (method url-fetch)
262 (uri (string-append "mirror://kde/stable/plasma/" version "/"
263 name "-" version ".tar.xz"))
264 (sha256
7f0f53eb 265 (base32 "1mxkrk04wcyw4xbfiyxbp5iwnhqr10yk39zx5bbjd9zag0vdi7z5"))))
cd165d10 266 (build-system qt-build-system)
bec2a2e1 267 (native-inputs
8394619b
LC
268 (list extra-cmake-modules
269 ;; For testing.
270 dbus))
bec2a2e1 271 (inputs
2ac5bdfa 272 (list kwayland libxrandr plasma-wayland-protocols
322917ae 273 qtbase-5 qtwayland-5 wayland qtx11extras))
bec2a2e1 274 (arguments
cd165d10 275 '(#:tests? #f)) ; FIXME: 55% tests passed, 5 tests failed out of 11
bec2a2e1
MB
276 (home-page "https://community.kde.org/Solid/Projects/ScreenManagement")
277 (synopsis "KDE's screen management software")
278 (description "KScreen is the new screen management software for KDE Plasma
279Workspaces which tries to be as magic and automatic as possible for users with
280basic needs and easy to configure for those who want special setups.")
281 (license license:gpl2+)))
282
283(define-public libksysguard
284 (package
285 (name "libksysguard")
7f0f53eb 286 (version "5.25.3")
bec2a2e1
MB
287 (source
288 (origin
289 (method url-fetch)
2ac5bdfa 290 (uri (string-append "mirror://kde/stable/plasma/" version
bec2a2e1
MB
291 "/libksysguard-" version ".tar.xz"))
292 (sha256
7f0f53eb 293 (base32 "1mrrrxjvqmrnkjwafvqrd2hlvl9gr9y4hn7dv0gf70lp5bl06i89"))))
bec2a2e1 294 (native-inputs
2ac5bdfa 295 (list extra-cmake-modules pkg-config qttools-5))
bec2a2e1 296 (inputs
2ac5bdfa
BT
297 (list kauth
298 kcompletion
299 kconfig
300 kconfigwidgets
301 kcoreaddons
302 kdeclarative
303 kglobalaccel
304 ki18n
305 kiconthemes
306 kio
307 knewstuff
308 kservice
309 kwidgetsaddons
310 kwindowsystem
311 libnl
312 libcap
313 libpcap
314 `(,lm-sensors "lib")
315 plasma-framework
316 qtbase-5
317 qtdeclarative-5
318 qtscript
319 qtwebchannel-5
320 qtwebengine-5
321 qtwebkit
322 qtx11extras
323 zlib))
cd165d10 324 (build-system qt-build-system)
bec2a2e1 325 (arguments
2ac5bdfa 326 (list #:phases
54b0b96c 327 #~(modify-phases %standard-phases
54b0b96c 328 (replace 'check
2ac5bdfa
BT
329 (lambda* (#:key tests? #:allow-other-keys)
330 (when tests?
331 ;; TODO: Fix this failing test-case
332 (invoke "ctest" "-E" "processtest")))))))
284fb66a 333 (home-page "https://userbase.kde.org/KSysGuard")
bec2a2e1
MB
334 (synopsis "Network enabled task and system monitoring")
335 (description "KSysGuard can obtain information on system load and
336manage running processes. It obtains this information by interacting
337with a ksysguardd daemon, which may also run on a remote system.")
338 (license license:gpl3+)))
a38889b1
BT
339
340(define-public kwayland-server
341 (package
342 (name "kwayland-server")
343 (version "5.24.4")
344 (source (origin
345 (method url-fetch)
346 (uri (string-append
347 "mirror://kde/stable/plasma/" version
348 "/" name "-" version ".tar.xz"))
349 (sha256
350 (base32
351 "1279nqhy1qyz84dkn23rvzak8bg71hbrp09jlhv9mkjdb3bhnyfi"))))
352 (build-system qt-build-system)
353 (native-inputs
354 (list extra-cmake-modules pkg-config))
355 (inputs
356 (list plasma-wayland-protocols
357 qtbase-5
322917ae 358 qtwayland-5
a38889b1
BT
359 kwayland
360 wayland
361 wayland-protocols-next))
362 (arguments
363 '(#:phases
364 (modify-phases %standard-phases
365 (add-after 'unpack 'patch-install-path
366 (lambda _
367 ;; Fixes errors including nonexistant /include/KF5
368 (substitute* "src/server/CMakeLists.txt"
369 (("KF5_INSTALL") "KDE_INSTALL"))))
370 (replace 'check
371 (lambda* (#:key tests? #:allow-other-keys)
372 (when tests?
373 (setenv "HOME" (getcwd))
374 (setenv "XDG_RUNTIME_DIR" (getcwd))
375 (setenv "QT_QPA_PLATFORM" "offscreen")
376 (invoke "ctest" "-E"
377 ;; This test fails inconsistently.
378 "kwayland-testDragAndDrop")))))))
379 (home-page "https://api.kde.org/kwayland-server/html/index.html")
380 (synopsis "KDE wayland server component")
381 (description
382 "KWayland is a Qt-style API to interact with the wayland-client and
383wayland-server API.")
384 ;; Most files are LGPL2.1 or LGPL3.0 only, at the users option.
385 (license (list license:lgpl2.1 license:lgpl3
386 ;; src/server/drm_fourcc.h carries the MIT license.
387 license:expat))))
388