summaryrefslogtreecommitdiffstats
path: root/x11/gdm/files/patch-gui_simple-greeter_gdm-user-manager.c
diff options
context:
space:
mode:
Diffstat (limited to 'x11/gdm/files/patch-gui_simple-greeter_gdm-user-manager.c')
-rw-r--r--x11/gdm/files/patch-gui_simple-greeter_gdm-user-manager.c64
1 files changed, 64 insertions, 0 deletions
diff --git a/x11/gdm/files/patch-gui_simple-greeter_gdm-user-manager.c b/x11/gdm/files/patch-gui_simple-greeter_gdm-user-manager.c
new file mode 100644
index 000000000..b0b8ed37d
--- /dev/null
+++ b/x11/gdm/files/patch-gui_simple-greeter_gdm-user-manager.c
@@ -0,0 +1,64 @@
+--- gui/simple-greeter/gdm-user-manager.c.orig 2009-12-21 17:36:30.000000000 +0100
++++ gui/simple-greeter/gdm-user-manager.c 2009-12-27 22:34:26.000000000 +0100
+@@ -66,6 +66,8 @@
+
+ #ifdef __sun
+ #define DEFAULT_MINIMAL_UID 100
++#elif defined(__FreeBSD__)
++#define DEFAULT_MINIMAL_UID 1000
+ #else
+ #define DEFAULT_MINIMAL_UID 500
+ #endif
+@@ -1414,17 +1416,24 @@ reload_passwd (GdmUserManager *manager)
+ GSList *new_users;
+ GSList *list;
+ GSList *dup;
++#ifndef __FreeBSD__
+ FILE *fp;
++#endif
+
+ old_users = NULL;
+ new_users = NULL;
+
++#ifdef __FreeBSD__
++ setpwent ();
++#else
++
+ errno = 0;
+ fp = fopen (PATH_PASSWD, "r");
+ if (fp == NULL) {
+ g_warning ("Unable to open %s: %s", PATH_PASSWD, g_strerror (errno));
+ goto out;
+ }
++#endif
+
+ g_hash_table_foreach (manager->priv->users, listify_hash_values_hfunc, &old_users);
+ g_slist_foreach (old_users, (GFunc) g_object_ref, NULL);
+@@ -1443,9 +1452,15 @@ reload_passwd (GdmUserManager *manager)
+ } else {
+ g_debug ("GdmUserManager: include_all is TRUE");
+
++#ifdef __FreeBSD__
++ for (pwent = getpwent ();
++ pwent != NULL;
++ pwent = getpwent()) {
++#else
+ for (pwent = fgetpwent (fp);
+ pwent != NULL;
+ pwent = fgetpwent (fp)) {
++#endif
+ GdmUser *user;
+
+ user = NULL;
+@@ -1521,7 +1536,11 @@ reload_passwd (GdmUserManager *manager)
+ out:
+ /* Cleanup */
+
++#ifdef __FreeBSD__
++ endpwent ();
++#else
+ fclose (fp);
++#endif
+
+ g_slist_foreach (new_users, (GFunc) g_object_thaw_notify, NULL);
+ g_slist_foreach (new_users, (GFunc) g_object_unref, NULL);