-Overview of changes in lightdm 1.6.0
+Overview of changes in lightdm 1.5.1
* QLightDM: Add Qt5 version of the library: liblightdm-qt5-2
* QLightDM: Add some missing role names in UsersModel
+ * QLightDM: Fix potential crash in QLightDM::UsersModel closedown.
+ * Improve guest session apparmor
+ * Run each test in its own /tmp dir so they can't interfere with eachother
Overview of changes in lightdm 1.5.0
dnl Process this file with autoconf to produce a configure script.
-AC_INIT(lightdm, 1.5.0)
+AC_INIT(lightdm, 1.5.1)
AC_CONFIG_MACRO_DIR(m4)
AC_CONFIG_HEADER(config.h)
AM_INIT_AUTOMAKE([1.11 no-dist-gzip dist-xz foreign])
#?RUNNER DAEMON-START
# X server starts
-#?XSERVER :50 START
-#?XSERVER :50 INDICATE-READY
+#?XSERVER-50 START
+#?XSERVER-50 INDICATE-READY
# LightDM connects to X server
-#?XSERVER :50 ACCEPT-CONNECT
+#?XSERVER-50 ACCEPT-CONNECT
# (guest account attempts to start and fails)
# Greeter starts
-#?GREETER :50 START
-#?XSERVER :50 ACCEPT-CONNECT
-#?GREETER :50 CONNECT-XSERVER
-#?GREETER :50 CONNECT-TO-DAEMON
-#?GREETER :50 CONNECTED-TO-DAEMON
+#?GREETER-X-50 START
+#?XSERVER-50 ACCEPT-CONNECT
+#?GREETER-X-50 CONNECT-XSERVER
+#?GREETER-X-50 CONNECT-TO-DAEMON
+#?GREETER-X-50 CONNECTED-TO-DAEMON
# Cleanup
#?*STOP-DAEMON
-# Don't know what order they will terminate
-#?(GREETER :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
-#?(GREETER :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
+#?GREETER-X-50 TERMINATE SIGNAL=15
+#?XSERVER-50 TERMINATE SIGNAL=15
#?RUNNER DAEMON-EXIT STATUS=0
#?RUNNER DAEMON-START
# X server starts
-#?XSERVER :50 START
-#?XSERVER :50 INDICATE-READY
+#?XSERVER-50 START
+#?XSERVER-50 INDICATE-READY
# LightDM connects to X server
-#?XSERVER :50 ACCEPT-CONNECT
+#?XSERVER-50 ACCEPT-CONNECT
# Guest account created
#?GUEST-ACCOUNT ADD USERNAME=guest-.*
# Guest session starts
-#?SESSION :50 START USER=guest-.*
-#?XSERVER :50 ACCEPT-CONNECT
-#?SESSION :50 CONNECT-XSERVER
+#?SESSION-X-50 START USER=guest-.*
+#?XSERVER-50 ACCEPT-CONNECT
+#?SESSION-X-50 CONNECT-XSERVER
# Logout of session
-#?*SESSION :50 LOGOUT
+#?*SESSION-X-50 LOGOUT
# X server stops
-#?XSERVER :50 TERMINATE SIGNAL=15
+#?XSERVER-50 TERMINATE SIGNAL=15
# Guest account removed
#?GUEST-ACCOUNT REMOVE USERNAME=guest-.*
# X server starts
-#?XSERVER :50 START
-#?XSERVER :50 INDICATE-READY
+#?XSERVER-50 START
+#?XSERVER-50 INDICATE-READY
# LightDM connects to X server
-#?XSERVER :50 ACCEPT-CONNECT
+#?XSERVER-50 ACCEPT-CONNECT
# Greeter starts
-#?GREETER :50 START
-#?XSERVER :50 ACCEPT-CONNECT
-#?GREETER :50 CONNECT-XSERVER
-#?GREETER :50 CONNECT-TO-DAEMON
-#?GREETER :50 CONNECTED-TO-DAEMON
+#?GREETER-X-50 START
+#?XSERVER-50 ACCEPT-CONNECT
+#?GREETER-X-50 CONNECT-XSERVER
+#?GREETER-X-50 CONNECT-TO-DAEMON
+#?GREETER-X-50 CONNECTED-TO-DAEMON
# Cleanup
#?*STOP-DAEMON
-# Don't know what order they will terminate
-#?(GREETER :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
-#?(GREETER :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
+#?GREETER-X-50 TERMINATE SIGNAL=15
+#?XSERVER-50 TERMINATE SIGNAL=15
#?RUNNER DAEMON-EXIT STATUS=0
#?RUNNER DAEMON-START
# X server starts
-#?XSERVER :50 START
-#?XSERVER :50 INDICATE-READY
+#?XSERVER-50 START
+#?XSERVER-50 INDICATE-READY
# LightDM connects to X server
-#?XSERVER :50 ACCEPT-CONNECT
+#?XSERVER-50 ACCEPT-CONNECT
# Greeter starts
-#?GREETER :50 START
-#?XSERVER :50 ACCEPT-CONNECT
-#?GREETER :50 CONNECT-XSERVER
-#?GREETER :50 CONNECT-TO-DAEMON
-#?GREETER :50 CONNECTED-TO-DAEMON
+#?GREETER-X-50 START
+#?XSERVER-50 ACCEPT-CONNECT
+#?GREETER-X-50 CONNECT-XSERVER
+#?GREETER-X-50 CONNECT-TO-DAEMON
+#?GREETER-X-50 CONNECTED-TO-DAEMON
# Autologin timer expires
-#?GREETER :50 AUTOLOGIN-TIMER-EXPIRED
+#?GREETER-X-50 AUTOLOGIN-TIMER-EXPIRED
# Trigger autologin
-#?*GREETER :50 AUTHENTICATE-AUTOLOGIN
-#?GREETER :50 AUTHENTICATION-COMPLETE AUTHENTICATED=TRUE
-#?*GREETER :50 START-SESSION
-#?GREETER :50 TERMINATE SIGNAL=15
+#?*GREETER-X-50 AUTHENTICATE-AUTOLOGIN
+#?GREETER-X-50 AUTHENTICATION-COMPLETE AUTHENTICATED=TRUE
+#?*GREETER-X-50 START-SESSION
+#?GREETER-X-50 TERMINATE SIGNAL=15
# Guest account created
#?GUEST-ACCOUNT ADD USERNAME=guest-.*
# Guest session starts
-#?SESSION :50 START USER=guest-.*
-#?XSERVER :50 ACCEPT-CONNECT
-#?SESSION :50 CONNECT-XSERVER
+#?SESSION-X-50 START USER=guest-.*
+#?XSERVER-50 ACCEPT-CONNECT
+#?SESSION-X-50 CONNECT-XSERVER
# Cleanup
#?*STOP-DAEMON
-# Don't know what order they will terminate
-#?(SESSION :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15|GUEST-ACCOUNT REMOVE USERNAME=guest-.*)
-#?(SESSION :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15|GUEST-ACCOUNT REMOVE USERNAME=guest-.*)
-#?(SESSION :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15|GUEST-ACCOUNT REMOVE USERNAME=guest-.*)
+#?SESSION-X-50 TERMINATE SIGNAL=15
+#?XSERVER-50 TERMINATE SIGNAL=15
+#?GUEST-ACCOUNT REMOVE USERNAME=guest-.*
#?RUNNER DAEMON-EXIT STATUS=0
#?RUNNER DAEMON-START
# X server starts
-#?XSERVER :50 START
-#?XSERVER :50 INDICATE-READY
+#?XSERVER-50 START
+#?XSERVER-50 INDICATE-READY
# LightDM connects to X server
-#?XSERVER :50 ACCEPT-CONNECT
+#?XSERVER-50 ACCEPT-CONNECT
# Guest account created
#?GUEST-ACCOUNT ADD USERNAME=guest-.*
# Guest session starts
-#?SESSION :50 START USER=guest-.*
-#?XSERVER :50 ACCEPT-CONNECT
-#?SESSION :50 CONNECT-XSERVER
+#?SESSION-X-50 START USER=guest-.*
+#?XSERVER-50 ACCEPT-CONNECT
+#?SESSION-X-50 CONNECT-XSERVER
# Cleanup
#?*STOP-DAEMON
-# Don't know what order they will terminate
-#?(SESSION :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15|GUEST-ACCOUNT REMOVE USERNAME=guest-.*)
-#?(SESSION :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15|GUEST-ACCOUNT REMOVE USERNAME=guest-.*)
-#?(SESSION :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15|GUEST-ACCOUNT REMOVE USERNAME=guest-.*)
+#?SESSION-X-50 TERMINATE SIGNAL=15
+#?XSERVER-50 TERMINATE SIGNAL=15
+#?GUEST-ACCOUNT REMOVE USERNAME=guest.*
#?RUNNER DAEMON-EXIT STATUS=0
#?RUNNER DAEMON-START
# X server starts
-#?XSERVER :50 START
-#?XSERVER :50 INDICATE-READY
+#?XSERVER-50 START
+#?XSERVER-50 INDICATE-READY
# LightDM connects to X server
-#?XSERVER :50 ACCEPT-CONNECT
+#?XSERVER-50 ACCEPT-CONNECT
# (session fails to start)
# Greeter starts
-#?GREETER :50 START
-#?XSERVER :50 ACCEPT-CONNECT
-#?GREETER :50 CONNECT-XSERVER
-#?GREETER :50 CONNECT-TO-DAEMON
-#?GREETER :50 CONNECTED-TO-DAEMON
+#?GREETER-X-50 START
+#?XSERVER-50 ACCEPT-CONNECT
+#?GREETER-X-50 CONNECT-XSERVER
+#?GREETER-X-50 CONNECT-TO-DAEMON
+#?GREETER-X-50 CONNECTED-TO-DAEMON
# Cleanup
#?*STOP-DAEMON
-# Don't know what order they will terminate
-#?(GREETER :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
-#?(GREETER :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
+#?GREETER-X-50 TERMINATE SIGNAL=15
+#?XSERVER-50 TERMINATE SIGNAL=15
#?RUNNER DAEMON-EXIT STATUS=0
#?RUNNER DAEMON-START
# X server starts
-#?XSERVER :50 START
-#?XSERVER :50 INDICATE-READY
+#?XSERVER-50 START
+#?XSERVER-50 INDICATE-READY
# LightDM connects to X server
-#?XSERVER :50 ACCEPT-CONNECT
+#?XSERVER-50 ACCEPT-CONNECT
# (fails to start session for invalid user)
# Greeter starts
-#?GREETER :50 START
-#?XSERVER :50 ACCEPT-CONNECT
-#?GREETER :50 CONNECT-XSERVER
-#?GREETER :50 CONNECT-TO-DAEMON
-#?GREETER :50 CONNECTED-TO-DAEMON
+#?GREETER-X-50 START
+#?XSERVER-50 ACCEPT-CONNECT
+#?GREETER-X-50 CONNECT-XSERVER
+#?GREETER-X-50 CONNECT-TO-DAEMON
+#?GREETER-X-50 CONNECTED-TO-DAEMON
# Cleanup
#?*STOP-DAEMON
-# Don't know what order they will terminate
-#?(GREETER :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
-#?(GREETER :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
+#?GREETER-X-50 TERMINATE SIGNAL=15
+#?XSERVER-50 TERMINATE SIGNAL=15
#?RUNNER DAEMON-EXIT STATUS=0
#?RUNNER DAEMON-START
# X server starts
-#?XSERVER :50 START
-#?XSERVER :50 INDICATE-READY
+#?XSERVER-50 START
+#?XSERVER-50 INDICATE-READY
# LightDM connects to X server
-#?XSERVER :50 ACCEPT-CONNECT
+#?XSERVER-50 ACCEPT-CONNECT
# Autologin session starts
-#?SESSION :50 START USER=have-password1
-#?XSERVER :50 ACCEPT-CONNECT
-#?SESSION :50 CONNECT-XSERVER
+#?SESSION-X-50 START USER=have-password1
+#?XSERVER-50 ACCEPT-CONNECT
+#?SESSION-X-50 CONNECT-XSERVER
# Logout session
-#?*SESSION :50 LOGOUT
+#?*SESSION-X-50 LOGOUT
# X server stops
-#?XSERVER :50 TERMINATE SIGNAL=15
+#?XSERVER-50 TERMINATE SIGNAL=15
# X server starts
-#?XSERVER :50 START
-#?XSERVER :50 INDICATE-READY
+#?XSERVER-50 START
+#?XSERVER-50 INDICATE-READY
# LightDM connects to X server
-#?XSERVER :50 ACCEPT-CONNECT
+#?XSERVER-50 ACCEPT-CONNECT
# Greeter starts
-#?GREETER :50 START
-#?XSERVER :50 ACCEPT-CONNECT
-#?GREETER :50 CONNECT-XSERVER
-#?GREETER :50 CONNECT-TO-DAEMON
-#?GREETER :50 CONNECTED-TO-DAEMON
+#?GREETER-X-50 START
+#?XSERVER-50 ACCEPT-CONNECT
+#?GREETER-X-50 CONNECT-XSERVER
+#?GREETER-X-50 CONNECT-TO-DAEMON
+#?GREETER-X-50 CONNECTED-TO-DAEMON
# Wait in case the greeter tries to log in immediately
#?*WAIT
# Cleanup
#?*STOP-DAEMON
-# Don't know what order they will terminate
-#?(GREETER :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
-#?(GREETER :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
+#?GREETER-X-50 TERMINATE SIGNAL=15
+#?XSERVER-50 TERMINATE SIGNAL=15
#?RUNNER DAEMON-EXIT STATUS=0
#?RUNNER DAEMON-START
# X server starts
-#?XSERVER :50 START
-#?XSERVER :50 INDICATE-READY
+#?XSERVER-50 START
+#?XSERVER-50 INDICATE-READY
# LightDM connects to X server
-#?XSERVER :50 ACCEPT-CONNECT
+#?XSERVER-50 ACCEPT-CONNECT
# (Session fails)
# Greeter starts
-#?GREETER :50 START
-#?XSERVER :50 ACCEPT-CONNECT
-#?GREETER :50 CONNECT-XSERVER
-#?GREETER :50 CONNECT-TO-DAEMON
-#?GREETER :50 CONNECTED-TO-DAEMON
+#?GREETER-X-50 START
+#?XSERVER-50 ACCEPT-CONNECT
+#?GREETER-X-50 CONNECT-XSERVER
+#?GREETER-X-50 CONNECT-TO-DAEMON
+#?GREETER-X-50 CONNECTED-TO-DAEMON
# Cleanup
#?*STOP-DAEMON
-# Don't know what order they will terminate
-#?(GREETER :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
-#?(GREETER :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
+#?GREETER-X-50 TERMINATE SIGNAL=15
+#?XSERVER-50 TERMINATE SIGNAL=15
#?RUNNER DAEMON-EXIT STATUS=0
#?RUNNER DAEMON-START
# X server starts
-#?XSERVER :50 START
-#?XSERVER :50 INDICATE-READY
+#?XSERVER-50 START
+#?XSERVER-50 INDICATE-READY
# LightDM connects to X server
-#?XSERVER :50 ACCEPT-CONNECT
+#?XSERVER-50 ACCEPT-CONNECT
# (Session fails)
# Greeter starts
-#?GREETER :50 START
-#?XSERVER :50 ACCEPT-CONNECT
-#?GREETER :50 CONNECT-XSERVER
-#?GREETER :50 CONNECT-TO-DAEMON
-#?GREETER :50 CONNECTED-TO-DAEMON
+#?GREETER-X-50 START
+#?XSERVER-50 ACCEPT-CONNECT
+#?GREETER-X-50 CONNECT-XSERVER
+#?GREETER-X-50 CONNECT-TO-DAEMON
+#?GREETER-X-50 CONNECTED-TO-DAEMON
# Cleanup
#?*STOP-DAEMON
-# Don't know what order they will terminate
-#?(GREETER :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
-#?(GREETER :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
+#?GREETER-X-50 TERMINATE SIGNAL=15
+#?XSERVER-50 TERMINATE SIGNAL=15
#?RUNNER DAEMON-EXIT STATUS=0
#?RUNNER DAEMON-START
# X server starts
-#?XSERVER :50 START
-#?XSERVER :50 INDICATE-READY
+#?XSERVER-50 START
+#?XSERVER-50 INDICATE-READY
# LightDM connects to X server
-#?XSERVER :50 ACCEPT-CONNECT
+#?XSERVER-50 ACCEPT-CONNECT
# Session starts
-#?SESSION :50 START NAME=alternative USER=have-session
-#?XSERVER :50 ACCEPT-CONNECT
-#?SESSION :50 CONNECT-XSERVER
+#?SESSION-X-50 START NAME=alternative USER=have-session
+#?XSERVER-50 ACCEPT-CONNECT
+#?SESSION-X-50 CONNECT-XSERVER
# Cleanup
#?*STOP-DAEMON
-# Don't know what order they will terminate
-#?(SESSION :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
-#?(SESSION :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
+#?SESSION-X-50 TERMINATE SIGNAL=15
+#?XSERVER-50 TERMINATE SIGNAL=15
#?RUNNER DAEMON-EXIT STATUS=0
#?RUNNER DAEMON-START
# X server starts
-#?XSERVER :50 START
-#?XSERVER :50 INDICATE-READY
+#?XSERVER-50 START
+#?XSERVER-50 INDICATE-READY
# LightDM connects to X server
-#?XSERVER :50 ACCEPT-CONNECT
+#?XSERVER-50 ACCEPT-CONNECT
# Session starts
-#?SESSION :50 START USER=have-password1
-#?XSERVER :50 ACCEPT-CONNECT
-#?SESSION :50 CONNECT-XSERVER
+#?SESSION-X-50 START USER=have-password1
+#?XSERVER-50 ACCEPT-CONNECT
+#?SESSION-X-50 CONNECT-XSERVER
# Crash session
-#?*SESSION :50 CRASH
+#?*SESSION-X-50 CRASH
# X server stops
-#?XSERVER :50 TERMINATE SIGNAL=15
+#?XSERVER-50 TERMINATE SIGNAL=15
# X server starts
-#?XSERVER :50 START
-#?XSERVER :50 INDICATE-READY
+#?XSERVER-50 START
+#?XSERVER-50 INDICATE-READY
# LightDM connects to X server
-#?XSERVER :50 ACCEPT-CONNECT
+#?XSERVER-50 ACCEPT-CONNECT
# Greeter starts
-#?GREETER :50 START
-#?XSERVER :50 ACCEPT-CONNECT
-#?GREETER :50 CONNECT-XSERVER
-#?GREETER :50 CONNECT-TO-DAEMON
-#?GREETER :50 CONNECTED-TO-DAEMON
+#?GREETER-X-50 START
+#?XSERVER-50 ACCEPT-CONNECT
+#?GREETER-X-50 CONNECT-XSERVER
+#?GREETER-X-50 CONNECT-TO-DAEMON
+#?GREETER-X-50 CONNECTED-TO-DAEMON
# Cleanup
#?*STOP-DAEMON
-# Don't know what order they will terminate
-#?(GREETER :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
-#?(GREETER :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
+#?GREETER-X-50 TERMINATE SIGNAL=15
+#?XSERVER-50 TERMINATE SIGNAL=15
#?RUNNER DAEMON-EXIT STATUS=0
#?RUNNER DAEMON-START
# X server starts
-#?XSERVER :50 START
-#?XSERVER :50 INDICATE-READY
+#?XSERVER-50 START
+#?XSERVER-50 INDICATE-READY
# LightDM connects to X server
-#?XSERVER :50 ACCEPT-CONNECT
+#?XSERVER-50 ACCEPT-CONNECT
# (Session fails)
# X server stops
-#?XSERVER :50 TERMINATE SIGNAL=15
+#?XSERVER-50 TERMINATE SIGNAL=15
# X server starts
-#?XSERVER :50 START
-#?XSERVER :50 INDICATE-READY
+#?XSERVER-50 START
+#?XSERVER-50 INDICATE-READY
# LightDM connects to X server
-#?XSERVER :50 ACCEPT-CONNECT
+#?XSERVER-50 ACCEPT-CONNECT
# Greeter starts
-#?GREETER :50 START
-#?XSERVER :50 ACCEPT-CONNECT
-#?GREETER :50 CONNECT-XSERVER
-#?GREETER :50 CONNECT-TO-DAEMON
-#?GREETER :50 CONNECTED-TO-DAEMON
+#?GREETER-X-50 START
+#?XSERVER-50 ACCEPT-CONNECT
+#?GREETER-X-50 CONNECT-XSERVER
+#?GREETER-X-50 CONNECT-TO-DAEMON
+#?GREETER-X-50 CONNECTED-TO-DAEMON
# Cleanup
#?*STOP-DAEMON
-# Don't know what order they will terminate
-#?(GREETER :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
-#?(GREETER :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
+#?GREETER-X-50 TERMINATE SIGNAL=15
+#?XSERVER-50 TERMINATE SIGNAL=15
#?RUNNER DAEMON-EXIT STATUS=0
#?RUNNER DAEMON-START
# X server starts
-#?XSERVER :50 START
-#?XSERVER :50 INDICATE-READY
+#?XSERVER-50 START
+#?XSERVER-50 INDICATE-READY
# LightDM connects to X server
-#?XSERVER :50 ACCEPT-CONNECT
+#?XSERVER-50 ACCEPT-CONNECT
# Greeter starts
-#?GREETER :50 START
-#?XSERVER :50 ACCEPT-CONNECT
-#?GREETER :50 CONNECT-XSERVER
-#?GREETER :50 CONNECT-TO-DAEMON
-#?GREETER :50 CONNECTED-TO-DAEMON
+#?GREETER-X-50 START
+#?XSERVER-50 ACCEPT-CONNECT
+#?GREETER-X-50 CONNECT-XSERVER
+#?GREETER-X-50 CONNECT-TO-DAEMON
+#?GREETER-X-50 CONNECTED-TO-DAEMON
# Autologin timer expires
-#?GREETER :50 AUTOLOGIN-TIMER-EXPIRED
+#?GREETER-X-50 AUTOLOGIN-TIMER-EXPIRED
# Trigger autologin
-#?*GREETER :50 AUTHENTICATE-AUTOLOGIN
-#?GREETER :50 AUTHENTICATION-COMPLETE USERNAME=have-password1 AUTHENTICATED=TRUE
-#?*GREETER :50 START-SESSION
-#?GREETER :50 TERMINATE SIGNAL=15
+#?*GREETER-X-50 AUTHENTICATE-AUTOLOGIN
+#?GREETER-X-50 AUTHENTICATION-COMPLETE USERNAME=have-password1 AUTHENTICATED=TRUE
+#?*GREETER-X-50 START-SESSION
+#?GREETER-X-50 TERMINATE SIGNAL=15
# Session starts
-#?SESSION :50 START USER=have-password1
-#?XSERVER :50 ACCEPT-CONNECT
-#?SESSION :50 CONNECT-XSERVER
+#?SESSION-X-50 START USER=have-password1
+#?XSERVER-50 ACCEPT-CONNECT
+#?SESSION-X-50 CONNECT-XSERVER
# Cleanup
#?*STOP-DAEMON
-# Don't know what order they will terminate
-#?(SESSION :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
-#?(SESSION :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
+#?SESSION-X-50 TERMINATE SIGNAL=15
+#?XSERVER-50 TERMINATE SIGNAL=15
#?RUNNER DAEMON-EXIT STATUS=0
#?RUNNER DAEMON-START
# XServer starts
-#?XSERVER :50 START
-#?XSERVER :50 INDICATE-READY
+#?XSERVER-50 START
+#?XSERVER-50 INDICATE-READY
# LightDM connects to X server
-#?XSERVER :50 ACCEPT-CONNECT
+#?XSERVER-50 ACCEPT-CONNECT
# Session starts
-#?SESSION :50 START USER=have-password1
-#?XSERVER :50 ACCEPT-CONNECT
-#?SESSION :50 CONNECT-XSERVER
+#?SESSION-X-50 START USER=have-password1
+#?XSERVER-50 ACCEPT-CONNECT
+#?SESSION-X-50 CONNECT-XSERVER
# Crash X server
-#?*XSERVER :50 CRASH
+#?*XSERVER-50 CRASH
# User session is terminated
-#?SESSION :50 TERMINATE SIGNAL=15
+#?SESSION-X-50 TERMINATE SIGNAL=15
# X server restarts
-#?XSERVER :50 START
-#?XSERVER :50 INDICATE-READY
-#?XSERVER :50 ACCEPT-CONNECT
+#?XSERVER-50 START
+#?XSERVER-50 INDICATE-READY
+#?XSERVER-50 ACCEPT-CONNECT
# Greeter starts
-#?GREETER :50 START
-#?XSERVER :50 ACCEPT-CONNECT
-#?GREETER :50 CONNECT-XSERVER
-#?GREETER :50 CONNECT-TO-DAEMON
-#?GREETER :50 CONNECTED-TO-DAEMON
+#?GREETER-X-50 START
+#?XSERVER-50 ACCEPT-CONNECT
+#?GREETER-X-50 CONNECT-XSERVER
+#?GREETER-X-50 CONNECT-TO-DAEMON
+#?GREETER-X-50 CONNECTED-TO-DAEMON
#?*STOP-DAEMON
-# Don't know what order they will terminate
-#?(GREETER :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
-#?(GREETER :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
+#?GREETER-X-50 TERMINATE SIGNAL=15
+#?XSERVER-50 TERMINATE SIGNAL=15
#?RUNNER DAEMON-EXIT STATUS=0
#?RUNNER DAEMON-START
# X server starts
-#?XSERVER :50 START
-#?XSERVER :50 INDICATE-READY
+#?XSERVER-50 START
+#?XSERVER-50 INDICATE-READY
# LightDM connects to X server
-#?XSERVER :50 ACCEPT-CONNECT
+#?XSERVER-50 ACCEPT-CONNECT
# Session starts
-#?SESSION :50 START USER=have-password1
-#?XSERVER :50 ACCEPT-CONNECT
-#?SESSION :50 CONNECT-XSERVER
+#?SESSION-X-50 START USER=have-password1
+#?XSERVER-50 ACCEPT-CONNECT
+#?SESSION-X-50 CONNECT-XSERVER
# Cleanup
#?*STOP-DAEMON
-# Don't know what order they will terminate
-#?(SESSION :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
-#?(SESSION :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
+#?SESSION-X-50 TERMINATE SIGNAL=15
+#?XSERVER-50 TERMINATE SIGNAL=15
#?RUNNER DAEMON-EXIT STATUS=0
#?RUNNER DAEMON-START
# X server starts
-#?XSERVER :50 START
-#?XSERVER :50 INDICATE-READY
+#?XSERVER-50 START
+#?XSERVER-50 INDICATE-READY
# LightDM connects to X server
-#?XSERVER :50 ACCEPT-CONNECT
+#?XSERVER-50 ACCEPT-CONNECT
# Greeter starts
-#?GREETER :50 START
-#?XSERVER :50 ACCEPT-CONNECT
-#?GREETER :50 CONNECT-XSERVER
-#?GREETER :50 CONNECT-TO-DAEMON
-#?GREETER :50 CONNECTED-TO-DAEMON
+#?GREETER-X-50 START
+#?XSERVER-50 ACCEPT-CONNECT
+#?GREETER-X-50 CONNECT-XSERVER
+#?GREETER-X-50 CONNECT-TO-DAEMON
+#?GREETER-X-50 CONNECTED-TO-DAEMON
# Start authentication
-#?*GREETER :50 AUTHENTICATE USERNAME=have-password1
-#?GREETER :50 SHOW-PROMPT TEXT="Password:"
+#?*GREETER-X-50 AUTHENTICATE USERNAME=have-password1
+#?GREETER-X-50 SHOW-PROMPT TEXT="Password:"
# Change user authentication
-#?*GREETER :50 AUTHENTICATE USERNAME=have-password2
-#?GREETER :50 SHOW-PROMPT TEXT="Password:"
+#?*GREETER-X-50 AUTHENTICATE USERNAME=have-password2
+#?GREETER-X-50 SHOW-PROMPT TEXT="Password:"
# Cleanup
#?*STOP-DAEMON
-# Don't know what order they will terminate
-#?(GREETER :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
-#?(GREETER :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
+#?GREETER-X-50 TERMINATE SIGNAL=15
+#?XSERVER-50 TERMINATE SIGNAL=15
#?RUNNER DAEMON-EXIT STATUS=0
#?RUNNER DAEMON-START
# X server starts
-#?XSERVER :50 START
-#?XSERVER :50 INDICATE-READY
+#?XSERVER-50 START
+#?XSERVER-50 INDICATE-READY
# LightDM connects to X server
-#?XSERVER :50 ACCEPT-CONNECT
+#?XSERVER-50 ACCEPT-CONNECT
# Session starts
-#?SESSION :50 START USER=have-password1
-#?XSERVER :50 ACCEPT-CONNECT
-#?SESSION :50 CONNECT-XSERVER
+#?SESSION-X-50 START USER=have-password1
+#?XSERVER-50 ACCEPT-CONNECT
+#?SESSION-X-50 CONNECT-XSERVER
# Check environment variable
-#?*SESSION :50 READ-ENV NAME=XDG_SESSION_COOKIE
-#?SESSION :50 READ-ENV NAME=XDG_SESSION_COOKIE VALUE=ck-cookie-x:50
+#?*SESSION-X-50 READ-ENV NAME=XDG_SESSION_COOKIE
+#?SESSION-X-50 READ-ENV NAME=XDG_SESSION_COOKIE VALUE=ck-cookie-x:50
# Cleanup
#?*STOP-DAEMON
-# Don't know what order they will terminate
-#?(SESSION :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
-#?(SESSION :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
+#?SESSION-X-50 TERMINATE SIGNAL=15
+#?XSERVER-50 TERMINATE SIGNAL=15
#?RUNNER DAEMON-EXIT STATUS=0
#?RUNNER DAEMON-START
# X server starts
-#?XSERVER :50 START
-#?XSERVER :50 INDICATE-READY
+#?XSERVER-50 START
+#?XSERVER-50 INDICATE-READY
# LightDM connects to X server
-#?XSERVER :50 ACCEPT-CONNECT
+#?XSERVER-50 ACCEPT-CONNECT
# (authentication crashes)
# Greeter starts
-#?GREETER :50 START
-#?XSERVER :50 ACCEPT-CONNECT
-#?GREETER :50 CONNECT-XSERVER
-#?GREETER :50 CONNECT-TO-DAEMON
-#?GREETER :50 CONNECTED-TO-DAEMON
+#?GREETER-X-50 START
+#?XSERVER-50 ACCEPT-CONNECT
+#?GREETER-X-50 CONNECT-XSERVER
+#?GREETER-X-50 CONNECT-TO-DAEMON
+#?GREETER-X-50 CONNECTED-TO-DAEMON
# Cleanup
#?*STOP-DAEMON
-# Don't know what order they will terminate
-#?(GREETER :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
-#?(GREETER :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
+#?GREETER-X-50 TERMINATE SIGNAL=15
+#?XSERVER-50 TERMINATE SIGNAL=15
#?RUNNER DAEMON-EXIT STATUS=0
#?RUNNER DAEMON-START
# X server starts
-#?XSERVER :50 START
-#?XSERVER :50 INDICATE-READY
+#?XSERVER-50 START
+#?XSERVER-50 INDICATE-READY
# LightDM connects to X server
-#?XSERVER :50 ACCEPT-CONNECT
+#?XSERVER-50 ACCEPT-CONNECT
# (Session fails)
# X server stops
-#?XSERVER :50 TERMINATE SIGNAL=15
+#?XSERVER-50 TERMINATE SIGNAL=15
# X server starts
-#?XSERVER :50 START
-#?XSERVER :50 INDICATE-READY
+#?XSERVER-50 START
+#?XSERVER-50 INDICATE-READY
# LightDM connects to X server
-#?XSERVER :50 ACCEPT-CONNECT
+#?XSERVER-50 ACCEPT-CONNECT
# Greeter starts
-#?GREETER :50 START
-#?XSERVER :50 ACCEPT-CONNECT
-#?GREETER :50 CONNECT-XSERVER
-#?GREETER :50 CONNECT-TO-DAEMON
-#?GREETER :50 CONNECTED-TO-DAEMON
+#?GREETER-X-50 START
+#?XSERVER-50 ACCEPT-CONNECT
+#?GREETER-X-50 CONNECT-XSERVER
+#?GREETER-X-50 CONNECT-TO-DAEMON
+#?GREETER-X-50 CONNECTED-TO-DAEMON
# Cleanup
#?*STOP-DAEMON
-# Don't know what order they will terminate
-#?(GREETER :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
-#?(GREETER :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
+#?GREETER-X-50 TERMINATE SIGNAL=15
+#?XSERVER-50 TERMINATE SIGNAL=15
#?RUNNER DAEMON-EXIT STATUS=0
#?RUNNER DAEMON-START
# X server starts
-#?XSERVER :50 START
-#?XSERVER :50 INDICATE-READY
+#?XSERVER-50 START
+#?XSERVER-50 INDICATE-READY
# LightDM connects to X server
-#?XSERVER :50 ACCEPT-CONNECT
+#?XSERVER-50 ACCEPT-CONNECT
# (Session fails)
# X server stops
-#?XSERVER :50 TERMINATE SIGNAL=15
+#?XSERVER-50 TERMINATE SIGNAL=15
# X server starts
-#?XSERVER :50 START
-#?XSERVER :50 INDICATE-READY
+#?XSERVER-50 START
+#?XSERVER-50 INDICATE-READY
# LightDM connects to X server
-#?XSERVER :50 ACCEPT-CONNECT
+#?XSERVER-50 ACCEPT-CONNECT
# Greeter starts
-#?GREETER :50 START
-#?XSERVER :50 ACCEPT-CONNECT
-#?GREETER :50 CONNECT-XSERVER
-#?GREETER :50 CONNECT-TO-DAEMON
-#?GREETER :50 CONNECTED-TO-DAEMON
+#?GREETER-X-50 START
+#?XSERVER-50 ACCEPT-CONNECT
+#?GREETER-X-50 CONNECT-XSERVER
+#?GREETER-X-50 CONNECT-TO-DAEMON
+#?GREETER-X-50 CONNECTED-TO-DAEMON
# Cleanup
#?*STOP-DAEMON
-# Don't know what order they will terminate
-#?(GREETER :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
-#?(GREETER :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
+#?GREETER-X-50 TERMINATE SIGNAL=15
+#?XSERVER-50 TERMINATE SIGNAL=15
#?RUNNER DAEMON-EXIT STATUS=0
#?RUNNER DAEMON-START
# X server starts
-#?XSERVER :50 START
-#?XSERVER :50 INDICATE-READY
+#?XSERVER-50 START
+#?XSERVER-50 INDICATE-READY
# LightDM connects to X server
-#?XSERVER :50 ACCEPT-CONNECT
+#?XSERVER-50 ACCEPT-CONNECT
# (Session fails)
# X server stops
-#?XSERVER :50 TERMINATE SIGNAL=15
+#?XSERVER-50 TERMINATE SIGNAL=15
# X server starts
-#?XSERVER :50 START
-#?XSERVER :50 INDICATE-READY
+#?XSERVER-50 START
+#?XSERVER-50 INDICATE-READY
# LightDM connects to X server
-#?XSERVER :50 ACCEPT-CONNECT
+#?XSERVER-50 ACCEPT-CONNECT
# Greeter starts
-#?GREETER :50 START
-#?XSERVER :50 ACCEPT-CONNECT
-#?GREETER :50 CONNECT-XSERVER
-#?GREETER :50 CONNECT-TO-DAEMON
-#?GREETER :50 CONNECTED-TO-DAEMON
+#?GREETER-X-50 START
+#?XSERVER-50 ACCEPT-CONNECT
+#?GREETER-X-50 CONNECT-XSERVER
+#?GREETER-X-50 CONNECT-TO-DAEMON
+#?GREETER-X-50 CONNECTED-TO-DAEMON
# Cleanup
#?*STOP-DAEMON
-# Don't know what order they will terminate
-#?(GREETER :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
-#?(GREETER :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
+#?GREETER-X-50 TERMINATE SIGNAL=15
+#?XSERVER-50 TERMINATE SIGNAL=15
#?RUNNER DAEMON-EXIT STATUS=0
#?RUNNER DAEMON-START
# X server starts
-#?XSERVER :50 START
-#?XSERVER :50 INDICATE-READY
+#?XSERVER-50 START
+#?XSERVER-50 INDICATE-READY
# LightDM connects to X server
-#?XSERVER :50 ACCEPT-CONNECT
+#?XSERVER-50 ACCEPT-CONNECT
# Greeter starts
-#?GREETER :50 START
-#?XSERVER :50 ACCEPT-CONNECT
-#?GREETER :50 CONNECT-XSERVER
-#?GREETER :50 CONNECT-TO-DAEMON
-#?GREETER :50 CONNECTED-TO-DAEMON
+#?GREETER-X-50 START
+#?XSERVER-50 ACCEPT-CONNECT
+#?GREETER-X-50 CONNECT-XSERVER
+#?GREETER-X-50 CONNECT-TO-DAEMON
+#?GREETER-X-50 CONNECTED-TO-DAEMON
# Correct layout is found
-#?*GREETER :50 LOG-LAYOUT
-#?XSERVER :50 ACCEPT-CONNECT
-#?GREETER :50 LOG-LAYOUT LAYOUT='ara azerty'
+#?*GREETER-X-50 LOG-LAYOUT
+#?XSERVER-50 ACCEPT-CONNECT
+#?GREETER-X-50 LOG-LAYOUT LAYOUT='ara azerty'
# Cleanup
#?*STOP-DAEMON
-# Don't know what order they will terminate
-#?(GREETER :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
-#?(GREETER :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
+#?GREETER-X-50 TERMINATE SIGNAL=15
+#?XSERVER-50 TERMINATE SIGNAL=15
#?RUNNER DAEMON-EXIT STATUS=0
#?RUNNER DAEMON-START
# X server starts
-#?XSERVER :50 START
-#?XSERVER :50 INDICATE-READY
+#?XSERVER-50 START
+#?XSERVER-50 INDICATE-READY
# LightDM connects to X server
-#?XSERVER :50 ACCEPT-CONNECT
+#?XSERVER-50 ACCEPT-CONNECT
# (Session fails)
# Greeter starts
-#?GREETER :50 START
-#?XSERVER :50 ACCEPT-CONNECT
-#?GREETER :50 CONNECT-XSERVER
-#?GREETER :50 CONNECT-TO-DAEMON
-#?GREETER :50 CONNECTED-TO-DAEMON
+#?GREETER-X-50 START
+#?XSERVER-50 ACCEPT-CONNECT
+#?GREETER-X-50 CONNECT-XSERVER
+#?GREETER-X-50 CONNECT-TO-DAEMON
+#?GREETER-X-50 CONNECTED-TO-DAEMON
# Cleanup
#?*STOP-DAEMON
-# Don't know what order they will terminate
-#?(GREETER :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
-#?(GREETER :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
+#?GREETER-X-50 TERMINATE SIGNAL=15
+#?XSERVER-50 TERMINATE SIGNAL=15
#?RUNNER DAEMON-EXIT STATUS=0
#?RUNNER DAEMON-START
# X server starts
-#?XSERVER :50 START
-#?XSERVER :50 INDICATE-READY
+#?XSERVER-50 START
+#?XSERVER-50 INDICATE-READY
# LightDM connects to X server
-#?XSERVER :50 ACCEPT-CONNECT
+#?XSERVER-50 ACCEPT-CONNECT
# (Session fails)
# Greeter starts
-#?GREETER :50 START
-#?XSERVER :50 ACCEPT-CONNECT
-#?GREETER :50 CONNECT-XSERVER
-#?GREETER :50 CONNECT-TO-DAEMON
-#?GREETER :50 CONNECTED-TO-DAEMON
+#?GREETER-X-50 START
+#?XSERVER-50 ACCEPT-CONNECT
+#?GREETER-X-50 CONNECT-XSERVER
+#?GREETER-X-50 CONNECT-TO-DAEMON
+#?GREETER-X-50 CONNECTED-TO-DAEMON
# Cleanup
#?*STOP-DAEMON
-# Don't know what order they will terminate
-#?(GREETER :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
-#?(GREETER :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
+#?GREETER-X-50 TERMINATE SIGNAL=15
+#?XSERVER-50 TERMINATE SIGNAL=15
#?RUNNER DAEMON-EXIT STATUS=0
#?RUNNER DAEMON-START
# X server starts
-#?XSERVER :50 START
-#?XSERVER :50 INDICATE-READY
+#?XSERVER-50 START
+#?XSERVER-50 INDICATE-READY
# LightDM connects to X server
-#?XSERVER :50 ACCEPT-CONNECT
+#?XSERVER-50 ACCEPT-CONNECT
# Greeter fails to start
-#?GREETER :50 START
-#?GREETER :50 EXIT CODE=1
+#?GREETER-X-50 START
+#?GREETER-X-50 EXIT CODE=1
# X server stopped
-#?XSERVER :50 TERMINATE SIGNAL=15
+#?XSERVER-50 TERMINATE SIGNAL=15
# Daemon stops with error
#?RUNNER DAEMON-EXIT STATUS=1
#?RUNNER DAEMON-START
# X server starts
-#?XSERVER :50 START
-#?XSERVER :50 INDICATE-READY
+#?XSERVER-50 START
+#?XSERVER-50 INDICATE-READY
# LightDM connects to X server
-#?XSERVER :50 ACCEPT-CONNECT
+#?XSERVER-50 ACCEPT-CONNECT
# Invalid greeter attempted, fails to start
# X server stopped
-#?XSERVER :50 TERMINATE SIGNAL=15
+#?XSERVER-50 TERMINATE SIGNAL=15
# Daemon stops with error
#?RUNNER DAEMON-EXIT STATUS=1
#?RUNNER DAEMON-START
# X server starts
-#?XSERVER :50 START
-#?XSERVER :50 INDICATE-READY
+#?XSERVER-50 START
+#?XSERVER-50 INDICATE-READY
# LightDM connects to X server
-#?XSERVER :50 ACCEPT-CONNECT
+#?XSERVER-50 ACCEPT-CONNECT
# Greeter starts
-#?GREETER :50 START
-#?XSERVER :50 ACCEPT-CONNECT
-#?GREETER :50 CONNECT-XSERVER
-#?GREETER :50 CONNECT-TO-DAEMON
-#?GREETER :50 CONNECTED-TO-DAEMON
+#?GREETER-X-50 START
+#?XSERVER-50 ACCEPT-CONNECT
+#?GREETER-X-50 CONNECT-XSERVER
+#?GREETER-X-50 CONNECT-TO-DAEMON
+#?GREETER-X-50 CONNECTED-TO-DAEMON
# Crash X server
-#?*XSERVER :50 CRASH
+#?*XSERVER-50 CRASH
# Greeter quits
-#?GREETER :50 TERMINATE SIGNAL=15
+#?GREETER-X-50 TERMINATE SIGNAL=15
# X server restarts
-#?XSERVER :50 START
-#?XSERVER :50 INDICATE-READY
+#?XSERVER-50 START
+#?XSERVER-50 INDICATE-READY
# LightDM connects to X server
-#?XSERVER :50 ACCEPT-CONNECT
+#?XSERVER-50 ACCEPT-CONNECT
# Greeter starts
-#?GREETER :50 START
-#?XSERVER :50 ACCEPT-CONNECT
-#?GREETER :50 CONNECT-XSERVER
-#?GREETER :50 CONNECT-TO-DAEMON
-#?GREETER :50 CONNECTED-TO-DAEMON
+#?GREETER-X-50 START
+#?XSERVER-50 ACCEPT-CONNECT
+#?GREETER-X-50 CONNECT-XSERVER
+#?GREETER-X-50 CONNECT-TO-DAEMON
+#?GREETER-X-50 CONNECTED-TO-DAEMON
# Cleanup
#?*STOP-DAEMON
-# Don't know what order they will terminate
-#?(GREETER :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
-#?(GREETER :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
+#?GREETER-X-50 TERMINATE SIGNAL=15
+#?XSERVER-50 TERMINATE SIGNAL=15
#?RUNNER DAEMON-EXIT STATUS=0
#?RUNNER DAEMON-START
# X server starts
-#?XSERVER :50 START
-#?XSERVER :50 INDICATE-READY
+#?XSERVER-50 START
+#?XSERVER-50 INDICATE-READY
# LightDM connects to X server
-#?XSERVER :50 ACCEPT-CONNECT
+#?XSERVER-50 ACCEPT-CONNECT
# Session starts
-#?SESSION :50 START USER=group-member
-#?XSERVER :50 ACCEPT-CONNECT
-#?SESSION :50 CONNECT-XSERVER
+#?SESSION-X-50 START USER=group-member
+#?XSERVER-50 ACCEPT-CONNECT
+#?SESSION-X-50 CONNECT-XSERVER
# Check we belong to the group for our user and the special group set by PAM
-#?*SESSION :50 LIST-GROUPS
-#?SESSION :50 LIST-GROUPS GROUPS=group-member,test-group
+#?*SESSION-X-50 LIST-GROUPS
+#?SESSION-X-50 LIST-GROUPS GROUPS=group-member,test-group
# Cleanup
#?*STOP-DAEMON
-# Don't know what order they will terminate
-#?(SESSION :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
-#?(SESSION :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
+#?SESSION-X-50 TERMINATE SIGNAL=15
+#?XSERVER-50 TERMINATE SIGNAL=15
#?RUNNER DAEMON-EXIT STATUS=0
#?RUNNER DAEMON-START
# X server starts
-#?XSERVER :50 START
-#?XSERVER :50 INDICATE-READY
+#?XSERVER-50 START
+#?XSERVER-50 INDICATE-READY
# LightDM connects to X server
-#?XSERVER :50 ACCEPT-CONNECT
+#?XSERVER-50 ACCEPT-CONNECT
# Session starts
-#?SESSION :50 START USER=mount-home-dir
-#?XSERVER :50 ACCEPT-CONNECT
-#?SESSION :50 CONNECT-XSERVER
+#?SESSION-X-50 START USER=mount-home-dir
+#?XSERVER-50 ACCEPT-CONNECT
+#?SESSION-X-50 CONNECT-XSERVER
# Cleanup
#?*STOP-DAEMON
-# Don't know what order they will terminate
-#?(SESSION :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
-#?(SESSION :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
+#?SESSION-X-50 TERMINATE SIGNAL=15
+#?XSERVER-50 TERMINATE SIGNAL=15
#?RUNNER DAEMON-EXIT STATUS=0
#?RUNNER DAEMON-START
# X server starts
-#?XSERVER :50 START
-#?XSERVER :50 INDICATE-READY
+#?XSERVER-50 START
+#?XSERVER-50 INDICATE-READY
# LightDM connects to X server
-#?XSERVER :50 ACCEPT-CONNECT
+#?XSERVER-50 ACCEPT-CONNECT
# Session starts
-#?SESSION :50 START USER=make-home-dir
-#?XSERVER :50 ACCEPT-CONNECT
-#?SESSION :50 CONNECT-XSERVER
+#?SESSION-X-50 START USER=make-home-dir
+#?XSERVER-50 ACCEPT-CONNECT
+#?SESSION-X-50 CONNECT-XSERVER
# Cleanup
#?*STOP-DAEMON
-# Don't know what order they will terminate
-#?(SESSION :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
-#?(SESSION :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
+#?SESSION-X-50 TERMINATE SIGNAL=15
+#?XSERVER-50 TERMINATE SIGNAL=15
#?RUNNER DAEMON-EXIT STATUS=0
#?RUNNER DAEMON-START
# X server starts
-#?XSERVER :50 START
-#?XSERVER :50 INDICATE-READY
+#?XSERVER-50 START
+#?XSERVER-50 INDICATE-READY
# LightDM connects to X server
-#?XSERVER :50 ACCEPT-CONNECT
+#?XSERVER-50 ACCEPT-CONNECT
# Greeter starts
-#?GREETER :50 START
-#?XSERVER :50 ACCEPT-CONNECT
-#?GREETER :50 CONNECT-XSERVER
-#?GREETER :50 CONNECT-TO-DAEMON
-#?GREETER :50 CONNECTED-TO-DAEMON
+#?GREETER-X-50 START
+#?XSERVER-50 ACCEPT-CONNECT
+#?GREETER-X-50 CONNECT-XSERVER
+#?GREETER-X-50 CONNECT-TO-DAEMON
+#?GREETER-X-50 CONNECTED-TO-DAEMON
# Correct layout is found
-#?*GREETER :50 LOG-LAYOUT USERNAME=have-layout
-#?GREETER :50 LOG-LAYOUT USERNAME=have-layout LAYOUT='us'
-#?*GREETER :50 LOG-LAYOUT USERNAME=have-layouts
-#?GREETER :50 LOG-LAYOUT USERNAME=have-layouts LAYOUT='fr oss'
-#?*GREETER :50 LOG-LAYOUTS USERNAME=have-layouts
-#?GREETER :50 LOG-LAYOUTS USERNAME=have-layouts LAYOUT='fr oss'
-#?GREETER :50 LOG-LAYOUTS USERNAME=have-layouts LAYOUT='ru'
+#?*GREETER-X-50 LOG-LAYOUT USERNAME=have-layout
+#?GREETER-X-50 LOG-LAYOUT USERNAME=have-layout LAYOUT='us'
+#?*GREETER-X-50 LOG-LAYOUT USERNAME=have-layouts
+#?GREETER-X-50 LOG-LAYOUT USERNAME=have-layouts LAYOUT='fr oss'
+#?*GREETER-X-50 LOG-LAYOUTS USERNAME=have-layouts
+#?GREETER-X-50 LOG-LAYOUTS USERNAME=have-layouts LAYOUT='fr oss'
+#?GREETER-X-50 LOG-LAYOUTS USERNAME=have-layouts LAYOUT='ru'
# Cleanup
#?*STOP-DAEMON
-# Don't know what order they will terminate
-#?(GREETER :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
-#?(GREETER :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
+#?GREETER-X-50 TERMINATE SIGNAL=15
+#?XSERVER-50 TERMINATE SIGNAL=15
#?RUNNER DAEMON-EXIT STATUS=0
#?RUNNER DAEMON-START
# X server starts
-#?XSERVER :50 START
-#?XSERVER :50 INDICATE-READY
+#?XSERVER-50 START
+#?XSERVER-50 INDICATE-READY
# LightDM connects to X server
-#?XSERVER :50 ACCEPT-CONNECT
+#?XSERVER-50 ACCEPT-CONNECT
# Greeter starts
-#?GREETER :50 START
-#?XSERVER :50 ACCEPT-CONNECT
-#?GREETER :50 CONNECT-XSERVER
-#?GREETER :50 CONNECT-TO-DAEMON
-#?GREETER :50 CONNECTED-TO-DAEMON
+#?GREETER-X-50 START
+#?XSERVER-50 ACCEPT-CONNECT
+#?GREETER-X-50 CONNECT-XSERVER
+#?GREETER-X-50 CONNECT-TO-DAEMON
+#?GREETER-X-50 CONNECTED-TO-DAEMON
# Correct layouts are found
-#?*GREETER :50 LOG-VARIANTS LAYOUT=fr
-#?XSERVER :50 ACCEPT-CONNECT
-#?GREETER :50 LOG-VARIANTS LAYOUT='fr'
-#?GREETER :50 LOG-VARIANTS LAYOUT='fr nodeadkeys'
-#?GREETER :50 LOG-VARIANTS LAYOUT='fr sundeadkeys'
-#?GREETER :50 LOG-VARIANTS LAYOUT='fr oss'
-#?GREETER :50 LOG-VARIANTS LAYOUT='fr oss_latin9'
-#?GREETER :50 LOG-VARIANTS LAYOUT='fr oss_nodeadkeys'
-#?GREETER :50 LOG-VARIANTS LAYOUT='fr oss_sundeadkeys'
-#?GREETER :50 LOG-VARIANTS LAYOUT='fr latin9'
-#?GREETER :50 LOG-VARIANTS LAYOUT='fr latin9_nodeadkeys'
-#?GREETER :50 LOG-VARIANTS LAYOUT='fr latin9_sundeadkeys'
-#?GREETER :50 LOG-VARIANTS LAYOUT='fr bepo'
-#?GREETER :50 LOG-VARIANTS LAYOUT='fr bepo_latin9'
-#?GREETER :50 LOG-VARIANTS LAYOUT='fr dvorak'
-#?GREETER :50 LOG-VARIANTS LAYOUT='fr mac'
-#?GREETER :50 LOG-VARIANTS LAYOUT='fr bre'
-#?GREETER :50 LOG-VARIANTS LAYOUT='fr oci'
-#?GREETER :50 LOG-VARIANTS LAYOUT='fr geo'
+#?*GREETER-X-50 LOG-VARIANTS LAYOUT=fr
+#?XSERVER-50 ACCEPT-CONNECT
+#?GREETER-X-50 LOG-VARIANTS LAYOUT='fr'
+#?GREETER-X-50 LOG-VARIANTS LAYOUT='fr nodeadkeys'
+#?GREETER-X-50 LOG-VARIANTS LAYOUT='fr sundeadkeys'
+#?GREETER-X-50 LOG-VARIANTS LAYOUT='fr oss'
+#?GREETER-X-50 LOG-VARIANTS LAYOUT='fr oss_latin9'
+#?GREETER-X-50 LOG-VARIANTS LAYOUT='fr oss_nodeadkeys'
+#?GREETER-X-50 LOG-VARIANTS LAYOUT='fr oss_sundeadkeys'
+#?GREETER-X-50 LOG-VARIANTS LAYOUT='fr latin9'
+#?GREETER-X-50 LOG-VARIANTS LAYOUT='fr latin9_nodeadkeys'
+#?GREETER-X-50 LOG-VARIANTS LAYOUT='fr latin9_sundeadkeys'
+#?GREETER-X-50 LOG-VARIANTS LAYOUT='fr bepo'
+#?GREETER-X-50 LOG-VARIANTS LAYOUT='fr bepo_latin9'
+#?GREETER-X-50 LOG-VARIANTS LAYOUT='fr dvorak'
+#?GREETER-X-50 LOG-VARIANTS LAYOUT='fr mac'
+#?GREETER-X-50 LOG-VARIANTS LAYOUT='fr bre'
+#?GREETER-X-50 LOG-VARIANTS LAYOUT='fr oci'
+#?GREETER-X-50 LOG-VARIANTS LAYOUT='fr geo'
# Cleanup
#?*STOP-DAEMON
-# Don't know what order they will terminate
-#?(GREETER :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
-#?(GREETER :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
+#?GREETER-X-50 TERMINATE SIGNAL=15
+#?XSERVER-50 TERMINATE SIGNAL=15
#?RUNNER DAEMON-EXIT STATUS=0
#?RUNNER DAEMON-START
# X server starts
-#?XSERVER :50 START
-#?XSERVER :50 INDICATE-READY
+#?XSERVER-50 START
+#?XSERVER-50 INDICATE-READY
# LightDM connects to X server
-#?XSERVER :50 ACCEPT-CONNECT
+#?XSERVER-50 ACCEPT-CONNECT
# Greeter starts
-#?GREETER :50 START
-#?XSERVER :50 ACCEPT-CONNECT
-#?GREETER :50 CONNECT-XSERVER
-#?GREETER :50 CONNECT-TO-DAEMON
-#?GREETER :50 CONNECTED-TO-DAEMON
+#?GREETER-X-50 START
+#?XSERVER-50 ACCEPT-CONNECT
+#?GREETER-X-50 CONNECT-XSERVER
+#?GREETER-X-50 CONNECT-TO-DAEMON
+#?GREETER-X-50 CONNECTED-TO-DAEMON
# Correct layout is found
-#?*GREETER :50 LOG-LANGUAGE USERNAME=have-language
-#?GREETER :50 LOG-LANGUAGE USERNAME=have-language LANGUAGE=en_AU
+#?*GREETER-X-50 LOG-LANGUAGE USERNAME=have-language
+#?GREETER-X-50 LOG-LANGUAGE USERNAME=have-language LANGUAGE=en_AU
# Cleanup
#?*STOP-DAEMON
-# Don't know what order they will terminate
-#?(GREETER :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
-#?(GREETER :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
+#?GREETER-X-50 TERMINATE SIGNAL=15
+#?XSERVER-50 TERMINATE SIGNAL=15
#?RUNNER DAEMON-EXIT STATUS=0
#?RUNNER DAEMON-START
# X server starts
-#?XSERVER :50 START
-#?XSERVER :50 INDICATE-READY
+#?XSERVER-50 START
+#?XSERVER-50 INDICATE-READY
# LightDM connects to X server
-#?XSERVER :50 ACCEPT-CONNECT
+#?XSERVER-50 ACCEPT-CONNECT
# Greeter starts
-#?GREETER :50 START
-#?XSERVER :50 ACCEPT-CONNECT
-#?GREETER :50 CONNECT-XSERVER
-#?GREETER :50 CONNECT-TO-DAEMON
-#?GREETER :50 CONNECTED-TO-DAEMON
+#?GREETER-X-50 START
+#?XSERVER-50 ACCEPT-CONNECT
+#?GREETER-X-50 CONNECT-XSERVER
+#?GREETER-X-50 CONNECT-TO-DAEMON
+#?GREETER-X-50 CONNECTED-TO-DAEMON
# Correct layout is found
-#?*GREETER :50 LOG-LANGUAGE USERNAME=have-language
-#?GREETER :50 LOG-LANGUAGE USERNAME=have-language LANGUAGE=en_AU
+#?*GREETER-X-50 LOG-LANGUAGE USERNAME=have-language
+#?GREETER-X-50 LOG-LANGUAGE USERNAME=have-language LANGUAGE=en_AU
# Cleanup
#?*STOP-DAEMON
-# Don't know what order they will terminate
-#?(GREETER :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
-#?(GREETER :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
+#?GREETER-X-50 TERMINATE SIGNAL=15
+#?XSERVER-50 TERMINATE SIGNAL=15
#?RUNNER DAEMON-EXIT STATUS=0
#?RUNNER DAEMON-START
# X server starts
-#?XSERVER :50 START
-#?XSERVER :50 INDICATE-READY
+#?XSERVER-50 START
+#?XSERVER-50 INDICATE-READY
# LightDM connects to X server
-#?XSERVER :50 ACCEPT-CONNECT
+#?XSERVER-50 ACCEPT-CONNECT
# Greeter starts
-#?GREETER :50 START
-#?XSERVER :50 ACCEPT-CONNECT
-#?GREETER :50 CONNECT-XSERVER
-#?GREETER :50 CONNECT-TO-DAEMON
-#?GREETER :50 CONNECTED-TO-DAEMON
+#?GREETER-X-50 START
+#?XSERVER-50 ACCEPT-CONNECT
+#?GREETER-X-50 CONNECT-XSERVER
+#?GREETER-X-50 CONNECT-TO-DAEMON
+#?GREETER-X-50 CONNECTED-TO-DAEMON
# Login
-#?*GREETER :50 AUTHENTICATE USERNAME=have-password1
-#?GREETER :50 SHOW-PROMPT TEXT="Password:"
-#?*GREETER :50 RESPOND TEXT="password"
-#?GREETER :50 AUTHENTICATION-COMPLETE USERNAME=have-password1 AUTHENTICATED=TRUE
-#?*GREETER :50 START-SESSION
-#?GREETER :50 TERMINATE SIGNAL=15
+#?*GREETER-X-50 AUTHENTICATE USERNAME=have-password1
+#?GREETER-X-50 SHOW-PROMPT TEXT="Password:"
+#?*GREETER-X-50 RESPOND TEXT="password"
+#?GREETER-X-50 AUTHENTICATION-COMPLETE USERNAME=have-password1 AUTHENTICATED=TRUE
+#?*GREETER-X-50 START-SESSION
+#?GREETER-X-50 TERMINATE SIGNAL=15
# Session starts
-#?SESSION :50 START USER=have-password1
-#?XSERVER :50 ACCEPT-CONNECT
-#?SESSION :50 CONNECT-XSERVER
+#?SESSION-X-50 START USER=have-password1
+#?XSERVER-50 ACCEPT-CONNECT
+#?SESSION-X-50 CONNECT-XSERVER
# Lock the seat
-#?*SESSION :50 LOCK-SEAT
-#?SESSION :50 LOCK-SEAT
+#?*SESSION-X-50 LOCK-SEAT
+#?SESSION-X-50 LOCK-SEAT
# New X server starts
-#?XSERVER :51 START
-#?XSERVER :51 INDICATE-READY
+#?XSERVER-51 START
+#?XSERVER-51 INDICATE-READY
# LightDM connects to X server
-#?XSERVER :51 ACCEPT-CONNECT
+#?XSERVER-51 ACCEPT-CONNECT
# Greeter starts
-#?GREETER :51 START
-#?XSERVER :51 ACCEPT-CONNECT
-#?GREETER :51 CONNECT-XSERVER
-#?GREETER :51 CONNECT-TO-DAEMON
-#?GREETER :51 CONNECTED-TO-DAEMON
-#?GREETER :51 LOCK-HINT
+#?GREETER-X-51 START
+#?XSERVER-51 ACCEPT-CONNECT
+#?GREETER-X-51 CONNECT-XSERVER
+#?GREETER-X-51 CONNECT-TO-DAEMON
+#?GREETER-X-51 CONNECTED-TO-DAEMON
+#?GREETER-X-51 LOCK-HINT
# Cleanup
#?*STOP-DAEMON
-# Don't know what order they will terminate
-#?(SESSION :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15|GREETER :51 TERMINATE SIGNAL=15|XSERVER :51 TERMINATE SIGNAL=15)
-#?(SESSION :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15|GREETER :51 TERMINATE SIGNAL=15|XSERVER :51 TERMINATE SIGNAL=15)
-#?(SESSION :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15|GREETER :51 TERMINATE SIGNAL=15|XSERVER :51 TERMINATE SIGNAL=15)
-#?(SESSION :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15|GREETER :51 TERMINATE SIGNAL=15|XSERVER :51 TERMINATE SIGNAL=15)
+#?SESSION-X-50 TERMINATE SIGNAL=15
+#?XSERVER-50 TERMINATE SIGNAL=15
+#?GREETER-X-51 TERMINATE SIGNAL=15
+#?XSERVER-51 TERMINATE SIGNAL=15
#?RUNNER DAEMON-EXIT STATUS=0
#?RUNNER DAEMON-START
# X server starts
-#?XSERVER :50 START
-#?XSERVER :50 INDICATE-READY
+#?XSERVER-50 START
+#?XSERVER-50 INDICATE-READY
# LightDM connects to X server
-#?XSERVER :50 ACCEPT-CONNECT
+#?XSERVER-50 ACCEPT-CONNECT
# Greeter starts
-#?GREETER :50 START
-#?XSERVER :50 ACCEPT-CONNECT
-#?GREETER :50 CONNECT-XSERVER
-#?GREETER :50 CONNECT-TO-DAEMON
-#?GREETER :50 CONNECTED-TO-DAEMON
+#?GREETER-X-50 START
+#?XSERVER-50 ACCEPT-CONNECT
+#?GREETER-X-50 CONNECT-XSERVER
+#?GREETER-X-50 CONNECT-TO-DAEMON
+#?GREETER-X-50 CONNECTED-TO-DAEMON
# Login
-#?*GREETER :50 AUTHENTICATE USERNAME=have-password1
-#?GREETER :50 SHOW-PROMPT TEXT="Password:"
-#?*GREETER :50 RESPOND TEXT="password"
-#?GREETER :50 AUTHENTICATION-COMPLETE USERNAME=have-password1 AUTHENTICATED=TRUE
-#?*GREETER :50 START-SESSION
-#?GREETER :50 TERMINATE SIGNAL=15
+#?*GREETER-X-50 AUTHENTICATE USERNAME=have-password1
+#?GREETER-X-50 SHOW-PROMPT TEXT="Password:"
+#?*GREETER-X-50 RESPOND TEXT="password"
+#?GREETER-X-50 AUTHENTICATION-COMPLETE USERNAME=have-password1 AUTHENTICATED=TRUE
+#?*GREETER-X-50 START-SESSION
+#?GREETER-X-50 TERMINATE SIGNAL=15
# Session starts
-#?SESSION :50 START USER=have-password1
-#?XSERVER :50 ACCEPT-CONNECT
-#?SESSION :50 CONNECT-XSERVER
+#?SESSION-X-50 START USER=have-password1
+#?XSERVER-50 ACCEPT-CONNECT
+#?SESSION-X-50 CONNECT-XSERVER
# Lock the session
-#?*SESSION :50 LOCK-SESSION
-#?SESSION :50 LOCK-SESSION
+#?*SESSION-X-50 LOCK-SESSION
+#?SESSION-X-50 LOCK-SESSION
# New X server starts
-#?XSERVER :51 START
-#?XSERVER :51 INDICATE-READY
+#?XSERVER-51 START
+#?XSERVER-51 INDICATE-READY
# LightDM connects to X server
-#?XSERVER :51 ACCEPT-CONNECT
+#?XSERVER-51 ACCEPT-CONNECT
# Greeter starts with session user selected
-#?GREETER :51 START
-#?XSERVER :51 ACCEPT-CONNECT
-#?GREETER :51 CONNECT-XSERVER
-#?GREETER :51 CONNECT-TO-DAEMON
-#?GREETER :51 CONNECTED-TO-DAEMON
-#?GREETER :51 SELECT-USER-HINT USERNAME=have-password1
-#?GREETER :51 LOCK-HINT
+#?GREETER-X-51 START
+#?XSERVER-51 ACCEPT-CONNECT
+#?GREETER-X-51 CONNECT-XSERVER
+#?GREETER-X-51 CONNECT-TO-DAEMON
+#?GREETER-X-51 CONNECTED-TO-DAEMON
+#?GREETER-X-51 SELECT-USER-HINT USERNAME=have-password1
+#?GREETER-X-51 LOCK-HINT
# Cleanup
#?*STOP-DAEMON
-# Don't know what order they will terminate
-#?(SESSION :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15|GREETER :51 TERMINATE SIGNAL=15|XSERVER :51 TERMINATE SIGNAL=15)
-#?(SESSION :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15|GREETER :51 TERMINATE SIGNAL=15|XSERVER :51 TERMINATE SIGNAL=15)
-#?(SESSION :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15|GREETER :51 TERMINATE SIGNAL=15|XSERVER :51 TERMINATE SIGNAL=15)
-#?(SESSION :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15|GREETER :51 TERMINATE SIGNAL=15|XSERVER :51 TERMINATE SIGNAL=15)
+#?SESSION-X-50 TERMINATE SIGNAL=15
+#?XSERVER-50 TERMINATE SIGNAL=15
+#?GREETER-X-51 TERMINATE SIGNAL=15
+#?XSERVER-51 TERMINATE SIGNAL=15
#?RUNNER DAEMON-EXIT STATUS=0
#?RUNNER DAEMON-START
# X server starts
-#?XSERVER :50 START
-#?XSERVER :50 INDICATE-READY
+#?XSERVER-50 START
+#?XSERVER-50 INDICATE-READY
# LightDM connects to X server
-#?XSERVER :50 ACCEPT-CONNECT
+#?XSERVER-50 ACCEPT-CONNECT
# Greeter starts
-#?GREETER :50 START
-#?XSERVER :50 ACCEPT-CONNECT
-#?GREETER :50 CONNECT-XSERVER
-#?GREETER :50 CONNECT-TO-DAEMON
-#?GREETER :50 CONNECTED-TO-DAEMON
+#?GREETER-X-50 START
+#?XSERVER-50 ACCEPT-CONNECT
+#?GREETER-X-50 CONNECT-XSERVER
+#?GREETER-X-50 CONNECT-TO-DAEMON
+#?GREETER-X-50 CONNECTED-TO-DAEMON
# Attempt to login, but authentication crashes
-#?*GREETER :50 AUTHENTICATE USERNAME=crash-authenticate
-#?GREETER :50 AUTHENTICATION-COMPLETE USERNAME=crash-authenticate AUTHENTICATED=FALSE
+#?*GREETER-X-50 AUTHENTICATE USERNAME=crash-authenticate
+#?GREETER-X-50 AUTHENTICATION-COMPLETE USERNAME=crash-authenticate AUTHENTICATED=FALSE
# Cleanup
#?*STOP-DAEMON
-# Don't know what order they will terminate
-#?(GREETER :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
-#?(GREETER :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
+#?GREETER-X-50 TERMINATE SIGNAL=15
+#?XSERVER-50 TERMINATE SIGNAL=15
#?RUNNER DAEMON-EXIT STATUS=0
#?RUNNER DAEMON-START
# X server starts
-#?XSERVER :50 START
-#?XSERVER :50 INDICATE-READY
+#?XSERVER-50 START
+#?XSERVER-50 INDICATE-READY
# LightDM connects to X server
-#?XSERVER :50 ACCEPT-CONNECT
+#?XSERVER-50 ACCEPT-CONNECT
# Greeter starts
-#?GREETER :50 START
-#?XSERVER :50 ACCEPT-CONNECT
-#?GREETER :50 CONNECT-XSERVER
-#?GREETER :50 CONNECT-TO-DAEMON
-#?GREETER :50 CONNECTED-TO-DAEMON
+#?GREETER-X-50 START
+#?XSERVER-50 ACCEPT-CONNECT
+#?GREETER-X-50 CONNECT-XSERVER
+#?GREETER-X-50 CONNECT-TO-DAEMON
+#?GREETER-X-50 CONNECTED-TO-DAEMON
# Login as guest
-#?*GREETER :50 AUTHENTICATE-GUEST
-#?GREETER :50 AUTHENTICATION-COMPLETE AUTHENTICATED=FALSE
+#?*GREETER-X-50 AUTHENTICATE-GUEST
+#?GREETER-X-50 AUTHENTICATION-COMPLETE AUTHENTICATED=FALSE
# Cleanup
#?*STOP-DAEMON
-# Don't know what order they will terminate
-#?(GREETER :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
-#?(GREETER :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
+#?GREETER-X-50 TERMINATE SIGNAL=15
+#?XSERVER-50 TERMINATE SIGNAL=15
#?RUNNER DAEMON-EXIT STATUS=0
#?RUNNER DAEMON-START
# X server starts
-#?XSERVER :50 START
-#?XSERVER :50 INDICATE-READY
+#?XSERVER-50 START
+#?XSERVER-50 INDICATE-READY
# LightDM connects to X server
-#?XSERVER :50 ACCEPT-CONNECT
+#?XSERVER-50 ACCEPT-CONNECT
# Greeter starts
-#?GREETER :50 START
-#?XSERVER :50 ACCEPT-CONNECT
-#?GREETER :50 CONNECT-XSERVER
-#?GREETER :50 CONNECT-TO-DAEMON
-#?GREETER :50 CONNECTED-TO-DAEMON
+#?GREETER-X-50 START
+#?XSERVER-50 ACCEPT-CONNECT
+#?GREETER-X-50 CONNECT-XSERVER
+#?GREETER-X-50 CONNECT-TO-DAEMON
+#?GREETER-X-50 CONNECTED-TO-DAEMON
# Login as guest
-#?*GREETER :50 AUTHENTICATE-GUEST
-#?GREETER :50 AUTHENTICATION-COMPLETE AUTHENTICATED=TRUE
-#?*GREETER :50 START-SESSION
-#?GREETER :50 TERMINATE SIGNAL=15
+#?*GREETER-X-50 AUTHENTICATE-GUEST
+#?GREETER-X-50 AUTHENTICATION-COMPLETE AUTHENTICATED=TRUE
+#?*GREETER-X-50 START-SESSION
+#?GREETER-X-50 TERMINATE SIGNAL=15
# (guest account attempts to start and fails)
# X server stops
-#?XSERVER :50 TERMINATE SIGNAL=15
+#?XSERVER-50 TERMINATE SIGNAL=15
# X server starts
-#?XSERVER :50 START
-#?XSERVER :50 INDICATE-READY
+#?XSERVER-50 START
+#?XSERVER-50 INDICATE-READY
# LightDM connects to X server
-#?XSERVER :50 ACCEPT-CONNECT
+#?XSERVER-50 ACCEPT-CONNECT
# Greeter starts
-#?GREETER :50 START
-#?XSERVER :50 ACCEPT-CONNECT
-#?GREETER :50 CONNECT-XSERVER
-#?GREETER :50 CONNECT-TO-DAEMON
-#?GREETER :50 CONNECTED-TO-DAEMON
+#?GREETER-X-50 START
+#?XSERVER-50 ACCEPT-CONNECT
+#?GREETER-X-50 CONNECT-XSERVER
+#?GREETER-X-50 CONNECT-TO-DAEMON
+#?GREETER-X-50 CONNECTED-TO-DAEMON
# Cleanup
#?*STOP-DAEMON
-# Don't know what order they will terminate
-#?(GREETER :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
-#?(GREETER :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
+#?GREETER-X-50 TERMINATE SIGNAL=15
+#?XSERVER-50 TERMINATE SIGNAL=15
#?RUNNER DAEMON-EXIT STATUS=0
#?RUNNER DAEMON-START
# X server starts
-#?XSERVER :50 START
-#?XSERVER :50 INDICATE-READY
+#?XSERVER-50 START
+#?XSERVER-50 INDICATE-READY
# LightDM connects to X server
-#?XSERVER :50 ACCEPT-CONNECT
+#?XSERVER-50 ACCEPT-CONNECT
# Greeter starts
-#?GREETER :50 START
-#?XSERVER :50 ACCEPT-CONNECT
-#?GREETER :50 CONNECT-XSERVER
-#?GREETER :50 CONNECT-TO-DAEMON
-#?GREETER :50 CONNECTED-TO-DAEMON
+#?GREETER-X-50 START
+#?XSERVER-50 ACCEPT-CONNECT
+#?GREETER-X-50 CONNECT-XSERVER
+#?GREETER-X-50 CONNECT-TO-DAEMON
+#?GREETER-X-50 CONNECTED-TO-DAEMON
# Log in
-#?*GREETER :50 AUTHENTICATE-GUEST
-#?GREETER :50 AUTHENTICATION-COMPLETE AUTHENTICATED=TRUE
-#?*GREETER :50 START-SESSION
-#?GREETER :50 TERMINATE SIGNAL=15
+#?*GREETER-X-50 AUTHENTICATE-GUEST
+#?GREETER-X-50 AUTHENTICATION-COMPLETE AUTHENTICATED=TRUE
+#?*GREETER-X-50 START-SESSION
+#?GREETER-X-50 TERMINATE SIGNAL=15
# Guest account created
#?GUEST-ACCOUNT ADD USERNAME=guest-.*
# Guest session starts
-#?SESSION :50 START USER=guest-.*
-#?XSERVER :50 ACCEPT-CONNECT
-#?SESSION :50 CONNECT-XSERVER
+#?SESSION-X-50 START USER=guest-.*
+#?XSERVER-50 ACCEPT-CONNECT
+#?SESSION-X-50 CONNECT-XSERVER
# Logout of session
-#?*SESSION :50 LOGOUT
+#?*SESSION-X-50 LOGOUT
# X server stops
-#?XSERVER :50 TERMINATE SIGNAL=15
+#?XSERVER-50 TERMINATE SIGNAL=15
# Guest account removed
#?GUEST-ACCOUNT REMOVE USERNAME=guest-.*
# X server starts
-#?XSERVER :50 START
-#?XSERVER :50 INDICATE-READY
+#?XSERVER-50 START
+#?XSERVER-50 INDICATE-READY
# LightDM connects to X server
-#?XSERVER :50 ACCEPT-CONNECT
+#?XSERVER-50 ACCEPT-CONNECT
# Greeter starts
-#?GREETER :50 START
-#?XSERVER :50 ACCEPT-CONNECT
-#?GREETER :50 CONNECT-XSERVER
-#?GREETER :50 CONNECT-TO-DAEMON
-#?GREETER :50 CONNECTED-TO-DAEMON
+#?GREETER-X-50 START
+#?XSERVER-50 ACCEPT-CONNECT
+#?GREETER-X-50 CONNECT-XSERVER
+#?GREETER-X-50 CONNECT-TO-DAEMON
+#?GREETER-X-50 CONNECTED-TO-DAEMON
# Cleanup
#?*STOP-DAEMON
-# Don't know what order they will terminate
-#?(GREETER :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
-#?(GREETER :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
+#?GREETER-X-50 TERMINATE SIGNAL=15
+#?XSERVER-50 TERMINATE SIGNAL=15
#?RUNNER DAEMON-EXIT STATUS=0
#?RUNNER DAEMON-START
# X server starts
-#?XSERVER :50 START
-#?XSERVER :50 INDICATE-READY
+#?XSERVER-50 START
+#?XSERVER-50 INDICATE-READY
# LightDM connects to X server
-#?XSERVER :50 ACCEPT-CONNECT
+#?XSERVER-50 ACCEPT-CONNECT
# Greeter starts
-#?GREETER :50 START
-#?XSERVER :50 ACCEPT-CONNECT
-#?GREETER :50 CONNECT-XSERVER
-#?GREETER :50 CONNECT-TO-DAEMON
-#?GREETER :50 CONNECTED-TO-DAEMON
+#?GREETER-X-50 START
+#?XSERVER-50 ACCEPT-CONNECT
+#?GREETER-X-50 CONNECT-XSERVER
+#?GREETER-X-50 CONNECT-TO-DAEMON
+#?GREETER-X-50 CONNECTED-TO-DAEMON
# Login as guest
-#?*GREETER :50 AUTHENTICATE-GUEST
-#?GREETER :50 AUTHENTICATION-COMPLETE AUTHENTICATED=FALSE
+#?*GREETER-X-50 AUTHENTICATE-GUEST
+#?GREETER-X-50 AUTHENTICATION-COMPLETE AUTHENTICATED=FALSE
# Cleanup
#?*STOP-DAEMON
-# Don't know what order they will terminate
-#?(GREETER :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
-#?(GREETER :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
+#?GREETER-X-50 TERMINATE SIGNAL=15
+#?XSERVER-50 TERMINATE SIGNAL=15
#?RUNNER DAEMON-EXIT STATUS=0
#?RUNNER DAEMON-START
# X server starts
-#?XSERVER :50 START
-#?XSERVER :50 INDICATE-READY
+#?XSERVER-50 START
+#?XSERVER-50 INDICATE-READY
# LightDM connects to X server
-#?XSERVER :50 ACCEPT-CONNECT
+#?XSERVER-50 ACCEPT-CONNECT
# Greeter starts
-#?GREETER :50 START
-#?XSERVER :50 ACCEPT-CONNECT
-#?GREETER :50 CONNECT-XSERVER
-#?GREETER :50 CONNECT-TO-DAEMON
-#?GREETER :50 CONNECTED-TO-DAEMON
+#?GREETER-X-50 START
+#?XSERVER-50 ACCEPT-CONNECT
+#?GREETER-X-50 CONNECT-XSERVER
+#?GREETER-X-50 CONNECT-TO-DAEMON
+#?GREETER-X-50 CONNECTED-TO-DAEMON
# Login as guest
-#?*GREETER :50 AUTHENTICATE-GUEST
-#?GREETER :50 AUTHENTICATION-COMPLETE AUTHENTICATED=TRUE
-#?*GREETER :50 START-SESSION
-#?GREETER :50 TERMINATE SIGNAL=15
+#?*GREETER-X-50 AUTHENTICATE-GUEST
+#?GREETER-X-50 AUTHENTICATION-COMPLETE AUTHENTICATED=TRUE
+#?*GREETER-X-50 START-SESSION
+#?GREETER-X-50 TERMINATE SIGNAL=15
# Guest account created
#?GUEST-ACCOUNT ADD USERNAME=guest-.*
# Guest session starts
-#?SESSION :50 START USER=guest-.*
-#?XSERVER :50 ACCEPT-CONNECT
-#?SESSION :50 CONNECT-XSERVER
+#?SESSION-X-50 START USER=guest-.*
+#?XSERVER-50 ACCEPT-CONNECT
+#?SESSION-X-50 CONNECT-XSERVER
# Cleanup
#?*STOP-DAEMON
-# Don't know what order they will terminate
-#?(SESSION :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15|GUEST-ACCOUNT REMOVE USERNAME=guest-.*)
-#?(SESSION :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15|GUEST-ACCOUNT REMOVE USERNAME=guest-.*)
-#?(SESSION :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15|GUEST-ACCOUNT REMOVE USERNAME=guest-.*)
+#?SESSION-X-50 TERMINATE SIGNAL=15
+#?XSERVER-50 TERMINATE SIGNAL=15
+#?GUEST-ACCOUNT REMOVE USERNAME=guest-.*
#?RUNNER DAEMON-EXIT STATUS=0
#?RUNNER DAEMON-START
# X server starts
-#?XSERVER :50 START
-#?XSERVER :50 INDICATE-READY
+#?XSERVER-50 START
+#?XSERVER-50 INDICATE-READY
# LightDM connects to X server
-#?XSERVER :50 ACCEPT-CONNECT
+#?XSERVER-50 ACCEPT-CONNECT
# Greeter starts
-#?GREETER :50 START
-#?XSERVER :50 ACCEPT-CONNECT
-#?GREETER :50 CONNECT-XSERVER
-#?GREETER :50 CONNECT-TO-DAEMON
-#?GREETER :50 CONNECTED-TO-DAEMON
+#?GREETER-X-50 START
+#?XSERVER-50 ACCEPT-CONNECT
+#?GREETER-X-50 CONNECT-XSERVER
+#?GREETER-X-50 CONNECT-TO-DAEMON
+#?GREETER-X-50 CONNECTED-TO-DAEMON
# Log into account and see an informational prompt
-#?*GREETER :50 AUTHENTICATE USERNAME=info-prompt
-#?GREETER :50 SHOW-MESSAGE TEXT="Welcome to LightDM"
-#?GREETER :50 SHOW-PROMPT TEXT="Password:"
+#?*GREETER-X-50 AUTHENTICATE USERNAME=info-prompt
+#?GREETER-X-50 SHOW-MESSAGE TEXT="Welcome to LightDM"
+#?GREETER-X-50 SHOW-PROMPT TEXT="Password:"
# Respond with password and check response is correctly handled
-#?*GREETER :50 RESPOND TEXT="password"
-#?GREETER :50 AUTHENTICATION-COMPLETE USERNAME=info-prompt AUTHENTICATED=TRUE
+#?*GREETER-X-50 RESPOND TEXT="password"
+#?GREETER-X-50 AUTHENTICATION-COMPLETE USERNAME=info-prompt AUTHENTICATED=TRUE
# Cleanup
#?*STOP-DAEMON
-# Don't know what order they will terminate
-#?(GREETER :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
-#?(GREETER :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
+#?GREETER-X-50 TERMINATE SIGNAL=15
+#?XSERVER-50 TERMINATE SIGNAL=15
#?RUNNER DAEMON-EXIT STATUS=0
#?RUNNER DAEMON-START
# X server starts
-#?XSERVER :50 START
-#?XSERVER :50 INDICATE-READY
+#?XSERVER-50 START
+#?XSERVER-50 INDICATE-READY
# LightDM connects to X server
-#?XSERVER :50 ACCEPT-CONNECT
+#?XSERVER-50 ACCEPT-CONNECT
# Greeter starts
-#?GREETER :50 START
-#?XSERVER :50 ACCEPT-CONNECT
-#?GREETER :50 CONNECT-XSERVER
-#?GREETER :50 CONNECT-TO-DAEMON
-#?GREETER :50 CONNECTED-TO-DAEMON
+#?GREETER-X-50 START
+#?XSERVER-50 ACCEPT-CONNECT
+#?GREETER-X-50 CONNECT-XSERVER
+#?GREETER-X-50 CONNECT-TO-DAEMON
+#?GREETER-X-50 CONNECTED-TO-DAEMON
# Log into an account with a password
-#?*GREETER :50 AUTHENTICATE USERNAME=have-password1
-#?GREETER :50 SHOW-PROMPT TEXT="Password:"
-#?*GREETER :50 RESPOND TEXT="password"
-#?GREETER :50 AUTHENTICATION-COMPLETE USERNAME=have-password1 AUTHENTICATED=TRUE
-#?*GREETER :50 START-SESSION SESSION=invalid
-#?GREETER :50 TERMINATE SIGNAL=15
+#?*GREETER-X-50 AUTHENTICATE USERNAME=have-password1
+#?GREETER-X-50 SHOW-PROMPT TEXT="Password:"
+#?*GREETER-X-50 RESPOND TEXT="password"
+#?GREETER-X-50 AUTHENTICATION-COMPLETE USERNAME=have-password1 AUTHENTICATED=TRUE
+#?*GREETER-X-50 START-SESSION SESSION=invalid
+#?GREETER-X-50 TERMINATE SIGNAL=15
# X server stops, the session is invalid
-#?XSERVER :50 TERMINATE SIGNAL=15
+#?XSERVER-50 TERMINATE SIGNAL=15
# X server restarts
-#?XSERVER :50 START
-#?XSERVER :50 INDICATE-READY
+#?XSERVER-50 START
+#?XSERVER-50 INDICATE-READY
# LightDM connects to X server
-#?XSERVER :50 ACCEPT-CONNECT
+#?XSERVER-50 ACCEPT-CONNECT
# Greeter starts
-#?GREETER :50 START
-#?XSERVER :50 ACCEPT-CONNECT
-#?GREETER :50 CONNECT-XSERVER
-#?GREETER :50 CONNECT-TO-DAEMON
-#?GREETER :50 CONNECTED-TO-DAEMON
+#?GREETER-X-50 START
+#?XSERVER-50 ACCEPT-CONNECT
+#?GREETER-X-50 CONNECT-XSERVER
+#?GREETER-X-50 CONNECT-TO-DAEMON
+#?GREETER-X-50 CONNECTED-TO-DAEMON
# Cleanup
#?*STOP-DAEMON
-# Don't know what order they will terminate
-#?(GREETER :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
-#?(GREETER :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
+#?GREETER-X-50 TERMINATE SIGNAL=15
+#?XSERVER-50 TERMINATE SIGNAL=15
#?RUNNER DAEMON-EXIT STATUS=0
#?RUNNER DAEMON-START
# X server starts
-#?XSERVER :50 START
-#?XSERVER :50 INDICATE-READY
+#?XSERVER-50 START
+#?XSERVER-50 INDICATE-READY
# LightDM connects to X server
-#?XSERVER :50 ACCEPT-CONNECT
+#?XSERVER-50 ACCEPT-CONNECT
# Greeter starts
-#?GREETER :50 START
-#?XSERVER :50 ACCEPT-CONNECT
-#?GREETER :50 CONNECT-XSERVER
-#?GREETER :50 CONNECT-TO-DAEMON
-#?GREETER :50 CONNECTED-TO-DAEMON
+#?GREETER-X-50 START
+#?XSERVER-50 ACCEPT-CONNECT
+#?GREETER-X-50 CONNECT-XSERVER
+#?GREETER-X-50 CONNECT-TO-DAEMON
+#?GREETER-X-50 CONNECTED-TO-DAEMON
# Login as invalid user
-#?*GREETER :50 AUTHENTICATE USERNAME=notauser
-#?GREETER :50 SHOW-PROMPT TEXT="Password:"
-#?*GREETER :50 RESPOND TEXT="password"
-#?GREETER :50 AUTHENTICATION-COMPLETE USERNAME=notauser AUTHENTICATED=FALSE
+#?*GREETER-X-50 AUTHENTICATE USERNAME=notauser
+#?GREETER-X-50 SHOW-PROMPT TEXT="Password:"
+#?*GREETER-X-50 RESPOND TEXT="password"
+#?GREETER-X-50 AUTHENTICATION-COMPLETE USERNAME=notauser AUTHENTICATED=FALSE
# Cleanup
#?*STOP-DAEMON
-# Don't know what order they will terminate
-#?(GREETER :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
-#?(GREETER :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
+#?GREETER-X-50 TERMINATE SIGNAL=15
+#?XSERVER-50 TERMINATE SIGNAL=15
#?RUNNER DAEMON-EXIT STATUS=0
#?RUNNER DAEMON-START
# X server starts
-#?XSERVER :50 START
-#?XSERVER :50 INDICATE-READY
+#?XSERVER-50 START
+#?XSERVER-50 INDICATE-READY
# LightDM connects to X server
-#?XSERVER :50 ACCEPT-CONNECT
+#?XSERVER-50 ACCEPT-CONNECT
# Greeter starts
-#?GREETER :50 START
-#?XSERVER :50 ACCEPT-CONNECT
-#?GREETER :50 CONNECT-XSERVER
-#?GREETER :50 CONNECT-TO-DAEMON
-#?GREETER :50 CONNECTED-TO-DAEMON
+#?GREETER-X-50 START
+#?XSERVER-50 ACCEPT-CONNECT
+#?GREETER-X-50 CONNECT-XSERVER
+#?GREETER-X-50 CONNECT-TO-DAEMON
+#?GREETER-X-50 CONNECTED-TO-DAEMON
# Log in
-#?*GREETER :50 AUTHENTICATE USERNAME=have-password1
-#?GREETER :50 SHOW-PROMPT TEXT="Password:"
-#?*GREETER :50 RESPOND TEXT="password"
-#?GREETER :50 AUTHENTICATION-COMPLETE USERNAME=have-password1 AUTHENTICATED=TRUE
-#?*GREETER :50 START-SESSION
-#?GREETER :50 TERMINATE SIGNAL=15
+#?*GREETER-X-50 AUTHENTICATE USERNAME=have-password1
+#?GREETER-X-50 SHOW-PROMPT TEXT="Password:"
+#?*GREETER-X-50 RESPOND TEXT="password"
+#?GREETER-X-50 AUTHENTICATION-COMPLETE USERNAME=have-password1 AUTHENTICATED=TRUE
+#?*GREETER-X-50 START-SESSION
+#?GREETER-X-50 TERMINATE SIGNAL=15
# Session starts
-#?SESSION :50 START USER=have-password1
-#?XSERVER :50 ACCEPT-CONNECT
-#?SESSION :50 CONNECT-XSERVER
+#?SESSION-X-50 START USER=have-password1
+#?XSERVER-50 ACCEPT-CONNECT
+#?SESSION-X-50 CONNECT-XSERVER
# Logout session
-#?*SESSION :50 LOGOUT
+#?*SESSION-X-50 LOGOUT
# X server stops
-#?XSERVER :50 TERMINATE SIGNAL=15
+#?XSERVER-50 TERMINATE SIGNAL=15
# X server starts
-#?XSERVER :50 START
-#?XSERVER :50 INDICATE-READY
+#?XSERVER-50 START
+#?XSERVER-50 INDICATE-READY
# LightDM connects to X server
-#?XSERVER :50 ACCEPT-CONNECT
+#?XSERVER-50 ACCEPT-CONNECT
# Greeter starts
-#?GREETER :50 START
-#?XSERVER :50 ACCEPT-CONNECT
-#?GREETER :50 CONNECT-XSERVER
-#?GREETER :50 CONNECT-TO-DAEMON
-#?GREETER :50 CONNECTED-TO-DAEMON
+#?GREETER-X-50 START
+#?XSERVER-50 ACCEPT-CONNECT
+#?GREETER-X-50 CONNECT-XSERVER
+#?GREETER-X-50 CONNECT-TO-DAEMON
+#?GREETER-X-50 CONNECTED-TO-DAEMON
# Cleanup
#?*STOP-DAEMON
-# Don't know what order they will terminate
-#?(GREETER :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
-#?(GREETER :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
+#?GREETER-X-50 TERMINATE SIGNAL=15
+#?XSERVER-50 TERMINATE SIGNAL=15
#?RUNNER DAEMON-EXIT STATUS=0
#?RUNNER DAEMON-START
# X server starts
-#?XSERVER :50 START
-#?XSERVER :50 INDICATE-READY
+#?XSERVER-50 START
+#?XSERVER-50 INDICATE-READY
# LightDM connects to X server
-#?XSERVER :50 ACCEPT-CONNECT
+#?XSERVER-50 ACCEPT-CONNECT
# Greeter starts
-#?GREETER :50 START
-#?XSERVER :50 ACCEPT-CONNECT
-#?GREETER :50 CONNECT-XSERVER
-#?GREETER :50 CONNECT-TO-DAEMON
-#?GREETER :50 CONNECTED-TO-DAEMON
+#?GREETER-X-50 START
+#?XSERVER-50 ACCEPT-CONNECT
+#?GREETER-X-50 CONNECT-XSERVER
+#?GREETER-X-50 CONNECT-TO-DAEMON
+#?GREETER-X-50 CONNECTED-TO-DAEMON
# Log in with a very long username
-#?*GREETER :50 AUTHENTICATE USERNAME=have-password1
-#?GREETER :50 SHOW-PROMPT TEXT="Password:"
-#?*GREETER :50 RESPOND TEXT="0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789"
-#?GREETER :50 AUTHENTICATION-COMPLETE USERNAME=have-password1 AUTHENTICATED=FALSE
+#?*GREETER-X-50 AUTHENTICATE USERNAME=have-password1
+#?GREETER-X-50 SHOW-PROMPT TEXT="Password:"
+#?*GREETER-X-50 RESPOND TEXT="0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789"
+#?GREETER-X-50 AUTHENTICATION-COMPLETE USERNAME=have-password1 AUTHENTICATED=FALSE
# Cleanup
#?*STOP-DAEMON
-# Don't know what order they will terminate
-#?(GREETER :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
-#?(GREETER :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
+#?GREETER-X-50 TERMINATE SIGNAL=15
+#?XSERVER-50 TERMINATE SIGNAL=15
#?RUNNER DAEMON-EXIT STATUS=0
#?RUNNER DAEMON-START
# X server starts
-#?XSERVER :50 START
-#?XSERVER :50 INDICATE-READY
+#?XSERVER-50 START
+#?XSERVER-50 INDICATE-READY
# LightDM connects to X server
-#?XSERVER :50 ACCEPT-CONNECT
+#?XSERVER-50 ACCEPT-CONNECT
# Greeter starts
-#?GREETER :50 START
-#?XSERVER :50 ACCEPT-CONNECT
-#?GREETER :50 CONNECT-XSERVER
-#?GREETER :50 CONNECT-TO-DAEMON
-#?GREETER :50 CONNECTED-TO-DAEMON
+#?GREETER-X-50 START
+#?XSERVER-50 ACCEPT-CONNECT
+#?GREETER-X-50 CONNECT-XSERVER
+#?GREETER-X-50 CONNECT-TO-DAEMON
+#?GREETER-X-50 CONNECTED-TO-DAEMON
# Log in with a very long username
-#?*GREETER :50 AUTHENTICATE USERNAME=0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789
-#?GREETER :50 SHOW-PROMPT TEXT="Password:"
-#?*GREETER :50 RESPOND TEXT="password"
-#?GREETER :50 AUTHENTICATION-COMPLETE USERNAME=0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 AUTHENTICATED=FALSE
+#?*GREETER-X-50 AUTHENTICATE USERNAME=0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789
+#?GREETER-X-50 SHOW-PROMPT TEXT="Password:"
+#?*GREETER-X-50 RESPOND TEXT="password"
+#?GREETER-X-50 AUTHENTICATION-COMPLETE USERNAME=0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 AUTHENTICATED=FALSE
# Cleanup
#?*STOP-DAEMON
-# Don't know what order they will terminate
-#?(GREETER :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
-#?(GREETER :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
+#?GREETER-X-50 TERMINATE SIGNAL=15
+#?XSERVER-50 TERMINATE SIGNAL=15
#?RUNNER DAEMON-EXIT STATUS=0
#?RUNNER DAEMON-START
# X server starts
-#?XSERVER :50 START
-#?XSERVER :50 INDICATE-READY
+#?XSERVER-50 START
+#?XSERVER-50 INDICATE-READY
# LightDM connects to X server
-#?XSERVER :50 ACCEPT-CONNECT
+#?XSERVER-50 ACCEPT-CONNECT
# Greeter starts
-#?GREETER :50 START
-#?XSERVER :50 ACCEPT-CONNECT
-#?GREETER :50 CONNECT-XSERVER
-#?GREETER :50 CONNECT-TO-DAEMON
-#?GREETER :50 CONNECTED-TO-DAEMON
+#?GREETER-X-50 START
+#?XSERVER-50 ACCEPT-CONNECT
+#?GREETER-X-50 CONNECT-XSERVER
+#?GREETER-X-50 CONNECT-TO-DAEMON
+#?GREETER-X-50 CONNECTED-TO-DAEMON
# Login as account with a previous session, but let lightdm prompt for a username
-#?*GREETER :50 AUTHENTICATE
-#?GREETER :50 SHOW-PROMPT TEXT="login:"
-#?*GREETER :50 RESPOND TEXT="have-session"
-#?GREETER :50 AUTHENTICATION-COMPLETE USERNAME=have-session AUTHENTICATED=TRUE
-#?*GREETER :50 START-SESSION
-#?GREETER :50 TERMINATE SIGNAL=15
+#?*GREETER-X-50 AUTHENTICATE
+#?GREETER-X-50 SHOW-PROMPT TEXT="login:"
+#?*GREETER-X-50 RESPOND TEXT="have-session"
+#?GREETER-X-50 AUTHENTICATION-COMPLETE USERNAME=have-session AUTHENTICATED=TRUE
+#?*GREETER-X-50 START-SESSION
+#?GREETER-X-50 TERMINATE SIGNAL=15
# Session starts
-#?SESSION :50 START NAME=alternative USER=have-session
-#?XSERVER :50 ACCEPT-CONNECT
-#?SESSION :50 CONNECT-XSERVER
+#?SESSION-X-50 START NAME=alternative USER=have-session
+#?XSERVER-50 ACCEPT-CONNECT
+#?SESSION-X-50 CONNECT-XSERVER
# Cleanup
#?*STOP-DAEMON
-# Don't know what order they will terminate
-#?(SESSION :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
-#?(SESSION :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
+#?SESSION-X-50 TERMINATE SIGNAL=15
+#?XSERVER-50 TERMINATE SIGNAL=15
#?RUNNER DAEMON-EXIT STATUS=0
#?RUNNER DAEMON-START
# X server starts
-#?XSERVER :50 START
-#?XSERVER :50 INDICATE-READY
+#?XSERVER-50 START
+#?XSERVER-50 INDICATE-READY
# LightDM connects to X server
-#?XSERVER :50 ACCEPT-CONNECT
+#?XSERVER-50 ACCEPT-CONNECT
# Greeter starts
-#?GREETER :50 START
-#?XSERVER :50 ACCEPT-CONNECT
-#?GREETER :50 CONNECT-XSERVER
-#?GREETER :50 CONNECT-TO-DAEMON
-#?GREETER :50 CONNECTED-TO-DAEMON
+#?GREETER-X-50 START
+#?XSERVER-50 ACCEPT-CONNECT
+#?GREETER-X-50 CONNECT-XSERVER
+#?GREETER-X-50 CONNECT-TO-DAEMON
+#?GREETER-X-50 CONNECTED-TO-DAEMON
# Login as have-password1, but let lightdm prompt for a username
-#?*GREETER :50 AUTHENTICATE
-#?GREETER :50 SHOW-PROMPT TEXT="login:"
-#?*GREETER :50 RESPOND TEXT="have-password1"
-#?GREETER :50 SHOW-PROMPT TEXT="Password:"
-#?*GREETER :50 RESPOND TEXT="password"
-#?GREETER :50 AUTHENTICATION-COMPLETE USERNAME=have-password1 AUTHENTICATED=TRUE
-#?*GREETER :50 START-SESSION
-#?GREETER :50 TERMINATE SIGNAL=15
+#?*GREETER-X-50 AUTHENTICATE
+#?GREETER-X-50 SHOW-PROMPT TEXT="login:"
+#?*GREETER-X-50 RESPOND TEXT="have-password1"
+#?GREETER-X-50 SHOW-PROMPT TEXT="Password:"
+#?*GREETER-X-50 RESPOND TEXT="password"
+#?GREETER-X-50 AUTHENTICATION-COMPLETE USERNAME=have-password1 AUTHENTICATED=TRUE
+#?*GREETER-X-50 START-SESSION
+#?GREETER-X-50 TERMINATE SIGNAL=15
# Session starts
-#?SESSION :50 START USER=have-password1
-#?XSERVER :50 ACCEPT-CONNECT
-#?SESSION :50 CONNECT-XSERVER
+#?SESSION-X-50 START USER=have-password1
+#?XSERVER-50 ACCEPT-CONNECT
+#?SESSION-X-50 CONNECT-XSERVER
# Cleanup
#?*STOP-DAEMON
-# Don't know what order they will terminate
-#?(SESSION :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
-#?(SESSION :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
+#?SESSION-X-50 TERMINATE SIGNAL=15
+#?XSERVER-50 TERMINATE SIGNAL=15
#?RUNNER DAEMON-EXIT STATUS=0
#?RUNNER DAEMON-START
# X server starts
-#?XSERVER :50 START
-#?XSERVER :50 INDICATE-READY
+#?XSERVER-50 START
+#?XSERVER-50 INDICATE-READY
# LightDM connects to X server
-#?XSERVER :50 ACCEPT-CONNECT
+#?XSERVER-50 ACCEPT-CONNECT
# Greeter starts
-#?GREETER :50 START
-#?XSERVER :50 ACCEPT-CONNECT
-#?GREETER :50 CONNECT-XSERVER
-#?GREETER :50 CONNECT-TO-DAEMON
-#?GREETER :50 CONNECTED-TO-DAEMON
+#?GREETER-X-50 START
+#?XSERVER-50 ACCEPT-CONNECT
+#?GREETER-X-50 CONNECT-XSERVER
+#?GREETER-X-50 CONNECT-TO-DAEMON
+#?GREETER-X-50 CONNECTED-TO-DAEMON
# Log into account and see an informational prompt
-#?*GREETER :50 AUTHENTICATE USERNAME=multi-info-prompt
-#?GREETER :50 SHOW-MESSAGE TEXT="Welcome to LightDM"
-#?GREETER :50 SHOW-MESSAGE TEXT="This is an error"
-#?GREETER :50 SHOW-MESSAGE TEXT="You should have seen three messages"
-#?GREETER :50 SHOW-PROMPT TEXT="Password:"
+#?*GREETER-X-50 AUTHENTICATE USERNAME=multi-info-prompt
+#?GREETER-X-50 SHOW-MESSAGE TEXT="Welcome to LightDM"
+#?GREETER-X-50 SHOW-MESSAGE TEXT="This is an error"
+#?GREETER-X-50 SHOW-MESSAGE TEXT="You should have seen three messages"
+#?GREETER-X-50 SHOW-PROMPT TEXT="Password:"
# Respond with password and check response is correctly handled
-#?*GREETER :50 RESPOND TEXT="password"
-#?GREETER :50 AUTHENTICATION-COMPLETE USERNAME=multi-info-prompt AUTHENTICATED=TRUE
+#?*GREETER-X-50 RESPOND TEXT="password"
+#?GREETER-X-50 AUTHENTICATION-COMPLETE USERNAME=multi-info-prompt AUTHENTICATED=TRUE
# Cleanup
#?*STOP-DAEMON
-# Don't know what order they will terminate
-#?(GREETER :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
-#?(GREETER :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
+#?GREETER-X-50 TERMINATE SIGNAL=15
+#?XSERVER-50 TERMINATE SIGNAL=15
#?RUNNER DAEMON-EXIT STATUS=0
#?RUNNER DAEMON-START
# X server starts
-#?XSERVER :50 START
-#?XSERVER :50 INDICATE-READY
+#?XSERVER-50 START
+#?XSERVER-50 INDICATE-READY
# LightDM connects to X server
-#?XSERVER :50 ACCEPT-CONNECT
+#?XSERVER-50 ACCEPT-CONNECT
# Greeter starts
-#?GREETER :50 START
-#?XSERVER :50 ACCEPT-CONNECT
-#?GREETER :50 CONNECT-XSERVER
-#?GREETER :50 CONNECT-TO-DAEMON
-#?GREETER :50 CONNECTED-TO-DAEMON
+#?GREETER-X-50 START
+#?XSERVER-50 ACCEPT-CONNECT
+#?GREETER-X-50 CONNECT-XSERVER
+#?GREETER-X-50 CONNECT-TO-DAEMON
+#?GREETER-X-50 CONNECTED-TO-DAEMON
# Log into account and see an informational prompt
-#?*GREETER :50 AUTHENTICATE USERNAME=multi-prompt
-#?GREETER :50 SHOW-PROMPT TEXT="Favorite Color:"
-#?GREETER :50 SHOW-PROMPT TEXT="Password:"
+#?*GREETER-X-50 AUTHENTICATE USERNAME=multi-prompt
+#?GREETER-X-50 SHOW-PROMPT TEXT="Favorite Color:"
+#?GREETER-X-50 SHOW-PROMPT TEXT="Password:"
# Respond with password and check response is correctly handled
-#?*GREETER :50 RESPOND TEXT="blue"
-#?*GREETER :50 RESPOND TEXT="password"
-#?GREETER :50 AUTHENTICATION-COMPLETE USERNAME=multi-prompt AUTHENTICATED=TRUE
+#?*GREETER-X-50 RESPOND TEXT="blue"
+#?*GREETER-X-50 RESPOND TEXT="password"
+#?GREETER-X-50 AUTHENTICATION-COMPLETE USERNAME=multi-prompt AUTHENTICATED=TRUE
# Cleanup
#?*STOP-DAEMON
-# Don't know what order they will terminate
-#?(GREETER :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
-#?(GREETER :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
+#?GREETER-X-50 TERMINATE SIGNAL=15
+#?XSERVER-50 TERMINATE SIGNAL=15
#?RUNNER DAEMON-EXIT STATUS=0
#?RUNNER DAEMON-START
# X server starts
-#?XSERVER :50 START
-#?XSERVER :50 INDICATE-READY
+#?XSERVER-50 START
+#?XSERVER-50 INDICATE-READY
# LightDM connects to X server
-#?XSERVER :50 ACCEPT-CONNECT
+#?XSERVER-50 ACCEPT-CONNECT
# Greeter starts
-#?GREETER :50 START
-#?XSERVER :50 ACCEPT-CONNECT
-#?GREETER :50 CONNECT-XSERVER
-#?GREETER :50 CONNECT-TO-DAEMON
-#?GREETER :50 CONNECTED-TO-DAEMON
+#?GREETER-X-50 START
+#?XSERVER-50 ACCEPT-CONNECT
+#?GREETER-X-50 CONNECT-XSERVER
+#?GREETER-X-50 CONNECT-TO-DAEMON
+#?GREETER-X-50 CONNECTED-TO-DAEMON
# Log into account that requires as password change
-#?*GREETER :50 AUTHENTICATE USERNAME=new-authtok
-#?GREETER :50 SHOW-PROMPT TEXT="Enter new password:"
-#?*GREETER :50 RESPOND TEXT="New password"
-#?GREETER :50 AUTHENTICATION-COMPLETE USERNAME=new-authtok AUTHENTICATED=TRUE
-#?*GREETER :50 START-SESSION
-#?GREETER :50 TERMINATE SIGNAL=15
+#?*GREETER-X-50 AUTHENTICATE USERNAME=new-authtok
+#?GREETER-X-50 SHOW-PROMPT TEXT="Enter new password:"
+#?*GREETER-X-50 RESPOND TEXT="New password"
+#?GREETER-X-50 AUTHENTICATION-COMPLETE USERNAME=new-authtok AUTHENTICATED=TRUE
+#?*GREETER-X-50 START-SESSION
+#?GREETER-X-50 TERMINATE SIGNAL=15
# Session starts
-#?SESSION :50 START USER=new-authtok
-#?XSERVER :50 ACCEPT-CONNECT
-#?SESSION :50 CONNECT-XSERVER
+#?SESSION-X-50 START USER=new-authtok
+#?XSERVER-50 ACCEPT-CONNECT
+#?SESSION-X-50 CONNECT-XSERVER
# Cleanup
#?*STOP-DAEMON
-# Don't know what order they will terminate
-#?(SESSION :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
-#?(SESSION :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
+#?SESSION-X-50 TERMINATE SIGNAL=15
+#?XSERVER-50 TERMINATE SIGNAL=15
#?RUNNER DAEMON-EXIT STATUS=0
#?RUNNER DAEMON-START
# X server starts
-#?XSERVER :50 START
-#?XSERVER :50 INDICATE-READY
+#?XSERVER-50 START
+#?XSERVER-50 INDICATE-READY
# LightDM connects to X server
-#?XSERVER :50 ACCEPT-CONNECT
+#?XSERVER-50 ACCEPT-CONNECT
# Greeter starts
-#?GREETER :50 START
-#?XSERVER :50 ACCEPT-CONNECT
-#?GREETER :50 CONNECT-XSERVER
-#?GREETER :50 CONNECT-TO-DAEMON
-#?GREETER :50 CONNECTED-TO-DAEMON
+#?GREETER-X-50 START
+#?XSERVER-50 ACCEPT-CONNECT
+#?GREETER-X-50 CONNECT-XSERVER
+#?GREETER-X-50 CONNECT-TO-DAEMON
+#?GREETER-X-50 CONNECTED-TO-DAEMON
# Log into account without a password
-#?*GREETER :50 AUTHENTICATE USERNAME=no-password1
-#?GREETER :50 AUTHENTICATION-COMPLETE USERNAME=no-password1 AUTHENTICATED=TRUE
-#?*GREETER :50 START-SESSION
-#?GREETER :50 TERMINATE SIGNAL=15
+#?*GREETER-X-50 AUTHENTICATE USERNAME=no-password1
+#?GREETER-X-50 AUTHENTICATION-COMPLETE USERNAME=no-password1 AUTHENTICATED=TRUE
+#?*GREETER-X-50 START-SESSION
+#?GREETER-X-50 TERMINATE SIGNAL=15
# Session starts
-#?SESSION :50 START USER=no-password1
-#?XSERVER :50 ACCEPT-CONNECT
-#?SESSION :50 CONNECT-XSERVER
+#?SESSION-X-50 START USER=no-password1
+#?XSERVER-50 ACCEPT-CONNECT
+#?SESSION-X-50 CONNECT-XSERVER
# Cleanup
#?*STOP-DAEMON
-# Don't know what order they will terminate
-#?(SESSION :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
-#?(SESSION :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
+#?SESSION-X-50 TERMINATE SIGNAL=15
+#?XSERVER-50 TERMINATE SIGNAL=15
#?RUNNER DAEMON-EXIT STATUS=0
#?RUNNER DAEMON-START
# X server starts
-#?XSERVER :50 START
-#?XSERVER :50 INDICATE-READY
+#?XSERVER-50 START
+#?XSERVER-50 INDICATE-READY
# LightDM connects to X server
-#?XSERVER :50 ACCEPT-CONNECT
+#?XSERVER-50 ACCEPT-CONNECT
# Greeter starts
-#?GREETER :50 START
-#?XSERVER :50 ACCEPT-CONNECT
-#?GREETER :50 CONNECT-XSERVER
-#?GREETER :50 CONNECT-TO-DAEMON
-#?GREETER :50 CONNECTED-TO-DAEMON
+#?GREETER-X-50 START
+#?XSERVER-50 ACCEPT-CONNECT
+#?GREETER-X-50 CONNECT-XSERVER
+#?GREETER-X-50 CONNECT-TO-DAEMON
+#?GREETER-X-50 CONNECTED-TO-DAEMON
# Log into account with a password
-#?*GREETER :50 AUTHENTICATE USERNAME=log-pam
-#?GREETER :50 SHOW-MESSAGE TEXT="pam_authenticate"
-#?GREETER :50 SHOW-PROMPT TEXT="Password:"
-#?*GREETER :50 RESPOND TEXT="password"
-#?GREETER :50 SHOW-MESSAGE TEXT="pam_acct_mgmt"
-#?GREETER :50 AUTHENTICATION-COMPLETE USERNAME=log-pam AUTHENTICATED=TRUE
-#?*GREETER :50 START-SESSION
-#?GREETER :50 TERMINATE SIGNAL=15
+#?*GREETER-X-50 AUTHENTICATE USERNAME=log-pam
+#?GREETER-X-50 SHOW-MESSAGE TEXT="pam_authenticate"
+#?GREETER-X-50 SHOW-PROMPT TEXT="Password:"
+#?*GREETER-X-50 RESPOND TEXT="password"
+#?GREETER-X-50 SHOW-MESSAGE TEXT="pam_acct_mgmt"
+#?GREETER-X-50 AUTHENTICATION-COMPLETE USERNAME=log-pam AUTHENTICATED=TRUE
+#?*GREETER-X-50 START-SESSION
+#?GREETER-X-50 TERMINATE SIGNAL=15
# Session starts
-#?SESSION :50 START USER=log-pam
-#?XSERVER :50 ACCEPT-CONNECT
-#?SESSION :50 CONNECT-XSERVER
+#?SESSION-X-50 START USER=log-pam
+#?XSERVER-50 ACCEPT-CONNECT
+#?SESSION-X-50 CONNECT-XSERVER
# Cleanup
#?*STOP-DAEMON
-# Don't know what order they will terminate
-#?(SESSION :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
-#?(SESSION :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
+#?SESSION-X-50 TERMINATE SIGNAL=15
+#?XSERVER-50 TERMINATE SIGNAL=15
#?RUNNER DAEMON-EXIT STATUS=0
#?RUNNER DAEMON-START
# X server starts
-#?XSERVER :50 START
-#?XSERVER :50 INDICATE-READY
+#?XSERVER-50 START
+#?XSERVER-50 INDICATE-READY
# LightDM connects to X server
-#?XSERVER :50 ACCEPT-CONNECT
+#?XSERVER-50 ACCEPT-CONNECT
# Greeter starts
-#?GREETER :50 START
-#?XSERVER :50 ACCEPT-CONNECT
-#?GREETER :50 CONNECT-XSERVER
-#?GREETER :50 CONNECT-TO-DAEMON
-#?GREETER :50 CONNECTED-TO-DAEMON
+#?GREETER-X-50 START
+#?XSERVER-50 ACCEPT-CONNECT
+#?GREETER-X-50 CONNECT-XSERVER
+#?GREETER-X-50 CONNECT-TO-DAEMON
+#?GREETER-X-50 CONNECTED-TO-DAEMON
# Login as have-password1
-#?*GREETER :50 AUTHENTICATE USERNAME=have-password1
-#?GREETER :50 SHOW-PROMPT TEXT="Password:"
-#?*GREETER :50 RESPOND TEXT="password"
-#?GREETER :50 AUTHENTICATION-COMPLETE USERNAME=have-password1 AUTHENTICATED=TRUE
-#?*GREETER :50 START-SESSION SESSION=alternative
-#?GREETER :50 TERMINATE SIGNAL=15
+#?*GREETER-X-50 AUTHENTICATE USERNAME=have-password1
+#?GREETER-X-50 SHOW-PROMPT TEXT="Password:"
+#?*GREETER-X-50 RESPOND TEXT="password"
+#?GREETER-X-50 AUTHENTICATION-COMPLETE USERNAME=have-password1 AUTHENTICATED=TRUE
+#?*GREETER-X-50 START-SESSION SESSION=alternative
+#?GREETER-X-50 TERMINATE SIGNAL=15
# Session starts
-#?SESSION :50 START NAME=alternative USER=have-password1
-#?XSERVER :50 ACCEPT-CONNECT
-#?SESSION :50 CONNECT-XSERVER
+#?SESSION-X-50 START NAME=alternative USER=have-password1
+#?XSERVER-50 ACCEPT-CONNECT
+#?SESSION-X-50 CONNECT-XSERVER
# Cleanup
#?*STOP-DAEMON
-# Don't know what order they will terminate
-#?(SESSION :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
-#?(SESSION :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
+#?SESSION-X-50 TERMINATE SIGNAL=15
+#?XSERVER-50 TERMINATE SIGNAL=15
#?RUNNER DAEMON-EXIT STATUS=0
#?RUNNER DAEMON-START
# X server starts
-#?XSERVER :50 START
-#?XSERVER :50 INDICATE-READY
+#?XSERVER-50 START
+#?XSERVER-50 INDICATE-READY
# LightDM connects to X server
-#?XSERVER :50 ACCEPT-CONNECT
+#?XSERVER-50 ACCEPT-CONNECT
# Greeter starts
-#?GREETER :50 START
-#?XSERVER :50 ACCEPT-CONNECT
-#?GREETER :50 CONNECT-XSERVER
-#?GREETER :50 CONNECT-TO-DAEMON
-#?GREETER :50 CONNECTED-TO-DAEMON
+#?GREETER-X-50 START
+#?XSERVER-50 ACCEPT-CONNECT
+#?GREETER-X-50 CONNECT-XSERVER
+#?GREETER-X-50 CONNECT-TO-DAEMON
+#?GREETER-X-50 CONNECTED-TO-DAEMON
# Log into account with a previously chosen session
-#?*GREETER :50 AUTHENTICATE USERNAME=have-session
-#?GREETER :50 AUTHENTICATION-COMPLETE USERNAME=have-session AUTHENTICATED=TRUE
-#?*GREETER :50 START-SESSION
-#?GREETER :50 TERMINATE SIGNAL=15
+#?*GREETER-X-50 AUTHENTICATE USERNAME=have-session
+#?GREETER-X-50 AUTHENTICATION-COMPLETE USERNAME=have-session AUTHENTICATED=TRUE
+#?*GREETER-X-50 START-SESSION
+#?GREETER-X-50 TERMINATE SIGNAL=15
# Session starts
-#?SESSION :50 START NAME=alternative USER=have-session
-#?XSERVER :50 ACCEPT-CONNECT
-#?SESSION :50 CONNECT-XSERVER
+#?SESSION-X-50 START NAME=alternative USER=have-session
+#?XSERVER-50 ACCEPT-CONNECT
+#?SESSION-X-50 CONNECT-XSERVER
# Cleanup
#?*STOP-DAEMON
-# Don't know what order they will terminate
-#?(SESSION :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
-#?(SESSION :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
+#?SESSION-X-50 TERMINATE SIGNAL=15
+#?XSERVER-50 TERMINATE SIGNAL=15
#?RUNNER DAEMON-EXIT STATUS=0
#?RUNNER DAEMON-START
# X server starts
-#?XSERVER :50 START
-#?XSERVER :50 INDICATE-READY
+#?XSERVER-50 START
+#?XSERVER-50 INDICATE-READY
# LightDM connects to X server
-#?XSERVER :50 ACCEPT-CONNECT
+#?XSERVER-50 ACCEPT-CONNECT
# Greeter starts
-#?GREETER :50 START
-#?XSERVER :50 ACCEPT-CONNECT
-#?GREETER :50 CONNECT-XSERVER
-#?GREETER :50 CONNECT-TO-DAEMON
-#?GREETER :50 CONNECTED-TO-DAEMON
+#?GREETER-X-50 START
+#?XSERVER-50 ACCEPT-CONNECT
+#?GREETER-X-50 CONNECT-XSERVER
+#?GREETER-X-50 CONNECT-TO-DAEMON
+#?GREETER-X-50 CONNECTED-TO-DAEMON
# Start remote authentication
-#?*GREETER :50 AUTHENTICATE-REMOTE SESSION=test-remote
+#?*GREETER-X-50 AUTHENTICATE-REMOTE SESSION=test-remote
# Guest account created
#?GUEST-ACCOUNT ADD USERNAME=guest-.*
# Get remote credentials
-#?GREETER :50 SHOW-PROMPT TEXT="remote-login:"
-#?*GREETER :50 RESPOND TEXT="remote-user"
-#?GREETER :50 SHOW-PROMPT TEXT="remote-password:"
-#?*GREETER :50 RESPOND TEXT="password"
-#?GREETER :50 AUTHENTICATION-COMPLETE USERNAME=guest-.* AUTHENTICATED=TRUE
-#?*GREETER :50 START-SESSION
-#?GREETER :50 TERMINATE SIGNAL=15
+#?GREETER-X-50 SHOW-PROMPT TEXT="remote-login:"
+#?*GREETER-X-50 RESPOND TEXT="remote-user"
+#?GREETER-X-50 SHOW-PROMPT TEXT="remote-password:"
+#?*GREETER-X-50 RESPOND TEXT="password"
+#?GREETER-X-50 AUTHENTICATION-COMPLETE USERNAME=guest-.* AUTHENTICATED=TRUE
+#?*GREETER-X-50 START-SESSION
+#?GREETER-X-50 TERMINATE SIGNAL=15
# Session starts
-#?SESSION :50 START USER=guest-.*
-#?XSERVER :50 ACCEPT-CONNECT
-#?SESSION :50 CONNECT-XSERVER
+#?SESSION-X-50 START USER=guest-.*
+#?XSERVER-50 ACCEPT-CONNECT
+#?SESSION-X-50 CONNECT-XSERVER
# Cleanup
#?*STOP-DAEMON
-# Don't know what order they will terminate
-#?(SESSION :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15|GUEST-ACCOUNT REMOVE USERNAME=guest-.*)
-#?(SESSION :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15|GUEST-ACCOUNT REMOVE USERNAME=guest-.*)
-#?(SESSION :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15|GUEST-ACCOUNT REMOVE USERNAME=guest-.*)
+#?SESSION-X-50 TERMINATE SIGNAL=15
+#?XSERVER-50 TERMINATE SIGNAL=15
+#?GUEST-ACCOUNT REMOVE USERNAME=guest-.*
#?RUNNER DAEMON-EXIT STATUS=0
#?RUNNER DAEMON-START
# X server starts
-#?XSERVER :50 START
-#?XSERVER :50 INDICATE-READY
+#?XSERVER-50 START
+#?XSERVER-50 INDICATE-READY
# LightDM connects to X server
-#?XSERVER :50 ACCEPT-CONNECT
+#?XSERVER-50 ACCEPT-CONNECT
# Greeter starts
-#?GREETER :50 START
-#?XSERVER :50 ACCEPT-CONNECT
-#?GREETER :50 CONNECT-XSERVER
-#?GREETER :50 CONNECT-TO-DAEMON
-#?GREETER :50 CONNECTED-TO-DAEMON
+#?GREETER-X-50 START
+#?XSERVER-50 ACCEPT-CONNECT
+#?GREETER-X-50 CONNECT-XSERVER
+#?GREETER-X-50 CONNECT-TO-DAEMON
+#?GREETER-X-50 CONNECTED-TO-DAEMON
# Log into an account with a password
-#?*GREETER :50 AUTHENTICATE USERNAME=have-password1
-#?GREETER :50 SHOW-PROMPT TEXT="Password:"
-#?*GREETER :50 RESPOND TEXT="password"
-#?GREETER :50 AUTHENTICATION-COMPLETE USERNAME=have-password1 AUTHENTICATED=TRUE
-#?*GREETER :50 START-SESSION
-#?GREETER :50 TERMINATE SIGNAL=15
+#?*GREETER-X-50 AUTHENTICATE USERNAME=have-password1
+#?GREETER-X-50 SHOW-PROMPT TEXT="Password:"
+#?*GREETER-X-50 RESPOND TEXT="password"
+#?GREETER-X-50 AUTHENTICATION-COMPLETE USERNAME=have-password1 AUTHENTICATED=TRUE
+#?*GREETER-X-50 START-SESSION
+#?GREETER-X-50 TERMINATE SIGNAL=15
# Session starts
-#?SESSION :50 START USER=have-password1
-#?XSERVER :50 ACCEPT-CONNECT
-#?SESSION :50 CONNECT-XSERVER
+#?SESSION-X-50 START USER=have-password1
+#?XSERVER-50 ACCEPT-CONNECT
+#?SESSION-X-50 CONNECT-XSERVER
# Crash session
-#?*SESSION :50 CRASH
+#?*SESSION-X-50 CRASH
# X server stops
-#?XSERVER :50 TERMINATE SIGNAL=15
+#?XSERVER-50 TERMINATE SIGNAL=15
# X server starts
-#?XSERVER :50 START
-#?XSERVER :50 INDICATE-READY
+#?XSERVER-50 START
+#?XSERVER-50 INDICATE-READY
# LightDM connects to X server
-#?XSERVER :50 ACCEPT-CONNECT
+#?XSERVER-50 ACCEPT-CONNECT
# Greeter starts
-#?GREETER :50 START
-#?XSERVER :50 ACCEPT-CONNECT
-#?GREETER :50 CONNECT-XSERVER
-#?GREETER :50 CONNECT-TO-DAEMON
-#?GREETER :50 CONNECTED-TO-DAEMON
+#?GREETER-X-50 START
+#?XSERVER-50 ACCEPT-CONNECT
+#?GREETER-X-50 CONNECT-XSERVER
+#?GREETER-X-50 CONNECT-TO-DAEMON
+#?GREETER-X-50 CONNECTED-TO-DAEMON
# Cleanup
#?*STOP-DAEMON
-# Don't know what order they will terminate
-#?(GREETER :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
-#?(GREETER :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
+#?GREETER-X-50 TERMINATE SIGNAL=15
+#?XSERVER-50 TERMINATE SIGNAL=15
#?RUNNER DAEMON-EXIT STATUS=0
#?RUNNER DAEMON-START
# X server starts
-#?XSERVER :50 START
-#?XSERVER :50 INDICATE-READY
+#?XSERVER-50 START
+#?XSERVER-50 INDICATE-READY
# LightDM connects to X server
-#?XSERVER :50 ACCEPT-CONNECT
+#?XSERVER-50 ACCEPT-CONNECT
# Greeter starts
-#?GREETER :50 START
-#?XSERVER :50 ACCEPT-CONNECT
-#?GREETER :50 CONNECT-XSERVER
-#?GREETER :50 CONNECT-TO-DAEMON
-#?GREETER :50 CONNECTED-TO-DAEMON
+#?GREETER-X-50 START
+#?XSERVER-50 ACCEPT-CONNECT
+#?GREETER-X-50 CONNECT-XSERVER
+#?GREETER-X-50 CONNECT-TO-DAEMON
+#?GREETER-X-50 CONNECTED-TO-DAEMON
# Log into account with a password
-#?*GREETER :50 AUTHENTICATE USERNAME=two-factor
-#?GREETER :50 SHOW-PROMPT TEXT="Password:"
-#?*GREETER :50 RESPOND TEXT="password"
-#?GREETER :50 SHOW-PROMPT TEXT="OTP:"
-#?*GREETER :50 RESPOND TEXT="otp"
-#?GREETER :50 AUTHENTICATION-COMPLETE USERNAME=two-factor AUTHENTICATED=TRUE
+#?*GREETER-X-50 AUTHENTICATE USERNAME=two-factor
+#?GREETER-X-50 SHOW-PROMPT TEXT="Password:"
+#?*GREETER-X-50 RESPOND TEXT="password"
+#?GREETER-X-50 SHOW-PROMPT TEXT="OTP:"
+#?*GREETER-X-50 RESPOND TEXT="otp"
+#?GREETER-X-50 AUTHENTICATION-COMPLETE USERNAME=two-factor AUTHENTICATED=TRUE
# Cleanup
#?*STOP-DAEMON
-# Don't know what order they will terminate
-#?(GREETER :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
-#?(GREETER :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
+#?GREETER-X-50 TERMINATE SIGNAL=15
+#?XSERVER-50 TERMINATE SIGNAL=15
#?RUNNER DAEMON-EXIT STATUS=0
#?RUNNER DAEMON-START
# X server starts
-#?XSERVER :50 START
-#?XSERVER :50 INDICATE-READY
+#?XSERVER-50 START
+#?XSERVER-50 INDICATE-READY
# LightDM connects to X server
-#?XSERVER :50 ACCEPT-CONNECT
+#?XSERVER-50 ACCEPT-CONNECT
# Greeter starts
-#?GREETER :50 START
-#?XSERVER :50 ACCEPT-CONNECT
-#?GREETER :50 CONNECT-XSERVER
-#?GREETER :50 CONNECT-TO-DAEMON
-#?GREETER :50 CONNECTED-TO-DAEMON
+#?GREETER-X-50 START
+#?XSERVER-50 ACCEPT-CONNECT
+#?GREETER-X-50 CONNECT-XSERVER
+#?GREETER-X-50 CONNECT-TO-DAEMON
+#?GREETER-X-50 CONNECTED-TO-DAEMON
# Login with invalid password
-#?*GREETER :50 AUTHENTICATE USERNAME=have-password1
-#?GREETER :50 SHOW-PROMPT TEXT="Password:"
-#?*GREETER :50 RESPOND TEXT="rubbish"
-#?GREETER :50 AUTHENTICATION-COMPLETE USERNAME=have-password1 AUTHENTICATED=FALSE
+#?*GREETER-X-50 AUTHENTICATE USERNAME=have-password1
+#?GREETER-X-50 SHOW-PROMPT TEXT="Password:"
+#?*GREETER-X-50 RESPOND TEXT="rubbish"
+#?GREETER-X-50 AUTHENTICATION-COMPLETE USERNAME=have-password1 AUTHENTICATED=FALSE
# Cleanup
#?*STOP-DAEMON
-# Don't know what order they will terminate
-#?(GREETER :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
-#?(GREETER :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
+#?GREETER-X-50 TERMINATE SIGNAL=15
+#?XSERVER-50 TERMINATE SIGNAL=15
#?RUNNER DAEMON-EXIT STATUS=0
#?RUNNER DAEMON-START
# XServer starts
-#?XSERVER :50 START
-#?XSERVER :50 INDICATE-READY
+#?XSERVER-50 START
+#?XSERVER-50 INDICATE-READY
# LightDM connects to X server
-#?XSERVER :50 ACCEPT-CONNECT
+#?XSERVER-50 ACCEPT-CONNECT
# Greeter starts
-#?GREETER :50 START
-#?XSERVER :50 ACCEPT-CONNECT
-#?GREETER :50 CONNECT-XSERVER
-#?GREETER :50 CONNECT-TO-DAEMON
-#?GREETER :50 CONNECTED-TO-DAEMON
+#?GREETER-X-50 START
+#?XSERVER-50 ACCEPT-CONNECT
+#?GREETER-X-50 CONNECT-XSERVER
+#?GREETER-X-50 CONNECT-TO-DAEMON
+#?GREETER-X-50 CONNECTED-TO-DAEMON
# Log into account with a password
-#?*GREETER :50 AUTHENTICATE USERNAME=have-password1
-#?GREETER :50 SHOW-PROMPT TEXT="Password:"
-#?*GREETER :50 RESPOND TEXT="password"
-#?GREETER :50 AUTHENTICATION-COMPLETE USERNAME=have-password1 AUTHENTICATED=TRUE
-#?*GREETER :50 START-SESSION
-#?GREETER :50 TERMINATE SIGNAL=15
+#?*GREETER-X-50 AUTHENTICATE USERNAME=have-password1
+#?GREETER-X-50 SHOW-PROMPT TEXT="Password:"
+#?*GREETER-X-50 RESPOND TEXT="password"
+#?GREETER-X-50 AUTHENTICATION-COMPLETE USERNAME=have-password1 AUTHENTICATED=TRUE
+#?*GREETER-X-50 START-SESSION
+#?GREETER-X-50 TERMINATE SIGNAL=15
# Session starts
-#?SESSION :50 START USER=have-password1
-#?XSERVER :50 ACCEPT-CONNECT
-#?SESSION :50 CONNECT-XSERVER
+#?SESSION-X-50 START USER=have-password1
+#?XSERVER-50 ACCEPT-CONNECT
+#?SESSION-X-50 CONNECT-XSERVER
# Crash X server
-#?*XSERVER :50 CRASH
+#?*XSERVER-50 CRASH
# User session is terminated
-#?SESSION :50 TERMINATE SIGNAL=15
+#?SESSION-X-50 TERMINATE SIGNAL=15
# X server restarts
-#?XSERVER :50 START
-#?XSERVER :50 INDICATE-READY
-#?XSERVER :50 ACCEPT-CONNECT
+#?XSERVER-50 START
+#?XSERVER-50 INDICATE-READY
+#?XSERVER-50 ACCEPT-CONNECT
# Greeter starts
-#?GREETER :50 START
-#?XSERVER :50 ACCEPT-CONNECT
-#?GREETER :50 CONNECT-XSERVER
-#?GREETER :50 CONNECT-TO-DAEMON
-#?GREETER :50 CONNECTED-TO-DAEMON
+#?GREETER-X-50 START
+#?XSERVER-50 ACCEPT-CONNECT
+#?GREETER-X-50 CONNECT-XSERVER
+#?GREETER-X-50 CONNECT-TO-DAEMON
+#?GREETER-X-50 CONNECTED-TO-DAEMON
#?*STOP-DAEMON
-# Don't know what order they will terminate
-#?(GREETER :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
-#?(GREETER :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
+#?GREETER-X-50 TERMINATE SIGNAL=15
+#?XSERVER-50 TERMINATE SIGNAL=15
#?RUNNER DAEMON-EXIT STATUS=0
#?RUNNER DAEMON-START
# X server starts
-#?XSERVER :50 START
-#?XSERVER :50 INDICATE-READY
+#?XSERVER-50 START
+#?XSERVER-50 INDICATE-READY
# LightDM connects to X server
-#?XSERVER :50 ACCEPT-CONNECT
+#?XSERVER-50 ACCEPT-CONNECT
# Greeter starts
-#?GREETER :50 START
-#?XSERVER :50 ACCEPT-CONNECT
-#?GREETER :50 CONNECT-XSERVER
-#?GREETER :50 CONNECT-TO-DAEMON
-#?GREETER :50 CONNECTED-TO-DAEMON
+#?GREETER-X-50 START
+#?XSERVER-50 ACCEPT-CONNECT
+#?GREETER-X-50 CONNECT-XSERVER
+#?GREETER-X-50 CONNECT-TO-DAEMON
+#?GREETER-X-50 CONNECTED-TO-DAEMON
# Log into account with a password
-#?*GREETER :50 AUTHENTICATE USERNAME=have-password1
-#?GREETER :50 SHOW-PROMPT TEXT="Password:"
-#?*GREETER :50 RESPOND TEXT="password"
-#?GREETER :50 AUTHENTICATION-COMPLETE USERNAME=have-password1 AUTHENTICATED=TRUE
-#?*GREETER :50 START-SESSION
-#?GREETER :50 TERMINATE SIGNAL=15
+#?*GREETER-X-50 AUTHENTICATE USERNAME=have-password1
+#?GREETER-X-50 SHOW-PROMPT TEXT="Password:"
+#?*GREETER-X-50 RESPOND TEXT="password"
+#?GREETER-X-50 AUTHENTICATION-COMPLETE USERNAME=have-password1 AUTHENTICATED=TRUE
+#?*GREETER-X-50 START-SESSION
+#?GREETER-X-50 TERMINATE SIGNAL=15
# Session starts
-#?SESSION :50 START USER=have-password1
-#?XSERVER :50 ACCEPT-CONNECT
-#?SESSION :50 CONNECT-XSERVER
+#?SESSION-X-50 START USER=have-password1
+#?XSERVER-50 ACCEPT-CONNECT
+#?SESSION-X-50 CONNECT-XSERVER
# Cleanup
#?*STOP-DAEMON
-# Don't know what order they will terminate
-#?(SESSION :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
-#?(SESSION :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
+#?SESSION-X-50 TERMINATE SIGNAL=15
+#?XSERVER-50 TERMINATE SIGNAL=15
#?RUNNER DAEMON-EXIT STATUS=0
#?RUNNER DAEMON-START
# X server starts
-#?XSERVER :50 START
-#?XSERVER :50 INDICATE-READY
+#?XSERVER-50 START
+#?XSERVER-50 INDICATE-READY
# LightDM connects to X server
-#?XSERVER :50 ACCEPT-CONNECT
+#?XSERVER-50 ACCEPT-CONNECT
# Session starts
-#?SESSION :50 START USER=have-password1
-#?XSERVER :50 ACCEPT-CONNECT
-#?SESSION :50 CONNECT-XSERVER
+#?SESSION-X-50 START USER=have-password1
+#?XSERVER-50 ACCEPT-CONNECT
+#?SESSION-X-50 CONNECT-XSERVER
# Cleanup
#?*STOP-DAEMON
-# Don't know what order they will terminate
-#?(SESSION :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
-#?(SESSION :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
+#?SESSION-X-50 TERMINATE SIGNAL=15
+#?XSERVER-50 TERMINATE SIGNAL=15
#?RUNNER DAEMON-EXIT STATUS=0
#?RUNNER DAEMON-START
# One X server should start by default
-#?XSERVER :.* START
-#?XSERVER :.* INDICATE-READY
+#?XSERVER-0 START
+#?XSERVER-0 INDICATE-READY
# LightDM connects to X server
-#?XSERVER :.* ACCEPT-CONNECT
+#?XSERVER-0 ACCEPT-CONNECT
# Greeter starts
-#?GREETER :.* START
-#?XSERVER :.* ACCEPT-CONNECT
-#?GREETER :.* CONNECT-XSERVER
-#?GREETER :.* CONNECT-TO-DAEMON
-#?GREETER :.* CONNECTED-TO-DAEMON
+#?GREETER-X-0 START
+#?XSERVER-0 ACCEPT-CONNECT
+#?GREETER-X-0 CONNECT-XSERVER
+#?GREETER-X-0 CONNECT-TO-DAEMON
+#?GREETER-X-0 CONNECTED-TO-DAEMON
# Cleanup
#?*STOP-DAEMON
-# Don't know what order they will terminate
-#?(GREETER :.* TERMINATE SIGNAL=15|XSERVER :.* TERMINATE SIGNAL=15)
-#?(GREETER :.* TERMINATE SIGNAL=15|XSERVER :.* TERMINATE SIGNAL=15)
+#?GREETER-X-0 TERMINATE SIGNAL=15
+#?XSERVER-0 TERMINATE SIGNAL=15
#?RUNNER DAEMON-EXIT STATUS=0
-
#?RUNNER DAEMON-START
# X server starts
-#?XSERVER :50 START
-#?XSERVER :50 INDICATE-READY
+#?XSERVER-50 START
+#?XSERVER-50 INDICATE-READY
# LightDM connects to X server
-#?XSERVER :50 ACCEPT-CONNECT
+#?XSERVER-50 ACCEPT-CONNECT
# Session starts
-#?SESSION :50 START USER=have-password1
-#?XSERVER :50 ACCEPT-CONNECT
-#?SESSION :50 CONNECT-XSERVER
+#?SESSION-X-50 START USER=have-password1
+#?XSERVER-50 ACCEPT-CONNECT
+#?SESSION-X-50 CONNECT-XSERVER
# Cleanup
#?*STOP-DAEMON
-# Don't know what order they will terminate
-#?(SESSION :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
-#?(SESSION :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
+#?SESSION-X-50 TERMINATE SIGNAL=15
+#?XSERVER-50 TERMINATE SIGNAL=15
#?RUNNER DAEMON-EXIT STATUS=0
#?RUNNER DAEMON-START
# X server starts
-#?XSERVER :50 START
-#?XSERVER :50 INDICATE-READY
+#?XSERVER-50 START
+#?XSERVER-50 INDICATE-READY
# LightDM connects to X server
-#?XSERVER :50 ACCEPT-CONNECT
+#?XSERVER-50 ACCEPT-CONNECT
# Greeter starts
-#?GREETER :50 START
-#?XSERVER :50 ACCEPT-CONNECT
-#?GREETER :50 CONNECT-XSERVER
-#?GREETER :50 CONNECT-TO-DAEMON
-#?GREETER :50 CONNECTED-TO-DAEMON
+#?GREETER-X-50 START
+#?XSERVER-50 ACCEPT-CONNECT
+#?GREETER-X-50 CONNECT-XSERVER
+#?GREETER-X-50 CONNECT-TO-DAEMON
+#?GREETER-X-50 CONNECTED-TO-DAEMON
# Correct layout is found
-#?*GREETER :50 LOG-LAYOUT USERNAME=have-password1
-#?GREETER :50 LOG-LAYOUT USERNAME=have-password1 LAYOUT=''
+#?*GREETER-X-50 LOG-LAYOUT USERNAME=have-password1
+#?GREETER-X-50 LOG-LAYOUT USERNAME=have-password1 LAYOUT=''
# Cleanup
#?*STOP-DAEMON
-# Don't know what order they will terminate
-#?(GREETER :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
-#?(GREETER :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
+#?GREETER-X-50 TERMINATE SIGNAL=15
+#?XSERVER-50 TERMINATE SIGNAL=15
#?RUNNER DAEMON-EXIT STATUS=0
#?RUNNER DAEMON-START
# X server starts
-#?XSERVER :50 START
-#?XSERVER :50 INDICATE-READY
+#?XSERVER-50 START
+#?XSERVER-50 INDICATE-READY
# LightDM connects to X server
-#?XSERVER :50 ACCEPT-CONNECT
+#?XSERVER-50 ACCEPT-CONNECT
# Greeter starts
-#?GREETER :50 START
-#?XSERVER :50 ACCEPT-CONNECT
-#?GREETER :50 CONNECT-XSERVER
-#?GREETER :50 CONNECT-TO-DAEMON
-#?GREETER :50 CONNECTED-TO-DAEMON
+#?GREETER-X-50 START
+#?XSERVER-50 ACCEPT-CONNECT
+#?GREETER-X-50 CONNECT-XSERVER
+#?GREETER-X-50 CONNECT-TO-DAEMON
+#?GREETER-X-50 CONNECTED-TO-DAEMON
# Correct layout is found
-#?*GREETER :50 LOG-LANGUAGE USERNAME=have-password1
-#?GREETER :50 LOG-LANGUAGE USERNAME=have-password1 LANGUAGE=
+#?*GREETER-X-50 LOG-LANGUAGE USERNAME=have-password1
+#?GREETER-X-50 LOG-LANGUAGE USERNAME=have-password1 LANGUAGE=
# Cleanup
#?*STOP-DAEMON
-# Don't know what order they will terminate
-#?(GREETER :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
-#?(GREETER :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
+#?GREETER-X-50 TERMINATE SIGNAL=15
+#?XSERVER-50 TERMINATE SIGNAL=15
#?RUNNER DAEMON-EXIT STATUS=0
#?RUNNER DAEMON-START
# X server starts
-#?XSERVER :50 START
-#?XSERVER :50 INDICATE-READY
+#?XSERVER-50 START
+#?XSERVER-50 INDICATE-READY
# LightDM connects to X server
-#?XSERVER :50 ACCEPT-CONNECT
+#?XSERVER-50 ACCEPT-CONNECT
# Greeter starts
-#?GREETER :50 START
-#?XSERVER :50 ACCEPT-CONNECT
-#?GREETER :50 CONNECT-XSERVER
-#?GREETER :50 CONNECT-TO-DAEMON
-#?GREETER :50 CONNECTED-TO-DAEMON
+#?GREETER-X-50 START
+#?XSERVER-50 ACCEPT-CONNECT
+#?GREETER-X-50 CONNECT-XSERVER
+#?GREETER-X-50 CONNECT-TO-DAEMON
+#?GREETER-X-50 CONNECTED-TO-DAEMON
# Log in
-#?*GREETER :50 AUTHENTICATE USERNAME=have-password1
-#?GREETER :50 SHOW-PROMPT TEXT="Password:"
-#?*GREETER :50 RESPOND TEXT="password"
-#?GREETER :50 AUTHENTICATION-COMPLETE USERNAME=have-password1 AUTHENTICATED=TRUE
-#?*GREETER :50 START-SESSION
-#?GREETER :50 TERMINATE SIGNAL=15
+#?*GREETER-X-50 AUTHENTICATE USERNAME=have-password1
+#?GREETER-X-50 SHOW-PROMPT TEXT="Password:"
+#?*GREETER-X-50 RESPOND TEXT="password"
+#?GREETER-X-50 AUTHENTICATION-COMPLETE USERNAME=have-password1 AUTHENTICATED=TRUE
+#?*GREETER-X-50 START-SESSION
+#?GREETER-X-50 TERMINATE SIGNAL=15
# Session starts
-#?SESSION :50 START USER=have-password1
-#?XSERVER :50 ACCEPT-CONNECT
-#?SESSION :50 CONNECT-XSERVER
+#?SESSION-X-50 START USER=have-password1
+#?XSERVER-50 ACCEPT-CONNECT
+#?SESSION-X-50 CONNECT-XSERVER
# Check file descriptors
-#?*SESSION :50 LIST-UNKNOWN-FILE-DESCRIPTORS
-#?SESSION :50 LIST-UNKNOWN-FILE-DESCRIPTORS FDS=
+#?*SESSION-X-50 LIST-UNKNOWN-FILE-DESCRIPTORS
+#?SESSION-X-50 LIST-UNKNOWN-FILE-DESCRIPTORS FDS=
# Cleanup
#?*STOP-DAEMON
-# Don't know what order they will terminate
-#?(SESSION :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
-#?(SESSION :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
+#?SESSION-X-50 TERMINATE SIGNAL=15
+#?XSERVER-50 TERMINATE SIGNAL=15
#?RUNNER DAEMON-EXIT STATUS=0
#?RUNNER DAEMON-START
# X server starts
-#?XSERVER :50 START
-#?XSERVER :50 INDICATE-READY
+#?XSERVER-50 START
+#?XSERVER-50 INDICATE-READY
# LightDM connects to X server
-#?XSERVER :50 ACCEPT-CONNECT
+#?XSERVER-50 ACCEPT-CONNECT
# Session starts
-#?SESSION :50 START USER=log-pam
-#?XSERVER :50 ACCEPT-CONNECT
-#?SESSION :50 CONNECT-XSERVER
+#?SESSION-X-50 START USER=log-pam
+#?XSERVER-50 ACCEPT-CONNECT
+#?SESSION-X-50 CONNECT-XSERVER
# Cleanup
#?*STOP-DAEMON
-# Don't know what order they will terminate
-#?(SESSION :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
-#?(SESSION :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
+#?SESSION-X-50 TERMINATE SIGNAL=15
+#?XSERVER-50 TERMINATE SIGNAL=15
#?RUNNER DAEMON-EXIT STATUS=0
#?PLYMOUTH DEACTIVATE
# X server starts
-#?XSERVER :50 START
-#?XSERVER :50 INDICATE-READY
+#?XSERVER-50 START
+#?XSERVER-50 INDICATE-READY
# Plymouth quits but keeps image in framebuffer
#?PLYMOUTH QUIT RETAIN-SPLASH=TRUE
# LightDM connects to X server
-#?XSERVER :50 ACCEPT-CONNECT
+#?XSERVER-50 ACCEPT-CONNECT
# Greeter starts
-#?GREETER :50 START
-#?XSERVER :50 ACCEPT-CONNECT
-#?GREETER :50 CONNECT-XSERVER
-#?GREETER :50 CONNECT-TO-DAEMON
-#?GREETER :50 CONNECTED-TO-DAEMON
+#?GREETER-X-50 START
+#?XSERVER-50 ACCEPT-CONNECT
+#?GREETER-X-50 CONNECT-XSERVER
+#?GREETER-X-50 CONNECT-TO-DAEMON
+#?GREETER-X-50 CONNECTED-TO-DAEMON
# Cleanup
#?*STOP-DAEMON
-# Don't know what order they will terminate
-#?(GREETER :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
-#?(GREETER :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
+#?GREETER-X-50 TERMINATE SIGNAL=15
+#?XSERVER-50 TERMINATE SIGNAL=15
#?RUNNER DAEMON-EXIT STATUS=0
#?RUNNER DAEMON-START
# Check if Plymouth is running, then start X server
-# The Plymouth interaction and X server interaction can happen at the same time
-#?(PLYMOUTH PING ACTIVE=TRUE|PLYMOUTH HAS-ACTIVE-VT=FALSE|PLYMOUTH QUIT RETAIN-SPLASH=FALSE|XSERVER :50 START|XSERVER :50 INDICATE-READY)
-#?(PLYMOUTH PING ACTIVE=TRUE|PLYMOUTH HAS-ACTIVE-VT=FALSE|PLYMOUTH QUIT RETAIN-SPLASH=FALSE|XSERVER :50 START|XSERVER :50 INDICATE-READY)
-#?(PLYMOUTH PING ACTIVE=TRUE|PLYMOUTH HAS-ACTIVE-VT=FALSE|PLYMOUTH QUIT RETAIN-SPLASH=FALSE|XSERVER :50 START|XSERVER :50 INDICATE-READY)
-#?(PLYMOUTH PING ACTIVE=TRUE|PLYMOUTH HAS-ACTIVE-VT=FALSE|PLYMOUTH QUIT RETAIN-SPLASH=FALSE|XSERVER :50 START|XSERVER :50 INDICATE-READY)
-#?(PLYMOUTH PING ACTIVE=TRUE|PLYMOUTH HAS-ACTIVE-VT=FALSE|PLYMOUTH QUIT RETAIN-SPLASH=FALSE|XSERVER :50 START|XSERVER :50 INDICATE-READY)
+#?PLYMOUTH PING ACTIVE=TRUE
+#?PLYMOUTH HAS-ACTIVE-VT=FALSE
+#?PLYMOUTH QUIT RETAIN-SPLASH=FALSE
+#?XSERVER-50 START
+#?XSERVER-50 INDICATE-READY
# LightDM connects to X server
-#?XSERVER :50 ACCEPT-CONNECT
+#?XSERVER-50 ACCEPT-CONNECT
# Greeter starts
-#?GREETER :50 START
-#?XSERVER :50 ACCEPT-CONNECT
-#?GREETER :50 CONNECT-XSERVER
-#?GREETER :50 CONNECT-TO-DAEMON
-#?GREETER :50 CONNECTED-TO-DAEMON
+#?GREETER-X-50 START
+#?XSERVER-50 ACCEPT-CONNECT
+#?GREETER-X-50 CONNECT-XSERVER
+#?GREETER-X-50 CONNECT-TO-DAEMON
+#?GREETER-X-50 CONNECTED-TO-DAEMON
# Cleanup
#?*STOP-DAEMON
-# Don't know what order they will terminate
-#?(GREETER :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
-#?(GREETER :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
+#?GREETER-X-50 TERMINATE SIGNAL=15
+#?XSERVER-50 TERMINATE SIGNAL=15
#?RUNNER DAEMON-EXIT STATUS=0
#?RUNNER DAEMON-START
# X server starts
-#?XSERVER :50 START
-#?XSERVER :50 INDICATE-READY
+#?XSERVER-50 START
+#?XSERVER-50 INDICATE-READY
# LightDM connects to X server
-#?XSERVER :50 ACCEPT-CONNECT
+#?XSERVER-50 ACCEPT-CONNECT
# Greeter starts
-#?GREETER :50 START
-#?XSERVER :50 ACCEPT-CONNECT
-#?GREETER :50 CONNECT-XSERVER
-#?GREETER :50 CONNECT-TO-DAEMON
-#?GREETER :50 CONNECTED-TO-DAEMON
+#?GREETER-X-50 START
+#?XSERVER-50 ACCEPT-CONNECT
+#?GREETER-X-50 CONNECT-XSERVER
+#?GREETER-X-50 CONNECT-TO-DAEMON
+#?GREETER-X-50 CONNECTED-TO-DAEMON
# Start authentication
-#?*GREETER :50 AUTHENTICATE USERNAME=have-password1
-#?GREETER :50 SHOW-PROMPT TEXT="Password:"
+#?*GREETER-X-50 AUTHENTICATE USERNAME=have-password1
+#?GREETER-X-50 SHOW-PROMPT TEXT="Password:"
# Restart authentication
-#?*GREETER :50 AUTHENTICATE USERNAME=have-password1
-#?GREETER :50 SHOW-PROMPT TEXT="Password:"
+#?*GREETER-X-50 AUTHENTICATE USERNAME=have-password1
+#?GREETER-X-50 SHOW-PROMPT TEXT="Password:"
# Cleanup
#?*STOP-DAEMON
-# Don't know what order they will terminate
-#?(GREETER :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
-#?(GREETER :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
+#?GREETER-X-50 TERMINATE SIGNAL=15
+#?XSERVER-50 TERMINATE SIGNAL=15
#?RUNNER DAEMON-EXIT STATUS=0
#?RUNNER DAEMON-START
# One X server should start by default
-#?XSERVER :50 START
-#?XSERVER :50 INDICATE-READY
+#?XSERVER-50 START
+#?XSERVER-50 INDICATE-READY
# LightDM connects to X server
-#?XSERVER :50 ACCEPT-CONNECT
+#?XSERVER-50 ACCEPT-CONNECT
# Setup script fails
#?SCRIPT-HOOK DISPLAY-SETUP
-#?XSERVER :50 TERMINATE SIGNAL=15
+#?XSERVER-50 TERMINATE SIGNAL=15
# Cleanup
-# Don't know what order they will terminate
#?RUNNER DAEMON-EXIT STATUS=1
#?RUNNER DAEMON-START
# One X server should start by default
-#?XSERVER :50 START
-#?XSERVER :50 INDICATE-READY
+#?XSERVER-50 START
+#?XSERVER-50 INDICATE-READY
# LightDM connects to X server
-#?XSERVER :50 ACCEPT-CONNECT
+#?XSERVER-50 ACCEPT-CONNECT
# Setup script fails
#?SCRIPT-HOOK GREETER-SETUP
-#?XSERVER :50 TERMINATE SIGNAL=15
+#?XSERVER-50 TERMINATE SIGNAL=15
# Cleanup
-# Don't know what order they will terminate
#?RUNNER DAEMON-EXIT STATUS=1
#?RUNNER DAEMON-START
# One X server should start by default
-#?XSERVER :50 START
-#?XSERVER :50 INDICATE-READY
+#?XSERVER-50 START
+#?XSERVER-50 INDICATE-READY
# LightDM connects to X server
-#?XSERVER :50 ACCEPT-CONNECT
+#?XSERVER-50 ACCEPT-CONNECT
# Setup script fails
#?SCRIPT-HOOK SESSION-SETUP
# Greeter starts
-#?GREETER :50 START
-#?XSERVER :50 ACCEPT-CONNECT
-#?GREETER :50 CONNECT-XSERVER
-#?GREETER :50 CONNECT-TO-DAEMON
-#?GREETER :50 CONNECTED-TO-DAEMON
+#?GREETER-X-50 START
+#?XSERVER-50 ACCEPT-CONNECT
+#?GREETER-X-50 CONNECT-XSERVER
+#?GREETER-X-50 CONNECT-TO-DAEMON
+#?GREETER-X-50 CONNECTED-TO-DAEMON
# Cleanup
#?*STOP-DAEMON
-# Don't know what order they will terminate
-#?(GREETER :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
-#?(GREETER :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
+#?GREETER-X-50 TERMINATE SIGNAL=15
+#?XSERVER-50 TERMINATE SIGNAL=15
#?RUNNER DAEMON-EXIT STATUS=0
#?RUNNER DAEMON-START
# One X server should start by default
-#?XSERVER :50 START
-#?XSERVER :50 INDICATE-READY
+#?XSERVER-50 START
+#?XSERVER-50 INDICATE-READY
# LightDM connects to X server
-#?XSERVER :50 ACCEPT-CONNECT
+#?XSERVER-50 ACCEPT-CONNECT
# Script hooks run
#?SCRIPT-HOOK DISPLAY-SETUP
#?SCRIPT-HOOK SESSION-SETUP
# Session starts
-#?SESSION :50 START USER=have-password1
-#?XSERVER :50 ACCEPT-CONNECT
-#?SESSION :50 CONNECT-XSERVER
+#?SESSION-X-50 START USER=have-password1
+#?XSERVER-50 ACCEPT-CONNECT
+#?SESSION-X-50 CONNECT-XSERVER
# Logout session
-#?*SESSION :50 LOGOUT
+#?*SESSION-X-50 LOGOUT
# Script hook runs
#?SCRIPT-HOOK SESSION-CLEANUP
# X server stops
-#?XSERVER :50 TERMINATE SIGNAL=15
+#?XSERVER-50 TERMINATE SIGNAL=15
# X server starts
-#?XSERVER :50 START
-#?XSERVER :50 INDICATE-READY
+#?XSERVER-50 START
+#?XSERVER-50 INDICATE-READY
# LightDM connects to X server
-#?XSERVER :50 ACCEPT-CONNECT
+#?XSERVER-50 ACCEPT-CONNECT
# Script hooks run
#?SCRIPT-HOOK DISPLAY-SETUP
#?SCRIPT-HOOK GREETER-SETUP
# Greeter starts
-#?GREETER :50 START
-#?XSERVER :50 ACCEPT-CONNECT
-#?GREETER :50 CONNECT-XSERVER
-#?GREETER :50 CONNECT-TO-DAEMON
-#?GREETER :50 CONNECTED-TO-DAEMON
+#?GREETER-X-50 START
+#?XSERVER-50 ACCEPT-CONNECT
+#?GREETER-X-50 CONNECT-XSERVER
+#?GREETER-X-50 CONNECT-TO-DAEMON
+#?GREETER-X-50 CONNECTED-TO-DAEMON
# Cleanup
#?*STOP-DAEMON
-# Don't know what order they will terminate
-#?(GREETER :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
-#?(GREETER :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
+#?GREETER-X-50 TERMINATE SIGNAL=15
+#?XSERVER-50 TERMINATE SIGNAL=15
#?RUNNER DAEMON-EXIT STATUS=0
#?RUNNER DAEMON-START
# X server starts
-#?XSERVER :50 START
-#?XSERVER :50 INDICATE-READY
+#?XSERVER-50 START
+#?XSERVER-50 INDICATE-READY
# LightDM connects to X server
-#?XSERVER :50 ACCEPT-CONNECT
+#?XSERVER-50 ACCEPT-CONNECT
# Session starts
-#?SESSION :50 START USER=no-password1
-#?XSERVER :50 ACCEPT-CONNECT
-#?SESSION :50 CONNECT-XSERVER
+#?SESSION-X-50 START USER=no-password1
+#?XSERVER-50 ACCEPT-CONNECT
+#?SESSION-X-50 CONNECT-XSERVER
# Write to stderr and check it shows up in the log
-#?*SESSION :50 WRITE-STDERR TEXT=FIRST-SESSION
-#?*SESSION :50 READ FILE=.xsession-errors
-#?SESSION :50 READ FILE=.xsession-errors TEXT=FIRST-SESSION
+#?*SESSION-X-50 WRITE-STDERR TEXT=FIRST-SESSION
+#?*SESSION-X-50 READ FILE=.xsession-errors
+#?SESSION-X-50 READ FILE=.xsession-errors TEXT=FIRST-SESSION
# Restart session
-#?*SESSION :50 LOGOUT
-#?XSERVER :50 TERMINATE SIGNAL=15
-#?XSERVER :50 START
-#?XSERVER :50 INDICATE-READY
-#?XSERVER :50 ACCEPT-CONNECT
-#?GREETER :50 START
-#?XSERVER :50 ACCEPT-CONNECT
-#?GREETER :50 CONNECT-XSERVER
-#?GREETER :50 CONNECT-TO-DAEMON
-#?GREETER :50 CONNECTED-TO-DAEMON
-#?*GREETER :50 AUTHENTICATE USERNAME=no-password1
-#?GREETER :50 AUTHENTICATION-COMPLETE USERNAME=no-password1 AUTHENTICATED=TRUE
-#?*GREETER :50 START-SESSION
-#?GREETER :50 TERMINATE SIGNAL=15
-#?SESSION :50 START USER=no-password1
-#?XSERVER :50 ACCEPT-CONNECT
-#?SESSION :50 CONNECT-XSERVER
+#?*SESSION-X-50 LOGOUT
+#?XSERVER-50 TERMINATE SIGNAL=15
+#?XSERVER-50 START
+#?XSERVER-50 INDICATE-READY
+#?XSERVER-50 ACCEPT-CONNECT
+#?GREETER-X-50 START
+#?XSERVER-50 ACCEPT-CONNECT
+#?GREETER-X-50 CONNECT-XSERVER
+#?GREETER-X-50 CONNECT-TO-DAEMON
+#?GREETER-X-50 CONNECTED-TO-DAEMON
+#?*GREETER-X-50 AUTHENTICATE USERNAME=no-password1
+#?GREETER-X-50 AUTHENTICATION-COMPLETE USERNAME=no-password1 AUTHENTICATED=TRUE
+#?*GREETER-X-50 START-SESSION
+#?GREETER-X-50 TERMINATE SIGNAL=15
+#?SESSION-X-50 START USER=no-password1
+#?XSERVER-50 ACCEPT-CONNECT
+#?SESSION-X-50 CONNECT-XSERVER
# Write to stderr and check it shows up in the log
-#?*SESSION :50 WRITE-STDERR TEXT=SECOND-SESSION
-#?*SESSION :50 READ FILE=.xsession-errors
-#?SESSION :50 READ FILE=.xsession-errors TEXT=SECOND-SESSION
+#?*SESSION-X-50 WRITE-STDERR TEXT=SECOND-SESSION
+#?*SESSION-X-50 READ FILE=.xsession-errors
+#?SESSION-X-50 READ FILE=.xsession-errors TEXT=SECOND-SESSION
# Check first log is backed up
-#?*SESSION :50 READ FILE=.xsession-errors.old
-#?SESSION :50 READ FILE=.xsession-errors.old TEXT=FIRST-SESSION
+#?*SESSION-X-50 READ FILE=.xsession-errors.old
+#?SESSION-X-50 READ FILE=.xsession-errors.old TEXT=FIRST-SESSION
# Restart session
-#?*SESSION :50 LOGOUT
-#?XSERVER :50 TERMINATE SIGNAL=15
-#?XSERVER :50 START
-#?XSERVER :50 INDICATE-READY
-#?XSERVER :50 ACCEPT-CONNECT
-#?GREETER :50 START
-#?XSERVER :50 ACCEPT-CONNECT
-#?GREETER :50 CONNECT-XSERVER
-#?GREETER :50 CONNECT-TO-DAEMON
-#?GREETER :50 CONNECTED-TO-DAEMON
-#?*GREETER :50 AUTHENTICATE USERNAME=no-password1
-#?GREETER :50 AUTHENTICATION-COMPLETE USERNAME=no-password1 AUTHENTICATED=TRUE
-#?*GREETER :50 START-SESSION
-#?GREETER :50 TERMINATE SIGNAL=15
-#?SESSION :50 START USER=no-password1
-#?XSERVER :50 ACCEPT-CONNECT
-#?SESSION :50 CONNECT-XSERVER
+#?*SESSION-X-50 LOGOUT
+#?XSERVER-50 TERMINATE SIGNAL=15
+#?XSERVER-50 START
+#?XSERVER-50 INDICATE-READY
+#?XSERVER-50 ACCEPT-CONNECT
+#?GREETER-X-50 START
+#?XSERVER-50 ACCEPT-CONNECT
+#?GREETER-X-50 CONNECT-XSERVER
+#?GREETER-X-50 CONNECT-TO-DAEMON
+#?GREETER-X-50 CONNECTED-TO-DAEMON
+#?*GREETER-X-50 AUTHENTICATE USERNAME=no-password1
+#?GREETER-X-50 AUTHENTICATION-COMPLETE USERNAME=no-password1 AUTHENTICATED=TRUE
+#?*GREETER-X-50 START-SESSION
+#?GREETER-X-50 TERMINATE SIGNAL=15
+#?SESSION-X-50 START USER=no-password1
+#?XSERVER-50 ACCEPT-CONNECT
+#?SESSION-X-50 CONNECT-XSERVER
# Write to stderr and check it shows up in the log
-#?*SESSION :50 WRITE-STDERR TEXT=THIRD-SESSION
-#?*SESSION :50 READ FILE=.xsession-errors
-#?SESSION :50 READ FILE=.xsession-errors TEXT=THIRD-SESSION
+#?*SESSION-X-50 WRITE-STDERR TEXT=THIRD-SESSION
+#?*SESSION-X-50 READ FILE=.xsession-errors
+#?SESSION-X-50 READ FILE=.xsession-errors TEXT=THIRD-SESSION
# Check second log is backed up
-#?*SESSION :50 READ FILE=.xsession-errors.old
-#?SESSION :50 READ FILE=.xsession-errors.old TEXT=SECOND-SESSION
+#?*SESSION-X-50 READ FILE=.xsession-errors.old
+#?SESSION-X-50 READ FILE=.xsession-errors.old TEXT=SECOND-SESSION
# Cleanup
#?*STOP-DAEMON
-# Don't know what order they will terminate
-#?(SESSION :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
-#?(SESSION :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
+#?SESSION-X-50 TERMINATE SIGNAL=15
+#?XSERVER-50 TERMINATE SIGNAL=15
#?RUNNER DAEMON-EXIT STATUS=0
#?RUNNER DAEMON-START
# X server starts
-#?XSERVER :50 START
-#?XSERVER :50 INDICATE-READY
+#?XSERVER-50 START
+#?XSERVER-50 INDICATE-READY
# LightDM connects to X server
-#?XSERVER :50 ACCEPT-CONNECT
+#?XSERVER-50 ACCEPT-CONNECT
# Session starts
-#?SESSION :50 START USER=have-password1
-#?XSERVER :50 ACCEPT-CONNECT
-#?SESSION :50 CONNECT-XSERVER
+#?SESSION-X-50 START USER=have-password1
+#?XSERVER-50 ACCEPT-CONNECT
+#?SESSION-X-50 CONNECT-XSERVER
# Write to stderr and check all text ends up in log
-#?*SESSION :50 WRITE-STDERR TEXT=MULTI-
-#?*SESSION :50 WRITE-STDERR TEXT=WRITE
-#?*SESSION :50 READ FILE=.xsession-errors
-#?SESSION :50 READ FILE=.xsession-errors TEXT=MULTI-WRITE
+#?*SESSION-X-50 WRITE-STDERR TEXT=MULTI-
+#?*SESSION-X-50 WRITE-STDERR TEXT=WRITE
+#?*SESSION-X-50 READ FILE=.xsession-errors
+#?SESSION-X-50 READ FILE=.xsession-errors TEXT=MULTI-WRITE
# Cleanup
#?*STOP-DAEMON
-# Don't know what order they will terminate
-#?(SESSION :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
-#?(SESSION :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
+#?SESSION-X-50 TERMINATE SIGNAL=15
+#?XSERVER-50 TERMINATE SIGNAL=15
#?RUNNER DAEMON-EXIT STATUS=0
#?RUNNER DAEMON-START
# X server starts
-#?XSERVER :50 START
-#?XSERVER :50 INDICATE-READY
+#?XSERVER-50 START
+#?XSERVER-50 INDICATE-READY
# LightDM connects to X server
-#?XSERVER :50 ACCEPT-CONNECT
+#?XSERVER-50 ACCEPT-CONNECT
# Session starts
-#?SESSION :50 START USER=have-password1
-#?XSERVER :50 ACCEPT-CONNECT
-#?SESSION :50 CONNECT-XSERVER
+#?SESSION-X-50 START USER=have-password1
+#?XSERVER-50 ACCEPT-CONNECT
+#?SESSION-X-50 CONNECT-XSERVER
# Write to stderr and check it shows up in the log
-#?*SESSION :50 WRITE-STDERR TEXT=THIS-SHOULD-BE-IN-XSESSION-ERRORS
-#?*SESSION :50 READ FILE=.xsession-errors
-#?SESSION :50 READ FILE=.xsession-errors TEXT=THIS-SHOULD-BE-IN-XSESSION-ERRORS
+#?*SESSION-X-50 WRITE-STDERR TEXT=THIS-SHOULD-BE-IN-XSESSION-ERRORS
+#?*SESSION-X-50 READ FILE=.xsession-errors
+#?SESSION-X-50 READ FILE=.xsession-errors TEXT=THIS-SHOULD-BE-IN-XSESSION-ERRORS
# Cleanup
#?*STOP-DAEMON
-# Don't know what order they will terminate
-#?(SESSION :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
-#?(SESSION :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
+#?SESSION-X-50 TERMINATE SIGNAL=15
+#?XSERVER-50 TERMINATE SIGNAL=15
#?RUNNER DAEMON-EXIT STATUS=0
#?RUNNER DAEMON-START
# X server starts
-#?XSERVER :50 START
-#?XSERVER :50 INDICATE-READY
+#?XSERVER-50 START
+#?XSERVER-50 INDICATE-READY
# LightDM connects to X server
-#?XSERVER :50 ACCEPT-CONNECT
+#?XSERVER-50 ACCEPT-CONNECT
# Session starts
-#?SESSION :50 START USER=have-password1
-#?XSERVER :50 ACCEPT-CONNECT
-#?SESSION :50 CONNECT-XSERVER
+#?SESSION-X-50 START USER=have-password1
+#?XSERVER-50 ACCEPT-CONNECT
+#?SESSION-X-50 CONNECT-XSERVER
# Write to stdout and check it doesn't end up in the session error log (you should also manually check when running the test if it is printed)
-#?*SESSION :50 WRITE-STDOUT TEXT=YOU-SHOULD-NOT-SEE-THIS
-#?*SESSION :50 READ FILE=.xsession-errors
-#?SESSION :50 READ FILE=.xsession-errors TEXT=
+#?*SESSION-X-50 WRITE-STDOUT TEXT=YOU-SHOULD-NOT-SEE-THIS
+#?*SESSION-X-50 READ FILE=.xsession-errors
+#?SESSION-X-50 READ FILE=.xsession-errors TEXT=
# Cleanup
#?*STOP-DAEMON
-# Don't know what order they will terminate
-#?(SESSION :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
-#?(SESSION :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
+#?SESSION-X-50 TERMINATE SIGNAL=15
+#?XSERVER-50 TERMINATE SIGNAL=15
#?RUNNER DAEMON-EXIT STATUS=0
#?RUNNER DAEMON-START
# X server starts
-#?XSERVER :50 START
-#?XSERVER :50 INDICATE-READY
+#?XSERVER-50 START
+#?XSERVER-50 INDICATE-READY
# LightDM connects to X server
-#?XSERVER :50 ACCEPT-CONNECT
+#?XSERVER-50 ACCEPT-CONNECT
# Greeter starts
-#?GREETER :50 START
-#?XSERVER :50 ACCEPT-CONNECT
-#?GREETER :50 CONNECT-XSERVER
-#?GREETER :50 CONNECT-TO-DAEMON
-#?GREETER :50 CONNECTED-TO-DAEMON
+#?GREETER-X-50 START
+#?XSERVER-50 ACCEPT-CONNECT
+#?GREETER-X-50 CONNECT-XSERVER
+#?GREETER-X-50 CONNECT-TO-DAEMON
+#?GREETER-X-50 CONNECTED-TO-DAEMON
# Login
-#?*GREETER :50 AUTHENTICATE USERNAME=have-password1
-#?GREETER :50 SHOW-PROMPT TEXT="Password:"
-#?*GREETER :50 RESPOND TEXT="password"
-#?GREETER :50 AUTHENTICATION-COMPLETE USERNAME=have-password1 AUTHENTICATED=TRUE
-#?*GREETER :50 START-SESSION
-#?GREETER :50 TERMINATE SIGNAL=15
+#?*GREETER-X-50 AUTHENTICATE USERNAME=have-password1
+#?GREETER-X-50 SHOW-PROMPT TEXT="Password:"
+#?*GREETER-X-50 RESPOND TEXT="password"
+#?GREETER-X-50 AUTHENTICATION-COMPLETE USERNAME=have-password1 AUTHENTICATED=TRUE
+#?*GREETER-X-50 START-SESSION
+#?GREETER-X-50 TERMINATE SIGNAL=15
# Session starts
-#?SESSION :50 START USER=have-password1
-#?XSERVER :50 ACCEPT-CONNECT
-#?SESSION :50 CONNECT-XSERVER
+#?SESSION-X-50 START USER=have-password1
+#?XSERVER-50 ACCEPT-CONNECT
+#?SESSION-X-50 CONNECT-XSERVER
# Show the greeter
#?*SWITCH-TO-GREETER
#?RUNNER SWITCH-TO-GREETER
# New X server starts
-#?XSERVER :51 START
-#?XSERVER :51 INDICATE-READY
+#?XSERVER-51 START
+#?XSERVER-51 INDICATE-READY
# LightDM connects to X server
-#?XSERVER :51 ACCEPT-CONNECT
+#?XSERVER-51 ACCEPT-CONNECT
# Greeter starts
-#?GREETER :51 START
-#?XSERVER :51 ACCEPT-CONNECT
-#?GREETER :51 CONNECT-XSERVER
-#?GREETER :51 CONNECT-TO-DAEMON
-#?GREETER :51 CONNECTED-TO-DAEMON
+#?GREETER-X-51 START
+#?XSERVER-51 ACCEPT-CONNECT
+#?GREETER-X-51 CONNECT-XSERVER
+#?GREETER-X-51 CONNECT-TO-DAEMON
+#?GREETER-X-51 CONNECTED-TO-DAEMON
# Cleanup
#?*STOP-DAEMON
-# Don't know what order they will terminate
-#?(SESSION :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15|GREETER :51 TERMINATE SIGNAL=15|XSERVER :51 TERMINATE SIGNAL=15)
-#?(SESSION :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15|GREETER :51 TERMINATE SIGNAL=15|XSERVER :51 TERMINATE SIGNAL=15)
-#?(SESSION :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15|GREETER :51 TERMINATE SIGNAL=15|XSERVER :51 TERMINATE SIGNAL=15)
-#?(SESSION :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15|GREETER :51 TERMINATE SIGNAL=15|XSERVER :51 TERMINATE SIGNAL=15)
+#?SESSION-X-50 TERMINATE SIGNAL=15
+#?XSERVER-50 TERMINATE SIGNAL=15
+#?GREETER-X-51 TERMINATE SIGNAL=15
+#?XSERVER-51 TERMINATE SIGNAL=15
#?RUNNER DAEMON-EXIT STATUS=0
#?*WAIT
# X server starts
-#?XSERVER :50 START
-#?XSERVER :50 INDICATE-READY
+#?XSERVER-50 START
+#?XSERVER-50 INDICATE-READY
# LightDM connects to X server
-#?XSERVER :50 ACCEPT-CONNECT
+#?XSERVER-50 ACCEPT-CONNECT
# Default session starts
-#?SESSION :50 START USER=have-password1
-#?XSERVER :50 ACCEPT-CONNECT
-#?SESSION :50 CONNECT-XSERVER
+#?SESSION-X-50 START USER=have-password1
+#?XSERVER-50 ACCEPT-CONNECT
+#?SESSION-X-50 CONNECT-XSERVER
# Switch to guest
#?*SWITCH-TO-GUEST
#?RUNNER SWITCH-TO-GUEST
# New X server starts
-#?XSERVER :51 START
-#?XSERVER :51 INDICATE-READY
+#?XSERVER-51 START
+#?XSERVER-51 INDICATE-READY
# LightDM connects to X server
-#?XSERVER :51 ACCEPT-CONNECT
+#?XSERVER-51 ACCEPT-CONNECT
# Guest account created
#?GUEST-ACCOUNT ADD USERNAME=guest-.*
# Guest session starts
-#?SESSION :51 START USER=guest-.*
-#?XSERVER :51 ACCEPT-CONNECT
-#?SESSION :51 CONNECT-XSERVER
+#?SESSION-X-51 START USER=guest-.*
+#?XSERVER-51 ACCEPT-CONNECT
+#?SESSION-X-51 CONNECT-XSERVER
# Switch again, should not do anything as guest already running
#?*SWITCH-TO-GUEST
# Cleanup
#?*STOP-DAEMON
-# Don't know what order they will terminate
-#?(SESSION :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15|SESSION :51 TERMINATE SIGNAL=15|XSERVER :51 TERMINATE SIGNAL=15|GUEST-ACCOUNT REMOVE USERNAME=guest-.*)
-#?(SESSION :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15|SESSION :51 TERMINATE SIGNAL=15|XSERVER :51 TERMINATE SIGNAL=15|GUEST-ACCOUNT REMOVE USERNAME=guest-.*)
-#?(SESSION :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15|SESSION :51 TERMINATE SIGNAL=15|XSERVER :51 TERMINATE SIGNAL=15|GUEST-ACCOUNT REMOVE USERNAME=guest-.*)
-#?(SESSION :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15|SESSION :51 TERMINATE SIGNAL=15|XSERVER :51 TERMINATE SIGNAL=15|GUEST-ACCOUNT REMOVE USERNAME=guest-.*)
-#?(SESSION :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15|SESSION :51 TERMINATE SIGNAL=15|XSERVER :51 TERMINATE SIGNAL=15|GUEST-ACCOUNT REMOVE USERNAME=guest-.*)
+#?SESSION-X-50 TERMINATE SIGNAL=15
+#?XSERVER-50 TERMINATE SIGNAL=15
+#?SESSION-X-51 TERMINATE SIGNAL=15
+#?XSERVER-51 TERMINATE SIGNAL=15
+#?GUEST-ACCOUNT REMOVE USERNAME=guest-.*
#?RUNNER DAEMON-EXIT STATUS=0
#?*WAIT
# X server starts
-#?XSERVER :50 START
-#?XSERVER :50 INDICATE-READY
+#?XSERVER-50 START
+#?XSERVER-50 INDICATE-READY
# LightDM connects to X server
-#?XSERVER :50 ACCEPT-CONNECT
+#?XSERVER-50 ACCEPT-CONNECT
# Session starts
-#?SESSION :50 START USER=have-password1
-#?XSERVER :50 ACCEPT-CONNECT
-#?SESSION :50 CONNECT-XSERVER
+#?SESSION-X-50 START USER=have-password1
+#?XSERVER-50 ACCEPT-CONNECT
+#?SESSION-X-50 CONNECT-XSERVER
# Switch to account with a password
#?*SWITCH-TO-USER USERNAME=have-password1
# Cleanup
#?*STOP-DAEMON
-# Don't know what order they will terminate
-#?(XSERVER :50 TERMINATE SIGNAL=15|SESSION :50 TERMINATE SIGNAL=15)
-#?(XSERVER :50 TERMINATE SIGNAL=15|SESSION :50 TERMINATE SIGNAL=15)
+#?XSERVER-50 TERMINATE SIGNAL=15
+#?SESSION-X-50 TERMINATE SIGNAL=15
#?RUNNER DAEMON-EXIT STATUS=0
#?*WAIT
# X server starts
-#?XSERVER :50 START
-#?XSERVER :50 INDICATE-READY
+#?XSERVER-50 START
+#?XSERVER-50 INDICATE-READY
# LightDM connects to X server
-#?XSERVER :50 ACCEPT-CONNECT
+#?XSERVER-50 ACCEPT-CONNECT
# Session starts
-#?SESSION :50 START USER=have-password1
-#?XSERVER :50 ACCEPT-CONNECT
-#?SESSION :50 CONNECT-XSERVER
+#?SESSION-X-50 START USER=have-password1
+#?XSERVER-50 ACCEPT-CONNECT
+#?SESSION-X-50 CONNECT-XSERVER
# Switch to an account without a password
#?*SWITCH-TO-USER USERNAME=no-password1
#?RUNNER SWITCH-TO-USER USERNAME=no-password1
# New X server starts
-#?XSERVER :51 START
-#?XSERVER :51 INDICATE-READY
+#?XSERVER-51 START
+#?XSERVER-51 INDICATE-READY
# LightDM connects to X server
-#?XSERVER :51 ACCEPT-CONNECT
+#?XSERVER-51 ACCEPT-CONNECT
# New session starts
-#?SESSION :51 START USER=no-password1
-#?XSERVER :51 ACCEPT-CONNECT
-#?SESSION :51 CONNECT-XSERVER
+#?SESSION-X-51 START USER=no-password1
+#?XSERVER-51 ACCEPT-CONNECT
+#?SESSION-X-51 CONNECT-XSERVER
# Logout session
-#?*SESSION :51 LOGOUT
+#?*SESSION-X-51 LOGOUT
# X server stops
-#?XSERVER :51 TERMINATE SIGNAL=15
+#?XSERVER-51 TERMINATE SIGNAL=15
# X server starts for greeter
-#?XSERVER :51 START
-#?XSERVER :51 INDICATE-READY
+#?XSERVER-51 START
+#?XSERVER-51 INDICATE-READY
# LightDM connects to X server
-#?XSERVER :51 ACCEPT-CONNECT
+#?XSERVER-51 ACCEPT-CONNECT
# Greeter starts
-#?GREETER :51 START
-#?XSERVER :51 ACCEPT-CONNECT
-#?GREETER :51 CONNECT-XSERVER
-#?GREETER :51 CONNECT-TO-DAEMON
-#?GREETER :51 CONNECTED-TO-DAEMON
+#?GREETER-X-51 START
+#?XSERVER-51 ACCEPT-CONNECT
+#?GREETER-X-51 CONNECT-XSERVER
+#?GREETER-X-51 CONNECT-TO-DAEMON
+#?GREETER-X-51 CONNECTED-TO-DAEMON
# Cleanup
#?*STOP-DAEMON
-# Don't know what order they will terminate
-#?(SESSION :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15|GREETER :51 TERMINATE SIGNAL=15|XSERVER :51 TERMINATE SIGNAL=15)
-#?(SESSION :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15|GREETER :51 TERMINATE SIGNAL=15|XSERVER :51 TERMINATE SIGNAL=15)
-#?(SESSION :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15|GREETER :51 TERMINATE SIGNAL=15|XSERVER :51 TERMINATE SIGNAL=15)
-#?(SESSION :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15|GREETER :51 TERMINATE SIGNAL=15|XSERVER :51 TERMINATE SIGNAL=15)
+#?SESSION-X-50 TERMINATE SIGNAL=15
+#?XSERVER-50 TERMINATE SIGNAL=15
+#?GREETER-X-51 TERMINATE SIGNAL=15
+#?XSERVER-51 TERMINATE SIGNAL=15
#?RUNNER DAEMON-EXIT STATUS=0
#?*WAIT
# X server starts
-#?XSERVER :50 START
-#?XSERVER :50 INDICATE-READY
+#?XSERVER-50 START
+#?XSERVER-50 INDICATE-READY
# LightDM connects to X server
-#?XSERVER :50 ACCEPT-CONNECT
+#?XSERVER-50 ACCEPT-CONNECT
# Session starts
-#?SESSION :50 START USER=have-password1
-#?XSERVER :50 ACCEPT-CONNECT
-#?SESSION :50 CONNECT-XSERVER
+#?SESSION-X-50 START USER=have-password1
+#?XSERVER-50 ACCEPT-CONNECT
+#?SESSION-X-50 CONNECT-XSERVER
# Switch to account without a password
#?*SWITCH-TO-USER USERNAME=no-password1
#?RUNNER SWITCH-TO-USER USERNAME=no-password1
# New X server starts
-#?XSERVER :51 START
-#?XSERVER :51 INDICATE-READY
+#?XSERVER-51 START
+#?XSERVER-51 INDICATE-READY
# LightDM connects to X server
-#?XSERVER :51 ACCEPT-CONNECT
+#?XSERVER-51 ACCEPT-CONNECT
# New session starts
-#?SESSION :51 START USER=no-password1
-#?XSERVER :51 ACCEPT-CONNECT
-#?SESSION :51 CONNECT-XSERVER
+#?SESSION-X-51 START USER=no-password1
+#?XSERVER-51 ACCEPT-CONNECT
+#?SESSION-X-51 CONNECT-XSERVER
# Cleanup
#?*STOP-DAEMON
-# Don't know what order they will terminate
-#?(SESSION :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15|SESSION :51 TERMINATE SIGNAL=15|XSERVER :51 TERMINATE SIGNAL=15)
-#?(SESSION :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15|SESSION :51 TERMINATE SIGNAL=15|XSERVER :51 TERMINATE SIGNAL=15)
-#?(SESSION :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15|SESSION :51 TERMINATE SIGNAL=15|XSERVER :51 TERMINATE SIGNAL=15)
-#?(SESSION :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15|SESSION :51 TERMINATE SIGNAL=15|XSERVER :51 TERMINATE SIGNAL=15)
+#?SESSION-X-50 TERMINATE SIGNAL=15
+#?XSERVER-50 TERMINATE SIGNAL=15
+#?SESSION-X-51 TERMINATE SIGNAL=15
+#?XSERVER-51 TERMINATE SIGNAL=15
#?RUNNER DAEMON-EXIT STATUS=0
#?*WAIT
# X server starts
-#?XSERVER :50 START
-#?XSERVER :50 INDICATE-READY
+#?XSERVER-50 START
+#?XSERVER-50 INDICATE-READY
# LightDM connects to X server
-#?XSERVER :50 ACCEPT-CONNECT
+#?XSERVER-50 ACCEPT-CONNECT
# Session starts
-#?SESSION :50 START USER=no-password1
-#?XSERVER :50 ACCEPT-CONNECT
-#?SESSION :50 CONNECT-XSERVER
+#?SESSION-X-50 START USER=no-password1
+#?XSERVER-50 ACCEPT-CONNECT
+#?SESSION-X-50 CONNECT-XSERVER
# Switch to an account with a password
#?*SWITCH-TO-USER USERNAME=have-password1
#?RUNNER SWITCH-TO-USER USERNAME=have-password1
# New X server starts
-#?XSERVER :51 START
-#?XSERVER :51 INDICATE-READY
+#?XSERVER-51 START
+#?XSERVER-51 INDICATE-READY
# LightDM connects to X server
-#?XSERVER :51 ACCEPT-CONNECT
+#?XSERVER-51 ACCEPT-CONNECT
# Greeter starts
-#?GREETER :51 START
-#?XSERVER :51 ACCEPT-CONNECT
-#?GREETER :51 CONNECT-XSERVER
-#?GREETER :51 CONNECT-TO-DAEMON
-#?GREETER :51 CONNECTED-TO-DAEMON
+#?GREETER-X-51 START
+#?XSERVER-51 ACCEPT-CONNECT
+#?GREETER-X-51 CONNECT-XSERVER
+#?GREETER-X-51 CONNECT-TO-DAEMON
+#?GREETER-X-51 CONNECTED-TO-DAEMON
# Requested user is automatically selected
-#?GREETER :51 SELECT-USER-HINT USERNAME=have-password1
-#?*GREETER :51 AUTHENTICATE USERNAME=have-password1
-#?GREETER :51 SHOW-PROMPT TEXT="Password:"
+#?GREETER-X-51 SELECT-USER-HINT USERNAME=have-password1
+#?*GREETER-X-51 AUTHENTICATE USERNAME=have-password1
+#?GREETER-X-51 SHOW-PROMPT TEXT="Password:"
# Cleanup
#?*STOP-DAEMON
-# Don't know what order they will terminate
-#?(SESSION :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15|GREETER :51 TERMINATE SIGNAL=15|XSERVER :51 TERMINATE SIGNAL=15)
-#?(SESSION :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15|GREETER :51 TERMINATE SIGNAL=15|XSERVER :51 TERMINATE SIGNAL=15)
-#?(SESSION :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15|GREETER :51 TERMINATE SIGNAL=15|XSERVER :51 TERMINATE SIGNAL=15)
-#?(SESSION :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15|GREETER :51 TERMINATE SIGNAL=15|XSERVER :51 TERMINATE SIGNAL=15)
+#?SESSION-X-50 TERMINATE SIGNAL=15
+#?XSERVER-50 TERMINATE SIGNAL=15
+#?GREETER-X-51 TERMINATE SIGNAL=15
+#?XSERVER-51 TERMINATE SIGNAL=15
#?RUNNER DAEMON-EXIT STATUS=0
#?*WAIT
# X server starts
-#?XSERVER :50 START
-#?XSERVER :50 INDICATE-READY
+#?XSERVER-50 START
+#?XSERVER-50 INDICATE-READY
# LightDM connects to X server
-#?XSERVER :50 ACCEPT-CONNECT
+#?XSERVER-50 ACCEPT-CONNECT
# Session starts
-#?SESSION :50 START USER=have-password1
-#?XSERVER :50 ACCEPT-CONNECT
-#?SESSION :50 CONNECT-XSERVER
+#?SESSION-X-50 START USER=have-password1
+#?XSERVER-50 ACCEPT-CONNECT
+#?SESSION-X-50 CONNECT-XSERVER
# Switch to account without a password
#?*SWITCH-TO-USER USERNAME=no-password1
#?RUNNER SWITCH-TO-USER USERNAME=no-password1
# New X server starts
-#?XSERVER :51 START
-#?XSERVER :51 INDICATE-READY
+#?XSERVER-51 START
+#?XSERVER-51 INDICATE-READY
# LightDM connects to X server
-#?XSERVER :51 ACCEPT-CONNECT
+#?XSERVER-51 ACCEPT-CONNECT
# New session starts
-#?SESSION :51 START USER=no-password1
-#?XSERVER :51 ACCEPT-CONNECT
-#?SESSION :51 CONNECT-XSERVER
+#?SESSION-X-51 START USER=no-password1
+#?XSERVER-51 ACCEPT-CONNECT
+#?SESSION-X-51 CONNECT-XSERVER
# Switch to another account without a password
#?*SWITCH-TO-USER USERNAME=no-password2
#?RUNNER SWITCH-TO-USER USERNAME=no-password2
# New X server starts
-#?XSERVER :52 START
-#?XSERVER :52 INDICATE-READY
+#?XSERVER-52 START
+#?XSERVER-52 INDICATE-READY
# LightDM connects to X server
-#?XSERVER :52 ACCEPT-CONNECT
+#?XSERVER-52 ACCEPT-CONNECT
# New session starts
-#?SESSION :52 START USER=no-password2
-#?XSERVER :52 ACCEPT-CONNECT
-#?SESSION :52 CONNECT-XSERVER
+#?SESSION-X-52 START USER=no-password2
+#?XSERVER-52 ACCEPT-CONNECT
+#?SESSION-X-52 CONNECT-XSERVER
# Cleanup
#?*STOP-DAEMON
-# Don't know what order they will terminate
-#?(SESSION :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15|SESSION :51 TERMINATE SIGNAL=15|XSERVER :51 TERMINATE SIGNAL=15|SESSION :52 TERMINATE SIGNAL=15|XSERVER :52 TERMINATE SIGNAL=15)
-#?(SESSION :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15|SESSION :51 TERMINATE SIGNAL=15|XSERVER :51 TERMINATE SIGNAL=15|SESSION :52 TERMINATE SIGNAL=15|XSERVER :52 TERMINATE SIGNAL=15)
-#?(SESSION :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15|SESSION :51 TERMINATE SIGNAL=15|XSERVER :51 TERMINATE SIGNAL=15|SESSION :52 TERMINATE SIGNAL=15|XSERVER :52 TERMINATE SIGNAL=15)
-#?(SESSION :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15|SESSION :51 TERMINATE SIGNAL=15|XSERVER :51 TERMINATE SIGNAL=15|SESSION :52 TERMINATE SIGNAL=15|XSERVER :52 TERMINATE SIGNAL=15)
-#?(SESSION :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15|SESSION :51 TERMINATE SIGNAL=15|XSERVER :51 TERMINATE SIGNAL=15|SESSION :52 TERMINATE SIGNAL=15|XSERVER :52 TERMINATE SIGNAL=15)
-#?(SESSION :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15|SESSION :51 TERMINATE SIGNAL=15|XSERVER :51 TERMINATE SIGNAL=15|SESSION :52 TERMINATE SIGNAL=15|XSERVER :52 TERMINATE SIGNAL=15)
+#?SESSION-X-50 TERMINATE SIGNAL=15
+#?XSERVER-50 TERMINATE SIGNAL=15
+#?SESSION-X-51 TERMINATE SIGNAL=15
+#?XSERVER-51 TERMINATE SIGNAL=15
+#?SESSION-X-52 TERMINATE SIGNAL=15
+#?XSERVER-52 TERMINATE SIGNAL=15
#?RUNNER DAEMON-EXIT STATUS=0
#?RUNNER DAEMON-START
# X server starts
-#?XSERVER :50 START
-#?XSERVER :50 INDICATE-READY
+#?XSERVER-50 START
+#?XSERVER-50 INDICATE-READY
# LightDM connects to X server
-#?XSERVER :50 ACCEPT-CONNECT
+#?XSERVER-50 ACCEPT-CONNECT
# Session starts
-#?SESSION :50 START USER=have-password1
-#?XSERVER :50 ACCEPT-CONNECT
-#?SESSION :50 CONNECT-XSERVER
+#?SESSION-X-50 START USER=have-password1
+#?XSERVER-50 ACCEPT-CONNECT
+#?SESSION-X-50 CONNECT-XSERVER
# Check where the X authority is
-#?*SESSION :50 READ-ENV NAME=XAUTHORITY
-#?SESSION :50 READ-ENV NAME=XAUTHORITY VALUE=.*/var/run/lightdm/have-password1/xauthority
+#?*SESSION-X-50 READ-ENV NAME=XAUTHORITY
+#?SESSION-X-50 READ-ENV NAME=XAUTHORITY VALUE=.*/var/run/lightdm/have-password1/xauthority
# Cleanup
#?*STOP-DAEMON
-# Don't know what order they will terminate
-#?(SESSION :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
-#?(SESSION :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
+#?SESSION-X-50 TERMINATE SIGNAL=15
+#?XSERVER-50 TERMINATE SIGNAL=15
#?RUNNER DAEMON-EXIT STATUS=0
#?RUNNER DAEMON-START
# X server starts
-#?XSERVER :50 START
-#?XSERVER :50 INDICATE-READY
+#?XSERVER-50 START
+#?XSERVER-50 INDICATE-READY
# LightDM connects to X server
-#?XSERVER :50 ACCEPT-CONNECT
+#?XSERVER-50 ACCEPT-CONNECT
# (fails to start session for invalid user)
# Greeter starts
-#?GREETER :50 START
-#?XSERVER :50 ACCEPT-CONNECT
-#?GREETER :50 CONNECT-XSERVER
-#?GREETER :50 CONNECT-TO-DAEMON
-#?GREETER :50 CONNECTED-TO-DAEMON
+#?GREETER-X-50 START
+#?XSERVER-50 ACCEPT-CONNECT
+#?GREETER-X-50 CONNECT-XSERVER
+#?GREETER-X-50 CONNECT-TO-DAEMON
+#?GREETER-X-50 CONNECTED-TO-DAEMON
# Cleanup
#?*STOP-DAEMON
-# Don't know what order they will terminate
-#?(GREETER :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
-#?(GREETER :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
+#?GREETER-X-50 TERMINATE SIGNAL=15
+#?XSERVER-50 TERMINATE SIGNAL=15
#?RUNNER DAEMON-EXIT STATUS=0
#?RUNNER DAEMON-START
# X server starts
-#?XSERVER :50 START
-#?XSERVER :50 INDICATE-READY
+#?XSERVER-50 START
+#?XSERVER-50 INDICATE-READY
# LightDM connects to X server
-#?XSERVER :50 ACCEPT-CONNECT
+#?XSERVER-50 ACCEPT-CONNECT
# Session starts
-#?SESSION :50 START USER=change-user2
-#?XSERVER :50 ACCEPT-CONNECT
-#?SESSION :50 CONNECT-XSERVER
+#?SESSION-X-50 START USER=change-user2
+#?XSERVER-50 ACCEPT-CONNECT
+#?SESSION-X-50 CONNECT-XSERVER
# Cleanup
#?*STOP-DAEMON
-# Don't know what order they will terminate
-#?(SESSION :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
-#?(SESSION :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
+#?SESSION-X-50 TERMINATE SIGNAL=15
+#?XSERVER-50 TERMINATE SIGNAL=15
#?RUNNER DAEMON-EXIT STATUS=0
#?RUNNER DAEMON-START
# X server starts
-#?XSERVER :50 START
-#?XSERVER :50 INDICATE-READY
+#?XSERVER-50 START
+#?XSERVER-50 INDICATE-READY
# LightDM connects to X server
-#?XSERVER :50 ACCEPT-CONNECT
+#?XSERVER-50 ACCEPT-CONNECT
# Session starts
-#?SESSION :50 START USER=have-password1
-#?XSERVER :50 ACCEPT-CONNECT
-#?SESSION :50 CONNECT-XSERVER
+#?SESSION-X-50 START USER=have-password1
+#?XSERVER-50 ACCEPT-CONNECT
+#?SESSION-X-50 CONNECT-XSERVER
# Check utility path is there
-#?*SESSION :50 READ-ENV NAME=PATH
+#?*SESSION-X-50 READ-ENV NAME=PATH
# FIXME: This is a really crap regex and the path could be overridden in the configure stage
-#?SESSION :50 READ-ENV NAME=PATH VALUE=.*/lightdm:.*
+#?SESSION-X-50 READ-ENV NAME=PATH VALUE=.*/lightdm:.*
# Cleanup
#?*STOP-DAEMON
-# Don't know what order they will terminate
-#?(SESSION :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
-#?(SESSION :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
+#?SESSION-X-50 TERMINATE SIGNAL=15
+#?XSERVER-50 TERMINATE SIGNAL=15
#?RUNNER DAEMON-EXIT STATUS=0
#?VNC-CLIENT CONNECT SERVER=::9999
# Xvnc server starts
-#?XSERVER :50 START GEOMETRY=1024x768 DEPTH=8
+#?XSERVER-50 START GEOMETRY=1024x768 DEPTH=8
# Negotiate with Xvnc
#?VNC-CLIENT CONNECTED VERSION="RFB 003.007"
-#?XSERVER :50 INDICATE-READY
+#?XSERVER-50 INDICATE-READY
# LightDM and vnc-client connect to X server
-#?(XSERVER :50 VNC-CLIENT-CONNECT VERSION="RFB 003.003"|XSERVER :50 ACCEPT-CONNECT)
-#?(XSERVER :50 VNC-CLIENT-CONNECT VERSION="RFB 003.003"|XSERVER :50 ACCEPT-CONNECT)
+#?XSERVER-50 VNC-CLIENT-CONNECT VERSION="RFB 003.003"
+#?XSERVER-50 ACCEPT-CONNECT
# Greeter starts and connects to remote X server
-#?GREETER :50 START
-#?XSERVER :50 ACCEPT-CONNECT
-#?GREETER :50 CONNECT-XSERVER
-#?GREETER :50 CONNECT-TO-DAEMON
-#?GREETER :50 CONNECTED-TO-DAEMON
+#?GREETER-X-50 START
+#?XSERVER-50 ACCEPT-CONNECT
+#?GREETER-X-50 CONNECT-XSERVER
+#?GREETER-X-50 CONNECT-TO-DAEMON
+#?GREETER-X-50 CONNECTED-TO-DAEMON
# Log in
-#?*GREETER :50 AUTHENTICATE USERNAME=have-password1
-#?GREETER :50 SHOW-PROMPT TEXT="Password:"
-#?*GREETER :50 RESPOND TEXT="password"
-#?GREETER :50 AUTHENTICATION-COMPLETE USERNAME=have-password1 AUTHENTICATED=TRUE
-#?*GREETER :50 START-SESSION
-#?GREETER :50 TERMINATE SIGNAL=15
+#?*GREETER-X-50 AUTHENTICATE USERNAME=have-password1
+#?GREETER-X-50 SHOW-PROMPT TEXT="Password:"
+#?*GREETER-X-50 RESPOND TEXT="password"
+#?GREETER-X-50 AUTHENTICATION-COMPLETE USERNAME=have-password1 AUTHENTICATED=TRUE
+#?*GREETER-X-50 START-SESSION
+#?GREETER-X-50 TERMINATE SIGNAL=15
# Session starts
-#?SESSION :50 START USER=have-password1
-#?XSERVER :50 ACCEPT-CONNECT
-#?SESSION :50 CONNECT-XSERVER
+#?SESSION-X-50 START USER=have-password1
+#?XSERVER-50 ACCEPT-CONNECT
+#?SESSION-X-50 CONNECT-XSERVER
# Clean up
#?*STOP-DAEMON
-#?(SESSION :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
-#?(SESSION :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
+#?SESSION-X-50 TERMINATE SIGNAL=15
+#?XSERVER-50 TERMINATE SIGNAL=15
#?RUNNER DAEMON-EXIT STATUS=0
#?VNC-CLIENT CONNECT SERVER=::9999
# Xvnc server starts
-#?XSERVER :50 START GEOMETRY=1024x768 DEPTH=8
+#?XSERVER-50 START GEOMETRY=1024x768 DEPTH=8
# Negotiate with Xvnc
#?VNC-CLIENT CONNECTED VERSION="RFB 003.007"
-#?XSERVER :50 INDICATE-READY
+#?XSERVER-50 INDICATE-READY
-#?XSERVER :50 VNC-CLIENT-CONNECT VERSION="RFB 003.003"
+#?XSERVER-50 VNC-CLIENT-CONNECT VERSION="RFB 003.003"
# LightDM connects to X server
-#?XSERVER :50 ACCEPT-CONNECT
+#?XSERVER-50 ACCEPT-CONNECT
# Greeter starts and connects to remote X server
-#?GREETER :50 START
-#?XSERVER :50 ACCEPT-CONNECT
-#?GREETER :50 CONNECT-XSERVER
-#?GREETER :50 CONNECT-TO-DAEMON
-#?GREETER :50 CONNECTED-TO-DAEMON
+#?GREETER-X-50 START
+#?XSERVER-50 ACCEPT-CONNECT
+#?GREETER-X-50 CONNECT-XSERVER
+#?GREETER-X-50 CONNECT-TO-DAEMON
+#?GREETER-X-50 CONNECTED-TO-DAEMON
# Log in
-#?*GREETER :50 AUTHENTICATE USERNAME=have-password1
-#?GREETER :50 SHOW-PROMPT TEXT="Password:"
-#?*GREETER :50 RESPOND TEXT="password"
-#?GREETER :50 AUTHENTICATION-COMPLETE USERNAME=have-password1 AUTHENTICATED=TRUE
-#?*GREETER :50 START-SESSION
-#?GREETER :50 TERMINATE SIGNAL=15
+#?*GREETER-X-50 AUTHENTICATE USERNAME=have-password1
+#?GREETER-X-50 SHOW-PROMPT TEXT="Password:"
+#?*GREETER-X-50 RESPOND TEXT="password"
+#?GREETER-X-50 AUTHENTICATION-COMPLETE USERNAME=have-password1 AUTHENTICATED=TRUE
+#?*GREETER-X-50 START-SESSION
+#?GREETER-X-50 TERMINATE SIGNAL=15
# Session starts
-#?SESSION :50 START USER=have-password1
-#?XSERVER :50 ACCEPT-CONNECT
-#?SESSION :50 CONNECT-XSERVER
+#?SESSION-X-50 START USER=have-password1
+#?XSERVER-50 ACCEPT-CONNECT
+#?SESSION-X-50 CONNECT-XSERVER
# Check file descriptors
-#?*SESSION :50 LIST-UNKNOWN-FILE-DESCRIPTORS
-#?SESSION :50 LIST-UNKNOWN-FILE-DESCRIPTORS FDS=
+#?*SESSION-X-50 LIST-UNKNOWN-FILE-DESCRIPTORS
+#?SESSION-X-50 LIST-UNKNOWN-FILE-DESCRIPTORS FDS=
# Clean up
#?*STOP-DAEMON
-#?(SESSION :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
-#?(SESSION :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
+#?SESSION-X-50 TERMINATE SIGNAL=15
+#?XSERVER-50 TERMINATE SIGNAL=15
#?RUNNER DAEMON-EXIT STATUS=0
#?RUNNER DAEMON-START
# X server starts
-#?XSERVER :50 START
-#?XSERVER :50 INDICATE-READY
+#?XSERVER-50 START
+#?XSERVER-50 INDICATE-READY
# LightDM connects to X server
-#?XSERVER :50 ACCEPT-CONNECT
+#?XSERVER-50 ACCEPT-CONNECT
# Session starts
-#?SESSION :50 START USER=have-password1
-#?XSERVER :50 ACCEPT-CONNECT
-#?SESSION :50 CONNECT-XSERVER
+#?SESSION-X-50 START USER=have-password1
+#?XSERVER-50 ACCEPT-CONNECT
+#?SESSION-X-50 CONNECT-XSERVER
# Check where the X authority is
-#?*SESSION :50 READ-ENV NAME=XAUTHORITY
-#?SESSION :50 READ-ENV NAME=XAUTHORITY VALUE=.*/home/have-password1/.Xauthority
+#?*SESSION-X-50 READ-ENV NAME=XAUTHORITY
+#?SESSION-X-50 READ-ENV NAME=XAUTHORITY VALUE=.*/home/have-password1/.Xauthority
# Cleanup
#?*STOP-DAEMON
-# Don't know what order they will terminate
-#?(SESSION :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
-#?(SESSION :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
+#?SESSION-X-50 TERMINATE SIGNAL=15
+#?XSERVER-50 TERMINATE SIGNAL=15
#?RUNNER DAEMON-EXIT STATUS=0
# Start a remote X server to log in with XDMCP
#?*START-XSERVER ARGS=":98 -query localhost -port 9999 -nolisten unix"
-#?XSERVER :98 START
-#?XSERVER :98 SEND-QUERY
+#?XSERVER-98 START
+#?XSERVER-98 SEND-QUERY
# Negotiate with daemon
-#?XSERVER :98 GOT-WILLING AUTHENTICATION-NAME="" HOSTNAME="" STATUS=""
-#?XSERVER :98 SEND-REQUEST DISPLAY-NUMBER=98 AUTHORIZATION-NAME="MIT-MAGIC-COOKIE-1" MFID="TEST XSERVER"
-#?XSERVER :98 GOT-ACCEPT SESSION-ID=[0-9]* AUTHENTICATION-NAME="" AUTHORIZATION-NAME="MIT-MAGIC-COOKIE-1"
-#?XSERVER :98 SEND-MANAGE SESSION-ID=[0-9]* DISPLAY-NUMBER=98 DISPLAY-CLASS="DISPLAY CLASS"
+#?XSERVER-98 GOT-WILLING AUTHENTICATION-NAME="" HOSTNAME="" STATUS=""
+#?XSERVER-98 SEND-REQUEST DISPLAY-NUMBER=98 AUTHORIZATION-NAME="MIT-MAGIC-COOKIE-1" MFID="TEST XSERVER"
+#?XSERVER-98 GOT-ACCEPT SESSION-ID=[0-9]* AUTHENTICATION-NAME="" AUTHORIZATION-NAME="MIT-MAGIC-COOKIE-1"
+#?XSERVER-98 SEND-MANAGE SESSION-ID=[0-9]* DISPLAY-NUMBER=98 DISPLAY-CLASS="DISPLAY CLASS"
# LightDM connects to X server
-#?XSERVER :98 TCP-ACCEPT-CONNECT
+#?XSERVER-98 TCP-ACCEPT-CONNECT
# Greeter starts and connects to remote X server
-#?GREETER 127.0.0.1:98 START
-#?XSERVER :98 TCP-ACCEPT-CONNECT
-#?GREETER 127.0.0.1:98 CONNECT-XSERVER
-#?GREETER 127.0.0.1:98 CONNECT-TO-DAEMON
-#?GREETER 127.0.0.1:98 CONNECTED-TO-DAEMON
+#?GREETER-X-127.0.0.1:98 START
+#?XSERVER-98 TCP-ACCEPT-CONNECT
+#?GREETER-X-127.0.0.1:98 CONNECT-XSERVER
+#?GREETER-X-127.0.0.1:98 CONNECT-TO-DAEMON
+#?GREETER-X-127.0.0.1:98 CONNECTED-TO-DAEMON
# Log in
-#?*GREETER 127.0.0.1:98 AUTHENTICATE USERNAME=have-password1
-#?GREETER 127.0.0.1:98 SHOW-PROMPT TEXT="Password:"
-#?*GREETER 127.0.0.1:98 RESPOND TEXT="password"
-#?GREETER 127.0.0.1:98 AUTHENTICATION-COMPLETE USERNAME=have-password1 AUTHENTICATED=TRUE
-#?*GREETER 127.0.0.1:98 START-SESSION
-#?GREETER 127.0.0.1:98 TERMINATE SIGNAL=15
+#?*GREETER-X-127.0.0.1:98 AUTHENTICATE USERNAME=have-password1
+#?GREETER-X-127.0.0.1:98 SHOW-PROMPT TEXT="Password:"
+#?*GREETER-X-127.0.0.1:98 RESPOND TEXT="password"
+#?GREETER-X-127.0.0.1:98 AUTHENTICATION-COMPLETE USERNAME=have-password1 AUTHENTICATED=TRUE
+#?*GREETER-X-127.0.0.1:98 START-SESSION
+#?GREETER-X-127.0.0.1:98 TERMINATE SIGNAL=15
# Session starts
-#?SESSION 127.0.0.1:98 START USER=have-password1
-#?XSERVER :98 TCP-ACCEPT-CONNECT
-#?SESSION 127.0.0.1:98 CONNECT-XSERVER
+#?SESSION-X-127.0.0.1:98 START USER=have-password1
+#?XSERVER-98 TCP-ACCEPT-CONNECT
+#?SESSION-X-127.0.0.1:98 CONNECT-XSERVER
# Clean up
#?*STOP-DAEMON
-#?SESSION 127.0.0.1:98 TERMINATE SIGNAL=15
+#?SESSION-X-127.0.0.1:98 TERMINATE SIGNAL=15
#?RUNNER DAEMON-EXIT STATUS=0
# Start a remote X server to log in with XDMCP
#?*START-XSERVER ARGS=":98 -query localhost -port 9999 -nolisten unix"
-#?XSERVER :98 START
-#?XSERVER :98 SEND-QUERY
+#?XSERVER-98 START
+#?XSERVER-98 SEND-QUERY
# Negotiate with daemon
-#?XSERVER :98 GOT-WILLING AUTHENTICATION-NAME="" HOSTNAME="" STATUS=""
-#?XSERVER :98 SEND-REQUEST DISPLAY-NUMBER=98 AUTHORIZATION-NAME="MIT-MAGIC-COOKIE-1" MFID="TEST XSERVER"
-#?XSERVER :98 GOT-ACCEPT SESSION-ID=[0-9]* AUTHENTICATION-NAME="" AUTHORIZATION-NAME="MIT-MAGIC-COOKIE-1"
-#?XSERVER :98 SEND-MANAGE SESSION-ID=[0-9]* DISPLAY-NUMBER=98 DISPLAY-CLASS="DISPLAY CLASS"
+#?XSERVER-98 GOT-WILLING AUTHENTICATION-NAME="" HOSTNAME="" STATUS=""
+#?XSERVER-98 SEND-REQUEST DISPLAY-NUMBER=98 AUTHORIZATION-NAME="MIT-MAGIC-COOKIE-1" MFID="TEST XSERVER"
+#?XSERVER-98 GOT-ACCEPT SESSION-ID=[0-9]* AUTHENTICATION-NAME="" AUTHORIZATION-NAME="MIT-MAGIC-COOKIE-1"
+#?XSERVER-98 SEND-MANAGE SESSION-ID=[0-9]* DISPLAY-NUMBER=98 DISPLAY-CLASS="DISPLAY CLASS"
# LightDM connects to X server
-#?XSERVER :98 TCP-ACCEPT-CONNECT
+#?XSERVER-98 TCP-ACCEPT-CONNECT
# Greeter starts and connects to remote X server
-#?GREETER 127.0.0.1:98 START
-#?XSERVER :98 TCP-ACCEPT-CONNECT
-#?GREETER 127.0.0.1:98 CONNECT-XSERVER
-#?GREETER 127.0.0.1:98 CONNECT-TO-DAEMON
-#?GREETER 127.0.0.1:98 CONNECTED-TO-DAEMON
+#?GREETER-X-127.0.0.1:98 START
+#?XSERVER-98 TCP-ACCEPT-CONNECT
+#?GREETER-X-127.0.0.1:98 CONNECT-XSERVER
+#?GREETER-X-127.0.0.1:98 CONNECT-TO-DAEMON
+#?GREETER-X-127.0.0.1:98 CONNECTED-TO-DAEMON
# Log in
-#?*GREETER 127.0.0.1:98 AUTHENTICATE USERNAME=have-password1
-#?GREETER 127.0.0.1:98 SHOW-PROMPT TEXT="Password:"
-#?*GREETER 127.0.0.1:98 RESPOND TEXT="password"
-#?GREETER 127.0.0.1:98 AUTHENTICATION-COMPLETE USERNAME=have-password1 AUTHENTICATED=TRUE
-#?*GREETER 127.0.0.1:98 START-SESSION
-#?GREETER 127.0.0.1:98 TERMINATE SIGNAL=15
+#?*GREETER-X-127.0.0.1:98 AUTHENTICATE USERNAME=have-password1
+#?GREETER-X-127.0.0.1:98 SHOW-PROMPT TEXT="Password:"
+#?*GREETER-X-127.0.0.1:98 RESPOND TEXT="password"
+#?GREETER-X-127.0.0.1:98 AUTHENTICATION-COMPLETE USERNAME=have-password1 AUTHENTICATED=TRUE
+#?*GREETER-X-127.0.0.1:98 START-SESSION
+#?GREETER-X-127.0.0.1:98 TERMINATE SIGNAL=15
# Session starts
-#?SESSION 127.0.0.1:98 START USER=have-password1
-#?XSERVER :98 TCP-ACCEPT-CONNECT
-#?SESSION 127.0.0.1:98 CONNECT-XSERVER
+#?SESSION-X-127.0.0.1:98 START USER=have-password1
+#?XSERVER-98 TCP-ACCEPT-CONNECT
+#?SESSION-X-127.0.0.1:98 CONNECT-XSERVER
# Check file descriptors
-#?*SESSION 127.0.0.1:98 LIST-UNKNOWN-FILE-DESCRIPTORS
-#?SESSION 127.0.0.1:98 LIST-UNKNOWN-FILE-DESCRIPTORS FDS=
+#?*SESSION-X-127.0.0.1:98 LIST-UNKNOWN-FILE-DESCRIPTORS
+#?SESSION-X-127.0.0.1:98 LIST-UNKNOWN-FILE-DESCRIPTORS FDS=
# Clean up
#?*STOP-DAEMON
-#?SESSION 127.0.0.1:98 TERMINATE SIGNAL=15
+#?SESSION-X-127.0.0.1:98 TERMINATE SIGNAL=15
#?RUNNER DAEMON-EXIT STATUS=0
#?RUNNER DAEMON-START
# X server fails to start
-#?XSERVER :50 START
-#?XSERVER :50 EXIT CODE=1
+#?XSERVER-50 START
+#?XSERVER-50 EXIT CODE=1
# Daemon stops with error
#?RUNNER DAEMON-EXIT STATUS=1
-I$(top_srcdir)/liblightdm-gobject \
$(WARN_CFLAGS) \
$(GLIB_CFLAGS) \
- $(GIO_UNIX_CFLAGS) \
- $(XCB_CFLAGS)
+ $(GIO_UNIX_CFLAGS)
test_gobject_greeter_LDADD = \
-L$(top_builddir)/liblightdm-gobject \
-llightdm-gobject-1 \
$(GLIB_LIBS) \
- $(GIO_UNIX_LIBS) \
- $(XCB_LIBS)
+ $(GIO_UNIX_LIBS)
guest_account_SOURCES = guest-account.c status.c status.h
guest_account_CFLAGS = \
nodist_test_qt5_greeter_SOURCES = test-qt5-greeter_moc5.cpp
common_qt_cflags = \
$(GLIB_CFLAGS) \
- $(GIO_UNIX_CFLAGS) \
- $(XCB_CFLAGS)
+ $(GIO_UNIX_CFLAGS)
test_qt4_greeter_CFLAGS = $(common_qt_cflags)
test_qt5_greeter_CFLAGS = $(common_qt_cflags)
common_qt_cxxflags = \
common_qt_ldadd = \
-L$(top_builddir)/liblightdm-qt \
$(GLIB_LIBS) \
- $(GIO_UNIX_LIBS) \
- $(XCB_LIBS)
+ $(GIO_UNIX_LIBS)
test_qt4_greeter_LDADD = \
$(common_qt_ldadd) \
-llightdm-qt-2 \
test_session_CFLAGS = \
$(WARN_CFLAGS) \
$(GLIB_CFLAGS) \
- $(GIO_UNIX_CFLAGS) \
- $(XCB_CFLAGS)
+ $(GIO_UNIX_CFLAGS)
test_session_LDADD = \
$(GLIB_LIBS) \
- $(GIO_UNIX_LIBS) \
- $(XCB_LIBS)
+ $(GIO_UNIX_LIBS)
initctl_SOURCES = initctl.c
initctl_CFLAGS = \
handler = signal (SIGUSR1, SIG_IGN);
if (handler == SIG_IGN)
{
- status_notify ("XSERVER :%d INDICATE-READY", display_number);
+ status_notify ("XSERVER-%d INDICATE-READY", display_number);
kill (getppid (), SIGUSR1);
}
signal (SIGUSR1, handler);
{
if (signum == SIGHUP)
{
- status_notify ("XSERVER :%d DISCONNECT-CLIENTS", display_number);
+ status_notify ("XSERVER-%d DISCONNECT-CLIENTS", display_number);
indicate_ready ();
}
else
{
- status_notify ("XSERVER :%d TERMINATE SIGNAL=%d", display_number, signum);
+ status_notify ("XSERVER-%d TERMINATE SIGNAL=%d", display_number, signum);
quit (EXIT_SUCCESS);
}
}
if (!notified_query)
{
- status_notify ("XSERVER :%d SEND-QUERY", display_number);
+ status_notify ("XSERVER-%d SEND-QUERY", display_number);
notified_query = TRUE;
}
}
gchar **authorization_names;
GInetAddress *addresses[2];
- status_notify ("XSERVER :%d GOT-WILLING AUTHENTICATION-NAME=\"%s\" HOSTNAME=\"%s\" STATUS=\"%s\"", display_number, message->authentication_name, message->hostname, message->status);
+ status_notify ("XSERVER-%d GOT-WILLING AUTHENTICATION-NAME=\"%s\" HOSTNAME=\"%s\" STATUS=\"%s\"", display_number, message->authentication_name, message->hostname, message->status);
- status_notify ("XSERVER :%d SEND-REQUEST DISPLAY-NUMBER=%d AUTHORIZATION-NAME=\"%s\" MFID=\"%s\"", display_number, display_number, "MIT-MAGIC-COOKIE-1", "TEST XSERVER");
+ status_notify ("XSERVER-%d SEND-REQUEST DISPLAY-NUMBER=%d AUTHORIZATION-NAME=\"%s\" MFID=\"%s\"", display_number, display_number, "MIT-MAGIC-COOKIE-1", "TEST XSERVER");
authorization_names = g_strsplit ("MIT-MAGIC-COOKIE-1", " ", -1);
addresses[0] = xdmcp_client_get_local_address (client);
static void
xdmcp_accept_cb (XDMCPClient *client, XDMCPAccept *message)
{
- status_notify ("XSERVER :%d GOT-ACCEPT SESSION-ID=%d AUTHENTICATION-NAME=\"%s\" AUTHORIZATION-NAME=\"%s\"", display_number, message->session_id, message->authentication_name, message->authorization_name);
+ status_notify ("XSERVER-%d GOT-ACCEPT SESSION-ID=%d AUTHENTICATION-NAME=\"%s\" AUTHORIZATION-NAME=\"%s\"", display_number, message->session_id, message->authentication_name, message->authorization_name);
/* Ignore if haven't picked a valid authorization */
if (strcmp (message->authorization_name, "MIT-MAGIC-COOKIE-1") != 0)
xdmcp_cookie = g_malloc (message->authorization_data_length);
memcpy (xdmcp_cookie, message->authorization_data, message->authorization_data_length);
- status_notify ("XSERVER :%d SEND-MANAGE SESSION-ID=%d DISPLAY-NUMBER=%d DISPLAY-CLASS=\"%s\"", display_number, message->session_id, display_number, "DISPLAY CLASS");
+ status_notify ("XSERVER-%d SEND-MANAGE SESSION-ID=%d DISPLAY-NUMBER=%d DISPLAY-CLASS=\"%s\"", display_number, message->session_id, display_number, "DISPLAY CLASS");
xdmcp_client_send_manage (client, message->session_id, display_number, "DISPLAY CLASS");
}
static void
xdmcp_decline_cb (XDMCPClient *client, XDMCPDecline *message)
{
- status_notify ("XSERVER :%d GOT-DECLINE STATUS=\"%s\" AUTHENTICATION-NAME=\"%s\"", display_number, message->status, message->authentication_name);
+ status_notify ("XSERVER-%d GOT-DECLINE STATUS=\"%s\" AUTHENTICATION-NAME=\"%s\"", display_number, message->status, message->authentication_name);
}
static void
xdmcp_failed_cb (XDMCPClient *client, XDMCPFailed *message)
{
- status_notify ("XSERVER :%d GOT-FAILED SESSION-ID=%d STATUS=\"%s\"", display_number, message->session_id, message->status);
+ status_notify ("XSERVER-%d GOT-FAILED SESSION-ID=%d STATUS=\"%s\"", display_number, message->session_id, message->status);
}
static void
gchar *auth_error = NULL;
if (x_client_get_address (client))
- status_notify ("XSERVER :%d TCP-ACCEPT-CONNECT", display_number);
+ status_notify ("XSERVER-%d TCP-ACCEPT-CONNECT", display_number);
else
- status_notify ("XSERVER :%d ACCEPT-CONNECT", display_number);
+ status_notify ("XSERVER-%d ACCEPT-CONNECT", display_number);
if (xdmcp_client)
{
return;
}
- r = g_strdup_printf ("XSERVER :%d CRASH", display_number);
+ r = g_strdup_printf ("XSERVER-%d CRASH", display_number);
if (strcmp (request, r) == 0)
{
cleanup ();
gboolean do_xdmcp = FALSE;
guint xdmcp_port = 0;
gchar *xdmcp_host = NULL;
+ gchar *lock_filename;
int lock_file;
signal (SIGINT, signal_cb);
/* Add fake screen so that libx11 calls don't freak out when they can't find a screen */
x_server_add_screen (xserver, 0xffffff, 0x000000, 0, 1024, 768, 1000, 1000);
- status_notify ("XSERVER :%d START", display_number);
+ status_notify ("XSERVER-%d START", display_number);
config = g_key_file_new ();
g_key_file_load_from_file (config, g_build_filename (g_getenv ("LIGHTDM_TEST_ROOT"), "script", NULL), G_KEY_FILE_NONE, NULL);
if (g_key_file_has_key (config, "test-xserver-config", "return-value", NULL))
{
int return_value = g_key_file_get_integer (config, "test-xserver-config", "return-value", NULL);
- status_notify ("XSERVER :%d EXIT CODE=%d", display_number, return_value);
+ status_notify ("XSERVER-%d EXIT CODE=%d", display_number, return_value);
return return_value;
}
- lock_path = g_strdup_printf ("/tmp/.X%d-lock", display_number);
+ lock_filename = g_strdup_printf (".X%d-lock", display_number);
+ lock_path = g_build_filename (g_getenv ("LIGHTDM_TEST_ROOT"), "tmp", lock_filename, NULL);
+ g_free (lock_filename);
lock_file = open (lock_path, O_CREAT | O_EXCL | O_WRONLY, 0444);
if (lock_file < 0)
{
proc_filename = g_strdup_printf ("/proc/%d", pid);
if (!g_file_test (proc_filename, G_FILE_TEST_EXISTS))
{
+ gchar *socket_dir;
+ gchar *socket_filename;
gchar *socket_path;
- socket_path = g_strdup_printf ("/tmp/.X11-unix/X%d", display_number);
+ socket_dir = g_build_filename (g_getenv ("LIGHTDM_TEST_ROOT"), "tmp", ".X11-unix", NULL);
+ g_mkdir_with_parents (socket_dir, 0755);
+
+ socket_filename = g_strdup_printf ("X%d", display_number);
+ socket_path = g_build_filename (socket_dir, socket_filename, NULL);
g_printerr ("Breaking lock on non-existant process %d\n", pid);
unlink (lock_path);
unlink (socket_path);
+ g_free (socket_dir);
+ g_free (socket_filename);
g_free (socket_path);
}
g_free (proc_filename);
handler = signal (SIGUSR1, SIG_IGN);
if (handler == SIG_IGN)
{
- status_notify ("XSERVER :%d INDICATE-READY", display_number);
+ status_notify ("XSERVER-%d INDICATE-READY", display_number);
kill (getppid (), SIGUSR1);
}
signal (SIGUSR1, handler);
{
if (signum == SIGHUP)
{
- status_notify ("XSERVER :%d DISCONNECT-CLIENTS", display_number);
+ status_notify ("XSERVER-%d DISCONNECT-CLIENTS", display_number);
indicate_ready ();
}
else
{
- status_notify ("XSERVER :%d TERMINATE SIGNAL=%d", display_number, signum);
+ status_notify ("XSERVER-%d TERMINATE SIGNAL=%d", display_number, signum);
quit (EXIT_SUCCESS);
}
}
gchar *auth_error = NULL;
if (x_client_get_address (client))
- status_notify ("XSERVER :%d TCP-ACCEPT-CONNECT", display_number);
+ status_notify ("XSERVER-%d TCP-ACCEPT-CONNECT", display_number);
else
- status_notify ("XSERVER :%d ACCEPT-CONNECT", display_number);
+ status_notify ("XSERVER-%d ACCEPT-CONNECT", display_number);
if (auth_path)
{
buffer[n_read] = '\0';
if (g_str_has_suffix (buffer, "\n"))
buffer[n_read-1] = '\0';
- status_notify ("XSERVER :%d VNC-CLIENT-CONNECT VERSION=\"%s\"", display_number, buffer);
+ status_notify ("XSERVER-%d VNC-CLIENT-CONNECT VERSION=\"%s\"", display_number, buffer);
}
return TRUE;
gboolean use_inetd = FALSE;
gchar *geometry = g_strdup ("640x480");
gint depth = 8;
+ gchar *lock_filename;
int lock_file;
int i;
x_server_set_listen_unix (xserver, listen_unix);
x_server_set_listen_tcp (xserver, listen_tcp);
- status_notify ("XSERVER :%d START GEOMETRY=%s DEPTH=%d", display_number, geometry, depth);
+ status_notify ("XSERVER-%d START GEOMETRY=%s DEPTH=%d", display_number, geometry, depth);
config = g_key_file_new ();
g_key_file_load_from_file (config, g_build_filename (g_getenv ("LIGHTDM_TEST_ROOT"), "script", NULL), G_KEY_FILE_NONE, NULL);
return EXIT_FAILURE;
}
- lock_path = g_strdup_printf ("/tmp/.X%d-lock", display_number);
+ lock_filename = g_strdup_printf (".X%d-lock", display_number);
+ lock_path = g_build_filename (g_getenv ("LIGHTDM_TEST_ROOT"), "tmp", lock_filename, NULL);
+ g_free (lock_filename);
lock_file = open (lock_path, O_CREAT | O_EXCL | O_WRONLY, 0444);
if (lock_file < 0)
{
return open_wrapper ("open64", pathname, flags, mode);
}
+int
+access (const char *pathname, int mode)
+{
+ int (*_access) (const char *pathname, int mode);
+ gchar *new_path = NULL;
+ int ret;
+
+ _access = (int (*)(const char *pathname, int mode)) dlsym (RTLD_NEXT, "access");
+
+ new_path = redirect_path (pathname);
+ ret = _access (new_path, mode);
+ g_free (new_path);
+
+ return ret;
+}
+
int
ioctl (int d, int request, void *data)
{
if (error)
g_printerr ("Failed to write to status socket: %s\n", error->message);
g_clear_error (&error);
- /* We sync filesystem here, to guarantee that statuses sent from
- multiple process (e.g. greeter and X) are all ordered correctly.
- Without this, there is a race that manifests occasionally between
- close status_notify calls. fsync does not seem to do the trick. */
- sync ();
}
else
g_printerr ("%s\n", status);
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
-#include <xcb/xcb.h>
#include <lightdm.h>
#include "status.h"
+static gchar *greeter_id;
static GMainLoop *loop;
static LightDMGreeter *greeter;
static xcb_connection_t *connection = NULL;
static void
show_message_cb (LightDMGreeter *greeter, const gchar *text, LightDMMessageType type)
{
- status_notify ("GREETER %s SHOW-MESSAGE TEXT=\"%s\"", getenv ("DISPLAY"), text);
+ status_notify ("%s SHOW-MESSAGE TEXT=\"%s\"", greeter_id, text);
}
static void
show_prompt_cb (LightDMGreeter *greeter, const gchar *text, LightDMPromptType type)
{
- status_notify ("GREETER %s SHOW-PROMPT TEXT=\"%s\"", getenv ("DISPLAY"), text);
+ status_notify ("%s SHOW-PROMPT TEXT=\"%s\"", greeter_id, text);
}
static void
authentication_complete_cb (LightDMGreeter *greeter)
{
if (lightdm_greeter_get_authentication_user (greeter))
- status_notify ("GREETER %s AUTHENTICATION-COMPLETE USERNAME=%s AUTHENTICATED=%s",
- getenv ("DISPLAY"),
+ status_notify ("%s AUTHENTICATION-COMPLETE USERNAME=%s AUTHENTICATED=%s",
+ greeter_id,
lightdm_greeter_get_authentication_user (greeter),
lightdm_greeter_get_is_authenticated (greeter) ? "TRUE" : "FALSE");
else
- status_notify ("GREETER %s AUTHENTICATION-COMPLETE AUTHENTICATED=%s",
- getenv ("DISPLAY"),
+ status_notify ("%s AUTHENTICATION-COMPLETE AUTHENTICATED=%s",
+ greeter_id,
lightdm_greeter_get_is_authenticated (greeter) ? "TRUE" : "FALSE");
}
static void
autologin_timer_expired_cb (LightDMGreeter *greeter)
{
- status_notify ("GREETER %s AUTOLOGIN-TIMER-EXPIRED", getenv ("DISPLAY"));
+ status_notify ("%s AUTOLOGIN-TIMER-EXPIRED", greeter_id);
}
static void
signal_cb (int signum)
{
- status_notify ("GREETER %s TERMINATE SIGNAL=%d", getenv ("DISPLAY"), signum);
+ status_notify ("%s TERMINATE SIGNAL=%d", greeter_id, signum);
exit (EXIT_SUCCESS);
}
return;
}
- r = g_strdup_printf ("GREETER %s AUTHENTICATE", getenv ("DISPLAY"));
+ r = g_strdup_printf ("%s AUTHENTICATE", greeter_id);
if (strcmp (request, r) == 0)
lightdm_greeter_authenticate (greeter, NULL);
g_free (r);
- r = g_strdup_printf ("GREETER %s AUTHENTICATE USERNAME=", getenv ("DISPLAY"));
+ r = g_strdup_printf ("%s AUTHENTICATE USERNAME=", greeter_id);
if (g_str_has_prefix (request, r))
lightdm_greeter_authenticate (greeter, request + strlen (r));
g_free (r);
- r = g_strdup_printf ("GREETER %s AUTHENTICATE-GUEST", getenv ("DISPLAY"));
+ r = g_strdup_printf ("%s AUTHENTICATE-GUEST", greeter_id);
if (strcmp (request, r) == 0)
lightdm_greeter_authenticate_as_guest (greeter);
g_free (r);
- r = g_strdup_printf ("GREETER %s AUTHENTICATE-AUTOLOGIN", getenv ("DISPLAY"));
+ r = g_strdup_printf ("%s AUTHENTICATE-AUTOLOGIN", greeter_id);
if (strcmp (request, r) == 0)
lightdm_greeter_authenticate_autologin (greeter);
g_free (r);
- r = g_strdup_printf ("GREETER %s AUTHENTICATE-REMOTE SESSION=", getenv ("DISPLAY"));
+ r = g_strdup_printf ("%s AUTHENTICATE-REMOTE SESSION=", greeter_id);
if (g_str_has_prefix (request, r))
lightdm_greeter_authenticate_remote (greeter, request + strlen (r), NULL);
g_free (r);
- r = g_strdup_printf ("GREETER %s RESPOND TEXT=\"", getenv ("DISPLAY"));
+ r = g_strdup_printf ("%s RESPOND TEXT=\"", greeter_id);
if (g_str_has_prefix (request, r))
{
gchar *text = g_strdup (request + strlen (r));
}
g_free (r);
- r = g_strdup_printf ("GREETER %s START-SESSION", getenv ("DISPLAY"));
+ r = g_strdup_printf ("%s START-SESSION", greeter_id);
if (strcmp (request, r) == 0)
{
if (!lightdm_greeter_start_session_sync (greeter, NULL, NULL))
- status_notify ("GREETER %s SESSION-FAILED", getenv ("DISPLAY"));
+ status_notify ("%s SESSION-FAILED", greeter_id);
}
g_free (r);
- r = g_strdup_printf ("GREETER %s START-SESSION SESSION=", getenv ("DISPLAY"));
+ r = g_strdup_printf ("%s START-SESSION SESSION=", greeter_id);
if (g_str_has_prefix (request, r))
{
if (!lightdm_greeter_start_session_sync (greeter, request + strlen (r), NULL))
- status_notify ("GREETER %s SESSION-FAILED", getenv ("DISPLAY"));
+ status_notify ("%s SESSION-FAILED", greeter_id);
}
g_free (r);
- r = g_strdup_printf ("GREETER %s LOG-LAYOUT", getenv ("DISPLAY"));
+ r = g_strdup_printf ("%s LOG-LAYOUT", greeter_id);
if (strcmp (request, r) == 0)
{
const gchar *layout;
layout = lightdm_layout_get_name (lightdm_get_layout ());
- status_notify ("GREETER %s LOG-LAYOUT LAYOUT='%s'", getenv ("DISPLAY"), layout ? layout : "");
+ status_notify ("%s LOG-LAYOUT LAYOUT='%s'", greeter_id, layout ? layout : "");
}
- r = g_strdup_printf ("GREETER %s LOG-LAYOUT USERNAME=", getenv ("DISPLAY"));
+ r = g_strdup_printf ("%s LOG-LAYOUT USERNAME=", greeter_id);
if (g_str_has_prefix (request, r))
{
LightDMUser *user;
user = lightdm_user_list_get_user_by_name (lightdm_user_list_get_instance (), username);
layout = lightdm_user_get_layout (user);
- status_notify ("GREETER %s LOG-LAYOUT USERNAME=%s LAYOUT='%s'", getenv ("DISPLAY"), username, layout ? layout : "");
+ status_notify ("%s LOG-LAYOUT USERNAME=%s LAYOUT='%s'", greeter_id, username, layout ? layout : "");
}
g_free (r);
- r = g_strdup_printf ("GREETER %s LOG-LAYOUTS USERNAME=", getenv ("DISPLAY"));
+ r = g_strdup_printf ("%s LOG-LAYOUTS USERNAME=", greeter_id);
if (g_str_has_prefix (request, r))
{
LightDMUser *user;
layouts = lightdm_user_get_layouts (user);
for (i = 0; layouts[i]; i++)
- status_notify ("GREETER %s LOG-LAYOUTS USERNAME=%s LAYOUT='%s'", getenv ("DISPLAY"), username, layouts[i]);
+ status_notify ("%s LOG-LAYOUTS USERNAME=%s LAYOUT='%s'", greeter_id, username, layouts[i]);
}
g_free (r);
- r = g_strdup_printf ("GREETER %s LOG-VARIANTS LAYOUT=", getenv ("DISPLAY"));
+ r = g_strdup_printf ("%s LOG-VARIANTS LAYOUT=", greeter_id);
if (g_str_has_prefix (request, r))
{
GList *layouts, *iter;
name = lightdm_layout_get_name (layout);
if (g_str_has_prefix (name, layout_prefix))
- status_notify ("GREETER %s LOG-VARIANTS LAYOUT='%s'", getenv ("DISPLAY"), name);
+ status_notify ("%s LOG-VARIANTS LAYOUT='%s'", greeter_id, name);
}
}
g_free (r);
- r = g_strdup_printf ("GREETER %s LOG-LANGUAGE USERNAME=", getenv ("DISPLAY"));
+ r = g_strdup_printf ("%s LOG-LANGUAGE USERNAME=", greeter_id);
if (g_str_has_prefix (request, r))
{
LightDMUser *user;
user = lightdm_user_list_get_user_by_name (lightdm_user_list_get_instance (), username);
language = lightdm_user_get_language (user);
- status_notify ("GREETER %s LOG-LANGUAGE USERNAME=%s LANGUAGE=%s", getenv ("DISPLAY"), username, language ? language : "");
+ status_notify ("%s LOG-LANGUAGE USERNAME=%s LANGUAGE=%s", greeter_id, username, language ? language : "");
}
g_free (r);
}
int
main (int argc, char **argv)
{
+ gchar *display;
+
signal (SIGINT, signal_cb);
signal (SIGTERM, signal_cb);
g_type_init ();
#endif
+ display = getenv ("DISPLAY");
+ if (display == NULL)
+ greeter_id = g_strdup ("GREETER-?");
+ else if (display[0] == ':')
+ greeter_id = g_strdup_printf ("GREETER-X-%s", display + 1);
+ else
+ greeter_id = g_strdup_printf ("GREETER-X-%s", display);
+
loop = g_main_loop_new (NULL, FALSE);
status_connect (request_cb);
- status_notify ("GREETER %s START", getenv ("DISPLAY"));
+ status_notify ("%s START", greeter_id);
config = g_key_file_new ();
g_key_file_load_from_file (config, g_build_filename (g_getenv ("LIGHTDM_TEST_ROOT"), "script", NULL), G_KEY_FILE_NONE, NULL);
if (g_key_file_has_key (config, "test-greeter-config", "return-value", NULL))
{
int return_value = g_key_file_get_integer (config, "test-greeter-config", "return-value", NULL);
- status_notify ("GREETER %s EXIT CODE=%d", getenv ("DISPLAY"), return_value);
+ status_notify ("%s EXIT CODE=%d", greeter_id, return_value);
return return_value;
}
if (xcb_connection_has_error (connection))
{
- status_notify ("GREETER %s FAIL-CONNECT-XSERVER", getenv ("DISPLAY"));
+ status_notify ("%s FAIL-CONNECT-XSERVER", greeter_id);
return EXIT_FAILURE;
}
- status_notify ("GREETER %s CONNECT-XSERVER", getenv ("DISPLAY"));
+ status_notify ("%s CONNECT-XSERVER", greeter_id);
greeter = lightdm_greeter_new ();
g_signal_connect (greeter, "show-message", G_CALLBACK (show_message_cb), NULL);
g_signal_connect (greeter, "authentication-complete", G_CALLBACK (authentication_complete_cb), NULL);
g_signal_connect (greeter, "autologin-timer-expired", G_CALLBACK (autologin_timer_expired_cb), NULL);
- status_notify ("GREETER %s CONNECT-TO-DAEMON", getenv ("DISPLAY"));
+ status_notify ("%s CONNECT-TO-DAEMON", greeter_id);
if (!lightdm_greeter_connect_sync (greeter, NULL))
{
- status_notify ("GREETER %s FAIL-CONNECT-DAEMON", getenv ("DISPLAY"));
+ status_notify ("%s FAIL-CONNECT-DAEMON", greeter_id);
return EXIT_FAILURE;
}
- status_notify ("GREETER %s CONNECTED-TO-DAEMON", getenv ("DISPLAY"));
+ status_notify ("%s CONNECTED-TO-DAEMON", greeter_id);
if (lightdm_greeter_get_select_user_hint (greeter))
- status_notify ("GREETER %s SELECT-USER-HINT USERNAME=%s", getenv ("DISPLAY"), lightdm_greeter_get_select_user_hint (greeter));
+ status_notify ("%s SELECT-USER-HINT USERNAME=%s", greeter_id, lightdm_greeter_get_select_user_hint (greeter));
if (lightdm_greeter_get_lock_hint (greeter))
- status_notify ("GREETER %s LOCK-HINT", getenv ("DISPLAY"));
+ status_notify ("%s LOCK-HINT", greeter_id);
g_main_loop_run (loop);
from gi.repository import GLib
from gi.repository import LightDM
+display = os.getenv ('DISPLAY');
+if display is None:
+ greeter_id = 'GREETER-?'
+elif display.startswith (':'):
+ greeter_id = 'GREETER-X-%s' % display[1:]
+else:
+ greeter_id = 'GREETER-X-%s' % display
+
loop = GLib.MainLoop ()
def sigterm_cb (data):
- status_notify ('GREETER %s TERMINATE SIGNAL=%d' % (os.getenv ('DISPLAY'), signal.SIGTERM))
+ status_notify ('%s TERMINATE SIGNAL=%d' % (greeter_id, signal.SIGTERM))
loop.quit ()
GLib.unix_signal_add (GLib.PRIORITY_DEFAULT, signal.SIGTERM, sigterm_cb, None)
(l,) = struct.unpack ('i', length)
request = status_socket.recv (l)
- r = 'GREETER %s AUTHENTICATE' % os.getenv ('DISPLAY')
+ r = '%s AUTHENTICATE' % greeter_id
if request == r:
greeter.authenticate (None)
- r = 'GREETER %s AUTHENTICATE USERNAME=' % os.getenv ('DISPLAY')
+ r = '%s AUTHENTICATE USERNAME=' % greeter_id
if request.startswith (r):
greeter.authenticate (request[len(r):])
- r = 'GREETER %s AUTHENTICATE-GUEST' % os.getenv ('DISPLAY')
+ r = '%s AUTHENTICATE-GUEST' % greeter_id
if request == r:
greeter.authenticate_as_guest ()
- r = 'GREETER %s AUTHENTICATE-AUTOLOGIN' % os.getenv ('DISPLAY')
+ r = '%s AUTHENTICATE-AUTOLOGIN' % greeter_id
if request == r:
greeter.authenticate_autologin ()
- r = 'GREETER %s AUTHENTICATE-REMOTE SESSION=' % os.getenv ('DISPLAY')
+ r = '%s AUTHENTICATE-REMOTE SESSION=' % greeter_id
if request.startswith (r):
greeter.authenticate_remote (request[len(r):], None)
- r = 'GREETER %s RESPOND TEXT=\"' % os.getenv ('DISPLAY')
+ r = '%s RESPOND TEXT=\"' % greeter_id
if request.startswith (r):
greeter.respond (request[len (r):-1])
- r = 'GREETER %s START-SESSION' % os.getenv ('DISPLAY')
+ r = '%s START-SESSION' % greeter_id
if request == r:
if not greeter.start_session_sync (None):
- status_notify ('GREETER %s SESSION-FAILED' % os.getenv ('DISPLAY'))
+ status_notify ('%s SESSION-FAILED' % greeter_id)
- r = 'GREETER %s START-SESSION SESSION=' % os.getenv ('DISPLAY')
+ r = '%s START-SESSION SESSION=' % greeter_id
if request.startswith (r):
if not greeter.start_session_sync (request[len(r):]):
- status_notify ('GREETER %s SESSION-FAILED' % os.getenv ('DISPLAY'))
+ status_notify ('%s SESSION-FAILED' % greeter_id)
- r = 'GREETER %s LOG-LAYOUT' % os.getenv ('DISPLAY')
+ r = '%s LOG-LAYOUT' % greeter_id
if request == r:
layout = LightDM.get_layout ().get_name ()
- status_notify ('GREETER %s LOG-LAYOUT LAYOUT=%s' % (os.getenv ('DISPLAY'), layout))
+ status_notify ('%s LOG-LAYOUT LAYOUT=%s' % (greeter_id, layout))
- r = 'GREETER %s LOG-LAYOUT USERNAME=' % os.getenv ('DISPLAY')
+ r = '%s LOG-LAYOUT USERNAME=' % greeter_id
if request.startswith (r):
username = request[len(r):]
user = LightDM.UserList.get_instance ().get_user_by_name (username)
layout = user.get_layout ()
if layout is None:
layout = ''
- status_notify ('GREETER %s LOG-LAYOUT USERNAME=%s LAYOUT=%s' % (os.getenv ('DISPLAY'), username, layout))
+ status_notify ('%s LOG-LAYOUT USERNAME=%s LAYOUT=%s' % (greeter_id, username, layout))
- r = 'GREETER %s LOG-LANGUAGE USERNAME=' % os.getenv ('DISPLAY')
+ r = '%s LOG-LANGUAGE USERNAME=' % greeter_id
if request.startswith (r):
username = request[len(r):]
user = lightdm_user_list_get_user_by_name (lightdm_user_list_get_instance (), username)
language = lightdm_user_get_language (user)
if language is None:
language = ''
- status_notify ('GREETER %s LOG-LANGUAGE USERNAME=%s LANGUAGE=%s' % (os.getenv ('DISPLAY'), username, language))
+ status_notify ('%s LOG-LANGUAGE USERNAME=%s LANGUAGE=%s' % (greeter_id, username, language))
return True
status_socket.connect (path)
GLib.io_add_watch (status_socket.fileno (), GLib.IO_IN | GLib.IO_HUP, request_cb)
-status_notify ('GREETER %s START' % os.getenv ('DISPLAY'))
+status_notify ('%s START' % greeter_id)
# NOTE: There don't seem to be any good X bindings so we have to mock up our own...
-(host, display) = os.getenv ('DISPLAY').split (':')
+(host, display_number) = display.split (':')
if host == '':
x_socket = socket.socket (socket.AF_UNIX, socket.SOCK_STREAM)
- x_socket.connect ('/tmp/.X11-unix/X%s' % display)
+ x_socket.connect ('/tmp/.X11-unix/X%s' % display_number)
else:
x_socket = socket.socket (socket.AF_INET, socket.SOCK_STREAM)
- x_socket.connect ((host, 6000 + int (display)))
+ x_socket.connect ((host, 6000 + int (display_number)))
authority = subprocess.check_output(['xauth', 'list']).split ()
auth_name = ''
auth_data = ''
x_socket.send (struct.pack ('!cxHHHHxx', 'B', 11, 0, len (auth_name), len (auth_data)) + pad (auth_name) + pad (auth_data))
data = x_socket.recv (1024)
if ord (data[0]) != 1:
- status_notify ('GREETER %s FAIL-CONNECT-XSERVER' % os.getenv ('DISPLAY'))
+ status_notify ('%s FAIL-CONNECT-XSERVER' % greeter_id)
exit (1)
-status_notify ('GREETER %s CONNECT-XSERVER' % (os.getenv ('DISPLAY')))
+status_notify ('%s CONNECT-XSERVER' % (greeter_id))
def show_message_cb (greeter, text, type):
- status_notify ('GREETER %s SHOW-MESSAGE TEXT=\"%s\"' % (os.getenv ('DISPLAY'), text))
+ status_notify ('%s SHOW-MESSAGE TEXT=\"%s\"' % (greeter_id, text))
def show_prompt_cb (greeter, text, type):
- status_notify ('GREETER %s SHOW-PROMPT TEXT=\"%s\"' % (os.getenv ('DISPLAY'), text))
+ status_notify ('%s SHOW-PROMPT TEXT=\"%s\"' % (greeter_id, text))
def authentication_complete_cb (greeter):
if greeter.get_is_authenticated ():
else:
is_authenticated = 'FALSE'
if greeter.get_authentication_user () is not None:
- status_notify ('GREETER %s AUTHENTICATION-COMPLETE USERNAME=%s AUTHENTICATED=%s' % (os.getenv ('DISPLAY'), greeter.get_authentication_user (), is_authenticated))
+ status_notify ('%s AUTHENTICATION-COMPLETE USERNAME=%s AUTHENTICATED=%s' % (greeter_id, greeter.get_authentication_user (), is_authenticated))
else:
- status_notify ('GREETER %s AUTHENTICATION-COMPLETE AUTHENTICATED=%s' % (os.getenv ('DISPLAY'), is_authenticated))
+ status_notify ('%s AUTHENTICATION-COMPLETE AUTHENTICATED=%s' % (greeter_id, is_authenticated))
def autologin_timer_expired_cb (greeter):
- status_notify ('GREETER %s AUTOLOGIN-TIMER-EXPIRED' % os.getenv ('DISPLAY'))
+ status_notify ('%s AUTOLOGIN-TIMER-EXPIRED' % greeter_id)
greeter = LightDM.Greeter ()
greeter.connect ('show-message', show_message_cb)
greeter.connect ('authentication-complete', authentication_complete_cb)
greeter.connect ('autologin-timer-expired', autologin_timer_expired_cb)
-status_notify ('GREETER %s CONNECT-TO-DAEMON' % os.getenv ('DISPLAY'))
+status_notify ('%s CONNECT-TO-DAEMON' % greeter_id)
if not greeter.connect_sync ():
- status_notify ('GREETER %s FAIL-CONNECT-DAEMON' % os.getenv ('DISPLAY'))
+ status_notify ('%s FAIL-CONNECT-DAEMON' % greeter_id)
exit (1)
-status_notify ('GREETER %s CONNECTED-TO-DAEMON' % os.getenv ('DISPLAY'))
+status_notify ('%s CONNECTED-TO-DAEMON' % greeter_id)
if greeter.get_select_user_hint () is not None:
- status_notify ('GREETER %s SELECT-USER-HINT USERNAME=%s' % (os.getenv ('DISPLAY'), greeter.get_select_user_hint ()))
+ status_notify ('%s SELECT-USER-HINT USERNAME=%s' % (greeter_id, greeter.get_select_user_hint ()))
if greeter.get_lock_hint ():
- status_notify ('GREETER %s LOCK-HINT' % os.getenv ('DISPLAY'));
+ status_notify ('%s LOCK-HINT' % greeter_id);
loop.run ()
#include <stdio.h>
#include <signal.h>
#include <glib-object.h>
-#include <xcb/xcb.h>
#include <QLightDM/Greeter>
#include <QtCore/QSettings>
#include <QtCore/QDebug>
#include "test-qt-greeter.h"
#include "status.h"
+static gchar *greeter_id;
static QCoreApplication *app = NULL;
static QSettings *config = NULL;
static TestGreeter *greeter = NULL;
void TestGreeter::showMessage (QString text, QLightDM::Greeter::MessageType type)
{
- status_notify ("GREETER %s SHOW-MESSAGE TEXT=\"%s\"", getenv ("DISPLAY"), text.toAscii ().constData ());
+ status_notify ("%s SHOW-MESSAGE TEXT=\"%s\"", greeter_id, text.toAscii ().constData ());
}
void TestGreeter::showPrompt (QString text, QLightDM::Greeter::PromptType type)
{
- status_notify ("GREETER %s SHOW-PROMPT TEXT=\"%s\"", getenv ("DISPLAY"), text.toAscii ().constData ());
+ status_notify ("%s SHOW-PROMPT TEXT=\"%s\"", greeter_id, text.toAscii ().constData ());
}
void TestGreeter::authenticationComplete ()
{
if (authenticationUser () != "")
- status_notify ("GREETER %s AUTHENTICATION-COMPLETE USERNAME=%s AUTHENTICATED=%s",
- getenv ("DISPLAY"),
+ status_notify ("%s AUTHENTICATION-COMPLETE USERNAME=%s AUTHENTICATED=%s",
+ greeter_id,
authenticationUser ().toAscii ().constData (), isAuthenticated () ? "TRUE" : "FALSE");
else
- status_notify ("GREETER %s AUTHENTICATION-COMPLETE AUTHENTICATED=%s", getenv ("DISPLAY"), isAuthenticated () ? "TRUE" : "FALSE");
+ status_notify ("%s AUTHENTICATION-COMPLETE AUTHENTICATED=%s", greeter_id, isAuthenticated () ? "TRUE" : "FALSE");
}
void TestGreeter::autologinTimerExpired ()
{
- status_notify ("GREETER %s AUTOLOGIN-TIMER-EXPIRED", getenv ("DISPLAY"));
+ status_notify ("%s AUTOLOGIN-TIMER-EXPIRED", greeter_id);
}
static void
signal_cb (int signum)
{
- status_notify ("GREETER %s TERMINATE SIGNAL=%d", getenv ("DISPLAY"), signum);
+ status_notify ("%s TERMINATE SIGNAL=%d", greeter_id, signum);
_exit (EXIT_SUCCESS);
}
return;
}
- r = g_strdup_printf ("GREETER %s AUTHENTICATE", getenv ("DISPLAY"));
+ r = g_strdup_printf ("%s AUTHENTICATE", greeter_id);
if (strcmp (request, r) == 0)
greeter->authenticate ();
g_free (r);
- r = g_strdup_printf ("GREETER %s AUTHENTICATE USERNAME=", getenv ("DISPLAY"));
+ r = g_strdup_printf ("%s AUTHENTICATE USERNAME=", greeter_id);
if (g_str_has_prefix (request, r))
greeter->authenticate (request + strlen (r));
g_free (r);
- r = g_strdup_printf ("GREETER %s AUTHENTICATE-GUEST", getenv ("DISPLAY"));
+ r = g_strdup_printf ("%s AUTHENTICATE-GUEST", greeter_id);
if (strcmp (request, r) == 0)
greeter->authenticateAsGuest ();
g_free (r);
- r = g_strdup_printf ("GREETER %s AUTHENTICATE-AUTOLOGIN", getenv ("DISPLAY"));
+ r = g_strdup_printf ("%s AUTHENTICATE-AUTOLOGIN", greeter_id);
if (strcmp (request, r) == 0)
greeter->authenticateAutologin ();
g_free (r);
- r = g_strdup_printf ("GREETER %s AUTHENTICATE-REMOTE SESSION=", getenv ("DISPLAY"));
+ r = g_strdup_printf ("%s AUTHENTICATE-REMOTE SESSION=", greeter_id);
if (g_str_has_prefix (request, r))
greeter->authenticateRemote (request + strlen (r), NULL);
g_free (r);
- r = g_strdup_printf ("GREETER %s RESPOND TEXT=\"", getenv ("DISPLAY"));
+ r = g_strdup_printf ("%s RESPOND TEXT=\"", greeter_id);
if (g_str_has_prefix (request, r))
{
gchar *text = g_strdup (request + strlen (r));
}
g_free (r);
- r = g_strdup_printf ("GREETER %s START-SESSION", getenv ("DISPLAY"));
+ r = g_strdup_printf ("%s START-SESSION", greeter_id);
if (strcmp (request, r) == 0)
{
if (!greeter->startSessionSync ())
- status_notify ("GREETER %s SESSION-FAILED", getenv ("DISPLAY"));
+ status_notify ("%s SESSION-FAILED", greeter_id);
}
g_free (r);
- r = g_strdup_printf ("GREETER %s START-SESSION SESSION=", getenv ("DISPLAY"));
+ r = g_strdup_printf ("%s START-SESSION SESSION=", greeter_id);
if (g_str_has_prefix (request, r))
{
if (!greeter->startSessionSync (request + strlen (r)))
- status_notify ("GREETER %s SESSION-FAILED", getenv ("DISPLAY"));
+ status_notify ("%s SESSION-FAILED", greeter_id);
}
g_free (r);
}
int
main(int argc, char *argv[])
{
+ gchar *display;
+
#if !defined(GLIB_VERSION_2_36)
g_type_init ();
#endif
+ display = getenv ("DISPLAY");
+ if (display == NULL)
+ greeter_id = g_strdup ("GREETER-?");
+ else if (display[0] == ':')
+ greeter_id = g_strdup_printf ("GREETER-X-%s", display + 1);
+ else
+ greeter_id = g_strdup_printf ("GREETER-X-%s", display);
+
status_connect (request_cb);
app = new QCoreApplication (argc, argv);
signal (SIGINT, signal_cb);
signal (SIGTERM, signal_cb);
- status_notify ("GREETER %s START", getenv ("DISPLAY"));
+ status_notify ("%s START", greeter_id);
config = new QSettings (g_build_filename (getenv ("LIGHTDM_TEST_ROOT"), "script", NULL), QSettings::IniFormat);
if (xcb_connection_has_error (connection))
{
- status_notify ("GREETER %s FAIL-CONNECT-XSERVER", getenv ("DISPLAY"));
+ status_notify ("%s FAIL-CONNECT-XSERVER", greeter_id);
return EXIT_FAILURE;
}
- status_notify ("GREETER %s CONNECT-XSERVER", getenv ("DISPLAY"));
+ status_notify ("%s CONNECT-XSERVER", greeter_id);
greeter = new TestGreeter();
- status_notify ("GREETER %s CONNECT-TO-DAEMON", getenv ("DISPLAY"));
+ status_notify ("%s CONNECT-TO-DAEMON", greeter_id);
if (!greeter->connectSync())
{
- status_notify ("GREETER %s FAIL-CONNECT-DAEMON", getenv ("DISPLAY"));
+ status_notify ("%s FAIL-CONNECT-DAEMON", greeter_id);
return EXIT_FAILURE;
}
- status_notify ("GREETER %s CONNECTED-TO-DAEMON", getenv ("DISPLAY"));
+ status_notify ("%s CONNECTED-TO-DAEMON", greeter_id);
if (greeter->selectUserHint() != "")
- status_notify ("GREETER %s SELECT-USER-HINT USERNAME=%s", getenv ("DISPLAY"), greeter->selectUserHint ().toAscii ().constData ());
+ status_notify ("%s SELECT-USER-HINT USERNAME=%s", greeter_id, greeter->selectUserHint ().toAscii ().constData ());
if (greeter->lockHint())
- status_notify ("GREETER %s LOCK-HINT", getenv ("DISPLAY"));
+ status_notify ("%s LOCK-HINT", greeter_id);
return app->exec();
}
static GSocket *status_socket = NULL;
static gchar *status_socket_name = NULL;
static GList *statuses = NULL;
+typedef struct
+{
+ gchar *text;
+ gboolean done;
+} ScriptLine;
static GList *script = NULL;
-static GList *script_iter = NULL;
static guint status_timeout = 0;
static gchar *temp_dir = NULL;
static int service_count;
if (temp_dir)
{
gchar *command = g_strdup_printf ("rm -r %s", temp_dir);
- if (system (command))
- perror ("Failed to delete temp directory");
+ //if (system (command))
+ // perror ("Failed to delete temp directory");
}
exit (status);
quit (EXIT_FAILURE);
}
-static const gchar *
-get_script_line ()
+static gchar *
+get_prefix (const gchar *text)
+{
+ gchar *prefix;
+ gint i;
+
+ prefix = g_strdup (text);
+ for (i = 0; prefix[i] != '\0' && prefix[i] != ' '; i++);
+ prefix[i] = '\0';
+
+ return prefix;
+}
+
+static ScriptLine *
+get_script_line (const gchar *prefix)
{
- if (!script_iter)
- return NULL;
- return script_iter->data;
+ GList *link;
+
+ for (link = script; link; link = link->next)
+ {
+ ScriptLine *line = link->data;
+
+ /* Ignore lines with other prefixes */
+ if (prefix)
+ {
+ gchar *p;
+ gboolean matches;
+
+ p = get_prefix (line->text);
+ matches = strcmp (prefix, p) == 0;
+ g_free (p);
+
+ if (!matches)
+ continue;
+ }
+
+ if (!line->done)
+ return line;
+ }
+
+ return NULL;
}
static void
}
}
/* Forward to external processes */
- else if (strcmp (name, "SESSION") == 0 ||
- strcmp (name, "GREETER") == 0 ||
- strcmp (name, "XSERVER") == 0)
+ else if (g_str_has_prefix (name, "SESSION-") ||
+ g_str_has_prefix (name, "GREETER-") ||
+ g_str_has_prefix (name, "XSERVER-"))
{
GList *link;
for (link = status_clients; link; link = link->next)
/* Stop daemon if requested */
while (TRUE)
{
- const gchar *command;
+ ScriptLine *line;
/* Commands start with an asterisk */
- command = get_script_line ();
- if (!command || command[0] != '*')
+ line = get_script_line (NULL);
+ if (!line || line->text[0] != '*')
break;
- statuses = g_list_append (statuses, g_strdup (command));
- script_iter = script_iter->next;
+ statuses = g_list_append (statuses, g_strdup (line->text));
+ line->done = TRUE;
- handle_command (command + 1);
+ handle_command (line->text + 1);
}
/* Stop at the end of the script */
- if (get_script_line () == NULL)
+ if (get_script_line (NULL) == NULL)
quit (EXIT_SUCCESS);
}
static gboolean
status_timeout_cb (gpointer data)
{
- fail ("(timeout)", get_script_line ());
+ ScriptLine *line;
+
+ line = get_script_line (NULL);
+ fail ("(timeout)", line ? line->text : NULL);
+
return FALSE;
}
static void
check_status (const gchar *status)
{
- const gchar *pattern;
+ ScriptLine *line;
gboolean result = FALSE;
+ gchar *prefix;
if (stop)
return;
statuses = g_list_append (statuses, g_strdup (status));
-
+
if (getenv ("DEBUG"))
g_print ("%s\n", status);
/* Try and match against expected */
- pattern = get_script_line ();
- if (pattern)
+ prefix = get_prefix (status);
+ line = get_script_line (prefix);
+ g_free (prefix);
+ if (line)
{
- gchar *full_pattern = g_strdup_printf ("^%s$", pattern);
+ gchar *full_pattern = g_strdup_printf ("^%s$", line->text);
result = g_regex_match_simple (full_pattern, status, 0, 0);
g_free (full_pattern);
}
if (!result)
{
- fail (NULL, pattern);
+ if (line == NULL)
+ line = get_script_line (NULL);
+ fail (NULL, line ? line->text : NULL);
return;
}
- script_iter = script_iter->next;
+
+ line->done = TRUE;
/* Restart timeout */
g_source_remove (status_timeout);
/* Load lines with #? prefix as expected behaviour */
for (i = 0; lines[i]; i++)
{
- gchar *line = g_strstrip (lines[i]);
- if (g_str_has_prefix (line, "#?"))
- script = g_list_append (script, g_strdup (line+2));
+ gchar *text = g_strstrip (lines[i]);
+ if (g_str_has_prefix (text, "#?"))
+ {
+ ScriptLine *line;
+ line = g_malloc0 (sizeof (ScriptLine));
+ line->text = g_strdup (text + 2);
+ line->done = FALSE;
+ script = g_list_append (script, line);
+ }
}
- script_iter = script;
g_strfreev (lines);
}
/* Set up a skeleton file system */
g_mkdir_with_parents (g_strdup_printf ("%s/etc", temp_dir), 0755);
g_mkdir_with_parents (g_strdup_printf ("%s/usr/share", temp_dir), 0755);
- g_mkdir_with_parents (g_strdup_printf ("%s/usr/tmp", temp_dir), 0755);
+ g_mkdir_with_parents (g_strdup_printf ("%s/tmp", temp_dir), 0755);
/* Copy over the configuration */
g_mkdir_with_parents (g_strdup_printf ("%s/etc/lightdm", temp_dir), 0755);
#include <unistd.h>
#include <fcntl.h>
#include <grp.h>
-#include <xcb/xcb.h>
#include <glib.h>
#include <glib-object.h>
#include <gio/gio.h>
#include "status.h"
+static gchar *session_id;
+
static GMainLoop *loop;
static GString *open_fds;
static GKeyFile *config;
-static xcb_connection_t *connection;
-
static void
quit_cb (int signum)
{
- status_notify ("SESSION %s TERMINATE SIGNAL=%d", getenv ("DISPLAY"), signum);
+ status_notify ("%s TERMINATE SIGNAL=%d", session_id, signum);
exit (EXIT_SUCCESS);
}
return;
}
- r = g_strdup_printf ("SESSION %s LOGOUT", getenv ("DISPLAY"));
+ r = g_strdup_printf ("%s LOGOUT", session_id);
if (strcmp (request, r) == 0)
exit (EXIT_SUCCESS);
g_free (r);
- r = g_strdup_printf ("SESSION %s CRASH", getenv ("DISPLAY"));
+ r = g_strdup_printf ("%s CRASH", session_id);
if (strcmp (request, r) == 0)
kill (getpid (), SIGSEGV);
g_free (r);
- r = g_strdup_printf ("SESSION %s LOCK-SEAT", getenv ("DISPLAY"));
+ r = g_strdup_printf ("%s LOCK-SEAT", session_id);
if (strcmp (request, r) == 0)
{
- status_notify ("SESSION %s LOCK-SEAT", getenv ("DISPLAY"));
+ status_notify ("%s LOCK-SEAT", session_id);
g_dbus_connection_call_sync (g_bus_get_sync (G_BUS_TYPE_SYSTEM, NULL, NULL),
"org.freedesktop.DisplayManager",
getenv ("XDG_SEAT_PATH"),
}
g_free (r);
- r = g_strdup_printf ("SESSION %s LOCK-SESSION", getenv ("DISPLAY"));
+ r = g_strdup_printf ("%s LOCK-SESSION", session_id);
if (strcmp (request, r) == 0)
{
- status_notify ("SESSION %s LOCK-SESSION", getenv ("DISPLAY"));
+ status_notify ("%s LOCK-SESSION", session_id);
g_dbus_connection_call_sync (g_bus_get_sync (G_BUS_TYPE_SYSTEM, NULL, NULL),
"org.freedesktop.DisplayManager",
getenv ("XDG_SESSION_PATH"),
}
g_free (r);
- r = g_strdup_printf ("SESSION %s LIST-GROUPS", getenv ("DISPLAY"));
+ r = g_strdup_printf ("%s LIST-GROUPS", session_id);
if (strcmp (request, r) == 0)
{
int n_groups, i;
else
g_string_append_printf (group_list, "%d", groups[i]);
}
- status_notify ("SESSION %s LIST-GROUPS GROUPS=%s", getenv ("DISPLAY"), group_list->str);
+ status_notify ("%s LIST-GROUPS GROUPS=%s", session_id, group_list->str);
g_string_free (group_list, TRUE);
free (groups);
}
- r = g_strdup_printf ("SESSION %s READ-ENV NAME=", getenv ("DISPLAY"));
+ r = g_strdup_printf ("%s READ-ENV NAME=", session_id);
if (g_str_has_prefix (request, r))
{
const gchar *name = request + strlen (r);
const gchar *value = g_getenv (name);
- status_notify ("SESSION %s READ-ENV NAME=%s VALUE=%s", getenv ("DISPLAY"), name, value ? value : "");
+ status_notify ("%s READ-ENV NAME=%s VALUE=%s", session_id, name, value ? value : "");
}
g_free (r);
- r = g_strdup_printf ("SESSION %s WRITE-STDOUT TEXT=", getenv ("DISPLAY"));
+ r = g_strdup_printf ("%s WRITE-STDOUT TEXT=", session_id);
if (g_str_has_prefix (request, r))
g_print ("%s", request + strlen (r));
g_free (r);
- r = g_strdup_printf ("SESSION %s WRITE-STDERR TEXT=", getenv ("DISPLAY"));
+ r = g_strdup_printf ("%s WRITE-STDERR TEXT=", session_id);
if (g_str_has_prefix (request, r))
g_printerr ("%s", request + strlen (r));
g_free (r);
- r = g_strdup_printf ("SESSION %s READ FILE=", getenv ("DISPLAY"));
+ r = g_strdup_printf ("%s READ FILE=", session_id);
if (g_str_has_prefix (request, r))
{
const gchar *name = request + strlen (r);
GError *error = NULL;
if (g_file_get_contents (name, &contents, NULL, &error))
- status_notify ("SESSION %s READ FILE=%s TEXT=%s", getenv ("DISPLAY"), name, contents);
+ status_notify ("%s READ FILE=%s TEXT=%s", session_id, name, contents);
else
- status_notify ("SESSION %s READ FILE=%s ERROR=%s", getenv ("DISPLAY"), name, error->message);
+ status_notify ("%s READ FILE=%s ERROR=%s", session_id, name, error->message);
g_clear_error (&error);
}
g_free (r);
- r = g_strdup_printf ("SESSION %s LIST-UNKNOWN-FILE-DESCRIPTORS", getenv ("DISPLAY"));
+ r = g_strdup_printf ("%s LIST-UNKNOWN-FILE-DESCRIPTORS", session_id);
if (strcmp (request, r) == 0)
- status_notify ("SESSION %s LIST-UNKNOWN-FILE-DESCRIPTORS FDS=%s", getenv ("DISPLAY"), open_fds->str);
+ status_notify ("%s LIST-UNKNOWN-FILE-DESCRIPTORS FDS=%s", session_id, open_fds->str);
g_free (r);
}
int
main (int argc, char **argv)
{
+ gchar *display;
int fd, open_max;
+ display = getenv ("DISPLAY");
+ if (display == NULL)
+ session_id = g_strdup ("SESSION-?");
+ else if (display[0] == ':')
+ session_id = g_strdup_printf ("SESSION-X-%s", display + 1);
+ else
+ session_id = g_strdup_printf ("SESSION-X-%s", display);
+
open_fds = g_string_new ("");
open_max = sysconf (_SC_OPEN_MAX);
for (fd = STDERR_FILENO + 1; fd < open_max; fd++)
status_connect (request_cb);
if (argc > 1)
- status_notify ("SESSION %s START NAME=%s USER=%s", getenv ("DISPLAY"), argv[1], getenv ("USER"));
+ status_notify ("%s START NAME=%s USER=%s", session_id, argv[1], getenv ("USER"));
else
- status_notify ("SESSION %s START USER=%s", getenv ("DISPLAY"), getenv ("USER"));
+ status_notify ("%s START USER=%s", session_id, getenv ("USER"));
config = g_key_file_new ();
g_key_file_load_from_file (config, g_build_filename (g_getenv ("LIGHTDM_TEST_ROOT"), "script", NULL), G_KEY_FILE_NONE, NULL);
if (xcb_connection_has_error (connection))
{
- status_notify ("SESSION %s CONNECT-XSERVER-ERROR", getenv ("DISPLAY"));
+ status_notify ("%s CONNECT-XSERVER-ERROR", session_id);
return EXIT_FAILURE;
}
- status_notify ("SESSION %s CONNECT-XSERVER", getenv ("DISPLAY"));
+ status_notify ("%s CONNECT-XSERVER", session_id);
- g_main_loop_run (loop);
+ g_main_loop_run (loop);
return EXIT_SUCCESS;
}
if (server->priv->listen_unix)
{
GError *error = NULL;
-
- server->priv->socket_path = g_strdup_printf ("/tmp/.X11-unix/X%d", server->priv->display_number);
+ gchar *socket_dir;
+ gchar *socket_filename;
+
+ socket_dir = g_build_filename (g_getenv ("LIGHTDM_TEST_ROOT"), "tmp", ".X11-unix", NULL);
+ g_mkdir_with_parents (socket_dir, 0755);
+
+ socket_filename = g_strdup_printf ("X%d", server->priv->display_number);
+ server->priv->socket_path = g_build_filename (socket_dir, socket_filename, NULL);
+
+ g_free (socket_dir);
+ g_free (socket_filename);
server->priv->unix_socket = g_socket_new (G_SOCKET_FAMILY_UNIX, G_SOCKET_TYPE_STREAM, G_SOCKET_PROTOCOL_DEFAULT, &error);
if (!server->priv->unix_socket ||