From 8d50a4f289b1dabf1e76a18fc771f8894c8a5bd9 Mon Sep 17 00:00:00 2001 From: Ikey Doherty Date: Fri, 10 Nov 2017 23:07:39 +0000 Subject: [PATCH] shim: Add some more bootstrap variables Signed-off-by: Ikey Doherty --- src/shim/shim.c | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/src/shim/shim.c b/src/shim/shim.c index 5203504..c440070 100644 --- a/src/shim/shim.c +++ b/src/shim/shim.c @@ -123,11 +123,31 @@ static const char *shim_get_steam_binary(const char *prefix) #ifdef HAVE_SNAPD_SUPPORT static void shim_export_extra(const char *prefix) { + static const char *snap_user = NULL; + setenv("LIBGL_DRIVERS_PATH", SNAPD_LIBRARY_PATH, 1); setenv("LD_LIBRARY_PATH", SNAPD_LIBRARY_PATH ":" SNAPD_DRIVERS_PATH, 1); + /* Path */ shim_export_merge_vars("PATH", prefix, "/usr/bin"); shim_export_merge_vars("PATH", prefix, "/bin"); + + /* XDG */ + shim_export_merge_vars("XDG_CONFIG_DIRS", NULL, "/etc/xdg"); + shim_export_merge_vars("XDG_CONFIG_DIRS", NULL, "/usr/share/xdg"); + shim_export_merge_vars("XDG_CONFIG_DIRS", prefix, "/etc/xdg"); + shim_export_merge_vars("XDG_CONFIG_DIRS", prefix, "/usr/xdg"); + + shim_export_merge_vars("XDG_DATA_DIRS", prefix, "/usr/share"); + + snap_user = getenv("SNAP_USER_DATA"); + shim_export_merge_vars("XDG_DATA_DIRS", NULL, "/usr/share"); + shim_export_merge_vars("XDG_DATA_DIRS", prefix, "/usr/share"); + if (snap_user) { + shim_export_merge_vars("XDG_DATA_DIRS", NULL, snap_user); + } + + /* TODO: Add XDG_CACHE_HOME/XDG_DATA_HOME, and ensure XDG_RUNTIME_DIR is around */ } #else static void shim_export_extra(__lsi_unused__ const char *prefix)