Sync from SUSE:SLFO:Main gdm revision 35f95239d0ac21cbd8ed6252d0fbafc6

This commit is contained in:
Adrian Schröter 2024-07-22 17:00:54 +02:00
parent 97049484b7
commit 7e391c8044
13 changed files with 293 additions and 97 deletions

25
default.pa Normal file
View File

@ -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

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

Binary file not shown.

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

Binary file not shown.

View File

@ -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;

View File

@ -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;
}

View File

@ -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"

View File

@ -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',

View File

@ -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

View File

@ -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 *
}
}

View File

@ -0,0 +1,33 @@
From f984069418485191fb8fee16c9f202ac2b717e41 Mon Sep 17 00:00:00 2001
From: Joan Torres <joan.torres@suse.com>
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

View File

@ -1,3 +1,96 @@
-------------------------------------------------------------------
Mon Mar 4 01:24:06 UTC 2024 - Xiaoguang Wang <xiaoguang.wang@suse.com>
- 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 <xiaoguang.wang@suse.com>
- 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 <alynx.zhou@suse.com>
- Drop gdm-disable-wayland-on-mgag200-chipsets.patch: fixed
upstream since version 43.0.
-------------------------------------------------------------------
Tue Jan 23 07:58:15 UTC 2024 - Yifan Jiang <yfjiang@suse.com>
- Make Patch0 only applies on s390 and s390x.
-------------------------------------------------------------------
Tue Nov 28 12:08:03 UTC 2023 - Dominique Leuenberger <dimstar@opensuse.org>
- Use %patch -p N instead of deprecated %patchN.
-------------------------------------------------------------------
Thu Nov 2 06:45:59 UTC 2023 - Xiaoguang Wang <xiaoguang.wang@suse.com>
- 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 <dimstar@opensuse.org>
- 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 <bjorn.lie@gmail.com>
- 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 <bjorn.lie@gmail.com>
- 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 <yfjiang@suse.com>
- 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 <fvogt@suse.com>
- 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 <alynx.zhou@suse.com>
- 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 <bjorn.lie@gmail.com>
@ -84,6 +177,13 @@ Tue Aug 2 01:52:26 UTC 2022 - Yifan Jiang <yfjiang@suse.com>
- Fix specfile: Adapt macros %_pam_moduledir (boo#1191033).
-------------------------------------------------------------------
Fri Jul 8 10:33:14 UTC 2022 - Alynx Zhou <alynx.zhou@suse.com>
- 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 <fcrozat@suse.com>

View File

@ -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

View File

@ -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 -