diff options
author | kwm <kwm@df743ca5-7f9a-e211-a948-0013205c9059> | 2009-02-25 02:45:03 +0800 |
---|---|---|
committer | kwm <kwm@df743ca5-7f9a-e211-a948-0013205c9059> | 2009-02-25 02:45:03 +0800 |
commit | 9d3b60c0b352ed26c13b997b38c1a24f260a88d1 (patch) | |
tree | a29341f8beb989e4734b76d6ee52358e56ec306f /x11/gdm/files | |
parent | 111f520d262d2c1a580519dfff11151adbc4da25 (diff) | |
download | marcuscom-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')
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); |