debian/changelog | 12 + debian/local/xserver-xephyr.1 | 342 ++++++++++++++++++++++++++++++++++++++++++ debian/local/xvfb-run | 38 +++- debian/local/xvfb-run.1 | 12 + debian/rules | 1 debian/xserver-xephyr.install | 1 6 files changed, 394 insertions(+), 12 deletions(-)
New commits: commit 87c7469bfc002b6d93d64624ace71d151ee7385b Author: Bryce Harrington <[email protected]> Date: Thu Apr 2 23:58:11 2009 -0700 Add Xephyr man page diff --git a/debian/changelog b/debian/changelog index d13b6c8..b584bac 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,11 +1,14 @@ xorg-server (2:1.6.0-0ubuntu9) jaunty; urgency=low - * debian/local/xvfb-run: Fixes race condition with concurrent invocations + * local/xvfb-run: Fixes race condition with concurrent invocations (LP: #348052) - * debian/local/xvfb-run, xvfb-run.1: Add correct docs about error codes + * local/xvfb-run, xvfb-run.1: Add correct docs about error codes (LP: #328205) + * local/xserver-xephyr.1, rules, xserver-xephyr.install: Add man page + for xephyr + (LP: #134906) - -- Bryce Harrington <[email protected]> Wed, 01 Apr 2009 20:35:36 -0700 + -- Bryce Harrington <[email protected]> Wed, 01 Apr 2009 20:37:22 -0700 xorg-server (2:1.6.0-0ubuntu8) jaunty; urgency=low diff --git a/debian/local/xserver-xephyr.1 b/debian/local/xserver-xephyr.1 new file mode 100644 index 0000000..2f55cec --- /dev/null +++ b/debian/local/xserver-xephyr.1 @@ -0,0 +1,342 @@ +.\" ." +.\" ." Copyright (c) Matthieu Herrb <[email protected]> +.\" ." +.\" ." Permission to use, copy, modify, and distribute this software for any +.\" ." purpose with or without fee is hereby granted, provided that the above +.\" ." copyright notice and this permission notice appear in all copies. +.\" ." +.\" ." THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +.\" ." WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +.\" ." MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +.\" ." ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +.\" ." WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +.\" ." ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +.\" ." OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +.\" ." +.TH "Xephyr" "1" "" "Matthew Allum" "xserver-xephyr" +.SH "NAME" +Xephyr \- X server outputting to a window on a pre\-existing X display +.SH "SYNOPSIS" +.B Xephyr +.RI [\fB:\fP display ] +.RI [ option +.I R ... ] +.SH "DESCRIPTION" +.B Xephyr is a kdrive server that outputs to a window on a pre\-existing +"host" X display. Think Xnest but with support for modern extensions like composite, damage and randr. +.PP +Unlike Xnest which is an X proxy, i.e. limited to the capabilities of the host X server, Xephyr is a real X server which uses the host X server window as "framebuffer" via fast SHM XImages. +.PP +It also has support for "visually" debugging what the server is +.br +painting. +.SH "OPTIONS" +.TP +.BI \-a # +Mouse acceleration (pixels) +.TP +.BI \-ac +Disable access control restrictions +.TP +.BI \-audit " int +Set audit trail level +.TP +.BI \-auth " file +Select authorization file +.TP +.BI \-br +Create root window with black background +.TP +.BI +bs +Enable any backing store support +.TP +.BI \-bs +Disable any backing store support +.TP +.BI \-c +Turns off key\-click +.TP +.BI c # +Key\-click volume (0\-100) +.TP +.BI \-cc int +Default color visual class +.TP +.BI \-core +Generate core dump on fatal error +.TP +.BI \-dpi int +Screen resolution in dots per inch +.TP +.BI dpms +Enables VESA DPMS monitor control +.TP +.BI \-dpms +Disables VESA DPMS monitor control +.TP +.BI \-deferglyphs [none|all|16] +Defer loading of [no|all|16\-bit] glyphs +.TP +.BI \-f # +Bell base (0\-100) +.TP +.BI \-fc " <string> +Cursor font +.TP +.BI \-fn " <string> +Default font name +.TP +.BI \-fp " <string> +Default font path +.TP +.BI \-help +Prints message with these options +.TP +.BI \-I +Ignore all remaining arguments +.TP +.BI \-ld int +Limit data space to N Kb +.TP +.BI \-lf int +Limit number of open files to N +.TP +.BI \-ls int +Limit stack space to N Kb +.TP +.BI \-logo +Enable logo in screen saver +.TP +.BI nologo +Disable logo in screen saver +.TP +.BI \-nolisten string +Do not listen on protocol +.TP +.BI \-noreset +Do not reset after last client exists +.TP +.BI \-reset +Reset after last client exists +.TP +.BI \-p # +Screen\-saver pattern duration (minutes) +.TP +.BI \-pn +Accept failure to listen on all ports +.TP +.BI \-nopn +Reject failure to listen on all ports +.TP +.BI \-r +Turns off auto\-repeat +.TP +.BI r +Turns on auto\-repeat +.TP +.BI \-render [default|mono|gray|color] +Set render color alloc policy +.TP +.BI \-retro +Start with classic stipple and cursor +.TP +.BI \-s # +Screen\-saver timeout (minutes) +.TP +.BI \-t # +Mouse threshold (pixels) +.TP +.BI \-terminate +Terminate at server reset +.TP +.BI \-to # +Connection time out +.TP +.BI \-tst +Disable testing extensions +.TP +.BI ttyxx +Server started from init on /dev/ttyxx +.TP +.BI v +Video blanking for screen\-saver +.TP +.BI \-v +Screen\-saver without video blanking +.TP +.BI \-wm +WhenMapped default backing\-store +.TP +.BI \-wr +Create root window with white background +.TP +.BI \-x string +Loads named extension at init time +.TP +.BI \-maxbigreqsize +Set maximal bigrequest size +.TP +.BI +xinerama +Enable XINERAMA extension +.TP +.BI \-xinerama +Disable XINERAMA extension +.TP +.BI \-dumbSched +Disable smart scheduling, enable old behavior +.TP +.BI \-schedInterval int +Set scheduler interval in msec +.TP +.BI +extension name +Enable extension +.TP +.BI \-extension name +Disable extension +.TP +.BI \-query host\-name +Contact named host for XDMCP +.TP +.BI \-broadcast +Broadcast for XDMCP +.TP +.BI \-multicast [addr [hops]] +IPv6 multicast for XDMCP +.TP +.BI \-indirect " <host\-name> +Contact named host for indirect XDMCP +.TP +.BI \-port port\-num +UDP port number to send messages to +.TP +.BI \-from local\-address +Specify the local address to connect from +.TP +.BI \-once +Terminate server after one session +.TP +.BI \-class display\-class +Specify display class to send in manage +.TP +.BI \-cookie xdm\-auth\-bits +Specify the magic cookie for XDMCP +.TP +.BI \-displayID display\-id +Manufacturer display ID for request +.TP +.BI \-kb +Disable the X Keyboard Extension +.TP +.BI +kb +Enable the X Keyboard Extension +.TP +.BI [+\-]accessx [ timeout [ timeout_mask [ feedback [ options_mask] ] ] ] +Enable/disable accessx key sequences +.TP +.BI \-ardelay +Set XKB autorepeat delay +.TP +.BI \-arinterval +Set XKB autorepeat interval +.SH "TINYX DEVICE DEPENDENT USAGE" +.TP +.BI \-card pcmcia +Use PCMCIA card as additional screen +.TP +\-screen WIDTH[/WIDTHMM]xHEIGHT[/heightm...@rotation][x][y] +[xDEPTH/BPP{,DEPTH/BPP}[xFREQ]] +.br +Specify screen characteristics +.TP +.BI \-rgba rgb/bgr/vrgb/vbgr/none +Specify subpixel ordering for LCD panels +.TP +.BI \-mouse driver [,n,,options] +Specify the pointer driver and its options (n is the number of buttons) +.TP +.BI \-keybd driver [,,options] +Specify the keyboard driver and its options +.TP +.BI \-zaphod +Disable cursor screen switching +.TP +.BI \-2button +Emulate 3 button mouse +.TP +.BI \-3button +Disable 3 button mouse emulation +.TP +.BI \-rawcoord +Do not transform pointer coordinates on rotation +.TP +.BI \-dumb +Disable hardware acceleration +.TP +.BI \-softCursor +Force software cursor +.TP +.BI \-videoTest +Start the server, pause momentarily and exit +.TP +.BI \-origin " X,Y +Locates the next screen in the the virtual screen (Xinerama) +.TP +.BI \-switchCmd +Command to execute on vt switch +.TP +.BI \-zap +Terminate server on Ctrl+Alt+Backspace +.TP +.BI vtxx +Use virtual terminal xx instead of the next available +.SH "XEPHYR OPTION USAGE" +.TP +.BI \-parent " <XID> +Use existing window as Xephyr root win +.TP +.BI \-host\-cursor +Re\-use exisiting X host server cursor +.TP +.BI \-fullscreen +Attempt to run Xephyr fullscreen +.TP +.BI \-grayscale +Simulate 8bit grayscale +.TP +.BI \-fakexa +Simulate acceleration using software rendering +.TP +.BI \-verbosity " <level> +Set log verbosity level +.TP +.BI \-nodri +Do not use DRI +.TP +.BI \-noxv +Do not use XV +.TP +.BI \-name " [name] +Define the name in the WM_CLASS property +.SH "SIGNALS" +Send a SIGUSR1 to the server (e.g. pkill \-USR1 Xephyr) to toggle the debugging mode. +In this mode red rectangles are painted to screen areas getting painted before painting the actual content. The delay between this can be altered by setting a XEPHYR_PAUSE env var to a value in micro seconds. +.SH "CAVEATS" +.TP +Rotated displays are currently updated via full blits. This is slower than a normal orientated display. Debug mode will therefore not be of much use rotated. +.TP +The \fB\-host\-cursor\fR cursor is static in its appearance. +.TP +The build gets a warning about \fBnanosleep\fR. I think the various \fB\-D\fR build flags are causing this. I have not figured as yet how to work round it. It does not appear to break anything however. +.TP +Keyboard handling is basic but works. +.TP +Mouse button 5 probably wont work. +.SH "SEE ALSO" +X(7), Xserver(1), xdm(1), xinit(1), xorg.conf(5), xorgconfig(1), xorgcfg(1), xvidtune(1), apm(4), ati(4), chips(4), cirrus(4), cyrix(4), fbdev(4), glide(4), glint(4), i128(4), i740(4), i810(4), imstt(4), mga(4), neomagic(4), nsc(4), nv(4), r128(4), rendition(4), s3virge(4), siliconmotion(4), sis(4), sunbw2(4), suncg14(4), suncg3(4), suncg6(4), sunffb(4), sunleo(4), suntcx(4), tdfx(4), tga(4), trident(4), tseng(4), v4l(4), vesa(4), vga(4), vmware(4), + +.SH "AUTHOR" +Xephyr was written by Matthew Allum <mal...@o\-hand.com> 2004. + +This man page was written by Charlie Smotherman for Matthew Allum and the Debian project. + + diff --git a/debian/rules b/debian/rules index 20f149f..af86857 100755 --- a/debian/rules +++ b/debian/rules @@ -137,6 +137,7 @@ install: build install -m 755 debian/local/xvfb-run debian/tmp/usr/bin install debian/local/xvfb-run.1 debian/tmp/usr/share/man/man1 + install debian/local/xserver-xephyr.1 debian/tmp/usr/share/man/man1 # stub to start building deb files, used by binary-indep and binary-arch diff --git a/debian/xserver-xephyr.install b/debian/xserver-xephyr.install index 15adb97..57cb956 100644 --- a/debian/xserver-xephyr.install +++ b/debian/xserver-xephyr.install @@ -1 +1,2 @@ usr/bin/Xephyr +usr/share/man/man1/xserver-xephyr.1 \ No newline at end of file commit a852571f12fc4594e4030d1e0435836c3f238625 Author: Bryce Harrington <[email protected]> Date: Wed Apr 1 20:37:09 2009 -0700 cl entry for bug 328205 diff --git a/debian/changelog b/debian/changelog index 0363528..d13b6c8 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,10 +1,11 @@ xorg-server (2:1.6.0-0ubuntu9) jaunty; urgency=low - [Andrew Pollock] * debian/local/xvfb-run: Fixes race condition with concurrent invocations (LP: #348052) + * debian/local/xvfb-run, xvfb-run.1: Add correct docs about error codes + (LP: #328205) - -- Bryce Harrington <[email protected]> Wed, 01 Apr 2009 20:24:04 -0700 + -- Bryce Harrington <[email protected]> Wed, 01 Apr 2009 20:35:36 -0700 xorg-server (2:1.6.0-0ubuntu8) jaunty; urgency=low commit ed382ad5c9e18747719de9f765aabb222cb7a7a4 Author: Bryce Harrington <[email protected]> Date: Wed Apr 1 20:29:51 2009 -0700 Fix documentation to more clearly explain error exit codes Patch from Mark Painter (LP: #328205) diff --git a/debian/local/xvfb-run b/debian/local/xvfb-run index 59fac52..eb04037 100644 --- a/debian/local/xvfb-run +++ b/debian/local/xvfb-run @@ -4,7 +4,8 @@ # 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. +# value of the command becomes the return value of this script, except in cases +# where this script encounters an error. # # If anyone is using this to build a Debian package, make sure the package # Build-Depends on xvfb, xbase-clients, and xfonts-base. diff --git a/debian/local/xvfb-run.1 b/debian/local/xvfb-run.1 index 137d3a1..b90af14 100644 --- a/debian/local/xvfb-run.1 +++ b/debian/local/xvfb-run.1 @@ -68,7 +68,11 @@ cookie removed, and the authority file deleted (if the user did not specify one to use). .B xvfb\-run then exits with the exit status of -.IR command . +.IR command , +except in error conditions (see +.SM +.B EXIT STATUS +below). .PP .B xvfb\-run requires the @@ -209,8 +213,6 @@ options are specifed; see above. .B xvfb\-run uses its exit status as well as output to standard error to communicate diagnostics. -The exit status of \(oq1\(cq is not used, and should be interpreted as failure -of the specified command. .TP 0 .B xvfb\-run @@ -220,6 +222,10 @@ option is given. In all other situations, this may be interpreted as success of the specified command. .TP +1 +.B Xvfb +did not start correctly. +.TP 2 No command to run was specified. .TP commit 7b97392adadd50096a75fff1354be0c1ffaab3e1 Author: Bryce Harrington <[email protected]> Date: Wed Apr 1 20:28:33 2009 -0700 Concurrent invocations can lead to race condition with server number selection. Patch from Andrew Pollock (LP: #348052) diff --git a/debian/changelog b/debian/changelog index fa50bb0..0363528 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,11 @@ +xorg-server (2:1.6.0-0ubuntu9) jaunty; urgency=low + + [Andrew Pollock] + * debian/local/xvfb-run: Fixes race condition with concurrent invocations + (LP: #348052) + + -- Bryce Harrington <[email protected]> Wed, 01 Apr 2009 20:24:04 -0700 + xorg-server (2:1.6.0-0ubuntu8) jaunty; urgency=low * Add 173_edid_quirk_philips_lcd.patch : diff --git a/debian/local/xvfb-run b/debian/local/xvfb-run index 148da9f..59fac52 100644 --- a/debian/local/xvfb-run +++ b/debian/local/xvfb-run @@ -109,7 +109,7 @@ eval set -- "$ARGS" while :; do case "$1" in - -a|--auto-servernum) SERVERNUM=$(find_free_servernum) ;; + -a|--auto-servernum) SERVERNUM=$(find_free_servernum); AUTONUM="yes" ;; -e|--error-file) ERRORFILE="$2"; shift ;; -f|--auth-file) AUTHFILE="$2"; shift ;; -h|--help) SHOWHELP="yes" ;; @@ -155,13 +155,32 @@ if [ -z "$AUTHFILE" ]; then AUTHFILE=$(tempfile -n "$XVFB_RUN_TMPDIR/Xauthority") fi -# Start Xvfb. -MCOOKIE=$(mcookie) -XAUTHORITY=$AUTHFILE xauth add ":$SERVERNUM" "$XAUTHPROTO" "$MCOOKIE" \ - >>"$ERRORFILE" 2>&1 -XAUTHORITY=$AUTHFILE Xvfb ":$SERVERNUM" $XVFBARGS $LISTENTCP >>"$ERRORFILE" \ - 2>&1 & -XVFBPID=$! +# Start Xvfb +# Loop until we get a match between lock file contents and Xvfb PID +# (this avoids a race condition when another process starts an Xserver). +while true; do + MCOOKIE=$(mcookie) + XAUTHORITY=$AUTHFILE xauth add ":$SERVERNUM" "$XAUTHPROTO" "$MCOOKIE" \ + >>"$ERRORFILE" 2>&1 + 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. + if [ "$XVFBPID" -eq "$(</tmp/.X${SERVERNUM}-lock)" ]; then + break + fi + # The display is in use so try another one (if '-a' was specified). + if [ "$AUTONUM" ]; then + SERVERNUM=$(find_free_servernum) + continue + fi + error "display :$SERVERNUM already in use" + exit 1 +done + +# Xvfb has started without any race conditions. sleep "$STARTWAIT" if ! kill -0 $XVFBPID 2>/dev/null; then echo "Xvfb failed to start" >&2 -- To UNSUBSCRIBE, email to [email protected] with a subject of "unsubscribe". Trouble? Contact [email protected]

