X-Git-Url: http://git.hcoop.net/jackhill/guix/guix.git/blobdiff_plain/2f57e34bf37a4920dd3c9a0d0bf6d06dda3d57eb..65e5e85d284ef78bc245b3779c7fcdc733ed60a7:/gnu/packages/display-managers.scm diff --git a/gnu/packages/display-managers.scm b/gnu/packages/display-managers.scm index 75eab48572..7e0218dbb7 100644 --- a/gnu/packages/display-managers.scm +++ b/gnu/packages/display-managers.scm @@ -5,7 +5,14 @@ ;;; Copyright © 2017 Ricardo Wurmus ;;; Copyright © 2017 Sou Bunnbu ;;; Copyright © 2017 Marius Bakke -;;; Copyright © 2017 Tobias Geerinckx-Rice +;;; Copyright © 2017, 2020 Tobias Geerinckx-Rice +;;; Copyright © 2020 L p R n d n +;;; Copyright © 2020 Fredrik Salomonsson +;;; Copyright © 2020 Vincent Legoll +;;; Copyright © 2021 Zheng Junjie <873216071@qq.com> +;;; Copyright © 2021 Efraim Flashner +;;; Copyright © 2021 Petr Hodina +;;; Copyright © 2022 Maxim Cournoyer ;;; ;;; This file is part of GNU Guix. ;;; @@ -26,13 +33,19 @@ #:use-module ((guix licenses) #:prefix license:) #:use-module (guix packages) #:use-module (guix download) + #:use-module (guix git-download) #:use-module (guix build-system cmake) #:use-module (guix build-system qt) #:use-module (guix build-system gnu) + #:use-module (guix build-system trivial) #:use-module (guix packages) #:use-module (guix utils) + #:use-module (guix gexp) #:use-module (gnu packages) + #:use-module (gnu packages autotools) #:use-module (gnu packages admin) + #:use-module (gnu packages base) + #:use-module (gnu packages bash) #:use-module (gnu packages fontutils) #:use-module (gnu packages freedesktop) #:use-module (gnu packages gl) @@ -53,7 +66,7 @@ (define-public sddm (package (name "sddm") - (version "0.18.1") + (version "0.19.0") (source (origin (method url-fetch) (uri (string-append @@ -62,52 +75,48 @@ "sddm-" version ".tar.xz")) (sha256 (base32 - "0nilrhwlyvkngjgxfc08n73c16azgmw80pvx0a78xqww9y3hv4xh")))) + "0hcdysw8ibr66vk8i7v56l0v5ijvhlq67v4460mc2xf2910g2m72")))) (build-system qt-build-system) (native-inputs - `(("extra-cmake-modules" ,extra-cmake-modules) - ("pkg-config" ,pkg-config) - ("qttools" ,qttools))) + (list extra-cmake-modules pkg-config qttools)) (inputs - `(("elogind" ,elogind) - ("glib" ,glib) - ("libxcb" ,libxcb) - ("libxkbcommon" ,libxkbcommon) - ("linux-pam" ,linux-pam) - ("qtbase" ,qtbase) - ("qtdeclarative" ,qtdeclarative) - - ;; Some user-defined themes use QtQuick components internally. Adding - ;; QtQuick & co. here; they end up in QML2_IMPORT_PATH thanks to - ;; 'wrap-qt-program'. - ("qtgraphicaleffects" ,qtgraphicaleffects) - ("qtquickcontrols" ,qtquickcontrols) - ("qtquickcontrols2" ,qtquickcontrols2) - ("qtsvg" ,qtsvg) - - ("shadow" ,shadow) - ("wayland" ,wayland))) + (list elogind + glib + libxcb + libxkbcommon + linux-pam + qtbase-5 + qtdeclarative-5 + ;; Some user-defined themes use QtQuick components internally. Adding + ;; QtQuick & co. here; they end up in QML2_IMPORT_PATH thanks to + ;; 'wrap-qt-program'. + qtgraphicaleffects + qtquickcontrols-5 + qtquickcontrols2 + qtsvg-5 + shadow + wayland)) (arguments `(#:configure-flags - (list - ;; This option currently does nothing, but will presumably be enabled - ;; if/when is merged. - "-DENABLE_WAYLAND=ON" - "-DENABLE_PAM=ON" - ;; Both flags are required for elogind support. - "-DNO_SYSTEMD=ON" "-DUSE_ELOGIND=ON" - "-DCONFIG_FILE=/etc/sddm.conf" - ;; Set path to /etc/login.defs. - ;; An alternative would be to use -DUID_MIN and -DUID_MAX. - (string-append "-DLOGIN_DEFS_PATH=" - (assoc-ref %build-inputs "shadow") - "/etc/login.defs") - (string-append "-DQT_IMPORTS_DIR=" - (assoc-ref %outputs "out") "/lib/qt5/qml") - (string-append "-DCMAKE_INSTALL_SYSCONFDIR=" - (assoc-ref %outputs "out") "/etc")) + ,#~(list + ;; This option currently does nothing, but will presumably be enabled + ;; if/when is merged. + "-DENABLE_WAYLAND=ON" + "-DENABLE_PAM=ON" + ;; Both flags are required for elogind support. + "-DNO_SYSTEMD=ON" "-DUSE_ELOGIND=ON" + "-DCONFIG_FILE=/etc/sddm.conf" + ;; Set path to /etc/login.defs. + ;; An alternative would be to use -DUID_MIN and -DUID_MAX. + (string-append "-DLOGIN_DEFS_PATH=" + #$(this-package-input "shadow") + "/etc/login.defs") + (string-append "-DQT_IMPORTS_DIR=" + #$output "/lib/qt5/qml") + (string-append "-DCMAKE_INSTALL_SYSCONFDIR=" + #$output "/etc")) #:phases - (modify-phases (@ (guix build qt-build-system) %standard-phases) + (modify-phases %standard-phases (add-after 'unpack 'embed-loginctl-reference (lambda _ (substitute* "CMakeLists.txt" @@ -122,103 +131,265 @@ create smooth, animated user interfaces.") ;; QML files are MIT licensed and images are CC BY 3.0. (license (list license:gpl2+ license:expat license:cc-by3.0)))) -(define-public lightdm +(define-public guix-simplyblack-sddm-theme (package - (name "lightdm") - (version "1.24.0") + (name "guix-simplyblack-sddm-theme") + (version "0.1") (source (origin - (method url-fetch) - (uri (string-append "https://launchpad.net/lightdm/" - (version-major+minor version) "/" - version "/+download/lightdm-" - version ".tar.xz")) + (method git-fetch) + (uri (git-reference + (url "https://github.com/plattfot/guix-simplyblack-sddm") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1fwny6b0xpjs8ad2b16pyxd27gf0sr0nillmhc2h5k0q7dva21vi")))) + (build-system trivial-build-system) + (arguments + `(#:modules ((guix build utils)) + #:builder + (begin + (use-modules (guix build utils)) + (let* ((out (assoc-ref %outputs "out")) + (sddm-themes (string-append out "/share/sddm/themes"))) + (mkdir-p sddm-themes) + (copy-recursively (assoc-ref %build-inputs "source") + (string-append sddm-themes "/guix-simplyblack-sddm")))))) + (home-page "https://github.com/plattfot/guix-simplyblack-sddm") + (synopsis "Guix based theme for SDDM") + (description + "This package provides a simple theme for SDDM, black background with +Guix's logo. Based on Arch linux's archlinux-simplyblack theme.") + ;; Theme under cc-by-sa3.0, guix logo under license:cc-by-sa4.0 + (license (list license:cc-by-sa3.0 license:cc-by-sa4.0)))) + +(define-public chili-sddm-theme + (package + (name "chili-sddm-theme") + (version "0.1.5") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/MarianArlt/sddm-chili") + (commit version))) + (file-name (git-file-name name version)) (sha256 (base32 - "18j33bm54i8k7ncxcs69zqi4105s62n58jrydqn3ikrb71s9nl6d")))) - (build-system gnu-build-system) + "036fxsa7m8ymmp3p40z671z163y6fcsa9a641lrxdrw225ssq5f3")))) + (build-system trivial-build-system) (arguments - '(#:parallel-tests? #f ; fails when run in parallel - #:configure-flags - (list "--localstatedir=/var") - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'fix-paths - (lambda _ - (substitute* "src/shared-data-manager.c" - (("/bin/rm") (which "rm"))) - (substitute* '("data/users.conf" - "common/user-list.c") - (("/bin/false") (which "false")) - (("/usr/sbin/nologin") (which "nologin"))) - (substitute* "src/seat.c" - (("/bin/sh") (which "sh"))) - #t)) - (add-after 'unpack 'disable-broken-tests - (lambda _ - (substitute* "tests/Makefile.in" - (("test-sessions-gobject ") "") - ((" test-sessions-python ") " ")) - #t)) - (add-before 'check 'pre-check - ;; Run test-suite under a dbus session. - (lambda* (#:key inputs #:allow-other-keys) - (wrap-program "tests/src/test-python-greeter" - `("PYTHONPATH" ":" prefix (,(getenv "PYTHONPATH"))) - `("GI_TYPELIB_PATH" ":" prefix (,(getenv "GI_TYPELIB_PATH")))) + `(#:modules ((guix build utils)) + #:builder + (begin + (use-modules (guix build utils)) + (let* ((out (assoc-ref %outputs "out")) + (sddm-themes (string-append out "/share/sddm/themes"))) + (mkdir-p sddm-themes) + (copy-recursively (assoc-ref %build-inputs "source") + (string-append sddm-themes "/chili")))))) + (home-page "https://github.com/MarianArlt/sddm-chili") + (synopsis "Chili theme for SDDM") + (description "Chili reduces all the clutter and leaves you with a clean, +easy to use, login interface with a modern yet classy touch.") + (license license:gpl3+))) - ;; Avoid printing locale warnings, which trip up the text - ;; matching tests. - (unsetenv "LC_ALL") - #t))))) - (inputs - `(("audit" ,audit) - ("linux-pam" ,linux-pam) - ("shadow" ,shadow) ;for sbin/nologin - ("libgcrypt" ,libgcrypt) - ("libxcb" ,libxcb))) - (native-inputs - `(("gobject-introspection" ,gobject-introspection) - ("pkg-config" ,pkg-config) - ("itstool" ,itstool) - ("intltool" ,intltool) - ;; For tests - ("dbus" ,dbus) - ("python" ,python-2) - ("python-pygobject" ,python2-pygobject))) - ;; Required by liblightdm-gobject-1.pc. - (propagated-inputs - `(("glib" ,glib) - ("libx11" ,libx11) - ("libxklavier" ,libxklavier))) - (home-page "https://www.freedesktop.org/wiki/Software/LightDM/") - (synopsis "Lightweight display manager") - (description "The Light Display Manager (LightDM) is a cross-desktop -display manager which supports different greeters.") +(define-public sugar-dark-sddm-theme + (package + (name "sugar-dark-sddm-theme") + (version "1.2") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/MarianArlt/sddm-sugar-dark") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0gx0am7vq1ywaw2rm1p015x90b75ccqxnb1sz3wy8yjl27v82yhb")))) + (build-system trivial-build-system) + (arguments + `(#:modules ((guix build utils)) + #:builder + (begin + (use-modules (guix build utils)) + (let* ((out (assoc-ref %outputs "out")) + (sddm-themes (string-append out "/share/sddm/themes"))) + (mkdir-p sddm-themes) + (copy-recursively (assoc-ref %build-inputs "source") + (string-append sddm-themes "/chili")))))) + (home-page "https://github.com/MarianArlt/sddm-sugar-dark") + (synopsis "Sugar dark theme for SDDM") + (description "Sugar is extremely customizable and so sweet it will +probably cause you diabetes just from looking at it. Sweeten the login +experience for your users, your family and yourself") (license license:gpl3+))) +(define-public sugar-light-sddm-theme + (package + (name "sugar-light-sddm-theme") + (version "1.0") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/MarianArlt/sddm-sugar-light") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1sfd5bi5jcfz3hmvvr3smalywixa70g5j96qgx1220mp6rqf886k")))) + (build-system trivial-build-system) + (arguments + `(#:modules ((guix build utils)) + #:builder + (begin + (use-modules (guix build utils)) + (let* ((out (assoc-ref %outputs "out")) + (sddm-themes (string-append out "/share/sddm/themes"))) + (mkdir-p sddm-themes) + (copy-recursively (assoc-ref %build-inputs "source") + (string-append sddm-themes "/chili")))))) + (home-page "https://github.com/MarianArlt/sddm-sugar-light") + (synopsis "Sugar light theme for SDDM") + (description "Sugar is extremely customizable and so sweet it will +probably cause you diabetes just from looking at it. Sweeten the login +experience for your users, your family and yourself") + (license license:gpl3+))) + +(define-public lightdm + ;; Use the latest commit, as the current official release doesn't build with + ;; glib >= 2.33. + (let ((revision "0") + (commit "b7fc3214cbaed09c73e963847443a0d648dfd896")) + (package + (name "lightdm") + (version (git-version "1.30.0" revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/canonical/lightdm") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0378jacazpmdgdjkiilk3mbikz3iysb4s9q40hg9zv4yngwsix1m")))) + (build-system gnu-build-system) + (arguments + '(#:parallel-tests? #f ; fails when run in parallel + #:configure-flags + (list "--localstatedir=/var" + ;; Otherwise the test suite fails on such a warning. + "CFLAGS=-Wno-error=missing-prototypes") + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'fix-paths + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "src/shared-data-manager.c" + (("/bin/rm") + (search-input-file inputs "bin/rm"))) + (substitute* '("data/users.conf" + "common/user-list.c") + (("/bin/false") + (search-input-file inputs "bin/false")) + (("/usr/sbin/nologin") + (search-input-file inputs "sbin/nologin"))) + (substitute* "src/seat.c" + (("/bin/sh") + (search-input-file inputs "bin/sh"))))) + (add-before 'check 'pre-check + ;; Run test-suite under a dbus session. + (lambda _ + (wrap-program "tests/src/test-python-greeter" + `("GUIX_PYTHONPATH" ":" prefix (,(getenv "GUIX_PYTHONPATH"))) + `("GI_TYPELIB_PATH" ":" prefix (,(getenv "GI_TYPELIB_PATH")))) + + ;; Avoid printing locale warnings, which trip up the text + ;; matching tests. + (unsetenv "LC_ALL")))))) + (inputs + (list audit + coreutils ;for cross-compilation + linux-pam + shadow ;for sbin/nologin + libgcrypt + libxcb)) + (native-inputs + (list autoconf + automake + gobject-introspection + gtk-doc + pkg-config + itstool + intltool + libtool + vala ;for Vala bindings + ;; For tests + dbus + python-wrapper + python-pygobject + which + yelp-tools)) + ;; Required by liblightdm-gobject-1.pc. + (propagated-inputs + (list glib libx11 libxklavier)) + (home-page "https://www.freedesktop.org/wiki/Software/LightDM/") + (synopsis "Lightweight display manager") + (description "The Light Display Manager (LightDM) is a cross-desktop +display manager which supports different greeters.") + (license license:gpl3+)))) + (define-public lightdm-gtk-greeter (package (name "lightdm-gtk-greeter") - (version "2.0.2") + (version "2.0.8") (source (origin (method url-fetch) (uri (string-append - "https://launchpad.net/lightdm-gtk-greeter/" - (version-major+minor version) "/" version - "/+download/lightdm-gtk-greeter-" version ".tar.gz")) + "https://github.com/xubuntu/lightdm-gtk-greeter" + "/releases/download/lightdm-gtk-greeter-" version "/" + "lightdm-gtk-greeter-" version ".tar.gz")) (sha256 (base32 - "1436sdm83xqhxyr1rzqxhsl8if2xmidlvb341xcv6dv83lyxkrlf")))) + "04q62mvr97l9gv8h37hfarygqc7p0498ig7xclcg4kxkqw0b7yxy")))) (build-system gnu-build-system) + (arguments + `(#:configure-flags + (list (string-append "--enable-at-spi-command=" + (assoc-ref %build-inputs "at-spi2-core") + "/libexec/at-spi-bus-launcher")) + #:phases + (modify-phases %standard-phases + (add-after 'install 'fix-.desktop-file + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (substitute* (string-append + out "/share/xgreeters/lightdm-gtk-greeter.desktop") + (("Exec=lightdm-gtk-greeter") + (string-append "Exec=" out "/sbin/lightdm-gtk-greeter"))) + #t))) + (add-after 'fix-.desktop-file 'wrap-program + ;; Mimic glib-or-gtk build system + ;; which doesn't wrap files in /sbin + (lambda* (#:key outputs inputs #:allow-other-keys) + (let ((gtk (assoc-ref inputs "gtk+"))) + (wrap-program (string-append (assoc-ref outputs "out") + "/sbin/lightdm-gtk-greeter") + `("XDG_DATA_DIRS" ":" prefix + ,(cons "/run/current-system/profile/share" + (map (lambda (pkg) + (string-append (assoc-ref inputs pkg) "/share")) + '("gtk+" "shared-mime-info" "glib")))) + `("GTK_PATH" ":" prefix (,gtk)) + `("GIO_EXTRA_MODULES" ":" prefix (,gtk)))) + #t))))) (native-inputs - `(("exo" ,exo) - ("intltool" ,intltool) - ("pkg-config" ,pkg-config))) + (list exo intltool pkg-config xfce4-dev-tools)) (inputs - `(("lightdm" ,lightdm) + `(("bash" ,bash-minimal) ; for wrap-program + ("lightdm" ,lightdm) + ("shared-mime-info" ,shared-mime-info) + ("at-spi2-core" ,at-spi2-core) ("gtk+" ,gtk+))) (synopsis "GTK+ greeter for LightDM") - (home-page "https://launchpad.net/lightdm-gtk-greeter") + (home-page "https://github.com/xubuntu/lightdm-gtk-greeter") (description "This package provides a LightDM greeter implementation using GTK+, lets you select a desktop session and log in to it.") (license license:gpl3+))) @@ -244,7 +415,7 @@ GTK+, lets you select a desktop session and log in to it.") (build-system cmake-build-system) (inputs `(("linux-pam" ,linux-pam) ("libpng" ,libpng) - ("libjpeg" ,libjpeg) + ("libjpeg" ,libjpeg-turbo) ("freeglut" ,freeglut) ("libxrandr" ,libxrandr) ("libxrender" ,libxrender) @@ -255,7 +426,7 @@ GTK+, lets you select a desktop session and log in to it.") ("libxmu" ,libxmu) ("xauth" ,xauth))) (native-inputs - `(("pkg-config" ,pkg-config))) + (list pkg-config)) (arguments '(#:phases (modify-phases %standard-phases