[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

xorg-server: Changes to 'debian-unstable'



 debian/changelog        |   10 ++++++++++
 debian/local/xvfb-run   |   23 +++++++++++------------
 debian/local/xvfb-run.1 |    9 +--------
 3 files changed, 22 insertions(+), 20 deletions(-)

New commits:
commit 91e6b1905dc6943c80929e8c10bb927c2e0f7bab
Author: Julien Cristau <jcristau@debian.org>
Date:   Mon Mar 19 21:51:43 2012 +0100

    xvfb-run: drop svn $Id$ keywords
    
    And update the comment about necessary build-depends.

diff --git a/debian/local/xvfb-run b/debian/local/xvfb-run
index ba286a8..8832718 100644
--- a/debian/local/xvfb-run
+++ b/debian/local/xvfb-run
@@ -1,13 +1,11 @@
 #!/bin/sh
 
-# $Id: xvfb-run 2027 2004-11-16 14:54:16Z branden $
-
 # This script starts an instance of Xvfb, the "fake" X server, runs a command
 # with that server available, and kills the X server when done.  The return
 # value of the command becomes the return value of this script.
 #
 # If anyone is using this to build a Debian package, make sure the package
-# Build-Depends on xvfb, xbase-clients, and xfonts-base.
+# Build-Depends on xvfb and xauth.
 
 set -e
 
diff --git a/debian/local/xvfb-run.1 b/debian/local/xvfb-run.1
index 3973485..4b0353e 100644
--- a/debian/local/xvfb-run.1
+++ b/debian/local/xvfb-run.1
@@ -1,5 +1,3 @@
-.\" $Id: xvfb-run.1 2138 2005-01-17 23:40:27Z branden $
-.\"
 .\" Copyright 1998-2004 Branden Robinson <branden@debian.org>.
 .\"
 .\" This is free software; you may redistribute it and/or modify

commit 48755d15e04c6d8f6d210eba8a81df726a441759
Author: Julien Cristau <jcristau@debian.org>
Date:   Mon Mar 19 21:50:38 2012 +0100

    Speed up xvfb-run
    
    Instead of waiting 3 seconds and hoping that's enough for Xvfb to come
    up (and waiting 2.9 seconds too many in the general case), tell it to
    send us SIGUSR1 when it's ready to accept connections.  This reduces
    "xvfb-run -- xterm -e true" from 3.17s to 0.28s on a quick test.

diff --git a/debian/changelog b/debian/changelog
index 890cc6e..5740ae8 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,6 +1,10 @@
 xorg-server (2:1.11.4-2) UNRELEASED; urgency=low
 
   * xvfb-run: kill Xvfb when the script dies.
+  * xvfb-run: instead of waiting 3 seconds and hoping that's enough for Xvfb
+    to come up (and waiting 2.9 seconds too many in the general case), tell it
+    to send us SIGUSR1 when it's ready to accept connections.  This reduces
+    "xvfb-run -- xterm -e true" from 3.17s to 0.28s on a quick test.
 
  -- Julien Cristau <jcristau@debian.org>  Mon, 19 Mar 2012 21:16:07 +0100
 
diff --git a/debian/local/xvfb-run b/debian/local/xvfb-run
index 6733d35..ba286a8 100644
--- a/debian/local/xvfb-run
+++ b/debian/local/xvfb-run
@@ -15,7 +15,6 @@ PROGNAME=xvfb-run
 SERVERNUM=99
 AUTHFILE=
 ERRORFILE=/dev/null
-STARTWAIT=3
 XVFBARGS="-screen 0 640x480x8"
 LISTENTCP="-nolisten tcp"
 XAUTHPROTO=.
@@ -62,8 +61,6 @@ Options:
 -s ARGS   --server-args=ARGS        arguments (other than server number and
                                     "-nolisten tcp") to pass to the Xvfb server
                                     (default: "$XVFBARGS")
--w DELAY  --wait=DELAY              delay in seconds to wait for Xvfb to start
-                                    before running COMMAND (default: $STARTWAIT)
 EOF
 }
 
