ati-driver: drop, we are horribly out of date anyway

This commit is contained in:
Zero_Chaos 2012-03-14 02:42:33 +00:00
parent c6c2bebccf
commit 986ad0fc13
11 changed files with 0 additions and 3381 deletions

View file

@ -1,12 +0,0 @@
AUX ati-drivers-2.6.29.patch 3100 RMD160 de5b5bfde76db36c38f23a661ae9b0d47e9474d6 SHA1 f5cca133c14f0ecf26adb8f3f8202500b2f9cf27 SHA256 2121d1b1f2b4812f474aaab7c183228394491816f8ccd5fd59e73f11ff238bb5
AUX ati-drivers-xen.patch 1994 RMD160 45fe1a96bfaec597214c2b058c720c5f71797085 SHA1 4fd6da4c726c67feed8a6484af484ea525f3a112 SHA256 514dad9629fc689ec0344875a29d713f9d8de7ccbb0a22a2b80ede11bbbc6c58
AUX ati-powermode-opt-path-2.patch 1634 RMD160 a9c4ecc90a748f94282521a555ad7b64db242249 SHA1 3f61d804710bd88ee45cd3a9e3672b356359dd73 SHA256 e7749e04a3aa24132b13d0c694563a45c0d38e238f7412a75bd89aa9f9e9ead1
AUX atieventsd.init 533 RMD160 b9b95a8a3f32dcafba3e5fa08d6d1053e831291a SHA1 982ffdb8064785c8b96fb0213ad7892ac918b5d7 SHA256 20010ebc5cb286149f3c4c9c099b6470463ccdb8fd47cea054b783dc2ad1fff3
AUX atieventsd.rc6 590 RMD160 fbf8aba7ada36aed666d506d6b0f7146e1b2f4ad SHA1 b2b457a4122f0a3a5db785df46880351d795fb25 SHA256 a00aa241e53b21872218bd247bfdb6292a075d9ef641f36198d8f4e399cc025e
AUX fglrx-2.6.29-9.2-5.patch 63808 RMD160 d8602018350e2273cca4541fb6f8502a34bf2714 SHA1 e21decf341fc20318f16373e6ef0e5cca834975e SHA256 293ce17371cad50454c9aae64d719a356d34332b70c6043f785d0da35dc6a19d
AUX libGL.la.in 749 RMD160 b2eb11cd123cb0e789adb1e22dffdbfc03542f69 SHA1 be41cc2eb1754a44134a95475be5f0cb894e24bc SHA256 a7b4b58b1311f8e1caf83222cb020dfbc48e2881a8deef21eddefa23b3992f13
DIST ati-driver-installer-9-4-x86.x86_64.run 86701799 RMD160 d5382fecc2da11f4628cb4b64e306aef10ddc7f4 SHA1 730e9e78e4bb20994549c8f7eb539fe223bb1a69 SHA256 779287fc6f8656bddd17e1619121000583cbff440ef05e987dae604927baa497
DIST ati-driver-installer-9-5-x86.x86_64.run 88376064 RMD160 fd44818c05148835e39b733df4f715271205ec01 SHA1 d31b7b246edcbe50fc3bbbf2d36eddf14d57cc61 SHA256 c03e9a9fb9327884f1692376c2f555d0a87a0dab9bfab073652cb3a31638b9ae
EBUILD ati-drivers-8.602.ebuild 14903 RMD160 8e15ed8252b9a71b59e61ad67ff2b7bcd701c13a SHA1 63d6d29a5d28faa9b67f40c4c787c5f8184e09c9 SHA256 da866c4273ef485ddcd3365865783d9303fbaecfea8fc6e1f8a02ea19511f2ce
EBUILD ati-drivers-8.612.ebuild 14903 RMD160 69fb6f4b8a5369d48799cff27d3a5eb760f44c2c SHA1 cf555ad2f92530f0d82e515e901711f2bbb4e0ce SHA256 6774ba68083d7a19a6d43f3db658b104e29599cf61b5d41c144875d8544026e0
EBUILD ati-drivers-9.5.ebuild 14903 RMD160 69fb6f4b8a5369d48799cff27d3a5eb760f44c2c SHA1 cf555ad2f92530f0d82e515e901711f2bbb4e0ce SHA256 6774ba68083d7a19a6d43f3db658b104e29599cf61b5d41c144875d8544026e0

View file

