[25430] in Source-Commits

home help back first fref pref prev next nref lref last post

/svn/athena r24976 - trunk/debathena/debathena/xsession/debian

daemon@ATHENA.MIT.EDU (Jonathan D Reed)
Wed Feb 23 20:19:20 2011

Date: Wed, 23 Feb 2011 20:19:13 -0500
From: Jonathan D Reed <jdreed@MIT.EDU>
Message-Id: <201102240119.p1O1JD2p013879@drugstore.mit.edu>
To: source-commits@mit.edu
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Author: jdreed
Date: 2011-02-23 20:19:13 -0500 (Wed, 23 Feb 2011)
New Revision: 24976

Added:
   trunk/debathena/debathena/xsession/debian/debathena-gdm-sucks.sh
   trunk/debathena/debathena/xsession/debian/debathena-homedir-mode.sh
   trunk/debathena/debathena/xsession/debian/debathena-message.sh
   trunk/debathena/debathena/xsession/debian/debathena-nocalls.sh
   trunk/debathena/debathena/xsession/debian/debathena-quota.sh
   trunk/debathena/debathena/xsession/debian/debathena-tcsh-sucks.sh
   trunk/debathena/debathena/xsession/debian/debathena-tracker.sh
Modified:
   trunk/debathena/debathena/xsession/debian/00debathena-gdm-sucks
   trunk/debathena/debathena/xsession/debian/00debathena-message
   trunk/debathena/debathena/xsession/debian/00debathena-tcsh-sucks
   trunk/debathena/debathena/xsession/debian/01debathena-quota
   trunk/debathena/debathena/xsession/debian/05debathena-nocalls
   trunk/debathena/debathena/xsession/debian/96debathena-tracker
   trunk/debathena/debathena/xsession/debian/97debathena-homedir-mode
   trunk/debathena/debathena/xsession/debian/98debathena-xsession
   trunk/debathena/debathena/xsession/debian/changelog
   trunk/debathena/debathena/xsession/debian/debathena-xsession.install
