x11-drivers/ati-drivers-8.600-r10 - Newest ATI drivers (From Ubuntu) with Xorg-server 1.6

support. Drops support for cards < r500.


git-svn-id: http://svn.sabayonlinux.org/overlay@2863 d7aec97c-591d-0410-af39-a8856400b30a
This commit is contained in:
v00d00
2009-03-20 20:38:19 +00:00
parent ddadc8fedc
commit c1911bc9d7
2 changed files with 450 additions and 0 deletions
+3
View File
@@ -24,8 +24,11 @@ DIST ati-driver-installer-8-10-x86.x86_64.run 67255978 RMD160 e2bc1760a2b6b6c3e4
DIST ati-driver-installer-8-11-x86.x86_64.run 75818703 RMD160 7fdda8fc18f6b19b8ce526c0a136291c873a7907 SHA1 75f9775f3df412617aa2897ef8d75e10c9fc9017 SHA256 d63d1a2d16eff0160d9007b6a1b6323d1b3ff34841afaa36a490c5bd6c813cee
DIST ati-driver-installer-9-1-x86.x86_64.run 82398155 RMD160 b7d047131c4c3dc80e8d025f312a417605c75a02 SHA1 d7a23a74bc0209c54f6a24e1622e496a6cbeda07 SHA256 178ceffc6ad195bd5b210b2531180a6c0c8bdfa69f2dbfa9ac438170ca0f299e
DIST ati-driver-installer-9.2-x86.x86_64.run 83286827 RMD160 fe98a9b39dbf27c7350afd4767c793826e94c53d SHA1 3ae672145f60f0348c44a7dfef98ec730a51fbf5 SHA256 7a611b83a3a8937e3511a02a730f8c7fb0b89d9070f4fa4de4e7fa9aeada421a
DIST fglrx-installer_8.600.orig.tar.gz 56165375 RMD160 0fd8a238ae9b8b2157c0154a085abbb984efa878 SHA1 24feebad49b82dc4a657ae13302b7a1298f73736 SHA256 44f543bb68a587ec524352de02c70e1af2ce468748402354fd7c7047b942ee6a
EBUILD ati-drivers-8.542-r10.ebuild 15340 RMD160 cf3aa6586ccebd532172b14a6787379f2a395b1f SHA1 3de87f52a8cc6cb44bdb9374497100ae9a9e3fb0 SHA256 b3e3786611e22d2826cdcc7ee6c8fcb407afc59676fa240fd5b62f61b5412de9
EBUILD ati-drivers-8.552-r10.ebuild 15256 RMD160 854a7a9b2fc584ccb90f59335ed6323b54a3a0e8 SHA1 5ae707d1a4b47baaf3d0d74dbad859282cbc9e02 SHA256 1dd7974cf3da83558611a564af738c98e21795f83893842b5d4bb3701c8ab7c5
EBUILD ati-drivers-8.552-r11.ebuild 15490 RMD160 6591720b610290fbd116dd98643978e3140a900a SHA1 428e6d8e7b05b9b683d18f41207d9efea0e7821b SHA256 07e6d44d7b0b04d7e31e582442117f10a53cb944989f10ff84e7ba7b725f9953
EBUILD ati-drivers-8.573-r10.ebuild 15168 RMD160 58f98e17d3c2047b4570481ba8f40a50aa21c686 SHA1 bf7b0012242ba5d076c8b844b3fd4aff3e62c1f7 SHA256 6168a02062a82e3c88311b671595225185cb3e32fce27b2b44e31e37512ae44e
EBUILD ati-drivers-8.582-r10.ebuild 15166 RMD160 296cf62bc89b3eb461ce0aa8c25c3a524c44e336 SHA1 555bc27743df48b97b0d9c306a77502c8625976d SHA256 8aabdfe9e9dd853daf883b16f3113ef00219baa163a4dcc2370deab3f7f4c2b4
EBUILD ati-drivers-8.600-r10.ebuild 14797 RMD160 b1283adb7f60650cf0f2114a82117322ae9f1f04 SHA1 2c9508046884e0ef014e59cba0b88ec6aef249ee SHA256 18b156827edc9edeb9faeaebde6c18ff2377a7a7ca4a83f4d1463c0b4a1da612
MISC ati-drivers-8.600.ebuild~ 14504 RMD160 6bffb983b8e98ca90ddb3fe87532f96f8b100241 SHA1 142472aa848292daad4a062c8c9f873b1a41113a SHA256 991f252bfee9daadf16b6b4b2d4532453a76224e01ffc15590779c8390641536
@@ -0,0 +1,447 @@
# Copyright 1999-2009 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.573-r1.ebuild,v 1.1 2009/02/05 04:26:22 je_fro Exp $
IUSE="acpi debug"
inherit eutils multilib linux-mod toolchain-funcs versionator
DESCRIPTION="Ati precompiled drivers for recent chipsets"
HOMEPAGE="http://www.ati.com"
SRC_URI="http://archive.ubuntu.com/ubuntu/pool/restricted/f/fglrx-installer/fglrx-installer_8.600.orig.tar.gz"
LICENSE="AMD GPL-2 QPL-1.0 as-is"
KEYWORDS="~amd64 ~x86"
# The portage dep is for COLON_SEPARATED support in env-update.
# The eselect dep (>=1.0.9) is for COLON_SEPARATED in eselect env update.
RDEPEND=">=x11-base/xorg-server-1.5
!x11-apps/ati-drivers-extra
>=app-admin/eselect-1.0.9
app-admin/eselect-opengl
sys-libs/libstdc++-v3
amd64? ( app-emulation/emul-linux-x86-xlibs )
acpi? (
x11-apps/xauth
sys-power/acpid
)
x11-libs/libXrandr
>=sys-apps/portage-2.1.1-r1"
DEPEND="${RDEPEND}
x11-proto/xf86miscproto
x11-proto/xf86vidmodeproto
x11-proto/inputproto
!<x11-drivers/ati-drivers-8.552-r1"
EMULTILIB_PKG="true"
RESTRICT="binchecks"
S="${WORKDIR}"
pkg_setup() {
# Define module dir.
MODULE_DIR="${S}/lib/modules/fglrx/build_mod"
#check kernel and sets up KV_OBJ
MODULE_NAMES="fglrx(video:${S}/lib/modules/fglrx/build_mod/2.6.x)"
BUILD_TARGETS="kmod_build"
linux-mod_pkg_setup
BUILD_PARAMS="GCC_VER_MAJ=$(gcc-major-version) KVER=${KV_FULL} KDIR=${KV_DIR}"
if ! kernel_is 2 6; then
eerror "Need a 2.6 kernel to compile against!"
die "Need a 2.6 kernel to compile against!"
fi
if kernel_is ge 2 6 25 && linux_chkconfig_present PREEMPT_RCU; then
die "${P} is not compatible with RCU Preemption (bug #223281), please disable it"
fi
if kernel_is ge 2 6 26 && ! linux_chkconfig_present UNUSED_SYMBOLS; then
ewarn "You have to Enable unused/obsolete exported symbols in Kernel hacking section of kernel config for fglrx to load"
fi
if kernel_is ge 2 6 24 && ! linux_chkconfig_present PCI_LEGACY; then
eerror "${P} requires support for pci_find_slot."
die "${P} requires support for pci_find_slot."
fi
if ! linux_chkconfig_present MTRR; then
ewarn "You don't have MTRR support enabled, the direct rendering will not work."
fi
if linux_chkconfig_builtin DRM; then
ewarn "You have DRM support enabled builtin, the direct rendering will not work."
fi
if ! linux_chkconfig_present AGP && \
! linux_chkconfig_present PCIEPORTBUS; then
ewarn "You need AGP and/or PCI Express support for direct rendering to work."
fi
if linux_chkconfig_present PARAVIRT; then
eerror "The current ati-drivers don't compile when having"
eerror "paravirtualization active due to GPL symbol export"
eerror "restrictions."
eerror "Please disable it:"
eerror " CONFIG_PARAVIRT=n"
eerror "in /usr/src/linux/.config or"
eerror " Processor type and features -->"
eerror " [ ] Paravirtualization support (EXPERIMENTAL)"
eerror "in 'menuconfig'"
die "CONFIG_PARAVIRT enabled"
fi
if ! linux_chkconfig_present MAGIC_SYSRQ; then
eerror "You need MAGIC_SYSRQ enabled in order to build ati-drivers"
die "CONFIG_MAGIC_SYSRQ disabled"
fi
# Only support xorg-server >=1.5
BASE_DIR="${S}/x740"
if ! linux_chkconfig_present PCI_MSI; then
eerror "You need PCI_MSI enabled in order to build ati-drivers"
die "CONFIG_PCI_MSI disabled"
fi
# This is used like $(get_libdir) for paths in ati's package.
if use amd64 ; then
MY_BASE_DIR="${BASE_DIR}_64a"
PKG_LIBDIR=lib64
ARCH_DIR="${S}/arch/x86_64"
else
MY_BASE_DIR="${BASE_DIR}"
PKG_LIBDIR=lib
ARCH_DIR="${S}/arch/x86"
fi
}
src_unpack() {
unpack ${A}
cd "${S}"
epatch "${FILESDIR}"/8.600/ati-drivers-xen-8.600.patch || die "epatch failed"
# These are the userspace utilities that we also have source for.
# We rebuild these later.
rm \
"${ARCH_DIR}"/usr/X11R6/bin/{fgl_glxgears,fglrx_xgamma} \
"${ARCH_DIR}"/usr/X11R6/${PKG_LIBDIR}/libfglrx_gamma* \
|| die "bin rm failed"
if use debug; then
# Enable debug mode in the Source Code.
sed -i '/^#define DRM_DEBUG_CODE/s/0/1/' \
"${MODULE_DIR}/firegl_public.c" \
|| die "Failed to enable debug output."
fi
if use acpi; then
sed -i \
-e "s:/var/lib/xdm/authdir/authfiles/:/var/run/xauth/:" \
-e "s:/var/lib/gdm/:/var/gdm/:" \
"${S}/etc/ati/authatieventsd.sh" \
|| die "sed failed."
# Since "who" is in coreutils, we're using that one instead of "finger".
sed -i -e 's:finger:who:' \
"${S}/usr/share/doc/fglrx/examples/etc/acpi/ati-powermode.sh" \
|| die "Replacing 'finger' with 'who' failed."
# Adjust paths in the script from /usr/X11R6/bin/ to /opt/bin/ and
# add funktion to detect default state.
epatch "${FILESDIR}"/${PV}/ati-powermode-opt-path-2.patch
fi
pushd ${MODULE_DIR} >/dev/null
ln -s "${ARCH_DIR}"/lib/modules/fglrx/build_mod/libfglrx_ip.a.GCC$(gcc-major-version) \
|| die "symlinking precompiled core failed"
convert_to_m 2.6.x/Makefile || die "convert_to_m failed"
# When built with ati's make.sh it defines a bunch of macros if
# certain .config values are set, falling back to less reliable
# detection methods if linux/autoconf.h is not available. We
# simply use the linux/autoconf.h settings directly, bypassing the
# detection script.
sed -i -e 's/__SMP__/CONFIG_SMP/' *.c *h || die "SMP sed failed"
sed -i -e 's/ifdef MODVERSIONS/ifdef CONFIG_MODVERSIONS/' *.c *.h \
|| die "MODVERSIONS sed failed"
popd >/dev/null
mkdir extra || die "mkdir failed"
cd extra
unpack ./../usr/src/ati/fglrx_sample_source.tgz
sed -i -e 's:include/extensions/extutil.h:X11/extensions/extutil.h:' \
lib/fglrx_gamma/fglrx_gamma.c || die "include fixup failed"
# Add a category.
mv programs/fglrx_gamma/fglrx_xgamma.{man,1} || die "man mv failed"
cd ..
}
src_compile() {
linux-mod_src_compile
einfo "Building fgl_glxgears"
cd "${S}"/extra/fgl_glxgears
# These extra libs/utils either have an Imakefile that does not
# work very well without tweaking or a Makefile ignoring CFLAGS
# and the like. We bypass those.
# The -DUSE_GLU is needed to compile using nvidia headers
# according to a comment in ati-drivers-extra-8.33.6.ebuild.
"$(tc-getCC)" -o fgl_glxgears ${CFLAGS} ${LDFLAGS} -DUSE_GLU \
-I"${S}"/usr/include fgl_glxgears.c \
-lGL -lGLU -lX11 -lm || die "fgl_glxgears build failed"
einfo "Building fglrx_gamma lib"
cd "${S}"/extra/lib/fglrx_gamma
"$(tc-getCC)" -shared -fpic -o libfglrx_gamma.so.1.0 ${CFLAGS} ${LDFLAGS} \
-DXF86MISC -Wl,-soname,libfglrx_gamma.so.1.0 fglrx_gamma.c \
-lXext || die "fglrx_gamma lib build failed"
ln -s libfglrx_gamma.so.1.0 libfglrx_gamma.so || die "ln failed"
ln -s libfglrx_gamma.so.1.0 libfglrx_gamma.so.1 || die "ln failed"
einfo "Building fglrx_gamma util"
cd "${S}"/extra/programs/fglrx_gamma
"$(tc-getCC)" -o fglrx_xgamma ${CFLAGS} ${LDFLAGS} \
-I../../../usr/X11R6/include -L../../lib/fglrx_gamma \
fglrx_xgamma.c -lm -lfglrx_gamma -lX11 \
|| die "fglrx_gamma util build failed"
}
src_install() {
linux-mod_src_install
# We can do two things here, and neither of them is very nice.
# For direct rendering libGL has to be able to load one or more
# dri modules (files ending in _dri.so, like fglrx_dri.so).
# Gentoo's mesa looks for these files in the location specified by
# LIBGL_DRIVERS_PATH or LIBGL_DRIVERS_DIR, then in the hardcoded
# location /usr/$(get_libdir)/dri. Ati's libGL does the same
# thing, but the hardcoded location is /usr/X11R6/lib/modules/dri
# on x86 and amd64 32bit, /usr/X11R6/lib64/modules/dri on amd64
# 64bit. So we can either put the .so files in that (unusual,
# compared to "normal" mesa libGL) location or set
# LIBGL_DRIVERS_PATH. We currently do the latter. See also bug
# 101539.
# The problem with this approach is that LIBGL_DRIVERS_PATH
# *overrides* the default hardcoded location, it does not extend
# it. So if ati-drivers is merged but a non-ati libGL is selected
# and its hardcoded path does not match our LIBGL_DRIVERS_PATH
# (because it changed in a newer mesa or because it was compiled
# for a different set of multilib abis than we are) stuff breaks.
# We create one file per ABI to work with "native" multilib, see
# below.
echo "COLON_SEPARATED=LIBGL_DRIVERS_PATH" > "${T}/03ati-colon-sep"
doenvd "${T}/03ati-colon-sep"
# All libraries that we have a 32 bit and 64 bit version of on
# amd64 are installed in src_install-libs. Everything else
# (including libraries only available in native 64bit on amd64)
# goes in here.
# There used to be some code here that tried to detect running
# under a "native multilib" portage ((precursor of)
# http://dev.gentoo.org/~kanaka/auto-multilib/). I removed that, it
# should just work (only doing some duplicate work). --marienz
if has_multilib_profile; then
local OABI=${ABI}
for ABI in $(get_install_abis); do
src_install-libs
done
ABI=${OABI}
unset OABI
else
src_install-libs
fi
# This is sorted by the order the files occur in the source tree.
# X modules.
exeinto /usr/$(get_libdir)/xorg/modules/drivers
doexe "${MY_BASE_DIR}"/usr/X11R6/${PKG_LIBDIR}/modules/drivers/fglrx_drv.so
exeinto /usr/$(get_libdir)/xorg/modules/linux
doexe "${MY_BASE_DIR}"/usr/X11R6/${PKG_LIBDIR}/modules/linux/libfglrxdrm.so
exeinto /usr/$(get_libdir)/xorg/modules
doexe "${MY_BASE_DIR}"/usr/X11R6/${PKG_LIBDIR}/modules/{esut.a,glesx.so,amdxmm.so}
# Arch-specific files.
# (s)bin.
into /opt
if use acpi; then
dosbin "${ARCH_DIR}"/usr/sbin/atieventsd
fi
# We cleaned out the compilable stuff in src_unpack
dobin "${ARCH_DIR}"/usr/X11R6/bin/*
# lib.
exeinto /usr/$(get_libdir)
# Everything except for the libGL.so installed in src_install-libs.
doexe $(find "${ARCH_DIR}"/usr/X11R6/${PKG_LIBDIR} \
-maxdepth 1 -type f -name '*.so*' -not -name 'libGL.so*')
insinto /usr/$(get_libdir)
doins $(find "${ARCH_DIR}"/usr/X11R6/${PKG_LIBDIR} \
-maxdepth 1 -type f -not -name '*.so*')
# Common files.
# etc.
insinto /etc/ati
# Everything except for the authatieventsd.sh script.
doins etc/ati/{logo*,control,atiogl.xml,signature,amdpcsdb.default}
if use acpi; then
insopts -m0755
doins etc/ati/authatieventsd.sh
fi
# include.
insinto /usr
doins -r usr/include
insinto /usr/include/X11/extensions
doins usr/X11R6/include/X11/extensions/fglrx_gamma.h
# Just the atigetsysteminfo.sh script.
into /usr
dosbin usr/sbin/*
# data files for the control panel.
insinto /usr/share
doins -r usr/share/ati
insinto /usr/share/pixmaps
doins usr/share/icons/ccc_{large,small}.xpm
make_desktop_entry amdcccle 'ATI Catalyst Control Center' \
ccc_large System
# doc.
dohtml -r usr/share/doc/fglrx
if use acpi; then
doman usr/share/man/man8/atieventsd.8
pushd usr/share/doc/fglrx/examples/etc/acpi >/dev/null
exeinto /etc/acpi
doexe ati-powermode.sh
insinto /etc/acpi/events
doins events/*
popd >/dev/null
fi
# Done with the "source" tree. Install tools we rebuilt:
dobin extra/fgl_glxgears/fgl_glxgears
newdoc extra/fgl_glxgears/README README.fgl_glxgears
dolib extra/lib/fglrx_gamma/*so*
newdoc extra/lib/fglrx_gamma/README README.libfglrx_gamma
dobin extra/programs/fglrx_gamma/fglrx_xgamma
doman extra/programs/fglrx_gamma/fglrx_xgamma.1
newdoc extra/programs/fglrx_gamma/README README.fglrx_gamma
# Gentoo-specific stuff:
if use acpi; then
newinitd "${FILESDIR}"/atieventsd.init atieventsd \
|| die "Failed to install atieventsd.init.d"
echo 'ATIEVENTSDOPTS=""' > "${T}"/atieventsd.conf
newconfd "${T}"/atieventsd.conf atieventsd
fi
# Sabayon-specific stuff
if use distribution && ! use x86-fbsd; then
insinto /lib/fglrx
doins "${WORKDIR}/common/lib/modules/fglrx/build_mod/2.6.x/fglrx.o"
insinto /lib/fglrx
doins "${WORKDIR}/common/lib/modules/fglrx/build_mod/2.6.x/fglrx.mod.o"
fi
}
src_install-libs() {
if [[ "${ABI}" == "amd64" ]]; then
local EX_BASE_DIR="${BASE_DIR}_64a"
local pkglibdir=lib64
local MY_ARCH_DIR="${S}/arch/x86_64"
else
local EX_BASE_DIR="${BASE_DIR}"
local pkglibdir=lib
local MY_ARCH_DIR="${S}/arch/x86"
fi
einfo "ati tree '${pkglibdir}' -> '$(get_libdir)' on system"
local ATI_ROOT=/usr/$(get_libdir)/opengl/ati
# To make sure we do not miss a spot when these change.
local libmajor=1 libminor=2
local libver=${libmajor}.${libminor}
# The GLX libraries
# (yes, this really is "lib" even on amd64/multilib --marienz)
exeinto ${ATI_ROOT}/lib
doexe "${MY_ARCH_DIR}"/usr/X11R6/${pkglibdir}/libGL.so.${libver}
dosym libGL.so.${libver} ${ATI_ROOT}/lib/libGL.so.${libmajor}
dosym libGL.so.${libver} ${ATI_ROOT}/lib/libGL.so
exeinto ${ATI_ROOT}/extensions
doexe "${EX_BASE_DIR}"/usr/X11R6/${pkglibdir}/modules/extensions/*
# DRI modules, installed into the path used by recent versions of mesa.
exeinto /usr/$(get_libdir)/dri
doexe "${MY_ARCH_DIR}"/usr/X11R6/${pkglibdir}/modules/dri/fglrx_dri.so
# AMD Cal libraries
exeinto /usr/$(get_libdir)
doexe "${MY_ARCH_DIR}"/usr/${pkglibdir}/*.so
# Make up a libGL.la. Ati does not provide one, but mesa does. If
# a (libtool-based) libfoo is built with libGL.la present a
# reference to it is put into libfoo.la, and compiling
# (libtool-based) things that link too libfoo.la will complain if
# libGL.la disappears. So if we do not make up a libGL.la
# switching between mesa and ati becomes painful.
local revision=$(printf '%d%02d%02d' $(get_version_components))
sed -e "s:\${libmajor}:${libmajor}:g" \
-e "s:\${libminor}:${libminor}:g" \
-e "s:\${libdir}:$(get_libdir):g" \
-e "s:\${revision}:${revision}:g" \
"${FILESDIR}"/libGL.la.in > "${D}"/${ATI_ROOT}/lib/libGL.la \
|| die "sed failed to make libGL.la"
local envname="${T}"/04ati-dri-path
if [[ -n ${ABI} ]]; then
envname="${envname}-${ABI}"
fi
echo "LIBGL_DRIVERS_PATH=/usr/$(get_libdir)/dri" > "${envname}"
doenvd "${envname}"
}
pkg_postinst() {
/usr/bin/eselect opengl set --use-old ati
elog "To switch to ATI OpenGL, run \"eselect opengl set ati\""
elog "To change your xorg.conf you can use the bundled \"aticonfig\""
elog
elog "If you experience unexplained segmentation faults and kernel crashes"
elog "with this driver and multi-threaded applications such as wine,"
elog "set UseFastTLS in xorg.conf to either 0 or 1, but not 2."
elog
elog "You will have to source /etc/profile (or logout and back in) for dri"
elog "to work, unless you previously had ati-drivers installed."
# Workaroud screen corruption
ewarn "If you experience screen corruption with this driver, try putting"
ewarn ' Option "XAANoOffscreenPixmaps" "true"'
ewarn "in the Device Section of /etc/X11/xorg.conf."
linux-mod_pkg_postinst
}
pkg_prerm() {
/usr/bin/eselect opengl set xorg-x11
}