]> git.draconx.ca Git - gentoo-draconx.git/blob - x11-base/xorg-server/xorg-server-1.8.1.ebuild
xorg-server: Version bump to 1.8.1 + DontLie.
[gentoo-draconx.git] / x11-base / xorg-server / xorg-server-1.8.1.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.ebuild,v 1.1 2010/05/15 20:59:56 remi 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[extras] )"
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 (see bugs #151421 and #151670)
210                 insinto /etc/X11
211                 doins hw/xfree86/xorg.conf.example \
212                         || die "couldn't install xorg.conf.example"
213         fi
214
215         # install the xdm.init
216         cp "${FILESDIR}"/xdm.initd "${T}"
217         if use hal && ! use udev; then
218                 sed -i \
219                         -e "s/@HALD_DEPEND@/need hald/g" \
220                         "${T}"/xdm.initd \
221                         || die "sed failed"
222         else
223                 sed -i \
224                         -e "/@HALD_DEPEND@/ d" \
225                         "${T}"/xdm.initd \
226                         || die "sed failed"
227         fi
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
231 }
232
233 pkg_postinst() {
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"
237                 echo
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."
241
242                 echo
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/"
246         fi
247 }
248
249 pkg_postrm() {
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
254                 fi
255         fi
256 }
257
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
262                 local x=""
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
266                         fi
267                 done
268         eend 0
269 }
270
271 server_based_install() {
272         if ! use xorg; then
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
277         fi
278 }
279
280 ensure_a_server_is_building() {
281         for server in ${IUSE_SERVERS}; do
282                 use ${server} && return;
283         done
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."
287 }