Log:
In xsession:
  * Don't use dpkg-query because it slows logins down; instead ship actual
    scripts in /usr/share and source them (Trac #778)


Modified: trunk/debathena/debathena/xsession/debian/00debathena-gdm-sucks
===================================================================
--- trunk/debathena/debathena/xsession/debian/00debathena-gdm-sucks	2011-02-23 20:55:52 UTC (rev 24975)
+++ trunk/debathena/debathena/xsession/debian/00debathena-gdm-sucks	2011-02-24 01:19:13 UTC (rev 24976)
@@ -1,14 +1,2 @@
-if [ "$(dpkg-query -W -f '${Status}' debathena-xsession 2>/dev/null)" = "install ok installed" ] && [ "$GDMSESSION" = "001debathena-ttymode" ]; then
-    if [ "$DEBATHENA_HOME_TYPE" = "afs" ]; then
-	QUOTAPCT=$(fs lq $HOME | tail -1 | awk '{print $4}' | sed 's/[^0-9]*//g')
-	if [ $QUOTAPCT -ge 100 ]; then
-	    # Otherwise it blocks the session until it times out
-	    pkill pulseaudio
-	fi
-    fi
-    if zenity --question --text="This will launch an xterm which will emulate a tty-mode login session.  You can end your session by typing 'logout'.\nContinue?"; then
-	xsetroot -solid grey
-	xterm -ls -geometry 80x24+280+220 -display :0.0
-    fi
-    exit 0
-fi
\ No newline at end of file
+[ -f /usr/share/debathena-xsession/debathena-gdm-sucks.sh ] && \ 
+ . /usr/share/debathena-xsession/debathena-gdm-sucks.sh

Modified: trunk/debathena/debathena/xsession/debian/00debathena-message
===================================================================
--- trunk/debathena/debathena/xsession/debian/00debathena-message	2011-02-23 20:55:52 UTC (rev 24975)
+++ trunk/debathena/debathena/xsession/debian/00debathena-message	2011-02-24 01:19:13 UTC (rev 24976)
@@ -1,18 +1,2 @@
-# This file is sourced by Xsession(5), not executed.
-
-# Work around the absence of the message function (to pretty-print user
-# messages) from some versions of gdm's Xsession script.
-if [ "$(dpkg-query -W -f '${Status}' debathena-xsession 2>/dev/null)" = "install ok installed" ] && \
-   ! hash message 2>/dev/null ; then
-  message () {
-    text="$@"
-    echo "$text" | fold -s
-    if [ -n "$DISPLAY" ]; then
-      if hash zenity 2>/dev/null ; then
-        zenity --info --text "$text"
-      elif hash xmessage 2>/dev/null ; then
-        echo "$text" | fold -s | xmessage -center -file -
-      fi
-    fi
-  }
-fi
+[ -f /usr/share/debathena-xsession/debathena-message.sh ] && \
+ . /usr/share/debathena-xsession/debathena-message.sh

Modified: trunk/debathena/debathena/xsession/debian/00debathena-tcsh-sucks
===================================================================
--- trunk/debathena/debathena/xsession/debian/00debathena-tcsh-sucks	2011-02-23 20:55:52 UTC (rev 24975)
+++ trunk/debathena/debathena/xsession/debian/00debathena-tcsh-sucks	2011-02-24 01:19:13 UTC (rev 24976)
@@ -1,10 +1,2 @@
-# This file is sourced by Xsession(5), not executed.
-
-# Horrible work-around for the fact that GDM can't read the
-# .xsession-errors file it tries to write.
-if [ "$(dpkg-query -W -f '${Status}' debathena-xsession 2>/dev/null)" = "install ok installed" ] && \
-   echo "$SHELL" | grep -q 'tcsh' && \
-   [ 'afs' = "$DEBATHENA_HOME_TYPE" ]; then
-    xterm -rightbar -sb -fa "" -fs 12 -T ".xsession-errors" -e tail -n +1 -f "$HOME/.xsession-errors" &
-    export XCONSOLE=$!
-fi
+[ -f /usr/share/debathena-xsession/debathena-tcsh-sucks.sh ] && \
+ . /usr/share/debathena-xsession/debathena-tcsh-sucks.sh

Modified: trunk/debathena/debathena/xsession/debian/01debathena-quota
===================================================================
--- trunk/debathena/debathena/xsession/debian/01debathena-quota	2011-02-23 20:55:52 UTC (rev 24975)
+++ trunk/debathena/debathena/xsession/debian/01debathena-quota	2011-02-24 01:19:13 UTC (rev 24976)
@@ -1,6 +1,2 @@
-if [ "$(dpkg-query -W -f '${Status}' debathena-xsession 2>/dev/null)" = "install ok installed" ] && [ "$DEBATHENA_HOME_TYPE" = "afs" ]; then
-    QUOTAPCT=$(fs lq $HOME | tail -1 | awk '{print $4}' | sed 's/[^0-9]*//g')
-    if [ $QUOTAPCT -ge 100 ]; then
-	message "You have exceeded your AFS quota.  This login session will likely fail.\n\nTry using the 'Athena TTY Session' login session to get a tty-mode login session, and then remove or compress some files to get below your quota.\n\nYou may also request a quota increase from User Accounts by calling x3-1325."
-    fi
-fi
+[ -f /usr/share/debathena-xsession/debathena-quota.sh ] && \
+ . /usr/share/debathena-xsession/debathena-quota.sh

Modified: trunk/debathena/debathena/xsession/debian/05debathena-nocalls
===================================================================
--- trunk/debathena/debathena/xsession/debian/05debathena-nocalls	2011-02-23 20:55:52 UTC (rev 24975)
+++ trunk/debathena/debathena/xsession/debian/05debathena-nocalls	2011-02-24 01:19:13 UTC (rev 24976)
@@ -1,19 +1,2 @@
-if [ "$(dpkg-query -W -f '${Status}' debathena-xsession 2>/dev/null)" != "install ok installed" ]; then
-   return 0
-fi
-
-if [ "$GDMSESSION" = "000debathena-nocalls" ]; then
-    export NOCALLS=1
-    message "You have chosen to log in without your customizations." \
-   	"Your dotfiles will be ignored in favor of the system" \
-        "default settings.  You can use this session to fix any" \
-	"problems with your dotfiles."
-fi
-
-# You don't actually want nocalls as your default session
-[ -e "$HOME/.dmrc" ] && \
-  grep -q 000debathena-nocalls "$HOME/.dmrc" && \
-  rm "$HOME/.dmrc"
-[ -e "/var/cache/gdm/$USER/dmrc" ] && \
-  grep -q 000debathena-nocalls "/var/cache/gdm/$USER/dmrc" && \
-  rm "/var/cache/gdm/$USER/dmrc"
+[ -f /usr/share/debathena-xsession/debathena-nocalls.sh ] && \
+ . /usr/share/debathena-xsession/debathena-nocalls.sh

Modified: trunk/debathena/debathena/xsession/debian/96debathena-tracker
===================================================================
--- trunk/debathena/debathena/xsession/debian/96debathena-tracker	2011-02-23 20:55:52 UTC (rev 24975)
+++ trunk/debathena/debathena/xsession/debian/96debathena-tracker	2011-02-24 01:19:13 UTC (rev 24976)
@@ -1,13 +1,2 @@
-# This file is sourced by Xsession(5), not executed.
-
-if [ "$(dpkg-query -W -f '${Status}' debathena-xsession 2>/dev/null)" = "install ok installed" ] && \
-    [ afs = "$DEBATHENA_HOME_TYPE" ] && \
-    [ -f "$HOME/.config/tracker/tracker.cfg" ] && \
-    [ "$(awk -F= '/^EnableIndexing/ { print $2}' $HOME/.config/tracker/tracker.cfg)" != "false" ]; then
-    
-    message "You currently have the Tracker applet configured to index" \
-	"your home directory, probably because you logged into an earlier" \
-	"version of Debathena.  This is undesirable, because it can interact" \
-	"poorly with the AFS cache and render AFS unusable.  To fix this," \
-	"run the following command:  athrun consult fix-tracker"
-fi
+[ -f /usr/share/debathena-xsession/debathena-tracker.sh ] && \
+ . /usr/share/debathena-xsession/debathena-tracker.sh

Modified: trunk/debathena/debathena/xsession/debian/97debathena-homedir-mode
===================================================================
--- trunk/debathena/debathena/xsession/debian/97debathena-homedir-mode	2011-02-23 20:55:52 UTC (rev 24975)
+++ trunk/debathena/debathena/xsession/debian/97debathena-homedir-mode	2011-02-24 01:19:13 UTC (rev 24976)
@@ -1,12 +1,2 @@
-# This file is sourced by Xsession(5), not executed.
-
-if [ "$(dpkg-query -W -f '${Status}' debathena-xsession 2>/dev/null)" = "install ok installed" ] && \
-  [ afs = "$DEBATHENA_HOME_TYPE" ] && \
-  stat -L --format='%A' "$HOME" | egrep -q '^(.....w|........w)'; then
-  hm=$(stat -L --format='%a' "$HOME")
-  message "Your home directory is mode $hm, probably because it was created" \
-    "a long time ago.  You likely received a spurious error dialog about" \
-    ".dmrc as a result of the mode bits on your home directory.  To fix this" \
-    "condition, you can run: chmod 755 \$HOME"
-  unset hm
-fi
+[ -f /usr/share/debathena-xsession/debathena-homedir-mode.sh ] && \
+ . /usr/share/debathena-xsession/debathena-homedir-mode.sh

Modified: trunk/debathena/debathena/xsession/debian/98debathena-xsession
===================================================================
--- trunk/debathena/debathena/xsession/debian/98debathena-xsession	2011-02-23 20:55:52 UTC (rev 24975)
+++ trunk/debathena/debathena/xsession/debian/98debathena-xsession	2011-02-24 01:19:13 UTC (rev 24976)
@@ -5,7 +5,9 @@
 # - This is an AFS homedir
 # - The user has a standard Athena shell
 # - The user does not have an xsession script
-if [ "$(dpkg-query -W -f '${Status}' debathena-xsession 2>/dev/null)" = "install ok installed" ] && \
+
+if [ -x /usr/lib/init/xsession.bash ] && \
+   [ -x /usr/lib/init/xsession.tcsh ] && \
      [ afs = "$DEBATHENA_HOME_TYPE" -a ! -e "$USERXSESSION" \
      -a ! -e "$ALTUSERXSESSION" ]; then
   case $SHELL in

Modified: trunk/debathena/debathena/xsession/debian/changelog
===================================================================
--- trunk/debathena/debathena/xsession/debian/changelog	2011-02-23 20:55:52 UTC (rev 24975)
+++ trunk/debathena/debathena/xsession/debian/changelog	2011-02-24 01:19:13 UTC (rev 24976)
@@ -1,3 +1,10 @@
+debathena-xsession (1.17) unstable; urgency=low
+
+  * Don't use dpkg-query because it slows logins down; instead ship actual
+    scripts in /usr/share and source them (Trac #778)
+
+ -- Jonathan Reed <jdreed@mit.edu>  Wed, 23 Feb 2011 20:17:06 -0500
+
 debathena-xsession (1.16) unstable; urgency=low
 
   * Add an Athena-specific tty-mode login session that will get you an xterm

Added: trunk/debathena/debathena/xsession/debian/debathena-gdm-sucks.sh
===================================================================
--- trunk/debathena/debathena/xsession/debian/debathena-gdm-sucks.sh	                        (rev 0)
+++ trunk/debathena/debathena/xsession/debian/debathena-gdm-sucks.sh	2011-02-24 01:19:13 UTC (rev 24976)
@@ -0,0 +1,14 @@
+if [ "$GDMSESSION" = "001debathena-ttymode" ]; then
+    if [ "$DEBATHENA_HOME_TYPE" = "afs" ]; then
+	QUOTAPCT=$(fs lq $HOME | tail -1 | awk '{print $4}' | sed 's/[^0-9]*//g')
+	if [ $QUOTAPCT -ge 100 ]; then
+	    # Otherwise it blocks the session until it times out
+	    pkill pulseaudio
+	fi
+    fi
+    if zenity --question --text="This will launch an xterm which will emulate a tty-mode login session.  You can end your session by typing 'logout'.\nContinue?"; then
+	xsetroot -solid grey
+	xterm -ls -geometry 80x24+280+220 -display :0.0
+    fi
+    exit 0
+fi

Added: trunk/debathena/debathena/xsession/debian/debathena-homedir-mode.sh
===================================================================
--- trunk/debathena/debathena/xsession/debian/debathena-homedir-mode.sh	                        (rev 0)
+++ trunk/debathena/debathena/xsession/debian/debathena-homedir-mode.sh	2011-02-24 01:19:13 UTC (rev 24976)
@@ -0,0 +1,11 @@
+# This file is sourced by Xsession(5), not executed.
+
+if [ afs = "$DEBATHENA_HOME_TYPE" ] && \
+  stat -L --format='%A' "$HOME" | egrep -q '^(.....w|........w)'; then
+  hm=$(stat -L --format='%a' "$HOME")
+  message "Your home directory is mode $hm, probably because it was created" \
+    "a long time ago.  You likely received a spurious error dialog about" \
+    ".dmrc as a result of the mode bits on your home directory.  To fix this" \
+    "condition, you can run: chmod 755 \$HOME"
+  unset hm
+fi

Added: trunk/debathena/debathena/xsession/debian/debathena-message.sh
===================================================================
--- trunk/debathena/debathena/xsession/debian/debathena-message.sh	                        (rev 0)
+++ trunk/debathena/debathena/xsession/debian/debathena-message.sh	2011-02-24 01:19:13 UTC (rev 24976)
@@ -0,0 +1,17 @@
+# This file is sourced by Xsession(5), not executed.
+
+# Work around the absence of the message function (to pretty-print user
+# messages) from some versions of gdm's Xsession script.
+if ! hash message 2>/dev/null ; then
+  message () {
+    text="$@"
+    echo "$text" | fold -s
+    if [ -n "$DISPLAY" ]; then
+      if hash zenity 2>/dev/null ; then
+        zenity --info --text "$text"
+      elif hash xmessage 2>/dev/null ; then
+        echo "$text" | fold -s | xmessage -center -file -
+      fi
+    fi
+  }
+fi

Added: trunk/debathena/debathena/xsession/debian/debathena-nocalls.sh
===================================================================
--- trunk/debathena/debathena/xsession/debian/debathena-nocalls.sh	                        (rev 0)
+++ trunk/debathena/debathena/xsession/debian/debathena-nocalls.sh	2011-02-24 01:19:13 UTC (rev 24976)
@@ -0,0 +1,15 @@
+if [ "$GDMSESSION" = "000debathena-nocalls" ]; then
+    export NOCALLS=1
+    message "You have chosen to log in without your customizations." \
+   	"Your dotfiles will be ignored in favor of the system" \
+        "default settings.  You can use this session to fix any" \
+	"problems with your dotfiles."
+fi
+
+# You don't actually want nocalls as your default session
+[ -e "$HOME/.dmrc" ] && \
+  grep -q 000debathena-nocalls "$HOME/.dmrc" && \
+  rm "$HOME/.dmrc"
+[ -e "/var/cache/gdm/$USER/dmrc" ] && \
+  grep -q 000debathena-nocalls "/var/cache/gdm/$USER/dmrc" && \
+  rm "/var/cache/gdm/$USER/dmrc"

Added: trunk/debathena/debathena/xsession/debian/debathena-quota.sh
===================================================================
--- trunk/debathena/debathena/xsession/debian/debathena-quota.sh	                        (rev 0)
+++ trunk/debathena/debathena/xsession/debian/debathena-quota.sh	2011-02-24 01:19:13 UTC (rev 24976)
@@ -0,0 +1,6 @@
+if [ "$DEBATHENA_HOME_TYPE" = "afs" ]; then
+    QUOTAPCT=$(fs lq $HOME | tail -1 | awk '{print $4}' | sed 's/[^0-9]*//g')
+    if [ $QUOTAPCT -ge 100 ]; then
+	message "You have exceeded your AFS quota.  This login session will likely fail.\n\nTry using the 'Athena TTY Session' login session to get a tty-mode login session, and then remove or compress some files to get below your quota.\n\nYou may also request a quota increase from User Accounts by calling x3-1325."
+    fi
+fi

Added: trunk/debathena/debathena/xsession/debian/debathena-tcsh-sucks.sh
===================================================================
--- trunk/debathena/debathena/xsession/debian/debathena-tcsh-sucks.sh	                        (rev 0)
+++ trunk/debathena/debathena/xsession/debian/debathena-tcsh-sucks.sh	2011-02-24 01:19:13 UTC (rev 24976)
@@ -0,0 +1,10 @@
+# This file is sourced by Xsession(5), not executed.
+
+# Horrible work-around for the fact that GDM can't read the
+# .xsession-errors file it tries to write.
+
+if echo "$SHELL" | grep -q 'tcsh' && \
+   [ 'afs' = "$DEBATHENA_HOME_TYPE" ]; then
+    xterm -rightbar -sb -fa "" -fs 12 -T ".xsession-errors" -e tail -n +1 -f "$HOME/.xsession-errors" &
+    export XCONSOLE=$!
+fi

Added: trunk/debathena/debathena/xsession/debian/debathena-tracker.sh
===================================================================
--- trunk/debathena/debathena/xsession/debian/debathena-tracker.sh	                        (rev 0)
+++ trunk/debathena/debathena/xsession/debian/debathena-tracker.sh	2011-02-24 01:19:13 UTC (rev 24976)
@@ -0,0 +1,12 @@
+# This file is sourced by Xsession(5), not executed.
+
+if [ afs = "$DEBATHENA_HOME_TYPE" ] && \
+    [ -f "$HOME/.config/tracker/tracker.cfg" ] && \
+    [ "$(awk -F= '/^EnableIndexing/ { print $2}' $HOME/.config/tracker/tracker.cfg)" != "false" ]; then
+    
+    message "You currently have the Tracker applet configured to index" \
+	"your home directory, probably because you logged into an earlier" \
+	"version of Debathena.  This is undesirable, because it can interact" \
+	"poorly with the AFS cache and render AFS unusable.  To fix this," \
+	"run the following command:  athrun consult fix-tracker"
+fi

Modified: trunk/debathena/debathena/xsession/debian/debathena-xsession.install
===================================================================
--- trunk/debathena/debathena/xsession/debian/debathena-xsession.install	2011-02-23 20:55:52 UTC (rev 24975)
+++ trunk/debathena/debathena/xsession/debian/debathena-xsession.install	2011-02-24 01:19:13 UTC (rev 24976)
@@ -15,3 +15,10 @@
 debian/quotawarn usr/lib/init
 debian/xsession.bash usr/lib/init
 debian/xsession.tcsh usr/lib/init
+debian/debathena-gdm-sucks.sh usr/share/debathena-xsession
+debian/debathena-homedir-mode.sh usr/share/debathena-xsession
+debian/debathena-message.sh usr/share/debathena-xsession
+debian/debathena-nocalls.sh usr/share/debathena-xsession
+debian/debathena-quota.sh usr/share/debathena-xsession
+debian/debathena-tcsh-sucks.sh usr/share/debathena-xsession
+debian/debathena-tracker.sh usr/share/debathena-xsession


home help back first fref pref prev next nref lref last post