public inbox for git-commits@fedoraproject.org
help / color / mirror / Atom feed
* [rpms/lightdm] f44: Update the multiseat patch now it's been merged
@ 2026-08-16 12:40 Leigh Scott
0 siblings, 0 replies; only message in thread
From: Leigh Scott @ 2026-08-16 12:40 UTC (permalink / raw)
To: git-commits
A new commit has been pushed.
Repo : rpms/lightdm
Branch : f44
Commit : bf5c28b9bed48cf4f6847fcb3dae0becb0f5458a
Author : Leigh Scott <leigh123linux@gmail.com>
Date : 2026-08-16T13:38:59+01:00
Stats : +267/-13 in 2 file(s)
URL : https://src.fedoraproject.org/rpms/lightdm/c/bf5c28b9bed48cf4f6847fcb3dae0becb0f5458a?branch=f44
Log:
Update the multiseat patch now it's been merged
---
diff --git a/lightdm.spec b/lightdm.spec
index 6631623..e7234dd 100644
--- a/lightdm.spec
+++ b/lightdm.spec
@@ -39,9 +39,9 @@ Patch1: remove_bin_path.patch
Patch2: %{giturl}/pull/5.patch#/lightdm-1.25.1-disable_dmrc.patch
# Pending
-Patch3: %{giturl}/pull/454.patch#/logind_multiseat_fix.patch
# Upstream commits
+Patch3: %{giturl}/commit/54f7f88f879ce55dabe5f637f08b1c67b71fbb40.patch#/logind_multiseat_fix.patch
BuildRequires: gettext-devel
BuildRequires: gnome-common
diff --git a/logind_multiseat_fix.patch b/logind_multiseat_fix.patch
index b7e9be6..cd6052c 100644
--- a/logind_multiseat_fix.patch
+++ b/logind_multiseat_fix.patch
@@ -1,24 +1,278 @@
-From 884f2c0989a0c0a6393421456d83444e0ced7a23 Mon Sep 17 00:00:00 2001
-From: nerdopolis <bluescreenavenger@gmail.com>
-Date: Wed, 5 Aug 2026 23:32:45 -0400
-Subject: [PATCH] Assume that the seat CanMultiSession by default
+From 54f7f88f879ce55dabe5f637f08b1c67b71fbb40 Mon Sep 17 00:00:00 2001
+From: n3rdopolis <bluescreenavenger@gmail.com>
+Date: Sat, 15 Aug 2026 19:09:40 -0400
+Subject: [PATCH] Assume that the seat CanMultiSession by default (#454)
logind having dropped listing the CanMultiSession property in 2024 now makes
lightdm assume it is always false. This is incorrect as the reason why logind
now hides this property, is because it is actually unconditionally true.
---
- src/login1.c | 1 +
- 1 file changed, 1 insertion(+)
+ src/lightdm.c | 6 +-
+ src/login1.c | 13 ---
+ src/login1.h | 2 -
+ tests/Makefile.am | 2 -
+ .../scripts/multi-seat-no-multi-session.conf | 86 -------------------
+ tests/src/test-runner.c | 16 ----
+ tests/test-multi-seat-no-multi-session | 2 -
+ 7 files changed, 2 insertions(+), 125 deletions(-)
+ delete mode 100644 tests/scripts/multi-seat-no-multi-session.conf
+ delete mode 100755 tests/test-multi-seat-no-multi-session
+diff --git a/src/lightdm.c b/src/lightdm.c
+index f36c7238..fe2e1c89 100644
+--- a/src/lightdm.c
++++ b/src/lightdm.c
+@@ -425,11 +425,9 @@ add_login1_seat (Login1Seat *login1_seat)
+ {
+ set_seat_properties (seat, seat_name);
+
+- gboolean can_multi_session = login1_seat_get_can_multi_session (login1_seat);
+ gboolean can_tty = login1_seat_get_can_tty (login1_seat);
+- if (!can_multi_session)
+- g_debug ("Seat %s has property CanMultiSession=no", seat_name);
+- seat_set_supports_multi_session (seat, can_multi_session);
++
++ seat_set_supports_multi_session (seat, TRUE);
+ seat_set_can_tty (seat, can_tty);
+
+ if (is_seat0)
diff --git a/src/login1.c b/src/login1.c
-index 7fe84119..107ab6da 100644
+index 7fe84119..cce40026 100644
--- a/src/login1.c
+++ b/src/login1.c
-@@ -196,6 +196,7 @@ add_seat (Login1Service *service, const gchar *id, const gchar *path)
+@@ -65,9 +65,6 @@ typedef struct
+ /* TRUE if can run a graphical display on this seat */
+ gboolean can_graphical;
- const gchar *name;
- GVariant *value;
-+ s_priv->can_multi_session = TRUE;
- while (g_variant_iter_loop (properties, "{&sv}", &name, &value))
+- /* TRUE if can do session switching */
+- gboolean can_multi_session;
+-
+ /* TRUE if seat has TTYs */
+ gboolean can_tty;
+ } Login1SeatPrivate;
+@@ -200,8 +197,6 @@ add_seat (Login1Service *service, const gchar *id, const gchar *path)
{
if (strcmp (name, "CanGraphical") == 0 && g_variant_is_of_type (value, G_VARIANT_TYPE_BOOLEAN))
+ s_priv->can_graphical = g_variant_get_boolean (value);
+- else if (strcmp (name, "CanMultiSession") == 0 && g_variant_is_of_type (value, G_VARIANT_TYPE_BOOLEAN))
+- s_priv->can_multi_session = g_variant_get_boolean (value);
+ else if (strcmp (name, "CanTTY") == 0 && g_variant_is_of_type (value, G_VARIANT_TYPE_BOOLEAN))
+ s_priv->can_tty = g_variant_get_boolean (value);
+ }
+@@ -516,14 +511,6 @@ login1_seat_get_can_graphical (Login1Seat *seat)
+ return priv->can_graphical;
+ }
+
+-gboolean
+-login1_seat_get_can_multi_session (Login1Seat *seat)
+-{
+- Login1SeatPrivate *priv = login1_seat_get_instance_private (seat);
+- g_return_val_if_fail (seat != NULL, FALSE);
+- return priv->can_multi_session;
+-}
+-
+ gboolean
+ login1_seat_get_can_tty (Login1Seat *seat)
+ {
+diff --git a/src/login1.h b/src/login1.h
+index d956242c..3a51e176 100644
+--- a/src/login1.h
++++ b/src/login1.h
+@@ -78,8 +78,6 @@ const gchar *login1_seat_get_id (Login1Seat *seat);
+
+ gboolean login1_seat_get_can_graphical (Login1Seat *seat);
+
+-gboolean login1_seat_get_can_multi_session (Login1Seat *seat);
+-
+ gboolean login1_seat_get_can_tty (Login1Seat *seat);
+
+ G_END_DECLS
+diff --git a/tests/Makefile.am b/tests/Makefile.am
+index 63b50065..fc85348e 100644
+--- a/tests/Makefile.am
++++ b/tests/Makefile.am
+@@ -241,7 +241,6 @@ TESTS = \
+ test-multi-seat-autologin-seat1 \
+ test-multi-seat-seat0-non-graphical \
+ test-multi-seat-seat0-non-graphical-disabled \
+- test-multi-seat-no-multi-session \
+ test-multi-seat-non-graphical \
+ test-multi-seat-non-graphical-disabled \
+ test-multi-seat-change-graphical \
+@@ -516,7 +515,6 @@ EXTRA_DIST = \
+ scripts/multi-seat-change-graphical.conf \
+ scripts/multi-seat-change-graphical-disabled.conf \
+ scripts/multi-seat-login.conf \
+- scripts/multi-seat-no-multi-session \
+ scripts/multi-seat-non-graphical.conf \
+ scripts/multi-seat-non-graphical-disabled.conf \
+ scripts/multi-seat-seat0-non-graphical.conf \
+diff --git a/tests/scripts/multi-seat-no-multi-session.conf b/tests/scripts/multi-seat-no-multi-session.conf
+deleted file mode 100644
+index 672b0e4a..00000000
+--- a/tests/scripts/multi-seat-no-multi-session.conf
++++ /dev/null
+@@ -1,86 +0,0 @@
+-#
+-# Check that logging out from a CanMultiSession=false seat activates greeter on
+-# that seat.
+-#
+-
+-[Seat:*]
+-user-session=default
+-
+-#?*START-DAEMON
+-#?RUNNER DAEMON-START
+-
+-# seat0 starts
+-#?XSERVER-0 START VT=7 SEAT=seat0
+-#?*XSERVER-0 INDICATE-READY
+-#?XSERVER-0 INDICATE-READY
+-#?XSERVER-0 ACCEPT-CONNECT
+-#?GREETER-X-0 START XDG_SEAT=seat0 XDG_VTNR=7 XDG_SESSION_CLASS=greeter
+-#?LOGIN1 ACTIVATE-SESSION SESSION=c0
+-#?XSERVER-0 ACCEPT-CONNECT
+-#?GREETER-X-0 CONNECT-XSERVER
+-#?GREETER-X-0 CONNECT-TO-DAEMON
+-#?GREETER-X-0 CONNECTED-TO-DAEMON
+-
+-# Add seat1
+-#?*ADD-SEAT ID=seat1 CAN-MULTI-SESSION=FALSE
+-#?XSERVER-1 START SEAT=seat1
+-#?*SEAT-CAN-SWITCH PATH=/org/freedesktop/DisplayManager/Seat1
+-#?RUNNER SEAT-CAN-SWITCH PATH=/org/freedesktop/DisplayManager/Seat1 CAN-SWITCH=FALSE
+-#?*XSERVER-1 INDICATE-READY
+-#?XSERVER-1 INDICATE-READY
+-#?XSERVER-1 ACCEPT-CONNECT
+-#?GREETER-X-1 START XDG_SEAT=seat1 XDG_SESSION_CLASS=greeter
+-#?LOGIN1 ACTIVATE-SESSION SESSION=c1
+-#?XSERVER-1 ACCEPT-CONNECT
+-#?GREETER-X-1 CONNECT-XSERVER
+-#?GREETER-X-1 CONNECT-TO-DAEMON
+-#?GREETER-X-1 CONNECTED-TO-DAEMON
+-
+-# Log in seat0 so that its active session is not a greeter (in case there is a
+-# cross-seat bug).
+-#?*GREETER-X-0 AUTHENTICATE USERNAME=no-password1
+-#?GREETER-X-0 AUTHENTICATION-COMPLETE USERNAME=no-password1 AUTHENTICATED=TRUE
+-#?*GREETER-X-0 START-SESSION
+-#?GREETER-X-0 TERMINATE SIGNAL=15
+-#?SESSION-X-0 START XDG_SEAT=seat0 XDG_VTNR=7 XDG_GREETER_DATA_DIR=.*/no-password1 XDG_SESSION_TYPE=x11 XDG_SESSION_DESKTOP=default USER=no-password1
+-#?LOGIN1 ACTIVATE-SESSION SESSION=c2
+-#?XSERVER-0 ACCEPT-CONNECT
+-#?SESSION-X-0 CONNECT-XSERVER
+-
+-# Log in seat1
+-#?*GREETER-X-1 AUTHENTICATE USERNAME=no-password2
+-#?GREETER-X-1 AUTHENTICATION-COMPLETE USERNAME=no-password2 AUTHENTICATED=TRUE
+-#?*GREETER-X-1 START-SESSION
+-#?GREETER-X-1 TERMINATE SIGNAL=15
+-#?SESSION-X-1 START XDG_SEAT=seat1 XDG_GREETER_DATA_DIR=.*/no-password2 XDG_SESSION_TYPE=x11 XDG_SESSION_DESKTOP=default USER=no-password2
+-#?LOGIN1 ACTIVATE-SESSION SESSION=c3
+-#?XSERVER-1 ACCEPT-CONNECT
+-#?SESSION-X-1 CONNECT-XSERVER
+-
+-# Logout seat1
+-#?*SESSION-X-1 LOGOUT
+-#?XSERVER-1 TERMINATE SIGNAL=15
+-
+-# Ensure that the X server and greeter for seat1 are not restarted until after
+-# the user logs out. WAIT is not needed here because XSERVER-1 cannot terminate
+-# and start concurrently.
+-#?*FENCE
+-
+-#?XSERVER-1 START SEAT=seat1
+-#?*XSERVER-1 INDICATE-READY
+-#?XSERVER-1 INDICATE-READY
+-#?XSERVER-1 ACCEPT-CONNECT
+-#?GREETER-X-1 START XDG_SEAT=seat1 XDG_SESSION_CLASS=greeter
+-#?LOGIN1 ACTIVATE-SESSION SESSION=c4
+-#?XSERVER-1 ACCEPT-CONNECT
+-#?GREETER-X-1 CONNECT-XSERVER
+-#?GREETER-X-1 CONNECT-TO-DAEMON
+-#?GREETER-X-1 CONNECTED-TO-DAEMON
+-
+-# Cleanup
+-#?*STOP-DAEMON
+-#?SESSION-X-0 TERMINATE SIGNAL=15
+-#?XSERVER-0 TERMINATE SIGNAL=15
+-#?GREETER-X-1 TERMINATE SIGNAL=15
+-#?XSERVER-1 TERMINATE SIGNAL=15
+-#?RUNNER DAEMON-EXIT STATUS=0
+diff --git a/tests/src/test-runner.c b/tests/src/test-runner.c
+index 55056d6a..64b7fb86 100644
+--- a/tests/src/test-runner.c
++++ b/tests/src/test-runner.c
+@@ -127,7 +127,6 @@ typedef struct
+ gchar *id;
+ gchar *path;
+ gboolean can_graphical;
+- gboolean can_multi_session;
+ gboolean can_tty;
+ gchar *active_session;
+ } Login1Seat;
+@@ -540,9 +539,6 @@ handle_command (const gchar *command)
+ const gchar *v = g_hash_table_lookup (params, "CAN-GRAPHICAL");
+ if (v)
+ seat->can_graphical = strcmp (v, "TRUE") == 0;
+- v = g_hash_table_lookup (params, "CAN-MULTI-SESSION");
+- if (v)
+- seat->can_multi_session = strcmp (v, "TRUE") == 0;
+ }
+ else if (strcmp (name, "ADD-LOCAL-X-SEAT") == 0)
+ {
+@@ -574,12 +570,6 @@ handle_command (const gchar *command)
+ seat->can_graphical = strcmp (v, "TRUE") == 0;
+ g_variant_builder_add (&invalidated_properties, "s", "CanGraphical");
+ }
+- v = g_hash_table_lookup (params, "CAN-MULTI-SESSION");
+- if (v)
+- {
+- seat->can_multi_session = strcmp (v, "TRUE") == 0;
+- g_variant_builder_add (&invalidated_properties, "s", "CanMultiSession");
+- }
+ v = g_hash_table_lookup (params, "ACTIVE-SESSION");
+ if (v)
+ {
+@@ -1554,8 +1544,6 @@ handle_login1_seat_get_property (GDBusConnection *connection,
+
+ if (strcmp (property_name, "CanGraphical") == 0)
+ return g_variant_new_boolean (seat->can_graphical);
+- else if (strcmp (property_name, "CanMultiSession") == 0)
+- return g_variant_new_boolean (seat->can_multi_session);
+ else if (strcmp (property_name, "CanTTY") == 0)
+ return g_variant_new_boolean (seat->can_tty);
+ else if (strcmp (property_name, "Id") == 0)
+@@ -1582,7 +1570,6 @@ add_login1_seat (GDBusConnection *connection, const gchar *id, gboolean emit_sig
+ seat->id = g_strdup (id);
+ seat->path = g_strdup_printf ("/org/freedesktop/login1/seat/%s", seat->id);
+ seat->can_graphical = TRUE;
+- seat->can_multi_session = TRUE;
+ seat->can_tty = TRUE;
+ seat->active_session = NULL;
+
+@@ -1590,7 +1577,6 @@ add_login1_seat (GDBusConnection *connection, const gchar *id, gboolean emit_sig
+ "<node>"
+ " <interface name='org.freedesktop.login1.Seat'>"
+ " <property name='CanGraphical' type='b' access='read'/>"
+- " <property name='CanMultiSession' type='b' access='read'/>"
+ " <property name='CanTTY' type='b' access='read'/>"
+ " <property name='ActiveSession' type='(so)' access='read'/>"
+ " <property name='Id' type='s' access='read'/>"
+@@ -1972,8 +1958,6 @@ login1_name_acquired_cb (GDBusConnection *connection,
+ Login1Seat *seat0 = add_login1_seat (connection, "seat0", FALSE);
+ if (g_key_file_has_key (config, "test-runner-config", "seat0-can-graphical", NULL))
+ seat0->can_graphical = g_key_file_get_boolean (config, "test-runner-config", "seat0-can-graphical", NULL);
+- if (g_key_file_has_key (config, "test-runner-config", "seat0-can-multi-session", NULL))
+- seat0->can_multi_session = g_key_file_get_boolean (config, "test-runner-config", "seat0-can-multi-session", NULL);
+
+ service_count--;
+ if (service_count == 0)
+diff --git a/tests/test-multi-seat-no-multi-session b/tests/test-multi-seat-no-multi-session
+deleted file mode 100755
+index 6ddd1034..00000000
+--- a/tests/test-multi-seat-no-multi-session
++++ /dev/null
+@@ -1,2 +0,0 @@
+-#!/bin/sh
+-./src/dbus-env ./src/test-runner multi-seat-no-multi-session test-gobject-greeter
^ permalink raw reply related [flat|nested] only message in thread
only message in thread, other threads:[~2026-08-16 12:40 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-08-16 12:40 [rpms/lightdm] f44: Update the multiseat patch now it's been merged Leigh Scott
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox