Message ID | 20211123202510.14090-1-dev@jpoiret.xyz |
---|---|
State | Accepted |
Headers | show |
Series | [bug#52065,core-updates-frozen] gnu: gdm: Pass GDK_PIXBUF_MODULE_FILE to sessions. | expand |
Context | Check | Description |
---|---|---|
cbaines/applying patch | fail | View Laminar job |
cbaines/issue | success | View issue |
Hello Josselin, Josselin Poiret <dev@jpoiret.xyz> writes: > Hello, > > This patch should fix GDM not showing svg icons, most notably the peek > password one on the login prompt. > > Best, > Josselin > > -- >8 -- > * gnu/packages/patches/gdm-pass-gdk-pixbuf-loader-env.patch: Add > patch. > * gnu/local.mk (dist_patch_DATA): List it. > * gnu/packages/gnome.scm (gdm): Use it. > * gnu/services/xorg.scm (gdm-shepherd-service): Pass > GDK_PIXBUF_MODULE_FILE. Thank you so much for tackling this! [...] > diff --git a/gnu/services/xorg.scm b/gnu/services/xorg.scm > index 0735d777bd..3abee8694a 100644 > --- a/gnu/services/xorg.scm > +++ b/gnu/services/xorg.scm > @@ -1004,6 +1004,10 @@ (define (gdm-shepherd-service config) > ;; cursors. gdm doesn't login so doesn't source > ;; the corresponding line in /etc/profile. > "XCURSOR_PATH=/run/current-system/profile/share/icons" > + (string-append > + "GDK_PIXBUF_MODULE_FILE=" > + #$gnome-shell > + "/lib/gdk-pixbuf-2.0/2.10.0/loaders.cache") > (string-append > "GDM_WAYLAND_SESSION=" > #$(gdm-configuration-wayland-session config)))))) I've modified the above slightly like so: --8<---------------cut here---------------start------------->8--- @@ -49,6 +49,7 @@ (define-module (gnu services xorg) #:use-module (gnu packages admin) #:use-module (gnu packages bash) #:use-module (gnu system shadow) + #:use-module (guix build-system glib-or-gtk) #:use-module (guix build-system trivial) #:use-module (guix gexp) #:use-module (guix store) @@ -1004,6 +1005,9 @@ (define (gdm-shepherd-service config) ;; cursors. gdm doesn't login so doesn't source ;; the corresponding line in /etc/profile. "XCURSOR_PATH=/run/current-system/profile/share/icons" + (string-append + "GDK_PIXBUF_MODULE_FILE=" + #$gnome-shell "/" #$%gdk-pixbuf-loaders-cache-file) (string-append "GDM_WAYLAND_SESSION=" #$(gdm-configuration-wayland-session config)))))) --8<---------------cut here---------------end--------------->8--- To avoid hard coding the path. I tested it in a VM with --8<---------------cut here---------------start------------->8--- ./pre-inst-env guix system vm gnu/system/examples/desktop.tmpl --8<---------------cut here---------------end--------------->8--- It all looked good, so I push as commit c3fd310d8f9ab0b5ae0b23bf6a6c67e5e25cc135. Thank you! Maxim
diff --git a/gnu/local.mk b/gnu/local.mk index 351c81bb3a..fe86c635c1 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1114,6 +1114,7 @@ dist_patch_DATA = \ %D%/packages/patches/gdm-elogind-support.patch \ %D%/packages/patches/gdm-remove-hardcoded-xwayland-path.patch \ %D%/packages/patches/gdm-wayland-session-wrapper-from-env.patch \ + %D%/packages/patches/gdm-pass-gdk-pixbuf-loader-env.patch \ %D%/packages/patches/genimage-mke2fs-test.patch \ %D%/packages/patches/geoclue-config.patch \ %D%/packages/patches/ghc-8.0-fall-back-to-madv_dontneed.patch \ diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 40f49a44db..6d56d04915 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -8367,7 +8367,8 @@ (define-public gdm "gdm-default-session.patch" "gdm-elogind-support.patch" "gdm-remove-hardcoded-xwayland-path.patch" - "gdm-wayland-session-wrapper-from-env.patch")))) + "gdm-wayland-session-wrapper-from-env.patch" + "gdm-pass-gdk-pixbuf-loader-env.patch")))) (build-system meson-build-system) (arguments `(#:glib-or-gtk? #t diff --git a/gnu/packages/patches/gdm-pass-gdk-pixbuf-loader-env.patch b/gnu/packages/patches/gdm-pass-gdk-pixbuf-loader-env.patch new file mode 100644 index 0000000000..4341e3fc30 --- /dev/null +++ b/gnu/packages/patches/gdm-pass-gdk-pixbuf-loader-env.patch @@ -0,0 +1,24 @@ +From 444250fce55f916af993bc855930c6809686e4bd Mon Sep 17 00:00:00 2001 +From: Josselin Poiret <dev@jpoiret.xyz> +Date: Tue, 23 Nov 2021 18:39:39 +0000 +Subject: [PATCH] Make GDM pass GDK_PIXBUF_MODULE_FILE to sessions + +--- + daemon/gdm-launch-environment.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/daemon/gdm-launch-environment.c b/daemon/gdm-launch-environment.c +index 14ecfac2..3e618321 100644 +--- a/daemon/gdm-launch-environment.c ++++ b/daemon/gdm-launch-environment.c +@@ -158,6 +158,7 @@ build_launch_environment (GdmLaunchEnvironment *launch_environment, + "WINDOWPATH", + "XCURSOR_PATH", + "XDG_CONFIG_DIRS", ++ "GDK_PIXBUF_MODULE_FILE", + NULL + }; + char *system_data_dirs; +-- +2.33.1 + diff --git a/gnu/services/xorg.scm b/gnu/services/xorg.scm index 0735d777bd..3abee8694a 100644 --- a/gnu/services/xorg.scm +++ b/gnu/services/xorg.scm @@ -1004,6 +1004,10 @@ (define (gdm-shepherd-service config) ;; cursors. gdm doesn't login so doesn't source ;; the corresponding line in /etc/profile. "XCURSOR_PATH=/run/current-system/profile/share/icons" + (string-append + "GDK_PIXBUF_MODULE_FILE=" + #$gnome-shell + "/lib/gdk-pixbuf-2.0/2.10.0/loaders.cache") (string-append "GDM_WAYLAND_SESSION=" #$(gdm-configuration-wayland-session config))))))