Gentoo Archives: gentoo-commits

From: "William Thomson (wltjr)" <wltjr@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] gentoo-x86 commit in x11-drivers/ati-drivers: ChangeLog ati-drivers-8.42.3.ebuild
Date: Mon, 19 Nov 2007 01:15:09
Message-Id: E1ItvE7-0007O0-5P@stork.gentoo.org
1 wltjr 07/11/19 01:15:03
2
3 Modified: ChangeLog
4 Added: ati-drivers-8.42.3.ebuild
5 Log:
6 Bumped to latest release per bug #196820.
7 (Portage version: 2.1.3.19)
8
9 Revision Changes Path
10 1.95 x11-drivers/ati-drivers/ChangeLog
11
12 file : http://sources.gentoo.org/viewcvs.py/gentoo-x86/x11-drivers/ati-drivers/ChangeLog?rev=1.95&view=markup
13 plain: http://sources.gentoo.org/viewcvs.py/gentoo-x86/x11-drivers/ati-drivers/ChangeLog?rev=1.95&content-type=text/plain
14 diff : http://sources.gentoo.org/viewcvs.py/gentoo-x86/x11-drivers/ati-drivers/ChangeLog?r1=1.94&r2=1.95
15
16 Index: ChangeLog
17 ===================================================================
18 RCS file: /var/cvsroot/gentoo-x86/x11-drivers/ati-drivers/ChangeLog,v
19 retrieving revision 1.94
20 retrieving revision 1.95
21 diff -u -r1.94 -r1.95
22 --- ChangeLog 1 Nov 2007 14:56:16 -0000 1.94
23 +++ ChangeLog 19 Nov 2007 01:15:02 -0000 1.95
24 @@ -1,6 +1,13 @@
25 # ChangeLog for x11-drivers/ati-drivers
26 # Copyright 2002-2007 Gentoo Foundation; Distributed under the GPL v2
27 -# $Header: /var/cvsroot/gentoo-x86/x11-drivers/ati-drivers/ChangeLog,v 1.94 2007/11/01 14:56:16 opfer Exp $
28 +# $Header: /var/cvsroot/gentoo-x86/x11-drivers/ati-drivers/ChangeLog,v 1.95 2007/11/19 01:15:02 wltjr Exp $
29 +
30 +*ati-drivers-8.42.3 (19 Nov 2007)
31 +
32 + 19 Nov 2007; William L. Thomson Jr. <wltjr@g.o>
33 + +files/8.42.3/linux-2.6.23.patch, +files/8.42.3/warnings.patch,
34 + +ati-drivers-8.42.3.ebuild:
35 + Bumped to latest release per bug #196820.
36
37 01 Nov 2007; Christian Faulhammer <opfer@g.o>
38 ati-drivers-8.40.4.ebuild:
39
40
41
42 1.1 x11-drivers/ati-drivers/ati-drivers-8.42.3.ebuild
43
44 file : http://sources.gentoo.org/viewcvs.py/gentoo-x86/x11-drivers/ati-drivers/ati-drivers-8.42.3.ebuild?rev=1.1&view=markup
45 plain: http://sources.gentoo.org/viewcvs.py/gentoo-x86/x11-drivers/ati-drivers/ati-drivers-8.42.3.ebuild?rev=1.1&content-type=text/plain
46
47 Index: ati-drivers-8.42.3.ebuild
48 ===================================================================
49 # Copyright 1999-2007 Gentoo Foundation
50 # Distributed under the terms of the GNU General Public License v2
51 # $Header: /var/cvsroot/gentoo-x86/x11-drivers/ati-drivers/ati-drivers-8.42.3.ebuild,v 1.1 2007/11/19 01:15:02 wltjr Exp $
52
53 IUSE="acpi multilib"
54
55 inherit eutils multilib linux-mod toolchain-funcs versionator
56
57 DESCRIPTION="Ati precompiled drivers for recent chipsets"
58 HOMEPAGE="http://www.ati.com"
59 ATI_URL="https://a248.e.akamai.net/f/674/9206/0/www2.ati.com/drivers/linux/"
60 SRC_URI="${ATI_URL}/ati-driver-installer-${PV}-x86.x86_64.run"
61
62 LICENSE="AMD GPL-2 QPL-1.0 as-is"
63 KEYWORDS="~amd64 ~x86"
64
65 # The portage dep is for COLON_SEPARATED support in env-update.
66 # The eselect dep (>=1.0.9) is for COLON_SEPARATED in eselect env update.
67 RDEPEND="x11-base/xorg-server
68 !x11-apps/ati-drivers-extra
69 >=app-admin/eselect-1.0.9
70 app-admin/eselect-opengl
71 =virtual/libstdc++-3.3*
72 amd64? ( multilib? ( app-emulation/emul-linux-x86-compat ) )
73 acpi? (
74 x11-apps/xauth
75 sys-power/acpid
76 )
77 >=sys-apps/portage-2.1.1-r1"
78
79 DEPEND="${RDEPEND}
80 x11-proto/xf86miscproto
81 x11-proto/xf86vidmodeproto"
82
83 EMULTILIB_PKG="true"
84
85 QA_EXECSTACK_x86="usr/lib/dri/fglrx_dri.so
86 usr/lib/opengl/ati/lib/libGL.so.1.2
87 opt/bin/amdcccle"
88 QA_EXECSTACK_amd64="usr/lib64/dri/fglrx_dri.so
89 usr/lib32/dri/fglrx_dri.so
90 usr/lib64/opengl/ati/lib/libGL.so.1.2
91 usr/lib32/opengl/ati/lib/libGL.so.1.2
92 opt/bin/amdcccle"
93 QA_TEXTRELS_x86="usr/lib/dri/fglrx_dri.so
94 usr/lib/xorg/modules/drivers/fglrx_drv.so
95 usr/lib/opengl/ati/lib/libGL.so.1.2"
96 QA_TEXTRELS_amd64="
97 usr/lib64/opengl/ati/lib/libGL.so.1.2
98 usr/lib32/opengl/ati/lib/libGL.so.1.2
99 usr/lib64/dri/fglrx_dri.so
100 usr/lib32/dri/fglrx_dri.so"
101
102 S="${WORKDIR}"
103
104 pkg_setup() {
105 #check kernel and sets up KV_OBJ
106 MODULE_NAMES="fglrx(video:${S}/common/lib/modules/fglrx/build_mod/2.6.x)"
107 BUILD_TARGETS="kmod_build"
108 linux-mod_pkg_setup
109 BUILD_PARAMS="GCC_VER_MAJ=$(gcc-major-version) KVER=${KV_FULL} KDIR=${KV_DIR}"
110
111 if ! kernel_is 2 6; then
112 eerror "Need a 2.6 kernel to compile against!"
113 die "Need a 2.6 kernel to compile against!"
114 fi
115
116 if ! linux_chkconfig_present MTRR; then
117 ewarn "You don't have MTRR support enabled, the direct rendering will not work."
118 fi
119
120 if linux_chkconfig_builtin DRM; then
121 ewarn "You have DRM support enabled builtin, the direct rendering will not work."
122 fi
123
124 if ! linux_chkconfig_present AGP && \
125 ! linux_chkconfig_present PCIEPORTBUS; then
126 ewarn "You need AGP and/or PCI Express support for direct rendering to work."
127 fi
128
129 if linux_chkconfig_present PARAVIRT; then
130 eerror "The current ati-drivers don't compile when having"
131 eerror "paravirtualization active due to GPL symbol export"
132 eerror "restrictions."
133 eerror "Please disable it:"
134 eerror " CONFIG_PARAVIRT=n"
135 eerror "in /usr/src/linux/.config or"
136 eerror " Processor type and features -->"
137 eerror " [ ] Paravirtualization support (EXPERIMENTAL)"
138 eerror "in 'menuconfig'"
139 die "CONFIG_PARAVIRT enabled"
140 fi
141
142 if linux_chkconfig_present SLUB; then
143 ewarn "You have selected support for the SLUB allocator. Suspending is"
144 ewarn "known to be broken with this allocator and ati-drivers. If you"
145 ewarn "need support for Suspend-To-Ram or Suspend-To-Disk, select SLAB"
146 ewarn "instead. To do this enable CONFIG_SLAB and disable CONFIG_SLUB"
147 ewarn "in /usr/src/linux/.config or select"
148 ewarn " General setup --->"
149 ewarn " Choose SLAB allocator (SLUB) --->"
150 ewarn " (X) SLAB"
151 ewarn "in 'menuconfig'"
152 fi
153
154 # xorg-server 1.1 and its prereleases correspond to xorg 7.1.
155 if has_version ">=x11-base/xorg-server-1.0.99"; then
156 BASE_DIR="${S}/x710"
157 else
158 BASE_DIR="${S}/x690"
159 fi
160
161 if use amd64 ; then
162 BASE_DIR="${BASE_DIR}_64a"
163 # This is used like $(get_libdir) for paths in ati's package.
164 PKG_LIBDIR=lib64
165 ARCH_DIR="${S}/arch/x86_64"
166 else
167 PKG_LIBDIR=lib
168 ARCH_DIR="${S}/arch/x86"
169 fi
170 }
171
172 src_unpack() {
173 local src="${DISTDIR}/${A}"
174 # This is apparently a nonstandard makeself archive, so extract
175 # the offset by hand.
176 local offset=$(grep -am1 SKIP "${src}" | sed -e 's/SKIP="\([0-9]\+\)"/\1/')
177
178 #Switching to a standard way to extract the files since otherwise no signature file
179 #would be created
180 sh "${src}" --extract "${S}" 2&>1 /dev/null
181
182 # These are the userspace utilities that we also have source for.
183 # We rebuild these later.
184 rm \
185 "${ARCH_DIR}"/usr/X11R6/bin/{fgl_glxgears,fglrx_xgamma} \
186 "${ARCH_DIR}"/usr/X11R6/${PKG_LIBDIR}/libfglrx_gamma* \
187 || die "bin rm failed"
188
189 if use acpi; then
190 sed -i \
191 -e "s:/var/lib/xdm/authdir/:/etc/X11/xdm/authdir/:" \
192 -e "s:/var/lib/gdm/:/var/gdm/:" \
193 -e "s/#ffff#/#ffff##:.*MIT-MAGIC-COOKIE/" \
194 "${S}/common/etc/ati/authatieventsd.sh" \
195 || die "sed failed."
196
197 # Adjust paths in the script from /usr/X11R6/bin/ to /opt/bin/
198 epatch "${FILESDIR}"/ati-powermode-opt-path.patch
199 fi
200
201 pushd common/lib/modules/fglrx/build_mod >/dev/null
202 ln -s "${ARCH_DIR}"/lib/modules/fglrx/build_mod/libfglrx_ip.a.GCC$(gcc-major-version) \
203 || die "symlinking precompiled core failed"
204
205 convert_to_m 2.6.x/Makefile || die "convert_to_m failed"
206
207 # When built with ati's make.sh it defines a bunch of macros if
208 # certain .config values are set, falling back to less reliable
209 # detection methods if linux/autoconf.h is not available. We
210 # simply use the linux/autoconf.h settings directly, bypassing the
211 # detection script.
212 sed -i -e 's/__SMP__/CONFIG_SMP/' *.c *h || die "SMP sed failed"
213 sed -i -e 's/ifdef MODVERSIONS/ifdef CONFIG_MODVERSIONS/' *.c *.h \
214 || die "MODVERSIONS sed failed"
215 popd >/dev/null
216
217 mkdir extra || die "mkdir failed"
218 cd extra
219 unpack ./../common/usr/src/ati/fglrx_sample_source.tgz
220 sed -i -e 's:include/extensions/extutil.h:X11/extensions/extutil.h:' \
221 lib/fglrx_gamma/fglrx_gamma.c || die "include fixup failed"
222 # Add a category.
223 mv programs/fglrx_gamma/fglrx_xgamma.{man,1} || die "man mv failed"
224 cd ..
225
226 # Misc. patches.
227 epatch "${FILESDIR}"/${PV}/warnings.patch
228
229 if kernel_is ge 2 6 23; then
230 epatch "${FILESDIR}"/${PV}/linux-2.6.23.patch
231 fi
232 }
233
234 src_compile() {
235 linux-mod_src_compile
236
237 einfo "Building fgl_glxgears"
238 cd "${S}"/extra/fgl_glxgears
239 # These extra libs/utils either have an Imakefile that does not
240 # work very well without tweaking or a Makefile ignoring CFLAGS
241 # and the like. We bypass those.
242
243 # The -DUSE_GLU is needed to compile using nvidia headers
244 # according to a comment in ati-drivers-extra-8.33.6.ebuild.
245 "$(tc-getCC)" -o fgl_fglxgears ${CFLAGS} ${LDFLAGS} -DUSE_GLU \
246 -I"${S}"/common/usr/include fgl_glxgears.c \
247 -lGL -lGLU -lX11 -lm || die "fgl_glxgears build failed"
248
249 einfo "Building fglrx_gamma lib"
250 cd "${S}"/extra/lib/fglrx_gamma
251 "$(tc-getCC)" -shared -fpic -o libfglrx_gamma.so.1.0 ${CFLAGS} ${LDFLAGS} \
252 -DXF86MISC -Wl,-soname,libfglrx_gamma.so.1.0 fglrx_gamma.c \
253 -lXext || die "fglrx_gamma lib build failed"
254 ln -s libfglrx_gamma.so.1.0 libfglrx_gamma.so || die "ln failed"
255 ln -s libfglrx_gamma.so.1.0 libfglrx_gamma.so.1 || die "ln failed"
256
257 einfo "Building fglrx_gamma util"
258 cd "${S}"/extra/programs/fglrx_gamma
259 "$(tc-getCC)" -o fglrx_xgamma ${CFLAGS} ${LDFLAGS} \
260 -I../../../common/usr/X11R6/include -L../../lib/fglrx_gamma \
261 fglrx_xgamma.c -lm -lfglrx_gamma -lX11 \
262 || die "fglrx_gamma util build failed"
263
264 }
265
266 src_install() {
267 linux-mod_src_install
268
269 # We can do two things here, and neither of them is very nice.
270
271 # For direct rendering libGL has to be able to load one or more
272 # dri modules (files ending in _dri.so, like fglrx_dri.so).
273 # Gentoo's mesa looks for these files in the location specified by
274 # LIBGL_DRIVERS_PATH or LIBGL_DRIVERS_DIR, then in the hardcoded
275 # location /usr/$(get_libdir)/dri. Ati's libGL does the same
276 # thing, but the hardcoded location is /usr/X11R6/lib/modules/dri
277 # on x86 and amd64 32bit, /usr/X11R6/lib64/modules/dri on amd64
278 # 64bit. So we can either put the .so files in that (unusual,
279 # compared to "normal" mesa libGL) location or set
280 # LIBGL_DRIVERS_PATH. We currently do the latter. See also bug
281 # 101539.
282
283 # The problem with this approach is that LIBGL_DRIVERS_PATH
284 # *overrides* the default hardcoded location, it does not extend
285 # it. So if ati-drivers is merged but a non-ati libGL is selected
286 # and its hardcoded path does not match our LIBGL_DRIVERS_PATH
287 # (because it changed in a newer mesa or because it was compiled
288 # for a different set of multilib abis than we are) stuff breaks.
289
290 # We create one file per ABI to work with "native" multilib, see
291 # below.
292
293 echo "COLON_SEPARATED=LIBGL_DRIVERS_PATH" > "${T}/03ati-colon-sep"
294 doenvd "${T}/03ati-colon-sep"
295
296 # All libraries that we have a 32 bit and 64 bit version of on
297 # amd64 are installed in src_install-libs. Everything else
298 # (including libraries only available in native 64bit on amd64)
299 # goes in here.
300
301 # There used to be some code here that tried to detect running
302 # under a "native multilib" portage ((precursor of)
303 # http://dev.gentoo.org/~kanaka/auto-multilib/). I removed that, it
304 # should just work (only doing some duplicate work). --marienz
305 if has_multilib_profile; then
306 local OABI=${ABI}
307 for ABI in $(get_install_abis); do
308 src_install-libs
309 done
310 ABI=${OABI}
311 unset OABI
312 else
313 src_install-libs
314 fi
315
316 # This is sorted by the order the files occur in the source tree.
317
318 # X modules.
319 exeinto /usr/$(get_libdir)/xorg/modules/drivers
320 doexe "${BASE_DIR}"/usr/X11R6/${PKG_LIBDIR}/modules/drivers/fglrx_drv.so
321 exeinto /usr/$(get_libdir)/xorg/modules/linux
322 doexe "${BASE_DIR}"/usr/X11R6/${PKG_LIBDIR}/modules/linux/libfglrxdrm.so
323 exeinto /usr/$(get_libdir)/xorg/modules
324 doexe "${BASE_DIR}"/usr/X11R6/${PKG_LIBDIR}/modules/{esut.a,glesx.so}
325
326 # Arch-specific files.
327 # (s)bin.
328 into /opt
329 if use acpi; then
330 dosbin "${ARCH_DIR}"/usr/sbin/atieventsd
331 fi
332 # We cleaned out the compilable stuff in src_unpack
333 dobin "${ARCH_DIR}"/usr/X11R6/bin/*
334
335 # lib.
336 exeinto /usr/$(get_libdir)
337 # Everything except for the libGL.so installed in src_install-libs.
338 doexe $(find "${ARCH_DIR}"/usr/X11R6/${PKG_LIBDIR} \
339 -maxdepth 1 -type f -name '*.so*' -not -name 'libGL.so*')
340 insinto /usr/$(get_libdir)
341 doins $(find "${ARCH_DIR}"/usr/X11R6/${PKG_LIBDIR} \
342 -maxdepth 1 -type f -not -name '*.so*')
343
344 # Common files.
345 # etc.
346 insinto /etc/ati
347 # Everything except for the authatieventsd.sh script.
348 doins common/etc/ati/{logo*,control,atiogl.xml,signature}
349 if use acpi; then
350 doins common/etc/ati/authatieventsd.sh
351 fi
352
353 # include.
354 insinto /usr
355 doins -r common/usr/include
356 insinto /usr/include/X11/extensions
357 doins common/usr/X11R6/include/X11/extensions/fglrx_gamma.h
358
359 # Just the atigetsysteminfo.sh script.
360 into /usr
361 dosbin common/usr/sbin/*
362
363 # data files for the control panel.
364 insinto /usr/share
365 doins -r common/usr/share/ati
366 insinto /usr/share/pixmaps
367 doins common/usr/share/icons/ccc_{large,small}.xpm
368 make_desktop_entry amdcccle 'ATI Catalyst Control Center' \
369 ccc_large.xpm System
370
371 # doc.
372 dohtml -r common/usr/share/doc/fglrx
373
374 if use acpi; then
375 doman common/usr/share/man/man8/atieventsd.8
376
377 pushd common/usr/share/doc/fglrx/examples/etc/acpi >/dev/null
378
379 exeinto /etc/acpi
380 doexe ati-powermode.sh
381 insinto /etc/acpi/events
382 doins events/*
383
384 popd >/dev/null
385 fi
386
387 # Done with the "source" tree. Install tools we rebuilt:
388 dobin extra/fgl_glxgears/fgl_fglxgears
389 newdoc extra/fgl_glxgears/README README.fgl_glxgears
390
391 dolib extra/lib/fglrx_gamma/*so*
392 newdoc extra/lib/fglrx_gamma/README README.libfglrx_gamma
393
394 dobin extra/programs/fglrx_gamma/fglrx_xgamma
395 doman extra/programs/fglrx_gamma/fglrx_xgamma.1
396 newdoc extra/programs/fglrx_gamma/README README.fglrx_gamma
397
398 # Gentoo-specific stuff:
399
400 if use acpi; then
401 newinitd "${FILESDIR}"/atieventsd.init atieventsd \
402 || die "Failed to install atieventsd.init.d"
403 echo 'ATIEVENTSDOPTS=""' > "${T}"/atieventsd.conf
404 newconfd "${T}"/atieventsd.conf atieventsd
405 fi
406 }
407
408 src_install-libs() {
409 if [[ "${ABI}" == "amd64" ]]; then
410 local pkglibdir=lib64
411 local MY_ARCH_DIR="${S}/arch/x86_64"
412 else
413 local pkglibdir=lib
414 local MY_ARCH_DIR="${S}/arch/x86"
415 fi
416 einfo "ati tree '${pkglibdir}' -> '$(get_libdir)' on system"
417
418 local ATI_ROOT=/usr/$(get_libdir)/opengl/ati
419 # To make sure we do not miss a spot when these change.
420 local libmajor=1 libminor=2
421 local libver=${libmajor}.${libminor}
422
423 # The GLX libraries
424 # (yes, this really is "lib" even on amd64/multilib --marienz)
425 exeinto ${ATI_ROOT}/lib
426 doexe "${MY_ARCH_DIR}"/usr/X11R6/${pkglibdir}/libGL.so.${libver}
427 dosym libGL.so.${libver} ${ATI_ROOT}/lib/libGL.so.${libmajor}
428 dosym libGL.so.${libver} ${ATI_ROOT}/lib/libGL.so
429
430 # Same as the xorg implementation (eselect opengl does not fall
431 # back to xorg-x11 if we omit this symlink, meaning no glx).
432 dosym ../xorg-x11/extensions ${ATI_ROOT}/extensions
433
434 # DRI modules, installed into the path used by recent versions of mesa.
435 exeinto /usr/$(get_libdir)/dri
436 doexe "${MY_ARCH_DIR}"/usr/X11R6/${pkglibdir}/modules/dri/fglrx_dri.so
437
438 # Make up a libGL.la. Ati does not provide one, but mesa does. If
439 # a (libtool-based) libfoo is built with libGL.la present a
440 # reference to it is put into libfoo.la, and compiling
441 # (libtool-based) things that link too libfoo.la will complain if
442 # libGL.la disappears. So if we do not make up a libGL.la
443 # switching between mesa and ati becomes painful.
444 #
445 # According to the libtool manual the "revision" should be updated
446 # whenever the code changes. We construct this from the version
447 # (8.37.6 becomes 83706).
448 local revision=$(printf '%d%02d%02d' $(get_version_components))
449 sed -e "s:\${libmajor}:${libmajor}:g" \
450 -e "s:\${libminor}:${libminor}:g" \
451 -e "s:\${libdir}:$(get_libdir):g" \
452 -e "s:\${revision}:${revision}:g" \
453 "${FILESDIR}"/libGL.la.in > "${D}"/${ATI_ROOT}/lib/libGL.la \
454 || die "sed failed to make libGL.la"
455
456 local envname="${T}"/04ati-dri-path
457 if [[ -n ${ABI} ]]; then
458 envname="${envname}-${ABI}"
459 fi
460 echo "LIBGL_DRIVERS_PATH=/usr/$(get_libdir)/dri" > "${envname}"
461 doenvd "${envname}"
462 }
463
464 pkg_postinst() {
465 ewarn "If you experience screen corruption with this driver, try putting"
466 ewarn ' Option "XAANoOffscreenPixmaps" "true"'
467 ewarn "in the Device Section of /etc/X11/xorg.conf."
468
469 /usr/bin/eselect opengl set --use-old ati
470
471 elog "To switch to ATI OpenGL, run \"eselect opengl set ati\""
472 elog "To change your xorg.conf you can use the bundled \"aticonfig\""
473 elog
474 elog "If you experience unexplained segmentation faults and kernel crashes"
475 elog "with this driver and multi-threaded applications such as wine,"
476 elog "set UseFastTLS in xorg.conf to either 0 or 1, but not 2."
477 elog
478 # (to get the LIBGL_DRIVERS_PATH)
479 elog "You will have to source /etc/profile (or logout and back in) for dri"
480 elog "to work, unless you previously had ati-drivers installed."
481 # DRM module
482 linux-mod_pkg_postinst
483 }
484
485 pkg_postrm() {
486 linux-mod_pkg_postrm
487 /usr/bin/eselect opengl set --use-old xorg-x11
488 }
489
490
491
492 --
493 gentoo-commits@g.o mailing list