Accepting request 85641 from GNOME:Factory
Pushing G:F OBS-URL: https://build.opensuse.org/request/show/85641 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/gdm?expand=0&rev=127
This commit is contained in:
commit
118cd42a33
@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:56c43b8875ecf75aa30e22f849233fa63fee22b759dcfea9098eddd547ad4f7c
|
||||
size 2363614
|
3
gdm-3.2.0.tar.bz2
Normal file
3
gdm-3.2.0.tar.bz2
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:8a4986bdaeb8040644c76384af6f0f7f2346f51e93eabd7c1aaff272c167c102
|
||||
size 2359531
|
@ -1,227 +1,62 @@
|
||||
From f91f017071ffa5f5999e6c2e2c0929e290482932 Mon Sep 17 00:00:00 2001
|
||||
From 8874626358898d717ac2b7ee812eb039536deb80 Mon Sep 17 00:00:00 2001
|
||||
From: Ray Strode <rstrode@redhat.com>
|
||||
Date: Mon, 19 Sep 2011 22:16:25 +0000
|
||||
Subject: daemon: add better unified authentication compatibility
|
||||
Date: Mon, 26 Sep 2011 11:45:15 -0400
|
||||
Subject: [PATCH] daemon: fix the legacy auth compatibility layer
|
||||
|
||||
The daemon and fallback greeter support --disable-split-authentication,
|
||||
but the new shiny greeter doesn't. This posed a problem for
|
||||
distributions that want to use the new shiny greeter (in an albeit
|
||||
degraded mode) but don't yet have support at the system level for
|
||||
split authentication.
|
||||
In commit f91f017071ffa5f5999e6c2e2c0929e290482932 I
|
||||
introduced a translation layer that keeps compatibility
|
||||
for distros who build with --disable-split-authentication.
|
||||
|
||||
This commit adds a small amount of goo to make the split authentication
|
||||
pam service names translate to the unified pam service name and
|
||||
thus give the shell greeter a level of compatibility with
|
||||
--disable-split-authentication.
|
||||
The commit was somewhat faulty, though. I made some last
|
||||
minute clean ups to the patch before committing that I didn't
|
||||
fully test. Those cleanups resulted in the pam service name
|
||||
getting improperly translated and broke the compatibility layer
|
||||
the commit introduced.
|
||||
|
||||
https://bugzilla.gnome.org/show_bug.cgi?id=658451
|
||||
---
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index 6893c26..8d746c8 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -234,6 +234,10 @@ AC_ARG_ENABLE(split-authentication,
|
||||
enable_split_authentication=yes)
|
||||
AM_CONDITIONAL(ENABLE_SPLIT_AUTHENTICATION, test x$enable_split_authentication = xyes)
|
||||
|
||||
+if test x$enable_split_authentication = xyes; then
|
||||
+ AC_DEFINE(ENABLE_SPLIT_AUTHENTICATION, 1, [Define if split authentication is enabled])
|
||||
+fi
|
||||
+
|
||||
AC_ARG_ENABLE(console-helper,
|
||||
AS_HELP_STRING([--enable-console-helper],
|
||||
[Enable PAM console helper @<:@default=auto@:>@]),,
|
||||
daemon/gdm-greeter-server.c | 8 ++++----
|
||||
1 files changed, 4 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/daemon/gdm-greeter-server.c b/daemon/gdm-greeter-server.c
|
||||
index 4c40a4e..4803bc3 100644
|
||||
index 4803bc3..535fdbf 100644
|
||||
--- a/daemon/gdm-greeter-server.c
|
||||
+++ b/daemon/gdm-greeter-server.c
|
||||
@@ -60,6 +60,8 @@ struct GdmGreeterServerPrivate
|
||||
DBusServer *server;
|
||||
char *server_address;
|
||||
DBusConnection *greeter_connection;
|
||||
+
|
||||
+ guint using_legacy_service_name : 1;
|
||||
};
|
||||
|
||||
enum {
|
||||
@@ -246,11 +248,42 @@ send_dbus_void_signal (GdmGreeterServer *greeter_server,
|
||||
dbus_message_unref (message);
|
||||
}
|
||||
|
||||
+static const char *
|
||||
+translate_outgoing_service_name (GdmGreeterServer *greeter_server,
|
||||
+ const char *service_name)
|
||||
+{
|
||||
+#ifndef ENABLE_SPLIT_AUTHENTICATION
|
||||
+ if (strcmp (service_name, "gdm") == 0 && greeter_server->priv->using_legacy_service_name) {
|
||||
+ return "gdm-password";
|
||||
+ }
|
||||
+#endif
|
||||
+
|
||||
+ return service_name;
|
||||
+}
|
||||
+
|
||||
+static const char *
|
||||
+translate_incoming_service_name (GdmGreeterServer *greeter_server,
|
||||
+ const char *service_name)
|
||||
+{
|
||||
+#ifndef ENABLE_SPLIT_AUTHENTICATION
|
||||
+ if (strcmp (service_name, "gdm-password") == 0) {
|
||||
+ g_debug ("GdmGreeterServer: Adjusting pam service from '%s' to 'gdm' for legacy compatibility", service_name);
|
||||
+ service_name = "gdm";
|
||||
+ greeter_server->priv->using_legacy_service_name = TRUE;
|
||||
+ } else if (g_str_has_prefix (service_name, "gdm-") == 0 && strcmp (service_name, "gdm-autologin") != 0) {
|
||||
+ g_debug ("GdmGreeterServer: Rejecting pam service '%s' for legacy compatibility", service_name);
|
||||
+ return NULL;
|
||||
+ }
|
||||
+#endif
|
||||
+ return service_name;
|
||||
+}
|
||||
+
|
||||
gboolean
|
||||
gdm_greeter_server_info_query (GdmGreeterServer *greeter_server,
|
||||
const char *service_name,
|
||||
const char *text)
|
||||
{
|
||||
+ service_name = translate_outgoing_service_name (greeter_server, service_name);
|
||||
send_dbus_string_string_signal (greeter_server, "InfoQuery", service_name, text);
|
||||
|
||||
return TRUE;
|
||||
@@ -261,6 +294,7 @@ gdm_greeter_server_secret_info_query (GdmGreeterServer *greeter_server,
|
||||
const char *service_name,
|
||||
const char *text)
|
||||
{
|
||||
+ service_name = translate_outgoing_service_name (greeter_server, service_name);
|
||||
send_dbus_string_string_signal (greeter_server, "SecretInfoQuery", service_name, text);
|
||||
return TRUE;
|
||||
}
|
||||
@@ -270,6 +304,7 @@ gdm_greeter_server_info (GdmGreeterServer *greeter_server,
|
||||
const char *service_name,
|
||||
const char *text)
|
||||
{
|
||||
+ service_name = translate_outgoing_service_name (greeter_server, service_name);
|
||||
send_dbus_string_string_signal (greeter_server, "Info", service_name, text);
|
||||
return TRUE;
|
||||
}
|
||||
@@ -279,6 +314,7 @@ gdm_greeter_server_problem (GdmGreeterServer *greeter_server,
|
||||
const char *service_name,
|
||||
const char *text)
|
||||
{
|
||||
+ service_name = translate_outgoing_service_name (greeter_server, service_name);
|
||||
send_dbus_string_string_signal (greeter_server, "Problem", service_name, text);
|
||||
return TRUE;
|
||||
}
|
||||
@@ -287,6 +323,7 @@ gboolean
|
||||
gdm_greeter_server_authentication_failed (GdmGreeterServer *greeter_server,
|
||||
const char *service_name)
|
||||
{
|
||||
+ service_name = translate_outgoing_service_name (greeter_server, service_name);
|
||||
send_dbus_string_signal (greeter_server, "AuthenticationFailed", service_name);
|
||||
return TRUE;
|
||||
}
|
||||
@@ -295,6 +332,7 @@ gboolean
|
||||
gdm_greeter_server_service_unavailable (GdmGreeterServer *greeter_server,
|
||||
const char *service_name)
|
||||
{
|
||||
+ service_name = translate_outgoing_service_name (greeter_server, service_name);
|
||||
send_dbus_string_signal (greeter_server, "ServiceUnavailable", service_name);
|
||||
return TRUE;
|
||||
}
|
||||
@@ -310,6 +348,7 @@ gboolean
|
||||
gdm_greeter_server_ready (GdmGreeterServer *greeter_server,
|
||||
const char *service_name)
|
||||
{
|
||||
+ service_name = translate_outgoing_service_name (greeter_server, service_name);
|
||||
send_dbus_string_signal (greeter_server, "Ready", service_name);
|
||||
return TRUE;
|
||||
}
|
||||
@@ -318,6 +357,7 @@ gboolean
|
||||
gdm_greeter_server_conversation_stopped (GdmGreeterServer *greeter_server,
|
||||
const char *service_name)
|
||||
{
|
||||
+ service_name = translate_outgoing_service_name (greeter_server, service_name);
|
||||
send_dbus_string_signal (greeter_server, "ConversationStopped", service_name);
|
||||
return TRUE;
|
||||
}
|
||||
@@ -355,6 +395,7 @@ void
|
||||
gdm_greeter_server_session_opened (GdmGreeterServer *greeter_server,
|
||||
const char *service_name)
|
||||
{
|
||||
+ service_name = translate_outgoing_service_name (greeter_server, service_name);
|
||||
send_dbus_string_signal (greeter_server, "SessionOpened", service_name);
|
||||
}
|
||||
|
||||
@@ -394,6 +435,7 @@ handle_start_conversation (GdmGreeterServer *greeter_server,
|
||||
DBusMessage *reply;
|
||||
DBusError error;
|
||||
const char *service_name;
|
||||
+ const char *translated_service_name;
|
||||
|
||||
dbus_error_init (&error);
|
||||
if (! dbus_message_get_args (message, &error,
|
||||
@@ -409,7 +451,14 @@ handle_start_conversation (GdmGreeterServer *greeter_server,
|
||||
@@ -486,7 +486,7 @@ handle_begin_verification (GdmGreeterServer *greeter_server,
|
||||
dbus_connection_send (connection, reply, NULL);
|
||||
dbus_message_unref (reply);
|
||||
|
||||
- g_signal_emit (greeter_server, signals [START_CONVERSATION], 0, service_name);
|
||||
+ translated_service_name = translate_incoming_service_name (greeter_server, service_name);
|
||||
+
|
||||
+ if (translated_service_name == NULL) {
|
||||
+ gdm_greeter_server_service_unavailable (greeter_server, service_name);
|
||||
+ return DBUS_HANDLER_RESULT_HANDLED;
|
||||
+ }
|
||||
+
|
||||
+ g_signal_emit (greeter_server, signals [START_CONVERSATION], 0, translated_service_name);
|
||||
|
||||
return DBUS_HANDLER_RESULT_HANDLED;
|
||||
}
|
||||
@@ -437,6 +486,7 @@ handle_begin_verification (GdmGreeterServer *greeter_server,
|
||||
dbus_connection_send (connection, reply, NULL);
|
||||
dbus_message_unref (reply);
|
||||
|
||||
+ service_name = translate_outgoing_service_name (greeter_server, service_name);
|
||||
- service_name = translate_outgoing_service_name (greeter_server, service_name);
|
||||
+ service_name = translate_incoming_service_name (greeter_server, service_name);
|
||||
g_signal_emit (greeter_server, signals [BEGIN_VERIFICATION], 0, service_name);
|
||||
|
||||
return DBUS_HANDLER_RESULT_HANDLED;
|
||||
@@ -494,6 +544,7 @@ handle_begin_verification_for_user (GdmGreeterServer *greeter_server,
|
||||
@@ -544,7 +544,7 @@ handle_begin_verification_for_user (GdmGreeterServer *greeter_server,
|
||||
dbus_connection_send (connection, reply, NULL);
|
||||
dbus_message_unref (reply);
|
||||
|
||||
+ service_name = translate_outgoing_service_name (greeter_server, service_name);
|
||||
- service_name = translate_outgoing_service_name (greeter_server, service_name);
|
||||
+ service_name = translate_incoming_service_name (greeter_server, service_name);
|
||||
g_signal_emit (greeter_server, signals [BEGIN_VERIFICATION_FOR_USER], 0, service_name, text);
|
||||
|
||||
return DBUS_HANDLER_RESULT_HANDLED;
|
||||
@@ -524,6 +575,7 @@ handle_answer_query (GdmGreeterServer *greeter_server,
|
||||
@@ -575,7 +575,7 @@ handle_answer_query (GdmGreeterServer *greeter_server,
|
||||
dbus_connection_send (connection, reply, NULL);
|
||||
dbus_message_unref (reply);
|
||||
|
||||
+ service_name = translate_outgoing_service_name (greeter_server, service_name);
|
||||
- service_name = translate_outgoing_service_name (greeter_server, service_name);
|
||||
+ service_name = translate_incoming_service_name (greeter_server, service_name);
|
||||
g_signal_emit (greeter_server, signals [QUERY_ANSWER], 0, service_name, text);
|
||||
|
||||
return DBUS_HANDLER_RESULT_HANDLED;
|
||||
@@ -711,6 +763,7 @@ handle_start_session_when_ready (GdmGreeterServer *greeter_server,
|
||||
@@ -763,7 +763,7 @@ handle_start_session_when_ready (GdmGreeterServer *greeter_server,
|
||||
dbus_connection_send (connection, reply, NULL);
|
||||
dbus_message_unref (reply);
|
||||
|
||||
+ service_name = (char *) translate_outgoing_service_name (greeter_server, service_name);
|
||||
- service_name = (char *) translate_outgoing_service_name (greeter_server, service_name);
|
||||
+ service_name = (char *) translate_incoming_service_name (greeter_server, service_name);
|
||||
if (should_start_session) {
|
||||
g_signal_emit (greeter_server, signals [START_SESSION_WHEN_READY], 0, service_name);
|
||||
} else {
|
||||
diff --git a/daemon/gdm-simple-slave.c b/daemon/gdm-simple-slave.c
|
||||
index 38e7a84..b9165fd 100644
|
||||
--- a/daemon/gdm-simple-slave.c
|
||||
+++ b/daemon/gdm-simple-slave.c
|
||||
@@ -1034,10 +1034,11 @@ on_greeter_start_conversation (GdmGreeterServer *greeter_server,
|
||||
const char *service_name,
|
||||
GdmSimpleSlave *slave)
|
||||
{
|
||||
- g_debug ("GdmSimpleSlave: starting conversation with '%s' pam service'", service_name);
|
||||
if (slave->priv->greeter_reset_id > 0) {
|
||||
return;
|
||||
}
|
||||
+
|
||||
+ g_debug ("GdmSimpleSlave: starting conversation with '%s' pam service'", service_name);
|
||||
gdm_session_start_conversation (GDM_SESSION (slave->priv->session),
|
||||
service_name);
|
||||
}
|
||||
--
|
||||
cgit v0.9.0.2
|
||||
|
||||
--
|
||||
1.7.6.2
|
||||
|
@ -1,3 +1,10 @@
|
||||
-------------------------------------------------------------------
|
||||
Tue Sep 27 07:07:10 UTC 2011 - vuntz@opensuse.org
|
||||
|
||||
- Update to version 3.2.0:
|
||||
+ Updated translations.
|
||||
- Replace gdm-unified-auth.patch with the fix from upstream.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sat Sep 24 14:56:10 UTC 2011 - vuntz@opensuse.org
|
||||
|
||||
|
8
gdm.spec
8
gdm.spec
@ -22,11 +22,11 @@
|
||||
Name: gdm
|
||||
License: GPLv2+
|
||||
Group: System/GUI/GNOME
|
||||
Version: 3.1.92
|
||||
Version: 3.2.0
|
||||
Release: 1
|
||||
Summary: The GNOME Display Manager
|
||||
Url: http://projects.gnome.org/gdm/
|
||||
Source: http://download.gnome.org/sources/gdm/3.1/%{name}-%{version}.tar.bz2
|
||||
Source: http://download.gnome.org/sources/gdm/3.2/%{name}-%{version}.tar.bz2
|
||||
Source1: gdm.pamd
|
||||
Source2: gdm-autologin.pamd
|
||||
Source3: gdm-welcome.pamd
|
||||
@ -69,7 +69,7 @@ Patch35: gdm-xauthlocalhostname.patch
|
||||
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
|
||||
# PATCH-FIX-OPENSUSE gdm-unified-auth.patch dimstar@opensuse.org -- Revert "better unified authentication compatibility"
|
||||
# PATCH-FIX-OPENSUSE gdm-unified-auth.patch bgo#658451 vuntz@opensuse.org -- Fix "better unified authentication compatibility"
|
||||
Patch61: gdm-unified-auth.patch
|
||||
BuildRequires: check-devel
|
||||
BuildRequires: dbus-1-glib-devel
|
||||
@ -237,7 +237,7 @@ translation-update-upstream
|
||||
%patch35 -p0
|
||||
%patch40 -p1
|
||||
%patch60
|
||||
%patch61 -p1 -R
|
||||
%patch61 -p1
|
||||
#gnome-patch-translation-update
|
||||
|
||||
%build
|
||||
|
Loading…
x
Reference in New Issue
Block a user