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>
|
From: Ray Strode <rstrode@redhat.com>
|
||||||
Date: Mon, 19 Sep 2011 22:16:25 +0000
|
Date: Mon, 26 Sep 2011 11:45:15 -0400
|
||||||
Subject: daemon: add better unified authentication compatibility
|
Subject: [PATCH] daemon: fix the legacy auth compatibility layer
|
||||||
|
|
||||||
The daemon and fallback greeter support --disable-split-authentication,
|
In commit f91f017071ffa5f5999e6c2e2c0929e290482932 I
|
||||||
but the new shiny greeter doesn't. This posed a problem for
|
introduced a translation layer that keeps compatibility
|
||||||
distributions that want to use the new shiny greeter (in an albeit
|
for distros who build with --disable-split-authentication.
|
||||||
degraded mode) but don't yet have support at the system level for
|
|
||||||
split authentication.
|
|
||||||
|
|
||||||
This commit adds a small amount of goo to make the split authentication
|
The commit was somewhat faulty, though. I made some last
|
||||||
pam service names translate to the unified pam service name and
|
minute clean ups to the patch before committing that I didn't
|
||||||
thus give the shell greeter a level of compatibility with
|
fully test. Those cleanups resulted in the pam service name
|
||||||
--disable-split-authentication.
|
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
|
daemon/gdm-greeter-server.c | 8 ++++----
|
||||||
index 6893c26..8d746c8 100644
|
1 files changed, 4 insertions(+), 4 deletions(-)
|
||||||
--- 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@:>@]),,
|
|
||||||
diff --git a/daemon/gdm-greeter-server.c b/daemon/gdm-greeter-server.c
|
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
|
--- a/daemon/gdm-greeter-server.c
|
||||||
+++ b/daemon/gdm-greeter-server.c
|
+++ b/daemon/gdm-greeter-server.c
|
||||||
@@ -60,6 +60,8 @@ struct GdmGreeterServerPrivate
|
@@ -486,7 +486,7 @@ handle_begin_verification (GdmGreeterServer *greeter_server,
|
||||||
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,
|
|
||||||
dbus_connection_send (connection, reply, NULL);
|
dbus_connection_send (connection, reply, NULL);
|
||||||
dbus_message_unref (reply);
|
dbus_message_unref (reply);
|
||||||
|
|
||||||
- g_signal_emit (greeter_server, signals [START_CONVERSATION], 0, service_name);
|
- service_name = translate_outgoing_service_name (greeter_server, service_name);
|
||||||
+ translated_service_name = translate_incoming_service_name (greeter_server, service_name);
|
+ 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);
|
|
||||||
g_signal_emit (greeter_server, signals [BEGIN_VERIFICATION], 0, service_name);
|
g_signal_emit (greeter_server, signals [BEGIN_VERIFICATION], 0, service_name);
|
||||||
|
|
||||||
return DBUS_HANDLER_RESULT_HANDLED;
|
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_connection_send (connection, reply, NULL);
|
||||||
dbus_message_unref (reply);
|
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);
|
g_signal_emit (greeter_server, signals [BEGIN_VERIFICATION_FOR_USER], 0, service_name, text);
|
||||||
|
|
||||||
return DBUS_HANDLER_RESULT_HANDLED;
|
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_connection_send (connection, reply, NULL);
|
||||||
dbus_message_unref (reply);
|
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);
|
g_signal_emit (greeter_server, signals [QUERY_ANSWER], 0, service_name, text);
|
||||||
|
|
||||||
return DBUS_HANDLER_RESULT_HANDLED;
|
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_connection_send (connection, reply, NULL);
|
||||||
dbus_message_unref (reply);
|
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) {
|
if (should_start_session) {
|
||||||
g_signal_emit (greeter_server, signals [START_SESSION_WHEN_READY], 0, service_name);
|
g_signal_emit (greeter_server, signals [START_SESSION_WHEN_READY], 0, service_name);
|
||||||
} else {
|
} 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
|
Sat Sep 24 14:56:10 UTC 2011 - vuntz@opensuse.org
|
||||||
|
|
||||||
|
8
gdm.spec
8
gdm.spec
@ -22,11 +22,11 @@
|
|||||||
Name: gdm
|
Name: gdm
|
||||||
License: GPLv2+
|
License: GPLv2+
|
||||||
Group: System/GUI/GNOME
|
Group: System/GUI/GNOME
|
||||||
Version: 3.1.92
|
Version: 3.2.0
|
||||||
Release: 1
|
Release: 1
|
||||||
Summary: The GNOME Display Manager
|
Summary: The GNOME Display Manager
|
||||||
Url: http://projects.gnome.org/gdm/
|
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
|
Source1: gdm.pamd
|
||||||
Source2: gdm-autologin.pamd
|
Source2: gdm-autologin.pamd
|
||||||
Source3: gdm-welcome.pamd
|
Source3: gdm-welcome.pamd
|
||||||
@ -69,7 +69,7 @@ Patch35: gdm-xauthlocalhostname.patch
|
|||||||
Patch40: gdm-look-at-runlevel.patch
|
Patch40: gdm-look-at-runlevel.patch
|
||||||
# PATCH-FIX-OPENSUSE gdm-selinux.patch -- Small changes to make it compile fine with SELinux
|
# PATCH-FIX-OPENSUSE gdm-selinux.patch -- Small changes to make it compile fine with SELinux
|
||||||
Patch60: gdm-selinux.patch
|
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
|
Patch61: gdm-unified-auth.patch
|
||||||
BuildRequires: check-devel
|
BuildRequires: check-devel
|
||||||
BuildRequires: dbus-1-glib-devel
|
BuildRequires: dbus-1-glib-devel
|
||||||
@ -237,7 +237,7 @@ translation-update-upstream
|
|||||||
%patch35 -p0
|
%patch35 -p0
|
||||||
%patch40 -p1
|
%patch40 -p1
|
||||||
%patch60
|
%patch60
|
||||||
%patch61 -p1 -R
|
%patch61 -p1
|
||||||
#gnome-patch-translation-update
|
#gnome-patch-translation-update
|
||||||
|
|
||||||
%build
|
%build
|
||||||
|
Loading…
x
Reference in New Issue
Block a user