diff --git a/X11-displaymanager-gdm b/X11-displaymanager-gdm index 161bde9..6273825 100644 --- a/X11-displaymanager-gdm +++ b/X11-displaymanager-gdm @@ -4,6 +4,16 @@ gdm_vars() { RELOADSIGNAL="-USR1" DISPLAYMANAGER=/usr/sbin/gdm PIDFILE=/run/gdm/gdm.pid + + # let gdm run the Xserver as root if access to /dev/fb* + # is required (bsc#1075805) + # The GDM_DISABLE_USER_DISPLAY_SERVER variable is added by patch + # gdm-add-runtime-option-to-disable-starting-X-server-as-u.patch + if [ ! -c /dev/dri/card0 -a \ + ! -c /dev/nvidiactl ]; then + export GDM_DISABLE_USER_DISPLAY_SERVER=1 + fi + return 0 ;; *) return 1 ;; esac diff --git a/gdm-3.38.2.tar.xz b/gdm-3.38.2.tar.xz deleted file mode 100644 index 8b7f1c8..0000000 --- a/gdm-3.38.2.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:25a26666c3dd4bb6a545decbbe0678439b2b227ee63b67eebd2d7910761e53cc -size 787024 diff --git a/gdm-41.0.tar.xz b/gdm-41.0.tar.xz new file mode 100644 index 0000000..0f88238 --- /dev/null +++ b/gdm-41.0.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5738c4293a9f5a80d4a6e9e06f4d0df3e9f313ca7b61bfb4d8afaba983e200dc +size 806668 diff --git a/gdm-UsrEtc.patch b/gdm-UsrEtc.patch deleted file mode 100644 index 3a04a52..0000000 --- a/gdm-UsrEtc.patch +++ /dev/null @@ -1,99 +0,0 @@ -diff -u -r gdm-3.36.3.orig/data/Init.in gdm-3.36.3/data/Init.in ---- gdm-3.36.3.orig/data/Init.in 2020-09-16 10:46:25.114437000 +0200 -+++ gdm-3.36.3/data/Init.in 2020-09-16 10:49:16.450653000 +0200 -@@ -22,14 +22,22 @@ - echo "$OUTPUT" - } - --sysresources=/etc/X11/Xresources -+if [ -f /etc/X11/Xresources ]; then -+ sysresources=/etc/X11/Xresources -+else -+ sysresources=/usr/etc/X11/Xresources -+fi - - # merge in defaults - if [ -f "$sysresources" ]; then - xrdb -merge "$sysresources" - fi - --sysmodmap=/etc/X11/Xmodmap -+if [ -f /etc/X11/Xmodmap ]; then -+ sysmodmap=/etc/X11/Xmodmap -+else -+ sysmodmap=/usr/etc/X11/Xmodmap -+fi - - XMODMAP=`gdmwhich xmodmap` - if [ "x$XMODMAP" != "x" ] ; then -diff -u -r gdm-3.36.3.orig/data/Xsession.in gdm-3.36.3/data/Xsession.in ---- gdm-3.36.3.orig/data/Xsession.in 2020-09-16 10:46:25.136436000 +0200 -+++ gdm-3.36.3/data/Xsession.in 2020-09-16 11:06:52.038405000 +0200 -@@ -29,11 +29,20 @@ - # good for debugging where things went wrong - echo "$0: Beginning session setup..." - --# First read /etc/profile and .profile --test -f /etc/profile && . /etc/profile -+# First read /etc/profile (resp. /usr/etc/profile) and .profile -+if [ -f /etc/profile ]; then -+ . /etc/profile -+elif [ -f /usr/etc/profile ]; then -+ . /usr/etc/profile -+fi - test -f "$HOME/.profile" && . "$HOME/.profile" --# Second read /etc/xprofile and .xprofile for X specific setup --test -f /etc/xprofile && . /etc/xprofile -+# Second read /etc/xprofile (resp. /usr/etc/xprofile) and .xprofile for X specific setup -+if [ -f /etc/xprofile ]; then -+ . /etc/xprofile -+elif [ -f /usr/etc/xprofile ]; then -+ . /usr/etc/xprofile -+ -+fi - test -f "$HOME/.xprofile" && . "$HOME/.xprofile" - - # Translation stuff -@@ -85,9 +94,23 @@ - usermodmap="$HOME/.Xmodmap" - userxkbmap="$HOME/.Xkbmap" - --sysresources=/etc/X11/Xresources --sysmodmap=/etc/X11/Xmodmap --sysxkbmap=/etc/X11/Xkbmap -+if [ -f /etc/X11/Xresources ]; then -+ sysresources=/etc/X11/Xresources -+else -+ sysresources=/usr/etc/X11/Xresources -+fi -+ -+if [ -f /etc/X11/Xmodmap ]; then -+ sysmodmap=/etc/X11/Xmodmap -+else -+ sysmodmap=/usr/etc/X11/Xmodmap -+fi -+ -+if [ -f /etc/X11/Xkbmap ]; then -+ sysxkbmap=/etc/X11/Xkbmap -+else -+ sysxkbmap=/usr/etc/X11/Xkbmap -+fi - - rh6sysresources=/etc/X11/xinit/Xresources - rh6sysmodmap=/etc/X11/xinit/Xmodmap -@@ -149,6 +172,15 @@ - xhost +si:localuser:`id -un` || : - - # run all system xinitrc shell scripts. -+if [ -d /usr/etc/X11/xinit/xinitrc.d ]; then -+ for i in /usr/etc/X11/xinit/xinitrc.d/* ; do -+ sname=$(basename $script) -+ test -x /etc/X11/xinit/xinitrc.d/$sname && continue -+ if [ -x "$i" -a ! -d "$i" ]; then -+ . "$i" -+ fi -+ done -+fi - if [ -d /etc/X11/xinit/xinitrc.d ]; then - for i in /etc/X11/xinit/xinitrc.d/* ; do - if [ -x "$i" -a ! -d "$i" ]; then 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 new file mode 100644 index 0000000..d802271 --- /dev/null +++ b/gdm-add-runtime-option-to-disable-starting-X-server-as-u.patch @@ -0,0 +1,191 @@ +From a19b51ad9e446948ba60c359641f6c4c14fec1da Mon Sep 17 00:00:00 2001 +From: Michal Srb +Date: Fri, 26 Jan 2018 10:49:18 +0100 +Subject: [PATCH] Add runtime option to disable starting X server as user + +If the environmental variable GDM_DISABLE_USER_DISPLAY_SERVER is defined, the +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. +--- +Index: gdm-40.1/daemon/gdm-local-display-factory.c +=================================================================== +--- gdm-40.1.orig/daemon/gdm-local-display-factory.c ++++ gdm-40.1/daemon/gdm-local-display-factory.c +@@ -236,11 +236,13 @@ gdm_local_display_factory_create_transie + g_debug ("GdmLocalDisplayFactory: Creating transient display"); + + #ifdef ENABLE_USER_DISPLAY_SERVER ++ if (getenv ("GDM_DISABLE_USER_DISPLAY_SERVER") == NULL ) { + display = gdm_local_display_new (); + if (gdm_local_display_factory_use_wayland ()) + g_object_set (G_OBJECT (display), "session-type", "wayland", NULL); + is_initial = TRUE; +-#else ++//#else ++ } else { + if (display == NULL) { + guint32 num; + +@@ -248,6 +250,7 @@ gdm_local_display_factory_create_transie + + display = gdm_legacy_display_new (num); + } ++ } + #endif + + g_object_set (display, +@@ -597,12 +600,14 @@ 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 (is_seat0) { + display = gdm_local_display_new (); + if (session_type != NULL) { + g_object_set (G_OBJECT (display), "session-type", session_type, NULL); + } + } ++ } + #endif + + if (display == NULL) { +@@ -893,6 +898,10 @@ on_vt_changed (GIOChannel *source, + g_debug ("GdmLocalDisplayFactory: VT changed from %u to %u", + previous_vt, factory->active_vt); + ++ if (getenv ("GDM_DISABLE_USER_DISPLAY_SERVER") != NULL) { ++ return G_SOURCE_CONTINUE; ++ } ++ + store = gdm_display_factory_get_display_store (GDM_DISPLAY_FACTORY (factory)); + + /* if the old VT was running a wayland login screen kill it +@@ -1004,6 +1013,7 @@ gdm_local_display_factory_start_monitor + g_object_unref); + + #if defined(ENABLE_USER_DISPLAY_SERVER) ++ if (getenv ("GDM_DISABLE_USER_DISPLAY_SERVER") == NULL ) { + io_channel = g_io_channel_new_file ("/sys/class/tty/tty0/active", "r", NULL); + + if (io_channel != NULL) { +@@ -1014,6 +1024,7 @@ gdm_local_display_factory_start_monitor + on_vt_changed, + factory); + } ++ } + #endif + } + +@@ -1036,6 +1047,7 @@ gdm_local_display_factory_stop_monitor ( + factory->seat_properties_changed_id = 0; + } + #if defined(ENABLE_USER_DISPLAY_SERVER) ++ if (getenv ("GDM_DISABLE_USER_DISPLAY_SERVER") == NULL ) { + if (factory->active_vt_watch_id) { + g_source_remove (factory->active_vt_watch_id); + factory->active_vt_watch_id = 0; +@@ -1044,6 +1056,7 @@ gdm_local_display_factory_stop_monitor ( + g_source_remove (factory->wait_to_finish_timeout_id); + factory->wait_to_finish_timeout_id = 0; + } ++ } + #endif + } + +Index: gdm-40.1/daemon/gdm-session.c +=================================================================== +--- gdm-40.1.orig/daemon/gdm-session.c ++++ gdm-40.1/daemon/gdm-session.c +@@ -382,19 +382,22 @@ get_system_session_dirs (GdmSession *sel + if (!self->ignore_wayland && + (type == NULL || g_str_equal (type, "wayland"))) { + #ifdef ENABLE_USER_DISPLAY_SERVER ++ if (getenv ("GDM_DISABLE_USER_DISPLAY_SERVER") == NULL ) { + g_array_prepend_val (search_array, wayland_search_dir); + + for (i = 0; system_data_dirs[i]; i++) { + gchar *dir = g_build_filename (system_data_dirs[i], "wayland-sessions", NULL); + g_array_insert_val (search_array, i, dir); + } +-#else ++//#else ++ } else { + for (i = 0; system_data_dirs[i]; i++) { + gchar *dir = g_build_filename (system_data_dirs[i], "wayland-sessions", NULL); + g_array_append_val (search_array, dir); + } + + g_array_append_val (search_array, wayland_search_dir); ++ } + #endif + } + #endif +@@ -3341,6 +3344,7 @@ gdm_session_get_display_mode (GdmSession + } + + #ifdef ENABLE_USER_DISPLAY_SERVER ++ if (getenv ("GDM_DISABLE_USER_DISPLAY_SERVER") == NULL ) { + /* 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 +@@ -3363,7 +3367,8 @@ gdm_session_get_display_mode (GdmSession + * are paused when handed out. + */ + return GDM_SESSION_DISPLAY_MODE_NEW_VT; +-#else ++//#else ++ } else { + + #ifdef ENABLE_WAYLAND_SUPPORT + /* Wayland sessions are for now assumed to run in a +@@ -3374,6 +3379,7 @@ gdm_session_get_display_mode (GdmSession + } + #endif + return GDM_SESSION_DISPLAY_MODE_REUSE_VT; ++ } + #endif + } + +Index: gdm-40.1/daemon/gdm-session-worker.c +=================================================================== +--- gdm-40.1.orig/daemon/gdm-session-worker.c ++++ gdm-40.1/daemon/gdm-session-worker.c +@@ -1755,8 +1755,10 @@ jump_back_to_initial_vt (GdmSessionWorke + return; + + #ifdef ENABLE_USER_DISPLAY_SERVER ++ if (getenv ("GDM_DISABLE_USER_DISPLAY_SERVER") == NULL ) { + jump_to_vt (worker, GDM_INITIAL_VT); + worker->priv->session_vt = 0; ++ } + #endif + } + +Index: gdm-40.1/daemon/gdm-manager.c +=================================================================== +--- gdm-40.1.orig/daemon/gdm-manager.c ++++ gdm-40.1/daemon/gdm-manager.c +@@ -1349,6 +1349,8 @@ set_up_automatic_login_session (GdmManag + "display-is-initial", FALSE, + NULL); + ++ if (getenv ("GDM_DISABLE_USER_DISPLAY_SERVER") != NULL) ++ manager->priv->did_automatic_login = TRUE; + g_debug ("GdmManager: Starting automatic login conversation"); + gdm_session_start_conversation (session, "gdm-autologin"); + } +Index: gdm-40.1/daemon/gdm-server.c +=================================================================== +--- gdm-40.1.orig/daemon/gdm-server.c ++++ gdm-40.1/daemon/gdm-server.c +@@ -752,7 +752,7 @@ gdm_server_start (GdmServer *server) + GError **error = &local_error; + + /* Hardcode the VT for the initial X server, but nothing else */ +- if (server->is_initial) { ++ if (server->is_initial && g_strcmp0 (server->display_name, ":0") == 0) { + vtarg = "vt" G_STRINGIFY (GDM_INITIAL_VT); + } + diff --git a/gdm-default-wm.patch b/gdm-default-wm.patch index 6c2d5c3..2b9d35e 100644 --- a/gdm-default-wm.patch +++ b/gdm-default-wm.patch @@ -1,7 +1,7 @@ -Index: gdm-3.36.2/daemon/gdm-session.c +Index: gdm-40.1/daemon/gdm-session.c =================================================================== ---- gdm-3.36.2.orig/daemon/gdm-session.c -+++ gdm-3.36.2/daemon/gdm-session.c +--- gdm-40.1.orig/daemon/gdm-session.c ++++ gdm-40.1/daemon/gdm-session.c @@ -43,6 +43,8 @@ #include #include @@ -11,12 +11,12 @@ Index: gdm-3.36.2/daemon/gdm-session.c #include "gdm-session.h" #include "gdm-session-glue.h" #include "gdm-dbus-util.h" -@@ -562,6 +564,14 @@ get_fallback_session_name (GdmSession *s +@@ -578,6 +580,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)) { ++ if (name && get_session_command_for_name (self, name, NULL, NULL)) { + g_free (self->fallback_session_name); + self->fallback_session_name = name; + goto out; @@ -24,5 +24,5 @@ Index: gdm-3.36.2/daemon/gdm-session.c + g_free (name); + name = g_strdup ("gnome"); - if (get_session_command_for_name (self, name, NULL)) { + if (get_session_command_for_name (self, name, NULL, NULL)) { g_free (self->fallback_session_name); diff --git a/gdm-disable-gnome-initial-setup.patch b/gdm-disable-gnome-initial-setup.patch index 9442130..bcf434e 100644 --- a/gdm-disable-gnome-initial-setup.patch +++ b/gdm-disable-gnome-initial-setup.patch @@ -1,17 +1,17 @@ -Index: b/daemon/gdm-display.c +Index: gdm-41.0/daemon/gdm-display.c =================================================================== ---- a/daemon/gdm-display.c 2019-10-11 21:11:39.925180538 +0800 -+++ b/daemon/gdm-display.c 2019-10-11 21:14:23.866397460 +0800 -@@ -570,7 +570,7 @@ gdm_display_prepare (GdmDisplay *self) - */ - look_for_existing_users_sync (self); +--- gdm-41.0.orig/daemon/gdm-display.c ++++ gdm-41.0/daemon/gdm-display.c +@@ -573,7 +573,7 @@ gdm_display_prepare (GdmDisplay *self) + exit (EXIT_FAILURE); + } - priv->doing_initial_setup = wants_initial_setup (self); + priv->doing_initial_setup = FALSE; g_object_ref (self); ret = GDM_DISPLAY_GET_CLASS (self)->prepare (self); -@@ -1509,6 +1509,7 @@ on_launch_environment_session_died (GdmL +@@ -1542,6 +1542,7 @@ on_launch_environment_session_died (GdmL self_destruct (self); } @@ -19,7 +19,7 @@ Index: b/daemon/gdm-display.c static gboolean can_create_environment (const char *session_id) { -@@ -1660,6 +1661,7 @@ wants_initial_setup (GdmDisplay *self) +@@ -1693,6 +1694,7 @@ wants_initial_setup (GdmDisplay *self) return enabled; } @@ -27,10 +27,10 @@ Index: b/daemon/gdm-display.c void gdm_display_start_greeter_session (GdmDisplay *self) -Index: b/data/gdm.schemas.in +Index: gdm-41.0/data/gdm.schemas.in =================================================================== ---- a/data/gdm.schemas.in 2019-10-11 21:11:39.925180538 +0800 -+++ b/data/gdm.schemas.in 2019-10-11 21:11:43.473206874 +0800 +--- gdm-41.0.orig/data/gdm.schemas.in ++++ gdm-41.0/data/gdm.schemas.in @@ -50,7 +50,7 @@ daemon/InitialSetupEnable @@ -39,4 +39,4 @@ Index: b/data/gdm.schemas.in + false - daemon/WaylandEnable + daemon/PreferredDisplayServer diff --git a/gdm-disable-wayland-on-mgag200-chipsets.patch b/gdm-disable-wayland-on-mgag200-chipsets.patch index f439204..b2a353d 100644 --- a/gdm-disable-wayland-on-mgag200-chipsets.patch +++ b/gdm-disable-wayland-on-mgag200-chipsets.patch @@ -1,18 +1,18 @@ -Index: gdm-3.37.90/data/61-gdm.rules.in +Index: gdm-41.alpha/data/61-gdm.rules.in =================================================================== ---- gdm-3.37.90.orig/data/61-gdm.rules.in -+++ gdm-3.37.90/data/61-gdm.rules.in -@@ -4,3 +4,13 @@ ATTR{vendor}=="0x19e5", ATTR{device}=="0 - DRIVER=="nvidia", RUN+="@libexecdir@/gdm-disable-wayland" +--- gdm-41.alpha.orig/data/61-gdm.rules.in ++++ gdm-41.alpha/data/61-gdm.rules.in +@@ -8,3 +8,13 @@ SUBSYSTEM=="drm", KERNEL=="card[1-9]*", + ACTION=="add", SUBSYSTEM=="module", KERNEL=="nvidia_drm", ATTR{parameters/modeset}=="N", RUN+="@libexecdir@/gdm-runtime-config set daemon WaylandEnable false" # disable Wayland if modesetting is disabled - IMPORT{cmdline}="nomodeset", RUN+="@libexecdir@/gdm-disable-wayland" + IMPORT{cmdline}="nomodeset", RUN+="@libexecdir@/gdm-runtime-config set daemon WaylandEnable false" +# disable Wayland on Matrox Electronics Systems Ltd. MGA G200 server engines -+ATTR{vendor}=="0x102b", ATTR{device}=="0x0522", RUN+="@libexecdir@/gdm-disable-wayland" -+ATTR{vendor}=="0x102b", ATTR{device}=="0x0524", RUN+="@libexecdir@/gdm-disable-wayland" -+ATTR{vendor}=="0x102b", ATTR{device}=="0x0530", RUN+="@libexecdir@/gdm-disable-wayland" -+ATTR{vendor}=="0x102b", ATTR{device}=="0x0532", RUN+="@libexecdir@/gdm-disable-wayland" -+ATTR{vendor}=="0x102b", ATTR{device}=="0x0533", RUN+="@libexecdir@/gdm-disable-wayland" -+ATTR{vendor}=="0x102b", ATTR{device}=="0x0534", RUN+="@libexecdir@/gdm-disable-wayland" -+ATTR{vendor}=="0x102b", ATTR{device}=="0x0536", RUN+="@libexecdir@/gdm-disable-wayland" -+ATTR{vendor}=="0x102b", ATTR{device}=="0x0538", RUN+="@libexecdir@/gdm-disable-wayland" ++ATTR{vendor}=="0x102b", ATTR{device}=="0x0522", RUN+="@libexecdir@/gdm-runtime-config set daemon WaylandEnable false" ++ATTR{vendor}=="0x102b", ATTR{device}=="0x0524", RUN+="@libexecdir@/gdm-runtime-config set daemon WaylandEnable false" ++ATTR{vendor}=="0x102b", ATTR{device}=="0x0530", RUN+="@libexecdir@/gdm-runtime-config set daemon WaylandEnable false" ++ATTR{vendor}=="0x102b", ATTR{device}=="0x0532", RUN+="@libexecdir@/gdm-runtime-config set daemon WaylandEnable false" ++ATTR{vendor}=="0x102b", ATTR{device}=="0x0533", RUN+="@libexecdir@/gdm-runtime-config set daemon WaylandEnable false" ++ATTR{vendor}=="0x102b", ATTR{device}=="0x0534", RUN+="@libexecdir@/gdm-runtime-config set daemon WaylandEnable false" ++ATTR{vendor}=="0x102b", ATTR{device}=="0x0536", RUN+="@libexecdir@/gdm-runtime-config set daemon WaylandEnable false" ++ATTR{vendor}=="0x102b", ATTR{device}=="0x0538", RUN+="@libexecdir@/gdm-runtime-config set daemon WaylandEnable false" + diff --git a/gdm-s390-not-require-g-s-d_wacom.patch b/gdm-s390-not-require-g-s-d_wacom.patch index 9cbfb16..23afcb7 100644 --- a/gdm-s390-not-require-g-s-d_wacom.patch +++ b/gdm-s390-not-require-g-s-d_wacom.patch @@ -1,9 +1,12 @@ -Index: gdm-3.34.1/data/gnome-login.session.in +Index: gdm-40.0/data/meson.build =================================================================== ---- gdm-3.34.1.orig/data/gnome-login.session.in 2019-11-29 14:10:23.384796127 +0100 -+++ gdm-3.34.1/data/gnome-login.session.in 2019-11-29 14:10:44.760797059 +0100 -@@ -1,3 +1,3 @@ - [GNOME Session] - Name=Display Manager --RequiredComponents=org.gnome.Shell;org.gnome.SettingsDaemon.A11ySettings;org.gnome.SettingsDaemon.Color;org.gnome.SettingsDaemon.Datetime;org.gnome.SettingsDaemon.Housekeeping;org.gnome.SettingsDaemon.Keyboard;org.gnome.SettingsDaemon.MediaKeys;org.gnome.SettingsDaemon.Power;org.gnome.SettingsDaemon.PrintNotifications;org.gnome.SettingsDaemon.Rfkill;org.gnome.SettingsDaemon.ScreensaverProxy;org.gnome.SettingsDaemon.Sharing;org.gnome.SettingsDaemon.Smartcard;org.gnome.SettingsDaemon.Sound;org.gnome.SettingsDaemon.Wacom; -+RequiredComponents=org.gnome.Shell;org.gnome.SettingsDaemon.A11ySettings;org.gnome.SettingsDaemon.Color;org.gnome.SettingsDaemon.Datetime;org.gnome.SettingsDaemon.Housekeeping;org.gnome.SettingsDaemon.Keyboard;org.gnome.SettingsDaemon.MediaKeys;org.gnome.SettingsDaemon.Power;org.gnome.SettingsDaemon.PrintNotifications;org.gnome.SettingsDaemon.Rfkill;org.gnome.SettingsDaemon.ScreensaverProxy;org.gnome.SettingsDaemon.Sharing;org.gnome.SettingsDaemon.Smartcard;org.gnome.SettingsDaemon.Sound; +--- gdm-40.0.orig/data/meson.build ++++ gdm-40.0/data/meson.build +@@ -77,7 +77,6 @@ gdm_gnome_session_required_components = + 'org.gnome.SettingsDaemon.Sharing', + 'org.gnome.SettingsDaemon.Smartcard', + 'org.gnome.SettingsDaemon.Sound', +- 'org.gnome.SettingsDaemon.Wacom', + ] + + gdm_gnome_user_session_wanted_components = gdm_gnome_session_required_components diff --git a/gdm-xauthlocalhostname.patch b/gdm-xauthlocalhostname.patch index ea603a7..8097658 100644 --- a/gdm-xauthlocalhostname.patch +++ b/gdm-xauthlocalhostname.patch @@ -1,8 +1,8 @@ -Index: gdm-3.36.2/common/gdm-common.c +Index: gdm-40.1/common/gdm-common.c =================================================================== ---- gdm-3.36.2.orig/common/gdm-common.c -+++ gdm-3.36.2/common/gdm-common.c -@@ -631,6 +631,8 @@ gdm_get_script_environment (const char * +--- gdm-40.1.orig/common/gdm-common.c ++++ gdm-40.1/common/gdm-common.c +@@ -613,6 +613,8 @@ gdm_get_script_environment (const char * if (display_hostname) { g_hash_table_insert (hash, g_strdup ("REMOTE_HOST"), g_strdup (display_hostname)); @@ -11,9 +11,9 @@ Index: gdm-3.36.2/common/gdm-common.c } /* Runs as root */ -@@ -974,3 +976,14 @@ gdm_find_display_session (GPid pi - - return TRUE; +@@ -1079,3 +1081,14 @@ gdm_load_env_d (GdmLoadEnvVarFunc load_e + gdm_load_env_dir (dir, load_env_func, expand_func, user_data); + g_object_unref (dir); } + +char * @@ -26,11 +26,11 @@ Index: gdm-3.36.2/common/gdm-common.c + return g_strdup ("localhost"); + } +} -Index: gdm-3.36.2/common/gdm-common.h +Index: gdm-40.1/common/gdm-common.h =================================================================== ---- gdm-3.36.2.orig/common/gdm-common.h -+++ gdm-3.36.2/common/gdm-common.h -@@ -66,6 +66,7 @@ char *gdm_generate_random_bytes +--- gdm-40.1.orig/common/gdm-common.h ++++ gdm-40.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); @@ -38,10 +38,10 @@ Index: gdm-3.36.2/common/gdm-common.h GPtrArray *gdm_get_script_environment (const char *username, const char *display_name, -Index: gdm-3.36.2/daemon/gdm-display-access-file.c +Index: gdm-40.1/daemon/gdm-display-access-file.c =================================================================== ---- gdm-3.36.2.orig/daemon/gdm-display-access-file.c -+++ gdm-3.36.2/daemon/gdm-display-access-file.c +--- gdm-40.1.orig/daemon/gdm-display-access-file.c ++++ gdm-40.1/daemon/gdm-display-access-file.c @@ -441,13 +441,10 @@ _get_auth_info_for_display (GdmDisplayAc * * https://bugs.freedesktop.org/show_bug.cgi?id=43425 @@ -59,11 +59,11 @@ Index: gdm-3.36.2/daemon/gdm-display-access-file.c } else { *family = FamilyWild; gdm_display_get_remote_hostname (display, address, NULL); -Index: gdm-3.36.2/daemon/gdm-launch-environment.c +Index: gdm-40.1/daemon/gdm-launch-environment.c =================================================================== ---- gdm-3.36.2.orig/daemon/gdm-launch-environment.c -+++ gdm-3.36.2/daemon/gdm-launch-environment.c -@@ -216,6 +216,11 @@ build_launch_environment (GdmLaunchEnvir +--- gdm-40.1.orig/daemon/gdm-launch-environment.c ++++ gdm-40.1/daemon/gdm-launch-environment.c +@@ -224,6 +224,11 @@ build_launch_environment (GdmLaunchEnvir g_hash_table_insert (hash, g_strdup ("GDM_SEAT_ID"), g_strdup (seat_id)); } @@ -74,12 +74,12 @@ Index: gdm-3.36.2/daemon/gdm-launch-environment.c + g_hash_table_insert (hash, g_strdup ("RUNNING_UNDER_GDM"), g_strdup ("true")); - return hash; -Index: gdm-3.36.2/daemon/gdm-session.c + /* Now populate XDG_DATA_DIRS from env.d if we're running initial setup; this allows +Index: gdm-40.1/daemon/gdm-session.c =================================================================== ---- gdm-3.36.2.orig/daemon/gdm-session.c -+++ gdm-3.36.2/daemon/gdm-session.c -@@ -2683,6 +2683,14 @@ set_up_session_environment (GdmSession * +--- gdm-40.1.orig/daemon/gdm-session.c ++++ gdm-40.1/daemon/gdm-session.c +@@ -2709,6 +2709,14 @@ set_up_session_environment (GdmSession * } } diff --git a/gdm.changes b/gdm.changes index dbcfd40..1bc6c6f 100644 --- a/gdm.changes +++ b/gdm.changes @@ -1,3 +1,130 @@ +------------------------------------------------------------------- +Tue Sep 28 06:51:26 UTC 2021 - Yifan Jiang + +- Rebase gdm-disable-gnome-initial-setup.patch. + +------------------------------------------------------------------- +Tue Sep 21 14:37:07 UTC 2021 - Bjørn Lie + +- Update to version 41.0: + + Updated translations. + +------------------------------------------------------------------- +Thu Sep 16 01:30:26 UTC 2021 - Stanislav Brabec + +- Remove obsolete translation-update-upstream support + (jsc#SLE-21105). + +------------------------------------------------------------------- +Tue Sep 7 07:49:33 UTC 2021 - Xiaoguang Wang + +- Add gdm-add-runtime-option-to-disable-starting-X-server-as-u.patch: + Support to start X under root instead of regular user. + (bnc#1188912 jsc#SLE-17880). +- Update X11-displaymanager-gdm file. + +------------------------------------------------------------------- +Mon Sep 6 17:32:31 UTC 2021 - Dominique Leuenberger + +- Update to version 41.rc: + + Fix fallback to Xorg at login screen. + + Fix SessionType in AccountService user config. + + Reuse VT on log out. + + Updated translations. + +------------------------------------------------------------------- +Mon Aug 23 15:06:17 UTC 2021 - Dominique Leuenberger + +- Update to version 41.alpha: + + Allow user session to be Wayland even when login screen is + Xorg. + + Allow wayland user sessions for single GPU vendor nvidia + machines. + + Updated translations. + +------------------------------------------------------------------- +Wed Aug 11 09:00:34 UTC 2021 - Yifan Jiang + +- Rebase patches: + + gdm-s390-not-require-g-s-d_wacom.patch + + gdm-disable-gnome-initial-setup.patch + +------------------------------------------------------------------- +Tue Aug 3 12:23:50 UTC 2021 - Dominique Leuenberger + +- Rebased gdm-default-wm.patch. + +------------------------------------------------------------------- +Fri Jul 30 07:22:59 UTC 2021 - Yifan Jiang + +- Drop patches fixed upstream on SLE and Leap 15.4: + + gdm-enable-Wayland-on-Cirrus.patch + + gdm-Remove-deprecated-StandardOutput-syslog.patch + + gdm-fix-crash-when-using-Xvfb.patch + + gdm-display-Exit-with-failure-if-loading-existing-users-fails.patch + +------------------------------------------------------------------- +Sat Jul 24 16:19:17 UTC 2021 - Bjørn Lie + +- Update to version 40.1: + + Better support for unlocking gnome-keyring with disk password + + Better support for flatpak + + Misc auth fixes + + Improved error output in gdm-runtime-config + + Sort session list on login screen + + Support Session and SessionType properties from accountsservice + + Updated translations. +- Rebase gdm-xauthlocalhostname.patch. +- Disable gdm-default-wm.patch, needs reworking. + +------------------------------------------------------------------- +Mon Jul 5 09:33:56 UTC 2021 - Callum Farmer + +- Add now working CONFIG parameter to sysusers generator + +------------------------------------------------------------------- +Fri Apr 23 01:17:59 UTC 2021 - Xiaoguang Wang + +- Add gdm-Remove-deprecated-StandardOutput-syslog.patch: Remove + deprecated StandardOutput=syslog in gdm.service file + (bsc#1185146, glgo#GNOME/gdm!623). + +------------------------------------------------------------------- +Sat Apr 17 08:18:30 UTC 2021 - Dominique Leuenberger + +- Update to version 40.0: + + 100% CPU fix. + + Updated translations. + +------------------------------------------------------------------- +Wed Mar 17 12:43:45 UTC 2021 - Dominique Leuenberger + +- Update to version 40.rc: + + Fingerprint auth fixes. + + Fix timeout handling for graphics bringup. + + Updated translations. + +------------------------------------------------------------------- +Tue Mar 9 15:54:57 UTC 2021 - Dominique Leuenberger + +- Update to version 40.beta: + + xinit script improvements. + + Build goo fixes. + + Support systems that boot before the graphics subsystem fully + loads. + + Don't overwrite PATH set by user. + + Generalize gdm-disable-wayland into new gdm-runtime-config + tool. + + Fail hard if accountsservice fails. + + PAM integration improvements. + + Leak fixes. + + Stop using deprecated systemd functions. +- Changes from version 3.38.2.1: + + Address autologin unlock bug issue (CVE-2020-27837). + + Updated translations. +- Rebase gdm-disable-wayland-on-mgag200-chipsets.patch. +- Drop gdm-UsrEtc.patch: merged upstream. + ------------------------------------------------------------------- Fri Jan 29 09:46:20 UTC 2021 - Dominique Leuenberger @@ -9,6 +136,28 @@ Thu Jan 21 12:57:09 UTC 2021 - Thorsten Kukuk - Use sysusers config file to generate gdm user +------------------------------------------------------------------- +Mon Jan 18 07:12:10 UTC 2021 - Alynx Zhou + +- Add gdm-fix-crash-when-using-Xvfb.patch: For some reason gdm + fails to get display and does not set it to NULL when using + with Xvfb, and it leads into a crash, this patch sets display + to NULL by default. (bsc#1178292, glgo#GNOME/gdm!118) + +------------------------------------------------------------------- +Mon Jan 4 05:28:58 UTC 2021 - Xiaoguang Wang + +- Update gdm-add-runtime-option-to-disable-starting-X-server-as-u.patch: + Fix switching user issue(bsc#1179968, bsc#1174533). + +------------------------------------------------------------------- +Fri Nov 13 02:45:59 UTC 2020 - Xiaoguang Wang + +- Add gdm-display-Exit-with-failure-if-loading-existing-users-fails.patch: + Exit with failure if loading existing users fails + (bsc#1178150 glgo#GNOME/gdm!117 CVE-2020-16125). +- Update gdm-disable-gnome-initial-setup.patch + ------------------------------------------------------------------- Wed Nov 4 10:05:13 UTC 2020 - Dominique Leuenberger @@ -93,6 +242,12 @@ Sat Sep 5 10:48:29 UTC 2020 - dimstar@opensuse.org + Replace configure/make/make_install macros with meson/meson_build/meson_install. +------------------------------------------------------------------- +Tue Aug 25 01:38:13 UTC 2020 - QK ZHU + +- Add gdm-enable-Wayland-on-Cirrus.patch: Update udev rules to + enable Wayland on Cirrus (bsc#1168515, glgo#GNOME/gdm#586). + ------------------------------------------------------------------- Tue Jul 14 05:10:44 UTC 2020 - Bjørn Lie diff --git a/gdm.spec b/gdm.spec index 25d0497..62a1c2c 100644 --- a/gdm.spec +++ b/gdm.spec @@ -21,14 +21,14 @@ %define enable_split_authentication 0 Name: gdm -Version: 3.38.2 +Version: 41.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/3.38/%{name}-%{version}.tar.xz +Source0: https://download.gnome.org/sources/gdm/41/%{name}-%{version}.tar.xz Source1: gdm.pamd Source2: gdm-autologin.pamd Source3: gdm-launch-environment.pamd @@ -63,12 +63,11 @@ Patch13: gdm-s390-not-require-g-s-d_wacom.patch Patch14: gdm-switch-user-tty7.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 Patch15: gdm-disable-wayland-on-mgag200-chipsets.patch -# PATCH-FIX-OPENSUSE gdm-UsrEtc.patch boo#1173049 boo#1173052 boo#1173053 -- needed changes for xdm/xinit/xmodmap move to /usr/etc/X11 -Patch16: gdm-UsrEtc.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. Patch1000: gdm-disable-gnome-initial-setup.patch +# PATCH-FIX-SLE gdm-add-runtime-option-to-disable-starting-X-server-as-u.patch bnc#1188912 jsc#SLE-17880 xwang@suse.com -- Add runtime option to start X under root instead of regular user. +Patch1001: gdm-add-runtime-option-to-disable-starting-X-server-as-u.patch BuildRequires: check-devel # dconf and gnome-session-core are needed for directory ownership BuildRequires: dconf @@ -81,17 +80,16 @@ BuildRequires: pkgconfig BuildRequires: sysuser-shadow BuildRequires: sysuser-tools BuildRequires: tcpd-devel -BuildRequires: translation-update-upstream BuildRequires: update-desktop-files BuildRequires: xorg-x11-server BuildRequires: xorg-x11-server-extra BuildRequires: pkgconfig(accountsservice) >= 0.6.35 BuildRequires: pkgconfig(audit) BuildRequires: pkgconfig(check) -BuildRequires: pkgconfig(gio-2.0) >= 2.36.0 -BuildRequires: pkgconfig(gio-unix-2.0) >= 2.36.0 -BuildRequires: pkgconfig(glib-2.0) >= 2.36.0 -BuildRequires: pkgconfig(gobject-2.0) >= 2.36.0 +BuildRequires: pkgconfig(gio-2.0) >= 2.56.0 +BuildRequires: pkgconfig(gio-unix-2.0) >= 2.56.0 +BuildRequires: pkgconfig(glib-2.0) >= 2.56.0 +BuildRequires: pkgconfig(gobject-2.0) >= 2.56.0 BuildRequires: pkgconfig(gobject-introspection-1.0) >= 0.9.12 BuildRequires: pkgconfig(gthread-2.0) BuildRequires: pkgconfig(gtk+-3.0) >= 2.91.1 @@ -222,11 +220,11 @@ running display manager. %endif %patch14 -p1 %patch15 -p1 -%patch16 -p1 # SLE and Leap only patches start at 1000 %if 0%{?sle_version} %patch1000 -p1 +%patch1001 -p1 %endif %build @@ -237,7 +235,7 @@ running display manager. -Dgnome-settings-daemon-dir=%{_libexecdir}/gnome-settings-daemon-3.0 \ -Dinitial-vt=7 \ -Dipv6=true \ - -Dpam-mod-dir=/%{_lib}/security \ + -Dpam-mod-dir=%{_pamdir} \ -Dplymouth=enabled \ -Drun-dir=/run/gdm \ %if %{enable_split_authentication} @@ -249,31 +247,31 @@ running display manager. -Dwayland-support=true \ %nil %meson_build -%sysusers_generate_pre %{SOURCE11} gdm +%sysusers_generate_pre %{SOURCE11} gdm gdm.conf %install %meson_install ## Install PAM files. -mkdir -p %{buildroot}%{_sysconfdir}/pam.d +mkdir -p %{buildroot}%{_distconfdir}/pam.d # Generic pam config -cp %{SOURCE1} %{buildroot}%{_sysconfdir}/pam.d/gdm +cp %{SOURCE1} %{buildroot}%{_distconfdir}/pam.d/gdm # Pam config for autologin -cp %{SOURCE2} %{buildroot}%{_sysconfdir}/pam.d/gdm-autologin +cp %{SOURCE2} %{buildroot}%{_distconfdir}/pam.d/gdm-autologin # Pam config for the greeter session -cp %{SOURCE3} %{buildroot}%{_sysconfdir}/pam.d/gdm-launch-environment +cp %{SOURCE3} %{buildroot}%{_distconfdir}/pam.d/gdm-launch-environment %if %{enable_split_authentication} # Pam config for fingerprint authentication -cp %{SOURCE4} %{buildroot}%{_sysconfdir}/pam.d/gdm-fingerprint +cp %{SOURCE4} %{buildroot}%{_distconfdir}/pam.d/gdm-fingerprint # Pam config for smartcard authentication -cp %{SOURCE5} %{buildroot}%{_sysconfdir}/pam.d/gdm-smartcard +cp %{SOURCE5} %{buildroot}%{_distconfdir}/pam.d/gdm-smartcard %endif # The default gdm pam configuration is the one to be used as pam-password too %if %{enable_split_authentication} -rm %{buildroot}%{_sysconfdir}/pam.d/gdm-password +rm %{buildroot}%{_distconfdir}/pam.d/gdm-password echo "We are not ready for this, we need to know what to put in gdm-fingerprint and gdm-smartcard pam config files." false %endif -ln -s gdm %{buildroot}%{_sysconfdir}/pam.d/gdm-password +ln -s gdm %{buildroot}%{_distconfdir}/pam.d/gdm-password ## Install other files # Install PostLogin script. mv %{buildroot}%{_sysconfdir}/gdm/PostLogin/Default.sample %{buildroot}%{_sysconfdir}/gdm/PostLogin/Default @@ -339,7 +337,7 @@ dconf update %{_datadir}/gdm/ %{_datadir}/gnome-session/sessions/gnome-login.session %{_datadir}/glib-2.0/schemas/org.gnome.login-screen.gschema.xml -/%{_lib}/security/pam_gdm.so +%{_pamdir}/pam_gdm.so %dir %{_libexecdir}/gdm %{_libexecdir}/gdm/gdm-* %{_libexecdir}/gdm/gdmflexiserver @@ -347,14 +345,14 @@ dconf update %ghost %attr(711,root,gdm) %dir %{_localstatedir}/log/gdm %ghost %dir %{_localstatedir}/cache/gdm %ghost %attr(711,root,gdm) %dir /run/gdm -%config %{_sysconfdir}/pam.d/gdm -%config %{_sysconfdir}/pam.d/gdm-autologin +%{_distconfdir}/pam.d/gdm +%{_distconfdir}/pam.d/gdm-autologin %if %{enable_split_authentication} -%config %{_sysconfdir}/pam.d/gdm-fingerprint -%config %{_sysconfdir}/pam.d/gdm-smartcard +%{_distconfdir}/pam.d/gdm-fingerprint +%{_distconfdir}/pam.d/gdm-smartcard %endif -%config %{_sysconfdir}/pam.d/gdm-password -%config %{_sysconfdir}/pam.d/gdm-launch-environment +%{_distconfdir}/pam.d/gdm-password +%{_distconfdir}/pam.d/gdm-launch-environment %config %{_sysconfdir}/dbus-1/system.d/gdm.conf # /etc/xinit.d/xdm integration %dir %{_prefix}/lib/X11/displaymanagers