gnu: emacspeak: Fix Tclx and espeak server loading.
[jackhill/guix/guix.git] / gnu / packages / kde-plasma.scm
index ff6fa64..c64d8ae 100644 (file)
@@ -1,6 +1,10 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2016 Thomas Danckaert <post@thomasdanckaert.be>
 ;;; Copyright © 2018 Meiyo Peng <meiyo.peng@gmail.com>
+;;; Copyright © 2019 Marius Bakke <mbakke@fastmail.com>
+;;; Copyright © 2017, 2019, 2020 Hartmut Goebel <h.goebel@crazy-compilers.com>
+;;; Copyright © 2019 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2020 Zheng Junjie <873216071@qq.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
   #:use-module (guix download)
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix build-system cmake)
+  #:use-module (guix build-system qt)
   #:use-module (gnu packages compression)
+  #:use-module (gnu packages freedesktop)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages kde-frameworks)
+  #:use-module (gnu packages linux)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages qt)
   #:use-module (gnu packages xorg))
 
+(define-public breeze
+  (package
+    (name "breeze")
+    (version "5.19.5")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://kde/stable/plasma/" version "/"
+                                  name "-" version ".tar.xz"))
+              (sha256
+               (base32
+                "0dpk1w7zcafrzf46j060i1qb0fwqpsflkfzr6gcar81llmjnc4b1"))))
+    (build-system qt-build-system)
+    ;; TODO: Warning at /gnu/store/…-kpackage-5.34.0/…/KF5PackageMacros.cmake:
+    ;;   warnings during generation of metainfo for org.kde.breezedark.desktop:
+    ;;   Package type "Plasma/LookAndFeel" not found
+    ;; TODO: Check whether is makes sence splitting into several outputs, like
+    ;; Debian does:
+    ;; - breeze-cursor-theme
+    ;; - "out", "devel"
+    ;; - kde-style-breeze - Widget style
+    ;; - kde-style-breeze-qt4 - propably not useful
+    ;; - kwin-style-breeze
+    ;; - qml-module-qtquick-controls-styles-breeze - QtQuick style
+    (native-inputs
+     `(("extra-cmake-modules" ,extra-cmake-modules)
+       ("pkg-config" ,pkg-config)))
+    (inputs
+     `(("kcmutils" ,kcmutils) ; optional
+       ("kconfigwidgets" ,kconfigwidgets)
+       ("kcoreaddons" ,kcoreaddons)
+       ("kde-frameworkintegration" ,kde-frameworkintegration) ; optional
+       ("kdecoration" ,kdecoration)
+       ("kguiaddons" ,kguiaddons)
+       ("ki18n" ,ki18n)
+       ("kiconthemes" ,kiconthemes) ; for optional kde-frameworkintegration
+       ("kpackage" ,kpackage)
+       ("kwayland" ,kwayland) ; optional
+       ("kwindowsystem" ,kwindowsystem)
+       ("qtbase" ,qtbase)
+       ("qtdeclarative" ,qtdeclarative) ; optional
+       ("qtx11extras" ,qtx11extras)))
+    (home-page "https://invent.kde.org/plasma/breeze")
+    (synopsis "Default KDE Plasma theme")
+    (description "Artwork, styles and assets for the Breeze visual style for
+the Plasma Desktop.  Breeze is the default theme for the KDE Plasma desktop.")
+    (license license:gpl2+)))
+
+(define-public kdecoration
+  (package
+    (name "kdecoration")
+    (version "5.19.5")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://kde/stable/plasma/" version
+                                  "/kdecoration-" version ".tar.xz"))
+              (sha256
+               (base32
+                "0pn8n7zyb0adzjnn92vmbcf7pmpss60k9k1rk5llamj016xzfgnf"))))
+    (build-system qt-build-system)
+    (native-inputs
+     `(("extra-cmake-modules" ,extra-cmake-modules)))
+    (inputs
+     `(("ki18n" ,ki18n)
+       ("qtbase" ,qtbase)))
+    (home-page "https://invent.kde.org/plasma/kdecoration")
+    (synopsis "Plugin based library to create window decorations")
+    (description "KDecoration is a library to create window decorations.
+These window decorations can be used by for example an X11 based window
+manager which re-parents a Client window to a window decoration frame.")
+    (license license:lgpl3+)))
+
+(define-public ksshaskpass
+  (package
+    (name "ksshaskpass")
+    (version "5.19.5")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://kde/stable/plasma/" version
+                                  "/ksshaskpass-" version ".tar.xz"))
+              (sha256
+               (base32
+                "1k2va2v9051f71w78dn3gihk642iyy5yzrkcfnp97fag8g6dpisi"))))
+    (build-system qt-build-system)
+    (native-inputs
+     `(("extra-cmake-modules" ,extra-cmake-modules)
+       ("kdoctools" ,kdoctools)))
+    (inputs
+     `(("kcoreaddons" ,kcoreaddons)
+       ("ki18n" ,ki18n)
+       ("kwallet" ,kwallet)
+       ("kwidgetsaddons" ,kwidgetsaddons)
+       ("qtbase" ,qtbase)))
+    (home-page "https://invent.kde.org/plasma/ksshaskpass")
+    (synopsis "Front-end for ssh-add using kwallet")
+    (description "Ksshaskpass is a front-end for @code{ssh-add} which stores the
+password of the ssh key in KWallet.  Ksshaskpass is not meant to be executed
+directly, you need to tell @code{ssh-add} about it.  @code{ssh-add} will then
+call it if it is not associated to a terminal.")
+    (license license:gpl2+)))
+
+(define-public kscreenlocker
+  (package
+    (name "kscreenlocker")
+    (version "5.19.5")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://kde/stable/plasma/" version
+                                  "/kscreenlocker-" version ".tar.xz"))
+              (sha256
+               (base32
+                "1fd5sqaqx9kj3kr0bgxpllhcm5arf8bc9pkpd9yk9c8xjy0j0fxi"))))
+    (build-system qt-build-system)
+    (arguments
+     `(#:tests? #f ;; TODO: make tests pass
+       #:phases
+       (modify-phases %standard-phases
+         (add-before 'check 'check-setup
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (system (string-append (assoc-ref inputs "xorg-server")
+                                   "/bin/Xvfb :1 -screen 0 640x480x24 &"))
+             (setenv "DISPLAY" ":1")
+             #t))
+         (delete 'check)
+         ;; Tests use the installed library and require a DBus session.
+         (add-after 'install 'check
+           (lambda* (#:key tests? #:allow-other-keys)
+             (if tests?
+                 (begin
+                   (setenv "CTEST_OUTPUT_ON_FAILURE" "1")
+                   (invoke "dbus-launch" "ctest" ".")))
+             #t)))))
+    (native-inputs
+     `(("extra-cmake-modules" ,extra-cmake-modules)
+       ("pkg-config" ,pkg-config)
+       ;; For tests.
+       ("dbus" ,dbus)
+       ("xorg-server" ,xorg-server-for-tests)))
+    (inputs
+     `(("kcmutils" ,kcmutils)
+       ("kcrash" ,kcrash)
+       ("kdeclarative" ,kdeclarative)
+       ("kglobalaccel" ,kglobalaccel)
+       ("ki18n" ,ki18n)
+       ("kidletime" ,kidletime)
+       ("knotifications" ,knotifications)
+       ("ktextwidgets" ,ktextwidgets)
+       ("kwayland" ,kwayland)
+       ("kwindowsystem" ,kwindowsystem)
+       ("kxmlgui" ,kxmlgui)
+       ("libseccomp" ,libseccomp) ;for sandboxing the look'n'feel package
+       ("libxcursor" ,libxcursor) ;missing in CMakeList.txt
+       ("libxi" ,libxi)           ;XInput, required for grabbing XInput2 devices
+       ("linux-pam" ,linux-pam)
+       ("logind" ,elogind)        ;optional loginctl support
+       ("qtbase" ,qtbase)
+       ("qtdeclarative" ,qtdeclarative)
+       ("qtx11extras" ,qtx11extras)
+       ("solid" ,solid)
+       ("wayland" ,wayland)
+       ("xcb-util-keysyms" ,xcb-util-keysyms)))
+    (home-page "https://invent.kde.org/plasma/kscreenlocker")
+    (synopsis "Screen locking library")
+    (description
+     "@code{kscreenlocker} is a library for creating secure lock screens.")
+    (license license:gpl2+)))
+
 (define-public libkscreen
   (package
     (name "libkscreen")
-    (version "5.14.5")
+    (version "5.19.5")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://kde/stable/plasma/" version "/"
                            name "-" version ".tar.xz"))
        (sha256
-        (base32 "1vyaml5ap9siw9idiny92li2bykd0nwjsmwmg0c7ad912j4g1s7y"))))
-    (build-system cmake-build-system)
+        (base32 "0rf1pm0yyc069f4n5s9ipdx4glzfr9zvv5cbrmn4q9i4v6z1qd8i"))))
+    (build-system qt-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)
        ;; For testing.
        ("qtbase" ,qtbase)
        ("qtx11extras" ,qtx11extras)))
     (arguments
-     '(#:tests? #f         ; FIXME: 55% tests passed, 5 tests failed out of 11
-       #:phases
-       (modify-phases %standard-phases
-         (add-before 'check 'pre-check
-           (lambda _
-             ;; For the missing '/etc/machine-id'.
-             (setenv "DBUS_FATAL_WARNINGS" "0")
-             ;; Run the tests offscreen.
-             (setenv "QT_QPA_PLATFORM" "offscreen")
-             #t)))))
+     '(#:tests? #f)) ; FIXME: 55% tests passed, 5 tests failed out of 11
     (home-page "https://community.kde.org/Solid/Projects/ScreenManagement")
     (synopsis "KDE's screen management software")
     (description "KScreen is the new screen management software for KDE Plasma
@@ -71,15 +235,14 @@ basic needs and easy to configure for those who want special setups.")
 (define-public libksysguard
   (package
     (name "libksysguard")
-    (version "5.14.5")
+    (version "5.19.5")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://kde//stable/plasma/" version
                            "/libksysguard-" version ".tar.xz"))
        (sha256
-        (base32
-         "11nz0g7dqvpvgsv0a7sai445vgfsfi25plj7jb1i46n7zf8i8mya"))))
+        (base32 "1kd0h3p8bf9k5pqp0frhr81pa0yyrpkckg9zznirk9p1v88v7bfq"))))
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)
        ("pkg-config" ,pkg-config)))
@@ -92,17 +255,20 @@ basic needs and easy to configure for those who want special setups.")
        ("kcompletion" ,kcompletion)
        ("kconfig" ,kconfig)
        ("kcoreaddons" ,kcoreaddons)
+       ("kdeclarative" ,kdeclarative)
        ("kglobalaccel" ,kglobalaccel)
        ("kio" ,kio)
+       ("knewstuff" ,knewstuff)
        ("kwidgetsaddons" ,kwidgetsaddons)
        ("kservice" ,kservice)
        ("qtbase" ,qtbase)
+       ("qtdeclarative" ,qtdeclarative)
        ("qtscript" ,qtscript)
        ("qtwebkit" ,qtwebkit)
        ("qtx11extras" ,qtx11extras)
        ("plasma" ,plasma-framework)
        ("zlib" ,zlib)))
-    (build-system cmake-build-system)
+    (build-system qt-build-system)
     (arguments
      `(#:configure-flags
        `(,(string-append "-DKDE_INSTALL_DATADIR="
@@ -115,15 +281,11 @@ basic needs and easy to configure for those who want special setups.")
              ;; KF5AuthConfig.cmake.in contains this already.
              (substitute* "processcore/CMakeLists.txt"
                (("KAUTH_HELPER_INSTALL_DIR") "KDE_INSTALL_LIBEXECDIR"))))
-         (add-before 'check 'check-setup
-           (lambda _
-             ;; make Qt render "offscreen", required for tests
-             (setenv "QT_QPA_PLATFORM" "offscreen")))
          (replace 'check
            (lambda _
              ;; TODO: Fix this failing test-case
              (invoke "ctest" "-E" "processtest"))))))
-    (home-page "https://www.kde.org/info/plasma-5.13.4.php")
+    (home-page "https://userbase.kde.org/KSysGuard")
     (synopsis "Network enabled task and system monitoring")
     (description "KSysGuard can obtain information on system load and
 manage running processes.  It obtains this information by interacting