@ -1,446 +0,0 @@
# 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.582.ebuild,v 1.3 2009/03/14 23:28:20 mr_bones_ Exp $
IUSE="acpi debug"
inherit eutils multilib linux-mod toolchain-funcs versionator
DESCRIPTION="Ati precompiled drivers for recent 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-9-4-x86.x86_64.run"
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"
S="${WORKDIR}"
pkg_setup() {
# Define module dir.
MODULE_DIR="${S}/common/lib/modules/fglrx/build_mod"
#check kernel and sets up KV_OBJ
MODULE_NAMES="fglrx(video:${S}/common/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 ge 2 6 29; then
ewarn "${P} is not really compatible with 2.6.29 kernels. See bug #264021."
fi
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() {
#Switching to a standard way to extract the files since otherwise no signature file
#would be created
local src="${DISTDIR}/${A}"
sh "${src}" --extract "${S}" 2&>1 /dev/null
cd "${S}"
if kernel_is ge 2 6 29; then
epatch "${FILESDIR}/ati-drivers-2.6.29.patch"
fi
# 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}/common/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}/common/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}"/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 ./../common/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}"/common/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../../../common/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 common/etc/ati/{logo*,control,atiogl.xml,signature,amdpcsdb.default}
if use acpi; then
insopts -m0755
doins common/etc/ati/authatieventsd.sh
fi
# include.
insinto /usr
doins -r common/usr/include
insinto /usr/include/X11/extensions
doins common/usr/X11R6/include/X11/extensions/fglrx_gamma.h
# Just the atigetsysteminfo.sh script.
into /usr
dosbin common/usr/sbin/*
# data files for the control panel.
insinto /usr/share
doins -r common/usr/share/ati
insinto /usr/share/pixmaps
doins common/usr/share/icons/ccc_{large,small}.xpm
make_desktop_entry amdcccle 'ATI Catalyst Control Center' \
ccc_large System
# doc.
dohtml -r common/usr/share/doc/fglrx
if use acpi; then
doman common/usr/share/man/man8/atieventsd.8
pushd common/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
}
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
}

View file

@ -1,446 +0,0 @@
# 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.582.ebuild,v 1.3 2009/03/14 23:28:20 mr_bones_ Exp $
IUSE="acpi debug"
inherit eutils multilib linux-mod toolchain-funcs versionator
DESCRIPTION="Ati precompiled drivers for recent 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-9-5-x86.x86_64.run"
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"
S="${WORKDIR}"
pkg_setup() {
# Define module dir.
MODULE_DIR="${S}/common/lib/modules/fglrx/build_mod"
#check kernel and sets up KV_OBJ
MODULE_NAMES="fglrx(video:${S}/common/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 ge 2 6 29; then
ewarn "${P} is not really compatible with 2.6.29 kernels. See bug #264021."
fi
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() {
#Switching to a standard way to extract the files since otherwise no signature file
#would be created
local src="${DISTDIR}/${A}"
sh "${src}" --extract "${S}" 2&>1 /dev/null
cd "${S}"
if kernel_is ge 2 6 29; then
epatch "${FILESDIR}/ati-drivers-2.6.29.patch"
fi
# 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}/common/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}/common/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}"/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 ./../common/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}"/common/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../../../common/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 common/etc/ati/{logo*,control,atiogl.xml,signature,amdpcsdb.default}
if use acpi; then
insopts -m0755
doins common/etc/ati/authatieventsd.sh
fi
# include.
insinto /usr
doins -r common/usr/include
insinto /usr/include/X11/extensions
doins common/usr/X11R6/include/X11/extensions/fglrx_gamma.h
# Just the atigetsysteminfo.sh script.
into /usr
dosbin common/usr/sbin/*
# data files for the control panel.
insinto /usr/share
doins -r common/usr/share/ati
insinto /usr/share/pixmaps
doins common/usr/share/icons/ccc_{large,small}.xpm
make_desktop_entry amdcccle 'ATI Catalyst Control Center' \
ccc_large System
# doc.
dohtml -r common/usr/share/doc/fglrx
if use acpi; then
doman common/usr/share/man/man8/atieventsd.8
pushd common/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
}
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
}

View file

@ -1,446 +0,0 @@
# 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.582.ebuild,v 1.3 2009/03/14 23:28:20 mr_bones_ Exp $
IUSE="acpi debug"
inherit eutils multilib linux-mod toolchain-funcs versionator
DESCRIPTION="Ati precompiled drivers for recent 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-9-5-x86.x86_64.run"
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"
S="${WORKDIR}"
pkg_setup() {
# Define module dir.
MODULE_DIR="${S}/common/lib/modules/fglrx/build_mod"
#check kernel and sets up KV_OBJ
MODULE_NAMES="fglrx(video:${S}/common/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 ge 2 6 29; then
ewarn "${P} is not really compatible with 2.6.29 kernels. See bug #264021."
fi
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() {
#Switching to a standard way to extract the files since otherwise no signature file
#would be created
local src="${DISTDIR}/${A}"
sh "${src}" --extract "${S}" 2&>1 /dev/null
cd "${S}"
if kernel_is ge 2 6 29; then
epatch "${FILESDIR}/ati-drivers-2.6.29.patch"
fi
# 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}/common/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}/common/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}"/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 ./../common/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}"/common/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../../../common/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 common/etc/ati/{logo*,control,atiogl.xml,signature,amdpcsdb.default}
if use acpi; then
insopts -m0755
doins common/etc/ati/authatieventsd.sh
fi
# include.
insinto /usr
doins -r common/usr/include
insinto /usr/include/X11/extensions
doins common/usr/X11R6/include/X11/extensions/fglrx_gamma.h
# Just the atigetsysteminfo.sh script.
into /usr
dosbin common/usr/sbin/*
# data files for the control panel.
insinto /usr/share
doins -r common/usr/share/ati
insinto /usr/share/pixmaps
doins common/usr/share/icons/ccc_{large,small}.xpm
make_desktop_entry amdcccle 'ATI Catalyst Control Center' \
ccc_large System
# doc.
dohtml -r common/usr/share/doc/fglrx
if use acpi; then
doman common/usr/share/man/man8/atieventsd.8
pushd common/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
}
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
}

View file

@ -1,100 +0,0 @@
Quick-and-dirty fixes to build on 2.6.29-rcX kernels.
diff -Nparu build_mod/firegl_public.c fglrx-8.573-new/common/lib/modules/fglrx/build_mod/firegl_public.c
--- build_mod/firegl_public.c 2009-01-23 20:00:26.000000000 -0200
+++ fglrx-8.573-new/common/lib/modules/fglrx/build_mod/firegl_public.c 2009-02-13 15:25:00.000000000 -0200
@@ -1460,7 +1460,11 @@ KCL_TYPE_Pid ATI_API_CALL KCL_GetTgid(vo
*/
KCL_TYPE_Uid ATI_API_CALL KCL_GetEffectiveUid(void)
{
+#if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,28)
+ return current->cred->euid;
+#else
return current->euid;
+#endif
}
/** /brief Delay execution for the specified number of microseconds
@@ -1832,15 +1836,30 @@ int ATI_API_CALL KCL_PosixSecurityCapChe
*/
void ATI_API_CALL KCL_PosixSecurityCapSetIPCLock(unsigned int lock)
{
+
+#if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,28)
+ struct cred *new = prepare_creds();
+ if (!new) {
+ printk(KERN_ERR "fglrx: could not allocate memory\n");
+ return;
+ }
+#else
+#define new current
+#endif
if (lock == 0 )
{
- cap_lower(current->cap_effective, CAP_IPC_LOCK);
+ cap_lower(new->cap_effective, CAP_IPC_LOCK);
}
else
{
- cap_raise(current->cap_effective, CAP_IPC_LOCK);
+ cap_raise(new->cap_effective, CAP_IPC_LOCK);
}
- return;
+
+#if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,28)
+ commit_creds(new);
+#else
+#undef new
+#endif
}
/** \brief Get number of available RAM pages
diff -Nparu build_mod/firegl_public.h fglrx-8.573-new/common/lib/modules/fglrx/build_mod/firegl_public.h
--- build_mod/firegl_public.h 2009-01-23 20:00:26.000000000 -0200
+++ fglrx-8.573-new/common/lib/modules/fglrx/build_mod/firegl_public.h 2009-02-16 14:02:50.000000000 -0300
@@ -18,6 +18,7 @@
#define _FIREGL_PUBLIC_H_
#include <stdarg.h>
+#include <asm/pgtable.h>
#include "kcl_pci.h"
#include "kcl_io.h"
@@ -590,6 +591,11 @@ extern unsigned long KCL_SYSINFO_
#define cpu_has_pge test_bit(X86_FEATURE_PGE, &boot_cpu_data.x86_capability)
#endif
+#if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,28)
+#undef pgprot_writecombine
+#undef pgprot_noncached
+#endif
+
#ifndef pgprot_writecombine
#define pgprot_writecombine(prot) __pgprot((pgprot_val(prot) & ~(_PAGE_PCD)) | _PAGE_PWT)
#endif
@@ -598,6 +604,7 @@ extern unsigned long KCL_SYSINFO_
#define pgprot_noncached(prot) __pgprot(pgprot_val(prot) | _PAGE_PCD | _PAGE_PWT)
#endif
+
#endif //FIREGL_USWC_SUPPORT
diff -Nparu build_mod/kcl_acpi.c fglrx-8.573-new/common/lib/modules/fglrx/build_mod/kcl_acpi.c
--- build_mod/kcl_acpi.c 2009-01-23 20:00:26.000000000 -0200
+++ fglrx-8.573-new/common/lib/modules/fglrx/build_mod/kcl_acpi.c 2009-02-13 15:25:00.000000000 -0200
@@ -18,6 +18,12 @@
#include <linux/autoconf.h>
#include <linux/acpi.h>
+#if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,28)
+#include <../drivers/acpi/acpica/acconfig.h>
+#include <../drivers/acpi/acpica/aclocal.h>
+#include <../drivers/acpi/acpica/acobject.h>
+#endif
+
#include "kcl_config.h"
#include "kcl_type.h"
#include "kcl_acpi.h"
#include "kcl_acpi.h"

View file

@ -1,62 +0,0 @@
--- common/lib/modules/fglrx/build_mod/firegl_public.c 2008-12-09 15:17:27.000000000 +0000
+++ common/lib/modules/fglrx/build_mod/firegl_public.c 2008-12-09 15:12:34.000000000 +0000
@@ -31,6 +31,9 @@
#include <linux/autoconf.h>
#if !defined(CONFIG_X86_PC)
+#if !defined(CONFIG_X86_PC_XEN)
+#if !defined(CONFIG_X86_XEN)
+#if !defined(CONFIG_X86_64_XEN)
#if !defined(CONFIG_X86_64)
#if !defined(CONFIG_X86_VOYAGER)
#if !defined(CONFIG_X86_NUMAQ)
@@ -47,6 +50,9 @@
#endif
#endif
#endif
+#endif
+#endif
+#endif
/* The dirty-page-tracking patch included in NLD 9 SMP kernels defines
* a static inline function that uses a GPL-only symbol in a header
--- common/lib/modules/fglrx/build_mod/firegl_public.h 2008-12-09 15:17:27.000000000 +0000
+++ common/lib/modules/fglrx/build_mod/firegl_public.h 2008-12-09 15:15:45.000000000 +0000
@@ -30,9 +30,13 @@
#endif
#if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,9)
-
+#ifdef CONFIG_XEN
+#define REMAP_PAGE_RANGE_FN io_remap_pfn_range
+#define REMAP_PAGE_RANGE_STR "io_remap_pfn_range"
+#else
#define REMAP_PAGE_RANGE_FN remap_pfn_range
#define REMAP_PAGE_RANGE_STR "remap_pfn_range"
+#endif
#define REMAP_PAGE_RANGE_OFF(offset) ((offset) >> PAGE_SHIFT)
#else /* LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,9) */
@@ -43,13 +47,21 @@
#endif /* LINUX_VERSION_CODE > KERNEL_VERSION(2,6,9) */
+#ifdef CONFIG_XEN
+#define REMAP_PAGE_RANGE(vma,offset) \
+ REMAP_PAGE_RANGE_FN((vma), \
+ (vma)->vm_start, \
+ REMAP_PAGE_RANGE_OFF(offset), \
+ (vma)->vm_end - (vma)->vm_start, \
+ (vma)->vm_page_prot)
+#else
#define REMAP_PAGE_RANGE(vma,offset) \
REMAP_PAGE_RANGE_FN(FGL_VMA_API_PASS \
(vma)->vm_start, \
REMAP_PAGE_RANGE_OFF(offset), \
(vma)->vm_end - (vma)->vm_start, \
(vma)->vm_page_prot)
-
+#endif
/* Page table macros */

View file

@ -1,42 +0,0 @@
diff -ur common.orig/usr/share/doc/fglrx/examples/etc/acpi/ati-powermode.sh common/usr/share/doc/fglrx/examples/etc/acpi/ati-powermode.sh
--- common.orig/usr/share/doc/fglrx/examples/etc/acpi/ati-powermode.sh 2006-07-28 04:22:36.000000000 +0100
+++ common/usr/share/doc/fglrx/examples/etc/acpi/ati-powermode.sh 2006-08-04 12:19:42.000000000 +0100
@@ -4,6 +4,8 @@
# Control script for ACPI lid state and AC adapter state
#
+aticonfig='/opt/bin/aticonfig'
+
getXuser() {
user=`finger| grep -m1 ":$displaynum " | awk '{print $1}'`
if [ x"$user" = x"" ]; then
@@ -47,7 +49,7 @@
done
#If PPLIB is enabled
-su $user -c '/usr/bin/aticonfig --pplib-cmd="get version"' | grep PPLIB
+su $user -c '$aticonfig --pplib-cmd="get version"' | grep PPLIB
if [ $? = 0 ]; then
echo "Has PPLIB"
has_pplib=1
@@ -61,15 +63,15 @@
if [ ${lid_closed} -eq 1 -o ${on_dc} -eq 1 ]; then
echo "Low power"
if [ ${has_pplib} -eq 1 ]; then
- su $user -c '/usr/bin/aticonfig --pplib-cmd="notify psrc dc"'
+ su $user -c '$aticonfig --pplib-cmd="notify psrc dc"'
else
- su $user -c "/usr/bin/aticonfig --set-powerstate=1 --effective=now"
+ su $user -c "$aticonfig --set-powerstate=1"
fi
else
echo "high power"
if [ ${has_pplib} -eq 1 ]; then
- su $user -c '/usr/bin/aticonfig --pplib-cmd="notify psrc ac"'
+ su $user -c '$aticonfig --pplib-cmd="notify psrc ac"'
else
- su $user -c "/usr/bin/aticonfig --set-powerstate=3 --effective=now"
+ su $user -c "$aticonfig --set-powerstate=$($aticonfig --lsp | grep 'default state' | cut -c 3)"
fi
fi

View file

@ -1,20 +0,0 @@
#!/sbin/runscript
# Copyright 1999-2006 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/x11-drivers/ati-drivers/files/atieventsd.init,v 1.3 2007/05/18 23:58:01 marienz Exp $
depend() {
need acpid
}
start() {
ebegin "Starting ${SVCNAME}"
start-stop-daemon --start --exec /opt/sbin/atieventsd -- ${ATIEVENTSDOPTS}
eend $?
}
stop() {
ebegin "Stopping ${SVCNAME}"
start-stop-daemon --stop --quiet --exec /opt/sbin/atieventsd
eend $?
}

View file

@ -1,22 +0,0 @@
#!/sbin/runscript
# Copyright 1999-2006 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/x11-drivers/ati-drivers/files/atieventsd.rc6,v 1.2 2006/08/04 12:20:19 chrb Exp $
depend() {
need acpid
}
start() {
start-stop-daemon --start --pidfile /var/run/atieventsd.pid \
--exec /opt/ati/sbin/atieventsd -- ${ATIEVENTSDOPTS}
local pid=`pidof atieventsd`
echo $pid > /var/run/atieventsd.pid
eend $?
}
stop() {
start-stop-daemon --stop --quiet --pidfile /var/run/atieventsd.pid
eend $?
}

File diff suppressed because it is too large Load diff

View file

@ -1,32 +0,0 @@
# libGL.la - a libtool library file
# Generated by ltmain.sh - GNU libtool 1.4 (1.920 2001/04/24 23:26:18)
#
# Please DO NOT delete this file!
# It is necessary for linking the library.
# The name that we can dlopen(3).
dlname='libGL.so.1'
# Names of this library.
library_names='libGL.so.${libmajor}.${libminor} libGL.so.${libmajor} libGL.so'
# The name of the static archive.
old_library=''
# Libraries that this one depends upon.
dependency_libs='-L/usr/${libdir} -lX11 -lXext -ldl'
# Version information for libGL.
current=1
age=0
revision=${revision}
# Is this an already installed library?
installed=yes
# Files to dlopen/dlpreopen
dlopen=''
dlpreopen=''
# Directory that this library needs to be installed in:
libdir='/usr/${libdir}'