diff options
author | Marien Zwart <marienz@gentoo.org> | 2007-02-05 11:02:30 +0000 |
---|---|---|
committer | Marien Zwart <marienz@gentoo.org> | 2007-02-05 11:02:30 +0000 |
commit | 7c7078ea75b9ac8b6d8852bf9f923e1e240097d7 (patch) | |
tree | a4aac0cf8c47fc56e4b8db3577565f3334ed6939 /x11-drivers | |
parent | some enhansements necessary for extracting gnat locations for libs that need ... (diff) | |
download | gentoo-2-7c7078ea75b9ac8b6d8852bf9f923e1e240097d7.tar.gz gentoo-2-7c7078ea75b9ac8b6d8852bf9f923e1e240097d7.tar.bz2 gentoo-2-7c7078ea75b9ac8b6d8852bf9f923e1e240097d7.zip |
Revision bump to 8.28.8 (last version that works with a couple of chipsets) to compile with older kernels thanks to a patch from alonbl@gentoo.org (bug #148424). Some minor cleanup and RESTRICT=stricter fixes.
(Portage version: 2.1.2-r7)
Diffstat (limited to 'x11-drivers')
4 files changed, 425 insertions, 1 deletions
diff --git a/x11-drivers/ati-drivers/ChangeLog b/x11-drivers/ati-drivers/ChangeLog index 89b9b3778071..8591a33cf2af 100644 --- a/x11-drivers/ati-drivers/ChangeLog +++ b/x11-drivers/ati-drivers/ChangeLog @@ -1,6 +1,15 @@ # ChangeLog for x11-drivers/ati-drivers # Copyright 2002-2007 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/x11-drivers/ati-drivers/ChangeLog,v 1.58 2007/02/05 10:01:57 marienz Exp $ +# $Header: /var/cvsroot/gentoo-x86/x11-drivers/ati-drivers/ChangeLog,v 1.59 2007/02/05 11:02:29 marienz Exp $ + +*ati-drivers-8.28.8-r1 (05 Feb 2007) + + 05 Feb 2007; Marien Zwart <marienz@gentoo.org> + +files/ati-drivers-8.28.8-linux-2.6.18.patch, + +ati-drivers-8.28.8-r1.ebuild: + Revision bump to 8.28.8 (last version that works with a couple of chipsets) + to compile with older kernels thanks to a patch from alonbl@gentoo.org (bug + #148424). Some minor cleanup and RESTRICT=stricter fixes. *ati-drivers-8.33.6 (05 Feb 2007) diff --git a/x11-drivers/ati-drivers/ati-drivers-8.28.8-r1.ebuild b/x11-drivers/ati-drivers/ati-drivers-8.28.8-r1.ebuild new file mode 100644 index 000000000000..331cfdaa0e07 --- /dev/null +++ b/x11-drivers/ati-drivers/ati-drivers-8.28.8-r1.ebuild @@ -0,0 +1,397 @@ +# Copyright 1999-2007 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/x11-drivers/ati-drivers/ati-drivers-8.28.8-r1.ebuild,v 1.1 2007/02/05 11:02:29 marienz Exp $ + +IUSE="acpi doc opengl" + +inherit eutils rpm multilib linux-mod linux-info toolchain-funcs + +DESCRIPTION="Ati precompiled drivers for r350, r300, r250 and r200 chipsets" +HOMEPAGE="http://www.ati.com" +ATI_URL="https://a248.e.akamai.net/f/674/9206/0/www2.ati.com/drivers/linux/" +SRC_URI="${ATI_URL}/ati-driver-installer-${PV}.run" + +LICENSE="ATI" +KEYWORDS="~amd64 ~x86" + +RDEPEND="|| ( x11-base/xorg-server virtual/x11 ) + app-admin/eselect-opengl + || ( sys-libs/libstdc++-v3 =sys-devel/gcc-3.3* ) + acpi? ( + || ( x11-apps/xauth virtual/x11 ) + sys-power/acpid + )" + +DEPEND=">=virtual/linux-sources-2.4 + ${RDEPEND}" + +PROVIDE="virtual/opengl" + +ATIBIN="${D}/opt/ati/bin" +RESTRICT="nostrip" + +MODULE_NAMES="fglrx(video:${WORKDIR}/common/lib/modules/fglrx/build_mod)" + +QA_EXECSTACK_x86="usr/lib/xorg/modules/dri/fglrx_dri.so + usr/lib/opengl/ati/lib/libGL.so.1.2" +QA_EXECSTACK_amd64="usr/lib64/xorg/modules/dri/fglrx_dri.so usr/lib32/xorg/modules/dri/fglrx_dri.so" +QA_TEXTRELS_x86="usr/lib/xorg/modules/dri/fglrx_dri.so + usr/lib/opengl/ati/lib/libGL.so.1.2 + usr/lib/xorg/modules/dri/atiogl_a_dri.so" +QA_TEXTRELS_amd64="usr/lib64/xorg/modules/dri/fglrx_dri.so usr/lib32/opengl/ati/lib/libGL.so.1.2 usr/lib32/xorg/modules/dri/fglrx_dri.so usr/lib32/xorg/modules/dri/atiogl_a_dri.so" + +choose_driver_paths() { + ARCH_DIR="${WORKDIR}/arch" + COMMON_DIR="${WORKDIR}/common" + + #new modular X paths, 0 is a workaround. + if has_version "x11-base/xorg-server"; then + if [ "$(get_version_component_range 1 ${X11_IMPLEM_V})" = 1 ] && + [ "$(get_version_component_range 2 ${X11_IMPLEM_V})" = 0 ] && + [ "$(get_version_component_range 3 ${X11_IMPLEM_V})" = 99 ] || + [ "$(get_version_component_range 2 ${X11_IMPLEM_V})" != 0 ] + then + BASE_DIR="${WORKDIR}/x710" + else + BASE_DIR="${WORKDIR}/x690" + fi + xlibdir="xorg" + else + BASE_DIR="${WORKDIR}/x$(get_version_component_range 1 ${X11_IMPLEM_V})" + xlibdir="" + + # Determine if we are facing X.org 6.8.99 aka 6.9 + if [ "$(get_version_component_range 1 ${X11_IMPLEM_V})" = 6 ] && + [ "$(get_version_component_range 2 ${X11_IMPLEM_V})" = 8 ] && + [ "$(get_version_component_range 3 ${X11_IMPLEM_V})" = 99 ] + then + BASE_DIR="${BASE_DIR}90" + else + BASE_DIR="${BASE_DIR}$(get_version_component_range 2 ${X11_IMPLEM_V})0" + fi + fi + + if use amd64 ; then + BASE_DIR="${BASE_DIR}_64a" + ARCH_DIR="${ARCH_DIR}/x86_64" + else + ARCH_DIR="${ARCH_DIR}/x86" + fi +} + +pkg_setup(){ + #check kernel and sets up KV_OBJ + linux-mod_pkg_setup + local agp + ebegin "Checking for MTRR support enabled" + linux_chkconfig_present MTRR + eend $? + if [[ $? -ne 0 ]] ; then + ewarn "You don't have MTRR support enabled, the direct rendering" + ewarn "will not work." + fi + + ebegin "Checking for AGP support enabled" + linux_chkconfig_present AGP + eend $? + + if [[ $? -ne 0 ]] ; then + + ebegin "Checking for PCI Express support enabled" + linux_chkconfig_present PCIEPORTBUS + eend $? + + if [[ $? -ne 0 ]] ; then + ewarn "If you don't have either AGP or PCI Express support enabled, direct rendering" + ewarn "could work only using the internal support." + fi + + fi + ebegin "Checking for DRM support disabled" + ! linux_chkconfig_builtin DRM + eend $? + if [[ $? -ne 0 ]] ; then + ewarn "You have DRM support enabled builtin, the direct rendering" + ewarn "will not work." + fi + + # Set up X11 implementation + if has_version "x11-base/xorg-server"; then + X11_IMPLEM=xorg-x11 + X11_IMPLEM_V="$(best_version x11-base/xorg-server)" + X11_IMPLEM_V="${X11_IMPLEM_V/x11-base\/xorg-server-/}" + elif has_version "<x11-base/xorg-x11-6.8.99"; then + X11_IMPLEM=xorg-x11 + X11_IMPLEM_V="$(best_version x11-base/xorg-x11)" + X11_IMPLEM_V="${X11_IMPLEM_V/${X11_IMPLEM}-/}" + X11_IMPLEM_V="${X11_IMPLEM_V##*\/}" + else + X11_IMPLEM_P="$(best_version virtual/x11)" + X11_IMPLEM="${X11_IMPLEM_P%-[0-9]*}" + X11_IMPLEM="${X11_IMPLEM##*\/}" + X11_IMPLEM_V="${X11_IMPLEM_P/${X11_IMPLEM}-/}" + X11_IMPLEM_V="${X11_IMPLEM_V##*\/}" + fi + einfo "X11 implementation is ${X11_IMPLEM}." + choose_driver_paths +} + +src_unpack() { + local OLDBIN="/usr/X11R6/bin" + + ebegin "Unpacking Ati drivers" + sh ${DISTDIR}/${A} --extract ${WORKDIR} &> /dev/null + eend $? || die "unpack failed" + + rm -rf ${ARCH_DIR}/usr/X11R6/bin/{fgl_glxgears,fireglcontrolpanel} + + if use acpi + then + sed -i \ + -e "s/\/var\/lib\/xdm\/authdir/\/etc\/X11\/xdm\/authdir/" \ + -e "s/\/var\/lib\/gdm/\/var\/gdm/" \ + -e "s/#ffff#/#ffff##:.*MIT-MAGIC-COOKIE/" \ + "${WORKDIR}/common/etc/ati/authatieventsd.sh" \ + || die "sed failed." + + cd ${WORKDIR} + epatch ${FILESDIR}/ati-powermode.sh.patch + fi + + epatch "${FILESDIR}/${P}-linux-2.6.18.patch" + epatch "${FILESDIR}/ati-drivers-2.6.19.patch" +} + +src_compile() { + einfo "Building the DRM module..." + cd ${WORKDIR}/common/lib/modules/fglrx/build_mod + ln -s \ + ${ARCH_DIR}/lib/modules/fglrx/build_mod/libfglrx_ip.a.GCC$(gcc-major-version) \ + || die "cannot find precompiled core" + + if kernel_is 2 6 + then + set_arch_to_kernel + addwrite "/usr/src/${FK}" + cp 2.6.x/Makefile . + export _POSIX2_VERSION="199209" + if use_m ; + then + make -C ${KV_DIR} M="`pwd`" GCC_VER_MAJ=$(gcc-major-version) \ + modules || ewarn "DRM module not built" + else + make -C ${KV_DIR} SUBDIRS="`pwd`" GCC_VER_MAJ=$(gcc-major-version) \ + modules || ewarn "DRM module not built" + fi + set_arch_to_portage + else + export _POSIX2_VERSION="199209" + # That is the dirty way to avoid the id -u check + sed -e 's:`id -u`:0:' \ + -e "s:\`uname -r\`:${KV_FULL}:" \ + -i make.sh + chmod +x make.sh + ./make.sh || ewarn "DRM module not built" + fi +} + +pkg_preinst() { + # Clean the dynamic libGL stuff's home to ensure + # we don't have stale libs floating around ... + if [ -d "${ROOT}/usr/lib/opengl/ati" ] + then + rm -rf ${ROOT}/usr/lib/opengl/ati/* + fi +} + +src_install() { + local ATI_LIBGL_PATH="" + cd ${WORKDIR}/common/lib/modules/fglrx/build_mod + linux-mod_src_install + + cd ${WORKDIR} + + local native_dir + use x86 && native_dir="lib" + use amd64 && native_dir="lib64" + + # Install the libs + # MULTILIB-CLEANUP: Fix this when FEATURES=multilib-pkg is in portage + local MLTEST=$(type dyn_unpack) + if [ "${MLTEST/set_abi/}" = "${MLTEST}" ] && has_multilib_profile; then + local OABI=${ABI} + for ABI in $(get_install_abis); do + src_install-libs + done + ABI=${OABI} + unset OABI + elif has_multilib_profile; then + src_install-libs + elif use amd64; then + src_install-libs lib $(get_multilibdir) + src_install-libs lib64 $(get_libdir) + else + src_install-libs + fi &> /dev/null + + #apps, man pages, and conf files + exeinto /opt/ati/bin + doexe ${ARCH_DIR}/usr/X11R6/bin/* + if use acpi + then + exeinto /opt/ati/sbin + doexe ${ARCH_DIR}/usr/sbin/* + insinto /opt/ati/man/man8 + doins common/usr/share/man/man8/* + newinitd ${FILESDIR}/atieventsd.rc6 atieventsd + dodir /etc/conf.d + echo 'ATIEVENTSDOPTS=""' > ${D}/etc/conf.d/atieventsd + fi + #ati custom stuff + insinto /usr + doins -r ${WORKDIR}/common/usr/include + + #documentation + if use doc; then + dodir /usr/share/doc/fglrx + cp -pPR common/usr/share/doc/fglrx/* \ + ${D}/usr/share/doc/fglrx + fi + + #env.d entry + cp ${FILESDIR}/09ati ${T}/ + + if use acpi + then + local ATIETC="${WORKDIR}/common/usr/share/doc/fglrx/examples/etc/acpi" + exeinto /etc/acpi + doexe ${ATIETC}/ati-powermode.sh + insinto /etc/acpi/events + doins ${ATIETC}/events/a-ac-aticonfig + doins ${ATIETC}/events/a-lid-aticonfig + fi + + #Work around hardcoded path in 32bit libGL.so on amd64, bug 101539 + if has_multilib_profile && [ $(get_abi_LIBDIR x86) = "lib32" ] ; then + ATI_LIBGL_PATH="/usr/lib/dri:/usr/$(get_libdir)/dri:/usr/lib32/${xlibdir}/modules/dri/:/usr/$(get_libdir)/${xlibdir}/modules/dri" + fi + cat >>${T}/09ati <<EOF + +LIBGL_DRIVERS_PATH="\$LIBGL_DRIVERS_PATH:$ATI_LIBGL_PATH" +EOF + + doenvd ${T}/09ati +} + +src_install-libs() { + local pkglibdir=lib + local inslibdir="$(get_libdir)/${xlibdir}" + ATI_LIBGL_PATH="${ATI_LIBGL_PATH}:/usr/$(get_libdir)/${xlibdir}/modules/dri" + if [ ${#} -eq 2 ]; then + pkglibdir=${1} + inslibdir=${2} + elif has_multilib_profile && [ "${ABI}" == "amd64" ]; then + pkglibdir=lib64 + fi + + einfo "${pkglibdir} -> ${inslibdir}" + + local ATI_ROOT="/usr/$(get_libdir)/opengl/ati" + + # The GLX libraries + exeinto ${ATI_ROOT}/lib + doexe ${ARCH_DIR}/usr/X11R6/${pkglibdir}/libGL.so.1.2 + dosym libGL.so.1.2 ${ATI_ROOT}/lib/libGL.so.1 + dosym libGL.so.1.2 ${ATI_ROOT}/lib/libGL.so + + # Don't do this... see bug #47598 + #dosym libGL.so.1.2 ${ATI_ROOT}/lib/libMesaGL.so + + # same as the xorg implementation + dosym ../${X11_IMPLEM}/extensions ${ATI_ROOT}/extensions + #Workaround + if use opengl ; then + sed -e "s:libdir=.*:libdir=${ATI_ROOT}/lib:" \ + /usr/$(get_libdir)/opengl/${X11_IMPLEM}/lib/libGL.la \ + > $D/${ATI_ROOT}/lib/libGL.la + dosym ../${X11_IMPLEM}/include ${ATI_ROOT}/include + fi + # X and DRI driver + if has_version "<x11-base/xorg-x11-6.8.0-r4" + then + local X11_DIR="/usr/X11R6/" + else + local X11_DIR="/usr/" + fi + + local X11_LIB_DIR="${X11_DIR}${inslibdir}" + + exeinto ${X11_LIB_DIR}/modules/drivers + # In X.org 6.8.99 / 6.9 this is a .so + doexe ${BASE_DIR}/usr/X11R6/${pkglibdir}/modules/drivers/fglrx_drv.*o + + exeinto ${X11_LIB_DIR}/modules/dri + doexe ${ARCH_DIR}/usr/X11R6/${pkglibdir}/modules/dri/fglrx_dri.so + doexe ${ARCH_DIR}/usr/X11R6/${pkglibdir}/modules/dri/atiogl_a_dri.so + + exeinto ${X11_LIB_DIR}/modules/linux + # In X.org 6.8.99 / 6.9 this is a .so + if has_version ">=x11-base/xorg-x11-6.8.99" || \ + has_version "x11-base/xorg-server" + then + doexe ${BASE_DIR}/usr/X11R6/${pkglibdir}/modules/linux/libfglrxdrm.so + else + doexe ${BASE_DIR}/usr/X11R6/${pkglibdir}/modules/linux/libfglrxdrm.a + fi + + if has_version ">=x11-base/xorg-x11-6.8.99" || \ + has_version "x11-base/xorg-server" + then + cp -pPR ${ARCH_DIR}/usr/X11R6/${pkglibdir}/lib{fglrx_*,aticonfig} \ + ${D}/usr/$(get_libdir) + else + cp -pPR ${ARCH_DIR}/usr/X11R6/${pkglibdir}/lib{fglrx_*,aticonfig.a} \ + ${D}/usr/$(get_libdir) + fi + + #Not the best place + insinto ${X11_DIR}/include/X11/extensions + doins ${COMMON_DIR}/usr/X11R6/include/X11/extensions/fglrx_gamma.h + + # misc ati configuration files for /etc + dodir /etc + cp -pP ${COMMON_DIR}/etc/fglrxprofiles.csv ${D}/etc/ + cp -pP ${COMMON_DIR}/etc/fglrxrc ${D}/etc/ + dodir /etc/ati + cp -pP ${COMMON_DIR}/etc/ati/logo* ${D}/etc/ati/ + if use acpi + then + cp -pP ${COMMON_DIR}/etc/ati/authatieventsd.sh ${D}/etc/ati/ + fi +} + + +pkg_postinst() { + /usr/bin/eselect opengl set --use-old ati + + echo + einfo "To switch to ATI OpenGL, run \"eselect opengl set ati\"" + einfo "To change your xorg.conf you can use the bundled \"aticonfig\"" + if use !opengl ; then + ewarn "You don't have the opengl useflag enabled, you won't be able to build" + ewarn "opengl applications nor use opengl driver features, if that isn't" + ewarn "the intended behaviour please add opengl to your useflag and issue" + ewarn "# emerge -Nu ati-drivers" + fi + echo + einfo "If you experience unexplained segmentation faults and kernel crashes" + einfo "with this driver and multi-threaded applications such as wine," + einfo "set UseFastTLS in xorg.conf to either 0 or 1, but not 2." + # DRM module + linux-mod_pkg_postinst +} + +pkg_postrm() { + linux-mod_pkg_postrm + /usr/bin/eselect opengl set --use-old xorg-x11 +} diff --git a/x11-drivers/ati-drivers/files/ati-drivers-8.28.8-linux-2.6.18.patch b/x11-drivers/ati-drivers/files/ati-drivers-8.28.8-linux-2.6.18.patch new file mode 100644 index 000000000000..d9dc58eb4370 --- /dev/null +++ b/x11-drivers/ati-drivers/files/ati-drivers-8.28.8-linux-2.6.18.patch @@ -0,0 +1,15 @@ +diff -urNp ati-driver-8.28.8.old/common/lib/modules/fglrx/build_mod/firegl_public.c ati-driver-8.28.8/common/lib/modules/fglrx/build_mod/firegl_public.c +--- ati-driver-8.28.8.old/common/lib/modules/fglrx/build_mod/firegl_public.c 2006-08-17 19:10:13.000000000 +0300 ++++ ati-driver-8.28.8/common/lib/modules/fglrx/build_mod/firegl_public.c 2006-09-21 10:47:02.000000000 +0300 +@@ -23,6 +23,11 @@ + + // ============================================================ + #include <linux/version.h> ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,18) ++/* No longer valid */ ++#define VM_SHM 0 ++#include <linux/utsrelease.h> ++#endif + #ifdef MODVERSIONS + #if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,71) + #include <linux/modversions.h> diff --git a/x11-drivers/ati-drivers/files/digest-ati-drivers-8.28.8-r1 b/x11-drivers/ati-drivers/files/digest-ati-drivers-8.28.8-r1 new file mode 100644 index 000000000000..efb57e52df1a --- /dev/null +++ b/x11-drivers/ati-drivers/files/digest-ati-drivers-8.28.8-r1 @@ -0,0 +1,3 @@ +MD5 58189d7cc3625e399b1a434df893100f ati-driver-installer-8.28.8.run 53989404 +RMD160 0ea23d37c0e203fc8acc5bd7e100bdf78c05745f ati-driver-installer-8.28.8.run 53989404 +SHA256 5eaeab1b906a0b8a30f88ab733390ecbc3ebeaa0c04c0368b757b99c31919e77 ati-driver-installer-8.28.8.run 53989404 |