summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarien Zwart <marienz@gentoo.org>2007-02-05 11:02:30 +0000
committerMarien Zwart <marienz@gentoo.org>2007-02-05 11:02:30 +0000
commit7c7078ea75b9ac8b6d8852bf9f923e1e240097d7 (patch)
treea4aac0cf8c47fc56e4b8db3577565f3334ed6939 /x11-drivers
parentsome enhansements necessary for extracting gnat locations for libs that need ... (diff)
downloadgentoo-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')
-rw-r--r--x11-drivers/ati-drivers/ChangeLog11
-rw-r--r--x11-drivers/ati-drivers/ati-drivers-8.28.8-r1.ebuild397
-rw-r--r--x11-drivers/ati-drivers/files/ati-drivers-8.28.8-linux-2.6.18.patch15
-rw-r--r--x11-drivers/ati-drivers/files/digest-ati-drivers-8.28.8-r13
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