]> git.draconx.ca Git - gentoo-draconx.git/blob - x11-base/xorg-server/xorg-server-1.8.0.ebuild
xorg-server: Version bump to 1.8.0 + DontLie.
[gentoo-draconx.git] / x11-base / xorg-server / xorg-server-1.8.0.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.0.ebuild,v 1.6 2010/04/13 21:56:38 polynomial-c 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}"/${PV}-no-hardcoded-etc.patch
107         "${FILESDIR}"/${PV}-match-only-sane-devices.patch
108         "${FILESDIR}/0001-xfree86-Add-DontLie-server-flag.patch"
109         )
110
111 pkg_setup() {
112         local myconf
113
114         xorg-2_pkg_setup
115
116         use minimal || ensure_a_server_is_building
117
118         # HAL shebang
119         if use hal; then
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."
122         fi
123         if use hal && use udev; then
124                 ewarn "Both hal and udev flags are enabled."
125                 ewarn "Enabling only udev!"
126                 myconf="
127                         $(use_enable udev config-udev)
128                         --disable-config-hal
129                 "
130         else
131                 myconf="
132                         $(use_enable hal config-hal)
133                         $(use_enable udev config-udev)
134                 "
135         fi
136
137         # localstatedir is used for the log location; we need to override the default
138         # from ebuild.sh
139         # sysconfdir is used for the xorg.conf location; same applies
140         # --enable-install-setuid needed because sparcs default off
141         CONFIGURE_OPTIONS="
142                 $(use_enable ipv6)
143                 $(use_enable dmx)
144                 $(use_enable kdrive)
145                 $(use_enable tslib)
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)
155                 $(use_enable xorg)
156                 $(use_enable nptl glx-tls)
157                 $(use_with doc doxygen)
158                 ${myconf}
159                 --sysconfdir=/etc/X11
160                 --localstatedir=/var
161                 --enable-install-setuid
162                 --with-fontrootdir=/usr/share/fonts
163                 --with-xkb-output=/var/lib/xkb
164                 --without-dtrace
165                 --with-os-vendor=Gentoo
166                 ${conf_opts}"
167
168         # (#121394) Causes window corruption
169         filter-flags -fweb
170
171         # Incompatible with GCC 3.x SSP on x86, bug #244352
172         if use x86 ; then
173                 if [[ $(gcc-major-version) -lt 4 ]]; then
174                         filter-flags -fstack-protector
175                 fi
176         fi
177
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)"
182         fi
183
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
187                 INFO="yes"
188         fi
189 }
190
191 src_configure() {
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}; )
195         xorg-2_src_configure
196 }
197
198 src_compile() {
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"
203         fi
204         [[ ${OLD_IMPLEM} != ${OPENGL_DIR} ]] && ( addwrite "${ROOT}"; eselect opengl set ${OLD_IMPLEM}; )
205 }
206
207 src_install() {
208         xorg-2_src_install
209
210         dynamic_libgl_install
211
212         server_based_install
213
214         if ! use minimal &&     use xorg; then
215                 # Install xorg.conf.example (see bugs #151421 and #151670)
216                 insinto /etc/X11
217                 doins hw/xfree86/xorg.conf.example \
218                         || die "couldn't install xorg.conf.example"
219         fi
220
221         # install the xdm.init
222         cp "${FILESDIR}"/xdm.initd "${T}"
223         if use hal && ! use udev; then
224                 sed -i \
225                         -e "s/@HALD_DEPEND@/need hald/g" \
226                         "${T}"/xdm.initd \
227                         || die "sed failed"
228         else
229                 sed -i \
230                         -e "/@HALD_DEPEND@/ d" \
231                         "${T}"/xdm.initd \
232                         || die "sed failed"
233         fi
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
237 }
238
239 pkg_postinst() {
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"
243                 echo
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."
247
248                 echo
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/"
252         fi
253 }
254
255 pkg_postrm() {
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
260                 fi
261         fi
262 }
263
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
268                 local x=""
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
272                         fi
273                 done
274         eend 0
275 }
276
277 server_based_install() {
278         if ! use xorg; then
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
283         fi
284 }
285
286 ensure_a_server_is_building() {
287         for server in ${IUSE_SERVERS}; do
288                 use ${server} && return;
289         done
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."
293 }