Index: gui/simple-greeter/test-user-chooser.c
===================================================================
--- gui/simple-greeter/test-user-chooser.c	(revisione 5666)
+++ gui/simple-greeter/test-user-chooser.c	(copia locale)
@@ -29,7 +29,6 @@
 
 #include <glib/gi18n.h>
 #include <gtk/gtk.h>
-#include <libgnomevfs/gnome-vfs-init.h>
 
 #include "gdm-user-chooser-dialog.h"
 
@@ -45,7 +44,6 @@ main (int argc, char *argv[])
         setlocale (LC_ALL, "");
 
         gtk_init (&argc, &argv);
-        gnome_vfs_init ();
 
         dialog = gdm_user_chooser_dialog_new ();
         /*gtk_widget_set_size_request (dialog, 480, 128);*/
Index: gui/simple-greeter/test-user-manager.c
===================================================================
--- gui/simple-greeter/test-user-manager.c	(revisione 5666)
+++ gui/simple-greeter/test-user-manager.c	(copia locale)
@@ -30,8 +30,6 @@
 #include <glib/gi18n.h>
 #include <gtk/gtk.h>
 
-#include <libgnomevfs/gnome-vfs-init.h>
-
 #include "gdm-user-manager.h"
 
 static GdmUserManager *manager = NULL;
@@ -63,7 +61,6 @@ main (int argc, char *argv[])
         setlocale (LC_ALL, "");
 
         gtk_init (&argc, &argv);
