summaryrefslogtreecommitdiffstats
path: root/x11/gdm/files
diff options
context:
space:
mode:
authorkwm <kwm@df743ca5-7f9a-e211-a948-0013205c9059>2009-02-25 02:45:03 +0800
committerkwm <kwm@df743ca5-7f9a-e211-a948-0013205c9059>2009-02-25 02:45:03 +0800
commit9d3b60c0b352ed26c13b997b38c1a24f260a88d1 (patch)
treea29341f8beb989e4734b76d6ee52358e56ec306f /x11/gdm/files
parent111f520d262d2c1a580519dfff11151adbc4da25 (diff)
downloadmarcuscom-ports-9d3b60c0b352ed26c13b997b38c1a24f260a88d1.tar
marcuscom-ports-9d3b60c0b352ed26c13b997b38c1a24f260a88d1.tar.gz
marcuscom-ports-9d3b60c0b352ed26c13b997b38c1a24f260a88d1.tar.bz2
marcuscom-ports-9d3b60c0b352ed26c13b997b38c1a24f260a88d1.tar.lz
marcuscom-ports-9d3b60c0b352ed26c13b997b38c1a24f260a88d1.tar.xz
marcuscom-ports-9d3b60c0b352ed26c13b997b38c1a24f260a88d1.tar.zst
marcuscom-ports-9d3b60c0b352ed26c13b997b38c1a24f260a88d1.zip
Update to 2.25.2.
git-svn-id: svn://creme-brulee.marcuscom.com/ports/trunk@11917 df743ca5-7f9a-e211-a948-0013205c9059
Diffstat (limited to 'x11/gdm/files')
-rw-r--r--x11/gdm/files/gdm.in61
-rw-r--r--x11/gdm/files/gdm.pam.in21
-rw-r--r--x11/gdm/files/patch-common_Makefile.in20
-rw-r--r--x11/gdm/files/patch-common_gdm-address.c27
-rw-r--r--x11/gdm/files/patch-common_gdm-common.c13
-rw-r--r--x11/gdm/files/patch-common_gdm-settings-keys.h10
-rw-r--r--x11/gdm/files/patch-config.h.in12
-rw-r--r--x11/gdm/files/patch-daemon-gdm-server.c73
-rw-r--r--x11/gdm/files/patch-daemon-gdm-xdmcp-display-factory.c10
-rw-r--r--x11/gdm/files/patch-daemon_Makefile.in10
-rw-r--r--x11/gdm/files/patch-daemon_gdm-session-worker.c11
-rw-r--r--x11/gdm/files/patch-data_Xsession.in39
-rw-r--r--x11/gdm/files/patch-data_gconf.path9
-rw-r--r--x11/gdm/files/patch-data_gdm.schemas.in.in14
-rw-r--r--x11/gdm/files/patch-data_greeter-autostart_gdm-simple-greeter.desktop.in.in7
-rw-r--r--x11/gdm/files/patch-gui_simple-chooser_gdm-host-chooser-widget.c20
-rw-r--r--x11/gdm/files/patch-gui_simple-greeter_Makefile.in11
-rw-r--r--x11/gdm/files/patch-gui_simple-greeter_gdm-languages.c45
-rw-r--r--x11/gdm/files/patch-gui_simple-greeter_gdm-remote-login-window.c10
-rw-r--r--x11/gdm/files/patch-gui_simple-greeter_gdm-user-manager.c51
20 files changed, 474 insertions, 0 deletions
diff --git a/x11/gdm/files/gdm.in b/x11/gdm/files/gdm.in
new file mode 100644
index 000000000..7931af597
--- /dev/null
+++ b/x11/gdm/files/gdm.in
@@ -0,0 +1,61 @@
+#!/bin/sh
+# $FreeBSD: ports/x11/gdm/files/gdm.in,v 1.13 2009/01/31 21:50:25 marcus Exp $
+# $MCom: ports/x11/gdm/files/gdm.in,v 1.32 2008/08/17 17:31:43 marcus Exp $
+
+# PROVIDE: gdm
+# REQUIRE: LOGIN cleanvar moused syscons dbus hald
+#
+# Add the following to /etc/rc.conf to start GDM at boot time:
+#
+# gdm_enable="YES"
+#
+
+. %%RC_SUBR%%
+. %%GNOME_SUBR%%
+
+gdm_enable=${gdm_enable-${gnome_enable}}
+gdm_preserve_base_pam_conf=${gdm_preserve_base_pam_conf-NO}
+
+export PATH=/bin:/sbin:/usr/bin:/usr/sbin:%%LOCALBASE%%/bin:%%LOCALBASE%%/sbin
+
+name="gdm"
+rcvar=`set_rcvar`
+command="%%PREFIX%%/sbin/${name}"
+pidfile="/var/run/${name}.pid"
+procname="%%PREFIX%%/sbin/gdm-binary"
+start_cmd="gdm_start"
+
+gdm_start()
+{
+ if ! checkyesno gdm_enable ; then
+ return 0
+ fi
+ echo "Starting ${name}."
+
+ # make sure there is no pam configuration for gdm service in base system
+ if ! checkyesno gdm_preserve_base_pam_conf && [ -f /etc/pam.d/gdm ]; then
+ cp -p /etc/pam.d/gdm /etc/pam.d/gdm_disabled
+ rm -f /etc/pam.d/gdm
+ fi
+
+ ( iter=0
+ while ! ps -axoargs | grep "^/usr/libexec/getty " | grep -qv grep >/dev/null 2>&1; do
+ if [ ${iter} -eq 60 ]; then
+ break
+ fi
+ sleep 1
+ iter=$(expr ${iter} + 1)
+ done
+ iter=0
+ while ! %%LOCALBASE%%/bin/lshal >/dev/null 2>&1 ; do
+ if [ ${iter} -eq 60 ]; then
+ break
+ fi
+ sleep 1
+ iter=$(expr ${iter} + 1)
+ done
+ ${command} ${gdm_flags} ) &
+}
+
+load_rc_config ${name}
+run_rc_command "$1"
diff --git a/x11/gdm/files/gdm.pam.in b/x11/gdm/files/gdm.pam.in
new file mode 100644
index 000000000..f9863dd5a
--- /dev/null
+++ b/x11/gdm/files/gdm.pam.in
@@ -0,0 +1,21 @@
+#
+# $FreeBSD: ports/x11/gdm/files/gdm.pam.in,v 1.2 2009/01/10 05:21:55 marcus Exp $
+#
+# PAM configuration for the "gdm" service
+#
+
+# auth
+#auth sufficient pam_krb5.so no_warn try_first_pass
+#auth sufficient pam_ssh.so no_warn try_first_pass
+auth required pam_unix.so no_warn try_first_pass
+%%PAM_KEYRING%%auth optional %%LOCALBASE%%/lib/pam_gnome_keyring.so
+
+# account
+account required pam_nologin.so
+#account required pam_krb5.so
+account required pam_unix.so
+
+# session
+#session optional pam_ssh.so
+session required pam_permit.so
+%%PAM_KEYRING%%session optional %%LOCALBASE%%/lib/pam_gnome_keyring.so auto_start
diff --git a/x11/gdm/files/patch-common_Makefile.in b/x11/gdm/files/patch-common_Makefile.in
new file mode 100644
index 000000000..2ab0a5001
--- /dev/null
+++ b/x11/gdm/files/patch-common_Makefile.in
@@ -0,0 +1,20 @@
+--- common/Makefile.in.orig 2008-08-20 14:34:16.000000000 -0400
++++ common/Makefile.in 2008-08-20 14:36:50.000000000 -0400
+@@ -428,7 +428,8 @@ gdm_crash_logger_CPPFLAGS = \
+ -DLOCALSTATEDIR=\"$(localstatedir)\" \
+ $(NULL)
+
+-gdm_crash_logger_LDADD = $(GTHREAD_LIBS)
++gdm_crash_logger_LDADD = $(GTHREAD_LIBS) \
++ -lexecinfo
+ @MKDTEMP_MISSING_FALSE@MKDTEMP_FILES =
+ @MKDTEMP_MISSING_TRUE@MKDTEMP_FILES = mkdtemp.c mkdtemp.h
+ libgdmcommon_la_SOURCES = \
+@@ -473,6 +474,7 @@ libgdmcommon_la_CFLAGS = \
+ $(NULL)
+
+ libgdmcommon_la_LIBADD = \
++ -lexecinfo \
+ $(NULL)
+
+ libgdmcommon_la_LDFLAGS = \
diff --git a/x11/gdm/files/patch-common_gdm-address.c b/x11/gdm/files/patch-common_gdm-address.c
new file mode 100644
index 000000000..4c38474cb
--- /dev/null
+++ b/x11/gdm/files/patch-common_gdm-address.c
@@ -0,0 +1,27 @@
+--- common/gdm-address.c.orig 2008-04-17 23:29:27.000000000 -0400
++++ common/gdm-address.c 2008-05-02 14:36:15.000000000 -0400
+@@ -29,6 +29,8 @@
+ #include <stropts.h>
+ #endif
+ #include <string.h>
++#include <sys/types.h>
++#include <sys/param.h>
+ #ifdef HAVE_SYS_SOCKET_H
+ #include <sys/socket.h>
+ #endif
+@@ -37,7 +39,6 @@
+ #endif
+ #include <netdb.h>
+ #include <sys/ioctl.h>
+-#include <net/if.h>
+
+ #ifndef G_OS_WIN32
+ #include <sys/select.h>
+@@ -47,6 +48,7 @@
+ #include <winsock2.h>
+ #include <ws2tcpip.h>
+ #endif
++#include <net/if.h>
+
+ #include <glib-object.h>
+
diff --git a/x11/gdm/files/patch-common_gdm-common.c b/x11/gdm/files/patch-common_gdm-common.c
new file mode 100644
index 000000000..9fa4acafa
--- /dev/null
+++ b/x11/gdm/files/patch-common_gdm-common.c
@@ -0,0 +1,13 @@
+--- common/gdm-common.c.orig 2007-12-23 10:29:20.000000000 +0100
++++ common/gdm-common.c 2007-12-23 10:29:34.000000000 +0100
+@@ -33,6 +33,10 @@
+
+ #include "gdm-common.h"
+
++#ifndef ENODATA
++#define ENODATA EAGAIN
++#endif
++
+ void
+ gdm_set_fatal_warnings_if_unstable (void)
+ {
diff --git a/x11/gdm/files/patch-common_gdm-settings-keys.h b/x11/gdm/files/patch-common_gdm-settings-keys.h
new file mode 100644
index 000000000..06ebc0800
--- /dev/null
+++ b/x11/gdm/files/patch-common_gdm-settings-keys.h
@@ -0,0 +1,10 @@
+--- common/gdm-settings-keys.h.orig 2008-02-20 16:27:34.000000000 -0500
++++ common/gdm-settings-keys.h 2008-02-25 22:23:35.000000000 -0500
+@@ -30,6 +30,7 @@ G_BEGIN_DECLS
+ #define GDM_KEY_TIMED_LOGIN_ENABLE "daemon/TimedLoginEnable"
+ #define GDM_KEY_TIMED_LOGIN_USER "daemon/TimedLogin"
+ #define GDM_KEY_TIMED_LOGIN_DELAY "daemon/TimedLoginDelay"
++#define GDM_KEY_VT "daemon/VT"
+
+ #define GDM_KEY_XDMCP_ENABLE "xdmcp/Enable"
+ #define GDM_KEY_MAX_PENDING "xdmcp/MaxPending"
diff --git a/x11/gdm/files/patch-config.h.in b/x11/gdm/files/patch-config.h.in
new file mode 100644
index 000000000..d17901da1
--- /dev/null
+++ b/x11/gdm/files/patch-config.h.in
@@ -0,0 +1,12 @@
+--- config.h.in.orig 2007-11-02 20:48:28.000000000 -0400
++++ config.h.in 2007-11-02 20:49:39.000000000 -0400
+@@ -23,6 +23,9 @@
+ #undef HAVE_LC_MESSAGES
+ #undef HAVE_LIBSM
+ #undef HAVE_LIBXDMCP
++#undef HAVE_LOGIN
++#undef HAVE_LOGOUT
++#undef HAVE_LOGWTMP
+ #undef HAVE_LOGINCAP
+ #undef HAVE_LOGINDEVPERM
+ #undef HAVE_LOGINRESTRICTIONS
diff --git a/x11/gdm/files/patch-daemon-gdm-server.c b/x11/gdm/files/patch-daemon-gdm-server.c
new file mode 100644
index 000000000..079c62c66
--- /dev/null
+++ b/x11/gdm/files/patch-daemon-gdm-server.c
@@ -0,0 +1,73 @@
+--- daemon/gdm-server.c.orig 2008-03-17 19:11:00.000000000 -0400
++++ daemon/gdm-server.c 2008-08-25 16:11:10.000000000 -0400
+@@ -44,6 +44,10 @@
+ #include "gdm-common.h"
+ #include "gdm-signal-handler.h"
+
++#include "gdm-settings.h"
++#include "gdm-settings-direct.h"
++#include "gdm-settings-keys.h"
++
+ #include "gdm-server.h"
+
+ extern char **environ;
+@@ -77,6 +81,7 @@ struct GdmServerPrivate
+ char *parent_display_name;
+ char *parent_auth_file;
+ char *chosen_hostname;
++ char *vt;
+
+ guint child_watch_id;
+ };
+@@ -306,7 +311,7 @@ gdm_server_resolve_command_line (GdmServ
+ argv[len++] = g_strdup ("tcp");
+ }
+
+- if (vtarg != NULL && ! gotvtarg) {
++ if (vtarg != NULL && ! gotvtarg && strncmp (server->priv->display_name, ":0", 2) == 0) {
+ argv[len++] = g_strdup (vtarg);
+ }
+
+@@ -673,7 +678,7 @@ gdm_server_start (GdmServer *server)
+ gboolean res;
+
+ /* fork X server process */
+- res = gdm_server_spawn (server, NULL);
++ res = gdm_server_spawn (server, server->priv->vt);
+
+ return res;
+ }
+@@ -925,12 +930,33 @@ static void
+ gdm_server_init (GdmServer *server)
+ {
+
++ int vt;
++ gboolean has_vt;
++ GdmSettings *settings = NULL;
+ server->priv = GDM_SERVER_GET_PRIVATE (server);
+
++
++ settings = gdm_settings_new();
++ if (settings == NULL) {
++ g_assert ("Unable to initialize settings");
++ }
++
++ if (! gdm_settings_direct_init (settings, GDMCONFDIR "/gdm.schemas", "/")) {
++ g_assert ("Unable to initialize settings");
++ }
++
++ has_vt = gdm_settings_direct_get_int (GDM_KEY_VT, &vt);
++
++ g_object_unref (settings);
++
+ server->priv->pid = -1;
+ server->priv->command = g_strdup (X_SERVER " -br -verbose");
+ server->priv->log_dir = g_strdup (LOGDIR);
+
++ if (has_vt) {
++ server->priv->vt = g_strdup_printf ("vt %d", vt);
++ }
++
+ add_ready_handler (server);
+ }
+
diff --git a/x11/gdm/files/patch-daemon-gdm-xdmcp-display-factory.c b/x11/gdm/files/patch-daemon-gdm-xdmcp-display-factory.c
new file mode 100644
index 000000000..e3062eeea
--- /dev/null
+++ b/x11/gdm/files/patch-daemon-gdm-xdmcp-display-factory.c
@@ -0,0 +1,10 @@
+--- daemon/gdm-xdmcp-display-factory.c.orig 2007-11-01 10:15:58.269325570 -0400
++++ daemon/gdm-xdmcp-display-factory.c 2007-11-01 10:20:19.093220785 -0400
+@@ -35,6 +35,7 @@
+ #include <netdb.h>
+ #include <arpa/inet.h>
+ #include <net/if.h>
++#include <netinet/in.h>
+ #ifdef HAVE_SYS_SOCKIO_H
+ #include <sys/sockio.h>
+ #endif
diff --git a/x11/gdm/files/patch-daemon_Makefile.in b/x11/gdm/files/patch-daemon_Makefile.in
new file mode 100644
index 000000000..9186a23e3
--- /dev/null
+++ b/x11/gdm/files/patch-daemon_Makefile.in
@@ -0,0 +1,10 @@
+--- daemon/Makefile.in.orig 2007-11-02 20:54:53.000000000 -0400
++++ daemon/Makefile.in 2007-11-02 20:55:08.000000000 -0400
+@@ -451,6 +451,7 @@ test_session_SOURCES = \
+
+ test_session_LDADD = \
+ $(DAEMON_LIBS) \
++ $(EXTRA_DAEMON_LIBS) \
+ $(PAM_LIBS) \
+ $(top_builddir)/common/libgdmcommon.la \
+ $(NULL)
diff --git a/x11/gdm/files/patch-daemon_gdm-session-worker.c b/x11/gdm/files/patch-daemon_gdm-session-worker.c
new file mode 100644
index 000000000..5f3a1b9ee
--- /dev/null
+++ b/x11/gdm/files/patch-daemon_gdm-session-worker.c
@@ -0,0 +1,11 @@
+--- daemon/gdm-session-worker.c.orig 2008-07-30 19:15:47.000000000 -0400
++++ daemon/gdm-session-worker.c 2008-08-25 12:50:00.000000000 -0400
+@@ -332,7 +332,7 @@ gdm_session_execute (const char *file,
+ * what to search if PATH is unset. POSIX may, dunno.
+ */
+
+- path = "/bin:/usr/bin:.";
++ path = "/bin:/usr/bin:/usr/local/bin:.";
+ }
+
+ len = strlen (file) + 1;
diff --git a/x11/gdm/files/patch-data_Xsession.in b/x11/gdm/files/patch-data_Xsession.in
new file mode 100644
index 000000000..894c97d16
--- /dev/null
+++ b/x11/gdm/files/patch-data_Xsession.in
@@ -0,0 +1,39 @@
+--- data/Xsession.in.orig 2008-05-12 20:25:54.000000000 -0400
++++ data/Xsession.in 2008-06-09 01:29:59.000000000 -0400
+@@ -231,12 +231,31 @@ if [ "x$command" = "xdefault" ] ; then
+ fi
+ fi
+
++is_gnome=0
++if [ "x$command" = "xgnome-session" ]; then
++ is_gnome=1
++fi
++
++# add seahorse-agent if found
++if [ ${is_gnome} = 1 ]; then
++ seahorseagent="`gdmwhich seahorse-agent`"
++ if [ -n "$seahorseagent" ] && [ -x "$seahorseagent" ] && [ -z "$GPG_AGENT_INFO" ] ; then
++ command="dbus-launch --exit-with-session $seahorseagent --execute $command"
++ elif [ -z "$seahorseagent" ] ; then
++ echo "$0: seahorse-agent not found!"
++ fi
++fi
++
+ # add ssh-agent if found
+-sshagent="`gdmwhich ssh-agent`"
+-if [ -n "$sshagent" ] && [ -x "$sshagent" ] && [ -z "$SSH_AUTH_SOCK" ]; then
+- command="$sshagent -- $command"
+-elif [ -z "$sshagent" ] ; then
+- echo "$0: ssh-agent not found!"
++# ssh-agent functionality is handled by gnome-keyring-daemon which is launched
++# from gnome-session
++if [ ${is_gnome} != 1 ]; then
++ sshagent="`gdmwhich ssh-agent`"
++ if [ -n "$sshagent" ] && [ -x "$sshagent" ] && [ -z "$SSH_AUTH_SOCK" ]; then
++ command="$sshagent -- $command"
++ elif [ -z "$sshagent" ] ; then
++ echo "$0: ssh-agent not found!"
++ fi
+ fi
+
+ echo "$0: Setup done, will execute: $command"
diff --git a/x11/gdm/files/patch-data_gconf.path b/x11/gdm/files/patch-data_gconf.path
new file mode 100644
index 000000000..2efdb3cc9
--- /dev/null
+++ b/x11/gdm/files/patch-data_gconf.path
@@ -0,0 +1,9 @@
+--- data/gconf.path.orig 2008-12-26 17:04:03.000000000 -0500
++++ data/gconf.path 2008-12-26 17:04:13.000000000 -0500
+@@ -1,5 +1,5 @@
+ # treat system-wide settings as mandatory
+-xml:readonly:/etc/gconf/gconf.xml.system
++xml:readonly:%%LOCALBASE%%/etc/gconf/gconf.xml.system
+
+ # override some settings
+ # we treat settings in this location as
diff --git a/x11/gdm/files/patch-data_gdm.schemas.in.in b/x11/gdm/files/patch-data_gdm.schemas.in.in
new file mode 100644
index 000000000..ae5572ddd
--- /dev/null
+++ b/x11/gdm/files/patch-data_gdm.schemas.in.in
@@ -0,0 +1,14 @@
+--- data/gdm.schemas.in.in.orig 2007-12-13 12:14:19.000000000 -0500
++++ data/gdm.schemas.in.in 2007-12-13 12:15:05.000000000 -0500
+@@ -11,6 +11,11 @@
+ <signature>s</signature>
+ <default>gdm</default>
+ </schema>
++ <schema>
++ <key>daemon/VT</key>
++ <signature>i</signature>
++ <default>9</default>
++ </schema>
+
+ <schema>
+ <key>xdmcp/Enable</key>
diff --git a/x11/gdm/files/patch-data_greeter-autostart_gdm-simple-greeter.desktop.in.in b/x11/gdm/files/patch-data_greeter-autostart_gdm-simple-greeter.desktop.in.in
new file mode 100644
index 000000000..7febf5165
--- /dev/null
+++ b/x11/gdm/files/patch-data_greeter-autostart_gdm-simple-greeter.desktop.in.in
@@ -0,0 +1,7 @@
+--- data/greeter-autostart/gdm-simple-greeter.desktop.in.in.orig 2008-11-23 22:22:04.000000000 -0500
++++ data/greeter-autostart/gdm-simple-greeter.desktop.in.in 2008-11-23 22:22:09.000000000 -0500
+@@ -5,4 +5,3 @@ Exec=@LIBEXECDIR@/gdm-simple-greeter
+ OnlyShowIn=GNOME;
+ X-GNOME-Autostart-Phase=Application
+ X-GNOME-Autostart-Notify=true
+-X-GNOME-AutoRestart=true
diff --git a/x11/gdm/files/patch-gui_simple-chooser_gdm-host-chooser-widget.c b/x11/gdm/files/patch-gui_simple-chooser_gdm-host-chooser-widget.c
new file mode 100644
index 000000000..6f0c08d8a
--- /dev/null
+++ b/x11/gdm/files/patch-gui_simple-chooser_gdm-host-chooser-widget.c
@@ -0,0 +1,20 @@
+--- gui/simple-chooser/gdm-host-chooser-widget.c.orig 2008-03-04 14:42:37.000000000 -0500
++++ gui/simple-chooser/gdm-host-chooser-widget.c 2008-08-03 01:48:49.000000000 -0400
+@@ -442,7 +442,7 @@ find_broadcast_addresses (GdmHostChooser
+ /* paranoia */
+ ifreq.ifr_name[sizeof (ifreq.ifr_name) - 1] = '\0';
+
+- if (ioctl (sock, SIOCGIFFLAGS, &ifreq) < 0) {
++ if ((ioctl (sock, SIOCGIFFLAGS, &ifreq) < 0) && (errno != ENXIO)) {
+ g_warning ("Could not get SIOCGIFFLAGS for %s", ifr[i].ifr_name);
+ }
+
+@@ -542,6 +542,8 @@ xdmcp_init (GdmHostChooserWidget *widget
+ #ifdef ENABLE_IPV6
+ widget->priv->socket_fd = socket (AF_INET6, SOCK_DGRAM, 0);
+ if (widget->priv->socket_fd != -1) {
++ int no = 0;
++ setsockopt(widget->priv->socket_fd, IPPROTO_IPV6, IPV6_V6ONLY, &no, sizeof(no));
+ widget->priv->have_ipv6 = TRUE;
+ }
+ #endif
diff --git a/x11/gdm/files/patch-gui_simple-greeter_Makefile.in b/x11/gdm/files/patch-gui_simple-greeter_Makefile.in
new file mode 100644
index 000000000..56d49b99b
--- /dev/null
+++ b/x11/gdm/files/patch-gui_simple-greeter_Makefile.in
@@ -0,0 +1,11 @@
+--- gui/simple-greeter/Makefile.in.orig 2008-02-13 01:57:37.000000000 -0500
++++ gui/simple-greeter/Makefile.in 2008-02-13 01:57:44.000000000 -0500
+@@ -445,7 +445,7 @@ INCLUDES = \
+ -DGDMCONFDIR=\"$(gdmconfdir)\" \
+ -DDATADIR=\""$(datadir)"\" \
+ -DSYSCONFDIR=\""$(sysconfdir)"\" \
+- -DLIBLOCALEDIR=\""$(prefix)/lib/locale"\" \
++ -DLIBLOCALEDIR=\""$(prefix)/share/locale"\" \
+ -DGNOMELOCALEDIR=\""$(datadir)/locale"\" \
+ -DGLADEDIR=\""$(pkgdatadir)"\" \
+ -DLIBEXECDIR=\""$(libexecdir)"\" \
diff --git a/x11/gdm/files/patch-gui_simple-greeter_gdm-languages.c b/x11/gdm/files/patch-gui_simple-greeter_gdm-languages.c
new file mode 100644
index 000000000..9116dc917
--- /dev/null
+++ b/x11/gdm/files/patch-gui_simple-greeter_gdm-languages.c
@@ -0,0 +1,45 @@
+--- gui/simple-greeter/gdm-languages.c.orig 2008-11-22 17:16:42.000000000 -0500
++++ gui/simple-greeter/gdm-languages.c 2008-11-22 17:29:05.000000000 -0500
+@@ -168,13 +168,13 @@ gdm_parse_language_name (const char *nam
+ *codesetp = NULL;
+ }
+
+- if (*codesetp != NULL) {
++/* if (*codesetp != NULL) {
+ char *codeset;
+
+ codeset = normalize_codeset (*codesetp);
+ g_free (*codesetp);
+ *codesetp = codeset;
+- }
++ }*/
+ }
+
+ if (modifierp != NULL) {
+@@ -353,7 +353,7 @@ add_locale (const char *language_name)
+ if (language_name_is_utf8 (language_name)) {
+ name = g_strdup (language_name);
+ } else {
+- name = g_strdup_printf ("%s.utf8", language_name);
++ name = g_strdup_printf ("%s.UTF-8", language_name);
+
+ if (!language_name_is_utf8 (name)) {
+ g_free (name);
+@@ -482,7 +482,7 @@ select_dirs (const struct dirent *dirent
+ struct stat st;
+ char *path;
+
+- path = g_build_filename (GNOMELOCALEDIR, dirent->d_name, NULL);
++ path = g_build_filename ("/usr/share/locale", dirent->d_name, NULL);
+ if (g_stat (path, &st) == 0) {
+ mode = st.st_mode;
+ }
+@@ -502,7 +502,7 @@ collect_locales_from_directory (void)
+ int ndirents;
+ int cnt;
+
+- ndirents = scandir (GNOMELOCALEDIR, &dirents, select_dirs, alphasort);
++ ndirents = scandir ("/usr/share/locale", &dirents, select_dirs, alphasort);
+
+ for (cnt = 0; cnt < ndirents; ++cnt) {
+ add_locale (dirents[cnt]->d_name);
diff --git a/x11/gdm/files/patch-gui_simple-greeter_gdm-remote-login-window.c b/x11/gdm/files/patch-gui_simple-greeter_gdm-remote-login-window.c
new file mode 100644
index 000000000..059d72cf4
--- /dev/null
+++ b/x11/gdm/files/patch-gui_simple-greeter_gdm-remote-login-window.c
@@ -0,0 +1,10 @@
+--- gui/simple-greeter/gdm-remote-login-window.c.orig 2008-03-24 11:27:13.000000000 +0100
++++ gui/simple-greeter/gdm-remote-login-window.c 2008-03-24 11:27:31.000000000 +0100
+@@ -25,6 +25,7 @@
+ #include <unistd.h>
+ #include <sys/types.h>
+ #include <sys/wait.h>
++#include <sys/signal.h>
+ #include <errno.h>
+
+ #include <glib.h>
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..d666bc1fd
--- /dev/null
+++ b/x11/gdm/files/patch-gui_simple-greeter_gdm-user-manager.c
@@ -0,0 +1,51 @@
+--- gui/simple-greeter/gdm-user-manager.c.orig 2008-04-29 13:38:43.000000000 -0400
++++ gui/simple-greeter/gdm-user-manager.c 2008-05-03 13:27:52.000000000 -0400
+@@ -1269,17 +1269,23 @@ reload_passwd (GdmUserManager *manager)
+ GSList *old_users;
+ GSList *new_users;
+ GSList *list;
+- FILE *fp;
++#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);
+@@ -1292,7 +1298,11 @@ reload_passwd (GdmUserManager *manager)
+ }
+ }
+
++#ifdef __FreeBSD__
++ for (pwent = getpwent (); pwent != NULL; pwent = getpwent ()) {
++#else
+ for (pwent = fgetpwent (fp); pwent != NULL; pwent = fgetpwent (fp)) {
++#endif
+ GdmUser *user;
+
+ user = NULL;
+@@ -1355,7 +1365,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);