From fa22cb54d1b053b258e53a6623c777a8d9fbc28e Mon Sep 17 00:00:00 2001 From: Anton Golubev Date: Thu, 12 Mar 2026 16:55:52 +0300 Subject: [PATCH 1/3] Use artifact v4 --- .github/workflows/test.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index fbe32f18..c08f0302 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -40,7 +40,7 @@ jobs: - name: Upload Test Log if: failure() - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: Test Log ${{ matrix.image.name }} ${{ matrix.image.tag }} path: tests/test-suite.log From 39cc7db87d0b90cdb4ee2640389988a03cfaa879 Mon Sep 17 00:00:00 2001 From: Anton Golubev Date: Fri, 13 Mar 2026 12:57:44 +0000 Subject: [PATCH 2/3] Add CanTTY property to login1 test interface --- tests/src/test-runner.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/tests/src/test-runner.c b/tests/src/test-runner.c index bfda38ef..55056d6a 100644 --- a/tests/src/test-runner.c +++ b/tests/src/test-runner.c @@ -128,6 +128,7 @@ typedef struct gchar *path; gboolean can_graphical; gboolean can_multi_session; + gboolean can_tty; gchar *active_session; } Login1Seat; @@ -1555,6 +1556,8 @@ handle_login1_seat_get_property (GDBusConnection *connection, 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) return g_variant_new_string (seat->id); else if (strcmp (property_name, "ActiveSession") == 0) @@ -1580,6 +1583,7 @@ add_login1_seat (GDBusConnection *connection, const gchar *id, gboolean emit_sig 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; const gchar *login1_seat_interface = @@ -1587,6 +1591,7 @@ add_login1_seat (GDBusConnection *connection, const gchar *id, gboolean emit_sig " " " " " " + " " " " " " " " From f0b2440d7152627c8fdf1d59baf9f19989fa4f57 Mon Sep 17 00:00:00 2001 From: Anton Golubev Date: Fri, 13 Mar 2026 14:45:11 +0000 Subject: [PATCH 3/3] Determine Seat can_tty value without login1 --- src/lightdm.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/lightdm.c b/src/lightdm.c index 2821a1c9..d2e23dfc 100644 --- a/src/lightdm.c +++ b/src/lightdm.c @@ -26,6 +26,7 @@ #include "display-manager-service.h" #include "xdmcp-server.h" #include "vnc-server.h" +#include "vt.h" #include "seat-xdmcp-session.h" #include "seat-xvnc.h" #include "x-server.h" @@ -918,6 +919,10 @@ main (int argc, char **argv) { set_seat_properties (seat, NULL); seat_set_property (seat, "exit-on-failure", "true"); + + /* in the absence of login1 we find out this using our own heuristics */ + seat_set_can_tty (seat, vt_can_multi_seat ()); + if (!display_manager_add_seat (display_manager, seat)) return EXIT_FAILURE; }