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