[28216] in Source-Commits
xsession commit: Add Upstart session support
daemon@ATHENA.MIT.EDU (Jonathan D Reed)
Tue May 20 14:46:32 2014
Date: Tue, 20 May 2014 14:46:25 -0400
From: Jonathan D Reed <jdreed@MIT.EDU>
Message-Id: <201405201846.s4KIkPHi006147@drugstore.mit.edu>
To: source-commits@MIT.EDU
https://github.com/mit-athena/xsession/commit/8ea2613ca4c229be47eeb0dc9dd6b313fbe82a89
commit 8ea2613ca4c229be47eeb0dc9dd6b313fbe82a89
Author: Jonathan Reed <jdreed@mit.edu>
Date: Mon May 19 16:26:22 2014 -0400
Add Upstart session support
This adds support for upstart user sessions. Specifically, we
change DESKTOP_SESSION and GDMSESSION and BASESESSION to look like
the "ubuntu" session. We conditionalize on the existence of
/etc/upstart-xsessions and UPSTART=1 in the Xsession.d environment
debian/00debathena-athena-session | 18 ++++++++++++++++++
debian/00upstart-debathena | 8 ++++++++
debian/21debathena-fix-startup | 11 +++++++++++
debian/99upstart-debathena | 7 +++++++
debian/changelog | 6 ++++++
debian/debathena-xsession.install | 4 ++++
6 files changed, 54 insertions(+), 0 deletions(-)
diff --git a/debian/00debathena-athena-session b/debian/00debathena-athena-session
new file mode 100644
index 0000000..4093c19
--- /dev/null
+++ b/debian/00debathena-athena-session
@@ -0,0 +1,18 @@
+# This fixes the variable names lightdm sets for us,
+# so we appear to be a regular Ubuntu session.
+# This should be run as early as possible in Xsession.d
+#
+# DESKTOP_SESSION will be the name of the .desktop file
+# GDMSESSION is mostly unused but will also be the same value
+#
+if [ -e /etc/upstart-xsessions ] && \
+ [ "$DESKTOP_SESSION" = "athena" ]; then
+ # Pretend we're an Ubuntu session
+ export DESKTOP_SESSION=ubuntu
+ export GDMSESSION=ubuntu
+ # This should normally be set by "X-LightDM-DesktopName=Unity"
+ # in the xsession's .desktop file.
+ if [ -z "$XDG_CURRENT_DESKTOP" ]; then
+ export XDG_CURRENT_DESKTOP=Unity
+ fi
+fi
diff --git a/debian/00upstart-debathena b/debian/00upstart-debathena
new file mode 100644
index 0000000..5ffb993
--- /dev/null
+++ b/debian/00upstart-debathena
@@ -0,0 +1,8 @@
+# This is run immediately after "00upstart" which sets
+# BASESESSION to the basename of $1 (which is the Exec=
+# line from the session's .desktop file)
+#
+if [ "$UPSTART" = "1" ] && \
+ [ "$BASESESSION" = "athena-session" ]; then
+ BASESESSION=gnome-session
+fi
diff --git a/debian/21debathena-fix-startup b/debian/21debathena-fix-startup
new file mode 100644
index 0000000..fc45b00
--- /dev/null
+++ b/debian/21debathena-fix-startup
@@ -0,0 +1,11 @@
+# STARTUP is normally set to $1 (the Exec= line in the
+# .desktop file). We reset it to gnome-session, in our
+# continued effort to emulate an Ubuntu session.
+#
+# Note that if you use full paths in the .desktop file
+# this won't work. Don't do that.
+#
+if [ "$UPSTART" = "1" ] && \
+ [ "$STARTUP" = "athena-session" ]; then
+ STARTUP="gnome-session"
+fi
diff --git a/debian/99upstart-debathena b/debian/99upstart-debathena
new file mode 100644
index 0000000..2e546a4
--- /dev/null
+++ b/debian/99upstart-debathena
@@ -0,0 +1,7 @@
+# This is run after 99upstart, to wrap the session
+# in our xsession code
+#
+if [ "$STARTUP" = "init --user" ] && \
+ [ -e /etc/X11/Xsession.d/98debathena-xsession ]; then
+ . /etc/X11/Xsession.d/98debathena-xsession
+fi
diff --git a/debian/changelog b/debian/changelog
index 618a702..c3e5b40 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+debathena-xsession (1.23) unstable; urgency=low
+
+ * Add support for Upstart sessions (Trac: #1238)
+
+ -- Jonathan Reed <jdreed@mit.edu> Mon, 19 May 2014 16:26:00 -0400
+
debathena-xsession (1.22) unstable; urgency=low
* Update dependency from lert to lert-compat (Trac: #1460)
diff --git a/debian/debathena-xsession.install b/debian/debathena-xsession.install
index e32c573..4a6e49b 100644
--- a/debian/debathena-xsession.install
+++ b/debian/debathena-xsession.install
@@ -1,5 +1,6 @@
debian/000debathena-nocalls.desktop usr/share/xsessions
debian/001debathena-ttymode.desktop usr/share/xsessions
+debian/00debathena-athena-session etc/X11/Xsession.d
debian/00debathena-check-afs etc/X11/Xsession.d
debian/debathena-check-afs.sh usr/share/debathena-xsession
debian/00debathena-message etc/X11/Xsession.d
@@ -8,8 +9,10 @@ debian/00debathena-gdm-sucks etc/X11/Xsession.d
debian/debathena-gdm-sucks.sh usr/share/debathena-xsession
debian/00debathena-tcsh-sucks etc/X11/Xsession.d
debian/debathena-tcsh-sucks.sh usr/share/debathena-xsession
+debian/00upstart-debathena etc/X11/Xsession.d
debian/01debathena-quota etc/X11/Xsession.d
debian/debathena-quota.sh usr/share/debathena-xsession
+debian/21debathena-fix-startup etc/X11/Xsession.d
debian/05debathena-nocalls etc/X11/Xsession.d
debian/debathena-nocalls.sh usr/share/debathena-xsession
debian/96debathena-tracker etc/X11/Xsession.d
@@ -17,6 +20,7 @@ debian/debathena-tracker.sh usr/share/debathena-xsession
debian/97debathena-homedir-mode etc/X11/Xsession.d
debian/debathena-homedir-mode.sh usr/share/debathena-xsession
debian/98debathena-xsession etc/X11/Xsession.d
+debian/99upstart-debathena etc/X11/Xsession.d
debian/athena-initial-x-terminal.desktop etc/xdg/autostart
debian/displaylert usr/lib/init
debian/displaymotd usr/lib/init