From 0d3289022732c774be0f50747fa498001e25a778 Mon Sep 17 00:00:00 2001 From: Timothy Pearson Date: Wed, 22 Jan 2014 13:24:10 -0600 Subject: Fix TDM crash on certain systems when Plymouth is enabled This resolves Bug 1453 --- ubuntu/maverick/tdebase/debian/tdm-trinity.conf | 26 ++++++++++++++----------- ubuntu/precise/tdebase/debian/tdm-trinity.conf | 26 ++++++++++++++----------- ubuntu/raring/tdebase/debian/tdm-trinity.conf | 26 ++++++++++++++----------- 3 files changed, 45 insertions(+), 33 deletions(-) diff --git a/ubuntu/maverick/tdebase/debian/tdm-trinity.conf b/ubuntu/maverick/tdebase/debian/tdm-trinity.conf index 8093950d2..0148768e2 100755 --- a/ubuntu/maverick/tdebase/debian/tdm-trinity.conf +++ b/ubuntu/maverick/tdebase/debian/tdm-trinity.conf @@ -21,17 +21,21 @@ emits desktop-session-start emits desktop-shutdown script - [ ! -f /etc/X11/default-display-manager -o "$(cat /etc/X11/default-display-manager 2>/dev/null)" = "/opt/trinity/bin/tdm" ] - - # Check kernel command-line for inhibitors - for ARG in $(cat /proc/cmdline) - do - case "${ARG}" in - text|-s|s|S|single) - exit 0 - ;; - esac - done + if [ -n "$UPSTART_EVENTS" ] + then + [ ! -f /etc/X11/default-display-manager -o "$(cat /etc/X11/default-display-manager 2>/dev/null)" = "/opt/trinity/bin/tdm" ] || { stop; exit 0; } + + # Since we have no plymouth integration to take over the VT we simply + # quit plymouth all the time. Note that sleeping appears necessary + # as the VT freeing is somewhat delayed and TDM would otherwise go + # to configured KVT+1 (if plymouth was using it). + $(plymouth --quit && plymouth --wait && sleep 1) || : + if [ "$RUNLEVEL" = S -o "$RUNLEVEL" = 1 ] + then + # Single-user mode + exit 0 + fi + fi if [ -r /etc/default/locale ]; then . /etc/default/locale diff --git a/ubuntu/precise/tdebase/debian/tdm-trinity.conf b/ubuntu/precise/tdebase/debian/tdm-trinity.conf index 8093950d2..0148768e2 100755 --- a/ubuntu/precise/tdebase/debian/tdm-trinity.conf +++ b/ubuntu/precise/tdebase/debian/tdm-trinity.conf @@ -21,17 +21,21 @@ emits desktop-session-start emits desktop-shutdown script - [ ! -f /etc/X11/default-display-manager -o "$(cat /etc/X11/default-display-manager 2>/dev/null)" = "/opt/trinity/bin/tdm" ] - - # Check kernel command-line for inhibitors - for ARG in $(cat /proc/cmdline) - do - case "${ARG}" in - text|-s|s|S|single) - exit 0 - ;; - esac - done + if [ -n "$UPSTART_EVENTS" ] + then + [ ! -f /etc/X11/default-display-manager -o "$(cat /etc/X11/default-display-manager 2>/dev/null)" = "/opt/trinity/bin/tdm" ] || { stop; exit 0; } + + # Since we have no plymouth integration to take over the VT we simply + # quit plymouth all the time. Note that sleeping appears necessary + # as the VT freeing is somewhat delayed and TDM would otherwise go + # to configured KVT+1 (if plymouth was using it). + $(plymouth --quit && plymouth --wait && sleep 1) || : + if [ "$RUNLEVEL" = S -o "$RUNLEVEL" = 1 ] + then + # Single-user mode + exit 0 + fi + fi if [ -r /etc/default/locale ]; then . /etc/default/locale diff --git a/ubuntu/raring/tdebase/debian/tdm-trinity.conf b/ubuntu/raring/tdebase/debian/tdm-trinity.conf index 8093950d2..0148768e2 100755 --- a/ubuntu/raring/tdebase/debian/tdm-trinity.conf +++ b/ubuntu/raring/tdebase/debian/tdm-trinity.conf @@ -21,17 +21,21 @@ emits desktop-session-start emits desktop-shutdown script - [ ! -f /etc/X11/default-display-manager -o "$(cat /etc/X11/default-display-manager 2>/dev/null)" = "/opt/trinity/bin/tdm" ] - - # Check kernel command-line for inhibitors - for ARG in $(cat /proc/cmdline) - do - case "${ARG}" in - text|-s|s|S|single) - exit 0 - ;; - esac - done + if [ -n "$UPSTART_EVENTS" ] + then + [ ! -f /etc/X11/default-display-manager -o "$(cat /etc/X11/default-display-manager 2>/dev/null)" = "/opt/trinity/bin/tdm" ] || { stop; exit 0; } + + # Since we have no plymouth integration to take over the VT we simply + # quit plymouth all the time. Note that sleeping appears necessary + # as the VT freeing is somewhat delayed and TDM would otherwise go + # to configured KVT+1 (if plymouth was using it). + $(plymouth --quit && plymouth --wait && sleep 1) || : + if [ "$RUNLEVEL" = S -o "$RUNLEVEL" = 1 ] + then + # Single-user mode + exit 0 + fi + fi if [ -r /etc/default/locale ]; then . /etc/default/locale -- cgit v1.2.3