Package: slim
Version: 1.3.4-2
Severity: normal
Tags: patch
User: ubuntu-de...@lists.ubuntu.com
Usertags: origin-ubuntu raring ubuntu-patch

Dear Maintainer,

Upstart is an event based replacement for the /sbin/init daemon, in
Ubuntu it has helped to avoid problems such as starting the slim daemon
before the graphic drivers or keep it alive when it crashes.

The attached file adds upstart support for slim, the problem which
triaged the action was first reported at:

https://bugs.launchpad.net/ubuntu/+source/slim/+bug/699861 / Slim starts
too early

We think it can be useful in Debian as well

  * debian/slim.upstart: Add upstart job (LP: #699861)
    - authored by Richard Johnson

Thanks for considering the patch.


-- System Information:
Debian Release: wheezy/sid
  APT prefers raring-updates
  APT policy: (500, 'raring-updates'), (500, 'raring-security'), (500, 
'raring'), (100, 'raring-backports')
Architecture: amd64 (x86_64)

Kernel: Linux 3.8.2-ck1 (SMP w/2 CPU cores; PREEMPT)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
=== added file 'debian/slim.upstart'
--- debian/slim.upstart	1970-01-01 00:00:00 +0000
+++ debian/slim.upstart	2013-03-27 10:49:46 +0000
@@ -0,0 +1,70 @@
+# SLiM - Simple Login Manager
+#
+# The display manager service manages the X servers running on the
+# system, providing login and auto-login services
+#
+# based on lightdm upstart script
+
+description "Simple Login Manager"
+author      "Richard Johnson"
+
+start on ((filesystem
+          and runlevel [!06]
+          and started dbus
+          and (drm-device-added card0 PRIMARY_DEVICE_FOR_DISPLAY=1
+                or stopped udev-fallback-graphics))
+          or runlevel PREVLEVEL=S)
+
+stop on runlevel [016]
+
+emits login-session-start
+emits desktop-session-start
+emits desktop-shutdown
+
+env XORGCONFIG=/etc/X11/xorg.conf
+
+script
+    if [ -n "$UPSTART_EVENTS" ]
+    then
+        # Check kernel command-line for inhibitors, unless we are being called
+        # manually
+        for ARG in $(cat /proc/cmdline); do
+            if [ "$ARG" = "text" ]; then
+		plymouth quit || : 
+                stop
+		exit 0
+            fi
+        done
+
+	[ ! -f /etc/X11/default-display-manager -o "$(cat /etc/X11/default-display-manager 2>/dev/null)" = "/usr/bin/slim" -o "$(cat /etc/X11/default-display-manager 2>/dev/null)" = "/usr/sbin/slim" ] || { stop; exit 0; }
+
+	if [ "$RUNLEVEL" = S -o "$RUNLEVEL" = 1 ]
+	then
+	    # Single-user mode
+	    plymouth quit || :
+	    exit 0
+	fi
+    fi
+
+    if [ -r /etc/default/locale ]; then
+    . /etc/default/locale
+    export LANG LANGUAGE
+    elif [ -r /etc/environment ]; then
+    . /etc/environment
+    export LANG LANGUAGE
+    fi
+    export XORGCONFIG
+
+    exec slim
+end script
+
+post-start script
+    sleep 5
+    clear > /dev/tty7
+end script
+
+post-stop script
+	if [ "$UPSTART_STOP_EVENTS" = runlevel ]; then
+		initctl emit desktop-shutdown
+	fi
+end script

Reply via email to