1 # Copyright 1999-2010 Gentoo Foundation
2 # Distributed under the terms of the GNU General Public License v2
3 # $Header: /var/cvsroot/gentoo-x86/x11-base/xorg-server/xorg-server-1.8.1.ebuild,v 1.1 2010/05/15 20:59:56 remi Exp $
7 inherit xorg-2 multilib versionator
8 EGIT_REPO_URI="git://anongit.freedesktop.org/git/xorg/xserver"
12 DESCRIPTION="X.Org X servers"
13 KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~sh ~sparc ~x86 ~x86-fbsd"
15 IUSE_SERVERS="dmx kdrive xorg"
16 IUSE="${IUSE_SERVERS} doc hal ipv6 minimal nptl tslib +udev"
17 RDEPEND=">=app-admin/eselect-opengl-1.0.8
20 >=x11-apps/iceauth-1.0.2
22 >=x11-apps/xauth-1.0.3
24 >=x11-libs/libpciaccess-0.10.3
25 >=x11-libs/libXau-1.0.4
26 >=x11-libs/libXdmcp-1.0.2
27 >=x11-libs/libXfont-1.3.3
28 >=x11-libs/libxkbfile-1.0.4
29 >=x11-libs/pixman-0.15.20
30 >=x11-libs/xtrans-1.2.2
31 >=x11-misc/xbitmaps-1.0.1
32 >=x11-misc/xkeyboard-config-1.4
35 >=x11-libs/libdmx-1.0.99.1
36 >=x11-libs/libX11-1.1.5
37 >=x11-libs/libXaw-1.0.4
38 >=x11-libs/libXext-1.0.5
39 >=x11-libs/libXfixes-4.0.3
40 >=x11-libs/libXi-1.2.99.1
41 >=x11-libs/libXmu-1.0.3
42 >=x11-libs/libXres-1.0.3
43 >=x11-libs/libXtst-1.0.3
45 !udev? ( hal? ( sys-apps/hal ) )
47 >=x11-libs/libXext-1.0.5
50 >=x11-libs/libX11-1.1.5
51 >=x11-libs/libXext-1.0.5
52 >=media-libs/mesa-7.8_rc[nptl=]
54 tslib? ( >=x11-libs/tslib-1.0 x11-proto/xcalibrateproto )
55 udev? ( sys-fs/udev[extras] )"
59 !<x11-apps/xinit-1.2.1-r1
61 >=x11-proto/bigreqsproto-1.1.0
62 >=x11-proto/compositeproto-0.4
63 >=x11-proto/damageproto-1.1
64 >=x11-proto/fixesproto-4.1
65 >=x11-proto/fontsproto-2.0.2
66 >=x11-proto/glproto-1.4.11
67 >=x11-proto/inputproto-1.9.99.902
68 >=x11-proto/kbproto-1.0.3
69 >=x11-proto/randrproto-1.2.99.3
70 >=x11-proto/recordproto-1.13.99.1
71 >=x11-proto/renderproto-0.11
72 >=x11-proto/resourceproto-1.0.2
73 >=x11-proto/scrnsaverproto-1.1
74 >=x11-proto/trapproto-3.4.3
75 >=x11-proto/videoproto-2.2.2
76 >=x11-proto/xcmiscproto-1.2.0
77 >=x11-proto/xextproto-7.0.99.3
78 >=x11-proto/xf86dgaproto-2.0.99.1
79 >=x11-proto/xf86rushproto-1.1.2
80 >=x11-proto/xf86vidmodeproto-2.2.99.1
81 >=x11-proto/xineramaproto-1.1.3
82 >=x11-proto/xproto-7.0.13
83 dmx? ( >=x11-proto/dmxproto-2.2.99.1 )
84 doc? ( app-doc/doxygen )
86 >=x11-proto/xf86driproto-2.1.0
87 >=x11-proto/dri2proto-2.1
88 >=x11-libs/libdrm-2.3.0
92 >=x11-apps/xinit-1.2.1-r1
93 xorg? ( >=x11-base/xorg-drivers-$(get_version_component_range 1-2) )"
98 # These have been sent upstream
100 # "${WORKDIR}/patches/"
104 "${UPSTREAMED_PATCHES[@]}"
105 "${FILESDIR}"/${PN}-disable-acpi.patch
106 "${FILESDIR}/0001-xfree86-Add-DontLie-server-flag.patch"
114 use minimal || ensure_a_server_is_building
118 ewarn "Usage of hal is strongly discouraged. Please migrate to udev."
119 ewarn "From next major release on the hal support will be fully disabled."
121 if use hal && use udev; then
122 ewarn "Both hal and udev flags are enabled."
123 ewarn "Enabling only udev!"
125 $(use_enable udev config-udev)
130 $(use_enable hal config-hal)
131 $(use_enable udev config-udev)
135 # localstatedir is used for the log location; we need to override the default
137 # sysconfdir is used for the xorg.conf location; same applies
138 # --enable-install-setuid needed because sparcs default off
144 $(use_enable tslib xcalibrate)
145 $(use_enable !minimal xvfb)
146 $(use_enable !minimal xnest)
147 $(use_enable !minimal record)
148 $(use_enable !minimal xfree86-utils)
149 $(use_enable !minimal install-libxf86config)
150 $(use_enable !minimal dri)
151 $(use_enable !minimal dri2)
152 $(use_enable !minimal glx)
154 $(use_enable nptl glx-tls)
155 $(use_with doc doxygen)
157 --sysconfdir=/etc/X11
159 --enable-install-setuid
160 --with-fontrootdir=/usr/share/fonts
161 --with-xkb-output=/var/lib/xkb
163 --with-os-vendor=Gentoo
166 # Due to the limitations of CONFIGURE_OPTIONS, we have to export this.
167 mkdir -p "${T}/mesa-symlinks/GL"
168 pushd "${T}/mesa-symlinks/GL" &> /dev/null
169 for i in gl glx glxmd glxproto glxtokens; do
170 ln -s "${EROOT}usr/$(get_libdir)/opengl/xorg-x11/include/$i.h" $i.h
172 for i in glext glxext; do
173 ln -s "${EROOT}usr/$(get_libdir)/opengl/global/include/$i.h" $i.h
176 export CPPFLAGS="${CPPFLAGS:+${CPPFLAGS} }-I${T}/mesa-symlinks"
178 # (#121394) Causes window corruption
181 # Incompatible with GCC 3.x SSP on x86, bug #244352
183 if [[ $(gcc-major-version) -lt 4 ]]; then
184 filter-flags -fstack-protector
188 # Incompatible with GCC 3.x CPP, bug #314615
189 if [[ $(gcc-major-version) -lt 4 ]]; then
190 ewarn "GCC 3.x C preprocessor may cause build failures. Use GCC 4.x"
191 ewarn "or set CPP=cpp-4.3.4 (replace with the actual installed version)"
194 # detect if we should inform user about ebuild breakage
195 if ! has_version "x11-base/xorg-server" ||
196 has_version "<x11-base/xorg-server-$(get_version_component_range 1-2)"; then
204 dynamic_libgl_install
208 if ! use minimal && use xorg; then
209 # Install xorg.conf.example (see bugs #151421 and #151670)
211 doins hw/xfree86/xorg.conf.example \
212 || die "couldn't install xorg.conf.example"
215 # install the xdm.init
216 cp "${FILESDIR}"/xdm.initd "${T}"
217 if use hal && ! use udev; then
219 -e "s/@HALD_DEPEND@/need hald/g" \
224 -e "/@HALD_DEPEND@/ d" \
228 newinitd "${T}"/xdm.initd xdm || die "initd file install failed"
229 newinitd "${FILESDIR}"/xdm-setup.initd-1 xdm-setup || die
230 newconfd "${FILESDIR}"/xdm.confd-3 xdm || die
234 if [[ ${INFO} = yes ]]; then
235 einfo "You should consider reading upgrade guide for this release:"
236 einfo " http://www.gentoo.org/proj/en/desktop/x/x11/xorg-server-$(get_version_component_range 1-2)-upgrade-guide.xml"
238 ewarn "You must rebuild all drivers if upgrading from <xorg-server-$(get_version_component_range 1-2)"
239 ewarn "because the ABI changed. If you cannot start X because"
240 ewarn "of module version mismatch errors, this is your problem."
243 ewarn "You can generate a list of all installed packages in the x11-drivers"
244 ewarn "category using this command:"
245 ewarn " emerge portage-utils; qlist -I -C x11-drivers/"
250 # Get rid of module dir to ensure opengl-update works properly
251 if ! has_version x11-base/xorg-server; then
252 if [[ -e ${ROOT}/usr/$(get_libdir)/xorg/modules ]]; then
253 rm -rf "${ROOT}"/usr/$(get_libdir)/xorg/modules
258 dynamic_libgl_install() {
259 # next section is to setup the dynamic libGL stuff
260 ebegin "Moving GL files for dynamic switching"
261 dodir /usr/$(get_libdir)/opengl/${OPENGL_DIR}/extensions
263 for x in "${D}"/usr/$(get_libdir)/xorg/modules/extensions/lib{glx,dri,dri2}*; do
264 if [ -f ${x} -o -L ${x} ]; then
265 mv -f ${x} "${D}"/usr/$(get_libdir)/opengl/${OPENGL_DIR}/extensions
271 server_based_install() {
273 rm "${D}"/usr/share/man/man1/Xserver.1x \
274 "${D}"/usr/$(get_libdir)/xserver/SecurityPolicy \
275 "${D}"/usr/$(get_libdir)/pkgconfig/xorg-server.pc \
276 "${D}"/usr/share/man/man1/Xserver.1x
280 ensure_a_server_is_building() {
281 for server in ${IUSE_SERVERS}; do
282 use ${server} && return;
284 eerror "You need to specify at least one server to build."
285 eerror "Valid servers are: ${IUSE_SERVERS}."
286 die "No servers were specified to build."