/[gentoo-x86]/x11-base/xorg-server/xorg-server-1.5.2.ebuild
Gentoo

Contents of /x11-base/xorg-server/xorg-server-1.5.2.ebuild

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.7 - (show annotations) (download)
Sun Oct 26 09:25:00 2008 UTC (5 years, 10 months ago) by remi
Branch: MAIN
Changes since 1.6: +2 -1 lines
x11-base/xorg-server: add patch to fix KDrive's Xvesa build (fixes bug #235789)

1 # Copyright 1999-2008 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.5.2.ebuild,v 1.6 2008/10/22 15:42:26 remi Exp $
4
5 # Must be before x-modular eclass is inherited
6 SNAPSHOT="yes"
7
8 inherit x-modular multilib
9
10 OPENGL_DIR="xorg-x11"
11
12 SRC_URI="${SRC_URI}
13 http://xorg.freedesktop.org/releases/individual/xserver/${P}.tar.bz2"
14 DESCRIPTION="X.Org X servers"
15 KEYWORDS="~amd64 ~ia64 ~ppc ~sparc ~x86 ~x86-fbsd"
16 IUSE_INPUT_DEVICES="
17 input_devices_acecad
18 input_devices_aiptek
19 input_devices_calcomp
20 input_devices_citron
21 input_devices_digitaledge
22 input_devices_dmc
23 input_devices_dynapro
24 input_devices_elo2300
25 input_devices_elographics
26 input_devices_evdev
27 input_devices_fpit
28 input_devices_hyperpen
29 input_devices_jamstudio
30 input_devices_joystick
31 input_devices_keyboard
32 input_devices_magellan
33 input_devices_microtouch
34 input_devices_mouse
35 input_devices_mutouch
36 input_devices_palmax
37 input_devices_penmount
38 input_devices_spaceorb
39 input_devices_summa
40 input_devices_tek4957
41 input_devices_ur98
42 input_devices_vmmouse
43 input_devices_void
44
45 input_devices_synaptics
46 input_devices_wacom"
47 IUSE_VIDEO_CARDS="
48 video_cards_apm
49 video_cards_ark
50 video_cards_ast
51 video_cards_chips
52 video_cards_cirrus
53 video_cards_cyrix
54 video_cards_dummy
55 video_cards_epson
56 video_cards_fbdev
57 video_cards_geode
58 video_cards_glint
59 video_cards_i128
60 video_cards_i740
61 video_cards_intel
62 video_cards_impact
63 video_cards_imstt
64 video_cards_mach64
65 video_cards_mga
66 video_cards_neomagic
67 video_cards_newport
68 video_cards_nsc
69 video_cards_nv
70 video_cards_r128
71 video_cards_radeon
72 video_cards_radeonhd
73 video_cards_rendition
74 video_cards_s3
75 video_cards_s3virge
76 video_cards_savage
77 video_cards_siliconmotion
78 video_cards_sis
79 video_cards_sisusb
80 video_cards_sunbw2
81 video_cards_suncg14
82 video_cards_suncg3
83 video_cards_suncg6
84 video_cards_sunffb
85 video_cards_sunleo
86 video_cards_suntcx
87 video_cards_tdfx
88 video_cards_tga
89 video_cards_trident
90 video_cards_tseng
91 video_cards_v4l
92 video_cards_vermilion
93 video_cards_vesa
94 video_cards_vga
95 video_cards_via
96 video_cards_vmware
97 video_cards_voodoo
98 video_cards_xgi
99 video_cards_fglrx
100 video_cards_nvidia"
101 IUSE_SERVERS="dmx kdrive xorg"
102 IUSE="${IUSE_VIDEO_CARDS}
103 ${IUSE_INPUT_DEVICES}
104 ${IUSE_SERVERS}
105 3dfx
106 dri hal ipv6 minimal nptl sdl"
107 RDEPEND="hal? ( sys-apps/hal )
108 >=x11-libs/libXfont-1.3.3
109 >=x11-libs/xtrans-1.2.2
110 >=x11-libs/libXau-1.0.4
111 >=x11-libs/libXext-1.0.4
112 >=x11-libs/libX11-1.1.5
113 >=x11-libs/libxkbfile-1.0.4
114 >=x11-libs/libXdmcp-1.0.2
115 >=x11-libs/libXmu-1.0.3
116 >=x11-libs/libXrender-0.9.4
117 >=x11-libs/libXi-1.1.3
118 >=x11-libs/pixman-0.12
119 media-libs/freetype
120 >=media-libs/mesa-7.1
121 media-fonts/font-adobe-75dpi
122 media-fonts/font-misc-misc
123 media-fonts/font-cursor-misc
124 >=x11-misc/xbitmaps-1.0.1
125 >=x11-misc/xkeyboard-config-1.3
126 >=x11-apps/iceauth-1.0.2
127 >=x11-apps/rgb-1.0.3
128 >=x11-apps/xauth-1.0.3
129 >=x11-apps/xinit-1.0.8-r3
130 app-admin/eselect-opengl
131 >=x11-libs/libXaw-1.0.4
132 >=x11-libs/libXpm-3.5.7
133 >=x11-libs/libXxf86misc-1.0.1
134 >=x11-libs/libXxf86vm-1.0.2
135 >=x11-libs/libpciaccess-0.10.3
136 dmx? ( >=x11-libs/libdmx-1.0.2
137 >=x11-libs/libXfixes-4.0.3 )
138 !minimal? ( >=x11-libs/libXtst-1.0.3
139 >=x11-libs/libXres-1.0.3 )
140 >=x11-libs/libxkbui-1.0.2
141 >=x11-libs/liblbxutil-1.0.1
142 kdrive? ( sdl? ( media-libs/libsdl ) )"
143 # Xres is dmx-dependent, xkbui is xorgcfg-dependent
144 # Xaw is dmx- and xorgcfg-dependent
145 # Xpm is dmx- and xorgcfg-dependent, pulls in Xt
146 # Xxf86misc and Xxf86vm are xorgcfg-dependent
147 # liblbxutil is lbx- dependent
148 DEPEND="${RDEPEND}
149 !net-dialup/dtrace
150 >=x11-proto/randrproto-1.2.2
151 >=x11-proto/renderproto-0.9.3
152 >=x11-proto/fixesproto-4
153 >=x11-proto/damageproto-1.1
154 >=x11-proto/xextproto-7.0.3
155 >=x11-proto/xproto-7.0.13
156 >=x11-proto/xf86dgaproto-2.0.3
157 >=x11-proto/xf86miscproto-0.9.2
158 >=x11-proto/xf86rushproto-1.1.2
159 >=x11-proto/xf86vidmodeproto-2.2.2
160 >=x11-proto/xf86bigfontproto-1.1.2
161 >=x11-proto/compositeproto-0.4
162 >=x11-proto/recordproto-1.13.2
163 >=x11-proto/resourceproto-1.0.2
164 >=x11-proto/videoproto-2.2.2
165 >=x11-proto/scrnsaverproto-1.1.0
166 >=x11-proto/evieext-1.0.2
167 >=x11-proto/trapproto-3.4.3
168 >=x11-proto/xineramaproto-1.1.2
169 >=x11-proto/fontsproto-2.0.2
170 >=x11-proto/kbproto-1.0.3
171 >=x11-proto/inputproto-1.4.4
172 >=x11-proto/bigreqsproto-1.0.2
173 >=x11-proto/xcmiscproto-1.1.2
174 >=x11-proto/glproto-1.4.9
175 dmx? ( >=x11-proto/dmxproto-2.2.2 )
176 dri? ( >=x11-proto/xf86driproto-2.0.4
177 >=x11-libs/libdrm-2.3 )"
178
179 # Drivers
180 PDEPEND="
181 xorg? (
182 input_devices_acecad? ( >=x11-drivers/xf86-input-acecad-1.2.2 )
183 input_devices_aiptek? ( >=x11-drivers/xf86-input-aiptek-1.1.1 )
184 input_devices_calcomp? ( >=x11-drivers/xf86-input-calcomp-1.1.2 )
185 input_devices_citron? ( >=x11-drivers/xf86-input-citron-2.2.1 )
186 input_devices_digitaledge? ( >=x11-drivers/xf86-input-digitaledge-1.1.1 )
187 input_devices_dmc? ( >=x11-drivers/xf86-input-dmc-1.1.2 )
188 input_devices_dynapro? ( >=x11-drivers/xf86-input-dynapro-1.1.2 )
189 input_devices_elo2300? ( >=x11-drivers/xf86-input-elo2300-1.1.2 )
190 input_devices_elographics? ( >=x11-drivers/xf86-input-elographics-1.2.2 )
191 input_devices_evdev? ( >=x11-drivers/xf86-input-evdev-2.0.6 )
192 input_devices_fpit? ( >=x11-drivers/xf86-input-fpit-1.2.0 )
193 input_devices_hyperpen? ( >=x11-drivers/xf86-input-hyperpen-1.2.0 )
194 input_devices_jamstudio? ( >=x11-drivers/xf86-input-jamstudio-1.2.0 )
195 input_devices_joystick? ( >=x11-drivers/xf86-input-joystick-1.3.2 )
196 input_devices_keyboard? ( >=x11-drivers/xf86-input-keyboard-1.3.1 )
197 input_devices_magellan? ( >=x11-drivers/xf86-input-magellan-1.2.0 )
198 input_devices_microtouch? ( >=x11-drivers/xf86-input-microtouch-1.2.0 )
199 input_devices_mouse? ( >=x11-drivers/xf86-input-mouse-1.3.0 )
200 input_devices_mutouch? ( >=x11-drivers/xf86-input-mutouch-1.2.1 )
201 input_devices_palmax? ( >=x11-drivers/xf86-input-palmax-1.2.0 )
202 input_devices_penmount? ( >=x11-drivers/xf86-input-penmount-1.3.0 )
203 input_devices_spaceorb? ( >=x11-drivers/xf86-input-spaceorb-1.1.1 )
204 input_devices_summa? ( >=x11-drivers/xf86-input-summa-1.2.0 )
205 input_devices_tek4957? ( >=x11-drivers/xf86-input-tek4957-1.2.0 )
206 input_devices_ur98? ( >=x11-drivers/xf86-input-ur98-1.1.0 )
207 input_devices_vmmouse? ( >=x11-drivers/xf86-input-vmmouse-12.5.0 )
208 input_devices_void? ( >=x11-drivers/xf86-input-void-1.1.1 )
209 input_devices_synaptics? ( >=x11-drivers/xf86-input-synaptics-0.15.0 )
210 input_devices_wacom? ( x11-drivers/linuxwacom )
211
212 video_cards_apm? ( >=x11-drivers/xf86-video-apm-1.2.0 )
213 video_cards_ark? ( >=x11-drivers/xf86-video-ark-0.7.0 )
214 video_cards_ast? ( >=x11-drivers/xf86-video-ast-0.85.0 )
215 video_cards_chips? ( >=x11-drivers/xf86-video-chips-1.2.0 )
216 video_cards_cirrus? ( >=x11-drivers/xf86-video-cirrus-1.2.1 )
217 video_cards_dummy? ( >=x11-drivers/xf86-video-dummy-0.3.0 )
218 video_cards_fbdev? ( >=x11-drivers/xf86-video-fbdev-0.4.0 )
219 video_cards_geode? ( >=x11-drivers/xf86-video-geode-2.9.0 )
220 video_cards_glint? ( >=x11-drivers/xf86-video-glint-1.2.1 )
221 video_cards_i128? ( >=x11-drivers/xf86-video-i128-1.3.1 )
222 video_cards_i740? ( >=x11-drivers/xf86-video-i740-1.2.0 )
223 video_cards_intel? ( >=x11-drivers/xf86-video-intel-2.4.2-r1 )
224 video_cards_mach64? ( >=x11-drivers/xf86-video-mach64-6.8.0 )
225 video_cards_mga? ( >=x11-drivers/xf86-video-mga-1.4.9 )
226 video_cards_neomagic? ( >=x11-drivers/xf86-video-neomagic-1.2.1 )
227 video_cards_nv? ( >=x11-drivers/xf86-video-nv-2.1.12 )
228 video_cards_nvidia? ( >=x11-drivers/nvidia-drivers-173.14.09 )
229 video_cards_r128? ( >=x11-drivers/xf86-video-r128-6.8.0 )
230 video_cards_radeon? ( >=x11-drivers/xf86-video-ati-6.9.0 )
231 video_cards_radeonhd? ( >=x11-drivers/xf86-video-radeonhd-1.2.1 )
232 video_cards_rendition? ( >=x11-drivers/xf86-video-rendition-4.2.0 )
233 video_cards_s3? ( >=x11-drivers/xf86-video-s3-0.6.0 )
234 video_cards_s3virge? ( >=x11-drivers/xf86-video-s3virge-1.10.1 )
235 video_cards_savage? ( >=x11-drivers/xf86-video-savage-2.2.1 )
236 video_cards_siliconmotion? ( >=x11-drivers/xf86-video-siliconmotion-1.6.0 )
237 video_cards_sis? ( >=x11-drivers/xf86-video-sis-0.10.0 )
238 video_cards_sisusb? ( >=x11-drivers/xf86-video-sisusb-0.9.0 )
239 video_cards_sunffb? ( >=x11-drivers/xf86-video-sunffb-1.2.0 )
240 video_cards_sunleo? ( >=x11-drivers/xf86-video-sunleo-1.2.0 )
241 video_cards_tdfx? ( >=x11-drivers/xf86-video-tdfx-1.4.0 )
242 video_cards_tga? ( >=x11-drivers/xf86-video-tga-1.2.0 )
243 video_cards_trident? ( >=x11-drivers/xf86-video-trident-1.3.0 )
244 video_cards_tseng? ( >=x11-drivers/xf86-video-tseng-1.2.0 )
245 video_cards_v4l? ( >=x11-drivers/xf86-video-v4l-0.2.0 )
246 video_cards_vesa? ( >=x11-drivers/xf86-video-vesa-2.0.0 )
247 video_cards_via? ( >=x11-drivers/xf86-video-openchrome-0.2.903 )
248 video_cards_vmware? ( >=x11-drivers/xf86-video-vmware-10.16.5 )
249 video_cards_voodoo? ( >=x11-drivers/xf86-video-voodoo-1.2.0 )
250 video_cards_xgi? ( >=x11-drivers/xf86-video-xgi-1.5.0 )
251
252 video_cards_tdfx? ( 3dfx? ( >=media-libs/glide-v3-3.10 ) )
253 !x11-drivers/ati-drivers
254
255 !x11-drivers/xf86-video-impact
256 !x11-drivers/xf86-video-imstt
257 !x11-drivers/xf86-video-newport
258 !x11-drivers/xf86-video-sunbw2
259 !x11-drivers/xf86-video-suncg14
260 !x11-drivers/xf86-video-suncg3
261 !x11-drivers/xf86-video-suncg6
262 !x11-drivers/xf86-video-suntcx
263 !x11-drivers/xf86-video-vermilion
264
265 !x11-drivers/xf86-video-cyrix
266 !x11-drivers/xf86-video-nsc
267 !x11-drivers/xf86-video-vga
268 )"
269 LICENSE="${LICENSE} MIT"
270
271 EPATCH_FORCE="yes"
272 EPATCH_SUFFIX="patch"
273
274 # Local customizations, unsuitable for upstream
275 GENTOO_PATCHES=(
276 "${FILESDIR}/1.4-fpic-libxf86config.patch"
277 "${FILESDIR}/1.4-fix-kdrive-automake.patch"
278 )
279
280 # These have been sent upstream
281 UPSTREAMED_PATCHES=(
282 "${FILESDIR}/1.5.2-force-LC_ALL-C-when-running-awk.patch"
283 "${FILESDIR}/1.5.2-fix-xvesa-with-new-kernels.patch"
284 )
285
286 PATCHES=(
287 "${GENTOO_PATCHES[@]}"
288 "${UPSTREAMED_PATCHES[@]}"
289 )
290
291 pkg_setup() {
292 use minimal || ensure_a_server_is_building
293
294 # SDL only available in kdrive build
295 if use kdrive && use sdl; then
296 conf_opts="${conf_opts} --enable-xsdl"
297 else
298 conf_opts="${conf_opts} --disable-xsdl"
299 fi
300
301 # localstatedir is used for the log location; we need to override the default
302 # from ebuild.sh
303 # sysconfdir is used for the xorg.conf location; same applies
304 # --enable-install-setuid needed because sparcs default off
305 CONFIGURE_OPTIONS="
306 $(use_enable ipv6)
307 $(use_enable dmx)
308 $(use_enable kdrive)
309 $(use_enable !minimal xvfb)
310 $(use_enable !minimal xnest)
311 $(use_enable !minimal xtrap)
312 $(use_enable !minimal record)
313 $(use_enable !minimal xfree86-utils)
314 $(use_enable !minimal install-libxf86config)
315 $(use_enable dri)
316 $(use_enable xorg)
317 $(use_enable nptl glx-tls)
318 $(use_enable !minimal xorgcfg)
319 $(use_enable hal config-dbus)
320 $(use_enable hal config-hal)
321 --disable-dri2
322 --sysconfdir=/etc/X11
323 --localstatedir=/var
324 --enable-install-setuid
325 --with-fontdir=/usr/share/fonts
326 --with-xkb-output=/var/lib/xkb
327 ${conf_opts}"
328
329 local diemsg="You must build xorg-server and mesa with the same nptl USE setting."
330 if built_with_use media-libs/mesa nptl; then
331 use nptl || die "${diemsg}"
332 else
333 use nptl && die "${diemsg}"
334 fi
335
336 # (#121394) Causes window corruption
337 filter-flags -fweb
338
339 # Nothing else provides new enough glxtokens.h
340 ewarn "Forcing on xorg-x11 for new enough glxtokens.h..."
341 OLD_IMPLEM="$(eselect opengl show)"
342 eselect opengl set --impl-headers ${OPENGL_DIR}
343 }
344
345 src_unpack() {
346 x-modular_specs_check
347 x-modular_dri_check
348 x-modular_unpack_source
349 x-modular_patch_source
350
351 # Set up kdrive servers to build
352 if use kdrive; then
353 kdrive_setup
354 fi
355
356 # Make sure eautoreconf gets run if we need the autoconf/make
357 # changes.
358 if [[ ${SNAPSHOT} != "yes" ]]; then
359 if use kdrive || use dmx; then
360 SNAPSHOT="yes"
361 fi
362 fi
363
364 if use hal; then
365 sed -i \
366 -e "s:^\(dbusconfigdir = \).*\(dbus-1.*\):\1/etc/\2:g" \
367 "${S}"/config/Makefile.am \
368 || die "failed to fix DBUS config directory"
369 SNAPSHOT="yes"
370 fi
371
372 x-modular_reconf_source
373 }
374
375 src_install() {
376 x-modular_src_install
377
378 dynamic_libgl_install
379
380 server_based_install
381
382 # Install video mode files for system-config-display
383 insinto /usr/share/xorg
384 doins hw/xfree86/common/{extra,vesa}modes \
385 || die "couldn't install extra modes"
386
387 # Bug #151421 - this file is not built with USE="minimal"
388 # Bug #151670 - this file is also not build if USE="-xorg"
389 if ! use minimal && use xorg; then
390 # Install xorg.conf.example
391 insinto /etc/X11
392 doins hw/xfree86/xorg.conf.example \
393 || die "couldn't install xorg.conf.example"
394 fi
395 }
396
397 pkg_postinst() {
398 switch_opengl_implem
399
400 # Bug #135544
401 ewarn "Users of reduced blanking now need:"
402 ewarn " Option \"ReducedBlanking\""
403 ewarn "In the relevant Monitor section(s)."
404 ewarn "Make sure your reduced blanking modelines are safe!"
405
406 echo
407 ewarn "You must rebuild all drivers if upgrading from xorg-server 1.4.1"
408 ewarn "or earlier, because the ABI changed. If you cannot start X because"
409 ewarn "of module version mismatch errors, this is your problem."
410
411 echo
412 ewarn "You can generate a list of all installed packages in the x11-drivers"
413 ewarn "category using this command:"
414 ewarn "emerge portage-utils; qlist -I -C x11-drivers/"
415
416 ebeep 5
417 epause 10
418 }
419
420 pkg_postrm() {
421 # Get rid of module dir to ensure opengl-update works properly
422 if ! has_version x11-base/xorg-server; then
423 if [[ -e ${ROOT}/usr/$(get_libdir)/xorg/modules ]]; then
424 rm -rf "${ROOT}"/usr/$(get_libdir)/xorg/modules
425 fi
426 fi
427 }
428
429 kdrive_setup() {
430 local card real_card disable_card kdrive_fbdev kdrive_vesa
431
432 einfo "Removing unused kdrive drivers ..."
433
434 # Some kdrive servers require fbdev and vesa
435 kdrive_fbdev="radeon neomagic sis siliconmotion"
436 # Some kdrive servers require just vesa
437 kdrive_vesa="chips mach64 mga nv glint r128 via"
438
439 for card in ${IUSE_VIDEO_CARDS}; do
440 real_card=${card#video_cards_}
441
442 # Differences between VIDEO_CARDS name and kdrive server name
443 real_card=${real_card/glint/pm2}
444 real_card=${real_card/radeon/ati}
445 real_card=${real_card/%nv/nvidia}
446 real_card=${real_card/siliconmotion/smi}
447 real_card=${real_card/%sis/sis300}
448
449 disable_card=0
450
451 # Check whether it's a valid kdrive server before we waste time
452 # on the rest of this
453 if ! grep -q -o "\b${real_card}\b" "${S}"/hw/kdrive/Makefile.am; then
454 continue
455 fi
456
457 if ! use ${card}; then
458 if use x86; then
459 # Some kdrive servers require fbdev and vesa
460 for i in ${kdrive_fbdev}; do
461 if use video_cards_${i}; then
462 if [[ ${real_card} = fbdev ]] \
463 || [[ ${real_card} = vesa ]]; then
464 continue 2 # Don't disable
465 fi
466 fi
467 done
468
469 # Some kdrive servers require just vesa
470 for i in ${kdrive_vesa}; do
471 if use video_cards_${i}; then
472 if [[ ${real_card} = vesa ]]; then
473 continue 2 # Don't disable
474 fi
475 fi
476 done
477 fi
478 disable_card=1
479 # Bug #150052
480 # fbdev is the only VIDEO_CARDS setting that works on non-x86
481 elif ! use x86 \
482 && [[ ${real_card} != fbdev ]]; then
483 ewarn " $real_card does not work on your architecture; disabling."
484 disable_card=1
485 fi
486
487 if [[ $disable_card = 1 ]]; then
488 ebegin " ${real_card}"
489 sed -i \
490 -e "s:\b${real_card}\b::g" \
491 "${S}"/hw/kdrive/Makefile.am \
492 || die "sed of ${real_card} failed"
493 eend
494 fi
495
496 done
497 }
498
499 dynamic_libgl_install() {
500 # next section is to setup the dynamic libGL stuff
501 ebegin "Moving GL files for dynamic switching"
502 dodir /usr/$(get_libdir)/opengl/${OPENGL_DIR}/extensions
503 local x=""
504 for x in "${D}"/usr/$(get_libdir)/xorg/modules/extensions/libglx*; do
505 if [ -f ${x} -o -L ${x} ]; then
506 mv -f ${x} "${D}"/usr/$(get_libdir)/opengl/${OPENGL_DIR}/extensions
507 fi
508 done
509 eend 0
510 }
511
512 server_based_install() {
513 if ! use xorg; then
514 rm "${D}"/usr/share/man/man1/Xserver.1x \
515 "${D}"/usr/$(get_libdir)/xserver/SecurityPolicy \
516 "${D}"/usr/$(get_libdir)/pkgconfig/xorg-server.pc \
517 "${D}"/usr/share/man/man1/Xserver.1x
518 fi
519 }
520
521 switch_opengl_implem() {
522 # Switch to the xorg implementation.
523 # Use new opengl-update that will not reset user selected
524 # OpenGL interface ...
525 echo
526 # eselect opengl set --use-old ${OPENGL_DIR}
527 eselect opengl set ${OLD_IMPLEM}
528 }
529
530 ensure_a_server_is_building() {
531 for server in ${IUSE_SERVERS}; do
532 use ${server} && return;
533 done
534 eerror "You need to specify at least one server to build."
535 eerror "Valid servers are: ${IUSE_SERVERS}."
536 die "No servers were specified to build."
537 }

  ViewVC Help
Powered by ViewVC 1.1.20