diff --git a/_service b/_service new file mode 100644 index 0000000..76801b7 --- /dev/null +++ b/_service @@ -0,0 +1,19 @@ + + + + git + https://gitlab.gnome.org/GNOME/gdm.git + 47.0 + @PARENT_TAG@+@TAG_OFFSET@ + (.*)\+0 + \1 + + + + + *.tar + zst + + + + diff --git a/gdm-45.0.1.tar.xz b/gdm-45.0.1.tar.xz deleted file mode 100644 index 46f0aef..0000000 --- a/gdm-45.0.1.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:6572578c05e3c6569d6ed269f7de2aaf3a035657654586d8243907bb7a6ffa85 -size 855004 diff --git a/gdm-47.0.obscpio b/gdm-47.0.obscpio new file mode 100644 index 0000000..2b7f0ee --- /dev/null +++ b/gdm-47.0.obscpio @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d9cac0668327cc6fe06b3e549a9a440d7752aa75c218fb0609b4065f955c369a +size 8533005 diff --git a/gdm-default-wm.patch b/gdm-default-wm.patch deleted file mode 100644 index 6258659..0000000 --- a/gdm-default-wm.patch +++ /dev/null @@ -1,26 +0,0 @@ ---- a/daemon/gdm-session.c -+++ b/daemon/gdm-session.c -@@ -43,6 +43,8 @@ - #include - #include - -+#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); diff --git a/gdm-initial-setup-hardening.patch b/gdm-initial-setup-hardening.patch index 6921805..ec247cf 100644 --- a/gdm-initial-setup-hardening.patch +++ b/gdm-initial-setup-hardening.patch @@ -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 ], diff --git a/gdm-restart-session-when-X-server-restart.patch b/gdm-restart-session-when-X-server-restart.patch index cbc73fb..89758c7 100644 --- a/gdm-restart-session-when-X-server-restart.patch +++ b/gdm-restart-session-when-X-server-restart.patch @@ -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 diff --git a/gdm-sysconfig-settings.patch b/gdm-sysconfig-settings.patch index 6c94370..81b60ee 100644 --- a/gdm-sysconfig-settings.patch +++ b/gdm-sysconfig-settings.patch @@ -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 @@ -497,6 +505,7 @@ +#include +#include +#include ++#include + +#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', diff --git a/gdm-xvnc-start-session-failed.patch b/gdm-xvnc-start-session-failed.patch index 6c13786..7de9f69 100644 --- a/gdm-xvnc-start-session-failed.patch +++ b/gdm-xvnc-start-session-failed.patch @@ -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 - diff --git a/gdm.changes b/gdm.changes index 1d44307..fdd02d6 100644 --- a/gdm.changes +++ b/gdm.changes @@ -1,3 +1,116 @@ +------------------------------------------------------------------- +Mon Sep 16 13:49:56 UTC 2024 - Dominique Leuenberger + +- Update to version 47.0: + + Fix X11 support. + +------------------------------------------------------------------- +Thu Sep 12 13:32:14 UTC 2024 - Dominique Leuenberger + +- 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 + +- 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 + +- Add pam_pkcs11 as Recommends for smartcard login (bsc#1223580). + +------------------------------------------------------------------- +Mon Aug 12 17:34:38 UTC 2024 - Michael Gorse + +- Fix applying patches when sle_version is defined + +------------------------------------------------------------------- +Fri Aug 9 09:10:52 UTC 2024 - Dominique Leuenberger + +- 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 + +- Rebase gdm-restart-session-when-X-server-restart.patch. + +------------------------------------------------------------------- +Wed Jun 19 01:15:28 UTC 2024 - Xiaoguang Wang + +- Update gdm-sysconfig-settings.patch: work with SELinux policy + (bsc#1222978). + +------------------------------------------------------------------- +Mon Jun 3 09:50:14 UTC 2024 - Dominique Leuenberger + +- 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 + +- Update to version 46.0: + + PAM improvements. + + Updated translations. + +------------------------------------------------------------------- +Mon Mar 4 08:17:19 UTC 2024 - Dominique Leuenberger + +- 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 + +- Rebase gdm-sysconfig-settings.patch: to fix build with GCC 14. + +------------------------------------------------------------------- +Mon Mar 4 02:20:49 UTC 2024 - Dominique Leuenberger + +- 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 diff --git a/gdm.obsinfo b/gdm.obsinfo new file mode 100644 index 0000000..0279a9d --- /dev/null +++ b/gdm.obsinfo @@ -0,0 +1,4 @@ +name: gdm +version: 47.0 +mtime: 1726493306 +commit: 9c78ff6d02195156a5b556eb2a6395d7ae3d6910 diff --git a/gdm.spec b/gdm.spec index 27f9886..a1c7e86 100644 --- a/gdm.spec +++ b/gdm.spec @@ -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.*