gnu: gdm: Add links to required login-session files.
* gnu/packages/gnome.scm (gdm)[arguments]: Add a phase that creates symbolic links to required files from gnome-settings-daemon; do not set XDG_CONFIG_DIRS in the session environment. [inputs]: Add gnome-settings-daemon. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
This commit is contained in:
parent
1d7bff4b4b
commit
69544798ea
|
@ -5473,16 +5473,6 @@ libxml2.")
|
||||||
;; Propagate the GDM_CUSTOM_CONF environment variable.
|
;; Propagate the GDM_CUSTOM_CONF environment variable.
|
||||||
"gdm_session_set_environment_variable (self, \"GDM_CUSTOM_CONF\",\n"
|
"gdm_session_set_environment_variable (self, \"GDM_CUSTOM_CONF\",\n"
|
||||||
" g_getenv (\"GDM_CUSTOM_CONF\"));\n"
|
" g_getenv (\"GDM_CUSTOM_CONF\"));\n"
|
||||||
;; FIXME: Really glib should be declaring XDG_CONFIG_DIRS as a
|
|
||||||
;; variable, but it doesn't do that right now. Anyway
|
|
||||||
;; /run/current-system/profile/share/gnome-session/sessions/gnome.desktop
|
|
||||||
;; requires that a number of .desktop files be present, and
|
|
||||||
;; these special .desktop files are in $XDG_CONFIG_DIRS (which
|
|
||||||
;; defaults to /etc/xdg if it's not set). Here we need to
|
|
||||||
;; provide a value such that the GNOME session's requirements
|
|
||||||
;; are met (provided GNOME is installed of course).
|
|
||||||
"gdm_session_set_environment_variable (self, \"XDG_CONFIG_DIRS\",\n"
|
|
||||||
" \"/run/current-system/profile/etc/xdg\");\n"
|
|
||||||
;; The session bus (which GDM will initialize from the this
|
;; The session bus (which GDM will initialize from the this
|
||||||
;; session environment) needs to know where to find the system
|
;; session environment) needs to know where to find the system
|
||||||
;; service files.
|
;; service files.
|
||||||
|
@ -5502,7 +5492,25 @@ libxml2.")
|
||||||
(substitute* '("daemon/gdm-x-session.c")
|
(substitute* '("daemon/gdm-x-session.c")
|
||||||
(("X_SERVER")
|
(("X_SERVER")
|
||||||
"g_getenv (\"GDM_X_SERVER\")"))
|
"g_getenv (\"GDM_X_SERVER\")"))
|
||||||
#t)))))
|
#t))
|
||||||
|
;; GDM needs GNOME Session to run these applications. We link
|
||||||
|
;; their autostart files in `share/gdm/greeter/autostart'
|
||||||
|
;; because GDM explicitly tells GNOME Session to look there.
|
||||||
|
;;
|
||||||
|
;; XXX: GNOME Shell should be linked here too, but currently
|
||||||
|
;; GNOME Shell depends on GDM.
|
||||||
|
(add-after 'install 'link-autostart-files
|
||||||
|
(lambda* (#:key inputs outputs #:allow-other-keys)
|
||||||
|
(let* ((out (assoc-ref outputs "out"))
|
||||||
|
(autostart (string-append out "/share/gdm/"
|
||||||
|
"greeter/autostart"))
|
||||||
|
(settings (assoc-ref inputs "gnome-settings-daemon")))
|
||||||
|
(mkdir-p autostart)
|
||||||
|
(with-directory-excursion autostart
|
||||||
|
(for-each (lambda (desktop)
|
||||||
|
(symlink desktop (basename desktop)))
|
||||||
|
(find-files (string-append settings "/etc/xdg"))))
|
||||||
|
#t))))))
|
||||||
(native-inputs
|
(native-inputs
|
||||||
`(("dconf" ,dconf)
|
`(("dconf" ,dconf)
|
||||||
("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
|
("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
|
||||||
|
@ -5515,6 +5523,7 @@ libxml2.")
|
||||||
`(("accountsservice" ,accountsservice)
|
`(("accountsservice" ,accountsservice)
|
||||||
("check" ,check) ; for testing
|
("check" ,check) ; for testing
|
||||||
("elogind" ,elogind)
|
("elogind" ,elogind)
|
||||||
|
("gnome-settings-daemon" ,gnome-settings-daemon)
|
||||||
("gtk+" ,gtk+)
|
("gtk+" ,gtk+)
|
||||||
("iso-codes" ,iso-codes)
|
("iso-codes" ,iso-codes)
|
||||||
("libcanberra" ,libcanberra)
|
("libcanberra" ,libcanberra)
|
||||||
|
|
Loading…
Reference in New Issue