]> rtime.felk.cvut.cz Git - sojka/lightdm.git/commitdiff
Don't check the logind CanGraphical seat property unless login-check-graphical option...
authorRobert Ancell <robert.ancell@canonical.com>
Wed, 10 Sep 2014 03:33:25 +0000 (15:33 +1200)
committerRobert Ancell <robert.ancell@canonical.com>
Wed, 10 Sep 2014 03:33:25 +0000 (15:33 +1200)
12 files changed:
data/lightdm.conf
src/lightdm.c
tests/Makefile.am
tests/scripts/multi-seat-change-graphical-disabled.conf [new file with mode: 0644]
tests/scripts/multi-seat-change-graphical.conf
tests/scripts/multi-seat-non-graphical-disabled.conf [new file with mode: 0644]
tests/scripts/multi-seat-non-graphical.conf
tests/scripts/multi-seat-seat0-non-graphical-disabled.conf [new file with mode: 0644]
tests/scripts/multi-seat-seat0-non-graphical.conf
tests/test-multi-seat-change-graphical-disabled [new file with mode: 0644]
tests/test-multi-seat-non-graphical-disabled [new file with mode: 0644]
tests/test-multi-seat-seat0-non-graphical-disabled [new file with mode: 0644]

index d85f06d6822d252beb60eb7d31704e834939dad1..bfce79872667dd8b7475f29ed6ef6995f1d39b1e 100644 (file)
@@ -8,6 +8,7 @@
 # lock-memory = True to prevent memory from being paged to disk
 # user-authority-in-system-dir = True if session authority should be in the system location
 # guest-account-script = Script to be run to setup guest account
+# logind-check-graphical = True to on start seats that are marked as graphical by logind
 # log-directory = Directory to log information to
 # run-directory = Directory to put running state in
 # cache-directory = Directory to cache to
@@ -23,6 +24,7 @@
 #lock-memory=true
 #user-authority-in-system-dir=false
 #guest-account-script=guest-account
+#logind-check-graphical=false
 #log-directory=/var/log/lightdm
 #run-directory=/var/run/lightdm
 #cache-directory=/var/cache/lightdm