-        gnome_vfs_init ();
 
         manager = gdm_user_manager_ref_default ();
         g_signal_connect (manager,
Index: gui/simple-greeter/gdm-user.c
===================================================================
--- gui/simple-greeter/gdm-user.c	(revisione 5666)
+++ gui/simple-greeter/gdm-user.c	(copia locale)
@@ -26,8 +26,8 @@
 #include <unistd.h>
 
 #include <glib/gi18n.h>
+#include <gio/gio.h>
 #include <gtk/gtk.h>
-#include <libgnomevfs/gnome-vfs.h>
 
 #include "gdm-user-manager.h"
 #include "gdm-user-private.h"
@@ -599,30 +599,59 @@ render_icon_from_home (GdmUser *user,
 {
         GdkPixbuf *  retval;
         char        *path;
-        GnomeVFSURI *uri;
-        gboolean     is_local;
+        GFile       *file;
+        GFileInfo   *file_info;
+        gboolean     is_local, is_autofs;
         gboolean     res;
+        const char *filesystem_type;
 
         /* special case: look at parent of home to detect autofs
            this is so we don't try to trigger an automount */
         path = g_path_get_dirname (user->home_dir);
-        uri = gnome_vfs_uri_new (path);
-        is_local = gnome_vfs_uri_is_local (uri);
-        gnome_vfs_uri_unref (uri);
+        file = g_file_new_for_path (path);
+        file_info = g_file_query_filesystem_info (file,
+                                                  G_FILE_ATTRIBUTE_FILESYSTEM_TYPE,
+                                                  NULL, NULL);
+        if (file_info == NULL)
+        {
+                g_free (path);
+                g_object_unref (file);
+                return NULL;
+        }
+        filesystem_type = g_file_info_get_attribute_string (file_info,
+                                                            G_FILE_ATTRIBUTE_FILESYSTEM_TYPE);
+        is_autofs = (strcmp (filesystem_type, "autofs") == 0);
+        g_object_unref (file);
+        g_object_unref (file_info);
         g_free (path);
-
+        
         /* now check that home dir itself is local */
-        if (is_local) {
-                uri = gnome_vfs_uri_new (user->home_dir);
-                is_local = gnome_vfs_uri_is_local (uri);
-                gnome_vfs_uri_unref (uri);
+        if (!is_autofs)
+        {
+                file = g_file_new_for_path (user->home_dir);
+                file_info = g_file_query_filesystem_info (file,
+                                                          G_FILE_ATTRIBUTE_FILESYSTEM_TYPE,
+                                                          NULL, NULL);
+                if (file_info == NULL)
+                {
+                        g_object_unref (file);
+                        return NULL;
+                }
+                filesystem_type = g_file_info_get_attribute_string (file_info,
+                                                                    G_FILE_ATTRIBUTE_FILESYSTEM_TYPE);
+                is_local = ((strcmp (filesystem_type, "nfs") != 0) && 
+                            (strcmp (filesystem_type, "afs") != 0) &&
+                            (strcmp (filesystem_type, "autofs") != 0) &&
+                            (strcmp (filesystem_type, "unknown") != 0) &&
+                            (strcmp (filesystem_type, "ncpfs") != 0));
+                g_object_unref (file_info);
+                g_object_unref (file);
         }
-
+        
         /* only look at local home directories so we don't try to
-           read from remote (e.g. NFS) volumes */
-        if (!is_local) {
+        read from remote (e.g. NFS) volumes */
+        if (!is_local)
                 return NULL;
-        }
 
         /* First, try "~/.face" */
         path = g_build_filename (user->home_dir, ".face", NULL);
Index: gui/simple-greeter/gdm-user-manager.c
===================================================================
--- gui/simple-greeter/gdm-user-manager.c	(revisione 5666)
+++ gui/simple-greeter/gdm-user-manager.c	(copia locale)
@@ -34,13 +34,12 @@
 #include <glib/gi18n.h>
 #include <glib/gstdio.h>
 #include <glib-object.h>
+#include <gio/gio.h>
 #define DBUS_API_SUBJECT_TO_CHANGE
 #include <dbus/dbus.h>
 #include <dbus/dbus-glib.h>
 #include <dbus/dbus-glib-lowlevel.h>
 
-#include <libgnomevfs/gnome-vfs.h>
-
 #include "gdm-user-manager.h"
 #include "gdm-user-private.h"
 
@@ -94,8 +93,8 @@ struct GdmUserManagerPrivate
         GHashTable            *sessions;
         GHashTable            *shells;
         GHashTable            *exclusions;
-        GnomeVFSMonitorHandle *passwd_monitor;
-        GnomeVFSMonitorHandle *shells_monitor;
+        GFileMonitor          *shells_monitor;
+        GFileMonitor          *passwd_monitor;
         DBusGProxy            *seat_proxy;
         char                  *seat_id;
 
@@ -778,32 +777,32 @@ reload_shells (GdmUserManager *manager)
 }
 
 static void
-shells_monitor_cb (GnomeVFSMonitorHandle    *handle,
-                   const gchar              *text_uri,
-                   const gchar              *info_uri,
-                   GnomeVFSMonitorEventType  event_type,
-                   GdmUserManager           *manager)
+shells_monitor_changed_cb (GFileMonitor      *monitor,
+                           GFile             *file,
+                           GFile             *other_file,
+                           GFileMonitorEvent  event,
+                           gpointer           data)
 {
-        if (event_type != GNOME_VFS_MONITOR_EVENT_CHANGED &&
-            event_type != GNOME_VFS_MONITOR_EVENT_CREATED)
+        if (event != G_FILE_MONITOR_EVENT_CHANGED &&
+            event != G_FILE_MONITOR_EVENT_CREATED)
                 return;
 
-        reload_shells (manager);
-        reload_passwd (manager);
+        reload_shells (data);
+        reload_passwd (data);
 }
 
 static void
-passwd_monitor_cb (GnomeVFSMonitorHandle    *handle,
-                   const gchar              *text_uri,
-                   const gchar              *info_uri,
-                   GnomeVFSMonitorEventType  event_type,
-                   GdmUserManager           *manager)
+passwd_monitor_changed_cb (GFileMonitor      *monitor,
+                           GFile             *file,
+                           GFile             *other_file,
+                           GFileMonitorEvent  event,
+                           gpointer           data)
 {
-        if (event_type != GNOME_VFS_MONITOR_EVENT_CHANGED &&
-            event_type != GNOME_VFS_MONITOR_EVENT_CREATED)
+        if (event != G_FILE_MONITOR_EVENT_CHANGED &&
+            event != G_FILE_MONITOR_EVENT_CREATED)
                 return;
 
-        reload_passwd (manager);
+        reload_passwd (data);
 }
 
 static void
@@ -863,15 +862,10 @@ static void
 gdm_user_manager_init (GdmUserManager *manager)
 {
         GError        *error;
-        char          *uri;
-        GnomeVFSResult result;
+        GFile         *file;
         int            i;
         const char    *exclude_default[] = DEFAULT_EXCLUDE;
 
-        if (! gnome_vfs_initialized ()) {
-                gnome_vfs_init ();
-        }
-
         manager->priv = GDM_USER_MANAGER_GET_PRIVATE (manager);
 
         manager->priv->minimal_uid = DEFAULT_MINIMAL_UID;
@@ -899,48 +893,39 @@ gdm_user_manager_init (GdmUserManager *m
                                                        g_free,
                                                        NULL);
         reload_shells (manager);
-        error = NULL;
-        uri = g_filename_to_uri ("/etc/shells", NULL, &error);
-        if (uri == NULL) {
-                g_warning ("Could not create URI for shells file `/etc/shells': %s",
+
+        file = g_file_new_for_path ("/etc/shells");
+        manager->priv->shells_monitor = g_file_monitor_file (file,
+                                                             0, NULL, &error);
+        if (manager->priv->shells_monitor == NULL) {
+                g_critical ("Could not install monitor for shells file `/etc/shells': %s",
                             error->message);
                 g_error_free (error);
+                error = NULL;
         } else {
-                result = gnome_vfs_monitor_add (&(manager->priv->shells_monitor),
-                                                uri,
-                                                GNOME_VFS_MONITOR_FILE,
-                                                (GnomeVFSMonitorCallback)shells_monitor_cb,
-                                                manager);
-                g_free (uri);
-
-                if (result != GNOME_VFS_OK)
-                        g_warning ("Could not install monitor for shells file `/etc/shells': %s",
-                                    gnome_vfs_result_to_string (result));
+                g_signal_connect (manager->priv->shells_monitor, "changed",
+                                  G_CALLBACK (shells_monitor_changed_cb), manager);
         }
+        g_object_unref (file);
+        file = NULL;
 
         /* /etc/passwd */
         manager->priv->users = g_hash_table_new_full (g_str_hash,
                                                       g_str_equal,
                                                       g_free,
                                                       (GDestroyNotify) g_object_run_dispose);
-        error = NULL;
-        uri = g_filename_to_uri ("/etc/passwd", NULL, &error);
-        if (uri == NULL) {
-                g_warning ("Could not create URI for password file `/etc/passwd': %s",
+
+        file = g_file_new_for_path ("/etc/passwd");
+        manager->priv->passwd_monitor = g_file_monitor_file (file,
+                                                             0, NULL, &error);
+        if (manager->priv->passwd_monitor == NULL) {
+                g_critical ("Could not install monitor for password file `/etc/passwd: %s",
                             error->message);
-                g_error_free (error);
         } else {
-                result = gnome_vfs_monitor_add (&(manager->priv->passwd_monitor),
-                                                uri,
-                                                GNOME_VFS_MONITOR_FILE,
-                                                (GnomeVFSMonitorCallback)passwd_monitor_cb,
-                                                manager);
-                g_free (uri);
-
-                if (result != GNOME_VFS_OK)
-                        g_warning ("Could not install monitor for password file `/etc/passwd: %s",
-                                   gnome_vfs_result_to_string (result));
+                g_signal_connect (manager->priv->passwd_monitor, "changed",
+                                  G_CALLBACK (passwd_monitor_changed_cb), manager);
         }
+        g_object_unref (file);
 
         get_seat_proxy (manager);
 
@@ -972,10 +957,10 @@ gdm_user_manager_finalize (GObject *obje
 
         g_hash_table_destroy (manager->priv->sessions);
 
-        gnome_vfs_monitor_cancel (manager->priv->shells_monitor);
+        g_file_monitor_cancel (manager->priv->shells_monitor);
         g_hash_table_destroy (manager->priv->shells);
 
-        gnome_vfs_monitor_cancel (manager->priv->passwd_monitor);
+        g_file_monitor_cancel (manager->priv->passwd_monitor);
         g_hash_table_destroy (manager->priv->users);
 
         g_free (manager->priv->seat_id);
Index: configure.ac
===================================================================
--- configure.ac	(revisione 5666)
+++ configure.ac	(copia locale)
@@ -40,9 +40,8 @@ dnl - Dependencies
 dnl ---------------------------------------------------------------------------
 
 DBUS_GLIB_REQUIRED_VERSION=0.74
-GLIB_REQUIRED_VERSION=2.13.0
+GLIB_REQUIRED_VERSION=2.15.4
 GTK_REQUIRED_VERSION=2.10.0
-GNOME_VFS_REQUIRED_VERSION=2.18.0
 PANGO_REQUIRED_VERSION=1.3.0
 LIBGLADE_REQUIRED_VERSION=1.99.2
 SCROLLKEEPER_REQUIRED_VERSION=0.1.4
@@ -86,7 +85,8 @@ PKG_CHECK_MODULES(SIMPLE_GREETER,
         dbus-glib-1 >= $DBUS_GLIB_REQUIRED_VERSION
         gtk+-2.0 >= $GTK_REQUIRED_VERSION
         libglade-2.0 >= $LIBGLADE_REQUIRED_VERSION
-        gnome-vfs-2.0 >= $GNOME_VFS_REQUIRED_VERSION
+	gio-2.0 >= $GLIB_REQUIRED_VERSION
+	gconf-2.0 >= $GCONF_REQUIRED_VERSION
 )
 AC_SUBST(SIMPLE_GREETER_CFLAGS)
 AC_SUBST(SIMPLE_GREETER_LIBS)
@@ -107,7 +107,7 @@ PKG_CHECK_MODULES(SIMPLE_CHOOSER,
         dbus-glib-1 >= $DBUS_GLIB_REQUIRED_VERSION
         gtk+-2.0 >= $GTK_REQUIRED_VERSION
         libglade-2.0 >= $LIBGLADE_REQUIRED_VERSION
-        gnome-vfs-2.0 >= $GNOME_VFS_REQUIRED_VERSION
+	gconf-2.0 >= $GCONF_REQUIRED_VERSION
 )
 AC_SUBST(SIMPLE_CHOOSER_CFLAGS)
 AC_SUBST(SIMPLE_CHOOSER_LIBS)
