mirror of
https://git.in.rschanz.org/ryan77627/guix.git
synced 2024-12-24 21:38:07 -05:00
gnu: gdm: Run dbus-daemon via a wrapper script.
* gnu/packages/gnome.scm (gdm)[arguments]: Modify the pre-configure phase so that GDM propagates the GDM_DBUS_DAEMON variable into the session environment and uses its value to invoke dbus-daemon. * gnu/services/xorg.scm (dbus-daemon-wrapper): New variable. (<gdm-configuration>): Add 'dbus-daemon' field. (gdm-shepherd-service): Set GDM_DBUS_DAEMON before invoking gdm. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
This commit is contained in:
parent
c9ff92b550
commit
1f564c1573
2 changed files with 18 additions and 0 deletions
|
@ -5461,6 +5461,7 @@ (define-public gdm
|
|||
(("DATADIR \"/gnome")
|
||||
"\"/run/current-system/profile/share/gnome"))
|
||||
(let ((propagate '("GDM_CUSTOM_CONF"
|
||||
"GDM_DBUS_DAEMON"
|
||||
"GDM_X_SERVER"
|
||||
;; XXX: Remove this once GNOME Shell is
|
||||
;; a dependency of GDM.
|
||||
|
@ -5486,6 +5487,8 @@ (define-public gdm
|
|||
(("\\(X_SERVER X_SERVER_ARG_FORMAT")
|
||||
"(\"%s\" X_SERVER_ARG_FORMAT, g_getenv (\"GDM_X_SERVER\")"))
|
||||
(substitute* '("daemon/gdm-x-session.c")
|
||||
(("\"dbus-daemon\"")
|
||||
"g_getenv (\"GDM_DBUS_DAEMON\")")
|
||||
(("X_SERVER")
|
||||
"g_getenv (\"GDM_X_SERVER\")"))
|
||||
;; Use an absolute path for GNOME Session.
|
||||
|
|
|
@ -29,6 +29,7 @@ (define-module (gnu services xorg)
|
|||
#:use-module (gnu packages guile)
|
||||
#:use-module (gnu packages xorg)
|
||||
#:use-module (gnu packages gl)
|
||||
#:use-module (gnu packages glib)
|
||||
#:use-module (gnu packages display-managers)
|
||||
#:use-module (gnu packages gnustep)
|
||||
#:use-module (gnu packages gnome)
|
||||
|
@ -623,12 +624,23 @@ (define %gdm-accounts
|
|||
(home-directory "/var/lib/gdm")
|
||||
(shell (file-append shadow "/sbin/nologin")))))
|
||||
|
||||
(define dbus-daemon-wrapper
|
||||
(program-file "gdm-dbus-wrapper"
|
||||
#~(begin
|
||||
(setenv "XDG_CONFIG_DIRS"
|
||||
"/run/current-system/profile/etc/xdg")
|
||||
(setenv "XDG_DATA_DIRS"
|
||||
"/run/current-system/profile/share")
|
||||
(apply execl (string-append #$dbus "/bin/dbus-daemon")
|
||||
(program-arguments)))))
|
||||
|
||||
(define-record-type* <gdm-configuration>
|
||||
gdm-configuration make-gdm-configuration
|
||||
gdm-configuration?
|
||||
(gdm gdm-configuration-gdm (default gdm))
|
||||
(allow-empty-passwords? gdm-configuration-allow-empty-passwords? (default #t))
|
||||
(auto-login? gdm-configuration-auto-login? (default #f))
|
||||
(dbus-daemon gdm-configuration-dbus-daemon (default dbus-daemon-wrapper))
|
||||
(default-user gdm-configuration-default-user (default #f))
|
||||
(x-server gdm-configuration-x-server
|
||||
(default (xorg-wrapper))))
|
||||
|
@ -696,6 +708,9 @@ (define (gdm-shepherd-service config)
|
|||
(list (string-append
|
||||
"GDM_CUSTOM_CONF="
|
||||
#$(gdm-configuration-file config))
|
||||
(string-append
|
||||
"GDM_DBUS_DAEMON="
|
||||
#$(gdm-configuration-dbus-daemon config))
|
||||
(string-append
|
||||
"GDM_X_SERVER="
|
||||
#$(gdm-configuration-x-server config))
|
||||
|
|
Loading…
Reference in a new issue