gnu: KDE Plasma: Update to 5.15.0.
[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
HG
4;;; Copyright © 2019 Marius Bakke <mbakke@fastmail.com>
5;;; Copyright © 2017 Hartmut Goebel <h.goebel@crazy-compilers.com>
bec2a2e1
MB
6;;;
7;;; This file is part of GNU Guix.
8;;;
9;;; GNU Guix is free software; you can redistribute it and/or modify it
10;;; under the terms of the GNU General Public License as published by
11;;; the Free Software Foundation; either version 3 of the License, or (at
12;;; your option) any later version.
13;;;
14;;; GNU Guix is distributed in the hope that it will be useful, but
15;;; WITHOUT ANY WARRANTY; without even the implied warranty of
16;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17;;; GNU General Public License for more details.
18;;;
19;;; You should have received a copy of the GNU General Public License
20;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
21
22(define-module (gnu packages kde-plasma)
23 #:use-module (guix packages)
24 #:use-module (guix download)
25 #:use-module ((guix licenses) #:prefix license:)
26 #:use-module (guix build-system cmake)
27 #:use-module (gnu packages compression)
fd56c4be 28 #:use-module (gnu packages freedesktop)
bec2a2e1
MB
29 #:use-module (gnu packages glib)
30 #:use-module (gnu packages kde-frameworks)
fd56c4be 31 #:use-module (gnu packages linux)
bec2a2e1
MB
32 #:use-module (gnu packages pkg-config)
33 #:use-module (gnu packages qt)
34 #:use-module (gnu packages xorg))
35
6a97dfff
HG
36(define-public kdecoration
37 (package
38 (name "kdecoration")
76435771 39 (version "5.15.0")
6a97dfff
HG
40 (source (origin
41 (method url-fetch)
42 (uri (string-append "mirror://kde/stable/plasma/" version
43 "/kdecoration-" version ".tar.xz"))
44 (sha256
45 (base32
76435771 46 "1pcyw6rrz0q7i2jnfvmjz2pixiw2aay19q3pxa1g3qvqydh3id5q"))))
6a97dfff
HG
47 (build-system cmake-build-system)
48 (native-inputs
49 `(("extra-cmake-modules" ,extra-cmake-modules)))
50 (inputs
51 `(("ki18n" ,ki18n)
52 ("qtbase" ,qtbase)))
53 (arguments
54 `(#:phases
55 (modify-phases %standard-phases
56 (add-before 'check 'check-setup
57 (lambda _ (setenv "QT_QPA_PLATFORM" "offscreen") #t)))))
58 (home-page "https://cgit.kde.org/kdecoration.git")
59 (synopsis "Plugin based library to create window decorations")
60 (description "KDecoration is a library to create window decorations.
61These window decorations can be used by for example an X11 based window
62manager which re-parents a Client window to a window decoration frame.")
63 (license license:lgpl3+)))
64
fd56c4be
HG
65(define-public kscreenlocker
66 (package
67 (name "kscreenlocker")
76435771 68 (version "5.15.0")
fd56c4be
HG
69 (source (origin
70 (method url-fetch)
71 (uri (string-append "mirror://kde/stable/plasma/" version
72 "/kscreenlocker-" version ".tar.xz"))
73 (sha256
74 (base32
76435771 75 "1hgj2mzbbiqn52j3px2mzz6xzzpzr78q3bcai8ddc4gcl1xgs6yi"))))
fd56c4be
HG
76 (build-system cmake-build-system)
77 (arguments
78 `(#:phases
79 (modify-phases %standard-phases
80 (add-before 'check 'check-setup
81 (lambda* (#:key inputs outputs #:allow-other-keys)
82 (system (string-append (assoc-ref inputs "xorg-server")
83 "/bin/Xvfb :1 -screen 0 640x480x24 &"))
84 (setenv "DISPLAY" ":1")
85 #t))
86 (delete 'check)
87 ;; Tests use the installed library and require a DBus session.
88 (add-after 'install 'check
89 (lambda _
90 (setenv "CTEST_OUTPUT_ON_FAILURE" "1")
91 (invoke "dbus-launch" "ctest" "."))))))
92 (native-inputs
93 `(("extra-cmake-modules" ,extra-cmake-modules)
94 ("pkg-config" ,pkg-config)
95
96 ;; For tests.
97 ("dbus" ,dbus)
98 ("xorg-server" ,xorg-server)))
99 (inputs
100 `(("kcmutils" ,kcmutils)
101 ("kcrash" ,kcrash)
102 ("kdeclarative" ,kdeclarative)
103 ("kglobalaccel" ,kglobalaccel)
104 ("ki18n" ,ki18n)
105 ("kidletime" ,kidletime)
106 ("knotifications" ,knotifications)
107 ("ktextwidgets" ,ktextwidgets)
108 ("kwayland" ,kwayland)
109 ("kwindowsystem" ,kwindowsystem)
110 ("kxmlgui" ,kxmlgui)
111 ("libseccomp" ,libseccomp) ;for sandboxing the look'n'feel package
112 ("libxcursor" ,libxcursor) ;missing in CMakeList.txt
113 ("libxi" ,libxi) ;XInput, required for grabbing XInput2 devices
114 ("linux-pam" ,linux-pam)
115 ("logind" ,elogind) ;optional loginctl support
116 ("qtbase" ,qtbase)
117 ("qtdeclarative" ,qtdeclarative)
118 ("qtx11extras" ,qtx11extras)
119 ("solid" ,solid)
120 ("wayland" ,wayland)
121 ("xcb-util-keysyms" ,xcb-util-keysyms)))
122 (home-page "https://cgit.kde.org/kscreenlocker.git")
123 (synopsis "Screen locking library")
124 (description
125 "@code{kscreenlocker} is a library for creating secure lock screens.")
126 (license license:gpl2+)))
127
bec2a2e1
MB
128(define-public libkscreen
129 (package
130 (name "libkscreen")
76435771 131 (version "5.15.0")
bec2a2e1
MB
132 (source
133 (origin
134 (method url-fetch)
135 (uri (string-append "mirror://kde/stable/plasma/" version "/"
136 name "-" version ".tar.xz"))
137 (sha256
76435771 138 (base32 "1clw8966fmwih1fsjasvpgvfq7w728hlabl3i0zjz53r87hdw3mb"))))
bec2a2e1
MB
139 (build-system cmake-build-system)
140 (native-inputs
141 `(("extra-cmake-modules" ,extra-cmake-modules)
142 ;; For testing.
143 ("dbus" ,dbus)))
144 (inputs
145 `(("kwayland" ,kwayland)
146 ("libxrandr" ,libxrandr)
147 ("qtbase" ,qtbase)
148 ("qtx11extras" ,qtx11extras)))
149 (arguments
150 '(#:tests? #f ; FIXME: 55% tests passed, 5 tests failed out of 11
151 #:phases
152 (modify-phases %standard-phases
153 (add-before 'check 'pre-check
154 (lambda _
155 ;; For the missing '/etc/machine-id'.
156 (setenv "DBUS_FATAL_WARNINGS" "0")
157 ;; Run the tests offscreen.
158 (setenv "QT_QPA_PLATFORM" "offscreen")
159 #t)))))
160 (home-page "https://community.kde.org/Solid/Projects/ScreenManagement")
161 (synopsis "KDE's screen management software")
162 (description "KScreen is the new screen management software for KDE Plasma
163Workspaces which tries to be as magic and automatic as possible for users with
164basic needs and easy to configure for those who want special setups.")
165 (license license:gpl2+)))
166
167(define-public libksysguard
168 (package
169 (name "libksysguard")
76435771 170 (version "5.15.0")
bec2a2e1
MB
171 (source
172 (origin
173 (method url-fetch)
174 (uri (string-append "mirror://kde//stable/plasma/" version
175 "/libksysguard-" version ".tar.xz"))
176 (sha256
177 (base32
76435771 178 "1aqkzbng2qq09rpb21r6drnn866b9y8yba3klhvhi0q5vg3p605d"))))
bec2a2e1
MB
179 (native-inputs
180 `(("extra-cmake-modules" ,extra-cmake-modules)
181 ("pkg-config" ,pkg-config)))
182 (inputs
183 `(("kconfigwidgets" ,kconfigwidgets)
184 ("kiconthemes" ,kiconthemes)
185 ("kwindowsystem" ,kwindowsystem)
186 ("ki18n" ,ki18n)
187 ("kauth" ,kauth)
188 ("kcompletion" ,kcompletion)
189 ("kconfig" ,kconfig)
190 ("kcoreaddons" ,kcoreaddons)
856e3f9c
MB
191 ("kglobalaccel" ,kglobalaccel)
192 ("kio" ,kio)
bec2a2e1
MB
193 ("kwidgetsaddons" ,kwidgetsaddons)
194 ("kservice" ,kservice)
195 ("qtbase" ,qtbase)
196 ("qtscript" ,qtscript)
197 ("qtwebkit" ,qtwebkit)
198 ("qtx11extras" ,qtx11extras)
199 ("plasma" ,plasma-framework)
200 ("zlib" ,zlib)))
201 (build-system cmake-build-system)
202 (arguments
203 `(#:configure-flags
204 `(,(string-append "-DKDE_INSTALL_DATADIR="
205 (assoc-ref %outputs "out") "/share"))
206 #:phases
207 (modify-phases %standard-phases
208 (add-before 'configure 'patch-cmakelists
209 (lambda _
210 ;; TODO: Verify: This should no longer be necessary, since
211 ;; KF5AuthConfig.cmake.in contains this already.
212 (substitute* "processcore/CMakeLists.txt"
213 (("KAUTH_HELPER_INSTALL_DIR") "KDE_INSTALL_LIBEXECDIR"))))
214 (add-before 'check 'check-setup
215 (lambda _
216 ;; make Qt render "offscreen", required for tests
217 (setenv "QT_QPA_PLATFORM" "offscreen")))
218 (replace 'check
219 (lambda _
220 ;; TODO: Fix this failing test-case
221 (invoke "ctest" "-E" "processtest"))))))
222 (home-page "https://www.kde.org/info/plasma-5.13.4.php")
223 (synopsis "Network enabled task and system monitoring")
224 (description "KSysGuard can obtain information on system load and
225manage running processes. It obtains this information by interacting
226with a ksysguardd daemon, which may also run on a remote system.")
227 (license license:gpl3+)))
228