debian/changelog      |    9 ++++++++-
 debian/local/xvfb-run |   34 ++++++++++------------------------
 2 files changed, 18 insertions(+), 25 deletions(-)

New commits:
commit e6693c767e1a3fe2f02ae93fa7a6f7886d3fdebd
Author: Bryce Harrington <br...@bryceharrington.org>
Date:   Mon Nov 23 15:39:30 2009 -0800

    Looks like kees slipped in a patch without updating git.  Merge it in.

diff --git a/debian/changelog b/debian/changelog
index 7f77953..1337597 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,4 +1,4 @@
-xorg-server (2:1.6.4-2ubuntu5) karmic; urgency=low
+xorg-server (2:1.6.4-2ubuntu6) lucid; urgency=low
 
   * 189_xserver_1.5.0_bg_none_root.patch: Moblin patch to allow X to
     create a root window with no background by passing the -nr
@@ -15,6 +15,13 @@ xorg-server (2:1.6.4-2ubuntu5) karmic; urgency=low
 
  -- Bryce Harrington <br...@ubuntu.com>  Mon, 23 Nov 2009 13:59:44 -0800
 
+xorg-server (2:1.6.4-2ubuntu5) lucid; urgency=low
+
+  * Rework xvfb-run patch to wait for server to come up before checking
+    status (LP: #481591, Debian bug 521075).
+
+ -- Kees Cook <k...@ubuntu.com>  Fri, 13 Nov 2009 16:15:36 -0800
+
 xorg-server (2:1.6.4-2ubuntu4) karmic; urgency=low
 
   * Add 188_default_primary_to_first_busid.patch: X can abort if multiple
diff --git a/debian/local/xvfb-run b/debian/local/xvfb-run
index b6156c5..a75163f 100644
--- a/debian/local/xvfb-run
+++ b/debian/local/xvfb-run
@@ -149,46 +149,32 @@ trap clean_up EXIT
 # directory to house one.
 if [ -z "$AUTHFILE" ]; then
     XVFB_RUN_TMPDIR="$(mktemp -d -t $PROGNAME.XXXXXX)"
-    AUTHFILE="$XVFB_RUN_TMPDIR/Xauthority"
+    AUTHFILE=$(tempfile -n "$XVFB_RUN_TMPDIR/Xauthority")
 fi
 
 # Start Xvfb.
-tries=1000
-while test $tries -gt 0; do
-    tries=$((tries-1))
-    MCOOKIE=$(mcookie)
+MCOOKIE=$(mcookie)
+tries=10
+while [ $tries -gt 0 ]; do
+    tries=$(( $tries - 1 ))
     XAUTHORITY=$AUTHFILE xauth source - << EOF >>"$ERRORFILE" 2>&1
 add :$SERVERNUM $XAUTHPROTO $MCOOKIE
 EOF
     XAUTHORITY=$AUTHFILE Xvfb ":$SERVERNUM" $XVFBARGS $LISTENTCP 
>>"$ERRORFILE" 2>&1 &
     XVFBPID=$!
 
-    # Test PID of Xvfb and contents of the X server lock file
-    # (use numerical comparison to avoid whitespace issues).
-    # If the display was in use the Xvfb process will die on its own.
-    LOCKPID=`cat /tmp/.X${SERVERNUM}-lock)` 2>/dev/null
-    if [ -z $LOCKPID ]; then
+    sleep "$STARTWAIT"
+    if kill -0 $XVFBPID 2>/dev/null; then
         break
-    fi
-    if [ "$XVFBPID" -eq $LOCKPID ]; then
-        break
-    fi
-    # The display is in use so try another one (if '-a' was specified).
-    if [ "$AUTONUM" ]; then
+    elif [ -n "$AUTONUM" ]; then
+        # The display is in use so try another one (if '-a' was specified).
         SERVERNUM=$(find_free_servernum)
         continue
     fi
-    error "display :$SERVERNUM already in use"
+    error "Xvfb failed to start" >&2
     exit 1
-
 done
 
-sleep "$STARTWAIT"
-if ! kill -0 $XVFBPID 2>/dev/null; then
-  echo "Xvfb failed to start" >&2
-  exit 1
-fi
-
 # Start the command and save its exit status.
 set +e
 DISPLAY=:$SERVERNUM XAUTHORITY=$AUTHFILE "$@" 2>&1


-- 
To UNSUBSCRIBE, email to debian-x-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Reply via email to