summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHartmut Goebel <h.goebel@crazy-compilers.com>2017-11-01 13:20:44 +0100
committerHartmut Goebel <h.goebel@crazy-compilers.com>2021-01-31 15:32:11 +0100
commitcd6b3f8b500f59cb6678d9a0975d8cf8b2805f1a (patch)
treec78ef5365448d13f4f199040f906c29900a1e0f0
parentf6696fa9d5f1511dcaa339a38ad63f5654b50ba3 (diff)
gnu: Add plasma-desktop.
* gnu/packages/kde-plasma.scm (plasma-desktop): New variable.
-rw-r--r--gnu/packages/kde-plasma.scm156
1 files changed, 155 insertions, 1 deletions
diff --git a/gnu/packages/kde-plasma.scm b/gnu/packages/kde-plasma.scm
index 11b0b68fe1..14ee901940 100644
--- a/gnu/packages/kde-plasma.scm
+++ b/gnu/packages/kde-plasma.scm
@@ -29,6 +29,8 @@
#:use-module (guix build-system cmake)
#:use-module (guix build-system qt)
#:use-module (gnu packages)
+ #:use-module (gnu packages base)
+ #:use-module (gnu packages boost)
#:use-module (gnu packages compression)
#:use-module (gnu packages fontutils)
#:use-module (gnu packages freedesktop)
@@ -37,14 +39,16 @@
#:use-module (gnu packages gnome)
#:use-module (gnu packages gnupg)
#:use-module (gnu packages gtk)
+ #:use-module (gnu packages iso-codes)
#:use-module (gnu packages kde)
#:use-module (gnu packages kde-frameworks)
+ #:use-module (gnu packages libcanberra)
#:use-module (gnu packages linux)
- #:use-module (gnu packages iso-codes)
#:use-module (gnu packages networking)
#:use-module (gnu packages password-utils)
#:use-module (gnu packages perl)
#:use-module (gnu packages pkg-config)
+ #:use-module (gnu packages pulseaudio)
#:use-module (gnu packages qt)
#:use-module (gnu packages web)
#:use-module (gnu packages xdisorg)
@@ -575,6 +579,156 @@ manage running processes. It obtains this information by interacting
with a ksysguardd daemon, which may also run on a remote system.")
(license license:gpl3+)))
+(define-public plasma-desktop
+ (package
+ (name "plasma-desktop")
+ (version "5.19.5")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "mirror://kde/stable/plasma/" version
+ "/plasma-desktop-" version ".tar.xz"))
+ (sha256
+ (base32 "0w0snwgckz11gfwybjwf7wdb3cg366z3bqjrj5pnaf64xn0iqgn6"))))
+ (build-system qt-build-system)
+ (arguments
+ '(#:phases
+ (modify-phases %standard-phases
+ (add-after `unpack `fix-paths
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "kcms/dateandtime/helper.cpp"
+ ;; define path to bin/hwclock
+ ;; TODO: Rethink! NIX defines the path, but this leads to
+ ;; util-linux being an additional requirement. We can just
+ ;; leave this off and let KCM search $PATH
+ (("(^\\s*QString hwclock = )QStandardPaths::findExecutable.*" l prefix)
+ (string-append prefix "QLatin1String(\""
+ (assoc-ref inputs "util-linux")
+ "/bin/hwclock\");"))
+ ;; define path to zoneinfo
+ ;; TODO: nix also has a patch to honor $TZDIR
+ (("\"/usr/share/zoneinfo/\"")
+ (string-append "\"" (assoc-ref inputs "tzdata")
+ "/share/zoneinfo/\"")))
+ (substitute* "kcms/keyboard/iso_codes.h"
+ ;; define path to iso-codes
+ (("\"/usr/share/xml/iso-codes\"")
+ (string-append "\"" (assoc-ref inputs "iso-codes")
+ "/share/xml/iso-codes\"")))
+ #t))
+ (add-after 'unpack 'patch-qml-import-path
+ (lambda _
+ (substitute*
+ '("applets/pager/package/contents/ui/main.qml"
+ "containments/desktop/package/contents/ui/FolderView.qml"
+ "containments/desktop/package/contents/ui/main.qml"
+ "containments/panel/contents/ui/main.qml")
+ (("^import \"(utils|FolderTools|LayoutManager).js\" as " line mod)
+ (string-append "import \"../code/" mod ".js\" as ")))
+ #t))
+ (add-after 'unpack 'patch-includes
+ ;; TODO: Is this correct? Why do other distributions not need this?
+ (lambda _
+ (substitute*
+ '("kcms/touchpad/backends/x11/libinputtouchpad.cpp"
+ "kcms/touchpad/backends/x11/xlibbackend.cpp"
+ "kcms/touchpad/backends/x11/xlibtouchpad.cpp")
+ (("^#include <xserver-properties.h>")
+ "#include <xorg/xserver-properties.h>"))
+ #t))
+ ;; (delete 'check)
+ ;; (add-after 'install 'check
+ ;; (assoc-ref %standard-phases 'check))
+ (add-before 'check 'check-setup
+ (lambda* (#:key outputs #:allow-other-keys)
+ (setenv "HOME" (getcwd))
+ ;; (setenv "QT_PLUGIN_PATH"
+ ;; (string-append (assoc-ref outputs "out") "/lib/qt5/plugins:"
+ ;; (getenv "QT_PLUGIN_PATH")))
+ ;; The test 'keyboard-geometry_parser' queries for device
+ ;; information, for this it requires a running X server.
+ ;;(system "Xvfb :98 -screen 0 640x480x24 &")
+ ;;(setenv "DISPLAY" ":98")
+ (with-output-to-file "bin/BLACKLIST"
+ (lambda _
+ ;; test_kio_fonts - kcms/kfontinst/kio
+ ;; "URL cannot be listed: fonts://foo/System"
+ (display "[testDirLister]\n*\n")
+ ;; lookandfeel-kcmTest - kcms/lookandfeel
+ (display "[testWidgetStyle]\n*\n[testKCMSave]\n*\n")
+ ;; foldermodeltest - containments/desktop/plugins/folder
+ (display "[tst_rename]\n*\n")))
+ #t)))))
+ (native-inputs
+ `(("extra-cmake-modules" ,extra-cmake-modules)
+ ("dbus" ,dbus) ; required for running the tests
+ ("kdoctools" ,kdoctools)
+ ("pkg-config" ,pkg-config)))
+ (inputs
+ ;; TODO: Still some unknown property types, e.g for key "X-Plasma-API",
+ ;; "X-KDE-ParentApp", "X-Plasma-RemoteLocation", "X-Plasma-MainScript".
+ ;; TODO: Add more optional inputs: ibus-1.0, gio, gobject-2.0, scim, glib2
+ ;; TODO: "Recommended" input AppStreamQt. appstreamcli
+ `(("attica" ,attica)
+ ("baloo" ,baloo) ; recommended
+ ("boost" ,boost) ; optional
+ ("breeze" ,breeze)
+ ("eudev", eudev) ; optional
+ ("fontconfig" ,fontconfig) ;; package fontutils
+ ("iso-codes" ,iso-codes) ; for path-substitution (see phases), required for testing
+ ("kactivities" ,kactivities)
+ ("kactivities-stats" ,kactivities-stats)
+ ("kauth" ,kauth)
+ ("kcmutils" ,kcmutils)
+ ("kconfig" ,kconfig)
+ ("kdbusaddons" ,kdbusaddons)
+ ("kdeclarative" ,kdeclarative)
+ ("kded" ,kded) ; not checked in CmakeList
+ ("kdelibs4support" ,kdelibs4support)
+ ("kemoticons" ,kemoticons)
+ ("kglobalaccel" ,kglobalaccel)
+ ("ki18n" ,ki18n)
+ ("kirigami", kirigami) ;; ~~~runtime dependency~~
+ ("kitemmodels" ,kitemmodels)
+ ("knewstuff" ,knewstuff)
+ ("knotifications" ,knotifications)
+ ("knotifyconfig" ,knotifyconfig)
+ ("kpeople" ,kpeople)
+ ("krunner" ,krunner)
+ ("kscreenlocker" ,kscreenlocker)
+ ("kwallet" ,kwallet)
+ ("kwin" ,kwin)
+ ("libcanberra_kde" , libcanberra) ; optional
+ ("libksysguard" ,libksysguard)
+ ("libxkbcommon" ,libxkbcommon)
+ ("libxcursor", libxcursor) ; not checked in CMakelist
+ ("libxi" ,libxi) ;; X11-Xinput, for kcms/input/
+ ("libxft" ,libxft) ; feature
+ ("libxkbfile" ,libxkbfile)
+ ("libxtst", libxtst) ; not checked in CMakelist
+ ("phonon" ,phonon)
+ ("plasma-framework" ,plasma-framework)
+ ("plasma-workspace" ,plasma-workspace)
+ ("pulseaudio" ,pulseaudio) ; optional
+ ("qqc2-desktop-style" ,qqc2-desktop-style)
+ ("qtbase" ,qtbase)
+ ("qtdeclarative" ,qtdeclarative)
+ ("qtsvg" ,qtsvg)
+ ("qtx11extras" ,qtx11extras)
+ ("tzdata" ,tzdata) ; for path-substitution (see phases)
+ ("util-linux" ,util-linux) ; for path-substitution (see phases)
+ ("xcb-util" ,xcb-util)
+ ("xcb-util-image" ,xcb-util-image)
+ ("xf86-input-evdev" ,xf86-input-evdev)
+ ("xf86-input-libinput", xf86-input-libinput)
+ ("xf86-input-synaptics" ,xf86-input-synaptics)
+ ("xkeyboard-config" ,xkeyboard-config)
+ ("xorg-server" ,xorg-server))) ;; xserver-properties.h, not checked in CmakeList
+ (home-page "https://invent.kde.org/plasma/plasma-desktop")
+ (synopsis "Plasma 5 application workspace components")
+ (description "Tools and widgets for the desktop")
+ (license (list license:lgpl2.0+ license:gpl2+ license:fdl1.2+))))
+
(define-public plasma-wayland-protocols
(package
(name "plasma-wayland-protocols")