@@ -120,7 +117,7 @@ while :; do
         -l|--listen-tcp) LISTENTCP="" ;;
         -p|--xauth-protocol) XAUTHPROTO="$2"; shift ;;
         -s|--server-args) XVFBARGS="$2"; shift ;;
-        -w|--wait) STARTWAIT="$2"; shift ;;
+        -w|--wait) shift ;;
         --) shift; break ;;
         *) error "internal error; getopt permitted \"$1\" unexpectedly"
            exit 6
@@ -163,10 +160,13 @@ while [ $tries -gt 0 ]; do
     XAUTHORITY=$AUTHFILE xauth source - << EOF >>"$ERRORFILE" 2>&1
 add :$SERVERNUM $XAUTHPROTO $MCOOKIE
 EOF
-    XAUTHORITY=$AUTHFILE Xvfb ":$SERVERNUM" $XVFBARGS $LISTENTCP >>"$ERRORFILE" 2>&1 &
+    # handle SIGUSR1 so Xvfb knows to send a signal when it's ready to accept
+    # connections
+    trap : SIGUSR1
+    (trap '' SIGUSR1; XAUTHORITY=$AUTHFILE exec Xvfb ":$SERVERNUM" $XVFBARGS $LISTENTCP >>"$ERRORFILE" 2>&1) &
     XVFBPID=$!
 
-    sleep "$STARTWAIT"
+    wait
     if kill -0 $XVFBPID 2>/dev/null; then
         break
     elif [ -n "$AUTONUM" ]; then
diff --git a/debian/local/xvfb-run.1 b/debian/local/xvfb-run.1
index 17a4292..3973485 100644
--- a/debian/local/xvfb-run.1
+++ b/debian/local/xvfb-run.1
@@ -157,12 +157,7 @@ to achieve the latter function.
 The default is \(oq\-screen 0 640x480x8\(cq.
 .TP
 .BI \-w\  delay \fR,\fB\ \-\-wait= delay
-Wait
-.I delay
-seconds after launching
-.B Xvfb
-before attempting to start the specified command.
-The default is 3.
+Ignored for compatibility with earlier versions.
 .SH ENVIRONMENT
 .TP
 .B COLUMNS

commit e1da8c8e0b9303fcac26cce1ec427243bdb13db4
Author: Julien Cristau <julien.cristau@logilab.fr>
Date:   Mon Mar 19 21:17:50 2012 +0100

    xvfb-run: kill Xvfb when the script dies.
    
    We only killed the Xvfb process if the command exited, not if xvfb-run
    itself got killed

diff --git a/debian/changelog b/debian/changelog
index ee4a5a7..890cc6e 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+xorg-server (2:1.11.4-2) UNRELEASED; urgency=low
+
+  * xvfb-run: kill Xvfb when the script dies.
+
+ -- Julien Cristau <jcristau@debian.org>  Mon, 19 Mar 2012 21:16:07 +0100
+
 xorg-server (2:1.11.4-1) unstable; urgency=low
 
   * New upstream release.
diff --git a/debian/local/xvfb-run b/debian/local/xvfb-run
index c48ab37..6733d35 100644
--- a/debian/local/xvfb-run
+++ b/debian/local/xvfb-run
@@ -92,6 +92,9 @@ clean_up() {
             exit 5
         fi
     fi
+    if [ -n "$XVFBPID" ]; then
+        kill "$XVFBPID"
+    fi
 }
 
 # Parse the command line.
@@ -173,6 +176,7 @@ EOF
         continue
     fi
     error "Xvfb failed to start" >&2
+    XVFBPID=
     exit 1
 done
 
@@ -182,9 +186,6 @@ DISPLAY=:$SERVERNUM XAUTHORITY=$AUTHFILE "$@" 2>&1
 RETVAL=$?
 set -e
 
-# Kill Xvfb now that the command has exited.
-kill $XVFBPID
-
 # Return the executed command's exit status.
 exit $RETVAL
 


Reply to: