debian/changelog | 16 +++++++-- debian/local/Xsession.d/20x11-common_process-args | 14 +++++++ debian/local/Xsession.d/30x11-common_xresources | 30 +++++++---------- debian/local/Xsession.d/50x11-common_determine-startup | 4 +- debian/local/Xsession.d/90x11-common_ssh-agent | 2 - 5 files changed, 43 insertions(+), 23 deletions(-)
New commits: commit c3a8249d58deeba4b9d163a768e792a1d044ce8b Author: Brice Goglin <[email protected]> Date: Sun Mar 14 11:15:20 2010 +0100 Prepare changelog for upload diff --git a/debian/changelog b/debian/changelog index 442a8d6..7a58436 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,4 +1,4 @@ -xorg (1:7.5+4) UNRELEASED; urgency=low +xorg (1:7.5+4) unstable; urgency=low * Add Xreset and Xreset.d support, closes: #230422. * Improve startup speed of Xsession.d scripts by eliminating all unnecessary @@ -12,7 +12,7 @@ xorg (1:7.5+4) UNRELEASED; urgency=low unlikely (like "~/.Xresources exists") outside, to avoid running the other tests (like "xrdb exists") on systems which don't use Xresources. - -- Brice Goglin <[email protected]> Sat, 06 Mar 2010 16:15:01 +0100 + -- Brice Goglin <[email protected]> Sun, 14 Mar 2010 11:15:07 +0100 xorg (1:7.5+3) unstable; urgency=low commit f4928802701d1a2301ce3e92da015d9bf7ed5d65 Author: Brice Goglin <[email protected]> Date: Sun Mar 14 11:14:59 2010 +0100 Improve startup speed of Xsession.d scripts by eliminating all unnecessary external program calls diff --git a/debian/changelog b/debian/changelog index 0359056..442a8d6 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,6 +1,16 @@ xorg (1:7.5+4) UNRELEASED; urgency=low * Add Xreset and Xreset.d support, closes: #230422. + * Improve startup speed of Xsession.d scripts by eliminating all unnecessary + external program calls, thanks Martin Pitt, closes: #570447. + - In 20x11-common_process-args, cat $OPTIONFILE once into a variable and + use POSIX variable substitution in all scripts instead of calling grep + for every single test. + - Use shell built in "type" instead of external "which" to test for + programs. + - 30x11-common_xresources: Swap the order of tests to keep the most + unlikely (like "~/.Xresources exists") outside, to avoid running the + other tests (like "xrdb exists") on systems which don't use Xresources. -- Brice Goglin <[email protected]> Sat, 06 Mar 2010 16:15:01 +0100 diff --git a/debian/local/Xsession.d/20x11-common_process-args b/debian/local/Xsession.d/20x11-common_process-args index 53e7a7b..93e4653 100644 --- a/debian/local/Xsession.d/20x11-common_process-args +++ b/debian/local/Xsession.d/20x11-common_process-args @@ -2,6 +2,18 @@ # This file is sourced by Xsession(5), not executed. +# read OPTIONFILE +OPTIONS=$(cat "$OPTIONFILE") || true + +has_option() { + if [ "${OPTIONS#* +$1}" != "$OPTIONS" ]; then + return 0 + else + return 1 + fi +} + # Determine how many arguments were provided. case $# in 0) @@ -12,7 +24,7 @@ case $# in case "$1" in failsafe) # Failsafe session was requested. - if grep -qs ^allow-failsafe "$OPTIONFILE"; then + if has_option allow-failsafe; then if [ -e /usr/bin/x-terminal-emulator ]; then if [ -x /usr/bin/x-terminal-emulator ]; then exec x-terminal-emulator -geometry +1+1 diff --git a/debian/local/Xsession.d/30x11-common_xresources b/debian/local/Xsession.d/30x11-common_xresources index f9f6e13..c3f53a8 100644 --- a/debian/local/Xsession.d/30x11-common_xresources +++ b/debian/local/Xsession.d/30x11-common_xresources @@ -4,25 +4,23 @@ # If xrdb (from xbase-clients) is installed, merge system-wide X resources. # Then merge the user's X resources, if the options file is so configured. -if /usr/bin/which xrdb >/dev/null 2>&1; then - if [ -d "$SYSRESOURCES" ]; then - RESOURCEFILES=$(run-parts --list $SYSRESOURCES) - if [ -n "$RESOURCEFILES" ]; then - for RESOURCEFILE in $RESOURCEFILES; do - xrdb -merge $RESOURCEFILE - done - fi +if [ -d "$SYSRESOURCES" ] && type xrdb >/dev/null 2>&1; then + RESOURCEFILES=$(run-parts --list $SYSRESOURCES) + if [ -n "$RESOURCEFILES" ]; then + for RESOURCEFILE in $RESOURCEFILES; do + xrdb -merge $RESOURCEFILE + done fi +fi - if grep -qs ^allow-user-resources "$OPTIONFILE"; then - if [ -f "$USRRESOURCES" ]; then - xrdb -merge $USRRESOURCES - fi +if has_option allow-user-resources && [ -f "$USRRESOURCES" ]; then + if type xrdb >/dev/null 2>&1; then + xrdb -merge $USRRESOURCES + else + # Comment out this command if you desire a legacy-free X environment, and find + # the warning spurious. + message "warning: xrdb command not found; X resources not merged." fi -else - # Comment out this command if you desire a legacy-free X environment, and find - # the warning spurious. - message "warning: xrdb command not found; X resources not merged." fi # vim:set ai et sts=2 sw=2 tw=80: diff --git a/debian/local/Xsession.d/50x11-common_determine-startup b/debian/local/Xsession.d/50x11-common_determine-startup index 2a669a0..4ed7a32 100644 --- a/debian/local/Xsession.d/50x11-common_determine-startup +++ b/debian/local/Xsession.d/50x11-common_determine-startup @@ -7,7 +7,7 @@ # executable, fall back to looking for a user's custom X session script, if # allowed by the options file. if [ -z "$STARTUP" ]; then - if grep -qs ^allow-user-xsession "$OPTIONFILE"; then + if has_option allow-user-session; then for STARTUPFILE in "$USERXSESSION" "$ALTUSERXSESSION"; do if [ -e "$STARTUPFILE" ]; then if [ -x "$STARTUPFILE" ]; then @@ -36,7 +36,7 @@ fi # If we still have not found a startup program, give up. if [ -z "$STARTUP" ]; then ERRMSG="unable to start X session ---" - if grep -qs ^allow-user-xsession "$OPTIONFILE"; then + if has_option allow-user-session; then ERRMSG="$ERRMSG no \"$USERXSESSION\" file, no \"$ALTUSERXSESSION\" file," fi errormsg "$ERRMSG no session managers, no window managers, and no terminal" \ diff --git a/debian/local/Xsession.d/90x11-common_ssh-agent b/debian/local/Xsession.d/90x11-common_ssh-agent index 05a16c5..5397434 100644 --- a/debian/local/Xsession.d/90x11-common_ssh-agent +++ b/debian/local/Xsession.d/90x11-common_ssh-agent @@ -6,7 +6,7 @@ STARTSSH= SSHAGENT=/usr/bin/ssh-agent SSHAGENTARGS= -if grep -qs ^use-ssh-agent "$OPTIONFILE"; then +if has_option use-ssh-agent; then if [ -x "$SSHAGENT" ] && [ -z "$SSH_AUTH_SOCK" ] \ && [ -z "$SSH2_AUTH_SOCK" ]; then STARTSSH=yes -- To UNSUBSCRIBE, email to [email protected] with a subject of "unsubscribe". Trouble? Contact [email protected] Archive: http://lists.debian.org/[email protected]

