diff options
author | Giovanni Campagna <gcampagn@cs.stanford.edu> | 2015-10-09 14:54:42 -0700 |
---|---|---|
committer | Ray Strode <rstrode@redhat.com> | 2015-10-14 11:09:06 -0400 |
commit | 6b8d94ae13b2bec1db1bcff4ab4cc67bf63fda9f (patch) | |
tree | 65ff7d25f1a8cfeb999cf95c2f7587aff9a44b6b | |
parent | 39f146e6c5727105a3c88c2290654c6ef83102c5 (diff) | |
download | gnome-session-6b8d94ae13b2bec1db1bcff4ab4cc67bf63fda9f.tar.gz |
Make sure we use the local gio vfs in gnome-settings
So that we don't accidentally start gvfsd too early
Patch slightly modified by Ray Strode to preserve
original glib environment variable values.
https://bugzilla.gnome.org/show_bug.cgi?id=756324
-rw-r--r-- | gnome-session/main.c | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/gnome-session/main.c b/gnome-session/main.c index 1c176983..074f53e1 100644 --- a/gnome-session/main.c +++ b/gnome-session/main.c @@ -236,6 +236,34 @@ maybe_push_env_var (const char* name) gsm_util_setenv (name, value); } +static void +initialize_gio (void) +{ + char *disable_fuse = NULL; + char *use_vfs = NULL; + + disable_fuse = g_strdup (g_getenv ("GVFS_DISABLE_FUSE")); + use_vfs = g_strdup (g_getenv ("GVFS_USE_VFS")); + + g_setenv ("GVFS_DISABLE_FUSE", "1", TRUE); + g_setenv ("GIO_USE_VFS", "local", TRUE); + g_vfs_get_default (); + + if (use_vfs) { + g_setenv ("GIO_USE_VFS", use_vfs, TRUE); + g_free (use_vfs); + } else { + g_unsetenv ("GIO_USE_VFS"); + } + + if (disable_fuse) { + g_setenv ("GIO_DISABLE_FUSE", use_vfs, TRUE); + g_free (disable_fuse); + } else { + g_unsetenv ("GVFS_DISABLE_FUSE"); + } +} + int main (int argc, char **argv) { @@ -263,6 +291,9 @@ main (int argc, char **argv) gsm_util_init_error (TRUE, "%s", error->message); } + /* Make sure we initialize gio in a way that does not autostart any daemon */ + initialize_gio (); + bindtextdomain (GETTEXT_PACKAGE, LOCALE_DIR); bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8"); textdomain (GETTEXT_PACKAGE); |