Sync from SUSE:SLFO:Main gdm revision 3363342bd05f87f8c07bc036e9f6a395

This commit is contained in:
Adrian Schröter 2024-11-12 12:08:33 +01:00
parent 7e391c8044
commit 0a3e5ff477
11 changed files with 289 additions and 135 deletions

19
_service Normal file
View File

@ -0,0 +1,19 @@
<?xml version="1.0"?>
<services>
<service name="obs_scm" mode="manual">
<param name="scm">git</param>
<param name="url">https://gitlab.gnome.org/GNOME/gdm.git</param>
<param name="revision">47.0</param>
<param name="versionformat">@PARENT_TAG@+@TAG_OFFSET@</param>
<param name="versionrewrite-pattern">(.*)\+0</param>
<param name="versionrewrite-replacement">\1</param>
<!-- <param name="changesgenerate">enable</param> -->
</service>
<service name="tar" mode="buildtime"/>
<service name="recompress" mode="buildtime">
<param name="file">*.tar</param>
<param name="compression">zst</param>
</service>
<service name="set_version" mode="manual" />
</services>

BIN
gdm-45.0.1.tar.xz (Stored with Git LFS)

Binary file not shown.

BIN
gdm-47.0.obscpio (Stored with Git LFS) Normal file

Binary file not shown.

View File

