123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283 |
- ;;; 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.
- ;;;
- ;;; GNU Guix is free software; you can redistribute it and/or modify it
- ;;; under the terms of the GNU General Public License as published by
- ;;; the Free Software Foundation; either version 3 of the License, or (at
- ;;; your option) any later version.
- ;;;
- ;;; GNU Guix is distributed in the hope that it will be useful, but
- ;;; WITHOUT ANY WARRANTY; without even the implied warranty of
- ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- ;;; GNU General Public License for more details.
- ;;;
- ;;; You should have received a copy of the GNU General Public License
- ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
- (define-module (gnu packages kde-plasma)
- #:use-module (guix packages)
- #:use-module (guix download)
- #:use-module ((guix licenses) #:prefix license:)
- #:use-module (guix gexp)
- #: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
- (list extra-cmake-modules pkg-config))
- (inputs
- (list kcmutils ; optional
- kconfigwidgets
- kcoreaddons
- kde-frameworkintegration ; optional
- kdecoration
- kguiaddons
- ki18n
- kiconthemes ; for optional kde-frameworkintegration
- kpackage
- kwayland ; optional
- kwindowsystem
- qtbase-5
- qtdeclarative ; optional
- 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
- (list extra-cmake-modules))
- (inputs
- (list ki18n qtbase-5))
- (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
- (list extra-cmake-modules kdoctools))
- (inputs
- (list kcoreaddons ki18n kwallet kwidgetsaddons qtbase-5))
- (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 "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
- (list extra-cmake-modules pkg-config
- ;; For tests.
- dbus 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-5)
- ("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.19.5")
- (source
- (origin
- (method url-fetch)
- (uri (string-append "mirror://kde/stable/plasma/" version "/"
- name "-" version ".tar.xz"))
- (sha256
- (base32 "0rf1pm0yyc069f4n5s9ipdx4glzfr9zvv5cbrmn4q9i4v6z1qd8i"))))
- (build-system qt-build-system)
- (native-inputs
- (list extra-cmake-modules
- ;; For testing.
- dbus))
- (inputs
- (list kwayland libxrandr qtbase-5 qtx11extras))
- (arguments
- '(#: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
- Workspaces which tries to be as magic and automatic as possible for users with
- basic needs and easy to configure for those who want special setups.")
- (license license:gpl2+)))
- (define-public libksysguard
- (package
- (name "libksysguard")
- (version "5.19.5")
- (source
- (origin
- (method url-fetch)
- (uri (string-append "mirror://kde//stable/plasma/" version
- "/libksysguard-" version ".tar.xz"))
- (sha256
- (base32 "1kd0h3p8bf9k5pqp0frhr81pa0yyrpkckg9zznirk9p1v88v7bfq"))))
- (native-inputs
- (list extra-cmake-modules pkg-config))
- (inputs
- `(("kconfigwidgets" ,kconfigwidgets)
- ("kiconthemes" ,kiconthemes)
- ("kwindowsystem" ,kwindowsystem)
- ("ki18n" ,ki18n)
- ("kauth" ,kauth)
- ("kcompletion" ,kcompletion)
- ("kconfig" ,kconfig)
- ("kcoreaddons" ,kcoreaddons)
- ("kdeclarative" ,kdeclarative)
- ("kglobalaccel" ,kglobalaccel)
- ("kio" ,kio)
- ("knewstuff" ,knewstuff)
- ("kwidgetsaddons" ,kwidgetsaddons)
- ("kservice" ,kservice)
- ("qtbase" ,qtbase-5)
- ("qtdeclarative" ,qtdeclarative)
- ("qtscript" ,qtscript)
- ("qtwebkit" ,qtwebkit)
- ("qtx11extras" ,qtx11extras)
- ("plasma" ,plasma-framework)
- ("zlib" ,zlib)))
- (build-system qt-build-system)
- (arguments
- (list #:configure-flags
- #~`(,(string-append "-DKDE_INSTALL_DATADIR="
- #$output "/share"))
- #:phases
- #~(modify-phases %standard-phases
- (add-before 'configure 'patch-cmakelists
- (lambda _
- ;; TODO: Verify: This should no longer be necessary, since
- ;; KF5AuthConfig.cmake.in contains this already.
- (substitute* "processcore/CMakeLists.txt"
- (("KAUTH_HELPER_INSTALL_DIR")
- "KDE_INSTALL_LIBEXECDIR"))))
- (replace 'check
- (lambda _
- ;; TODO: Fix this failing test-case
- (invoke "ctest" "-E" "processtest"))))))
- (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
- with a ksysguardd daemon, which may also run on a remote system.")
- (license license:gpl3+)))
|