From 7e391c80441e146d832e7f6564a73feaf464a6bb111452119be01a29c67acbdc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adrian=20Schr=C3=B6ter?= Date: Mon, 22 Jul 2024 17:00:54 +0200 Subject: [PATCH] Sync from SUSE:SLFO:Main gdm revision 35f95239d0ac21cbd8ed6252d0fbafc6 --- default.pa | 25 +++++ gdm-44.1.tar.xz | 3 - gdm-45.0.1.tar.xz | 3 + ...on-to-disable-starting-X-server-as-u.patch | 50 +++++---- gdm-disable-gnome-initial-setup.patch | 12 ++- gdm-disable-wayland-on-mgag200-chipsets.patch | 19 ---- gdm-initial-setup-hardening.patch | 28 +++-- ...estart-session-when-X-server-restart.patch | 29 ++--- gdm-xauthlocalhostname.patch | 46 ++++---- gdm-xvnc-start-session-failed.patch | 33 ++++++ gdm.changes | 100 ++++++++++++++++++ gdm.spec | 40 +++++-- gdm.tmpfiles | 2 + 13 files changed, 293 insertions(+), 97 deletions(-) create mode 100644 default.pa delete mode 100644 gdm-44.1.tar.xz create mode 100644 gdm-45.0.1.tar.xz delete mode 100644 gdm-disable-wayland-on-mgag200-chipsets.patch create mode 100644 gdm-xvnc-start-session-failed.patch diff --git a/default.pa b/default.pa new file mode 100644 index 0000000..ff1412a --- /dev/null +++ b/default.pa @@ -0,0 +1,25 @@ +load-module module-device-restore +load-module module-card-restore +load-module module-udev-detect +load-module module-native-protocol-unix +load-module module-default-device-restore +load-module module-always-sink +load-module module-intended-roles +load-module module-suspend-on-idle +load-module module-console-kit +load-module module-position-event-sounds + +### unload driver modules for Bluetooth hardware +### this ensure Bluetooth headset are not stolen by gdm pulseaudio instance +.nofail + +.ifexists module-bluetooth-policy.so +unload-module module-bluetooth-policy +.endif + +.ifexists module-bluetooth-discover.so +unload-module module-bluetooth-discover +.endif + +.fail + diff --git a/gdm-44.1.tar.xz b/gdm-44.1.tar.xz deleted file mode 100644 index b6b7c41..0000000 --- a/gdm-44.1.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:68266b3abe7d28fc469d0067aac9c5dabb0ca7952cc1f7c238a04951f3dc5b0d -size 855472 diff --git a/gdm-45.0.1.tar.xz b/gdm-45.0.1.tar.xz new file mode 100644 index 0000000..46f0aef --- /dev/null +++ b/gdm-45.0.1.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6572578c05e3c6569d6ed269f7de2aaf3a035657654586d8243907bb7a6ffa85 +size 855004 diff --git a/gdm-add-runtime-option-to-disable-starting-X-server-as-u.patch b/gdm-add-runtime-option-to-disable-starting-X-server-as-u.patch index e5b99e0..054a4b0 100644 --- a/gdm-add-runtime-option-to-disable-starting-X-server-as-u.patch +++ b/gdm-add-runtime-option-to-disable-starting-X-server-as-u.patch @@ -8,8 +8,10 @@ X server will be started under root. The same way as if gdm was built with --disable-user-display-server option. This allows system to run X server under root if and only-if necessary. ---- a/daemon/gdm-local-display-factory.c -+++ b/daemon/gdm-local-display-factory.c +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 @@ -384,6 +384,7 @@ gdm_local_display_factory_create_transie preferred_display_server = get_preferred_display_server (factory); @@ -38,23 +40,23 @@ This allows system to run X server under root if and only-if necessary. if (display == NULL) { g_set_error_literal (error, -@@ -905,6 +907,7 @@ ensure_display_for_seat (GdmLocalDisplay +@@ -928,6 +930,7 @@ ensure_display_for_seat (GdmLocalDisplay g_debug ("GdmLocalDisplayFactory: Adding display on seat %s", seat_id); #ifdef ENABLE_USER_DISPLAY_SERVER + if (getenv ("GDM_DISABLE_USER_DISPLAY_SERVER") == NULL ) { if (g_strcmp0 (preferred_display_server, "wayland") == 0 || g_strcmp0 (preferred_display_server, "xorg") == 0) { - if (is_seat0) { -@@ -915,6 +918,7 @@ ensure_display_for_seat (GdmLocalDisplay - NULL); - } + display = gdm_local_display_new (); +@@ -936,6 +939,7 @@ ensure_display_for_seat (GdmLocalDisplay + "supported-session-types", session_types, + NULL); } + } #endif if (display == NULL) { -@@ -1211,6 +1215,10 @@ on_vt_changed (GIOChannel *source, +@@ -1252,6 +1256,10 @@ on_vt_changed (GIOChannel *source, g_debug ("GdmLocalDisplayFactory: VT changed from %u to %u", previous_vt, factory->active_vt); @@ -65,7 +67,7 @@ This allows system to run X server under root if and only-if necessary. store = gdm_display_factory_get_display_store (GDM_DISPLAY_FACTORY (factory)); /* if the old VT was running a wayland login screen kill it -@@ -1352,6 +1360,7 @@ gdm_local_display_factory_start_monitor +@@ -1393,6 +1401,7 @@ gdm_local_display_factory_start_monitor #endif #if defined(ENABLE_USER_DISPLAY_SERVER) @@ -73,7 +75,7 @@ This allows system to run X server under root if and only-if necessary. io_channel = g_io_channel_new_file ("/sys/class/tty/tty0/active", "r", NULL); if (io_channel != NULL) { -@@ -1362,6 +1371,7 @@ gdm_local_display_factory_start_monitor +@@ -1403,6 +1412,7 @@ gdm_local_display_factory_start_monitor on_vt_changed, factory); } @@ -81,19 +83,23 @@ This allows system to run X server under root if and only-if necessary. #endif } ---- a/daemon/gdm-manager.c -+++ b/daemon/gdm-manager.c +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 @@ -1355,6 +1355,8 @@ set_up_automatic_login_session (GdmManag "supported-session-types", supported_session_types, NULL); + if (getenv ("GDM_DISABLE_USER_DISPLAY_SERVER") != NULL) -+ manager->priv->did_automatic_login = TRUE; ++ manager->did_automatic_login = TRUE; g_debug ("GdmManager: Starting automatic login conversation"); gdm_session_start_conversation (session, "gdm-autologin"); } ---- a/daemon/gdm-server.c -+++ b/daemon/gdm-server.c +Index: gdm-45.0.1/daemon/gdm-server.c +=================================================================== +--- gdm-45.0.1.orig/daemon/gdm-server.c ++++ gdm-45.0.1/daemon/gdm-server.c @@ -238,9 +238,9 @@ gdm_server_init_command (GdmServer *serv /* For systemd, we don't have a log file but instead log to stdout, so set it to the xserver's built-in default verbosity */ @@ -106,7 +112,7 @@ This allows system to run X server under root if and only-if necessary. #endif if (g_access (SYSTEMD_X_SERVER, X_OK) < 0) { -@@ -755,7 +755,7 @@ gdm_server_start (GdmServer *server) +@@ -749,7 +749,7 @@ gdm_server_start (GdmServer *server) g_return_val_if_fail (GDM_IS_SERVER (server), FALSE); /* Hardcode the VT for the initial X server, but nothing else */ @@ -115,9 +121,11 @@ This allows system to run X server under root if and only-if necessary. vtarg = "vt" G_STRINGIFY (GDM_INITIAL_VT); } ---- a/daemon/gdm-session.c -+++ b/daemon/gdm-session.c -@@ -3371,6 +3371,7 @@ gdm_session_get_display_mode (GdmSession +Index: gdm-45.0.1/daemon/gdm-session.c +=================================================================== +--- gdm-45.0.1.orig/daemon/gdm-session.c ++++ gdm-45.0.1/daemon/gdm-session.c +@@ -3436,6 +3436,7 @@ gdm_session_get_display_mode (GdmSession } #ifdef ENABLE_USER_DISPLAY_SERVER @@ -125,7 +133,7 @@ This allows system to run X server under root if and only-if necessary. /* All other cases (wayland login screen, X login screen, * wayland user session, X user session) use the NEW_VT * display mode. That display mode means that GDM allocates -@@ -3393,7 +3394,8 @@ gdm_session_get_display_mode (GdmSession +@@ -3458,7 +3459,8 @@ gdm_session_get_display_mode (GdmSession * are paused when handed out. */ return GDM_SESSION_DISPLAY_MODE_NEW_VT; @@ -135,7 +143,7 @@ This allows system to run X server under root if and only-if necessary. #ifdef ENABLE_WAYLAND_SUPPORT /* Wayland sessions are for now assumed to run in a -@@ -3404,6 +3406,7 @@ gdm_session_get_display_mode (GdmSession +@@ -3469,6 +3471,7 @@ gdm_session_get_display_mode (GdmSession } #endif return GDM_SESSION_DISPLAY_MODE_REUSE_VT; diff --git a/gdm-disable-gnome-initial-setup.patch b/gdm-disable-gnome-initial-setup.patch index 85f93b5..0f08301 100644 --- a/gdm-disable-gnome-initial-setup.patch +++ b/gdm-disable-gnome-initial-setup.patch @@ -1,6 +1,8 @@ ---- a/daemon/gdm-display.c -+++ b/daemon/gdm-display.c -@@ -1653,6 +1653,9 @@ wants_initial_setup (GdmDisplay *self) +Index: gdm-45.0.1/daemon/gdm-display.c +=================================================================== +--- gdm-45.0.1.orig/daemon/gdm-display.c ++++ gdm-45.0.1/daemon/gdm-display.c +@@ -1622,6 +1622,9 @@ wants_initial_setup (GdmDisplay *self) gboolean enabled = FALSE; gboolean forced = FALSE; @@ -9,8 +11,8 @@ + priv = gdm_display_get_instance_private (self); - if (already_done_initial_setup_on_this_boot ()) { -@@ -1689,6 +1692,16 @@ wants_initial_setup (GdmDisplay *self) + if (already_done_initial_setup ()) { +@@ -1658,6 +1661,16 @@ wants_initial_setup (GdmDisplay *self) return FALSE; } diff --git a/gdm-disable-wayland-on-mgag200-chipsets.patch b/gdm-disable-wayland-on-mgag200-chipsets.patch deleted file mode 100644 index c388839..0000000 --- a/gdm-disable-wayland-on-mgag200-chipsets.patch +++ /dev/null @@ -1,19 +0,0 @@ ---- a/data/61-gdm.rules.in -+++ b/data/61-gdm.rules.in -@@ -29,6 +29,16 @@ ATTR{vendor}=="0x1a03", ATTR{device}=="0 - - LABEL="gdm_pci_device_end" - -+# disable Wayland on Matrox Electronics Systems Ltd. MGA G200 server engines -+ATTR{vendor}=="0x102b", ATTR{device}=="0x0522", GOTO="gdm_disable_wayland" -+ATTR{vendor}=="0x102b", ATTR{device}=="0x0524", GOTO="gdm_disable_wayland" -+ATTR{vendor}=="0x102b", ATTR{device}=="0x0530", GOTO="gdm_disable_wayland" -+ATTR{vendor}=="0x102b", ATTR{device}=="0x0532", GOTO="gdm_disable_wayland" -+ATTR{vendor}=="0x102b", ATTR{device}=="0x0533", GOTO="gdm_disable_wayland" -+ATTR{vendor}=="0x102b", ATTR{device}=="0x0534", GOTO="gdm_disable_wayland" -+ATTR{vendor}=="0x102b", ATTR{device}=="0x0536", GOTO="gdm_disable_wayland" -+ATTR{vendor}=="0x102b", ATTR{device}=="0x0538", GOTO="gdm_disable_wayland" -+ - # disable Wayland if modesetting is disabled - KERNEL!="card[0-9]*", GOTO="gdm_nomodeset_end" - KERNEL=="card[0-9]-*", GOTO="gdm_nomodeset_end" diff --git a/gdm-initial-setup-hardening.patch b/gdm-initial-setup-hardening.patch index ee1338e..6921805 100644 --- a/gdm-initial-setup-hardening.patch +++ b/gdm-initial-setup-hardening.patch @@ -1,6 +1,8 @@ ---- a/daemon/gdm-display.c -+++ b/daemon/gdm-display.c -@@ -1554,12 +1554,12 @@ can_create_environment (const char *sess +Index: gdm-45.beta/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 return session_exists; } @@ -16,7 +18,7 @@ return TRUE; return FALSE; -@@ -1658,7 +1658,7 @@ wants_initial_setup (GdmDisplay *self) +@@ -1624,7 +1624,7 @@ wants_initial_setup (GdmDisplay *self) priv = gdm_display_get_instance_private (self); @@ -25,8 +27,10 @@ return FALSE; } ---- a/daemon/gdm-manager.c -+++ b/daemon/gdm-manager.c +Index: gdm-45.beta/daemon/gdm-manager.c +=================================================================== +--- gdm-45.beta.orig/daemon/gdm-manager.c ++++ gdm-45.beta/daemon/gdm-manager.c @@ -60,7 +60,7 @@ #define GDM_MANAGER_DISPLAYS_PATH GDM_DBUS_PATH "/Displays" @@ -36,7 +40,7 @@ typedef struct { -@@ -1793,6 +1793,7 @@ on_start_user_session (StartUserSessionO +@@ -1789,6 +1789,7 @@ on_start_user_session (StartUserSessionO gboolean doing_initial_setup = FALSE; GdmDisplay *display; const char *session_id; @@ -44,7 +48,7 @@ g_debug ("GdmManager: start or jump to session"); -@@ -1819,6 +1820,15 @@ on_start_user_session (StartUserSessionO +@@ -1815,6 +1816,15 @@ on_start_user_session (StartUserSessionO "doing-initial-setup", &doing_initial_setup, NULL); @@ -60,7 +64,7 @@ if (doing_initial_setup) chown_initial_setup_home_dir (); -@@ -1839,20 +1849,9 @@ on_start_user_session (StartUserSessionO +@@ -1835,20 +1845,9 @@ on_start_user_session (StartUserSessionO g_object_ref (display); if (doing_initial_setup) { @@ -81,8 +85,10 @@ } else { g_debug ("GdmManager: session has its display server, reusing our server for another login screen"); } ---- a/daemon/meson.build -+++ b/daemon/meson.build +Index: gdm-45.beta/daemon/meson.build +=================================================================== +--- gdm-45.beta.orig/daemon/meson.build ++++ gdm-45.beta/daemon/meson.build @@ -210,6 +210,7 @@ endif gdm_daemon = executable('gdm', diff --git a/gdm-restart-session-when-X-server-restart.patch b/gdm-restart-session-when-X-server-restart.patch index 1e640da..cbc73fb 100644 --- a/gdm-restart-session-when-X-server-restart.patch +++ b/gdm-restart-session-when-X-server-restart.patch @@ -1,20 +1,25 @@ ---- a/daemon/gdm-local-display-factory.c -+++ b/daemon/gdm-local-display-factory.c -@@ -552,8 +552,10 @@ on_display_status_changed (GdmDisplay - * ensures we get a new login screen when the user logs out, - * if there isn't one. +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 + /* if this is a local display, ensure that we get a login + * screen when the user logs out. */ + g_debug ("GdmLocalDisplayFactory: session_class = %s active_vt = %u", session_class, factory->active_vt); if (is_local && -- (g_strcmp0 (session_class, "greeter") != 0 || factory->active_vt == GDM_INITIAL_VT)) { -+ (g_strcmp0 (session_class, "greeter") != 0 || factory->active_vt == GDM_INITIAL_VT -+ || factory->active_vt == 0)) { + ((g_strcmp0 (session_class, "greeter") != 0 && + (!seat_active_session || g_strcmp0(session_id, seat_active_session) == 0)) || + (g_strcmp0 (seat_id, "seat0") == 0 && factory->active_vt == GDM_INITIAL_VT) || ++ (g_strcmp0 (seat_id, "seat0") == 0 && factory->active_vt == 0) || + g_strcmp0 (seat_id, "seat0") != 0)) { /* reset num failures */ factory->num_failures = 0; - ---- a/daemon/gdm-manager.c -+++ b/daemon/gdm-manager.c -@@ -1553,7 +1553,8 @@ on_display_status_changed (GdmDisplay *d +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 } #endif diff --git a/gdm-xauthlocalhostname.patch b/gdm-xauthlocalhostname.patch index cef9406..6ce9d9b 100644 --- a/gdm-xauthlocalhostname.patch +++ b/gdm-xauthlocalhostname.patch @@ -1,6 +1,8 @@ ---- a/common/gdm-common.c -+++ b/common/gdm-common.c -@@ -619,6 +619,8 @@ gdm_get_script_environment (const char * +Index: gdm-45.0.1/common/gdm-common.c +=================================================================== +--- gdm-45.0.1.orig/common/gdm-common.c ++++ gdm-45.0.1/common/gdm-common.c +@@ -623,6 +623,8 @@ gdm_get_script_environment (const char * if (display_hostname) { g_hash_table_insert (hash, g_strdup ("REMOTE_HOST"), g_strdup (display_hostname)); @@ -9,7 +11,7 @@ } /* Runs as root */ -@@ -1085,3 +1087,14 @@ gdm_load_env_d (GdmLoadEnvVarFunc load_e +@@ -1088,3 +1090,14 @@ gdm_load_env_d (GdmLoadEnvVarFunc load_e gdm_load_env_dir (dir, load_env_func, expand_func, user_data); g_object_unref (dir); } @@ -24,19 +26,23 @@ + return g_strdup ("localhost"); + } +} ---- a/common/gdm-common.h -+++ b/common/gdm-common.h +Index: gdm-45.0.1/common/gdm-common.h +=================================================================== +--- gdm-45.0.1.orig/common/gdm-common.h ++++ gdm-45.0.1/common/gdm-common.h @@ -70,6 +70,7 @@ char *gdm_generate_random_bytes + gboolean gdm_get_login_window_session_id (const char *seat_id, char **session_id); - gboolean gdm_goto_login_session (GError **error); +char *gdm_gethostname (void); - GPtrArray *gdm_get_script_environment (const char *username, - const char *display_name, ---- a/daemon/gdm-display-access-file.c -+++ b/daemon/gdm-display-access-file.c -@@ -449,13 +449,10 @@ _get_auth_info_for_display (GdmDisplayAc + gboolean gdm_goto_login_session (GCancellable *cancellable, + GError **error); +Index: gdm-45.0.1/daemon/gdm-display-access-file.c +=================================================================== +--- gdm-45.0.1.orig/daemon/gdm-display-access-file.c ++++ gdm-45.0.1/daemon/gdm-display-access-file.c +@@ -429,13 +429,10 @@ _get_auth_info_for_display (GdmDisplayAc * * https://bugs.freedesktop.org/show_bug.cgi?id=43425 */ @@ -53,9 +59,11 @@ } else { *family = FamilyWild; gdm_display_get_remote_hostname (display, address, NULL); ---- a/daemon/gdm-launch-environment.c -+++ b/daemon/gdm-launch-environment.c -@@ -225,6 +225,11 @@ build_launch_environment (GdmLaunchEnvir +Index: gdm-45.0.1/daemon/gdm-launch-environment.c +=================================================================== +--- gdm-45.0.1.orig/daemon/gdm-launch-environment.c ++++ gdm-45.0.1/daemon/gdm-launch-environment.c +@@ -221,6 +221,11 @@ build_launch_environment (GdmLaunchEnvir g_hash_table_insert (hash, g_strdup ("GDM_SEAT_ID"), g_strdup (seat_id)); } @@ -67,9 +75,11 @@ g_hash_table_insert (hash, g_strdup ("RUNNING_UNDER_GDM"), g_strdup ("true")); /* Now populate XDG_DATA_DIRS from env.d if we're running initial setup; this allows ---- a/daemon/gdm-session.c -+++ b/daemon/gdm-session.c -@@ -2751,6 +2751,14 @@ set_up_session_environment (GdmSession * +Index: gdm-45.0.1/daemon/gdm-session.c +=================================================================== +--- gdm-45.0.1.orig/daemon/gdm-session.c ++++ gdm-45.0.1/daemon/gdm-session.c +@@ -2770,6 +2770,14 @@ set_up_session_environment (GdmSession * } } diff --git a/gdm-xvnc-start-session-failed.patch b/gdm-xvnc-start-session-failed.patch new file mode 100644 index 0000000..6c13786 --- /dev/null +++ b/gdm-xvnc-start-session-failed.patch @@ -0,0 +1,33 @@ +From f984069418485191fb8fee16c9f202ac2b717e41 Mon Sep 17 00:00:00 2001 +From: Joan Torres +Date: Fri, 1 Mar 2024 12:07:38 +0100 +Subject: [PATCH] session: Reuse the VT when on XDMCP + +XDMCP is running when session_type is not wayland and is not on any +seat_id. + +Consider this to keep using DISPLAY_MODE_REUSE_VT on XDMCP (keep using the +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); + ++ if (self->display_seat_id == NULL && ++ g_strcmp0 (self->session_type, "wayland") != 0) { ++ return GDM_SESSION_DISPLAY_MODE_REUSE_VT; ++ } ++ + 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 1988435..1d44307 100644 --- a/gdm.changes +++ b/gdm.changes @@ -1,3 +1,96 @@ +------------------------------------------------------------------- +Mon Mar 4 01:24:06 UTC 2024 - Xiaoguang Wang + +- Update gdm-xvnc-start-session-failed.patch: Following the upstream + final solution(bsc#1219205 glgo#GNOME/gdm#909). + +------------------------------------------------------------------- +Thu Feb 22 01:17:18 UTC 2024 - Xiaoguang Wang + +- Add gdm-xvnc-start-session-failed.patch: None seat0 session runs + without running launcher(bsc#1219205 glgo#GNOME/gdm#909). + +------------------------------------------------------------------- +Wed Feb 21 10:51:12 UTC 2024 - Alynx Zhou + +- Drop gdm-disable-wayland-on-mgag200-chipsets.patch: fixed + upstream since version 43.0. + +------------------------------------------------------------------- +Tue Jan 23 07:58:15 UTC 2024 - Yifan Jiang + +- Make Patch0 only applies on s390 and s390x. + +------------------------------------------------------------------- +Tue Nov 28 12:08:03 UTC 2023 - Dominique Leuenberger + +- Use %patch -p N instead of deprecated %patchN. + +------------------------------------------------------------------- +Thu Nov 2 06:45:59 UTC 2023 - Xiaoguang Wang + +- Rebase patches for SLE-15-SP6 (bsc#216595): + + Rebase gdm-add-runtime-option-to-disable-starting-X-server-as-u.patch + + Rebase gdm-disable-gnome-initial-setup.patch + + Rebase gdm-restart-session-when-X-server-restart.patch + +------------------------------------------------------------------- +Mon Oct 2 08:36:13 UTC 2023 - Dominique Leuenberger + +- Explicitly buildrequire /usr/bin/dbus-run-session: the + dbus package is being restructured to be usable with dbus-broker + and so far we just relied on implicit dependencies bringing this + in. Meson checks for it, so it is correct to BR it though. + +------------------------------------------------------------------- +Thu Sep 14 18:27:24 UTC 2023 - Bjørn Lie + +- Update to version 45.0.1: + + Fix for the crasher fix. +- Changes from version 45.0: + + Crasher fix. + + Updated translations. +- Rebase gdm-xauthlocalhostname.patch with quilt. + +------------------------------------------------------------------- +Wed Aug 30 07:34:46 UTC 2023 - Bjørn Lie + +- Update to version 45.beta: + + A ton of small code clean ups and small leak fixes. + + Set gnome-initial-setup dconf profile. + + Honor settings configured with a template in AccountsService. + + Crash fix from stray udev events. + + VT handling fixes. + + Work better in presence of simpledrm. + + wayland multi-seat support. +- Rebase patches with quilt. +- Drop upstream patches: + + gdm-fix-btmp-record-with-seat.patch + + gdm-disable-wayland-on-aspeed-chipsets.patch + +------------------------------------------------------------------- +Mon Aug 14 03:09:23 UTC 2023 - Yifan Jiang + +- Do not use %autopatch to build on SLE where rpm version is not + ready for the macro. + +------------------------------------------------------------------- +Fri Jun 30 11:28:29 UTC 2023 - Fabian Vogt + +- Merge pulseaudio-gdm-hooks into the gdm package. This was previously + part of pulseaudio.spec, which was fairly complex (dir ownership, + separate tmpfiles, dependencies) and it also caused pulseaudio.spec + to runtime depend on gdm. Avoid all of that by just adding it here: + + Add default.pa + + Add entries to gdm.tmpfiles + +------------------------------------------------------------------- +Mon Jun 5 07:46:59 UTC 2023 - Alynx Zhou +- Add gdm-fix-btmp-record-with-seat.patch: When writing btmp record + display name is needed, but user don't have a display before + logging in, this patch uses seat instead which is also better for + Wayland (bsc#1211825). + ------------------------------------------------------------------- Fri May 5 18:22:08 UTC 2023 - Bjørn Lie @@ -84,6 +177,13 @@ Tue Aug 2 01:52:26 UTC 2022 - Yifan Jiang - Fix specfile: Adapt macros %_pam_moduledir (boo#1191033). +------------------------------------------------------------------- +Fri Jul 8 10:33:14 UTC 2022 - Alynx Zhou + +- Add gdm-disable-wayland-on-aspeed-chipsets.patch: Those chips do + not have fast blending and Wayland performance is bad on them, so + disable Wayland on aspeed chipsets (bsc#1200323). + ------------------------------------------------------------------- Tue Apr 26 14:32:28 UTC 2022 - Frederic Crozat diff --git a/gdm.spec b/gdm.spec index 3057d1f..27f9886 100644 --- a/gdm.spec +++ b/gdm.spec @@ -1,7 +1,7 @@ # # spec file for package gdm # -# Copyright (c) 2023 SUSE LLC +# Copyright (c) 2024 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -27,14 +27,14 @@ %endif Name: gdm -Version: 44.1 +Version: 45.0.1 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/44/%{name}-%{version}.tar.xz +Source0: https://download.gnome.org/sources/gdm/45/%{name}-%{version}.tar.xz Source1: gdm.pamd Source2: gdm-autologin.pamd Source3: gdm-launch-environment.pamd @@ -55,6 +55,8 @@ Source12: gdm-sle.pamd Source13: gdm-autologin-sle.pamd Source14: gdm-fingerprint-sle.pamd Source15: gdm-smartcard-sle.pamd +# Configuration for pulseaudio +Source20: default.pa # WARNING: do not remove/significantly change patch0 without updating the relevant patch in accountsservice too # PATCH-FIX-OPENSUSE gdm-s390-not-require-g-s-d_wacom.patch bsc#1129412 yfjiang@suse.com -- Remove the runtime requirement of g-s-d Wacom plugin Patch0: gdm-s390-not-require-g-s-d_wacom.patch @@ -70,8 +72,8 @@ Patch4: gdm-xauthlocalhostname.patch Patch5: gdm-switch-to-tty1.patch # PATCH-FIX-OPENSUSE gdm-initial-setup-hardening.patch boo#1140851, glgo#GNOME/gnome-initial-setup#76 fezhang@suse.com -- Prevent gnome-initial-setup running if any regular user has perviously logged into the system Patch6: gdm-initial-setup-hardening.patch -# PATCH-FIX-UPSTREAM gdm-disable-wayland-on-mgag200-chipsets.patch bsc#1162888 glgo#GNOME/mutter#57 qkzhu@suse.com -- Disable Wayland on mgag200 chipsets -Patch7: gdm-disable-wayland-on-mgag200-chipsets.patch +# PATCH-FIX-UPSTREAM gdm-xvnc-start-session-failed.patch bsc#1219205 glgo#GNOME/gdm#909 xwang@suse.com -- None seat0 session runs without running launcher +Patch7: gdm-xvnc-start-session-failed.patch ### NOTE: Keep please SLE-only patches at bottom (starting on 1000). # PATCH-FIX-SLE gdm-disable-gnome-initial-setup.patch bnc#1067976 qzhao@suse.com -- Disable gnome-initial-setup runs before gdm, g-i-s will only serve for CJK people to choose the input-method after login. @@ -82,6 +84,7 @@ Patch1001: gdm-add-runtime-option-to-disable-starting-X-server-as-u.patch # PATCH-FIX-SLE gdm-restart-session-when-X-server-restart.patch bsc#1196974 xwang@suse.com -- Fix blank screen when X restarts with GDM_DISABLE_USER_DISPLAY_SERVER=1. Patch1002: gdm-restart-session-when-X-server-restart.patch +BuildRequires: /usr/bin/dbus-run-session BuildRequires: check-devel # dconf and gnome-session-core are needed for directory ownership BuildRequires: dconf @@ -132,7 +135,7 @@ Requires: xdm Requires(post): dconf Requires(pre): group(video) Requires(post): update-alternatives -Requires(postun):update-alternatives +Requires(postun): update-alternatives Recommends: iso-codes # accessibility Recommends: orca @@ -140,6 +143,8 @@ Provides: gdm2 = %{version} Obsoletes: gdm2 < %{version} Provides: gnome-applets-gdm = %{version} Obsoletes: gnome-applets-gdm < %{version} +Provides: pulseaudio-gdm-hooks = 16.1 +Obsoletes: pulseaudio-gdm-hooks <= 16.1 DocDir: %{_defaultdocdir} %ifnarch s390 s390x BuildRequires: pkgconfig(xorg-server) @@ -239,16 +244,28 @@ running display manager. %autosetup -N ### NON-SLE patches start from 0 to 999 ## Use "autopatch -m 0 -M 999" when there's no need to skip patches. +%if !0%{?sle_version} %autopatch -p1 -m 1 -M 999 +%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 +%patch -P 7 -p1 +%endif %ifarch s390 s390x -%patch0 -p1 +%patch -P 0 -p1 %endif ### SLE and Leap only patches start at 1000 %if 0%{?sle_version} ## Use this when there's no need to skip patches. -%autopatch -p1 -m 1000 +%patch -P 1000 -p1 +%patch -P 1001 -p1 +%patch -P 1002 -p1 %endif %build @@ -331,6 +348,8 @@ install -m 644 %{SOURCE10} %{buildroot}%{_prefix}/lib/systemd/logind.conf.d/rese mkdir -p %{buildroot}%{_sysusersdir} install -m 644 %{SOURCE11} %{buildroot}%{_sysusersdir}/gdm.conf +install -D -m 644 %{SOURCE20} %{buildroot}%{_prefix}/share/factory/var/lib/gdm/.pulse/default.pa + %find_lang %{name} %{?no_lang_C} %fdupes -s %{buildroot}%{_datadir}/help @@ -369,6 +388,9 @@ dconf update %dir %{_datadir}/dconf %dir %{_datadir}/dconf/profile %{_datadir}/dconf/profile/gdm +%dir %{_datadir}/factory/var +%dir %{_datadir}/factory/var/lib +%{_datadir}/factory/var/lib/gdm %{_datadir}/gdm/ %{_datadir}/gnome-session/sessions/gnome-login.session %{_pam_moduledir}/pam_gdm.so @@ -376,6 +398,8 @@ dconf update %{_libexecdir}/gdm/gdm-* %{_libexecdir}/gdm/gdmflexiserver %ghost %attr(750,gdm,gdm) %dir %{_localstatedir}/lib/gdm +%attr(0700, gdm, gdm) %ghost %dir %{_localstatedir}/lib/gdm/.pulse +%attr(0600, gdm, gdm) %ghost %{_localstatedir}/lib/gdm/.pulse/default.pa %ghost %attr(711,root,gdm) %dir %{_localstatedir}/log/gdm %ghost %dir %{_localstatedir}/cache/gdm %ghost %attr(711,root,gdm) %dir /run/gdm diff --git a/gdm.tmpfiles b/gdm.tmpfiles index 0de61d2..6f46b76 100644 --- a/gdm.tmpfiles +++ b/gdm.tmpfiles @@ -1,4 +1,6 @@ d /var/lib/gdm 0750 gdm gdm - +d /var/lib/gdm/.pulse 0700 gdm gdm - +C /var/lib/gdm/.pulse/default.pa 0600 gdm gdm - /usr/share/factory/var/lib/gdm/.pulse/default.pa d /var/log/gdm 0711 root gdm - d /var/cache/gdm 1755 root root - d /run/gdm 0711 root gdm -