kde-plasma.scm 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294
  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, 2019, 2020 Hartmut Goebel <h.goebel@crazy-compilers.com>
  6. ;;; Copyright © 2019 Tobias Geerinckx-Rice <me@tobias.gr>
  7. ;;; Copyright © 2020 Zheng Junjie <873216071@qq.com>
  8. ;;;
  9. ;;; This file is part of GNU Guix.
  10. ;;;
  11. ;;; GNU Guix is free software; you can redistribute it and/or modify it
  12. ;;; under the terms of the GNU General Public License as published by
  13. ;;; the Free Software Foundation; either version 3 of the License, or (at
  14. ;;; your option) any later version.
  15. ;;;
  16. ;;; GNU Guix is distributed in the hope that it will be useful, but
  17. ;;; WITHOUT ANY WARRANTY; without even the implied warranty of
  18. ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  19. ;;; GNU General Public License for more details.
  20. ;;;
  21. ;;; You should have received a copy of the GNU General Public License
  22. ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
  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. (define-public breeze
  38. (package
  39. (name "breeze")
  40. (version "5.19.5")
  41. (source (origin
  42. (method url-fetch)
  43. (uri (string-append "mirror://kde/stable/plasma/" version "/"
  44. name "-" version ".tar.xz"))
  45. (sha256
  46. (base32
  47. "0dpk1w7zcafrzf46j060i1qb0fwqpsflkfzr6gcar81llmjnc4b1"))))
  48. (build-system qt-build-system)
  49. ;; TODO: Warning at /gnu/store/…-kpackage-5.34.0/…/KF5PackageMacros.cmake:
  50. ;; warnings during generation of metainfo for org.kde.breezedark.desktop:
  51. ;; Package type "Plasma/LookAndFeel" not found
  52. ;; TODO: Check whether is makes sence splitting into several outputs, like
  53. ;; Debian does:
  54. ;; - breeze-cursor-theme
  55. ;; - "out", "devel"
  56. ;; - kde-style-breeze - Widget style
  57. ;; - kde-style-breeze-qt4 - propably not useful
  58. ;; - kwin-style-breeze
  59. ;; - qml-module-qtquick-controls-styles-breeze - QtQuick style
  60. (native-inputs
  61. `(("extra-cmake-modules" ,extra-cmake-modules)
  62. ("pkg-config" ,pkg-config)))
  63. (inputs
  64. `(("kcmutils" ,kcmutils) ; optional
  65. ("kconfigwidgets" ,kconfigwidgets)
  66. ("kcoreaddons" ,kcoreaddons)
  67. ("kde-frameworkintegration" ,kde-frameworkintegration) ; optional
  68. ("kdecoration" ,kdecoration)
  69. ("kguiaddons" ,kguiaddons)
  70. ("ki18n" ,ki18n)
  71. ("kiconthemes" ,kiconthemes) ; for optional kde-frameworkintegration
  72. ("kpackage" ,kpackage)
  73. ("kwayland" ,kwayland) ; optional
  74. ("kwindowsystem" ,kwindowsystem)
  75. ("qtbase" ,qtbase-5)
  76. ("qtdeclarative" ,qtdeclarative) ; optional
  77. ("qtx11extras" ,qtx11extras)))
  78. (home-page "https://invent.kde.org/plasma/breeze")
  79. (synopsis "Default KDE Plasma theme")
  80. (description "Artwork, styles and assets for the Breeze visual style for
  81. the Plasma Desktop. Breeze is the default theme for the KDE Plasma desktop.")
  82. (license license:gpl2+)))
  83. (define-public kdecoration
  84. (package
  85. (name "kdecoration")
  86. (version "5.19.5")
  87. (source (origin
  88. (method url-fetch)
  89. (uri (string-append "mirror://kde/stable/plasma/" version
  90. "/kdecoration-" version ".tar.xz"))
  91. (sha256
  92. (base32
  93. "0pn8n7zyb0adzjnn92vmbcf7pmpss60k9k1rk5llamj016xzfgnf"))))
  94. (build-system qt-build-system)
  95. (native-inputs
  96. `(("extra-cmake-modules" ,extra-cmake-modules)))
  97. (inputs
  98. `(("ki18n" ,ki18n)
  99. ("qtbase" ,qtbase-5)))
  100. (home-page "https://invent.kde.org/plasma/kdecoration")
  101. (synopsis "Plugin based library to create window decorations")
  102. (description "KDecoration is a library to create window decorations.
  103. These window decorations can be used by for example an X11 based window
  104. manager which re-parents a Client window to a window decoration frame.")
  105. (license license:lgpl3+)))
  106. (define-public ksshaskpass
  107. (package
  108. (name "ksshaskpass")
  109. (version "5.19.5")
  110. (source (origin
  111. (method url-fetch)
  112. (uri (string-append "mirror://kde/stable/plasma/" version
  113. "/ksshaskpass-" version ".tar.xz"))
  114. (sha256
  115. (base32
  116. "1k2va2v9051f71w78dn3gihk642iyy5yzrkcfnp97fag8g6dpisi"))))
  117. (build-system qt-build-system)
  118. (native-inputs
  119. `(("extra-cmake-modules" ,extra-cmake-modules)
  120. ("kdoctools" ,kdoctools)))
  121. (inputs
  122. `(("kcoreaddons" ,kcoreaddons)
  123. ("ki18n" ,ki18n)
  124. ("kwallet" ,kwallet)
  125. ("kwidgetsaddons" ,kwidgetsaddons)
  126. ("qtbase" ,qtbase-5)))
  127. (home-page "https://invent.kde.org/plasma/ksshaskpass")
  128. (synopsis "Front-end for ssh-add using kwallet")
  129. (description "Ksshaskpass is a front-end for @code{ssh-add} which stores the
  130. password of the ssh key in KWallet. Ksshaskpass is not meant to be executed
  131. directly, you need to tell @code{ssh-add} about it. @code{ssh-add} will then
  132. call it if it is not associated to a terminal.")
  133. (license license:gpl2+)))
  134. (define-public kscreenlocker
  135. (package
  136. (name "kscreenlocker")
  137. (version "5.19.5")
  138. (source (origin
  139. (method url-fetch)
  140. (uri (string-append "mirror://kde/stable/plasma/" version
  141. "/kscreenlocker-" version ".tar.xz"))
  142. (sha256
  143. (base32
  144. "1fd5sqaqx9kj3kr0bgxpllhcm5arf8bc9pkpd9yk9c8xjy0j0fxi"))))
  145. (build-system qt-build-system)
  146. (arguments
  147. `(#:tests? #f ;; TODO: make tests pass
  148. #:phases
  149. (modify-phases %standard-phases
  150. (add-before 'check 'check-setup
  151. (lambda* (#:key inputs outputs #:allow-other-keys)
  152. (system "Xvfb :1 -screen 0 640x480x24 &")
  153. (setenv "DISPLAY" ":1")
  154. #t))
  155. (delete 'check)
  156. ;; Tests use the installed library and require a DBus session.
  157. (add-after 'install 'check
  158. (lambda* (#:key tests? #:allow-other-keys)
  159. (if tests?
  160. (begin
  161. (setenv "CTEST_OUTPUT_ON_FAILURE" "1")
  162. (invoke "dbus-launch" "ctest" ".")))
  163. #t)))))
  164. (native-inputs
  165. `(("extra-cmake-modules" ,extra-cmake-modules)
  166. ("pkg-config" ,pkg-config)
  167. ;; For tests.
  168. ("dbus" ,dbus)
  169. ("xorg-server" ,xorg-server-for-tests)))
  170. (inputs
  171. `(("kcmutils" ,kcmutils)
  172. ("kcrash" ,kcrash)
  173. ("kdeclarative" ,kdeclarative)
  174. ("kglobalaccel" ,kglobalaccel)
  175. ("ki18n" ,ki18n)
  176. ("kidletime" ,kidletime)
  177. ("knotifications" ,knotifications)
  178. ("ktextwidgets" ,ktextwidgets)
  179. ("kwayland" ,kwayland)
  180. ("kwindowsystem" ,kwindowsystem)
  181. ("kxmlgui" ,kxmlgui)
  182. ("libseccomp" ,libseccomp) ;for sandboxing the look'n'feel package
  183. ("libxcursor" ,libxcursor) ;missing in CMakeList.txt
  184. ("libxi" ,libxi) ;XInput, required for grabbing XInput2 devices
  185. ("linux-pam" ,linux-pam)
  186. ("logind" ,elogind) ;optional loginctl support
  187. ("qtbase" ,qtbase-5)
  188. ("qtdeclarative" ,qtdeclarative)
  189. ("qtx11extras" ,qtx11extras)
  190. ("solid" ,solid)
  191. ("wayland" ,wayland)
  192. ("xcb-util-keysyms" ,xcb-util-keysyms)))
  193. (home-page "https://invent.kde.org/plasma/kscreenlocker")
  194. (synopsis "Screen locking library")
  195. (description
  196. "@code{kscreenlocker} is a library for creating secure lock screens.")
  197. (license license:gpl2+)))
  198. (define-public libkscreen
  199. (package
  200. (name "libkscreen")
  201. (version "5.19.5")
  202. (source
  203. (origin
  204. (method url-fetch)
  205. (uri (string-append "mirror://kde/stable/plasma/" version "/"
  206. name "-" version ".tar.xz"))
  207. (sha256
  208. (base32 "0rf1pm0yyc069f4n5s9ipdx4glzfr9zvv5cbrmn4q9i4v6z1qd8i"))))
  209. (build-system qt-build-system)
  210. (native-inputs
  211. `(("extra-cmake-modules" ,extra-cmake-modules)
  212. ;; For testing.
  213. ("dbus" ,dbus)))
  214. (inputs
  215. `(("kwayland" ,kwayland)
  216. ("libxrandr" ,libxrandr)
  217. ("qtbase" ,qtbase-5)
  218. ("qtx11extras" ,qtx11extras)))
  219. (arguments
  220. '(#:tests? #f)) ; FIXME: 55% tests passed, 5 tests failed out of 11
  221. (home-page "https://community.kde.org/Solid/Projects/ScreenManagement")
  222. (synopsis "KDE's screen management software")
  223. (description "KScreen is the new screen management software for KDE Plasma
  224. Workspaces which tries to be as magic and automatic as possible for users with
  225. basic needs and easy to configure for those who want special setups.")
  226. (license license:gpl2+)))
  227. (define-public libksysguard
  228. (package
  229. (name "libksysguard")
  230. (version "5.19.5")
  231. (source
  232. (origin
  233. (method url-fetch)
  234. (uri (string-append "mirror://kde//stable/plasma/" version
  235. "/libksysguard-" version ".tar.xz"))
  236. (sha256
  237. (base32 "1kd0h3p8bf9k5pqp0frhr81pa0yyrpkckg9zznirk9p1v88v7bfq"))))
  238. (native-inputs
  239. `(("extra-cmake-modules" ,extra-cmake-modules)
  240. ("pkg-config" ,pkg-config)))
  241. (inputs
  242. `(("kconfigwidgets" ,kconfigwidgets)
  243. ("kiconthemes" ,kiconthemes)
  244. ("kwindowsystem" ,kwindowsystem)
  245. ("ki18n" ,ki18n)
  246. ("kauth" ,kauth)
  247. ("kcompletion" ,kcompletion)
  248. ("kconfig" ,kconfig)
  249. ("kcoreaddons" ,kcoreaddons)
  250. ("kdeclarative" ,kdeclarative)
  251. ("kglobalaccel" ,kglobalaccel)
  252. ("kio" ,kio)
  253. ("knewstuff" ,knewstuff)
  254. ("kwidgetsaddons" ,kwidgetsaddons)
  255. ("kservice" ,kservice)
  256. ("qtbase" ,qtbase-5)
  257. ("qtdeclarative" ,qtdeclarative)
  258. ("qtscript" ,qtscript)
  259. ("qtwebkit" ,qtwebkit)
  260. ("qtx11extras" ,qtx11extras)
  261. ("plasma" ,plasma-framework)
  262. ("zlib" ,zlib)))
  263. (build-system qt-build-system)
  264. (arguments
  265. `(#:configure-flags
  266. `(,(string-append "-DKDE_INSTALL_DATADIR="
  267. (assoc-ref %outputs "out") "/share"))
  268. #:phases
  269. (modify-phases %standard-phases
  270. (add-before 'configure 'patch-cmakelists
  271. (lambda _
  272. ;; TODO: Verify: This should no longer be necessary, since
  273. ;; KF5AuthConfig.cmake.in contains this already.
  274. (substitute* "processcore/CMakeLists.txt"
  275. (("KAUTH_HELPER_INSTALL_DIR") "KDE_INSTALL_LIBEXECDIR"))))
  276. (replace 'check
  277. (lambda _
  278. ;; TODO: Fix this failing test-case
  279. (invoke "ctest" "-E" "processtest"))))))
  280. (home-page "https://userbase.kde.org/KSysGuard")
  281. (synopsis "Network enabled task and system monitoring")
  282. (description "KSysGuard can obtain information on system load and
  283. manage running processes. It obtains this information by interacting
  284. with a ksysguardd daemon, which may also run on a remote system.")
  285. (license license:gpl3+)))