index 870ff8102db785559291940ad9ddadec7c3661d3..a5c1e017cd6f4ca83d41d13f4614da107ad63ae3 100644 (file)
@@ -1025,7 +1025,8 @@ seat_stopped_cb (Seat *seat, Login1Seat *login1_seat)
 static gboolean
 update_login1_seat (Login1Seat *login1_seat)
 {
-    if (login1_seat_get_can_graphical (login1_seat))
+    if (!config_get_boolean (config_get_instance (), "LightDM", "logind-check-graphical") ||
+        login1_seat_get_can_graphical (login1_seat))
     {
         Seat *seat;
 
@@ -1062,7 +1063,8 @@ login1_service_seat_added_cb (Login1Service *service, Login1Seat *login1_seat)
     else
         g_debug ("Seat %s added from logind without graphical output", login1_seat_get_id (login1_seat));
 
-    g_signal_connect (login1_seat, "can-graphical-changed", G_CALLBACK (login1_can_graphical_changed_cb), NULL);
+    if (config_get_boolean (config_get_instance (), "LightDM", "logind-check-graphical"))
+        g_signal_connect (login1_seat, "can-graphical-changed", G_CALLBACK (login1_can_graphical_changed_cb), NULL);
     update_login1_seat (login1_seat);
 }
 
@@ -1418,7 +1420,8 @@ main (int argc, char **argv)
             for (link = login1_service_get_seats (login1_service_get_instance ()); link; link = link->next)
             {
                 Login1Seat *login1_seat = link->data;
-                g_signal_connect (login1_seat, "can-graphical-changed", G_CALLBACK (login1_can_graphical_changed_cb), NULL);
+                if (config_get_boolean (config_get_instance (), "LightDM", "logind-check-graphical"))
+                    g_signal_connect (login1_seat, "can-graphical-changed", G_CALLBACK (login1_can_graphical_changed_cb), NULL);
                 if (!update_login1_seat (login1_seat))
                     return EXIT_FAILURE;
             }
index 3e5dca298a7b4caf4207526a80691812b2e5863d..2e9150b6b146fe119857233a5ba06419f6d8cc1b 100644 (file)
@@ -182,8 +182,11 @@ TESTS = \
        test-xdmcp-server-open-file-descriptors \
        test-multi-seat \
        test-multi-seat-seat0-non-graphical \
+       test-multi-seat-seat0-non-graphical-disabled \
        test-multi-seat-non-graphical \
+       test-multi-seat-non-graphical-disabled \
        test-multi-seat-change-graphical \
+       test-multi-seat-change-graphical-disabled \
        test-mir-autologin \
        test-mir-greeter \
        test-mir-session \
@@ -448,8 +451,11 @@ EXTRA_DIST = \
        scripts/mir-session-crash.conf \
        scripts/multi-seat.conf \
        scripts/multi-seat-change-graphical.conf \
+       scripts/multi-seat-change-graphical-disabled.conf \
        scripts/multi-seat-non-graphical.conf \
+       scripts/multi-seat-non-graphical-disabled.conf \
        scripts/multi-seat-seat0-non-graphical.conf \
+       scripts/multi-seat-seat0-non-graphical-disabled.conf \
        scripts/no-accounts-service.conf \
        scripts/no-config.conf \
        scripts/no-console-kit.conf \
diff --git a/tests/scripts/multi-seat-change-graphical-disabled.conf b/tests/scripts/multi-seat-change-graphical-disabled.conf
new file mode 100644 (file)
index 0000000..2fdd9fc
--- /dev/null
@@ -0,0 +1,53 @@
+#
+# Check seat graphical status is ignored
+#
+
+#?*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
+
+# seat1 starts
+#?XSERVER-1 START SEAT=seat1 SHAREVTS=TRUE
+#?*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
+
+# Remove graphical status from seat
+#?*UPDATE-SEAT ID=seat1 CAN-GRAPHICAL=FALSE
+
+# Nothing happens
+#?*WAIT
+
+# Add graphical status back
+#?*UPDATE-SEAT ID=seat1 CAN-GRAPHICAL=TRUE
+
+# Nothing happens
+#?*WAIT
+
+# Cleanup
+#?*STOP-DAEMON
+#?GREETER-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
index 4b7841d2032b164335a20cd4a22f1f0cdb873d84..b818d4794a5d4304a97fa4963998255b8959ea44 100644 (file)
@@ -2,6 +2,9 @@
 # Check seat can change graphical status
 #
 
+[LightDM]
+logind-check-graphical=true
+
 #?*START-DAEMON
 #?RUNNER DAEMON-START
 
diff --git a/tests/scripts/multi-seat-non-graphical-disabled.conf b/tests/scripts/multi-seat-non-graphical-disabled.conf
new file mode 100644 (file)
index 0000000..2dea15f
--- /dev/null
@@ -0,0 +1,41 @@
+#
+# Check non graphical seats are started anyway
+#
+
+#?*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-GRAPHICAL=FALSE
+
+# seat1 starts
+#?XSERVER-1 START SEAT=seat1 SHAREVTS=TRUE
+#?*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
+
+# Cleanup
+#?*STOP-DAEMON
+#?GREETER-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
index b07533d1df057db5b6d887295f37bf1b4f7ce1fa..45f045b996a681070c74a8d2925cc5b9a7a7b01c 100644 (file)
@@ -2,6 +2,9 @@
 # Check non graphical seats are ignored
 #
 
+[LightDM]
+logind-check-graphical=true
+
 #?*START-DAEMON
 #?RUNNER DAEMON-START
 
diff --git a/tests/scripts/multi-seat-seat0-non-graphical-disabled.conf b/tests/scripts/multi-seat-seat0-non-graphical-disabled.conf
new file mode 100644 (file)
index 0000000..ddac615
--- /dev/null
@@ -0,0 +1,27 @@
+#
+# Check seat0 is started even if it is marked as non-graphical
+#
+
+[test-runner-config]
+seat0-can-graphical=false
+
+#?*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
+
+# Cleanup
+#?*STOP-DAEMON
+#?GREETER-X-0 TERMINATE SIGNAL=15
+#?XSERVER-0 TERMINATE SIGNAL=15
+#?RUNNER DAEMON-EXIT STATUS=0
index b3925956b00637981d510f552dd0fde236592ff1..f6c4233d33570703dff48f25624266d9d1a30d61 100644 (file)
@@ -2,6 +2,9 @@
 # Check seat0 is started only once it becomes graphical
 #
 
+[LightDM]
+logind-check-graphical=true
+
 [test-runner-config]
 seat0-can-graphical=false
 
diff --git a/tests/test-multi-seat-change-graphical-disabled b/tests/test-multi-seat-change-graphical-disabled
new file mode 100644 (file)
index 0000000..296b7f0
--- /dev/null
@@ -0,0 +1,2 @@
+#!/bin/sh
+./src/dbus-env ./src/test-runner multi-seat-change-graphical-disabled test-gobject-greeter
diff --git a/tests/test-multi-seat-non-graphical-disabled b/tests/test-multi-seat-non-graphical-disabled
new file mode 100644 (file)
index 0000000..43c8050
--- /dev/null
@@ -0,0 +1,2 @@
+#!/bin/sh
+./src/dbus-env ./src/test-runner multi-seat-non-graphical-disabled test-gobject-greeter
diff --git a/tests/test-multi-seat-seat0-non-graphical-disabled b/tests/test-multi-seat-seat0-non-graphical-disabled
new file mode 100644 (file)
index 0000000..071b09c
--- /dev/null
@@ -0,0 +1,2 @@
+#!/bin/sh
+./src/dbus-env ./src/test-runner multi-seat-seat0-non-graphical-disabled test-gobject-greeter