SHA256
1
0
forked from pool/gdm

Accepting request 429120 from GNOME:Factory

New stable (forwarded request 428817 from Zaitor)

OBS-URL: https://build.opensuse.org/request/show/429120
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/gdm?expand=0&rev=187
This commit is contained in:
Dominique Leuenberger 2016-09-21 16:38:41 +00:00 committed by Git OBS Bridge
commit 65585663bc
6 changed files with 119 additions and 80 deletions

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:10a2512fc8455a3e60e61907a8419ae7dfba9e7ea80cfb7e2ffa746eb165789f
size 1148952

3
gdm-3.22.0.tar.xz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:b9180d07c6a4a3fb0e8df6bcb4f333008cb3071f0ef81e02f081ff8a144f62d4
size 1109876

View File

@ -2,6 +2,8 @@
# GDM PAM configuration for autologin
auth requisite pam_nologin.so
auth required pam_permit.so
auth optional pam_gdm.so
auth optional pam_gnome_keyring.so
account include common-account
password include common-password
session required pam_loginuid.so

View File

@ -1,8 +1,48 @@
Index: gdm-3.7.3.1/daemon/gdm-display-access-file.c
===================================================================
--- gdm-3.7.3.1.orig/daemon/gdm-display-access-file.c
+++ gdm-3.7.3.1/daemon/gdm-display-access-file.c
@@ -443,13 +443,10 @@ _get_auth_info_for_display (GdmDisplayAc
diff --git a/common/gdm-common.c b/common/gdm-common.c
index 31fc810..fbf5978 100644
--- a/common/gdm-common.c
+++ b/common/gdm-common.c
@@ -591,6 +591,8 @@ gdm_get_script_environment (const char *username,
if (display_hostname) {
g_hash_table_insert (hash, g_strdup ("REMOTE_HOST"), g_strdup (display_hostname));
+ } else {
+ g_hash_table_insert (hash, g_strdup ("XAUTHLOCALHOSTNAME"), gdm_gethostname ());
}
/* Runs as root */
@@ -797,3 +799,14 @@ gdm_shell_expand (const char *str,
}
return g_string_free (s, FALSE);
}
+
+char *
+gdm_gethostname (void)
+{
+ char localhost[HOST_NAME_MAX + 1] = "";
+ if (gethostname (localhost, HOST_NAME_MAX) == 0) {
+ return g_strdup (localhost);
+ } else {
+ return g_strdup ("localhost");
+ }
+}
diff --git a/common/gdm-common.h b/common/gdm-common.h
index 8d83a12..bc13d70 100644
--- a/common/gdm-common.h
+++ b/common/gdm-common.h
@@ -54,6 +54,7 @@ const char * gdm_make_temp_dir (char *template);
char *gdm_generate_random_bytes (gsize size,
GError **error);
gboolean gdm_goto_login_session (GError **error);
+char *gdm_gethostname (void);
GPtrArray *gdm_get_script_environment (const char *username,
const char *display_name,
diff --git a/daemon/gdm-display-access-file.c b/daemon/gdm-display-access-file.c
index 02ec0a0..5cc18a4 100644
--- a/daemon/gdm-display-access-file.c
+++ b/daemon/gdm-display-access-file.c
@@ -443,13 +443,10 @@ _get_auth_info_for_display (GdmDisplayAccessFile *file,
*
* https://bugs.freedesktop.org/show_bug.cgi?id=43425
*/
@ -19,11 +59,11 @@ Index: gdm-3.7.3.1/daemon/gdm-display-access-file.c
} else {
*family = FamilyWild;
gdm_display_get_remote_hostname (display, address, NULL);
Index: gdm-3.7.3.1/daemon/gdm-launch-environment.c
===================================================================
--- gdm-3.7.3.1.orig/daemon/gdm-launch-environment.c
+++ gdm-3.7.3.1/daemon/gdm-launch-environment.c
@@ -284,6 +284,11 @@ build_launch_environment (GdmLaunchEnvir
diff --git a/daemon/gdm-launch-environment.c b/daemon/gdm-launch-environment.c
index a30276b..fded306 100644
--- a/daemon/gdm-launch-environment.c
+++ b/daemon/gdm-launch-environment.c
@@ -194,6 +194,11 @@ build_launch_environment (GdmLaunchEnvironment *launch_environment,
g_hash_table_insert (hash, g_strdup ("GDM_SEAT_ID"), g_strdup (seat_id));
}
@ -35,12 +75,12 @@ Index: gdm-3.7.3.1/daemon/gdm-launch-environment.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.7.3.1/daemon/gdm-session.c
===================================================================
--- gdm-3.7.3.1.orig/daemon/gdm-session.c
+++ gdm-3.7.3.1/daemon/gdm-session.c
@@ -2374,6 +2374,14 @@ setup_session_environment (GdmSession *s
self->priv->user_x11_authority_file);
diff --git a/daemon/gdm-session.c b/daemon/gdm-session.c
index b839fea..83fb807 100644
--- a/daemon/gdm-session.c
+++ b/daemon/gdm-session.c
@@ -2548,6 +2548,14 @@ set_up_session_environment (GdmSession *self)
}
}
+ if (self->priv->display_is_local) {
@ -54,61 +94,3 @@ Index: gdm-3.7.3.1/daemon/gdm-session.c
if (g_getenv ("WINDOWPATH") != NULL) {
gdm_session_set_environment_variable (self,
"WINDOWPATH",
Index: gdm-3.7.3.1/daemon/gdm-slave.c
===================================================================
--- gdm-3.7.3.1.orig/daemon/gdm-slave.c
+++ gdm-3.7.3.1/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));
}
+ if (slave->priv->display_is_local) {
+ g_hash_table_insert (hash, g_strdup ("XAUTHLOCALHOSTNAME"), gdm_gethostname ());
+ }
+
/* 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));
@@ -644,6 +648,11 @@ 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);
+ do {
+ char *hostname = gdm_gethostname ();
+ g_setenv ("XAUTHLOCALHOSTNAME", hostname, TRUE);
+ g_free (hostname);
+ } while (0);
sigemptyset (&mask);
sigaddset (&mask, SIGCHLD);
Index: gdm-3.7.3.1/common/gdm-common.c
===================================================================
--- gdm-3.7.3.1.orig/common/gdm-common.c
+++ gdm-3.7.3.1/common/gdm-common.c
@@ -509,3 +509,14 @@ gdm_generate_random_bytes (gsize size
close (fd);
return bytes;
}
+
+char *
+gdm_gethostname (void)
+{
+ char localhost[HOST_NAME_MAX + 1] = "";
+ if (gethostname (localhost, HOST_NAME_MAX) == 0) {
+ return g_strdup (localhost);
+ } else {
+ return g_strdup ("localhost");
+ }
+}
Index: gdm-3.7.3.1/common/gdm-common.h
===================================================================
--- gdm-3.7.3.1.orig/common/gdm-common.h
+++ gdm-3.7.3.1/common/gdm-common.h
@@ -58,6 +58,7 @@ gboolean gdm_string_hex_decode
int insert_at);
char *gdm_generate_random_bytes (gsize size,
GError **error);
+char *gdm_gethostname (void);
G_END_DECLS

View File

@ -1,3 +1,53 @@
-------------------------------------------------------------------
Mon Sep 19 19:55:24 UTC 2016 - zaitor@opensuse.org
- Update to version 3.22.0:
+ Autologin fixes.
+ Updated translations.
-------------------------------------------------------------------
Wed Aug 31 21:43:25 UTC 2016 - dimstar@opensuse.org
- Rebase gdm-xauthlocalhostname.patch: boo#538064 is still
applicable and the patch still required.
-------------------------------------------------------------------
Wed Aug 31 20:35:51 UTC 2016 - zaitor@opensuse.org
- Update to version 3.21.91:
+ Fix autologin on non-LUKS systems.
+ Import environment from systemd user manager.
-------------------------------------------------------------------
Thu Aug 25 12:39:58 UTC 2016 - dimstar@opensuse.org
- Update to version 3.21.90:
+ Use LUKS password to unlock gnome-keyring at login (when
autologin is enabled).
+ Updated translations.
- Add keyutils-devel BuildRequires: new dependency.
- Add pam_gdm.so and pam_gnome_keyring.so as optional auth modules
to gdm-autologin.pamd: allows to unlock the gnome-keyring when
autologin is configured, the disk is encrypted (key cached by
systemd) and the gnome-keyring uses the same password as the
disk,
-------------------------------------------------------------------
Tue Aug 16 09:10:44 UTC 2016 - zaitor@opensuse.org
- Update to version 3.21.4:
+ Small crasher fix.
+ Updated translations.
-------------------------------------------------------------------
Tue Aug 16 09:10:43 UTC 2016 - zaitor@opensuse.org
- Update to version 3.21.3:
+ Updated translations.
- Changes from version 3.21.2:
+ Import DISPLAY into user bus.
+ Updated translations.
-------------------------------------------------------------------
Tue Aug 16 09:10:42 UTC 2016 - tyang@suse.com

View File

@ -25,13 +25,13 @@
%define enable_split_authentication 0
Name: gdm
Version: 3.20.1
Version: 3.22.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.20/%{name}-%{version}.tar.xz
Source: http://download.gnome.org/sources/gdm/3.22/%{name}-%{version}.tar.xz
Source1: gdm.pamd
Source2: gdm-autologin.pamd
Source3: gdm-launch-environment.pamd
@ -70,6 +70,7 @@ BuildRequires: gnome-common
BuildRequires: gnome-session-core
BuildRequires: gobject-introspection-devel >= 0.9.12
BuildRequires: iso-codes-devel
BuildRequires: keyutils-devel
BuildRequires: libXdmcp-devel
BuildRequires: libXi-devel
BuildRequires: libXinerama-devel
@ -190,7 +191,7 @@ translation-update-upstream
%patch8 -p1
%patch9 -p1
%patch34 -p1
#patch35 -p1
%patch35 -p1
%patch41 -p1
%patch42 -p1
@ -247,6 +248,9 @@ echo "We are not ready for this, we need to know what to put in gdm-fingerprint
false
%endif
ln -s gdm $RPM_BUILD_ROOT/etc/pam.d/gdm-password
# move the pam module out of _prefix
mkdir -p %{buildroot}/%{_lib}/security
mv %{buildroot}%{_libdir}/security/pam_gdm.so %{buildroot}/%{_lib}/security/
## Install other files
# Install PostLogin script.
mv $RPM_BUILD_ROOT%{_sysconfdir}/gdm/PostLogin/Default.sample $RPM_BUILD_ROOT%{_sysconfdir}/gdm/PostLogin/Default
@ -325,6 +329,7 @@ dconf update
%{_datadir}/glib-2.0/schemas/org.gnome.login-screen.gschema.xml
%{_datadir}/icons/*/*/*/*.*
%{_datadir}/pixmaps/*.png
/%{_lib}/security/pam_gdm.so
%dir %{_libexecdir}/gdm
%{_libexecdir}/gdm/gdm-*
%{_libexecdir}/gdm/gdmflexiserver