diff options
author | Chris Bainbridge <chrb@gentoo.org> | 2005-07-29 12:05:19 +0000 |
---|---|---|
committer | Chris Bainbridge <chrb@gentoo.org> | 2005-07-29 12:05:19 +0000 |
commit | b8e5850e5a976503823584c876583e2083ab3aa4 (patch) | |
tree | 9435c0a1e047e87d1b0489e04c25e6039818c904 /media-video | |
parent | New version (latest from Debian testing). Install as make for BSD userland sy... (diff) | |
download | gentoo-2-b8e5850e5a976503823584c876583e2083ab3aa4.tar.gz gentoo-2-b8e5850e5a976503823584c876583e2083ab3aa4.tar.bz2 gentoo-2-b8e5850e5a976503823584c876583e2083ab3aa4.zip |
Remove 8.14.13-amd64.patch. Add fglrx-8.14.13-alt-2.6.12-agp.patch, ioctl32.patch, p1.patch. Bug #88767.
Diffstat (limited to 'media-video')
-rw-r--r-- | media-video/ati-drivers/ChangeLog | 10 | ||||
-rw-r--r-- | media-video/ati-drivers/ati-drivers-8.14.13-r2.ebuild | 253 | ||||
-rw-r--r-- | media-video/ati-drivers/files/fglrx-8.14.13-alt-2.6.12-agp.patch | 98 | ||||
-rw-r--r-- | media-video/ati-drivers/files/ioctl32.patch | 14 | ||||
-rw-r--r-- | media-video/ati-drivers/files/p1.patch | 66 |
5 files changed, 440 insertions, 1 deletions
diff --git a/media-video/ati-drivers/ChangeLog b/media-video/ati-drivers/ChangeLog index c12ae13ea184..6c2c3a555c3a 100644 --- a/media-video/ati-drivers/ChangeLog +++ b/media-video/ati-drivers/ChangeLog @@ -1,6 +1,14 @@ # ChangeLog for media-video/ati-drivers # Copyright 2002-2005 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/media-video/ati-drivers/ChangeLog,v 1.99 2005/06/25 09:19:44 lu_zero Exp $ +# $Header: /var/cvsroot/gentoo-x86/media-video/ati-drivers/ChangeLog,v 1.100 2005/07/29 12:05:19 chrb Exp $ + +*ati-drivers-8.14.13-r2 (29 Jul 2005) + + 29 Jul 2005; Chris Bainbridge <chrb@gentoo.org> +files/ioctl32.patch, + +files/fglrx-8.14.13-alt-2.6.12-agp.patch, +files/p1.patch, + +ati-drivers-8.14.13-r2.ebuild: + Remove 8.14.13-amd64.patch. Add fglrx-8.14.13-alt-2.6.12-agp.patch, + ioctl32.patch, p1.patch. Bug #88767. *ati-drivers-8.13.4 (25 Jun 2005) diff --git a/media-video/ati-drivers/ati-drivers-8.14.13-r2.ebuild b/media-video/ati-drivers/ati-drivers-8.14.13-r2.ebuild new file mode 100644 index 000000000000..d35a8b54e010 --- /dev/null +++ b/media-video/ati-drivers/ati-drivers-8.14.13-r2.ebuild @@ -0,0 +1,253 @@ +# Copyright 1999-2005 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/media-video/ati-drivers/ati-drivers-8.14.13-r2.ebuild,v 1.1 2005/07/29 12:05:19 chrb Exp $ + +IUSE="opengl" + +inherit eutils rpm multilib linux-info linux-mod toolchain-funcs + +DESCRIPTION="Ati precompiled drivers for r350, r300, r250 and r200 chipsets" +HOMEPAGE="http://www.ati.com" +SRC_URI="x86? ( http://www2.ati.com/drivers/linux/fglrx_6_8_0-${PV}-1.i386.rpm ) + amd64? ( http://www2.ati.com/drivers/linux/64bit/fglrx64_6_8_0-${PV}-1.x86_64.rpm )" + +LICENSE="ATI" +KEYWORDS="-* ~amd64 ~x86" + +RDEPEND=">=x11-base/xorg-x11-6.8.0 + >=x11-base/opengl-update-2.1_pre1" + +DEPEND=">=virtual/linux-sources-2.4 + ${RDEPEND}" + +PROVIDE="virtual/opengl" + +ATIBIN="${D}/opt/ati/bin" +RESTRICT="nostrip multilib-pkg-force" + +pkg_setup(){ + #check kernel and sets up KV_OBJ + linux-mod_pkg_setup + + 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 + ewarn "You don't have AGP support enabled, the direct rendering" + ewarn "will not work." + fi + ebegin "Checking for DRM support disabled" + ! linux_chkconfig_present DRM + eend $? + if [[ $? -ne 0 ]] ; then + ewarn "You have DRM support enabled, the direct rendering" + ewarn "will not work." + fi + + # Set up X11 implementation + X11_IMPLEM_P="$(best_version virtual/x11)" + X11_IMPLEM="${X11_IMPLEM_P%-[0-9]*}" + X11_IMPLEM="${X11_IMPLEM##*\/}" + einfo "X11 implementation is ${X11_IMPLEM}." +} + +src_unpack() { + local OLDBIN="/usr/X11R6/bin" + + cd ${WORKDIR} + rpm_src_unpack + + cd ${WORKDIR}/lib/modules/fglrx/build_mod + + #epatch ${FILESDIR}/fglrx-3.9.0-allocation.patch + + if kernel_is 2 6 + then + epatch ${FILESDIR}/fglrx-2.6.12-pci_name.patch + epatch ${FILESDIR}/fglrx-2.6.12-inter_module_get.patch + epatch ${FILESDIR}/fglrx-8.14.13-alt-2.6.12-agp.patch + fi + epatch ${FILESDIR}/8.8.25-via-amd64.patch + epatch ${FILESDIR}/8.8.25-smp.patch + epatch ${FILESDIR}/ioctl32.patch + epatch ${FILESDIR}/p1.patch + + rm -rf ${WORKDIR}/usr/X11R6/bin/fgl_glxgears +} + +src_compile() { + einfo "Building the DRM module..." + cd ${WORKDIR}/lib/modules/fglrx/build_mod + 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 || die "DRM module not built" + fi +} + +pkg_preinst() { + # Clean the dinamic 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_ROOT="/usr/lib/opengl/ati" + + cd ${WORKDIR} + + # DRM module + insinto /lib/modules/${KV_FULL}/video + # set_kvobj + doins ${WORKDIR}/lib/modules/fglrx/build_mod/fglrx.${KV_OBJ} + + 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 + insinto /etc/env.d + doins ${FILESDIR}/09ati + exeinto /opt/ati/bin + doexe usr/X11R6/bin/* + + #ati custom stuff + insinto /usr + doins -r ${WORKDIR}/usr/include +} + +src_install-libs() { + local pkglibdir=lib + local inslibdir=$(get_libdir) + + 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/${inslibdir}/opengl/ati" + + # The GLX libraries + exeinto ${ATI_ROOT}/lib + doexe ${WORKDIR}/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/${inslibdir}/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/" + else + local X11_DIR="/usr/X11R6/" + fi + + local X11_LIB_DIR="${X11_DIR}${inslibdir}" + + exeinto ${X11_LIB_DIR}/modules/drivers + doexe ${WORKDIR}/usr/X11R6/${pkglibdir}/modules/drivers/fglrx_drv.o + + exeinto ${X11_LIB_DIR}/modules/dri + doexe ${WORKDIR}/usr/X11R6/${pkglibdir}/modules/dri/fglrx_dri.so + doexe ${WORKDIR}/usr/X11R6/${pkglibdir}/modules/dri/atiogl_a_dri.so + + exeinto ${X11_LIB_DIR}/modules/linux + doexe ${WORKDIR}/usr/X11R6/${pkglibdir}/modules/linux/libfglrxdrm.a + cp -a ${WORKDIR}/usr/X11R6/${pkglibdir}/libfglrx_gamma.* \ + ${D}/${X11_LIB_DIR} + #Not the best place + insinto ${X11_DIR}/include/X11/extensions + doins ${WORKDIR}/usr/X11R6/include/X11/extensions/fglrx_gamma.h + +} + + +pkg_postinst() { +# Ebuild shouldn't do this automatically, just tell the user to do it, +# otherwise it messes up livecd/gamecd stuff ... (drobbins, 1 May 2003) +# if [ "${ROOT}" = "/" ] +# then +# /usr/sbin/opengl-update ati +# fi + + echo + einfo "To switch to ATI OpenGL, run \"opengl-update ati\"" + einfo "To change your XF86Config you can use the bundled \"fglrxconfig\"" + 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 + # DRM module + update-modules +} + +pkg_postrm() { + opengl-update --use-old xorg-x11 +} + diff --git a/media-video/ati-drivers/files/fglrx-8.14.13-alt-2.6.12-agp.patch b/media-video/ati-drivers/files/fglrx-8.14.13-alt-2.6.12-agp.patch new file mode 100644 index 000000000000..beda866414f5 --- /dev/null +++ b/media-video/ati-drivers/files/fglrx-8.14.13-alt-2.6.12-agp.patch @@ -0,0 +1,98 @@ +--- build_mod/firegl_public.c.alt-2.6.12-agp 2005-06-26 19:35:34 +0400 ++++ build_mod/firegl_public.c 2005-06-26 19:41:28 +0400 +@@ -1002,8 +1002,16 @@ void* ATI_API_CALL __ke_high_memory(void + return high_memory; + } + ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,12) ++/* Saved pci_dev pointer for the new agpgart API */ ++static struct pci_dev *fglrx_pci_dev; ++#endif ++ + int ATI_API_CALL __ke_pci_enable_device(__ke_pci_dev_t* dev) + { ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,12) ++ fglrx_pci_dev = (struct pci_dev *)dev; ++#endif + return (pci_enable_device( (struct pci_dev*)(void *)dev )); + } + +@@ -2865,6 +2873,68 @@ typedef struct { + int (*copy_info)(struct agp_kern_info *); + } drm_agp_t; + ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,12) ++/* ++ * Kernel 2.6.12 has new agpgart API with support for multiple AGP bridges, but ++ * the fglrx core does not know about this yet. For now, just emulate the old ++ * API. ++ */ ++ ++static struct agp_bridge_data *fglrx_agp_bridge; ++ ++static int fglrx_compat_agp_backend_acquire(void) ++{ ++ fglrx_agp_bridge = agp_backend_acquire(fglrx_pci_dev); ++ if (!fglrx_agp_bridge) ++ return -ENODEV; ++ return 0; ++} ++ ++static void fglrx_compat_agp_backend_release(void) ++{ ++ agp_backend_release(fglrx_agp_bridge); ++} ++ ++static struct agp_memory *fglrx_compat_agp_allocate_memory(size_t page_count, ++ u32 type) ++{ ++ return agp_allocate_memory(fglrx_agp_bridge, page_count, type); ++} ++ ++static void fglrx_compat_agp_enable(u32 mode) ++{ ++ agp_enable(fglrx_agp_bridge, mode); ++} ++ ++static int fglrx_compat_agp_copy_info(struct agp_kern_info *info) ++{ ++ if (!fglrx_agp_bridge) { ++ fglrx_agp_bridge = agp_find_bridge(fglrx_pci_dev); ++ if (!fglrx_agp_bridge) { ++ memset(info, 0, sizeof(struct agp_kern_info)); ++ info->chipset = NOT_SUPPORTED; ++ return -ENODEV; ++ } ++ } ++ return agp_copy_info(fglrx_agp_bridge, info); ++} ++ ++static const drm_agp_t drm_agp = { ++ &agp_free_memory, ++ &fglrx_compat_agp_allocate_memory, ++ &agp_bind_memory, ++ &agp_unbind_memory, ++ &fglrx_compat_agp_enable, ++ &fglrx_compat_agp_backend_acquire, ++ &fglrx_compat_agp_backend_release, ++ &fglrx_compat_agp_copy_info ++}; ++ ++#else /* LINUX_VERSION_CODE < KERNEL_VERSION(2,6,12) */ ++/* ++ * For 2.6.11 we can just use the agpgart functions directly. ++ */ ++ + static const drm_agp_t drm_agp = { + &agp_free_memory, + &agp_allocate_memory, +@@ -2875,6 +2945,9 @@ static const drm_agp_t drm_agp = { + &agp_backend_release, + &agp_copy_info + }; ++ ++#endif /* LINUX_VERSION_CODE < KERNEL_VERSION(2,6,12) */ ++ + #undef DRM_AGP_MODULE_GET + #undef DRM_AGP_MODULE_PUT + diff --git a/media-video/ati-drivers/files/ioctl32.patch b/media-video/ati-drivers/files/ioctl32.patch new file mode 100644 index 000000000000..f5ba9bd60982 --- /dev/null +++ b/media-video/ati-drivers/files/ioctl32.patch @@ -0,0 +1,14 @@ +--- firegl_public.c.orig 2005-06-18 17:42:41.000000000 -0300 ++++ firegl_public.c 2005-06-18 17:43:46.000000000 -0300 +@@ -116,7 +116,11 @@ + #endif + + #ifdef __x86_64__ ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,12) ++#include "asm/ioctl.h" ++#else + #include "asm/ioctl32.h" ++#endif + #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,2) + #include "linux/syscalls.h" + #endif diff --git a/media-video/ati-drivers/files/p1.patch b/media-video/ati-drivers/files/p1.patch new file mode 100644 index 000000000000..b291a3a7219c --- /dev/null +++ b/media-video/ati-drivers/files/p1.patch @@ -0,0 +1,66 @@ + + +2005-03-02 22:32 diff -lu or.c agpgart_be.c Page 1 + + +--- or.c 2005-01-31 19:50:00.000000000 +0200 ++++ agpgart_be.c 2005-03-02 22:19:25.000000000 +0200 +@@ -261,6 +261,12 @@ + #define firegl_pci_find_class(class,from) pci_find_class(class,from) + #endif + ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,11) ++#define firegl_pci_find_class(class,from) pci_get_class(class,from) ++#else ++#define firegl_pci_find_class(class,from) pci_find_class(class,from) ++#endif ++ + int agp_backend_acquire(void) + { + if (agp_bridge.type == NOT_SUPPORTED) { +@@ -4075,6 +4081,13 @@ + } + } + } ++ ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,11) ++ // the reference count has been increased in agp_backend_initialize. ++ if (device) ++ pci_dev_put(device); ++#endif ++ + /* + * PASS3: Figure out the 8X/4X setting and enable the + * target (our motherboard chipset). +@@ -5283,6 +5296,12 @@ + pci_dev_put(device); + #endif + ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,11) ++ // the reference count has been increased in agp_backend_initialize. ++ if (device) ++ pci_dev_put(device); ++#endif ++ + return(0); /* success */ + } + +@@ -7428,6 +7447,11 @@ + return rc; + } + ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,11) ++ // decrease the reference count. ++ pci_dev_put(agp_bridge.dev); ++#endif ++ + if (agp_bridge.needs_scratch_page == TRUE) { + agp_bridge.scratch_page = agp_bridge.agp_alloc_page(); + + + + + + + + |