Commit | Line | Data |
---|---|---|
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 | |
90 | the 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. | |
113 | Breeze 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. | |
136 | These window decorations can be used by for example an X11 based window | |
137 | manager 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 | |
159 | password of the ssh key in KWallet. Ksshaskpass is not meant to be executed | |
160 | directly, you need to tell @code{ssh-add} about it. @code{ssh-add} will then | |
161 | call 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 | |
279 | Workspaces which tries to be as magic and automatic as possible for users with | |
280 | basic 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 | |
336 | manage running processes. It obtains this information by interacting | |
337 | with 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 | |
383 | wayland-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 |