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-r1.ebuild,v 1.1 2010/05/19 07:47:45 scarabeus 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 )"
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 into docs
210 dodoc hw/xfree86/xorg.conf.example \
211 || die "couldn't install xorg.conf.example"
214 # install the xdm.init
215 cp "${FILESDIR}"/xdm.initd "${T}"
216 if use hal && ! use udev; then
218 -e "s/@HALD_DEPEND@/need hald/g" \
223 -e "/@HALD_DEPEND@/ d" \
227 newinitd "${T}"/xdm.initd xdm || die "initd file install failed"
228 newinitd "${FILESDIR}"/xdm-setup.initd-1 xdm-setup || die
229 newconfd "${FILESDIR}"/xdm.confd-3 xdm || die
233 if [[ ${INFO} = yes ]]; then
234 einfo "You should consider reading upgrade guide for this release:"
235 einfo " http://www.gentoo.org/proj/en/desktop/x/x11/xorg-server-$(get_version_component_range 1-2)-upgrade-guide.xml"
237 ewarn "You must rebuild all drivers if upgrading from <xorg-server-$(get_version_component_range 1-2)"
238 ewarn "because the ABI changed. If you cannot start X because"
239 ewarn "of module version mismatch errors, this is your problem."
242 ewarn "You can generate a list of all installed packages in the x11-drivers"
243 ewarn "category using this command:"
244 ewarn " emerge portage-utils; qlist -I -C x11-drivers/"
249 # Get rid of module dir to ensure opengl-update works properly
250 if ! has_version x11-base/xorg-server; then
251 if [[ -e ${ROOT}/usr/$(get_libdir)/xorg/modules ]]; then
252 rm -rf "${ROOT}"/usr/$(get_libdir)/xorg/modules
257 dynamic_libgl_install() {
258 # next section is to setup the dynamic libGL stuff
259 ebegin "Moving GL files for dynamic switching"
260 dodir /usr/$(get_libdir)/opengl/${OPENGL_DIR}/extensions
262 for x in "${D}"/usr/$(get_libdir)/xorg/modules/extensions/lib{glx,dri,dri2}*; do
263 if [ -f ${x} -o -L ${x} ]; then
264 mv -f ${x} "${D}"/usr/$(get_libdir)/opengl/${OPENGL_DIR}/extensions
270 server_based_install() {
272 rm "${D}"/usr/share/man/man1/Xserver.1x \
273 "${D}"/usr/$(get_libdir)/xserver/SecurityPolicy \
274 "${D}"/usr/$(get_libdir)/pkgconfig/xorg-server.pc \
275 "${D}"/usr/share/man/man1/Xserver.1x
279 ensure_a_server_is_building() {
280 for server in ${IUSE_SERVERS}; do
281 use ${server} && return;
283 eerror "You need to specify at least one server to build."
284 eerror "Valid servers are: ${IUSE_SERVERS}."
285 die "No servers were specified to build."