From 4083398e2e08c4cd6baa379ce93299e3c3bc947cb4b76b127d22d76e0474fdc0 Mon Sep 17 00:00:00 2001 From: Vincent Untz Date: Wed, 12 Sep 2012 09:18:56 +0000 Subject: [PATCH 1/4] Accepting request 133693 from GNOME:Next Pushing from G:N; package is fine with me now; just not sure the two patches I rebased work ;-) OBS-URL: https://build.opensuse.org/request/show/133693 OBS-URL: https://build.opensuse.org/package/show/GNOME:Factory/gdm?expand=0&rev=217 --- gdm-3.4.1.tar.xz | 3 - gdm-3.5.91.tar.xz | 3 + gdm-default-wm.patch | 26 +- gdm-desktop-session-env-pam.patch | 208 ++++----- gdm-fingerprint.pamd | 17 + gdm-helper-directory.patch | 84 ---- ...elcome.pamd => gdm-launch-environment.pamd | 0 gdm-passwordless-login.patch | 77 ++-- gdm-plymouth.patch | 396 ------------------ gdm-selinux.patch | 26 -- gdm-smartcard.pamd | 18 + gdm-sysconfig-settings.patch | 56 +-- gdm-vt-allocation-hack.patch | 117 ------ gdm-xauthlocalhostname.patch | 72 ++-- gdm.changes | 152 +++++++ gdm.spec | 117 ++---- gdmflexiserver-wrapper | 8 - 17 files changed, 435 insertions(+), 945 deletions(-) delete mode 100644 gdm-3.4.1.tar.xz create mode 100644 gdm-3.5.91.tar.xz create mode 100644 gdm-fingerprint.pamd delete mode 100644 gdm-helper-directory.patch rename gdm-welcome.pamd => gdm-launch-environment.pamd (100%) delete mode 100644 gdm-plymouth.patch delete mode 100644 gdm-selinux.patch create mode 100644 gdm-smartcard.pamd delete mode 100644 gdm-vt-allocation-hack.patch delete mode 100644 gdmflexiserver-wrapper diff --git a/gdm-3.4.1.tar.xz b/gdm-3.4.1.tar.xz deleted file mode 100644 index 4f6be42..0000000 --- a/gdm-3.4.1.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:6292968dff5fc89877b5e1aaa3c7d1484dd3ed2d4f388e935841d053439be665 -size 1615612 diff --git a/gdm-3.5.91.tar.xz b/gdm-3.5.91.tar.xz new file mode 100644 index 0000000..44ef3e6 --- /dev/null +++ b/gdm-3.5.91.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fc7fd30ab41c631e91399623a4769a013c37aa3018659e4d92209f5767d2f44d +size 1642176 diff --git a/gdm-default-wm.patch b/gdm-default-wm.patch index fbd3c29..bd08b89 100644 --- a/gdm-default-wm.patch +++ b/gdm-default-wm.patch @@ -1,28 +1,28 @@ -Index: gdm-2.30.4/daemon/gdm-session-direct.c -=================================================================== ---- gdm-2.30.4.orig/daemon/gdm-session-direct.c -+++ gdm-2.30.4/daemon/gdm-session-direct.c -@@ -50,6 +50,8 @@ - #include - #include +diff --git a/daemon/gdm-session.c b/daemon/gdm-session.c +index 90b9045..f2ea011 100644 +--- a/daemon/gdm-session.c ++++ b/daemon/gdm-session.c +@@ -43,6 +43,8 @@ + #include + #include +#include "gdm-sysconfig.h" + - #include "gdm-session-direct.h" #include "gdm-session.h" - #include "gdm-session-private.h" -@@ -662,6 +664,14 @@ get_fallback_session_name (GdmSessionDir + #include "gdm-session-glue.h" + #include "gdm-dbus-util.h" +@@ -518,6 +520,14 @@ get_fallback_session_name (GdmSession *self) } } + name = gdm_sysconfig_load_value ("/etc/sysconfig/windowmanager", "DEFAULT_WM"); + if (name && get_session_command_for_name (name, NULL)) { -+ g_free (session_direct->priv->fallback_session_name); -+ session_direct->priv->fallback_session_name = name; ++ g_free (self->priv->fallback_session_name); ++ self->priv->fallback_session_name = name; + goto out; + } + g_free (name); + name = g_strdup ("gnome"); if (get_session_command_for_name (name, NULL)) { - g_free (session_direct->priv->fallback_session_name); + g_free (self->priv->fallback_session_name); diff --git a/gdm-desktop-session-env-pam.patch b/gdm-desktop-session-env-pam.patch index d675d0b..fc68f62 100644 --- a/gdm-desktop-session-env-pam.patch +++ b/gdm-desktop-session-env-pam.patch @@ -1,29 +1,17 @@ -Index: gdm-3.3.92.1/daemon/gdm-session-worker.c +Index: gdm-3.5.91/daemon/gdm-session-worker.c =================================================================== ---- gdm-3.3.92.1.orig/daemon/gdm-session-worker.c -+++ gdm-3.3.92.1/daemon/gdm-session-worker.c -@@ -148,6 +148,8 @@ struct GdmSessionWorkerPrivate - - GdmSessionAuditor *auditor; +--- gdm-3.5.91.orig/daemon/gdm-session-worker.c ++++ gdm-3.5.91/daemon/gdm-session-worker.c +@@ -159,6 +159,8 @@ struct GdmSessionWorkerPrivate GdmSessionSettings *user_settings; + + GDBusMethodInvocation *pending_invocation; + -+ char *suse_session_name; ++ char *suse_session_name; }; enum { -@@ -166,6 +168,11 @@ static void gdm_session_worker_set_e - static void queue_state_change (GdmSessionWorker *worker); - - -+static void -+gdm_session_worker_set_environment_variable (GdmSessionWorker *worker, -+ const char *key, -+ const char *value); -+ - typedef int (* GdmSessionWorkerPamNewMessagesFunc) (int, - const struct pam_message **, - struct pam_response **, -@@ -1196,6 +1203,9 @@ gdm_session_worker_initialize_pam (GdmSe +@@ -1115,6 +1117,9 @@ gdm_session_worker_initialize_pam (GdmSe } #endif @@ -33,10 +21,11 @@ Index: gdm-3.3.92.1/daemon/gdm-session-worker.c g_debug ("GdmSessionWorker: state SETUP_COMPLETE"); worker->priv->state = GDM_SESSION_WORKER_STATE_SETUP_COMPLETE; -@@ -2051,11 +2061,26 @@ static void - gdm_session_worker_set_session_name (GdmSessionWorker *worker, - const char *session_name) +@@ -2035,12 +2040,36 @@ gdm_session_worker_handle_set_session_na { + GdmSessionWorker *worker = GDM_SESSION_WORKER (object); + g_debug ("GdmSessionWorker: session name set to %s", session_name); ++ + if (worker->priv->pam_handle != NULL) + gdm_session_worker_set_environment_variable (worker, "DESKTOP_SESSION", session_name); + g_free (worker->priv->suse_session_name); @@ -44,146 +33,133 @@ Index: gdm-3.3.92.1/daemon/gdm-session-worker.c + gdm_session_settings_set_session_name (worker->priv->user_settings, session_name); + gdm_dbus_worker_complete_set_session_name (object, invocation); + return TRUE; } - static void -+gdm_session_worker_set_default_session_name (GdmSessionWorker *worker, -+ const char *session_name) ++static gboolean ++gdm_session_worker_handle_set_default_session_name (GdmDBusWorker *object, ++ GDBusMethodInvocation *invocation, ++ const char *session_name) +{ ++ GdmSessionWorker *worker = GDM_SESSION_WORKER (object); ++ g_debug ("GdmSessionWorker: default session name set to %s", session_name); ++ + if (worker->priv->pam_handle != NULL) + gdm_session_worker_set_environment_variable (worker, "DESKTOP_SESSION", session_name); + g_free (worker->priv->suse_session_name); + worker->priv->suse_session_name = g_strdup (session_name); ++ ++ gdm_dbus_worker_complete_set_default_session_name (object, invocation); ++ return TRUE; +} + -+static void - on_set_session_name (GdmSessionWorker *worker, - DBusMessage *message) - { -@@ -2108,6 +2133,28 @@ on_set_session_type (GdmSessionWorker *w - } ++ + static gboolean + gdm_session_worker_handle_set_session_type (GdmDBusWorker *object, + GDBusMethodInvocation *invocation, +@@ -2831,6 +2860,7 @@ worker_interface_init (GdmDBusWorkerIfac + interface->handle_open = gdm_session_worker_handle_open; + interface->handle_set_language_name = gdm_session_worker_handle_set_language_name; + interface->handle_set_session_name = gdm_session_worker_handle_set_session_name; ++ interface->handle_set_default_session_name = gdm_session_worker_handle_set_default_session_name; + interface->handle_set_session_type = gdm_session_worker_handle_set_session_type; + interface->handle_set_environment_variable = gdm_session_worker_handle_set_environment_variable; + interface->handle_start_program = gdm_session_worker_handle_start_program; +@@ -2943,6 +2973,8 @@ gdm_session_worker_finalize (GObject *ob - static void -+on_set_default_session_name (GdmSessionWorker *worker, -+ DBusMessage *message) -+{ -+ DBusError error; -+ const char *session_name; -+ dbus_bool_t res; -+ -+ dbus_error_init (&error); -+ res = dbus_message_get_args (message, -+ &error, -+ DBUS_TYPE_STRING, &session_name, -+ DBUS_TYPE_INVALID); -+ if (res) { -+ g_debug ("GdmSessionWorker: default session name changed; session name set to %s", session_name); -+ gdm_session_worker_set_default_session_name (worker, session_name); -+ } else { -+ g_warning ("Unable to get arguments: %s", error.message); -+ dbus_error_free (&error); -+ } -+} -+ -+static void - gdm_session_worker_set_language_name (GdmSessionWorker *worker, - const char *language_name) - { -@@ -2830,6 +2877,8 @@ worker_dbus_handle_message (DBusConnecti - on_set_session_name (worker, message); - } else if (dbus_message_is_signal (message, GDM_SESSION_DBUS_INTERFACE, "SetSessionType")) { - on_set_session_type (worker, message); -+ } else if (dbus_message_is_signal (message, GDM_SESSION_DBUS_INTERFACE, "SetDefaultSessionName")) { -+ on_set_default_session_name (worker, message); - } else { - return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; - } -@@ -3001,6 +3050,8 @@ gdm_session_worker_finalize (GObject *ob - g_free (worker->priv->server_address); - g_strfreev (worker->priv->arguments); + g_hash_table_unref (worker->priv->reauthentication_requests); + g_free (worker->priv->suse_session_name); + G_OBJECT_CLASS (gdm_session_worker_parent_class)->finalize (object); } -Index: gdm-3.3.92.1/daemon/gdm-session-direct.c +Index: gdm-3.5.91/daemon/gdm-session-worker.xml =================================================================== ---- gdm-3.3.92.1.orig/daemon/gdm-session-direct.c -+++ gdm-3.3.92.1/daemon/gdm-session-direct.c -@@ -135,6 +135,8 @@ G_DEFINE_TYPE_WITH_CODE (GdmSessionDirec - G_IMPLEMENT_INTERFACE (GDM_TYPE_SESSION, - gdm_session_iface_init)) +--- gdm-3.5.91.orig/daemon/gdm-session-worker.xml ++++ gdm-3.5.91/daemon/gdm-session-worker.xml +@@ -13,6 +13,9 @@ + + + ++ ++ ++ + + + +Index: gdm-3.5.91/daemon/gdm-session.c +=================================================================== +--- gdm-3.5.91.orig/daemon/gdm-session.c ++++ gdm-3.5.91/daemon/gdm-session.c +@@ -162,6 +162,8 @@ G_DEFINE_TYPE (GdmSession, + gdm_session, + G_TYPE_OBJECT); -+static const char *get_session_name (GdmSessionDirect *session); ++static const char *get_session_name (GdmSession *self); + - static gboolean - send_dbus_message (GdmSessionConversation *conversation, - DBusMessage *message) -@@ -774,10 +776,27 @@ get_default_session_name (GdmSessionDire + static GdmSessionConversation * + find_conversation_by_name (GdmSession *self, + const char *service_name) +@@ -598,6 +600,9 @@ get_default_session_name (GdmSession *se static void - gdm_session_direct_defaults_changed (GdmSessionDirect *session) + gdm_session_defaults_changed (GdmSession *self) { -+ GdmSessionDirect *impl = GDM_SESSION_DIRECT (session); + GHashTableIter iter; + gpointer key, value; + const char *text; + + if (self->priv->greeter_interface != NULL) { + gdm_dbus_greeter_emit_default_language_name_changed (self->priv->greeter_interface, +@@ -605,6 +610,19 @@ gdm_session_defaults_changed (GdmSession + gdm_dbus_greeter_emit_default_session_name_changed (self->priv->greeter_interface, + get_default_session_name (self)); + } + - _gdm_session_default_language_name_changed (GDM_SESSION (session), - get_default_language_name (session)); - _gdm_session_default_session_name_changed (GDM_SESSION (session), - get_default_session_name (session)); ++ text = get_session_name (self); + -+ text = get_session_name (impl); -+ -+ g_hash_table_iter_init (&iter, impl->priv->conversations); ++ g_hash_table_iter_init (&iter, self->priv->conversations); + while (g_hash_table_iter_next (&iter, &key, &value)) { + GdmSessionConversation *conversation; + + conversation = (GdmSessionConversation *) value; + -+ send_dbus_string_signal (conversation, "SetDefaultSessionName", -+ text); ++ gdm_dbus_worker_call_set_default_session_name (conversation->worker_proxy, ++ text, ++ NULL, NULL, NULL); + } } - static void -@@ -1230,11 +1249,28 @@ gdm_session_direct_handle_saved_session_ + void +@@ -910,6 +928,10 @@ worker_on_saved_session_name_read (GdmDB if (strcmp (session_name, - get_default_session_name (session)) != 0) { -+ GdmSessionDirect *impl = GDM_SESSION_DIRECT (session); + get_default_session_name (self)) != 0) { + GHashTableIter iter; + gpointer key, value; + const char *text; + - g_free (session->priv->saved_session); - session->priv->saved_session = g_strdup (session_name); + g_free (self->priv->saved_session); + self->priv->saved_session = g_strdup (session_name); - _gdm_session_default_session_name_changed (GDM_SESSION (session), - session_name); +@@ -917,6 +939,19 @@ worker_on_saved_session_name_read (GdmDB + gdm_dbus_greeter_emit_default_session_name_changed (self->priv->greeter_interface, + session_name); + } + -+ text = get_session_name (impl); ++ text = get_session_name (self); + -+ g_hash_table_iter_init (&iter, impl->priv->conversations); ++ g_hash_table_iter_init (&iter, self->priv->conversations); + while (g_hash_table_iter_next (&iter, &key, &value)) { + GdmSessionConversation *conversation; + + conversation = (GdmSessionConversation *) value; + -+ send_dbus_string_signal (conversation, "SetDefaultSessionName", -+ text); ++ gdm_dbus_worker_call_set_default_session_name (conversation->worker_proxy, ++ text, ++ NULL, NULL, NULL); + } } - out: - return DBUS_HANDLER_RESULT_HANDLED; -@@ -1434,6 +1470,9 @@ do_introspect (DBusConnection *connectio - " \n" - " \n" - " \n" -+ " \n" -+ " \n" -+ " \n" - " \n" - " \n" - " \n" + } + diff --git a/gdm-fingerprint.pamd b/gdm-fingerprint.pamd new file mode 100644 index 0000000..9d0b095 --- /dev/null +++ b/gdm-fingerprint.pamd @@ -0,0 +1,17 @@ +# Sample PAM file for doing fingerprint authentication. +# Distros should replace this with what makes sense for them. +auth required pam_env.so +auth required pam_fprintd.so +auth sufficient pam_succeed_if.so uid >= 500 quiet +auth required pam_deny.so + +account required pam_unix.so +account sufficient pam_localuser.so +account sufficient pam_succeed_if.so uid < 500 quiet +account required pam_permit.so + +password required pam_deny.so + +session optional pam_keyinit.so revoke +session required pam_limits.so +session required pam_unix.so diff --git a/gdm-helper-directory.patch b/gdm-helper-directory.patch deleted file mode 100644 index e942acd..0000000 --- a/gdm-helper-directory.patch +++ /dev/null @@ -1,84 +0,0 @@ -Index: gdm-3.1.90/configure.ac -=================================================================== ---- gdm-3.1.90.orig/configure.ac -+++ gdm-3.1.90/configure.ac -@@ -1045,6 +1045,22 @@ fi - AC_SUBST(GDM_CUSTOM_CONF) - AC_SUBST(GDM_OLD_CONF, '${gdmconfdir}/gdm.conf') - -+AC_ARG_WITH(consolekit-directory, -+ [AC_HELP_STRING([--with-consolekit-directory], -+ [Specify the directory of ck-get-x11-display-device @<:@default=libexecdir@:>@])],, -+ [with_consolekit_directory="\${libexecdir}"]) -+ -+CONSOLEKIT_DIR=$with_consolekit_directory -+AC_SUBST(CONSOLEKIT_DIR) -+ -+AC_ARG_WITH(check-accelerated-directory, -+ [AC_HELP_STRING([--with-check-accelerated-directory], -+ [Specify the directory of gnome-session-check-accelerated @<:@default=libexecdir@:>@])],, -+ [with_check_accelerated_directory="\${libexecdir}"]) -+ -+CHECK_ACCELERATED_DIR=$with_check_accelerated_directory -+AC_SUBST(CHECK_ACCELERATED_DIR) -+ - dnl --------------------------------------------------------------------------- - dnl - Check for XEvIE extension support - dnl --------------------------------------------------------------------------- -@@ -1497,6 +1513,8 @@ echo " - dmconfdir: ${dmconfdir} - localstatedir: ${localstatedir} - datadir: ${datadir} -+ consolekit location: ${with_consolekit_directory} -+ gnome-session-check-accel location: ${with_check_accelerated_directory} - source code location: ${srcdir} - compiler: ${CC} - cflags: ${CFLAGS} -Index: gdm-3.1.90/daemon/Makefile.am -=================================================================== ---- gdm-3.1.90.orig/daemon/Makefile.am -+++ gdm-3.1.90/daemon/Makefile.am -@@ -20,6 +20,7 @@ AM_CPPFLAGS = \ - -DGDM_SCREENSHOT_DIR=\"$(GDM_SCREENSHOT_DIR)\" \ - -DGDM_CACHE_DIR=\""$(localstatedir)/cache/gdm"\" \ - -DGDM_SESSION_DEFAULT_PATH=\"$(GDM_SESSION_DEFAULT_PATH)\" \ -+ -DCONSOLEKIT_DIR=\"$(CONSOLEKIT_DIR)\" \ - $(DISABLE_DEPRECATED_CFLAGS) \ - $(DAEMON_CFLAGS) \ - $(XLIB_CFLAGS) \ -Index: gdm-3.1.90/daemon/gdm-server.c -=================================================================== ---- gdm-3.1.90.orig/daemon/gdm-server.c -+++ gdm-3.1.90/daemon/gdm-server.c -@@ -134,7 +134,7 @@ _gdm_server_query_ck_for_display_device - g_return_val_if_fail (GDM_IS_SERVER (server), NULL); - - error = NULL; -- command = g_strdup_printf (LIBEXECDIR "/ck-get-x11-display-device --display %s", -+ command = g_strdup_printf (CONSOLEKIT_DIR "/ck-get-x11-display-device --display %s", - server->priv->display_name); - - g_debug ("GdmServer: Running helper %s", command); -Index: gdm-3.1.90/data/gdm-shell.session.in -=================================================================== ---- gdm-3.1.90.orig/data/gdm-shell.session.in -+++ gdm-3.1.90/data/gdm-shell.session.in -@@ -1,5 +1,5 @@ - [GNOME Session] - Name=Display Manager - RequiredComponents=gnome-shell;gnome-settings-daemon; --IsRunnableHelper=bash -c 'gnome-shell --help | grep -q gdm-mode && @libexecdir@/gnome-session-check-accelerated' -+IsRunnableHelper=bash -c 'gnome-shell --help | grep -q gdm-mode && @CHECK_ACCELERATED_DIR@/gnome-session-check-accelerated' - FallbackSession=gdm-fallback -Index: gdm-3.1.90/data/Makefile.am -=================================================================== ---- gdm-3.1.90.orig/data/Makefile.am -+++ gdm-3.1.90/data/Makefile.am -@@ -77,6 +77,7 @@ gdm.schemas.in: $(srcdir)/gdm.schemas.in - - gdm-shell.session: $(srcdir)/gdm-shell.session.in - sed -e 's,[@]libexecdir[@],$(libexecdir),g' \ -+ -e 's,[@]CHECK_ACCELERATED_DIR[@],$(CHECK_ACCELERATED_DIR),g' \ - < $(srcdir)/gdm-shell.session.in > gdm-shell.session - - localealiasdir = $(datadir)/gdm diff --git a/gdm-welcome.pamd b/gdm-launch-environment.pamd similarity index 100% rename from gdm-welcome.pamd rename to gdm-launch-environment.pamd diff --git a/gdm-passwordless-login.patch b/gdm-passwordless-login.patch index 48bc2fd..c6eea8c 100644 --- a/gdm-passwordless-login.patch +++ b/gdm-passwordless-login.patch @@ -1,8 +1,8 @@ -Index: gdm-3.1.2/common/gdm-settings-system-backend.c +Index: gdm-3.5.91/common/gdm-settings-system-backend.c =================================================================== ---- gdm-3.1.2.orig/common/gdm-settings-system-backend.c -+++ gdm-3.1.2/common/gdm-settings-system-backend.c -@@ -44,11 +44,11 @@ +--- gdm-3.5.91.orig/common/gdm-settings-system-backend.c ++++ gdm-3.5.91/common/gdm-settings-system-backend.c +@@ -43,11 +43,11 @@ #define SYSCONFIG_AUTOLOGIN_KEY "DISPLAYMANAGER_AUTOLOGIN" #define SYSCONFIG_TCP_OPEN_KEY "DISPLAYMANAGER_XSERVER_TCP_PORT_6000_OPEN" #define SYSCONFIG_XDMCP_KEY "DISPLAYMANAGER_REMOTE_ACCESS" @@ -15,7 +15,7 @@ Index: gdm-3.1.2/common/gdm-settings-system-backend.c * - DISPLAYMANAGER_AD_INTEGRATION * - DISPLAYMANAGER_SHUTDOWN (handled by ConsoleKit) */ -@@ -66,12 +66,14 @@ struct GdmSettingsSystemBackendPrivate +@@ -65,12 +65,14 @@ struct GdmSettingsSystemBackendPrivate gboolean dirty_autologin_user; gboolean dirty_tcp_open; gboolean dirty_xdmcp; @@ -30,7 +30,7 @@ Index: gdm-3.1.2/common/gdm-settings-system-backend.c }; static void gdm_settings_system_backend_class_init (GdmSettingsSystemBackendClass *klass); -@@ -141,6 +143,16 @@ gdm_settings_system_backend_get_value (G +@@ -140,6 +142,16 @@ gdm_settings_system_backend_get_value (G val = g_strdup (xdmcp ? "true" : "false"); } } @@ -47,7 +47,7 @@ Index: gdm-3.1.2/common/gdm-settings-system-backend.c } else { g_set_error (error, GDM_SETTINGS_BACKEND_ERROR, GDM_SETTINGS_BACKEND_ERROR_KEY_NOT_FOUND, "Key not found"); goto out; -@@ -201,6 +213,12 @@ save_settings (GdmSettingsSystemBackend +@@ -200,6 +212,12 @@ save_settings (GdmSettingsSystemBackend backend->priv->set_xdmcp ? "yes" : "no"); } @@ -60,7 +60,7 @@ Index: gdm-3.1.2/common/gdm-settings-system-backend.c if (!gdm_sysconfig_save_file (backend->priv->filename, backend->priv->lines)) g_warning ("Unable to save settings to %s.", backend->priv->filename); -@@ -209,6 +227,7 @@ save_settings (GdmSettingsSystemBackend +@@ -208,6 +226,7 @@ save_settings (GdmSettingsSystemBackend backend->priv->dirty_autologin_user = FALSE; backend->priv->dirty_tcp_open = FALSE; backend->priv->dirty_xdmcp = FALSE; @@ -68,7 +68,7 @@ Index: gdm-3.1.2/common/gdm-settings-system-backend.c } static gboolean -@@ -276,6 +295,9 @@ gdm_settings_system_backend_set_value (G +@@ -275,6 +294,9 @@ gdm_settings_system_backend_set_value (G } else if (!strcasecmp (key, GDM_KEY_XDMCP_ENABLE)) { priv->set_xdmcp = value_to_boolean (value); GDM_SETTINGS_SYSTEM_BACKEND (backend)->priv->dirty_xdmcp = TRUE; @@ -78,25 +78,25 @@ Index: gdm-3.1.2/common/gdm-settings-system-backend.c } else { g_set_error (error, GDM_SETTINGS_BACKEND_ERROR, GDM_SETTINGS_BACKEND_ERROR_KEY_NOT_FOUND, "Key not found"); return FALSE; -Index: gdm-3.1.2/common/gdm-settings-keys.h +Index: gdm-3.5.91/common/gdm-settings-keys.h =================================================================== ---- gdm-3.1.2.orig/common/gdm-settings-keys.h -+++ gdm-3.1.2/common/gdm-settings-keys.h -@@ -32,6 +32,7 @@ G_BEGIN_DECLS - #define GDM_KEY_TIMED_LOGIN_ENABLE "daemon/TimedLoginEnable" +--- gdm-3.5.91.orig/common/gdm-settings-keys.h ++++ gdm-3.5.91/common/gdm-settings-keys.h +@@ -33,6 +33,7 @@ G_BEGIN_DECLS #define GDM_KEY_TIMED_LOGIN_USER "daemon/TimedLogin" #define GDM_KEY_TIMED_LOGIN_DELAY "daemon/TimedLoginDelay" + #define GDM_KEY_INITIAL_SETUP_ENABLE "daemon/InitialSetupEnable" +#define GDM_KEY_SUSE_PASSWORDLESS_LOGIN_ENABLE "daemon/SUSEPasswordlessEnable" #define GDM_KEY_DEBUG "debug/Enable" -Index: gdm-3.1.2/data/gdm.schemas.in.in +Index: gdm-3.5.91/data/gdm.schemas.in.in =================================================================== ---- gdm-3.1.2.orig/data/gdm.schemas.in.in -+++ gdm-3.1.2/data/gdm.schemas.in.in -@@ -47,6 +47,12 @@ - i - 30 +--- gdm-3.5.91.orig/data/gdm.schemas.in.in ++++ gdm-3.5.91/data/gdm.schemas.in.in +@@ -52,6 +52,12 @@ + b + false + + @@ -107,32 +107,26 @@ Index: gdm-3.1.2/data/gdm.schemas.in.in debug/Enable -Index: gdm-3.1.2/daemon/gdm-greeter-server.c +Index: gdm-3.5.91/daemon/gdm-session.c =================================================================== ---- gdm-3.1.2.orig/daemon/gdm-greeter-server.c -+++ gdm-3.1.2/daemon/gdm-greeter-server.c -@@ -46,6 +46,9 @@ +--- gdm-3.5.91.orig/daemon/gdm-session.c ++++ gdm-3.5.91/daemon/gdm-session.c +@@ -55,6 +55,9 @@ + #include "gdm-session-worker-glue.h" #include "gdm-common.h" - #include "gdm-greeter-server.h" +#include "gdm-settings-client.h" +#include "gdm-settings-keys.h" + - #define GDM_GREETER_SERVER_DBUS_PATH "/org/gnome/DisplayManager/GreeterServer" - #define GDM_GREETER_SERVER_DBUS_INTERFACE "org.gnome.DisplayManager.GreeterServer" - -@@ -478,6 +481,7 @@ handle_begin_verification_for_user (GdmG - DBusError error; - const char *text; - const char *service_name; -+ gboolean passwordless; - - dbus_error_init (&error); - if (! dbus_message_get_args (message, &error, -@@ -488,6 +492,14 @@ handle_begin_verification_for_user (GdmG - } - dbus_error_free (&error); + #define GDM_SESSION_DBUS_ERROR_CANCEL "org.gnome.DisplayManager.Session.Error.Cancel" + #define GDM_SESSION_DBUS_OBJECT_PATH "/org/gnome/DisplayManager/Session" +@@ -1222,6 +1225,15 @@ gdm_session_handle_client_begin_verifica + GdmSession *self) + { + GdmSessionConversation *conversation; ++ gboolean passwordless; ++ + if (!gdm_settings_client_get_boolean (GDM_KEY_SUSE_PASSWORDLESS_LOGIN_ENABLE, + &passwordless)) { + passwordless = FALSE; @@ -140,7 +134,6 @@ Index: gdm-3.1.2/daemon/gdm-greeter-server.c + + if (passwordless) + service_name = "gdm-autologin"; -+ - g_debug ("GreeterServer: BeginVerificationForUser for '%s'", text); - reply = dbus_message_new_method_return (message); + conversation = begin_verification_conversation (self, invocation, service_name); + diff --git a/gdm-plymouth.patch b/gdm-plymouth.patch deleted file mode 100644 index a31252a..0000000 --- a/gdm-plymouth.patch +++ /dev/null @@ -1,396 +0,0 @@ -From e6ed6f48c35a6c736a5cde2dcfb6c10941e07809 Mon Sep 17 00:00:00 2001 -From: Ray Strode -Date: Fri, 27 Nov 2009 18:27:53 -0500 -Subject: [PATCH 1/2] Save root window to pixmap at _XROOTPMAP_ID - -This combined with starting the X server with -nr -will give us a nice fade transition when g-s-d starts ---- - daemon/gdm-simple-slave.c | 8 +++++ - daemon/gdm-slave.c | 72 +++++++++++++++++++++++++++++++++++++++++++++ - daemon/gdm-slave.h | 1 + - 3 files changed, 81 insertions(+), 0 deletions(-) - -diff --git a/daemon/gdm-simple-slave.c b/daemon/gdm-simple-slave.c -index 9d1347a..fc8649c 100644 ---- a/daemon/gdm-simple-slave.c -+++ b/daemon/gdm-simple-slave.c -@@ -1215,6 +1215,14 @@ setup_server (GdmSimpleSlave *slave) - - /* Set the initial keyboard layout to something reasonable */ - gdm_slave_set_initial_keyboard_layout (GDM_SLAVE (slave)); -+ /* The root window has a background that may be useful -+ * to cross fade or transition from when setting the -+ * login screen background. We read it here, and stuff -+ * it into the standard _XROOTPMAP_ID root window property, -+ * so gnome-settings-daemon can get at it. -+ */ -+ gdm_slave_save_root_windows (GDM_SLAVE (slave)); -+ - } - - static void -diff --git a/daemon/gdm-slave.c b/daemon/gdm-slave.c -index 371b9bd..694dcde 100644 ---- a/daemon/gdm-slave.c -+++ b/daemon/gdm-slave.c -@@ -43,6 +43,7 @@ - #include - - #include /* for Display */ -+#include /* for XA_PIXMAP */ - #include /* for watch cursor */ - #include - #include -@@ -364,6 +365,77 @@ gdm_slave_run_script (GdmSlave *slave, - return ret; - } - -+static void -+gdm_slave_save_root_window_of_screen (GdmSlave *slave, -+ Atom id_atom, -+ int screen_number) -+{ -+ Window root_window; -+ GC gc; -+ XGCValues values; -+ Pixmap pixmap; -+ int width, height, depth; -+ -+ root_window = RootWindow (slave->priv->server_display, -+ screen_number); -+ -+ width = DisplayWidth (slave->priv->server_display, screen_number); -+ height = DisplayHeight (slave->priv->server_display, screen_number); -+ depth = DefaultDepth (slave->priv->server_display, screen_number); -+ pixmap = XCreatePixmap (slave->priv->server_display, -+ root_window, -+ width, height, depth); -+ -+ values.function = GXcopy; -+ values.plane_mask = AllPlanes; -+ values.fill_style = FillSolid; -+ values.subwindow_mode = IncludeInferiors; -+ -+ gc = XCreateGC (slave->priv->server_display, -+ root_window, -+ GCFunction | GCPlaneMask | GCFillStyle | GCSubwindowMode, -+ &values); -+ -+ if (XCopyArea (slave->priv->server_display, -+ root_window, pixmap, gc, 0, 0, -+ width, height, 0, 0)) { -+ -+ long pixmap_as_long; -+ -+ pixmap_as_long = (long) pixmap; -+ -+ XChangeProperty (slave->priv->server_display, -+ root_window, id_atom, XA_PIXMAP, -+ 32, PropModeReplace, (guchar *) &pixmap_as_long, -+ 1); -+ -+ } -+ -+ XFreeGC (slave->priv->server_display, gc); -+} -+ -+void -+gdm_slave_save_root_windows (GdmSlave *slave) -+{ -+ int i, number_of_screens; -+ Atom atom; -+ -+ number_of_screens = ScreenCount (slave->priv->server_display); -+ -+ atom = XInternAtom (slave->priv->server_display, -+ "_XROOTPMAP_ID", False); -+ -+ if (atom == 0) { -+ return; -+ } -+ -+ for (i = 0; i < number_of_screens; i++) { -+ gdm_slave_save_root_window_of_screen (slave, atom, i); -+ } -+ -+ XSync (slave->priv->server_display, False); -+} -+ - void - gdm_slave_set_initial_keyboard_layout (GdmSlave *slave) - { -diff --git a/daemon/gdm-slave.h b/daemon/gdm-slave.h -index 7af20ed..aaaa8f2 100644 ---- a/daemon/gdm-slave.h -+++ b/daemon/gdm-slave.h -@@ -78,6 +78,7 @@ void gdm_slave_set_initial_keyboard_layout (GdmSlave *slave); - void gdm_slave_set_initial_cursor_position (GdmSlave *slave); - - void gdm_slave_set_busy_cursor (GdmSlave *slave); -+void gdm_slave_save_root_windows (GdmSlave *slave); - gboolean gdm_slave_run_script (GdmSlave *slave, - const char *dir, - const char *username); --- -1.7.9 - - -From 03d92cf39f74b265cc9936bdeabfcf071b102767 Mon Sep 17 00:00:00 2001 -From: Ray Strode -Date: Fri, 27 Nov 2009 18:52:54 -0500 -Subject: [PATCH 2/2] Enable smooth transition between plymouth and X - -This commit checks if plymouth is running, and if so, -turns on the smooth transition between plymouth and X. ---- - daemon/gdm-server.c | 55 +++++++++++++++++++++++++++ - daemon/gdm-server.h | 1 + - daemon/gdm-simple-slave.c | 91 ++++++++++++++++++++++++++++++++++++++++++++- - 3 files changed, 146 insertions(+), 1 deletions(-) - -diff --git a/daemon/gdm-server.c b/daemon/gdm-server.c -index 54bf8b3..365590f 100644 ---- a/daemon/gdm-server.c -+++ b/daemon/gdm-server.c -@@ -32,6 +32,7 @@ - #include - #include - #include -+#include - #include - - #ifdef HAVE_SYS_PRCTL_H -@@ -41,6 +42,7 @@ - #ifdef WITH_SYSTEMD - #include - #endif -+#include - - #include - #include -@@ -732,6 +734,44 @@ gdm_server_spawn (GdmServer *server, - return ret; - } - -+static int -+get_active_vt (void) -+{ -+ int console_fd; -+ struct vt_stat console_state = { 0 }; -+ -+ console_fd = open ("/dev/tty0", O_RDONLY | O_NOCTTY); -+ -+ if (console_fd < 0) { -+ goto out; -+ } -+ -+ if (ioctl (console_fd, VT_GETSTATE, &console_state) < 0) { -+ goto out; -+ } -+ -+out: -+ if (console_fd >= 0) { -+ close (console_fd); -+ } -+ -+ return console_state.v_active; -+} -+ -+static char * -+get_active_vt_as_string (void) -+{ -+ int vt; -+ -+ vt = get_active_vt (); -+ -+ if (vt <= 0) { -+ return NULL; -+ } -+ -+ return g_strdup_printf ("vt%d", vt); -+} -+ - /** - * gdm_server_start: - * @disp: Pointer to a GdmDisplay structure -@@ -750,6 +790,21 @@ gdm_server_start (GdmServer *server) - return res; - } - -+gboolean -+gdm_server_start_on_active_vt (GdmServer *server) -+{ -+ gboolean res; -+ char *vt; -+ -+ g_free (server->priv->command); -+ server->priv->command = g_strdup (X_SERVER " -background none -logverbose 7"); -+ vt = get_active_vt_as_string (); -+ res = gdm_server_spawn (server, vt); -+ g_free (vt); -+ -+ return res; -+} -+ - static void - server_died (GdmServer *server) - { -diff --git a/daemon/gdm-server.h b/daemon/gdm-server.h -index b53d68e..4939382 100644 ---- a/daemon/gdm-server.h -+++ b/daemon/gdm-server.h -@@ -57,6 +57,7 @@ GdmServer * gdm_server_new (const char *display_id, - const char *seat_id, - const char *auth_file); - gboolean gdm_server_start (GdmServer *server); -+gboolean gdm_server_start_on_active_vt (GdmServer *server); - gboolean gdm_server_stop (GdmServer *server); - char * gdm_server_get_display_device (GdmServer *server); - -diff --git a/daemon/gdm-simple-slave.c b/daemon/gdm-simple-slave.c -index fc8649c..dd19ced 100644 ---- a/daemon/gdm-simple-slave.c -+++ b/daemon/gdm-simple-slave.c -@@ -93,6 +93,7 @@ struct GdmSimpleSlavePrivate - #ifdef HAVE_LOGINDEVPERM - gboolean use_logindevperm; - #endif -+ guint plymouth_is_running : 1; - }; - - enum { -@@ -1204,6 +1205,72 @@ on_start_session_later (GdmGreeterServer *session, - slave->priv->start_session_when_ready = FALSE; - } - -+static gboolean -+plymouth_is_running (void) -+{ -+ int status; -+ gboolean res; -+ GError *error; -+ -+ error = NULL; -+ res = g_spawn_command_line_sync ("/bin/plymouth --ping", -+ NULL, NULL, &status, &error); -+ if (! res) { -+ g_debug ("Could not ping plymouth: %s", error->message); -+ g_error_free (error); -+ return FALSE; -+ } -+ -+ return WIFEXITED (status) && WEXITSTATUS (status) == 0; -+} -+ -+static void -+plymouth_prepare_for_transition (GdmSimpleSlave *slave) -+{ -+ gboolean res; -+ GError *error; -+ -+ error = NULL; -+ res = g_spawn_command_line_sync ("/bin/plymouth deactivate", -+ NULL, NULL, NULL, &error); -+ if (! res) { -+ g_warning ("Could not deactivate plymouth: %s", error->message); -+ g_error_free (error); -+ } -+} -+ -+static void -+plymouth_quit_with_transition (GdmSimpleSlave *slave) -+{ -+ gboolean res; -+ GError *error; -+ -+ error = NULL; -+ res = g_spawn_command_line_sync ("/bin/plymouth quit --retain-splash", -+ NULL, NULL, NULL, &error); -+ if (! res) { -+ g_warning ("Could not quit plymouth: %s", error->message); -+ g_error_free (error); -+ } -+ slave->priv->plymouth_is_running = FALSE; -+} -+ -+static void -+plymouth_quit_without_transition (GdmSimpleSlave *slave) -+{ -+ gboolean res; -+ GError *error; -+ -+ error = NULL; -+ res = g_spawn_command_line_sync ("/bin/plymouth quit", -+ NULL, NULL, NULL, &error); -+ if (! res) { -+ g_warning ("Could not quit plymouth: %s", error->message); -+ g_error_free (error); -+ } -+ slave->priv->plymouth_is_running = FALSE; -+} -+ - static void - setup_server (GdmSimpleSlave *slave) - { -@@ -1223,6 +1290,10 @@ setup_server (GdmSimpleSlave *slave) - */ - gdm_slave_save_root_windows (GDM_SLAVE (slave)); - -+ /* Plymouth is waiting for the go-ahead to exit */ -+ if (slave->priv->plymouth_is_running) { -+ plymouth_quit_with_transition (slave); -+ } - } - - static void -@@ -1426,6 +1497,10 @@ on_server_exited (GdmServer *server, - g_debug ("GdmSimpleSlave: server exited with code %d\n", exit_code); - - gdm_slave_stopped (GDM_SLAVE (slave)); -+ -+ if (slave->priv->plymouth_is_running) { -+ plymouth_quit_without_transition (slave); -+ } - } - - static void -@@ -1438,6 +1513,10 @@ on_server_died (GdmServer *server, - g_strsignal (signal_number)); - - gdm_slave_stopped (GDM_SLAVE (slave)); -+ -+ if (slave->priv->plymouth_is_running) { -+ plymouth_quit_without_transition (slave); -+ } - } - - static gboolean -@@ -1484,7 +1563,14 @@ gdm_simple_slave_run (GdmSimpleSlave *slave) - G_CALLBACK (on_server_ready), - slave); - -- res = gdm_server_start (slave->priv->server); -+ slave->priv->plymouth_is_running = plymouth_is_running (); -+ -+ if (slave->priv->plymouth_is_running) { -+ plymouth_prepare_for_transition (slave); -+ res = gdm_server_start_on_active_vt (slave->priv->server); -+ } else { -+ res = gdm_server_start (slave->priv->server); -+ } - if (! res) { - g_warning (_("Could not start the X " - "server (your graphical environment) " -@@ -1494,6 +1580,9 @@ gdm_simple_slave_run (GdmSimpleSlave *slave) - "In the meantime this display will be " - "disabled. Please restart GDM when " - "the problem is corrected.")); -+ if (slave->priv->plymouth_is_running) { -+ plymouth_quit_without_transition (slave); -+ } - exit (1); - } - --- -1.7.9 diff --git a/gdm-selinux.patch b/gdm-selinux.patch deleted file mode 100644 index d1c95ba..0000000 --- a/gdm-selinux.patch +++ /dev/null @@ -1,26 +0,0 @@ -Index: configure -=================================================================== ---- configure.orig -+++ configure -@@ -22287,7 +22287,7 @@ fi - - $as_echo "#define HAVE_SELINUX 1" >>confdefs.h - -- EXTRA_DAEMON_LIBS="$EXTRA_DAEMON_LIBS -lselinux -lattr" -+ EXTRA_DAEMON_LIBS="$EXTRA_DAEMON_LIBS -lselinux" - fi - - -Index: configure.ac -=================================================================== ---- configure.ac.orig -+++ configure.ac -@@ -873,7 +873,7 @@ if test "x$with_selinux" = "xyes" ; then - AC_CHECK_LIB(selinux,setexeccon,/bin/true) - AC_CHECK_LIB(selinux,is_selinux_enabled,/bin/true) - AC_DEFINE(HAVE_SELINUX, 1, [Define if have selinux]) -- EXTRA_DAEMON_LIBS="$EXTRA_DAEMON_LIBS -lselinux -lattr" -+ EXTRA_DAEMON_LIBS="$EXTRA_DAEMON_LIBS -lselinux" - fi - - dnl --------------------------------------------------------------------------- diff --git a/gdm-smartcard.pamd b/gdm-smartcard.pamd new file mode 100644 index 0000000..e3638f1 --- /dev/null +++ b/gdm-smartcard.pamd @@ -0,0 +1,18 @@ +# Sample PAM file for doing smartcard authentication. +# Distros should replace this with what makes sense for them. +auth required pam_env.so +auth [success=done ignore=ignore default=die] pam_pkcs11.so wait_for_card card_only +auth requisite pam_succeed_if.so uid >= 500 quiet +auth required pam_deny.so + +account required pam_unix.so +account sufficient pam_localuser.so +account sufficient pam_succeed_if.so uid < 500 quiet +account required pam_permit.so + +password optional pam_pkcs11.so +password requisite pam_cracklib.so try_first_pass retry=3 type= + +session optional pam_keyinit.so revoke +session required pam_limits.so +session required pam_unix.so diff --git a/gdm-sysconfig-settings.patch b/gdm-sysconfig-settings.patch index 3001581..e7b9722 100644 --- a/gdm-sysconfig-settings.patch +++ b/gdm-sysconfig-settings.patch @@ -1,8 +1,8 @@ -Index: gdm-3.1.2/common/Makefile.am +Index: gdm-3.5.4/common/Makefile.am =================================================================== ---- gdm-3.1.2.orig/common/Makefile.am -+++ gdm-3.1.2/common/Makefile.am -@@ -73,6 +73,8 @@ libgdmcommon_la_SOURCES = \ +--- gdm-3.5.4.orig/common/Makefile.am ++++ gdm-3.5.4/common/Makefile.am +@@ -77,6 +77,8 @@ libgdmcommon_la_SOURCES = \ gdm-settings-backend.h \ gdm-settings-desktop-backend.c \ gdm-settings-desktop-backend.h \ @@ -11,7 +11,7 @@ Index: gdm-3.1.2/common/Makefile.am gdm-settings-keys.h \ gdm-settings-utils.h \ gdm-settings-utils.c \ -@@ -80,6 +82,8 @@ libgdmcommon_la_SOURCES = \ +@@ -84,6 +86,8 @@ libgdmcommon_la_SOURCES = \ gdm-settings-direct.h \ gdm-settings-client.h \ gdm-settings-client.c \ @@ -20,10 +20,10 @@ Index: gdm-3.1.2/common/Makefile.am gdm-log.h \ gdm-log.c \ gdm-md5.h \ -Index: gdm-3.1.2/common/gdm-settings-system-backend.c +Index: gdm-3.5.4/common/gdm-settings-system-backend.c =================================================================== --- /dev/null -+++ gdm-3.1.2/common/gdm-settings-system-backend.c ++++ gdm-3.5.4/common/gdm-settings-system-backend.c @@ -0,0 +1,348 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- + * @@ -373,10 +373,10 @@ Index: gdm-3.1.2/common/gdm-settings-system-backend.c + + return GDM_SETTINGS_BACKEND (object); +} -Index: gdm-3.1.2/common/gdm-settings-system-backend.h +Index: gdm-3.5.4/common/gdm-settings-system-backend.h =================================================================== --- /dev/null -+++ gdm-3.1.2/common/gdm-settings-system-backend.h ++++ gdm-3.5.4/common/gdm-settings-system-backend.h @@ -0,0 +1,56 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- + * @@ -434,11 +434,11 @@ Index: gdm-3.1.2/common/gdm-settings-system-backend.h +G_END_DECLS + +#endif /* __GDM_SETTINGS_SYSTEM_BACKEND_H */ -Index: gdm-3.1.2/common/gdm-settings.c +Index: gdm-3.5.4/common/gdm-settings.c =================================================================== ---- gdm-3.1.2.orig/common/gdm-settings.c -+++ gdm-3.1.2/common/gdm-settings.c -@@ -41,6 +41,7 @@ +--- gdm-3.5.4.orig/common/gdm-settings.c ++++ gdm-3.5.4/common/gdm-settings.c +@@ -39,6 +39,7 @@ #include "gdm-settings-glue.h" #include "gdm-settings-desktop-backend.h" @@ -446,16 +446,16 @@ Index: gdm-3.1.2/common/gdm-settings.c #define GDM_DBUS_PATH "/org/gnome/DisplayManager" #define GDM_SETTINGS_DBUS_PATH GDM_DBUS_PATH "/Settings" -@@ -51,7 +52,7 @@ - struct GdmSettingsPrivate +@@ -50,7 +51,7 @@ struct GdmSettingsPrivate { - DBusGConnection *connection; + GDBusConnection *connection; + GdmDBusSettings *skeleton; - GdmSettingsBackend *backend; + GList *backends; }; enum { -@@ -92,15 +93,29 @@ gdm_settings_get_value (GdmSettings *set +@@ -91,15 +92,29 @@ gdm_settings_get_value (GdmSettings *set { GError *local_error; gboolean res; @@ -489,7 +489,7 @@ Index: gdm-3.1.2/common/gdm-settings.c if (! res) { g_propagate_error (error, local_error); } -@@ -120,6 +135,7 @@ gdm_settings_set_value (GdmSettings *set +@@ -119,6 +134,7 @@ gdm_settings_set_value (GdmSettings *set { GError *local_error; gboolean res; @@ -497,7 +497,7 @@ Index: gdm-3.1.2/common/gdm-settings.c g_return_val_if_fail (GDM_IS_SETTINGS (settings), FALSE); g_return_val_if_fail (key != NULL, FALSE); -@@ -127,10 +143,23 @@ gdm_settings_set_value (GdmSettings *set +@@ -126,10 +142,23 @@ gdm_settings_set_value (GdmSettings *set g_debug ("Setting value %s", key); local_error = NULL; @@ -525,7 +525,7 @@ Index: gdm-3.1.2/common/gdm-settings.c if (! res) { g_propagate_error (error, local_error); } -@@ -208,13 +237,21 @@ backend_value_changed (GdmSettingsBacken +@@ -265,13 +294,21 @@ backend_value_changed (GdmSettingsBacken static void gdm_settings_init (GdmSettings *settings) { @@ -552,7 +552,7 @@ Index: gdm-3.1.2/common/gdm-settings.c } static void -@@ -229,9 +266,9 @@ gdm_settings_finalize (GObject *object) +@@ -286,9 +323,9 @@ gdm_settings_finalize (GObject *object) g_return_if_fail (settings->priv != NULL); @@ -565,10 +565,10 @@ Index: gdm-3.1.2/common/gdm-settings.c G_OBJECT_CLASS (gdm_settings_parent_class)->finalize (object); } -Index: gdm-3.1.2/common/gdm-sysconfig.c +Index: gdm-3.5.4/common/gdm-sysconfig.c =================================================================== --- /dev/null -+++ gdm-3.1.2/common/gdm-sysconfig.c ++++ gdm-3.5.4/common/gdm-sysconfig.c @@ -0,0 +1,484 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- + * @@ -1054,10 +1054,10 @@ Index: gdm-3.1.2/common/gdm-sysconfig.c + g_strfreev (lines); + return result; +} -Index: gdm-3.1.2/common/gdm-sysconfig.h +Index: gdm-3.5.4/common/gdm-sysconfig.h =================================================================== --- /dev/null -+++ gdm-3.1.2/common/gdm-sysconfig.h ++++ gdm-3.5.4/common/gdm-sysconfig.h @@ -0,0 +1,43 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- + * @@ -1102,10 +1102,10 @@ Index: gdm-3.1.2/common/gdm-sysconfig.h +G_END_DECLS + +#endif /* __GDM_SYSCONFIG_H */ -Index: gdm-3.1.2/data/gdm.conf-custom.in +Index: gdm-3.5.4/data/gdm.conf-custom.in =================================================================== ---- gdm-3.1.2.orig/data/gdm.conf-custom.in -+++ gdm-3.1.2/data/gdm.conf-custom.in +--- gdm-3.5.4.orig/data/gdm.conf-custom.in ++++ gdm-3.5.4/data/gdm.conf-custom.in @@ -1,4 +1,7 @@ # GDM configuration storage +# diff --git a/gdm-vt-allocation-hack.patch b/gdm-vt-allocation-hack.patch deleted file mode 100644 index 4dde599..0000000 --- a/gdm-vt-allocation-hack.patch +++ /dev/null @@ -1,117 +0,0 @@ -Index: gdm-2.91.4/daemon/gdm-server.c -=================================================================== ---- gdm-2.91.4.orig/daemon/gdm-server.c -+++ gdm-2.91.4/daemon/gdm-server.c -@@ -27,6 +27,7 @@ - #include - #include - #include -+#include - #include - #include - #include -@@ -157,6 +158,92 @@ _gdm_server_query_ck_for_display_device - return out; - } - -+#ifndef O_NOCTTY -+# define O_NOCTTY 0 -+#endif -+ -+static int -+open_vt (int vtno) -+{ -+ char *vtname; -+ int fd; -+ -+ vtname = g_strdup_printf ("/dev/tty%d", vtno); -+ -+ do { -+ errno = 0; -+ fd = open (vtname, O_RDWR | O_NOCTTY, 0); -+ } while (errno == EINTR); -+ -+ g_free (vtname); -+ return fd; -+} -+ -+static gint -+find_first_probably_free_vt (void) -+{ -+ int fd, fdv; -+ int vtno; -+ unsigned short vtmask; -+ struct vt_stat vtstat; -+ guint v_state; -+ -+ fdv = -1; -+ -+ do { -+ errno = 0; -+ fd = open ("/dev/console", O_WRONLY | O_NOCTTY, 0); -+ } while (errno == EINTR); -+ -+ if (fd >= 0) { -+ if (ioctl (fd, VT_GETSTATE, &vtstat) >= 0) { -+ v_state = vtstat.v_state; -+ } else { -+ close (fd); -+ v_state = 0; -+ fd = -1; -+ } -+ } else { -+ v_state = 0; -+ } -+ -+ if (fd < 0) { -+ do { -+ errno = 0; -+ fd = open ("/dev/console", O_RDONLY | O_NOCTTY, 0); -+ } while (errno == EINTR); -+ -+ if (fd >= 0) { -+ if (ioctl (fd, VT_GETSTATE, &vtstat) >= 0) -+ v_state = vtstat.v_state; -+ } -+ } -+ -+ for (vtno = 7, vtmask = 1 << vtno; vtmask; vtno++, vtmask <<= 1) { -+ /* Is this console in use? */ -+ if (v_state & vtmask) -+ continue; -+ -+ /* No, try to open it */ -+ fdv = open_vt (vtno); -+ if (fdv >= 0) -+ break; -+ -+ /* If we're here, kernel indicated that the console was free, -+ * but we failed to open it. Just go on to higher VTs. */ -+ } -+ -+ if (fdv >= 0) -+ close (fdv); -+ else -+ vtno = -1; -+ -+ if (fd >= 0) -+ close (fd); -+ -+ return vtno; -+} -+ - char * - gdm_server_get_display_device (GdmServer *server) - { -@@ -317,6 +404,11 @@ gdm_server_resolve_command_line (GdmServ - - if (vtarg != NULL && ! gotvtarg) { - argv[len++] = g_strdup (vtarg); -+ } else if (!query_in_arglist && !gotvtarg) { -+ gint vtnum = find_first_probably_free_vt (); -+ -+ if (vtnum > 0) -+ argv [len++] = g_strdup_printf ("vt%d", vtnum); - } - - argv[len++] = NULL; diff --git a/gdm-xauthlocalhostname.patch b/gdm-xauthlocalhostname.patch index 855cf05..9ae5a97 100644 --- a/gdm-xauthlocalhostname.patch +++ b/gdm-xauthlocalhostname.patch @@ -1,7 +1,7 @@ -Index: daemon/gdm-display-access-file.c +Index: gdm-3.5.91/daemon/gdm-display-access-file.c =================================================================== ---- daemon/gdm-display-access-file.c.orig -+++ daemon/gdm-display-access-file.c +--- gdm-3.5.91.orig/daemon/gdm-display-access-file.c ++++ gdm-3.5.91/daemon/gdm-display-access-file.c @@ -440,11 +440,15 @@ _get_auth_info_for_display (GdmDisplayAc if (is_local) { char localhost[HOST_NAME_MAX + 1] = ""; @@ -18,28 +18,44 @@ Index: daemon/gdm-display-access-file.c } else { *family = FamilyWild; gdm_display_get_remote_hostname (display, address, NULL); -Index: daemon/gdm-session-direct.c +Index: gdm-3.5.91/daemon/gdm-launch-environment.c =================================================================== ---- daemon/gdm-session-direct.c.orig -+++ daemon/gdm-session-direct.c -@@ -2119,6 +2119,12 @@ setup_session_environment (GdmSessionDir +--- gdm-3.5.91.orig/daemon/gdm-launch-environment.c ++++ gdm-3.5.91/daemon/gdm-launch-environment.c +@@ -306,6 +306,11 @@ build_launch_environment (GdmLaunchEnvir + g_hash_table_insert (hash, g_strdup ("GDM_SEAT_ID"), g_strdup (seat_id)); } - -+ if (session_direct->priv->display_is_local) { -+ gdm_session_direct_set_environment_variable (session, -+ "XAUTHLOCALHOSTNAME", -+ "localhost"); ++ if (launch_environment->priv->x11_display_is_local) { ++ g_hash_table_remove (hash, "XAUTHLOCALHOSTNAME"); ++ g_hash_table_insert (hash, g_strdup ("XAUTHLOCALHOSTNAME"), g_strdup ("localhost")); + } + - /* FIXME: We do this here and in the session worker. We should consolidate - * somehow. - */ -Index: daemon/gdm-slave.c + g_hash_table_insert (hash, g_strdup ("PATH"), g_strdup (g_getenv ("PATH"))); + + g_hash_table_insert (hash, g_strdup ("RUNNING_UNDER_GDM"), g_strdup ("true")); +Index: gdm-3.5.91/daemon/gdm-session.c =================================================================== ---- daemon/gdm-slave.c.orig -+++ daemon/gdm-slave.c -@@ -234,6 +234,10 @@ get_script_environment (GdmSlave *slav +--- gdm-3.5.91.orig/daemon/gdm-session.c ++++ gdm-3.5.91/daemon/gdm-session.c +@@ -2297,6 +2297,12 @@ setup_session_environment (GdmSession *s + self->priv->user_x11_authority_file); + } + ++ if (self->priv->display_is_local) { ++ gdm_session_set_environment_variable (self, ++ "XAUTHLOCALHOSTNAME", ++ "localhost"); ++ } ++ + if (g_getenv ("WINDOWPATH") != NULL) { + gdm_session_set_environment_variable (self, + "WINDOWPATH", +Index: gdm-3.5.91/daemon/gdm-slave.c +=================================================================== +--- gdm-3.5.91.orig/daemon/gdm-slave.c ++++ gdm-3.5.91/daemon/gdm-slave.c +@@ -255,6 +255,10 @@ get_script_environment (GdmSlave *slav g_hash_table_insert (hash, g_strdup ("REMOTE_HOST"), g_strdup (slave->priv->display_hostname)); } @@ -50,7 +66,7 @@ Index: daemon/gdm-slave.c /* Runs as root */ g_hash_table_insert (hash, g_strdup ("XAUTHORITY"), g_strdup (slave->priv->display_x11_authority_file)); g_hash_table_insert (hash, g_strdup ("DISPLAY"), g_strdup (slave->priv->display_name)); -@@ -483,6 +487,7 @@ gdm_slave_connect_to_x11_display (GdmSla +@@ -652,6 +656,7 @@ gdm_slave_connect_to_x11_display (GdmSla g_setenv ("DISPLAY", slave->priv->display_name, TRUE); g_setenv ("XAUTHORITY", slave->priv->display_x11_authority_file, TRUE); @@ -58,19 +74,3 @@ Index: daemon/gdm-slave.c sigemptyset (&mask); sigaddset (&mask, SIGCHLD); -Index: daemon/gdm-welcome-session.c -=================================================================== ---- daemon/gdm-welcome-session.c.orig -+++ daemon/gdm-welcome-session.c -@@ -435,6 +435,11 @@ get_welcome_environment (GdmWelcomeSessi - g_hash_table_insert (hash, g_strdup ("GDM_SEAT_ID"), g_strdup (seat_id)); - } - -+ if (welcome_session->priv->x11_display_is_local) { -+ g_hash_table_remove (hash, "XAUTHLOCALHOSTNAME"); -+ g_hash_table_insert (hash, g_strdup ("XAUTHLOCALHOSTNAME"), g_strdup ("localhost")); -+ } -+ - g_hash_table_insert (hash, g_strdup ("PATH"), g_strdup (g_getenv ("PATH"))); - - g_hash_table_insert (hash, g_strdup ("RUNNING_UNDER_GDM"), g_strdup ("true")); diff --git a/gdm.changes b/gdm.changes index 2d4f5f1..54b233f 100644 --- a/gdm.changes +++ b/gdm.changes @@ -1,3 +1,155 @@ +------------------------------------------------------------------- +Tue Sep 11 19:39:25 UTC 2012 - vuntz@opensuse.org + +- Rebase gdm-desktop-session-env-pam.patch and + gdm-passwordless-login.patch. + +------------------------------------------------------------------- +Tue Sep 11 18:10:24 UTC 2012 - vuntz@opensuse.org + +- Only have a ConsoleKit-x11 Requires if we don't build with + systemd support. + +------------------------------------------------------------------- +Wed Sep 5 07:05:22 UTC 2012 - dimstar@opensuse.org + +- Update to version 3.5.91: + + Fix multi-seat + + Memory leak fix + + initial-setup feature fixes + + Reauth fixes + + Make PostLogin failures to fail login + + More PAM distro support + + Misc data file changes + + More debug messages + + Use yelp-tools for docs + + Drop libxklavier dependency + + Updated translations. +- Drop upstream fixed patches: + + gdm-helper-directory.patch + + gdm-vtswitch-nonsystemd.patch +- Rebase (and re-enable) gdm-default-wm.patch. +- Rebase (and re-enable) gdm-xauthlocalhostname.patch +- Drop libxklavier-devel BuildRequires: dependency dropped + upstream. +- Replace gnome-doc-utils-devel BuildRequires with yelp-tools, + following upstream. +- Replace intltool and libtool BuildRequires with gnome-common, as + well as libtoolize and autoreconf calls with gnome-autogen.sh: + the build system is too specific and some spurious errors can be + avoided by boostrapping it the supported way. + +------------------------------------------------------------------- +Tue Aug 21 07:29:43 UTC 2012 - dimstar@opensuse.org + +- Update to version 3.5.90: + + Reauthentication fixes + + Change user-switching mechanism from gdmflexiserver helper to + libgdm + + Set KRB5CCNAME environment variable for session + + Memory leaks and other misc fixes + + Updated translations. +- Drop gdmflexiserver subpackage and gdmflexiserver-wrapper source: + user-switching mechanism moved to libgdm and no longer relies on + gdmflexiserver. +- Add a gdmflexiserver Obsoletes to gdm main package, for smooth + upgrades. Also remove the gdmflexiserver Requires that was there. +- Rename gdm-welcome.pamd to gdm-launch-environment.pamd, following + upstreams rename. +- Add gdm-vtswitch-nonsystemd.patch: Fix vt switch when not using + systemd. + +------------------------------------------------------------------- +Tue Aug 7 09:53:24 UTC 2012 - dimstar@opensuse.org + +- Update to version 3.5.5: + + Add initial setup integration + + "Fix" timed login + + Fix up ConsoleKit integration post-gdbus port + + Code clean ups/refactoring + + Make initial VT a ./configure option + + Updated translations. +- Drop gdm-vt-allocation-hack.patch in favor of --with-initial-vt=7 + passed to configure. + +------------------------------------------------------------------- +Thu Aug 2 06:58:44 UTC 2012 - dimstar@opensuse.org + +- Remove SELinux support (following upstream): + + Drop libselinux-devel BuildRequires + + Remove --with-selinux from configure call + + Drop gdm-selinux.patch + +------------------------------------------------------------------- +Fri Jul 20 06:58:44 UTC 2012 - dimstar@opensuse.org + +- Update to version 3.5.4.2: + + Fix non autologin + + Updated translations. + +------------------------------------------------------------------- +Thu Jul 19 17:51:27 UTC 2012 - dimstar@opensuse.org + +- Update to version 3.5.4.1: + + Fix autologin + + Update PAM configuration for red hat distros + + Make sure gdm-client-glue.h gets installed with libgdm + + Change SetupForProgram interface to allow specifying a username + + Drop GdmGreeterSession and GdmChooserSession, just use + GdmWelcomeSession directly + + Change dconf profile to be compatible with latest dconf + + Fix VerificationComplete signal for external gdm clients + + Updated translations. + +------------------------------------------------------------------- +Wed Jul 18 11:50:41 UTC 2012 - dimstar@opensuse.org + +- Update to version 3.5.4: + + Rename libgdmgreeter to libgdm and change API + + Be less chatty in syslog + + Reload settings on SIGHUP + + Start polkit agent in fallback session + + Port to gdbus + + Deprecation fixes + + PAM file reorganization + + Misc fixes + + Updated translations. +- Drop dbus-1-glib-devel BuildRequires: not needed after port to + GDBus. +- Rebase patches: + + gdm-helper-directory.patch + + gdm-sysconfig-settings.patch +- Disable and mark patches for rebasing: + + gdm-desktop-session-env-pam.patch + + gdm-passwordless-login.patch + + gdm-default-wm.patch + + gdm-xauthlocalhostname.patch +- Rename libgdmgreeter1 package to libgdm1, following upstreams + renaming of the library. +- Rename typelib-1_0-GdmGreeter-1_0 subpackage to + typelib-1_0-Gdm-1_0 +- Add copies of gdm-fingerprint.pamd and gdm-smartcard.pamd to our + package, based on the Red Hat ones (until we upstream our + variants, bgo#675085). Note that they won't be used since we + don't build with enable_split_authentication. + +------------------------------------------------------------------- +Sun Jul 15 21:24:17 UTC 2012 - dimstar@opensuse.org + +- Update to version 3.5.2: + + Robustness updates for greeter dbus-daemon life-cycle + management + + Add ability to disable documentation generation at build time + + Add more verbosity in PAM code + + Use systemd to shutdown from greeter + + Use new gnome-shell mode + + Add ability to build with plymouth support + + Save log to $XDG_CACHE_HOME/gdm/session.log instead of + ~/.xsession-errors +- Add pkgconfig(ply-boot-client) BuildRequires and pass + --with-plymouth to configure for plymouth support. +- Drop gdm-plymouth.patch: plymouth support has been upstreamed. + ------------------------------------------------------------------- Fri Jul 13 11:41:41 CEST 2012 - vuntz@opensuse.org diff --git a/gdm.spec b/gdm.spec index c8070dd..dc16cc5 100644 --- a/gdm.spec +++ b/gdm.spec @@ -24,36 +24,30 @@ %define enable_split_authentication 0 Name: gdm -Version: 3.4.1 +Version: 3.5.91 Release: 0 Summary: The GNOME Display Manager License: GPL-2.0+ Group: System/GUI/GNOME Url: http://projects.gnome.org/gdm/ -Source: http://download.gnome.org/sources/gdm/3.4/%{name}-%{version}.tar.xz +Source: http://download.gnome.org/sources/gdm/3.5/%{name}-%{version}.tar.xz Source1: gdm.pamd Source2: gdm-autologin.pamd -Source3: gdm-welcome.pamd -# gdmflexiserver wrapper, to enable other display managers to abuse the gdmflexiserver namespace (like lightdm) -Source4: gdmflexiserver-wrapper +Source3: gdm-launch-environment.pamd +Source6: gdm-fingerprint.pamd +Source7: gdm-smartcard.pamd # /etc/xinit.d/xdm integration script Source5: X11-displaymanager-gdm -# PATCH-FEATURE-UPSTREAM gdm-plymouth.patch vuntz@opensuse.org -- Get a nice transition from plymouth; taken from Fedora -Patch0: gdm-plymouth.patch -# PATCH-FIX-UPSTREAM gdm-helper-directory.patch bgo582320 vuntz@novell.com -- Add --with-consolekit-directory, --with-check-accelerated-directory -Patch2: gdm-helper-directory.patch # PATCH-FIX-OPENSUSE gdm-is-not-unstable-unless.patch vuntz@opensuse.org -- Make gdm think it's never running a development version unless SUSE_ENABLE_UNSTABLE_CHECK is set. This disables fatal warnings as well as abusive log Patch3: gdm-is-not-unstable-unless.patch -# PATCH-FIX-UPSTREAM gdm-vt-allocation-hack.patch bgo511168 hpj@novell.com -- Needed for user switching -Patch4: gdm-vt-allocation-hack.patch -# PATCH-FIX-OPENSUSE gdm-desktop-session-env-pam.patch bnc427744 vuntz@novell.com -- Sets a PAM environment variable to let the pam gnome-keyring module know which session is started +# PATCH-NEEDS-REBASE PATCH-FIX-OPENSUSE gdm-desktop-session-env-pam.patch bnc427744 vuntz@novell.com -- Sets a PAM environment variable to let the pam gnome-keyring module know which session is started Patch6: gdm-desktop-session-env-pam.patch # PATCH-FIX-OPENSUSE gdm-suse-xsession.patch vuntz@novell.com -- Use the /etc/X11/xdm/* scripts Patch7: gdm-suse-xsession.patch # WARNING: do not remove/significantly change patch8 without updating the relevant patch in accountsservice too # PATCH-FIX-OPENSUSE gdm-sysconfig-settings.patch bnc432360 hpj@novell.com -- Read autologin options from /etc/sysconfig/displaymanager; note that accountsservice has a similar patch (accountsservice-sysconfig.patch) Patch8: gdm-sysconfig-settings.patch -# PATCH-FEATURE-OPENSUSE gdm-passwordless-login.patch vuntz@opensuse.org -- Support DISPLAYMANAGER_PASSWORD_LESS_LOGIN sysconfig option +# PATCH-NEEDS-REBASE PATCH-FEATURE-OPENSUSE gdm-passwordless-login.patch vuntz@opensuse.org -- Support DISPLAYMANAGER_PASSWORD_LESS_LOGIN sysconfig option Patch9: gdm-passwordless-login.patch # PATCH-FIX-UPSTREAM gdm-greeter-greater-ui.patch bnc436431 bgo560508 vuntz@novell.com -- Improve the layout of the greeter. Note: the patch contains a patched glade file *and* the result glade file (for reference only, in case we need to rebase the patch) Patch15: gdm-greeter-greater-ui.patch @@ -65,27 +59,20 @@ Patch34: gdm-default-wm.patch Patch35: gdm-xauthlocalhostname.patch # PATCH-FIX-UPSTREAM gdm-look-at-runlevel.patch bnc540482 bgo599180 vuntz@opensuse.org -- Look at the current runlevel before managing the display again, so we don't do this when shutting down or rebooting Patch40: gdm-look-at-runlevel.patch -# PATCH-FIX-OPENSUSE gdm-selinux.patch -- Small changes to make it compile fine with SELinux -Patch60: gdm-selinux.patch BuildRequires: check-devel -BuildRequires: dbus-1-glib-devel # needed for directory ownership BuildRequires: dconf -BuildRequires: gnome-doc-utils-devel +BuildRequires: gnome-common # needed for directory ownership BuildRequires: gnome-session-core BuildRequires: gobject-introspection-devel >= 0.9.12 -BuildRequires: intltool BuildRequires: iso-codes-devel BuildRequires: libXdmcp-devel BuildRequires: libXi-devel BuildRequires: libXinerama-devel BuildRequires: libattr-devel BuildRequires: libcanberra-devel -BuildRequires: libselinux-devel -BuildRequires: libtool BuildRequires: libupower-glib-devel -BuildRequires: libxklavier-devel BuildRequires: pam-devel BuildRequires: pwdutils BuildRequires: tcpd-devel @@ -96,15 +83,17 @@ BuildRequires: xorg-x11-server-extra BuildRequires: pkgconfig(accountsservice) %if %{with_systemd} BuildRequires: pkgconfig(libsystemd-daemon) -BuildRequires: pkgconfig(libsystemd-login) +BuildRequires: pkgconfig(libsystemd-login) >= 186 %endif BuildRequires: pkgconfig(nss) +BuildRequires: pkgconfig(ply-boot-client) BuildRequires: pkgconfig(x11) BuildRequires: pkgconfig(xau) BuildRequires: pkgconfig(xrandr) Requires: %{name}-branding = %{version} +%if ! %{with_systemd} Requires: ConsoleKit-x11 -Requires: gdmflexiserver +%endif Requires: gnome-session-core Requires: klogd Requires: xorg-x11-server-extra @@ -131,6 +120,8 @@ Provides: gdm2 = %{version} Obsoletes: gdm2 < %{version} Provides: gnome-applets-gdm = %{version} Obsoletes: gnome-applets-gdm < %{version} +# gdmflexiserver is dropped since 3.5.90 +Obsoletes: gdmflexiserver < %{version} BuildRoot: %{_tmppath}/%{name}-%{version}-build DocDir: %{_defaultdocdir} %glib2_gsettings_schema_requires @@ -139,20 +130,20 @@ DocDir: %{_defaultdocdir} The GNOME Display Manager is a system service that is responsible for providing graphical log-ins and managing local and remote displays. -%package -n libgdmgreeter1 +%package -n libgdm1 Summary: Client Library for Communicating with GDM Greeter Server Group: System/Libraries Recommends: gdm -%description -n libgdmgreeter1 +%description -n libgdm1 The GNOME Display Manager is a system service that is responsible for providing graphical log-ins and managing local and remote displays. -%package -n typelib-1_0-GdmGreeter-1_0 +%package -n typelib-1_0-Gdm-1_0 Summary: Client Library for Communicating with GDM Greeter Server -- Introspection bindings Group: System/Libraries -%description -n typelib-1_0-GdmGreeter-1_0 +%description -n typelib-1_0-Gdm-1_0 The GNOME Display Manager is a system service that is responsible for providing graphical log-ins and managing local and remote displays. @@ -183,9 +174,9 @@ providing graphical log-ins and managing local and remote displays. %package devel Summary: Libraries for GDM -- Development Files Group: Development/Libraries/GNOME -Requires: libgdmgreeter1 = %{version} +Requires: libgdm1 = %{version} Requires: libgdmsimplegreeter1 = %{version} -Requires: typelib-1_0-GdmGreeter-1_0 = %{version} +Requires: typelib-1_0-Gdm-1_0 = %{version} Provides: libgdmsimplegreeter-devel = %{version} Obsoletes: libgdmsimplegreeter-devel < %{version} @@ -211,26 +202,11 @@ providing graphical log-ins and managing local and remote displays. This package provides the upstream default configuration for gdm. -%package -n gdmflexiserver -Summary: Gdmflexiserver Compatibility Wrapper for Display Managers -Group: System/GUI/GNOME -Suggests: gdm -BuildArch: noarch - -%description -n gdmflexiserver -The gdmflexiserver tool interacts with the display manager to -enable fast user switching. This package contains a wrapper that -selects the correct gdmflexiserver implementatoin, based on the -running display manager. - %lang_package %prep %setup -q translation-update-upstream -%patch0 -p1 -%patch2 -p1 %patch3 -p1 -%patch4 -p1 %patch6 -p1 %patch7 -p1 %patch8 -p1 @@ -238,13 +214,11 @@ translation-update-upstream %patch15 -p1 %patch18 -p1 %patch34 -p1 -%patch35 -p0 +%patch35 -p1 %patch40 -p1 -%patch60 %build -libtoolize -f -i -autoreconf -f -i +NOCONFIGURE=1 gnome-autogen.sh %configure\ --disable-static \ --libexecdir=%{_prefix}/lib/gdm \ @@ -252,8 +226,8 @@ autoreconf -f -i --with-at-spi-registryd-directory=%{_libexecdir}/at-spi \ --with-consolekit-directory=%{_libexecdir}/ConsoleKit \ --with-check-accelerated-directory=%{_libexecdir} \ - --with-selinux \ --enable-ipv6 \ + --with-plymouth \ %if %{with_systemd} --with-systemd \ %else @@ -265,7 +239,8 @@ autoreconf -f -i %else --disable-split-authentication \ %endif - --disable-scrollkeeper + --disable-scrollkeeper \ + --with-initial-vt=7 %__make %{?jobs:-j%jobs} V=1 %install @@ -290,7 +265,11 @@ cp %{SOURCE1} $RPM_BUILD_ROOT/etc/pam.d/gdm # Pam config for autologin cp %{SOURCE2} $RPM_BUILD_ROOT/etc/pam.d/gdm-autologin # Pam config for the greeter session -cp %{SOURCE3} $RPM_BUILD_ROOT/etc/pam.d/gdm-welcome +cp %{SOURCE3} $RPM_BUILD_ROOT/etc/pam.d/gdm-launch-environment +# Pam config for fingerprint authentication +cp %{SOURCE6} $RPM_BUILD_ROOT/etc/pam.d/gdm-fingerprint +# Pam config for smartcard authentication +cp %{SOURCE7} $RPM_BUILD_ROOT/etc/pam.d/gdm-smartcard # The default gdm pam configuration is the one to be used as pam-password too %if %{enable_split_authentication} rm $RPM_BUILD_ROOT/etc/pam.d/gdm-password @@ -301,9 +280,6 @@ ln -s gdm $RPM_BUILD_ROOT/etc/pam.d/gdm-password ## Install other files # Install PostLogin script. mv $RPM_BUILD_ROOT%{_sysconfdir}/gdm/PostLogin/Default.sample $RPM_BUILD_ROOT%{_sysconfdir}/gdm/PostLogin/Default -# Move gdmflexiserver to libexecdir and replace it with the compatibility wrapper -mv $RPM_BUILD_ROOT%{_bindir}/gdmflexiserver $RPM_BUILD_ROOT%{_libexecdir}/gdm/gdmflexiserver -install -m 755 %{SOURCE4} $RPM_BUILD_ROOT%{_bindir}/gdmflexiserver # Install /etc/xinit.d/xdm integration script install -D -m 644 %{SOURCE5} %{buildroot}%{_libexecdir}/X11/displaymanagers/gdm # Install other files @@ -357,9 +333,9 @@ dconf update %glib2_gsettings_schema_postun %icon_theme_cache_postun -%post -n libgdmgreeter1 -p /sbin/ldconfig +%post -n libgdm1 -p /sbin/ldconfig -%postun -n libgdmgreeter1 -p /sbin/ldconfig +%postun -n libgdm1 -p /sbin/ldconfig %post -n libgdmsimplegreeter1 -p /sbin/ldconfig @@ -368,13 +344,7 @@ dconf update %files %defattr(-,root,root) %doc AUTHORS COPYING ChangeLog NEWS README -%dir %{_datadir}/gnome/ -%dir %{_datadir}/gnome/help/ -%dir %{_datadir}/gnome/help/%{name}/ -%doc %{_datadir}/gnome/help/%{name}/C/ -%dir %{_datadir}/omf/ -%dir %{_datadir}/omf/%{name}/ -%doc %{_datadir}/omf/%{name}/%{name}-C.omf +%doc %{_datadir}/help/C/%{name}/ %dir %config %{_sysconfdir}/gdm %config %{_sysconfdir}/gdm/[IPXl]* %{_sbindir}/gdm @@ -388,7 +358,6 @@ dconf update %{_datadir}/pixmaps/*.png %dir %{_libexecdir}/gdm %{_libexecdir}/gdm/gdm-* -%{_libexecdir}/gdm/gdmflexiserver %attr(750,gdm,gdm) %dir %{_localstatedir}/lib/gdm %ghost %attr(751,gdm,gdm) %dir %{_localstatedir}/run/gdm %attr(750,gdm,gdm) %dir %{_localstatedir}/log/gdm @@ -398,7 +367,7 @@ dconf update %config /etc/pam.d/gdm-fingerprint %config /etc/pam.d/gdm-password %config /etc/pam.d/gdm-smartcard -%config /etc/pam.d/gdm-welcome +%config /etc/pam.d/gdm-launch-environment %config %{_sysconfdir}/dbus-1/system.d/gdm.conf %dir %config %{_sysconfdir}/dconf/db/gdm.d %dir %config %{_sysconfdir}/dconf/db/gdm.d/locks @@ -412,13 +381,13 @@ dconf update # Exclude simple-greeter extensions %exclude %{_datadir}/gdm/simple-greeter/extensions -%files -n libgdmgreeter1 +%files -n libgdm1 %defattr(-,root,root) -%{_libdir}/libgdmgreeter.so.* +%{_libdir}/libgdm.so.* -%files -n typelib-1_0-GdmGreeter-1_0 +%files -n typelib-1_0-Gdm-1_0 %defattr(-,root,root) -%{_libdir}/girepository-1.0/GdmGreeter-1.0.typelib +%{_libdir}/girepository-1.0/Gdm-1.0.typelib %files -n libgdmsimplegreeter1 %defattr(-,root,root) @@ -452,20 +421,16 @@ dconf update %files devel %defattr(-,root,root) %{_includedir}/gdm/ -%{_libdir}/libgdmgreeter.so +%{_libdir}/libgdm.so %{_libdir}/libgdmsimplegreeter.so -%{_libdir}/pkgconfig/gdmgreeter.pc +%{_libdir}/pkgconfig/gdm.pc %{_libdir}/pkgconfig/gdmsimplegreeter.pc -%{_datadir}/gir-1.0/GdmGreeter-1.0.gir +%{_datadir}/gir-1.0/Gdm-1.0.gir %files branding-upstream %defattr(-,root,root) %config(noreplace) %{_sysconfdir}/gdm/custom.conf -%files -n gdmflexiserver -%defattr(-,root,root) -%{_bindir}/gdmflexiserver - %files lang -f %{name}.lang %changelog diff --git a/gdmflexiserver-wrapper b/gdmflexiserver-wrapper deleted file mode 100644 index 3943b69..0000000 --- a/gdmflexiserver-wrapper +++ /dev/null @@ -1,8 +0,0 @@ -#!/bin/sh - -if test ! -x "${GDMFLEXISERVER:-/usr/lib/gdm/gdmflexiserver}"; then - echo "No gdmflexiserver implementation found. Maybe install gdm?" >&2 - exit 1 -else - exec "${GDMFLEXISERVER:-/usr/lib/gdm/gdmflexiserver}" -fi From d976a48ebd612f2c06f258ae2f5056f53ba38f4d75a87f88cee1ba043e108459 Mon Sep 17 00:00:00 2001 From: Vincent Untz Date: Fri, 14 Sep 2012 12:34:16 +0000 Subject: [PATCH 2/4] Accepting request 134203 from GNOME:Next More fixing... halfline rocks OBS-URL: https://build.opensuse.org/request/show/134203 OBS-URL: https://build.opensuse.org/package/show/GNOME:Factory/gdm?expand=0&rev=218 --- gdm-gdmslave-typo.patch | 75 +++++++++++++++++++++++++++++++++++++++++ gdm.changes | 6 ++++ gdm.spec | 3 ++ 3 files changed, 84 insertions(+) create mode 100644 gdm-gdmslave-typo.patch diff --git a/gdm-gdmslave-typo.patch b/gdm-gdmslave-typo.patch new file mode 100644 index 0000000..40eac05 --- /dev/null +++ b/gdm-gdmslave-typo.patch @@ -0,0 +1,75 @@ +From 3b7053e7c20896b69981f52f7f9e295af9dad05f Mon Sep 17 00:00:00 2001 +From: Ray Strode +Date: Thu, 13 Sep 2012 20:20:28 +0000 +Subject: daemon: s/CanSessionsForUnixUser/GetSessionsForUnixUser/ + +Correct typo in method call name. +--- +diff --git a/daemon/gdm-slave.c b/daemon/gdm-slave.c +index 55ef526..6f26d8e 100644 +--- a/daemon/gdm-slave.c ++++ b/daemon/gdm-slave.c +@@ -1412,7 +1412,7 @@ gdm_slave_get_primary_session_id_for_user_from_ck (GdmSlave *slave, + CK_NAME, + CK_MANAGER_PATH, + CK_MANAGER_INTERFACE, +- "CanSessionsForUnixUser", ++ "GetSessionsForUnixUser", + g_variant_new ("(u)", uid), + G_VARIANT_TYPE ("(ao)"), + G_DBUS_CALL_FLAGS_NONE, +-- +cgit v0.9.0.2 + +From 39a38f321c696ef0e98e2b4241a0156040aafa75 Mon Sep 17 00:00:00 2001 +From: Ray Strode +Date: Thu, 13 Sep 2012 21:34:51 +0000 +Subject: slave: more gdm_slave_get_primary_session_id_for_user_from_ck fixes + +It's getting the types wrong, rework it to be (subjectively) clearer. +--- +diff --git a/daemon/gdm-slave.c b/daemon/gdm-slave.c +index 6f26d8e..9195b9b 100644 +--- a/daemon/gdm-slave.c ++++ b/daemon/gdm-slave.c +@@ -1365,12 +1365,11 @@ gdm_slave_get_primary_session_id_for_user_from_ck (GdmSlave *slave, + { + gboolean can_activate_sessions; + GError *error; ++ const char **sessions; ++ int i; + char *primary_ssid; + uid_t uid; + GVariant *reply; +- GVariant *array; +- GVariantIter iter; +- char *ssid; + + error = NULL; + primary_ssid = NULL; +@@ -1426,17 +1425,16 @@ gdm_slave_get_primary_session_id_for_user_from_ck (GdmSlave *slave, + return NULL; + } + +- array = g_variant_get_child_value (reply, 0); +- g_variant_iter_init (&iter, array); +- while (g_variant_iter_loop (&iter, "(&s)", &ssid)) { +- if (x11_session_is_on_seat (slave, ssid, slave->priv->display_seat_id)) { +- primary_ssid = g_strdup (ssid); ++ g_variant_get_child (reply, 0, "^a&o", &sessions); ++ for (i = 0; sessions[i] != NULL; i++) { ++ if (x11_session_is_on_seat (slave, sessions[i], slave->priv->display_seat_id)) { ++ primary_ssid = g_strdup (sessions[i]); + break; + } + } + ++ g_free (sessions); + g_variant_unref (reply); +- g_variant_unref (array); + return primary_ssid; + } + #endif +-- +cgit v0.9.0.2 + diff --git a/gdm.changes b/gdm.changes index 54b233f..fec974a 100644 --- a/gdm.changes +++ b/gdm.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Thu Sep 13 20:24:57 UTC 2012 - dimstar@opensuse.org + +- Add gdm-gdmslave-typo.patch: Fix type in Method call, which can + cause gdm to crash on login when operated with ConsoleKit. + ------------------------------------------------------------------- Tue Sep 11 19:39:25 UTC 2012 - vuntz@opensuse.org diff --git a/gdm.spec b/gdm.spec index dc16cc5..518a6b5 100644 --- a/gdm.spec +++ b/gdm.spec @@ -59,6 +59,8 @@ Patch34: gdm-default-wm.patch Patch35: gdm-xauthlocalhostname.patch # PATCH-FIX-UPSTREAM gdm-look-at-runlevel.patch bnc540482 bgo599180 vuntz@opensuse.org -- Look at the current runlevel before managing the display again, so we don't do this when shutting down or rebooting Patch40: gdm-look-at-runlevel.patch +# PATCH-FIX-UPSTREAM gdm-gdmslave-typo.patch dimstar@opensuse.org -- Fix crash on login due to wrong method call. Taken from git. +Patch41: gdm-gdmslave-typo.patch BuildRequires: check-devel # needed for directory ownership BuildRequires: dconf @@ -216,6 +218,7 @@ translation-update-upstream %patch34 -p1 %patch35 -p1 %patch40 -p1 +%patch41 -p1 %build NOCONFIGURE=1 gnome-autogen.sh From 092a79e01ac729eae1280fea1644b470847d48d10912c6a12638cbe652c30300 Mon Sep 17 00:00:00 2001 From: Dominique Leuenberger Date: Fri, 21 Sep 2012 19:22:04 +0000 Subject: [PATCH 3/4] Accepting request 135072 from home:dimstar:branches:GNOME:Factory Update to 3.5.92.1 OBS-URL: https://build.opensuse.org/request/show/135072 OBS-URL: https://build.opensuse.org/package/show/GNOME:Factory/gdm?expand=0&rev=219 --- gdm-3.5.91.tar.xz | 3 -- gdm-3.5.92.1.tar.xz | 3 ++ gdm-gdmslave-typo.patch | 75 ----------------------------------------- gdm.changes | 22 +++++++++++- gdm.spec | 5 +-- 5 files changed, 25 insertions(+), 83 deletions(-) delete mode 100644 gdm-3.5.91.tar.xz create mode 100644 gdm-3.5.92.1.tar.xz delete mode 100644 gdm-gdmslave-typo.patch diff --git a/gdm-3.5.91.tar.xz b/gdm-3.5.91.tar.xz deleted file mode 100644 index 44ef3e6..0000000 --- a/gdm-3.5.91.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:fc7fd30ab41c631e91399623a4769a013c37aa3018659e4d92209f5767d2f44d -size 1642176 diff --git a/gdm-3.5.92.1.tar.xz b/gdm-3.5.92.1.tar.xz new file mode 100644 index 0000000..1f9ae94 --- /dev/null +++ b/gdm-3.5.92.1.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:334e469b65c5406a6c8819ec787fabc1caad0c85a85cb17ebf06c7b6cc0406cb +size 1622788 diff --git a/gdm-gdmslave-typo.patch b/gdm-gdmslave-typo.patch deleted file mode 100644 index 40eac05..0000000 --- a/gdm-gdmslave-typo.patch +++ /dev/null @@ -1,75 +0,0 @@ -From 3b7053e7c20896b69981f52f7f9e295af9dad05f Mon Sep 17 00:00:00 2001 -From: Ray Strode -Date: Thu, 13 Sep 2012 20:20:28 +0000 -Subject: daemon: s/CanSessionsForUnixUser/GetSessionsForUnixUser/ - -Correct typo in method call name. ---- -diff --git a/daemon/gdm-slave.c b/daemon/gdm-slave.c -index 55ef526..6f26d8e 100644 ---- a/daemon/gdm-slave.c -+++ b/daemon/gdm-slave.c -@@ -1412,7 +1412,7 @@ gdm_slave_get_primary_session_id_for_user_from_ck (GdmSlave *slave, - CK_NAME, - CK_MANAGER_PATH, - CK_MANAGER_INTERFACE, -- "CanSessionsForUnixUser", -+ "GetSessionsForUnixUser", - g_variant_new ("(u)", uid), - G_VARIANT_TYPE ("(ao)"), - G_DBUS_CALL_FLAGS_NONE, --- -cgit v0.9.0.2 - -From 39a38f321c696ef0e98e2b4241a0156040aafa75 Mon Sep 17 00:00:00 2001 -From: Ray Strode -Date: Thu, 13 Sep 2012 21:34:51 +0000 -Subject: slave: more gdm_slave_get_primary_session_id_for_user_from_ck fixes - -It's getting the types wrong, rework it to be (subjectively) clearer. ---- -diff --git a/daemon/gdm-slave.c b/daemon/gdm-slave.c -index 6f26d8e..9195b9b 100644 ---- a/daemon/gdm-slave.c -+++ b/daemon/gdm-slave.c -@@ -1365,12 +1365,11 @@ gdm_slave_get_primary_session_id_for_user_from_ck (GdmSlave *slave, - { - gboolean can_activate_sessions; - GError *error; -+ const char **sessions; -+ int i; - char *primary_ssid; - uid_t uid; - GVariant *reply; -- GVariant *array; -- GVariantIter iter; -- char *ssid; - - error = NULL; - primary_ssid = NULL; -@@ -1426,17 +1425,16 @@ gdm_slave_get_primary_session_id_for_user_from_ck (GdmSlave *slave, - return NULL; - } - -- array = g_variant_get_child_value (reply, 0); -- g_variant_iter_init (&iter, array); -- while (g_variant_iter_loop (&iter, "(&s)", &ssid)) { -- if (x11_session_is_on_seat (slave, ssid, slave->priv->display_seat_id)) { -- primary_ssid = g_strdup (ssid); -+ g_variant_get_child (reply, 0, "^a&o", &sessions); -+ for (i = 0; sessions[i] != NULL; i++) { -+ if (x11_session_is_on_seat (slave, sessions[i], slave->priv->display_seat_id)) { -+ primary_ssid = g_strdup (sessions[i]); - break; - } - } - -+ g_free (sessions); - g_variant_unref (reply); -- g_variant_unref (array); - return primary_ssid; - } - #endif --- -cgit v0.9.0.2 - diff --git a/gdm.changes b/gdm.changes index fec974a..4ab0452 100644 --- a/gdm.changes +++ b/gdm.changes @@ -1,7 +1,27 @@ +------------------------------------------------------------------- +Tue Sep 18 21:31:05 UTC 2012 - dimstar@opensuse.org + +- Update to version 3.5.92.1: + + Fix crasher when hitting escape really fast at unlock time. + +------------------------------------------------------------------- +Tue Sep 18 20:59:46 UTC 2012 - dimstar@opensuse.org + +- Update to version 3.5.92: + + More PAM distro changes + + Clean up initialization code + + export Version property over bus + + SELinux integration + + ConsoleKit fixes + + Autologin fixes + + Make reauthentication session have user's environment + + Updated translations. +- Drop gdm-gdmslave-typo.patch: fixed upstream. + ------------------------------------------------------------------- Thu Sep 13 20:24:57 UTC 2012 - dimstar@opensuse.org -- Add gdm-gdmslave-typo.patch: Fix type in Method call, which can +- Add gdm-gdmslave-typo.patch: Fix typo in Method call, which can cause gdm to crash on login when operated with ConsoleKit. ------------------------------------------------------------------- diff --git a/gdm.spec b/gdm.spec index 518a6b5..d276750 100644 --- a/gdm.spec +++ b/gdm.spec @@ -24,7 +24,7 @@ %define enable_split_authentication 0 Name: gdm -Version: 3.5.91 +Version: 3.5.92.1 Release: 0 Summary: The GNOME Display Manager License: GPL-2.0+ @@ -59,8 +59,6 @@ Patch34: gdm-default-wm.patch Patch35: gdm-xauthlocalhostname.patch # PATCH-FIX-UPSTREAM gdm-look-at-runlevel.patch bnc540482 bgo599180 vuntz@opensuse.org -- Look at the current runlevel before managing the display again, so we don't do this when shutting down or rebooting Patch40: gdm-look-at-runlevel.patch -# PATCH-FIX-UPSTREAM gdm-gdmslave-typo.patch dimstar@opensuse.org -- Fix crash on login due to wrong method call. Taken from git. -Patch41: gdm-gdmslave-typo.patch BuildRequires: check-devel # needed for directory ownership BuildRequires: dconf @@ -218,7 +216,6 @@ translation-update-upstream %patch34 -p1 %patch35 -p1 %patch40 -p1 -%patch41 -p1 %build NOCONFIGURE=1 gnome-autogen.sh From c9cfddace3512d32815de8243177b4619faf1991ed0ecdd5aea48513d6bcb6f6 Mon Sep 17 00:00:00 2001 From: Dominique Leuenberger Date: Tue, 25 Sep 2012 20:22:58 +0000 Subject: [PATCH 4/4] Accepting request 135971 from home:dimstar:branches:GNOME:Factory Update to 3.6.0 OBS-URL: https://build.opensuse.org/request/show/135971 OBS-URL: https://build.opensuse.org/package/show/GNOME:Factory/gdm?expand=0&rev=220 --- gdm-3.5.92.1.tar.xz | 3 --- gdm-3.6.0.tar.xz | 3 +++ gdm.changes | 9 +++++++++ gdm.spec | 4 ++-- 4 files changed, 14 insertions(+), 5 deletions(-) delete mode 100644 gdm-3.5.92.1.tar.xz create mode 100644 gdm-3.6.0.tar.xz diff --git a/gdm-3.5.92.1.tar.xz b/gdm-3.5.92.1.tar.xz deleted file mode 100644 index 1f9ae94..0000000 --- a/gdm-3.5.92.1.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:334e469b65c5406a6c8819ec787fabc1caad0c85a85cb17ebf06c7b6cc0406cb -size 1622788 diff --git a/gdm-3.6.0.tar.xz b/gdm-3.6.0.tar.xz new file mode 100644 index 0000000..87328d5 --- /dev/null +++ b/gdm-3.6.0.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ea63736fc8f7234aca442f4e99b3ba9cc29dce5e464ed93f7bf7eb8c49abd60b +size 1627064 diff --git a/gdm.changes b/gdm.changes index 4ab0452..0d8f155 100644 --- a/gdm.changes +++ b/gdm.changes @@ -1,3 +1,12 @@ +------------------------------------------------------------------- +Tue Sep 25 19:01:14 UTC 2012 - dimstar@opensuse.org + +- Update to version 3.6.0: + + Update exherbo PAM config + + screen reading fixes + + start dbus-daemon inside greeter session + + Updated translations. + ------------------------------------------------------------------- Tue Sep 18 21:31:05 UTC 2012 - dimstar@opensuse.org diff --git a/gdm.spec b/gdm.spec index d276750..13fc5ab 100644 --- a/gdm.spec +++ b/gdm.spec @@ -24,13 +24,13 @@ %define enable_split_authentication 0 Name: gdm -Version: 3.5.92.1 +Version: 3.6.0 Release: 0 Summary: The GNOME Display Manager License: GPL-2.0+ Group: System/GUI/GNOME Url: http://projects.gnome.org/gdm/ -Source: http://download.gnome.org/sources/gdm/3.5/%{name}-%{version}.tar.xz +Source: http://download.gnome.org/sources/gdm/3.6/%{name}-%{version}.tar.xz Source1: gdm.pamd Source2: gdm-autologin.pamd Source3: gdm-launch-environment.pamd