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.0.ebuild,v 1.6 2010/04/13 21:56:38 polynomial-c 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}"/${PV}-no-hardcoded-etc.patch
107 "${FILESDIR}"/${PV}-match-only-sane-devices.patch
108 "${FILESDIR}/0001-xfree86-Add-DontLie-server-flag.patch"
116 use minimal || ensure_a_server_is_building
120 ewarn "Usage of hal is strongly discouraged. Please migrate to udev."
121 ewarn "From next major release on the hal support will be fully disabled."
123 if use hal && use udev; then
124 ewarn "Both hal and udev flags are enabled."
125 ewarn "Enabling only udev!"
127 $(use_enable udev config-udev)
132 $(use_enable hal config-hal)
133 $(use_enable udev config-udev)
137 # localstatedir is used for the log location; we need to override the default
139 # sysconfdir is used for the xorg.conf location; same applies
140 # --enable-install-setuid needed because sparcs default off
146 $(use_enable tslib xcalibrate)
147 $(use_enable !minimal xvfb)
148 $(use_enable !minimal xnest)
149 $(use_enable !minimal record)
150 $(use_enable !minimal xfree86-utils)
151 $(use_enable !minimal install-libxf86config)
152 $(use_enable !minimal dri)
153 $(use_enable !minimal dri2)
154 $(use_enable !minimal glx)
156 $(use_enable nptl glx-tls)
157 $(use_with doc doxygen)
159 --sysconfdir=/etc/X11
161 --enable-install-setuid
162 --with-fontrootdir=/usr/share/fonts
163 --with-xkb-output=/var/lib/xkb
165 --with-os-vendor=Gentoo
168 # (#121394) Causes window corruption
171 # Incompatible with GCC 3.x SSP on x86, bug #244352
173 if [[ $(gcc-major-version) -lt 4 ]]; then
174 filter-flags -fstack-protector
178 # Incompatible with GCC 3.x CPP, bug #314615
179 if [[ $(gcc-major-version) -lt 4 ]]; then
180 ewarn "GCC 3.x C preprocessor may cause build failures. Use GCC 4.x"
181 ewarn "or set CPP=cpp-4.3.4 (replace with the actual installed version)"
184 # detect if we should inform user about ebuild breakage
185 if ! has_version "x11-base/xorg-server" ||
186 has_version "<x11-base/xorg-server-$(get_version_component_range 1-2)"; then
192 # this is required only for configure and build time
193 OLD_IMPLEM="$(eselect opengl show)"
194 [[ ${OLD_IMPLEM} != ${OPENGL_DIR} ]] && ( addwrite "${ROOT}"; eselect opengl set ${OPENGL_DIR}; )
199 emake # no die here intentional
200 if [[ $? != 0 ]]; then
201 [[ ${OLD_IMPLEM} != ${OPENGL_DIR} ]] && ( addwrite "${ROOT}"; eselect opengl set ${OLD_IMPLEM}; )
202 die "Compilation failed"
204 [[ ${OLD_IMPLEM} != ${OPENGL_DIR} ]] && ( addwrite "${ROOT}"; eselect opengl set ${OLD_IMPLEM}; )
210 dynamic_libgl_install
214 if ! use minimal && use xorg; then
215 # Install xorg.conf.example (see bugs #151421 and #151670)
217 doins hw/xfree86/xorg.conf.example \
218 || die "couldn't install xorg.conf.example"
221 # install the xdm.init
222 cp "${FILESDIR}"/xdm.initd "${T}"
223 if use hal && ! use udev; then
225 -e "s/@HALD_DEPEND@/need hald/g" \
230 -e "/@HALD_DEPEND@/ d" \
234 newinitd "${T}"/xdm.initd xdm || die "initd file install failed"
235 newinitd "${FILESDIR}"/xdm-setup.initd-1 xdm-setup || die
236 newconfd "${FILESDIR}"/xdm.confd-3 xdm || die
240 if [[ ${INFO} = yes ]]; then
241 einfo "You should consider reading upgrade guide for this release:"
242 einfo " http://www.gentoo.org/proj/en/desktop/x/x11/xorg-server-$(get_version_component_range 1-2)-upgrade-guide.xml"
244 ewarn "You must rebuild all drivers if upgrading from <xorg-server-$(get_version_component_range 1-2)"
245 ewarn "because the ABI changed. If you cannot start X because"
246 ewarn "of module version mismatch errors, this is your problem."
249 ewarn "You can generate a list of all installed packages in the x11-drivers"
250 ewarn "category using this command:"
251 ewarn " emerge portage-utils; qlist -I -C x11-drivers/"
256 # Get rid of module dir to ensure opengl-update works properly
257 if ! has_version x11-base/xorg-server; then
258 if [[ -e ${ROOT}/usr/$(get_libdir)/xorg/modules ]]; then
259 rm -rf "${ROOT}"/usr/$(get_libdir)/xorg/modules
264 dynamic_libgl_install() {
265 # next section is to setup the dynamic libGL stuff
266 ebegin "Moving GL files for dynamic switching"
267 dodir /usr/$(get_libdir)/opengl/${OPENGL_DIR}/extensions
269 for x in "${D}"/usr/$(get_libdir)/xorg/modules/extensions/lib{glx,dri,dri2}*; do
270 if [ -f ${x} -o -L ${x} ]; then
271 mv -f ${x} "${D}"/usr/$(get_libdir)/opengl/${OPENGL_DIR}/extensions
277 server_based_install() {
279 rm "${D}"/usr/share/man/man1/Xserver.1x \
280 "${D}"/usr/$(get_libdir)/xserver/SecurityPolicy \
281 "${D}"/usr/$(get_libdir)/pkgconfig/xorg-server.pc \
282 "${D}"/usr/share/man/man1/Xserver.1x
286 ensure_a_server_is_building() {
287 for server in ${IUSE_SERVERS}; do
288 use ${server} && return;
290 eerror "You need to specify at least one server to build."
291 eerror "Valid servers are: ${IUSE_SERVERS}."
292 die "No servers were specified to build."