@ -1,26 +0,0 @@
--- a/daemon/gdm-session.c
+++ b/daemon/gdm-session.c
@@ -43,6 +43,8 @@
#include <glib-object.h>
#include <gio/gio.h>
+#include "gdm-sysconfig.h"
+
#include "gdm-session.h"
#include "gdm-session-glue.h"
#include "gdm-dbus-util.h"
@@ -589,6 +591,14 @@ get_fallback_session_name (GdmSession *s
}
}
+ name = gdm_sysconfig_load_value ("/etc/sysconfig/windowmanager", "DEFAULT_WM");
+ if (name && get_session_command_for_name (self, name, NULL, NULL)) {
+ g_free (self->fallback_session_name);
+ self->fallback_session_name = name;
+ goto out;
+ }
+ g_free (name);
+
name = g_strdup ("gnome");
if (get_session_command_for_name (self, name, NULL, NULL)) {
g_free (self->fallback_session_name);

View File

@ -1,8 +1,8 @@
Index: gdm-45.beta/daemon/gdm-display.c
Index: gdm-46.2/daemon/gdm-display.c
===================================================================
--- gdm-45.beta.orig/daemon/gdm-display.c
+++ gdm-45.beta/daemon/gdm-display.c
@@ -1537,12 +1537,12 @@ can_create_environment (const char *sess
--- gdm-46.2.orig/daemon/gdm-display.c
+++ gdm-46.2/daemon/gdm-display.c
@@ -1538,12 +1538,12 @@ can_create_environment (const char *sess
return session_exists;
}
@ -18,7 +18,7 @@ Index: gdm-45.beta/daemon/gdm-display.c
return TRUE;
return FALSE;
@@ -1624,7 +1624,7 @@ wants_initial_setup (GdmDisplay *self)
@@ -1625,7 +1625,7 @@ wants_initial_setup (GdmDisplay *self)
priv = gdm_display_get_instance_private (self);
@ -27,11 +27,11 @@ Index: gdm-45.beta/daemon/gdm-display.c
return FALSE;
}
Index: gdm-45.beta/daemon/gdm-manager.c
Index: gdm-46.2/daemon/gdm-manager.c
===================================================================
--- gdm-45.beta.orig/daemon/gdm-manager.c
+++ gdm-45.beta/daemon/gdm-manager.c
@@ -60,7 +60,7 @@
--- gdm-46.2.orig/daemon/gdm-manager.c
+++ gdm-46.2/daemon/gdm-manager.c
@@ -62,7 +62,7 @@
#define GDM_MANAGER_DISPLAYS_PATH GDM_DBUS_PATH "/Displays"
#define INITIAL_SETUP_USERNAME "gnome-initial-setup"
@ -40,32 +40,28 @@ Index: gdm-45.beta/daemon/gdm-manager.c
typedef struct
{
@@ -1789,6 +1789,7 @@ on_start_user_session (StartUserSessionO
gboolean doing_initial_setup = FALSE;
@@ -1847,6 +1847,7 @@ on_start_user_session (StartUserSessionO
gboolean fail_if_already_switched = TRUE;
GdmDisplay *display;
const char *session_id;
+ int fd = -1;
g_debug ("GdmManager: start or jump to session");
@@ -1815,6 +1816,15 @@ on_start_user_session (StartUserSessionO
"doing-initial-setup", &doing_initial_setup,
NULL);
+ fd = open(BLOCK_INITIAL_SETUP, O_RDONLY|O_CREAT|O_EXCL|O_NOFOLLOW|O_CLOEXEC, 0644);
+ if (fd == -1 && errno != EEXIST) {
+ g_warning ("GdmDisplay: Could not write initial-setup-done marker to %s: %s",
+ BLOCK_INITIAL_SETUP,
+ strerror(errno));
+ }
+ else {
+ close(fd);
+ }
if (doing_initial_setup)
chown_initial_setup_home_dir ();
@@ -1835,20 +1845,9 @@ on_start_user_session (StartUserSessionO
@@ -1889,22 +1890,21 @@ on_start_user_session (StartUserSessionO
"doing-initial-setup", &doing_initial_setup,
NULL);
+ fd = open(BLOCK_INITIAL_SETUP, O_RDONLY|O_CREAT|O_EXCL|O_NOFOLLOW|O_CLOEXEC, 0644);
+ if (fd == -1 && errno != EEXIST) {
+ g_warning ("GdmDisplay: Could not write initial-setup-done marker to %s: %s",
+ BLOCK_INITIAL_SETUP,
+ strerror(errno));
+ }
+ else {
+ close(fd);
+ }
+
g_object_ref (display);
if (doing_initial_setup) {
- g_autoptr(GError) error = NULL;
@ -85,11 +81,11 @@ Index: gdm-45.beta/daemon/gdm-manager.c
} else {
g_debug ("GdmManager: session has its display server, reusing our server for another login screen");
}
Index: gdm-45.beta/daemon/meson.build
Index: gdm-46.2/daemon/meson.build
===================================================================
--- gdm-45.beta.orig/daemon/meson.build
+++ gdm-45.beta/daemon/meson.build
@@ -210,6 +210,7 @@ endif
--- gdm-46.2.orig/daemon/meson.build
+++ gdm-46.2/daemon/meson.build
@@ -227,6 +227,7 @@ endif
gdm_daemon = executable('gdm',
[ gdm_daemon_sources, gdm_daemon_gen_sources ],

View File

@ -1,8 +1,7 @@
Index: gdm-45.0.1/daemon/gdm-local-display-factory.c
===================================================================
--- gdm-45.0.1.orig/daemon/gdm-local-display-factory.c
+++ gdm-45.0.1/daemon/gdm-local-display-factory.c
@@ -555,10 +555,12 @@ on_display_status_changed (GdmDisplay
diff -urp gdm-46.2.orig/daemon/gdm-local-display-factory.c gdm-46.2/daemon/gdm-local-display-factory.c
--- gdm-46.2.orig/daemon/gdm-local-display-factory.c 2024-07-30 13:22:32.183596366 -0500
+++ gdm-46.2/daemon/gdm-local-display-factory.c 2024-07-30 13:43:55.948752639 -0500
@@ -555,11 +555,13 @@ on_display_status_changed (GdmDisplay
/* if this is a local display, ensure that we get a login
* screen when the user logs out.
*/
@ -10,16 +9,16 @@ Index: gdm-45.0.1/daemon/gdm-local-display-factory.c
if (is_local &&
((g_strcmp0 (session_class, "greeter") != 0 &&
(!seat_active_session || g_strcmp0(session_id, seat_active_session) == 0)) ||
#if defined(ENABLE_USER_DISPLAY_SERVER)
(g_strcmp0 (seat_id, "seat0") == 0 && factory->active_vt == GDM_INITIAL_VT) ||
+ (g_strcmp0 (seat_id, "seat0") == 0 && factory->active_vt == 0) ||
#endif
g_strcmp0 (seat_id, "seat0") != 0)) {
/* reset num failures */
factory->num_failures = 0;
Index: gdm-45.0.1/daemon/gdm-manager.c
===================================================================
--- gdm-45.0.1.orig/daemon/gdm-manager.c
+++ gdm-45.0.1/daemon/gdm-manager.c
@@ -1552,7 +1552,8 @@ on_display_status_changed (GdmDisplay *d
diff -urp gdm-46.2.orig/daemon/gdm-manager.c gdm-46.2/daemon/gdm-manager.c
--- gdm-46.2.orig/daemon/gdm-manager.c 2024-07-30 13:22:32.183596366 -0500
+++ gdm-46.2/daemon/gdm-manager.c 2024-07-30 13:22:55.280775612 -0500
@@ -1595,7 +1595,8 @@ on_display_status_changed (GdmDisplay *d
}
#endif

View File

@ -1,5 +1,7 @@
Index: gdm-46.0/common/gdm-settings-system-backend.c
===================================================================
--- /dev/null
+++ b/common/gdm-settings-system-backend.c
+++ gdm-46.0/common/gdm-settings-system-backend.c
@@ -0,0 +1,372 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*-
+ *
@ -373,8 +375,10 @@
+
+ return GDM_SETTINGS_BACKEND (object);
+}
Index: gdm-46.0/common/gdm-settings-system-backend.h
===================================================================
--- /dev/null
+++ b/common/gdm-settings-system-backend.h
+++ gdm-46.0/common/gdm-settings-system-backend.h
@@ -0,0 +1,56 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*-
+ *
@ -432,8 +436,10 @@
+G_END_DECLS
+
+#endif /* __GDM_SETTINGS_SYSTEM_BACKEND_H */
--- a/common/gdm-settings.c
+++ b/common/gdm-settings.c
Index: gdm-46.0/common/gdm-settings.c
===================================================================
--- gdm-46.0.orig/common/gdm-settings.c
+++ gdm-46.0/common/gdm-settings.c
@@ -38,6 +38,7 @@
#include "gdm-settings.h"
@ -453,9 +459,11 @@
backend = gdm_settings_desktop_backend_new (GDM_RUNTIME_CONF);
if (backend)
settings->backends = g_list_prepend (settings->backends, backend);
Index: gdm-46.0/common/gdm-sysconfig.c
===================================================================
--- /dev/null
+++ b/common/gdm-sysconfig.c
@@ -0,0 +1,484 @@
+++ gdm-46.0/common/gdm-sysconfig.c
@@ -0,0 +1,509 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*-
+ *
+ * Copyright (C) 2008 Hans Petter Jansson <hpj@novell.com>
@ -497,6 +505,7 @@
+#include <glib.h>
+#include <glib/gi18n.h>
+#include <glib/gstdio.h>
+#include <gio/gio.h>
+
+#include "gdm-sysconfig.h"
+
@ -550,10 +559,17 @@
+{
+ GIOStatus last_status = G_IO_STATUS_ERROR;
+ GIOChannel *channel = NULL;
+ gchar *temp_file_name;
+ g_autofree gchar *temp_file_name = NULL;
+ gint i;
+ gchar *path = NULL;
+ g_autofree char *template = NULL;
+
+ temp_file_name = g_strdup_printf ("%s.new.%u", file_name, g_random_int ());
+ template = g_strdup_printf ("/run/sysconfig.XXXXXX");
+ path = g_mkdtemp (template);
+ if (path == NULL)
+ goto out;
+
+ temp_file_name = g_strdup_printf ("%s/%s.new",path, g_path_get_basename(file_name));
+
+ channel = g_io_channel_new_file (temp_file_name, "w", NULL);
+ if (!channel)
@ -586,10 +602,27 @@
+ g_io_channel_unref (channel);
+ }
+
+ if (last_status == G_IO_STATUS_NORMAL && g_rename (temp_file_name, file_name) != 0)
+ gboolean result = FALSE;
+ if (last_status == G_IO_STATUS_NORMAL && temp_file_name) {
+ g_autoptr (GFile) old_file = g_file_new_for_path(temp_file_name);
+ g_autoptr (GFile) new_file = g_file_new_for_path(file_name);
+ g_remove(file_name);
+ result = g_file_move (old_file,
+ new_file,
+ G_FILE_COPY_OVERWRITE,
+ NULL,
+ NULL,
+ NULL,
+ NULL);
+ }
+
+ if (last_status == G_IO_STATUS_NORMAL && !result)
+ last_status = G_IO_STATUS_ERROR;
+
+ g_free (temp_file_name);
+ if (path) {
+ g_rmdir(path);
+ }
+
+ return last_status == G_IO_STATUS_NORMAL ? TRUE : FALSE;
+}
+
@ -726,7 +759,7 @@
+}
+
+static gchar *
+get_value (const gchar **lines, const gchar *key)
+get_value (gchar **lines, const gchar *key)
+{
+ gchar *value = NULL;
+ gchar *key_normal;
@ -832,7 +865,7 @@
+}
+
+gboolean
+gdm_sysconfig_save_file (const gchar *file_name, const gchar **sysconfig)
+gdm_sysconfig_save_file (const gchar *file_name, gchar **sysconfig)
+{
+ g_return_val_if_fail (file_name != NULL, FALSE);
+ g_return_val_if_fail (sysconfig != NULL, FALSE);
@ -846,7 +879,7 @@
+ g_return_val_if_fail (sysconfig != NULL, NULL);
+ g_return_val_if_fail (key != NULL, NULL);
+
+ return get_value (sysconfig, key);
+ return get_value ((gchar **)sysconfig, key);
+}
+
+gboolean
@ -862,33 +895,33 @@
+gboolean
+gdm_sysconfig_get_value_boolean (const gchar **sysconfig, const gchar *key, gboolean *value)
+{
+ char *val;
+ gboolean val_bool;
+ char *val;
+ gboolean val_bool;
+
+ g_return_val_if_fail (sysconfig != NULL, FALSE);
+ g_return_val_if_fail (key != NULL, FALSE);
+
+ val = get_value (sysconfig, key);
+ if (val == NULL) {
+ return FALSE;
+ }
+ val = get_value ((gchar **)sysconfig, key);
+ if (val == NULL) {
+ return FALSE;
+ }
+
+ if (!strcasecmp (val, "yes")) {
+ val_bool = TRUE;
+ } else if (!strcasecmp (val, "no")) {
+ val_bool = FALSE;
+ } else {
+ g_free (val);
+ return FALSE;
+ }
+ val_bool = TRUE;
+ } else if (!strcasecmp (val, "no")) {
+ val_bool = FALSE;
+ } else {
+ g_free (val);
+ return FALSE;
+ }
+
+ g_free (val);
+ g_free (val);
+
+ if (value != NULL) {
+ *value = val_bool;
+ }
+ if (value != NULL) {
+ *value = val_bool;
+ }
+
+ return TRUE;
+ return TRUE;
+}
+
+gboolean
@ -940,8 +973,10 @@
+ g_strfreev (lines);
+ return result;
+}
Index: gdm-46.0/common/gdm-sysconfig.h
===================================================================
--- /dev/null
+++ b/common/gdm-sysconfig.h
+++ gdm-46.0/common/gdm-sysconfig.h
@@ -0,0 +1,43 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*-
+ *
@ -972,7 +1007,7 @@
+G_BEGIN_DECLS
+
+gchar **gdm_sysconfig_load_file (const gchar *file_name);
+gboolean gdm_sysconfig_save_file (const gchar *file_name, const gchar **sysconfig);
+gboolean gdm_sysconfig_save_file (const gchar *file_name, gchar **sysconfig);
+
+gchar *gdm_sysconfig_get_value (const gchar **sysconfig, const gchar *key);
+gboolean gdm_sysconfig_set_value (gchar **sysconfig, const gchar *key, const gchar *value);
@ -986,8 +1021,10 @@
+G_END_DECLS
+
+#endif /* __GDM_SYSCONFIG_H */
--- a/data/gdm.conf-custom.in
+++ b/data/gdm.conf-custom.in
Index: gdm-46.0/data/gdm.conf-custom.in
===================================================================
--- gdm-46.0.orig/data/gdm.conf-custom.in
+++ gdm-46.0/data/gdm.conf-custom.in
@@ -1,4 +1,7 @@
# GDM configuration storage
+#
@ -996,8 +1033,10 @@
[daemon]
# Uncomment the line below to force the login screen to use Xorg
--- a/common/meson.build
+++ b/common/meson.build
Index: gdm-46.0/common/meson.build
===================================================================
--- gdm-46.0.orig/common/meson.build
+++ gdm-46.0/common/meson.build
@@ -5,9 +5,11 @@ libgdmcommon_src = files(
'gdm-profile.c',
'gdm-settings-backend.c',

View File

@ -12,13 +12,13 @@ same Xorg/Xvnc server), otherwise, the vncserver would be closed.
daemon/gdm-session.c | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/daemon/gdm-session.c b/daemon/gdm-session.c
index 09b6ce52e..a4c4b2dcf 100644
--- a/daemon/gdm-session.c
+++ b/daemon/gdm-session.c
@@ -3648,6 +3648,11 @@ gdm_session_get_display_mode (GdmSession *self)
self->is_program_session? "yes" : "no",
self->display_seat_id);
Index: gdm-46.rc/daemon/gdm-session.c
===================================================================
--- gdm-46.rc.orig/daemon/gdm-session.c
+++ gdm-46.rc/daemon/gdm-session.c
@@ -3671,6 +3671,11 @@ gdm_session_get_display_mode (GdmSession
return GDM_SESSION_DISPLAY_MODE_REUSE_VT;
}
+ if (self->display_seat_id == NULL &&
+ g_strcmp0 (self->session_type, "wayland") != 0) {
@ -28,6 +28,3 @@ index 09b6ce52e..a4c4b2dcf 100644
if (g_strcmp0 (self->display_seat_id, "seat0") != 0) {
return GDM_SESSION_DISPLAY_MODE_LOGIND_MANAGED;
}
--
GitLab

View File

@ -1,3 +1,116 @@
-------------------------------------------------------------------
Mon Sep 16 13:49:56 UTC 2024 - Dominique Leuenberger <dimstar@opensuse.org>
- Update to version 47.0:
+ Fix X11 support.
-------------------------------------------------------------------
Thu Sep 12 13:32:14 UTC 2024 - Dominique Leuenberger <dimstar@opensuse.org>
- Split the xdm-wrapper parts into gdm-xdm-integration. Require
this new package or gdm-systemd by gdm (suggesting the
xdm-integration for now).
-------------------------------------------------------------------
Wed Sep 11 17:43:19 UTC 2024 - Bjørn Lie <bjorn.lie@gmail.com>
- Update to version 47.rc:
+ Make X11 support optional
+ Support logind secure attention key
+ Drop gdm-screenshot
+ Don't hardcode g-r-d in dbus policy
+ Fix numeric local address resolution
+ Docs updates
+ Updated translations.
- Changes from version 47.alpha:
+ Support for gnome-remote-desktop persistent sessions
+ Misc changes
+ Updated translations.
- Drop pkgconfig(libcanberra-gtk3) BuildRequires: No longer needed,
nor used.
-------------------------------------------------------------------
Thu Aug 15 09:41:11 UTC 2024 - Alynx Zhou <alynx.zhou@suse.com>
- Add pam_pkcs11 as Recommends for smartcard login (bsc#1223580).
-------------------------------------------------------------------
Mon Aug 12 17:34:38 UTC 2024 - Michael Gorse <mgorse@suse.com>
- Fix applying patches when sle_version is defined
-------------------------------------------------------------------
Fri Aug 9 09:10:52 UTC 2024 - Dominique Leuenberger <dimstar@opensuse.org>
- Drop gdm-default-wm.patch: patch seems obsolete. The selection of
default window manager happens by means of update-alternatives
now.
-------------------------------------------------------------------
Tue Jul 30 18:44:44 UTC 2024 - Michael Gorse <mgorse@suse.com>
- Rebase gdm-restart-session-when-X-server-restart.patch.
-------------------------------------------------------------------
Wed Jun 19 01:15:28 UTC 2024 - Xiaoguang Wang <xiaoguang.wang@suse.com>
- Update gdm-sysconfig-settings.patch: work with SELinux policy
(bsc#1222978).
-------------------------------------------------------------------
Mon Jun 3 09:50:14 UTC 2024 - Dominique Leuenberger <dimstar@opensuse.org>
- Update to version 46.2:
+ Block suspend when remote displays are active.
+ Support S0ix suspend when deciding if nvidia should use
wayland.
+ Misc fixes.
+ Updated translations.
- Rebase gdm-initial-setup-hardening.patch.
-------------------------------------------------------------------
Tue Mar 19 07:49:19 UTC 2024 - Dominique Leuenberger <dimstar@opensuse.org>
- Update to version 46.0:
+ PAM improvements.
+ Updated translations.
-------------------------------------------------------------------
Mon Mar 4 08:17:19 UTC 2024 - Dominique Leuenberger <dimstar@opensuse.org>
- Update to version 46.rc:
+ Support for killing conflicting sessions at login time.
+ XDMCP fix.
+ Use wayland by default on certain server chips.
+ Fix pam extension size computation.
+ Introspection fix.
+ Fix for homed users.
+ Updated translations.
- Rebase gdm-default-wm.patch and
gdm-xvnc-start-session-failed.patch.
-------------------------------------------------------------------
Mon Mar 4 03:02:11 UTC 2024 - Xiaoguang Wang <xiaoguang.wang@suse.com>
- Rebase gdm-sysconfig-settings.patch: to fix build with GCC 14.
-------------------------------------------------------------------
Mon Mar 4 02:20:49 UTC 2024 - Dominique Leuenberger <dimstar@opensuse.org>
- Update to version 46.alpha:
+ Support remote login from gnome-remote-desktop (and hopefuly
nicedcv in the future).
+ Support new JSON pam extension.
+ Fix build with user-display-server=false.
+ Minor clean ups.
+ Move private D-Bus sockets to private directory.
+ Build goo fixes.
+ Warning fixes.
+ Updated translations.
- Rebase gdm-default-wm.patch.
- Add pkgconfig(json-glib-1.0) BuildRequires: new dependency.
- Convert to source service for easier updating.
-------------------------------------------------------------------
Mon Mar 4 01:24:06 UTC 2024 - Xiaoguang Wang <xiaoguang.wang@suse.com>

4
gdm.obsinfo Normal file
View File

@ -0,0 +1,4 @@
name: gdm
version: 47.0
mtime: 1726493306
commit: 9c78ff6d02195156a5b556eb2a6395d7ae3d6910

View File

@ -27,14 +27,14 @@
%endif
Name: gdm
Version: 45.0.1
Version: 47.0
Release: 0
Summary: The GNOME Display Manager
License: GPL-2.0-or-later
Group: System/GUI/GNOME
URL: https://wiki.gnome.org/Projects/GDM
Source0: https://download.gnome.org/sources/gdm/45/%{name}-%{version}.tar.xz
Source0: %{name}-%{version}.tar.zst
Source1: gdm.pamd
Source2: gdm-autologin.pamd
Source3: gdm-launch-environment.pamd
@ -64,8 +64,6 @@ Patch0: gdm-s390-not-require-g-s-d_wacom.patch
Patch1: gdm-sysconfig-settings.patch
# PATCH-FIX-OPENSUSE gdm-suse-xsession.patch vuntz@novell.com -- Use the /etc/X11/xdm/* scripts
Patch2: gdm-suse-xsession.patch
# PATCH-FIX-OPENSUSE gdm-default-wm.patch vuntz@novell.com -- Use sysconfig to know to which desktop to use by default
Patch3: gdm-default-wm.patch
# PATCH-FIX-OPENSUSE gdm-xauthlocalhostname.patch bnc#538064 vuntz@novell.com -- Set XAUTHLOCALHOSTNAME to current hostname when we authenticate, for local logins, to avoid issues in the session in case the hostname changes later one. See comment 24 in the bug.
Patch4: gdm-xauthlocalhostname.patch
# PATCH-FIX-OPENSUSE gdm-switch-to-tty1.patch bsc#1113700 xwang@suse.com -- switch to tty1 when stopping gdm service
@ -112,7 +110,7 @@ BuildRequires: pkgconfig(gthread-2.0)
BuildRequires: pkgconfig(gtk+-3.0) >= 2.91.1
BuildRequires: pkgconfig(gudev-1.0) >= 232
BuildRequires: pkgconfig(iso-codes)
BuildRequires: pkgconfig(libcanberra-gtk3) >= 0.4
BuildRequires: pkgconfig(json-glib-1.0)
BuildRequires: pkgconfig(libkeyutils)
BuildRequires: pkgconfig(libsystemd)
BuildRequires: pkgconfig(ply-boot-client)
@ -131,14 +129,15 @@ Requires: gnome-settings-daemon
Requires: gnome-shell
# xdm package ships systemd display-manager service and other common scripts
# between display managers (bsc#1084655)
Requires: xdm
Requires: (gdm-xdm-integration or gdm-systemd)
Suggests: gdm-xdm-integration
Requires(post): dconf
Requires(pre): group(video)
Requires(post): update-alternatives
Requires(postun): update-alternatives
Recommends: iso-codes
# accessibility
Recommends: orca
# smartcard login
Recommends: pam_pkcs11
Provides: gdm2 = %{version}
Obsoletes: gdm2 < %{version}
Provides: gnome-applets-gdm = %{version}
@ -213,6 +212,17 @@ providing graphical log-ins and managing local and remote displays.
This package provides the upstream default configuration for gdm.
%package xdm-integration
Summary: gdm integration into the xdm wrapper script
Requires: gdm
Requires: xdm
Requires(post): update-alternatives
Requires(postun): update-alternatives
%description xdm-integration
GDM's XDM wrapper integration
By default openSUSE uses xdm which enables the DM based on sysconfig.
%package systemd
Summary: Systemd gdm.service file
Group: System/GUI/GNOME
@ -249,7 +259,6 @@ running display manager.
%else
%patch -P 1 -p1
%patch -P 2 -p1
%patch -P 3 -p1
%patch -P 4 -p1
%patch -P 5 -p1
%patch -P 6 -p1
@ -362,6 +371,8 @@ install -D -m 644 %{SOURCE20} %{buildroot}%{_prefix}/share/factory/var/lib/gdm/.
%post
%tmpfiles_create gdm.conf
%post xdm-integration
%{_sbindir}/update-alternatives --install %{_prefix}/lib/X11/displaymanagers/default-displaymanager \
default-displaymanager %{_prefix}/lib/X11/displaymanagers/gdm 25
@ -369,7 +380,7 @@ install -D -m 644 %{SOURCE20} %{buildroot}%{_prefix}/share/factory/var/lib/gdm/.
# Create dconf database for gdm, to lockdown the gdm session
dconf update
%postun
%postun xdm-integration
[ -f %{_prefix}/lib/X11/displaymanagers/gdm ] || %{_sbindir}/update-alternatives \
--remove default-displaymanager %{_prefix}/lib/X11/displaymanagers/gdm
@ -384,7 +395,7 @@ dconf update
%config %{_sysconfdir}/gdm/[IPXl]*
%{_sbindir}/gdm
%{_bindir}/gdm
%{_bindir}/gdm-screenshot
%{_bindir}/gdm-config
%dir %{_datadir}/dconf
%dir %{_datadir}/dconf/profile
%{_datadir}/dconf/profile/gdm
@ -412,11 +423,6 @@ dconf update
%_config_norepl %{_pam_vendordir}/gdm-password
%_config_norepl %{_pam_vendordir}/gdm-launch-environment
%{_datadir}/dbus-1/system.d/gdm.conf
# /etc/xinit.d/xdm integration
%dir %{_prefix}/lib/X11/displaymanagers
%{_prefix}/lib/X11/displaymanagers/default-displaymanager
%{_prefix}/lib/X11/displaymanagers/gdm
%ghost %{_sysconfdir}/alternatives/default-displaymanager
%{_udevrulesdir}/61-gdm.rules
%{_tmpfilesdir}/gdm.conf
%{_sysusersdir}/gdm.conf
@ -425,6 +431,13 @@ dconf update
%dir %{_userunitdir}/gnome-session@gnome-login.target.d
%{_userunitdir}/gnome-session@gnome-login.target.d/session.conf
%files xdm-integration
# /etc/xinit.d/xdm integration
%dir %{_prefix}/lib/X11/displaymanagers
%{_prefix}/lib/X11/displaymanagers/default-displaymanager
%{_prefix}/lib/X11/displaymanagers/gdm
%ghost %{_sysconfdir}/alternatives/default-displaymanager
%files -n libgdm1
%{_libdir}/libgdm.so.*