]> git.draconx.ca Git - gentoo-draconx.git/blob - x11-base/xorg-server/xorg-server-1.8.1-r1.ebuild
xorg-server: Sync with upstream.
[gentoo-draconx.git] / x11-base / xorg-server / xorg-server-1.8.1-r1.ebuild
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 $
4
5 EAPI=3
6 XORG_EAUTORECONF="yes"
7 inherit xorg-2 multilib versionator
8 EGIT_REPO_URI="git://anongit.freedesktop.org/git/xorg/xserver"
9
10 OPENGL_DIR="xorg-x11"
11
12 DESCRIPTION="X.Org X servers"
13 KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~sh ~sparc ~x86 ~x86-fbsd"
14
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
18         dev-libs/openssl
19         media-libs/freetype
20         >=x11-apps/iceauth-1.0.2
21         >=x11-apps/rgb-1.0.3
22         >=x11-apps/xauth-1.0.3
23         x11-apps/xkbcomp
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
33         dmx? (
34                 x11-libs/libXt
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
44         )
45         !udev? ( hal? ( sys-apps/hal ) )
46         kdrive? (
47                 >=x11-libs/libXext-1.0.5
48         )
49         !minimal? (
50                 >=x11-libs/libX11-1.1.5
51                 >=x11-libs/libXext-1.0.5
52                 >=media-libs/mesa-7.8_rc[nptl=]
53         )
54         tslib? ( >=x11-libs/tslib-1.0 x11-proto/xcalibrateproto )
55         udev? ( sys-fs/udev )"
56
57 DEPEND="${RDEPEND}
58         !!net-dialup/dtrace
59         !<x11-apps/xinit-1.2.1-r1
60         sys-devel/flex
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 )
85         !minimal? (
86                 >=x11-proto/xf86driproto-2.1.0
87                 >=x11-proto/dri2proto-2.1
88                 >=x11-libs/libdrm-2.3.0
89         )"
90
91 PDEPEND="
92         >=x11-apps/xinit-1.2.1-r1
93         xorg? ( >=x11-base/xorg-drivers-$(get_version_component_range 1-2) )"
94
95 EPATCH_FORCE="yes"
96 EPATCH_SUFFIX="patch"
97
98 # These have been sent upstream
99 #UPSTREAMED_PATCHES=(
100 #       "${WORKDIR}/patches/"
101 #       )
102
103 PATCHES=(
104         "${UPSTREAMED_PATCHES[@]}"
105         "${FILESDIR}"/${PN}-disable-acpi.patch
106         "${FILESDIR}/0001-xfree86-Add-DontLie-server-flag.patch"
107         )
108
109 pkg_setup() {
110         local myconf
111
112         xorg-2_pkg_setup
113
114         use minimal || ensure_a_server_is_building
115
116         # HAL shebang
117         if use hal; then
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."
120         fi
121         if use hal && use udev; then
122                 ewarn "Both hal and udev flags are enabled."
123                 ewarn "Enabling only udev!"
124                 myconf="
125                         $(use_enable udev config-udev)
126                         --disable-config-hal
127                 "
128         else
129                 myconf="
130                         $(use_enable hal config-hal)
131                         $(use_enable udev config-udev)
132                 "
133         fi
134
135         # localstatedir is used for the log location; we need to override the default
136         # from ebuild.sh
137         # sysconfdir is used for the xorg.conf location; same applies
138         # --enable-install-setuid needed because sparcs default off
139         CONFIGURE_OPTIONS="
140                 $(use_enable ipv6)
141                 $(use_enable dmx)
142                 $(use_enable kdrive)
143                 $(use_enable tslib)
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)
153                 $(use_enable xorg)
154                 $(use_enable nptl glx-tls)
155                 $(use_with doc doxygen)
156                 ${myconf}
157                 --sysconfdir=/etc/X11
158                 --localstatedir=/var
159                 --enable-install-setuid
160                 --with-fontrootdir=/usr/share/fonts
161                 --with-xkb-output=/var/lib/xkb
162                 --without-dtrace
163                 --with-os-vendor=Gentoo
164                 ${conf_opts}"
165
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
171         done
172         for i in  glext glxext; do
173                 ln -s "${EROOT}usr/$(get_libdir)/opengl/global/include/$i.h" $i.h
174         done
175         popd &> /dev/null
176         export CPPFLAGS="${CPPFLAGS:+${CPPFLAGS} }-I${T}/mesa-symlinks"
177
178         # (#121394) Causes window corruption
179         filter-flags -fweb
180
181         # Incompatible with GCC 3.x SSP on x86, bug #244352
182         if use x86 ; then
183                 if [[ $(gcc-major-version) -lt 4 ]]; then
184                         filter-flags -fstack-protector
185                 fi
186         fi
187
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)"
192         fi
193
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
197                 INFO="yes"
198         fi
199 }
200
201 src_install() {
202         xorg-2_src_install
203
204         dynamic_libgl_install
205
206         server_based_install
207
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"
212         fi
213
214         # install the xdm.init
215         cp "${FILESDIR}"/xdm.initd "${T}"
216         if use hal && ! use udev; then
217                 sed -i \
218                         -e "s/@HALD_DEPEND@/need hald/g" \
219                         "${T}"/xdm.initd \
220                         || die "sed failed"
221         else
222                 sed -i \
223                         -e "/@HALD_DEPEND@/ d" \
224                         "${T}"/xdm.initd \
225                         || die "sed failed"
226         fi
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
230 }
231
232 pkg_postinst() {
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"
236                 echo
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."
240
241                 echo
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/"
245         fi
246 }
247
248 pkg_postrm() {
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
253                 fi
254         fi
255 }
256
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
261                 local x=""
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
265                         fi
266                 done
267         eend 0
268 }
269
270 server_based_install() {
271         if ! use xorg; then
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
276         fi
277 }
278
279 ensure_a_server_is_building() {
280         for server in ${IUSE_SERVERS}; do
281                 use ${server} && return;
282         done
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."
286 }