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