kde-plasma.scm 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283
  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 gexp)
  28. #:use-module (guix build-system cmake)
  29. #:use-module (guix build-system qt)
  30. #:use-module (gnu packages compression)
  31. #:use-module (gnu packages freedesktop)
  32. #:use-module (gnu packages glib)
  33. #:use-module (gnu packages kde-frameworks)
  34. #:use-module (gnu packages linux)
  35. #:use-module (gnu packages pkg-config)
  36. #:use-module (gnu packages qt)
  37. #:use-module (gnu packages xorg))
  38. (define-public breeze
  39. (package
  40. (name "breeze")
  41. (version "5.19.5")
  42. (source (origin
  43. (method url-fetch)
  44. (uri (string-append "mirror://kde/stable/plasma/" version "/"
  45. name "-" version ".tar.xz"))
  46. (sha256
  47. (base32
  48. "0dpk1w7zcafrzf46j060i1qb0fwqpsflkfzr6gcar81llmjnc4b1"))))
  49. (build-system qt-build-system)
  50. ;; TODO: Warning at /gnu/store/…-kpackage-5.34.0/…/KF5PackageMacros.cmake:
  51. ;; warnings during generation of metainfo for org.kde.breezedark.desktop:
  52. ;; Package type "Plasma/LookAndFeel" not found
  53. ;; TODO: Check whether is makes sence splitting into several outputs, like
  54. ;; Debian does:
  55. ;; - breeze-cursor-theme
  56. ;; - "out", "devel"
  57. ;; - kde-style-breeze - Widget style
  58. ;; - kde-style-breeze-qt4 - propably not useful
  59. ;; - kwin-style-breeze
  60. ;; - qml-module-qtquick-controls-styles-breeze - QtQuick style
  61. (native-inputs
  62. (list extra-cmake-modules pkg-config))
  63. (inputs
  64. (list kcmutils ; optional
  65. kconfigwidgets
  66. kcoreaddons
  67. kde-frameworkintegration ; optional
  68. kdecoration
  69. kguiaddons
  70. ki18n
  71. kiconthemes ; for optional kde-frameworkintegration
  72. kpackage
  73. kwayland ; optional
  74. kwindowsystem
  75. qtbase-5
  76. qtdeclarative ; optional
  77. 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. (list extra-cmake-modules))
  97. (inputs
  98. (list ki18n qtbase-5))
  99. (home-page "https://invent.kde.org/plasma/kdecoration")
  100. (synopsis "Plugin based library to create window decorations")
  101. (description "KDecoration is a library to create window decorations.
  102. These window decorations can be used by for example an X11 based window
  103. manager which re-parents a Client window to a window decoration frame.")
  104. (license license:lgpl3+)))
  105. (define-public ksshaskpass
  106. (package
  107. (name "ksshaskpass")
  108. (version "5.19.5")
  109. (source (origin
  110. (method url-fetch)
  111. (uri (string-append "mirror://kde/stable/plasma/" version
  112. "/ksshaskpass-" version ".tar.xz"))
  113. (sha256
  114. (base32
  115. "1k2va2v9051f71w78dn3gihk642iyy5yzrkcfnp97fag8g6dpisi"))))
  116. (build-system qt-build-system)
  117. (native-inputs
  118. (list extra-cmake-modules kdoctools))
  119. (inputs
  120. (list kcoreaddons ki18n kwallet kwidgetsaddons qtbase-5))
  121. (home-page "https://invent.kde.org/plasma/ksshaskpass")
  122. (synopsis "Front-end for ssh-add using kwallet")
  123. (description "Ksshaskpass is a front-end for @code{ssh-add} which stores the
  124. password of the ssh key in KWallet. Ksshaskpass is not meant to be executed
  125. directly, you need to tell @code{ssh-add} about it. @code{ssh-add} will then
  126. call it if it is not associated to a terminal.")
  127. (license license:gpl2+)))
  128. (define-public kscreenlocker
  129. (package
  130. (name "kscreenlocker")
  131. (version "5.19.5")
  132. (source (origin
  133. (method url-fetch)
  134. (uri (string-append "mirror://kde/stable/plasma/" version
  135. "/kscreenlocker-" version ".tar.xz"))
  136. (sha256
  137. (base32
  138. "1fd5sqaqx9kj3kr0bgxpllhcm5arf8bc9pkpd9yk9c8xjy0j0fxi"))))
  139. (build-system qt-build-system)
  140. (arguments
  141. `(#:tests? #f ;; TODO: make tests pass
  142. #:phases
  143. (modify-phases %standard-phases
  144. (add-before 'check 'check-setup
  145. (lambda* (#:key inputs outputs #:allow-other-keys)
  146. (system "Xvfb :1 -screen 0 640x480x24 &")
  147. (setenv "DISPLAY" ":1")
  148. #t))
  149. (delete 'check)
  150. ;; Tests use the installed library and require a DBus session.
  151. (add-after 'install 'check
  152. (lambda* (#:key tests? #:allow-other-keys)
  153. (if tests?
  154. (begin
  155. (setenv "CTEST_OUTPUT_ON_FAILURE" "1")
  156. (invoke "dbus-launch" "ctest" ".")))
  157. #t)))))
  158. (native-inputs
  159. (list extra-cmake-modules pkg-config
  160. ;; For tests.
  161. dbus xorg-server-for-tests))
  162. (inputs
  163. `(("kcmutils" ,kcmutils)
  164. ("kcrash" ,kcrash)
  165. ("kdeclarative" ,kdeclarative)
  166. ("kglobalaccel" ,kglobalaccel)
  167. ("ki18n" ,ki18n)
  168. ("kidletime" ,kidletime)
  169. ("knotifications" ,knotifications)
  170. ("ktextwidgets" ,ktextwidgets)
  171. ("kwayland" ,kwayland)
  172. ("kwindowsystem" ,kwindowsystem)
  173. ("kxmlgui" ,kxmlgui)
  174. ("libseccomp" ,libseccomp) ;for sandboxing the look'n'feel package
  175. ("libxcursor" ,libxcursor) ;missing in CMakeList.txt
  176. ("libxi" ,libxi) ;XInput, required for grabbing XInput2 devices
  177. ("linux-pam" ,linux-pam)
  178. ("logind" ,elogind) ;optional loginctl support
  179. ("qtbase" ,qtbase-5)
  180. ("qtdeclarative" ,qtdeclarative)
  181. ("qtx11extras" ,qtx11extras)
  182. ("solid" ,solid)
  183. ("wayland" ,wayland)
  184. ("xcb-util-keysyms" ,xcb-util-keysyms)))
  185. (home-page "https://invent.kde.org/plasma/kscreenlocker")
  186. (synopsis "Screen locking library")
  187. (description
  188. "@code{kscreenlocker} is a library for creating secure lock screens.")
  189. (license license:gpl2+)))
  190. (define-public libkscreen
  191. (package
  192. (name "libkscreen")
  193. (version "5.19.5")
  194. (source
  195. (origin
  196. (method url-fetch)
  197. (uri (string-append "mirror://kde/stable/plasma/" version "/"
  198. name "-" version ".tar.xz"))
  199. (sha256
  200. (base32 "0rf1pm0yyc069f4n5s9ipdx4glzfr9zvv5cbrmn4q9i4v6z1qd8i"))))
  201. (build-system qt-build-system)
  202. (native-inputs
  203. (list extra-cmake-modules
  204. ;; For testing.
  205. dbus))
  206. (inputs
  207. (list kwayland libxrandr qtbase-5 qtx11extras))
  208. (arguments
  209. '(#:tests? #f)) ; FIXME: 55% tests passed, 5 tests failed out of 11
  210. (home-page "https://community.kde.org/Solid/Projects/ScreenManagement")
  211. (synopsis "KDE's screen management software")
  212. (description "KScreen is the new screen management software for KDE Plasma
  213. Workspaces which tries to be as magic and automatic as possible for users with
  214. basic needs and easy to configure for those who want special setups.")
  215. (license license:gpl2+)))
  216. (define-public libksysguard
  217. (package
  218. (name "libksysguard")
  219. (version "5.19.5")
  220. (source
  221. (origin
  222. (method url-fetch)
  223. (uri (string-append "mirror://kde//stable/plasma/" version
  224. "/libksysguard-" version ".tar.xz"))
  225. (sha256
  226. (base32 "1kd0h3p8bf9k5pqp0frhr81pa0yyrpkckg9zznirk9p1v88v7bfq"))))
  227. (native-inputs
  228. (list extra-cmake-modules pkg-config))
  229. (inputs
  230. `(("kconfigwidgets" ,kconfigwidgets)
  231. ("kiconthemes" ,kiconthemes)
  232. ("kwindowsystem" ,kwindowsystem)
  233. ("ki18n" ,ki18n)
  234. ("kauth" ,kauth)
  235. ("kcompletion" ,kcompletion)
  236. ("kconfig" ,kconfig)
  237. ("kcoreaddons" ,kcoreaddons)
  238. ("kdeclarative" ,kdeclarative)
  239. ("kglobalaccel" ,kglobalaccel)
  240. ("kio" ,kio)
  241. ("knewstuff" ,knewstuff)
  242. ("kwidgetsaddons" ,kwidgetsaddons)
  243. ("kservice" ,kservice)
  244. ("qtbase" ,qtbase-5)
  245. ("qtdeclarative" ,qtdeclarative)
  246. ("qtscript" ,qtscript)
  247. ("qtwebkit" ,qtwebkit)
  248. ("qtx11extras" ,qtx11extras)
  249. ("plasma" ,plasma-framework)
  250. ("zlib" ,zlib)))
  251. (build-system qt-build-system)
  252. (arguments
  253. (list #:configure-flags
  254. #~`(,(string-append "-DKDE_INSTALL_DATADIR="
  255. #$output "/share"))
  256. #:phases
  257. #~(modify-phases %standard-phases
  258. (add-before 'configure 'patch-cmakelists
  259. (lambda _
  260. ;; TODO: Verify: This should no longer be necessary, since
  261. ;; KF5AuthConfig.cmake.in contains this already.
  262. (substitute* "processcore/CMakeLists.txt"
  263. (("KAUTH_HELPER_INSTALL_DIR")
  264. "KDE_INSTALL_LIBEXECDIR"))))
  265. (replace 'check
  266. (lambda _
  267. ;; TODO: Fix this failing test-case
  268. (invoke "ctest" "-E" "processtest"))))))
  269. (home-page "https://userbase.kde.org/KSysGuard")
  270. (synopsis "Network enabled task and system monitoring")
  271. (description "KSysGuard can obtain information on system load and
  272. manage running processes. It obtains this information by interacting
  273. with a ksysguardd daemon, which may also run on a remote system.")
  274. (license license:gpl3+)))