From f76d32b8e89fed7c0e459c1a7fe7a4b57661b01c Mon Sep 17 00:00:00 2001 From: Joe Marcus Clarke Date: Sat, 28 Nov 2009 20:06:37 +0000 Subject: Presenting GNOME 2.28.1 for FreeBSD. The official release notes for this release can be found at http://library.gnome.org/misc/release-notes/2.28/ . Officially, this is mostly a polishing release in preparation for GNOME 3.0 due in about a year. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit On the FreeBSD front, though, a lot went into this release. Major thanks goes to kwm and avl who did a lot of the porting work for this release. In particular, kwm brought in Evolution MAPI support for better Microsoft Exchange integration. Avl made sure that the new gobject introspection repository ports were nicely compartmentalized so that large dependencies aren't brought in wholesale. But, every GNOME team member (ahze, avl, bland, kwm, mezz, and myself) contributed to this release. Other major improvements include an updated HAL with better volume probing code, ufsid integration, and support for volume names containing spaces (big thanks to J.R. Oldroyd); a new WebKit; updated AbiWord; an updated Gimp; and a preview of the new GNOME Shell project (thanks to Pawel Worach). The FreeBSD GNOME Team would like to that the following additional contributors to this release whose patches and testing really helped make it a success: Andrius Morkunas Dominique Goncalves Eric L. Chen J.R. Oldroyd Joseph S. Atkinson Li Pawel Worach Romain Tartière Thomas Vogt Yasuda Keisuke Rui Paulo Martin Wilke (and an extra shout out to miwi and pav for pointyhat runs) We would like to send this release out to Alexander Loginov (avl) in hopes that he feels better soon. PR: 136676 136967 138872 (obsolete with new epiphany-webkit) 139160 134737 139941 140097 140838 140929 --- x11/gdm/files/gdm.in | 2 +- x11/gdm/files/gdm.pam.in | 2 +- x11/gdm/files/patch-configure | 109 ++++++++++++--- .../files/patch-daemon-gdm-xdmcp-display-factory.c | 42 ++---- .../files/patch-daemon_gdm-display-access-file.c | 12 -- x11/gdm/files/patch-daemon_gdm-session-worker.c | 20 +-- ...h-gui_simple-greeter_gdm-greeter-login-window.c | 155 +++++++++++++++++++++ .../files/patch-gui_simple-greeter_gdm-languages.c | 28 ++-- .../patch-gui_simple-greeter_gdm-user-manager.c | 25 ++-- x11/gdm/files/patch-gui_simple-greeter_gdm-user.c | 12 +- x11/gdm/files/patch-hal-keyboard | 31 ++--- 11 files changed, 320 insertions(+), 118 deletions(-) delete mode 100644 x11/gdm/files/patch-daemon_gdm-display-access-file.c create mode 100644 x11/gdm/files/patch-gui_simple-greeter_gdm-greeter-login-window.c (limited to 'x11/gdm/files') diff --git a/x11/gdm/files/gdm.in b/x11/gdm/files/gdm.in index a6a0a8d70eec..7190a891e9ac 100644 --- a/x11/gdm/files/gdm.in +++ b/x11/gdm/files/gdm.in @@ -1,6 +1,6 @@ #!/bin/sh # $FreeBSD$ -# $MCom$ +# $MCom: ports/x11/gdm/files/gdm.in,v 1.38 2009/09/26 13:42:01 marcus Exp $ # PROVIDE: gdm # REQUIRE: LOGIN cleanvar moused syscons dbus hald diff --git a/x11/gdm/files/gdm.pam.in b/x11/gdm/files/gdm.pam.in index 014d6c8151e9..1f16ea8e8ca2 100644 --- a/x11/gdm/files/gdm.pam.in +++ b/x11/gdm/files/gdm.pam.in @@ -1,6 +1,6 @@ # # $FreeBSD$ -# $MCom$ +# $MCom: ports/x11/gdm/files/gdm.pam.in,v 1.8 2009/09/26 13:42:01 marcus Exp $ # # PAM configuration for the "gdm" service # diff --git a/x11/gdm/files/patch-configure b/x11/gdm/files/patch-configure index baa14aa863dd..220aa1cb6ac2 100644 --- a/x11/gdm/files/patch-configure +++ b/x11/gdm/files/patch-configure @@ -1,68 +1,137 @@ ---- configure.orig 2009-05-02 22:45:53.000000000 -0400 -+++ configure 2009-05-02 22:47:16.000000000 -0400 -@@ -19163,15 +19163,18 @@ if test -n "$DAEMON_CFLAGS"; then - if test -n "$PKG_CONFIG" && \ - { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"dbus-glib-1 >= \$DBUS_GLIB_REQUIRED_VERSION +--- configure.orig 2009-09-22 12:26:34.000000000 +0200 ++++ configure 2009-09-22 12:29:51.000000000 +0200 +@@ -22494,10 +22494,12 @@ + { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"dbus-glib-1 >= \$DBUS_GLIB_REQUIRED_VERSION gobject-2.0 >= \$GLIB_REQUIRED_VERSION + gio-2.0 >= \$GLIB_REQUIRED_VERSION + hal \"") >&5 ($PKG_CONFIG --exists --print-errors "dbus-glib-1 >= $DBUS_GLIB_REQUIRED_VERSION gobject-2.0 >= $GLIB_REQUIRED_VERSION + gio-2.0 >= $GLIB_REQUIRED_VERSION + hal ") 2>&5 ac_status=$? - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; then + echo "$as_me:$LINENO: \$? = $ac_status" >&5 +@@ -22519,10 +22521,12 @@ + { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"dbus-glib-1 >= \$DBUS_GLIB_REQUIRED_VERSION + gobject-2.0 >= \$GLIB_REQUIRED_VERSION + gio-2.0 >= \$GLIB_REQUIRED_VERSION ++ hal + \"") >&5 + ($PKG_CONFIG --exists --print-errors "dbus-glib-1 >= $DBUS_GLIB_REQUIRED_VERSION + gobject-2.0 >= $GLIB_REQUIRED_VERSION + gio-2.0 >= $GLIB_REQUIRED_VERSION ++ hal + ") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 +@@ -22530,6 +22534,7 @@ + pkg_cv_COMMON_LIBS=`$PKG_CONFIG --libs "dbus-glib-1 >= $DBUS_GLIB_REQUIRED_VERSION + gobject-2.0 >= $GLIB_REQUIRED_VERSION + gio-2.0 >= $GLIB_REQUIRED_VERSION ++ hal + " 2>/dev/null` + else + pkg_failed=yes +@@ -22551,11 +22556,13 @@ + COMMON_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "dbus-glib-1 >= $DBUS_GLIB_REQUIRED_VERSION + gobject-2.0 >= $GLIB_REQUIRED_VERSION + gio-2.0 >= $GLIB_REQUIRED_VERSION ++ hal + " 2>&1` + else + COMMON_PKG_ERRORS=`$PKG_CONFIG --print-errors "dbus-glib-1 >= $DBUS_GLIB_REQUIRED_VERSION + gobject-2.0 >= $GLIB_REQUIRED_VERSION + gio-2.0 >= $GLIB_REQUIRED_VERSION ++ hal + " 2>&1` + fi + # Put the nasty error message in config.log where it belongs +@@ -22564,6 +22571,7 @@ + { { echo "$as_me:$LINENO: error: Package requirements (dbus-glib-1 >= $DBUS_GLIB_REQUIRED_VERSION + gobject-2.0 >= $GLIB_REQUIRED_VERSION + gio-2.0 >= $GLIB_REQUIRED_VERSION ++ hal + ) were not met: + + $COMMON_PKG_ERRORS +@@ -22578,6 +22586,7 @@ + echo "$as_me: error: Package requirements (dbus-glib-1 >= $DBUS_GLIB_REQUIRED_VERSION + gobject-2.0 >= $GLIB_REQUIRED_VERSION + gio-2.0 >= $GLIB_REQUIRED_VERSION ++ hal + ) were not met: + + $COMMON_PKG_ERRORS +@@ -22634,10 +22643,12 @@ + { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"dbus-glib-1 >= \$DBUS_GLIB_REQUIRED_VERSION + gobject-2.0 >= \$GLIB_REQUIRED_VERSION + gio-2.0 >= \$GLIB_REQUIRED_VERSION ++ hal + \"") >&5 + ($PKG_CONFIG --exists --print-errors "dbus-glib-1 >= $DBUS_GLIB_REQUIRED_VERSION + gobject-2.0 >= $GLIB_REQUIRED_VERSION + gio-2.0 >= $GLIB_REQUIRED_VERSION ++ hal + ") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 +@@ -22645,6 +22656,7 @@ pkg_cv_DAEMON_CFLAGS=`$PKG_CONFIG --cflags "dbus-glib-1 >= $DBUS_GLIB_REQUIRED_VERSION gobject-2.0 >= $GLIB_REQUIRED_VERSION + gio-2.0 >= $GLIB_REQUIRED_VERSION + hal " 2>/dev/null` else pkg_failed=yes -@@ -19185,15 +19188,18 @@ if test -n "$DAEMON_LIBS"; then - if test -n "$PKG_CONFIG" && \ - { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"dbus-glib-1 >= \$DBUS_GLIB_REQUIRED_VERSION +@@ -22659,10 +22671,12 @@ + { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"dbus-glib-1 >= \$DBUS_GLIB_REQUIRED_VERSION gobject-2.0 >= \$GLIB_REQUIRED_VERSION + gio-2.0 >= \$GLIB_REQUIRED_VERSION + hal \"") >&5 ($PKG_CONFIG --exists --print-errors "dbus-glib-1 >= $DBUS_GLIB_REQUIRED_VERSION gobject-2.0 >= $GLIB_REQUIRED_VERSION + gio-2.0 >= $GLIB_REQUIRED_VERSION + hal ") 2>&5 ac_status=$? - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; then + echo "$as_me:$LINENO: \$? = $ac_status" >&5 +@@ -22670,6 +22684,7 @@ pkg_cv_DAEMON_LIBS=`$PKG_CONFIG --libs "dbus-glib-1 >= $DBUS_GLIB_REQUIRED_VERSION gobject-2.0 >= $GLIB_REQUIRED_VERSION + gio-2.0 >= $GLIB_REQUIRED_VERSION + hal " 2>/dev/null` else pkg_failed=yes -@@ -19214,10 +19220,12 @@ fi - if test $_pkg_short_errors_supported = yes; then +@@ -22691,11 +22706,13 @@ DAEMON_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "dbus-glib-1 >= $DBUS_GLIB_REQUIRED_VERSION gobject-2.0 >= $GLIB_REQUIRED_VERSION + gio-2.0 >= $GLIB_REQUIRED_VERSION + hal " 2>&1` else DAEMON_PKG_ERRORS=`$PKG_CONFIG --print-errors "dbus-glib-1 >= $DBUS_GLIB_REQUIRED_VERSION gobject-2.0 >= $GLIB_REQUIRED_VERSION + gio-2.0 >= $GLIB_REQUIRED_VERSION + hal " 2>&1` fi # Put the nasty error message in config.log where it belongs -@@ -19225,6 +19233,7 @@ fi - - { { $as_echo "$as_me:$LINENO: error: Package requirements (dbus-glib-1 >= $DBUS_GLIB_REQUIRED_VERSION +@@ -22704,6 +22721,7 @@ + { { echo "$as_me:$LINENO: error: Package requirements (dbus-glib-1 >= $DBUS_GLIB_REQUIRED_VERSION gobject-2.0 >= $GLIB_REQUIRED_VERSION + gio-2.0 >= $GLIB_REQUIRED_VERSION + hal ) were not met: $DAEMON_PKG_ERRORS -@@ -19238,6 +19247,7 @@ See the pkg-config man page for more det - " >&5 - $as_echo "$as_me: error: Package requirements (dbus-glib-1 >= $DBUS_GLIB_REQUIRED_VERSION +@@ -22718,6 +22736,7 @@ + echo "$as_me: error: Package requirements (dbus-glib-1 >= $DBUS_GLIB_REQUIRED_VERSION gobject-2.0 >= $GLIB_REQUIRED_VERSION + gio-2.0 >= $GLIB_REQUIRED_VERSION + hal ) were not met: diff --git a/x11/gdm/files/patch-daemon-gdm-xdmcp-display-factory.c b/x11/gdm/files/patch-daemon-gdm-xdmcp-display-factory.c index 63fb5db1c176..692c275167b8 100644 --- a/x11/gdm/files/patch-daemon-gdm-xdmcp-display-factory.c +++ b/x11/gdm/files/patch-daemon-gdm-xdmcp-display-factory.c @@ -1,5 +1,5 @@ ---- daemon/gdm-xdmcp-display-factory.c.orig 2009-03-16 16:12:08.000000000 -0400 -+++ daemon/gdm-xdmcp-display-factory.c 2009-05-16 18:17:26.000000000 -0400 +--- daemon/gdm-xdmcp-display-factory.c.orig 2009-07-20 03:09:09.000000000 +0200 ++++ daemon/gdm-xdmcp-display-factory.c 2009-07-20 09:54:25.000000000 +0200 @@ -35,6 +35,7 @@ #include #include @@ -46,7 +46,7 @@ if (bind (sock, ai->ai_addr, ai->ai_addrlen) < 0) { g_warning ("bind: %s", g_strerror (errno)); close (sock); -@@ -833,7 +849,7 @@ gdm_xdmcp_send_willing (GdmXdmcpDisplayF +@@ -835,7 +851,7 @@ gdm_xdmcp_send_willing (GdmXdmcpDisplayF XdmcpFlush (factory->priv->socket_fd, &factory->priv->buf, (XdmcpNetaddr)gdm_address_peek_sockaddr_storage (address), @@ -55,7 +55,7 @@ g_free (status.data); } -@@ -877,7 +893,7 @@ gdm_xdmcp_send_unwilling (GdmXdmcpDispla +@@ -879,7 +895,7 @@ gdm_xdmcp_send_unwilling (GdmXdmcpDispla XdmcpFlush (factory->priv->socket_fd, &factory->priv->buf, (XdmcpNetaddr)gdm_address_peek_sockaddr_storage (address), @@ -64,7 +64,7 @@ last_time = time (NULL); } -@@ -986,7 +1002,7 @@ gdm_xdmcp_send_forward_query (GdmXdmcpDi +@@ -988,7 +1004,7 @@ gdm_xdmcp_send_forward_query (GdmXdmcpDi XdmcpFlush (factory->priv->socket_fd, &factory->priv->buf, (XdmcpNetaddr)gdm_address_peek_sockaddr_storage (ic->chosen_address), @@ -73,7 +73,7 @@ g_free (port.data); g_free (addr.data); -@@ -1689,7 +1705,7 @@ gdm_xdmcp_really_send_managed_forward (G +@@ -1691,7 +1707,7 @@ gdm_xdmcp_really_send_managed_forward (G XdmcpFlush (factory->priv->socket_fd, &factory->priv->buf, (XdmcpNetaddr)gdm_address_peek_sockaddr_storage (address), @@ -82,7 +82,7 @@ g_free (addr.data); } -@@ -1770,7 +1786,7 @@ gdm_xdmcp_send_got_managed_forward (GdmX +@@ -1772,7 +1788,7 @@ gdm_xdmcp_send_got_managed_forward (GdmX XdmcpFlush (factory->priv->socket_fd, &factory->priv->buf, (XdmcpNetaddr)gdm_address_peek_sockaddr_storage (address), @@ -91,7 +91,7 @@ } static gboolean -@@ -1943,7 +1959,7 @@ gdm_xdmcp_send_decline (GdmXdmcpDisplayF +@@ -1945,7 +1961,7 @@ gdm_xdmcp_send_decline (GdmXdmcpDisplayF XdmcpFlush (factory->priv->socket_fd, &factory->priv->buf, (XdmcpNetaddr)gdm_address_peek_sockaddr_storage (address), @@ -100,7 +100,7 @@ /* Send MANAGED_FORWARD to indicate that the connection * reached some sort of resolution */ -@@ -2091,7 +2107,7 @@ gdm_xdmcp_send_accept (GdmXdmcpDisplayFa +@@ -2093,7 +2109,7 @@ gdm_xdmcp_send_accept (GdmXdmcpDisplayFa XdmcpFlush (factory->priv->socket_fd, &factory->priv->buf, (XdmcpNetaddr)gdm_address_peek_sockaddr_storage (address), @@ -109,25 +109,7 @@ host = NULL; gdm_address_get_numeric_info (address, &host, NULL); -@@ -2309,8 +2325,6 @@ gdm_xdmcp_handle_request (GdmXdmcpDispla - authorization_data.data = (CARD8 *) cookie->data; - authorization_data.length = cookie->len; - -- g_array_free (cookie, TRUE); -- - /* the addrs are NOT copied */ - gdm_xdmcp_send_accept (factory, - address, -@@ -2319,6 +2333,8 @@ gdm_xdmcp_handle_request (GdmXdmcpDispla - &authentication_data, - &authorization_name, - &authorization_data); -+ -+ g_array_free (cookie, TRUE); - } - } - } else { -@@ -2422,7 +2438,7 @@ gdm_xdmcp_send_failed (GdmXdmcpDisplayFa +@@ -2424,7 +2440,7 @@ gdm_xdmcp_send_failed (GdmXdmcpDisplayFa XdmcpFlush (factory->priv->socket_fd, &factory->priv->buf, (XdmcpNetaddr)gdm_address_peek_sockaddr_storage (address), @@ -136,7 +118,7 @@ } static void -@@ -2446,7 +2462,7 @@ gdm_xdmcp_send_refuse (GdmXdmcpDisplayFa +@@ -2448,7 +2464,7 @@ gdm_xdmcp_send_refuse (GdmXdmcpDisplayFa XdmcpFlush (factory->priv->socket_fd, &factory->priv->buf, (XdmcpNetaddr)gdm_address_peek_sockaddr_storage (address), @@ -145,7 +127,7 @@ /* * This was from a forwarded query quite apparently so -@@ -2717,7 +2733,7 @@ gdm_xdmcp_send_alive (GdmXdmcpDisplayFac +@@ -2719,7 +2735,7 @@ gdm_xdmcp_send_alive (GdmXdmcpDisplayFac XdmcpFlush (factory->priv->socket_fd, &factory->priv->buf, (XdmcpNetaddr)gdm_address_peek_sockaddr_storage (address), diff --git a/x11/gdm/files/patch-daemon_gdm-display-access-file.c b/x11/gdm/files/patch-daemon_gdm-display-access-file.c deleted file mode 100644 index 0f54784eca16..000000000000 --- a/x11/gdm/files/patch-daemon_gdm-display-access-file.c +++ /dev/null @@ -1,12 +0,0 @@ ---- daemon/gdm-display-access-file.c.orig 2009-04-16 01:32:41.000000000 +0200 -+++ daemon/gdm-display-access-file.c 2009-04-16 01:33:17.000000000 +0200 -@@ -41,6 +41,9 @@ - #include "gdm-display-access-file.h" - #include "gdm-common.h" - -+/* OpenBSD defines 255, glibc defines 64. */ -+#define HOST_NAME_MAX 64 -+ - struct _GdmDisplayAccessFilePrivate - { - char *username; diff --git a/x11/gdm/files/patch-daemon_gdm-session-worker.c b/x11/gdm/files/patch-daemon_gdm-session-worker.c index 0c56d5da4419..362a116eaa79 100644 --- a/x11/gdm/files/patch-daemon_gdm-session-worker.c +++ b/x11/gdm/files/patch-daemon_gdm-session-worker.c @@ -1,5 +1,5 @@ ---- daemon/gdm-session-worker.c.orig 2009-04-14 10:01:14.000000000 -0400 -+++ daemon/gdm-session-worker.c 2009-05-31 15:52:10.000000000 -0400 +--- daemon/gdm-session-worker.c.orig 2009-09-21 22:05:27.000000000 +0200 ++++ daemon/gdm-session-worker.c 2009-09-22 12:33:59.000000000 +0200 @@ -31,6 +31,9 @@ #include #include @@ -8,9 +8,9 @@ +#include +#endif - #include - -@@ -332,7 +335,7 @@ gdm_session_execute (const char *file, + #ifdef HAVE_LOGINDEVPERM + #include +@@ -340,7 +343,7 @@ gdm_session_execute (const char *file, * what to search if PATH is unset. POSIX may, dunno. */ @@ -19,8 +19,8 @@ } len = strlen (file) + 1; -@@ -1757,11 +1760,12 @@ gdm_session_worker_start_user_session (G - char **environment; +@@ -1995,15 +1998,16 @@ gdm_session_worker_start_user_session (G + char *cachedirname; char *home_dir; int fd; +#ifdef HAVE_LOGINCAP @@ -28,6 +28,10 @@ + struct passwd *pwent = getpwnam (login); +#endif + /* Make sure cachedir gets created before we drop to user */ + cachedirname = gdm_session_worker_create_cachedir (worker); + g_free (cachedirname); + - if (setuid (worker->priv->uid) < 0) { - g_debug ("GdmSessionWorker: could not reset uid - %s", g_strerror (errno)); - _exit (1); @@ -36,7 +40,7 @@ if (setsid () < 0) { g_debug ("GdmSessionWorker: could not set pid '%u' as leader of new session and process group - %s", -@@ -1769,6 +1773,28 @@ gdm_session_worker_start_user_session (G +@@ -2011,6 +2015,28 @@ gdm_session_worker_start_user_session (G _exit (2); } diff --git a/x11/gdm/files/patch-gui_simple-greeter_gdm-greeter-login-window.c b/x11/gdm/files/patch-gui_simple-greeter_gdm-greeter-login-window.c new file mode 100644 index 000000000000..55f6d7ec8bd2 --- /dev/null +++ b/x11/gdm/files/patch-gui_simple-greeter_gdm-greeter-login-window.c @@ -0,0 +1,155 @@ +--- gui/simple-greeter/gdm-greeter-login-window.c.orig 2009-10-24 20:05:24.000000000 -0400 ++++ gui/simple-greeter/gdm-greeter-login-window.c 2009-10-24 20:11:02.000000000 -0400 +@@ -56,10 +56,6 @@ + #include + #include + +-#ifdef HAVE_DEVICEKIT_POWER +-#include +-#endif +- + #include "gdm-settings-client.h" + #include "gdm-settings-keys.h" + #include "gdm-profile.h" +@@ -83,6 +79,10 @@ + #define CK_SEAT_INTERFACE "org.freedesktop.ConsoleKit.Seat" + #define CK_SESSION_INTERFACE "org.freedesktop.ConsoleKit.Session" + ++#define GPM_DBUS_NAME "org.freedesktop.PowerManagement" ++#define GPM_DBUS_PATH "/org/freedesktop/PowerManagement" ++#define GPM_DBUS_INTERFACE "org.freedesktop.PowerManagement" ++ + #define GLADE_XML_FILE "gdm-greeter-login-window.glade" + + #define KEY_GREETER_DIR "/apps/gdm/simple-greeter" +@@ -477,22 +477,46 @@ adjust_other_login_visibility(GdmGreeter + } + } + +-#ifdef HAVE_DEVICEKIT_POWER + static gboolean + can_suspend (GdmGreeterLoginWindow *login_window) + { +- gboolean ret; +- DkpClient *dkp_client; ++ DBusGConnection *connection; ++ DBusGProxy *proxy; ++ GError *error; ++ gboolean ret; ++ gboolean res; ++ ++ error = NULL; ++ connection = dbus_g_bus_get (DBUS_BUS_SESSION, &error); ++ if (error != NULL) { ++ g_warning ("Couldn't connect to power manager: %s", error->message); ++ g_error_free (error); ++ return FALSE; ++ } ++ proxy = dbus_g_proxy_new_for_name (connection, ++ GPM_DBUS_NAME, ++ GPM_DBUS_PATH, ++ GPM_DBUS_INTERFACE); ++ ++ ret = FALSE; ++ ++ res = dbus_g_proxy_call (proxy, "CanSuspend", ++ &error, ++ G_TYPE_INVALID, ++ G_TYPE_BOOLEAN, ++ &ret, ++ G_TYPE_INVALID); ++ if (!res) { ++ if (error != NULL) { ++ g_warning ("Could not ask power manager if user can suspend: %s", ++ error->message); ++ g_error_free (error); ++ } ++ ret = FALSE; ++ } + +- /* use DeviceKit-power to get data */ +- dkp_client = dkp_client_new (); +- g_object_get (dkp_client, +- "can-suspend", &ret, +- NULL); +- g_object_unref (dkp_client); +- return ret; ++ return ret; + } +-#endif + + static void + remove_sensitize_power_buttons_timeout (GdmGreeterLoginWindow *login_window) +@@ -544,11 +568,7 @@ switch_mode (GdmGreeterLoginWindow *logi + + show_restart_buttons = get_show_restart_buttons (login_window); + +-#ifdef HAVE_DEVICEKIT_POWER + show_suspend_button = can_suspend (login_window); +-#else +- show_suspend_button = FALSE; +-#endif + + /* we want to run this even if we're supposed to + be in the mode already so that we reset everything +@@ -634,25 +654,39 @@ do_disconnect (GdmGreeterLoginWindow *lo + gtk_main_quit (); + } + +-#ifdef HAVE_DEVICEKIT_POWER + static void + do_suspend (GdmGreeterLoginWindow *login_window) + { +- gboolean ret; +- DkpClient *dkp_client; +- GError *error = NULL; +- +- /* use DeviceKit-power to get data */ +- dkp_client = dkp_client_new (); +- ret = dkp_client_suspend (dkp_client, &error); +- if (!ret) { ++ GError *error; ++ DBusGConnection *connection; ++ DBusGProxy *proxy; ++ ++ g_debug ("GdmGreeterLoginWindow: Suspend button clicked"); ++ ++ error = NULL; ++ connection = dbus_g_bus_get (DBUS_BUS_SESSION, &error); ++ if (error != NULL) { + g_warning ("Couldn't suspend: %s", error->message); + g_error_free (error); + return; + } +- g_object_unref (dkp_client); ++ proxy = dbus_g_proxy_new_for_name (connection, ++ GPM_DBUS_NAME, ++ GPM_DBUS_PATH, ++ GPM_DBUS_INTERFACE); ++ error = NULL; ++ dbus_g_proxy_call (proxy, ++ "Suspend", ++ &error, ++ G_TYPE_INVALID, ++ G_TYPE_INVALID); ++ if (error != NULL) { ++ g_warning ("Couldn't suspend: %s", error->message); ++ g_error_free (error); ++ return; ++ } ++ g_object_unref (proxy); + } +-#endif + + static void + delete_entry_text (GtkWidget *entry) +@@ -971,9 +1005,7 @@ static void + suspend_button_clicked (GtkButton *button, + GdmGreeterLoginWindow *login_window) + { +-#ifdef HAVE_DEVICEKIT_POWER + do_suspend (login_window); +-#endif + } + + diff --git a/x11/gdm/files/patch-gui_simple-greeter_gdm-languages.c b/x11/gdm/files/patch-gui_simple-greeter_gdm-languages.c index 9116dc917a64..675925aa926b 100644 --- a/x11/gdm/files/patch-gui_simple-greeter_gdm-languages.c +++ b/x11/gdm/files/patch-gui_simple-greeter_gdm-languages.c @@ -1,5 +1,5 @@ ---- 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 +--- gui/simple-greeter/gdm-languages.c.orig 2009-07-20 03:09:09.000000000 +0200 ++++ gui/simple-greeter/gdm-languages.c 2009-07-20 10:02:41.000000000 +0200 @@ -168,13 +168,13 @@ gdm_parse_language_name (const char *nam *codesetp = NULL; } @@ -16,7 +16,16 @@ } if (modifierp != NULL) { -@@ -353,7 +353,7 @@ add_locale (const char *language_name) +@@ -314,7 +314,7 @@ language_name_has_translations (const ch + const char *name; + gboolean has_translations; + +- path = g_build_filename (GNOMELOCALEDIR, language_name, "LC_MESSAGES", NULL); ++ path = g_build_filename ("/usr/share/locale", language_name, "LC_MESSAGES", NULL); + + has_translations = FALSE; + dir = g_dir_open (path, 0, NULL); +@@ -352,7 +352,7 @@ add_locale (const char *language_name) if (language_name_is_utf8 (language_name)) { name = g_strdup (language_name); } else { @@ -25,20 +34,11 @@ 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) +@@ -501,7 +501,7 @@ collect_locales_from_directory (void) int ndirents; int cnt; -- ndirents = scandir (GNOMELOCALEDIR, &dirents, select_dirs, alphasort); +- ndirents = scandir (LIBLOCALEDIR, &dirents, select_dirs, alphasort); + ndirents = scandir ("/usr/share/locale", &dirents, select_dirs, alphasort); for (cnt = 0; cnt < ndirents; ++cnt) { 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 index d666bc1fd826..d0a5d73f5e47 100644 --- a/x11/gdm/files/patch-gui_simple-greeter_gdm-user-manager.c +++ b/x11/gdm/files/patch-gui_simple-greeter_gdm-user-manager.c @@ -1,12 +1,20 @@ ---- 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; +--- gui/simple-greeter/gdm-user-manager.c.orig 2009-09-21 16:05:27.000000000 -0400 ++++ gui/simple-greeter/gdm-user-manager.c 2009-10-14 12:58:37.000000000 -0400 +@@ -65,6 +65,8 @@ + + #ifdef __sun + #define DEFAULT_MINIMAL_UID 100 ++#elif defined(__FreeBSD__) ++#define DEFAULT_MINIMAL_UID 1000 + #else + #define DEFAULT_MINIMAL_UID 500 + #endif +@@ -1366,17 +1368,24 @@ reload_passwd (GdmUserManager *manager) GSList *new_users; GSList *list; -- FILE *fp; + GSList *dup; +#ifndef __FreeBSD__ -+ FILE *fp; + FILE *fp; +#endif old_users = NULL; @@ -15,6 +23,7 @@ +#ifdef __FreeBSD__ + setpwent (); +#else ++ errno = 0; fp = fopen (PATH_PASSWD, "r"); if (fp == NULL) { @@ -25,7 +34,7 @@ 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) +@@ -1390,7 +1399,11 @@ reload_passwd (GdmUserManager *manager) } } @@ -37,7 +46,7 @@ GdmUser *user; user = NULL; -@@ -1355,7 +1365,11 @@ reload_passwd (GdmUserManager *manager) +@@ -1461,7 +1474,11 @@ reload_passwd (GdmUserManager *manager) out: /* Cleanup */ diff --git a/x11/gdm/files/patch-gui_simple-greeter_gdm-user.c b/x11/gdm/files/patch-gui_simple-greeter_gdm-user.c index 049b75b42036..fae89ec079d8 100644 --- a/x11/gdm/files/patch-gui_simple-greeter_gdm-user.c +++ b/x11/gdm/files/patch-gui_simple-greeter_gdm-user.c @@ -1,14 +1,14 @@ ---- gui/simple-greeter/gdm-user.c.orig 2009-05-16 17:52:57.000000000 -0400 -+++ gui/simple-greeter/gdm-user.c 2009-05-16 18:08:08.000000000 -0400 -@@ -412,6 +412,7 @@ _gdm_user_update (GdmUser *u +--- gui/simple-greeter/gdm-user.c.orig 2009-07-20 03:09:09.000000000 +0200 ++++ gui/simple-greeter/gdm-user.c 2009-07-20 10:09:41.000000000 +0200 +@@ -427,6 +427,7 @@ _gdm_user_update (GdmUser *u /* Display Name */ if (pwent->pw_gecos && pwent->pw_gecos[0] != '\0') { gchar *first_comma; + gchar *ampersand; + gchar *real_name_utf8; - first_comma = strchr (pwent->pw_gecos, ','); - if (first_comma) { -@@ -425,6 +426,23 @@ _gdm_user_update (GdmUser *u + real_name_utf8 = g_locale_to_utf8 (pwent->pw_gecos, -1, NULL, NULL, NULL); +@@ -443,6 +444,23 @@ _gdm_user_update (GdmUser *u g_free (real_name); real_name = NULL; } diff --git a/x11/gdm/files/patch-hal-keyboard b/x11/gdm/files/patch-hal-keyboard index a712f04a128a..904f1cdaccaa 100644 --- a/x11/gdm/files/patch-hal-keyboard +++ b/x11/gdm/files/patch-hal-keyboard @@ -1,6 +1,5 @@ -diff -up gdm-2.25.2/daemon/gdm-session-direct.c.system-keyboard gdm-2.25.2/daemon/gdm-session-direct.c ---- daemon/gdm-session-direct.c.system-keyboard 2008-08-26 15:04:00.000000000 -0400 -+++ daemon/gdm-session-direct.c 2009-02-24 22:55:02.656566009 -0500 +--- daemon/gdm-session-direct.c.orig 2009-07-20 03:09:09.000000000 +0200 ++++ daemon/gdm-session-direct.c 2009-07-20 10:14:45.000000000 +0200 @@ -45,6 +45,8 @@ #include #include @@ -10,7 +9,7 @@ diff -up gdm-2.25.2/daemon/gdm-session-direct.c.system-keyboard gdm-2.25.2/daemo #include "gdm-session-direct.h" #include "gdm-session.h" #include "gdm-session-private.h" -@@ -595,14 +597,66 @@ get_default_language_name (GdmSessionDir +@@ -597,14 +599,66 @@ get_default_language_name (GdmSessionDir return setlocale (LC_MESSAGES, NULL); } @@ -80,23 +79,19 @@ diff -up gdm-2.25.2/daemon/gdm-session-direct.c.system-keyboard gdm-2.25.2/daemo } static char * -@@ -1971,9 +2025,10 @@ setup_session_environment (GdmSessionDir +@@ -1953,8 +2007,8 @@ setup_session_environment (GdmSessionDir "GDM_LANG", get_language_name (session)); -- gdm_session_direct_set_environment_variable (session, -- "GDM_KEYBOARD_LAYOUT", -- get_layout_name (session)); -+ if (g_strcmp0 (get_layout_name (session), get_system_default_layout (session)) != 0) -+ gdm_session_direct_set_environment_variable (session, -+ "GDM_KEYBOARD_LAYOUT", -+ get_layout_name (session)); - - gdm_session_direct_set_environment_variable (session, - "DISPLAY", -diff -up gdm-2.25.2/daemon/gdm-session-settings.c.system-keyboard gdm-2.25.2/daemon/gdm-session-settings.c ---- daemon/gdm-session-settings.c.system-keyboard 2008-08-26 15:04:00.000000000 -0400 -+++ daemon/gdm-session-settings.c 2009-02-24 22:51:00.158815919 -0500 +- if (strcmp (get_layout_name (session), +- get_default_layout_name (session)) == 0) { ++ if (g_strcmp0 (get_layout_name (session), ++ get_default_layout_name (session)) != 0) { + gdm_session_direct_set_environment_variable (session, + "GDM_KEYBOARD_LAYOUT", + get_layout_name (session)); +--- daemon/gdm-session-settings.c.orig 2009-05-19 17:18:12.000000000 +0200 ++++ daemon/gdm-session-settings.c 2009-07-20 10:10:15.000000000 +0200 @@ -149,8 +149,7 @@ gdm_session_settings_set_layout_name (Gd { g_return_if_fail (GDM_IS_SESSION_SETTINGS (settings)); -- cgit v1.2.3