Running Xvfb during a package build -- good idea?

Mike Bonnet mikeb at redhat.com
Tue Sep 30 17:47:28 UTC 2008


On Tue, 2008-09-30 at 18:13 +0100, Richard W.M. Jones wrote:
> We have a package (mingw32-openssl) which has some tests that run
> under Wine.  Strictly speaking, running the tests isn't necessary, but
> because it's such an important package I feel that we should run the
> tests.
> 
> Anyhow, Wine needs an X server, although it doesn't really use it for
> anything.  To provide one, I'm using Xvfb like this:
> 
>   BuildRequires:  wine
>   BuildRequires:  xorg-x11-server-Xvfb
> 
>   #...
> 
>   display=:21
>   Xvfb $display & xpid=$!
>   trap "kill -TERM $xpid ||:" EXIT
>   sleep 3
>   DISPLAY=$display
>   export DISPLAY
>   make -C test tests
> 
> This works, but there are two problems.  Firstly there isn't a good
> way to choose a free display number, so I'm just picking one at random
> here.  This assumes that port 6021 is free, also disallows any builds
> that happen in parallel.  Secondly, will Koji let me do such a thing
> at all?  Is there another / a better way?

Ignoring the question of whether this is a good idea or not, why not do
something like:

display=:$(($RANDOM % 100))

Not fool-proof, but it should result in fewer port conflicts.

Also, you may want to call "kill -KILL" from your trap instead, to be
more sure you're actually cleaning up the Xvfb.





More information about the fedora-devel-list mailing list