/[gentoo-x86]/eclass/virtualx.eclass
Gentoo

Diff of /eclass/virtualx.eclass

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

Revision 1.21 Revision 1.29
1# Copyright 1999-2004 Gentoo Foundation 1# Copyright 1999-2004 Gentoo Foundation
2# Distributed under the terms of the GNU General Public License v2 2# Distributed under the terms of the GNU General Public License v2
3# $Header: /var/cvsroot/gentoo-x86/eclass/virtualx.eclass,v 1.21 2005/07/06 19:58:37 agriffis Exp $ 3# $Header: /var/cvsroot/gentoo-x86/eclass/virtualx.eclass,v 1.29 2009/08/10 15:44:37 remi Exp $
4# 4#
5# Author: Martin Schlemmer <azarah@gentoo.org> 5# Author: Martin Schlemmer <azarah@gentoo.org>
6# 6#
7# This eclass can be used for packages that needs a working X environment to build 7# This eclass can be used for packages that needs a working X environment to build
8 8
9ECLASS=virtualx 9DEPEND="X? ( x11-base/xorg-server x11-apps/xhost )"
10DEPEND="X? ( virtual/x11 )"
11IUSE="X" 10IUSE="X"
12 11
13DESCRIPTION="Based on the $ECLASS eclass" 12DESCRIPTION="Based on the $ECLASS eclass"
14 13
15# 14#
33 ( [[ -z ${DISPLAY} ]] || ! (${XHOST} &>/dev/null) ) ; then 32 ( [[ -z ${DISPLAY} ]] || ! (${XHOST} &>/dev/null) ) ; then
34 export XAUTHORITY= 33 export XAUTHORITY=
35 # The following is derived from Mandrake's hack to allow 34 # The following is derived from Mandrake's hack to allow
36 # compiling without the X display 35 # compiling without the X display
37 36
38 einfo "Scanning for a open DISPLAY to start Xvfb ..." 37 einfo "Scanning for an open DISPLAY to start Xvfb ..."
39 38
40 # We really do not want SANDBOX enabled here 39 # We really do not want SANDBOX enabled here
41 export SANDBOX_DISABLED="1" 40 export SANDBOX_DISABLED="1"
42 41
43 local i=0 42 local i=0
44 XDISPLAY=$(i=0; while [[ -f /tmp/.X${i}-lock ]] ; do i=$((${i}+1));done; echo ${i}) 43 XDISPLAY=$(i=0; while [[ -f /tmp/.X${i}-lock ]] ; do i=$((${i}+1));done; echo ${i})
45 44
46 # If we are in a chrooted environment, and there is already a 45 # If we are in a chrooted environment, and there is already a
47 # X server started outside of the chroot, Xvfb will fail to start 46 # X server started outside of the chroot, Xvfb will fail to start
48 # on the same display (most cases this is :0 ), so make sure 47 # on the same display (most cases this is :0 ), so make sure
49 # Xvfb is started, else bump the display number 48 # Xvfb is started, else bump the display number
50 # 49 #
54 # support has been dropped in Xvfb in the xorg-x11 pre-releases. 53 # support has been dropped in Xvfb in the xorg-x11 pre-releases.
55 # For now only depths up to 24-bit are supported. 54 # For now only depths up to 24-bit are supported.
56 # 55 #
57 # Sven Wegener <swegener@gentoo.org> - 22 Aug 2004 56 # Sven Wegener <swegener@gentoo.org> - 22 Aug 2004
58 # 57 #
58 # Use "-fp built-ins" because it's only part of the default font path
59 # for Xorg but not the other DDXs (Xvfb, Kdrive, etc). Temporarily fixes
60 # bug 278487 until xorg-server is properly patched
61 #
62 # RĂ©mi Cardona <remi@gentoo.org> (10 Aug 2009)
59 ${XVFB} :${XDISPLAY} -screen 0 800x600x24 &>/dev/null & 63 ${XVFB} :${XDISPLAY} -fp built-ins -screen 0 800x600x24 &>/dev/null &
60 sleep 2 64 sleep 2
61 65
62 local start=${XDISPLAY} 66 local start=${XDISPLAY}
63 while [[ ! -f /tmp/.X${XDISPLAY}-lock ]] ; do 67 while [[ ! -f /tmp/.X${XDISPLAY}-lock ]] ; do
64 # Stop trying after 15 tries 68 # Stop trying after 15 tries
65 if [[ $((${XDISPLAY} - ${start})) -gt 15 ]] ; then 69 if [[ $((${XDISPLAY} - ${start})) -gt 15 ]] ; then
66 70
67 eerror "" 71 eerror ""
68 eerror "Unable to start Xvfb." 72 eerror "Unable to start Xvfb."
69 eerror "" 73 eerror ""
70 eerror "'/usr/X11R6/bin/Xvfb :${XDISPLAY} -screen 0 800x600x24' returns:" 74 eerror "'/usr/bin/Xvfb :${XDISPLAY} -fp built-ins -screen 0 800x600x24' returns:"
71 eerror "" 75 eerror ""
72 ${XVFB} :${XDISPLAY} -screen 0 800x600x24 76 ${XVFB} :${XDISPLAY} -fp built-ins -screen 0 800x600x24
73 eerror "" 77 eerror ""
74 eerror "If possible, correct the above error and try your emerge again." 78 eerror "If possible, correct the above error and try your emerge again."
75 eerror "" 79 eerror ""
76 die 80 die
77 fi 81 fi
78 82
79 XDISPLAY=$((${XDISPLAY}+1)) 83 XDISPLAY=$((${XDISPLAY}+1))
80 ${XVFB} :${XDISPLAY} -screen 0 800x600x24 &>/dev/null & 84 ${XVFB} :${XDISPLAY} -fp built-ins -screen 0 800x600x24 &>/dev/null &
81 sleep 2 85 sleep 2
82 done 86 done
83 87
84 # Now enable SANDBOX again if needed. 88 # Now enable SANDBOX again if needed.
85 export SANDBOX_DISABLED="${OLD_SANDBOX_DISABLED}" 89 export SANDBOX_DISABLED="${OLD_SANDBOX_DISABLED}"
86 90
87 einfo "Starting Xvfb on \$DISPLAY=${XDISPLAY} ..." 91 einfo "Starting Xvfb on \$DISPLAY=${XDISPLAY} ..."
88 92
89 export DISPLAY=:${XDISPLAY} 93 export DISPLAY=:${XDISPLAY}
90 #Do not break on error, but setup $retval, as we need 94 #Do not break on error, but setup $retval, as we need
91 #to kill Xvfb 95 #to kill Xvfb
92 ${maketype} $* 96 ${maketype} $*
93 retval=$? 97 retval=$?

Legend:
Removed from v.1.21  
changed lines
  Added in v.1.29

  ViewVC Help
Powered by ViewVC 1.1.20