mirror of
https://github.com/pentoo/pentoo-overlay
synced 2026-04-14 10:51:10 +02:00
ati-drivers: in gentoo
This commit is contained in:
parent
5dff14d042
commit
163bf97de1
14 changed files with 0 additions and 3695 deletions
File diff suppressed because it is too large
Load diff
|
|
@ -1,15 +0,0 @@
|
|||
AUX amd-drivers-3.2.7.1.patch 560 SHA256 7cc315754a47fbda6bf36bcee01780da7c19535c4f6ec1cccc556e9a7b32d263 SHA512 bcdc89e7a7148f5eb5450364298de6fb95dcad0d3c8d7091e9236d4f4b9cff0be24d59e8ed4ccdde0c8e94985ab8b4e7d5848e1e0e7102c699edb9230dbe57ce WHIRLPOOL 85ef893cd8bffa0d41b99eccd8b6e1ed713f69cc683dee52268ea0d6bc6fd4a77b3fdab31dd1e35ec3bbd21b399725286289c9fb3a276eff3922c1f8cf0746a2
|
||||
AUX ati-drivers-12.2-redefine-WARN.patch 1316 SHA256 f7d8ad3307823925cf8b4c6540db17a51553e48dd008793fc026803bb2aa1ced SHA512 1ee5f7fb5dc629f186754dc83a7d718a6a8acda836dadb2b87bd616c424db0aba067fb833d966cf79425ad78d94ab3f7c4014bbe2356f394630b0761625e74ab WHIRLPOOL 75987965689042342a923d4542a3f1b5eb4ba8ce3fc1ede82be8aeffaa2154a0dc75c507a4772bc00ef510eee7f4b47a51a2ea43aadce6e742e842e348c15b40
|
||||
AUX ati-drivers-do_mmap.patch 1405 SHA256 3fc9bae50d25d3bfe76a3a1e89c8d025674a4cb9afd16d3a5d8b3c25a66f536d SHA512 1a2f8fe7f2506037d6d158e5c2efffa39c503566284d8f516cb2d84db546eced24df5dcb8d74ac84911589efb4547d7f8610d78ad29703f9ed0a9890576c51b7 WHIRLPOOL 86daa957d7569b26fdf92929e5b04a32379af067a208628eab1a4541fdebfb51fa4bfedeec63f4685c6258adcba2ddc4223b69dca329ecbebd4ba13167f66f82
|
||||
AUX ati-drivers-old_rsp.patch 989 SHA256 dd222de89b515046c6cbfef172a3ec8d4bc48664799b3bbfff648091c6d54b49 SHA512 b86a230f126950d309b899ab3445154cf38cb8127b7686d0a467df6d3561a1785747e9522c00b55a294961c1157fe41833a5a85d4737775ae68bdb4099b0ee37 WHIRLPOOL cd06422ee90587c5c7485074b03ccaaef921134c721c0d0f6f678a9c968aae6417523c77d6dfcccc856cb5d125579197cd3c6a5b1c8557ce621784eabd0c43fa
|
||||
AUX ati-drivers-x32_something_something.patch 486 SHA256 9eb114a797089fca3693420305a6b668c4d7a16a722d5faa53dd904bba1b4c07 SHA512 157884244a49748c897a2eca1a46bf40631042d15af85c2b2f49bc3c3c48f5638dec815a4e9c67ee2c8b88cc15b7f71e9fe4d9bfebf5444bb169542048f66499 WHIRLPOOL f7583d7df16c9eb608aff2330b4bd55ede34986e6f3cf63aa4cb2c77dcfade7c499f1b4cef95fdc8e6ab28d7bb5544a80703bcf5a41eae6b90ca8830b6fdd888
|
||||
AUX ati-powermode-opt-path-2.patch 1634 SHA256 e7749e04a3aa24132b13d0c694563a45c0d38e238f7412a75bd89aa9f9e9ead1 SHA512 7fc91789157d6211726d26be066e3984871eb579c77c422bde27f489f72215e66dbfb5d477ea6882d46ed6d0c63b9f01fdd5ee196fd6a2809bfc3ca22badc859 WHIRLPOOL a3d6f9335c748192a65bb3493a1dd2f604ef6b1270760908bb541d10ac9c4eb8009d7d5fb145b37c6fbfc1512a70ecda3c79f6f56396f8424f072fb92059e0a2
|
||||
AUX ati-powermode-opt-path-3.patch 1471 SHA256 35e73fef3d8e39714e8d6e73afaa7b205505db3bdd65c364e7ea02fdc0cb3055 SHA512 0e17026847062117993ba6115942d16421f6b9943afd57913c96e7550b0e49f3ed10e06bc98f9db1a5ba4af7c42dae6b55a332a97e73d48dba7f61ed0ad35ad4 WHIRLPOOL 39861d10d307e537549ed0c7967e18ad3ef658af66396f5491d1f2e13ab13e8b8e252d4c14b5ab616ff5aad69a599cf3b32accedd51438021d50cc074fa296a8
|
||||
AUX atieventsd.init 533 SHA256 20010ebc5cb286149f3c4c9c099b6470463ccdb8fd47cea054b783dc2ad1fff3 SHA512 9f8990bb5619f99524e0759a1c4b41b0b2c081c6eecb3916ab60df8e6b59d99e3615af61e0ba5b71d003ccaaf41e2143237b26f36f64f00a47e0fe94f83473dd WHIRLPOOL 21979818a19bc27e3527958c66bf45654df4a307862897530bc02be6616f45ee210590a9d1bcab84336c6061482034010efbb251770bfaf023f20ffae8212ecd
|
||||
AUX switchlibGL 1349 SHA256 a4aa2107fdb903da77fea432bc809a1155e213db460fdec72fd1c3c7cc0d13a0 SHA512 51d2912aa6ec2002b096c0483be69650d682feec54486ed5226b91988bc1516f718c71d9f58a2b28e0dbc512c0300ea271f9a97885776dd045fe324f1549b85d WHIRLPOOL d335ea9c57a28f8450423089bbf798da77cc72fff6bad1221989412808abcd6bcb7afa41aa2b04231feff3dac6eaaff58a7595173e53b6cf0f5d3d591997b43d
|
||||
DIST amd-driver-installer-12-6-x86.x86_64.run 106660241 SHA256 b5c6070dc75e9296d0f04e7e0b3c6697f6c21872d50b1dcf4d7b3b0ab7ce7155 SHA512 920b4613844afeffe1493f6c1811722734bb878817945077a46d3922be2e9bad85eb3c02bfeec57b55371cfd81d87332b9c7845dd9a079744e491979ef02f4d7 WHIRLPOOL a7b722ed9fed881498e91c5bb706b973eade890f9dfd49862c46cc2822417cf1b80011db79d4a449331c9b191e6e7ff98aa8f3fcb6bc90ebda3125f46f6d2800
|
||||
DIST amd-driver-installer-12-8-x86.x86_64.zip 105413213 SHA256 62525173b2b7602aa4e7e46a109204d0f349abfbb135c86d03db5cd57642bb41 SHA512 41d9b5ee472a3172746f04bdf43a595eb9090c03021f4dfdecd3ff0a938e45a9ace57b99c7255cec2ace68645adcc0d6eb2f420173b4b41fcfc4745fb62cf230 WHIRLPOOL 8f904858da340c7bb1f502f831b4ef2afefe7dc1eb3545c877056e4bae18934e9f54430efdb39069c5beb6d214399095602ce7806561fe7562d3b99a871208ca
|
||||
EBUILD ati-drivers-12.6.ebuild 19783 SHA256 0b01f234bc9fbb3db8e295fc6a4573f7e36a16e3820786cf026ada1665fe77bf SHA512 067dbe09ea67decd3ddf5c5ceac27c7e18ef48385a9c311131f21dd18c5872452d19505d89bd1a4159b5c9123f04a018b8a82357147eca5f9e5cf404025ef20e WHIRLPOOL 87bf5dab9d7c09bb3d2c64e6a09ef18dd96129c31e7c972ac825182636db8928cc91093e67463fb6df88ea716c0546786b89b3f1754306d62b2bf8a0407d5216
|
||||
EBUILD ati-drivers-12.8.ebuild 20311 SHA256 b1592ec0bcd247597056cca8857341d9abaa1614792c01f1c35427ca075b407f SHA512 0ac0b1cbc34c716ac2f5742ad91e9608b7d105a7523ddd71c6b57a0aa63f8d85ca743f1b489a36e6467eda0950fbd3064d07528d981bb8db979d346035d88d08 WHIRLPOOL cde65b87c5b8f58e7d194459d87d53670cd9a91826a96fe48e2ae350497fa916a28609c4dee5ce0e76873deced914c431a181388841d350882b77187c812b425
|
||||
MISC ChangeLog 78581 SHA256 32920b4359d0c2ff40d5f5f62e1fb1ec777c07368dbc11472cf3671841f7e5f7 SHA512 b9057ce604df32403a34157a7ad917bf2d72d1167a3698a958ac2d515d5ffab75eab2e4b9e70ad7fef456c564ae12c3b9a0d70648604b746f9a89805f352590f WHIRLPOOL c68f6335c64e34d040549943d5758865ff6d214479c15f69ae27b445baabb312bda2854bbb33934ba9ee2211d8493eeed70e21607c0b4246ec83f9c80e84bc84
|
||||
MISC metadata.xml 705 SHA256 5bc8c6b51d5848d2946592546a67243270c9267a6eda2e6167ee8d1971c09614 SHA512 00de1dc4a28f348c29e6e672b6450a24b086c970c05ada9ccc1862f749ed124187f0cd24bdaeec2265db8bd881cfcb2d9bab1610ec94cf5e11272e1d31a614d2 WHIRLPOOL 7db90663f0e8a498cf0a3bbd6920bbafb08cf0246d56248ea7055f761e7a4cf13dc6e3befb06e25ecc51eaf8cf4c6307c82d5ed20813da6a418c4d15b1f0698c
|
||||
|
|
@ -1,617 +0,0 @@
|
|||
# Copyright 1999-2012 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
# $Header: /var/cvsroot/gentoo-x86/x11-drivers/ati-drivers/ati-drivers-12.6.ebuild,v 1.3 2012/07/26 15:08:38 johu Exp $
|
||||
|
||||
EAPI=4
|
||||
|
||||
inherit eutils multilib linux-info linux-mod toolchain-funcs versionator
|
||||
|
||||
DESCRIPTION="Ati precompiled drivers for Radeon Evergreen (HD5000 Series) and newer chipsets"
|
||||
HOMEPAGE="http://www.amd.com"
|
||||
MY_V=( $(get_version_components) )
|
||||
if [[ ${MY_V[2]} != beta ]]; then
|
||||
ATI_URL="http://www2.ati.com/drivers/linux/"
|
||||
SRC_URI="${ATI_URL}/amd-driver-installer-${PV/./-}-x86.x86_64.run"
|
||||
FOLDER_PREFIX="common/"
|
||||
else
|
||||
#SRC_URI="https://launchpad.net/ubuntu/natty/+source/fglrx-installer/2:${PV}-0ubuntu1/+files/fglrx-installer_${PV}.orig.tar.gz"
|
||||
SRC_URI="http://www2.ati.com/drivers/hotfix/catalyst_12.6_hotfixes/amd-driver-installer-8.98-x86.x86_64.zip"
|
||||
FOLDER_PREFIX="common/"
|
||||
fi
|
||||
IUSE="debug +modules multilib qt4 static-libs"
|
||||
|
||||
LICENSE="AMD GPL-2 QPL-1.0 as-is"
|
||||
KEYWORDS="amd64 x86"
|
||||
SLOT="1"
|
||||
|
||||
RESTRICT="bindist"
|
||||
|
||||
RDEPEND="
|
||||
<=x11-base/xorg-server-1.12.49[-minimal]
|
||||
>=app-admin/eselect-opengl-1.0.7
|
||||
app-admin/eselect-opencl
|
||||
sys-power/acpid
|
||||
x11-apps/xauth
|
||||
x11-libs/libX11
|
||||
x11-libs/libXext
|
||||
x11-libs/libXinerama
|
||||
x11-libs/libXrandr
|
||||
x11-libs/libXrender
|
||||
multilib? (
|
||||
app-emulation/emul-linux-x86-opengl
|
||||
app-emulation/emul-linux-x86-xlibs
|
||||
)
|
||||
qt4? (
|
||||
x11-libs/libICE
|
||||
x11-libs/libSM
|
||||
x11-libs/libXcursor
|
||||
x11-libs/libXfixes
|
||||
x11-libs/libXxf86vm
|
||||
x11-libs/qt-core:4
|
||||
x11-libs/qt-gui:4
|
||||
)
|
||||
"
|
||||
|
||||
DEPEND="${RDEPEND}
|
||||
x11-proto/inputproto
|
||||
x11-proto/xf86miscproto
|
||||
x11-proto/xf86vidmodeproto
|
||||
x11-proto/xineramaproto
|
||||
x11-libs/libXtst
|
||||
sys-apps/findutils
|
||||
app-misc/pax-utils
|
||||
"
|
||||
|
||||
EMULTILIB_PKG="true"
|
||||
|
||||
S="${WORKDIR}"
|
||||
|
||||
# QA Silencing
|
||||
QA_TEXTRELS="
|
||||
usr/lib*/opengl/ati/lib/libGL.so.1.2
|
||||
usr/lib*/libatiadlxx.so
|
||||
usr/lib*/xorg/modules/glesx.so
|
||||
usr/lib*/libaticaldd.so
|
||||
usr/lib*/dri/fglrx_dri.so
|
||||
"
|
||||
|
||||
QA_EXECSTACK="
|
||||
opt/bin/atiode
|
||||
opt/bin/amdcccle
|
||||
usr/lib*/opengl/ati/lib/libGL.so.1.2
|
||||
usr/lib*/dri/fglrx_dri.so
|
||||
"
|
||||
|
||||
QA_WX_LOAD="
|
||||
usr/lib*/opengl/ati/lib/libGL.so.1.2
|
||||
usr/lib*/dri/fglrx_dri.so
|
||||
"
|
||||
|
||||
QA_PRESTRIPPED="
|
||||
usr/lib\(32\|64\)\?/libXvBAW.so.1.0
|
||||
usr/lib\(32\|64\)\?/opengl/ati/lib/libGL.so.1.2
|
||||
usr/lib\(32\|64\)\?/opengl/ati/extensions/libglx.so
|
||||
usr/lib\(32\|64\)\?/xorg/modules/glesx.so
|
||||
usr/lib\(32\|64\)\?/libAMDXvBA.so.1.0
|
||||
usr/lib\(32\|64\)\?/libaticaldd.so
|
||||
usr/lib\(32\|64\)\?/dri/fglrx_dri.so
|
||||
"
|
||||
|
||||
QA_SONAME="
|
||||
usr/lib\(32\|64\)\?/libatiadlxx.so
|
||||
usr/lib\(32\|64\)\?/libaticalcl.so
|
||||
usr/lib\(32\|64\)\?/libaticaldd.so
|
||||
usr/lib\(32\|64\)\?/libaticalrt.so
|
||||
usr/lib\(32\|64\)\?/libamdocl\(32\|64\)\?.so
|
||||
"
|
||||
|
||||
QA_DT_HASH="
|
||||
opt/bin/amdcccle
|
||||
opt/bin/aticonfig
|
||||
opt/bin/atiodcli
|
||||
opt/bin/atiode
|
||||
opt/bin/clinfo
|
||||
opt/bin/fglrxinfo
|
||||
opt/sbin/atieventsd
|
||||
opt/sbin/amdnotifyui
|
||||
usr/lib\(32\|64\)\?/libaticalcl.so
|
||||
usr/lib\(32\|64\)\?/libaticalrt.so
|
||||
usr/lib\(32\|64\)\?/libatiuki.so.1.0
|
||||
usr/lib\(32\|64\)\?/libatiadlxx.so
|
||||
usr/lib\(32\|64\)\?/libfglrx_dm.so.1.0
|
||||
usr/lib\(32\|64\)\?/libXvBAW.so.1.0
|
||||
usr/lib\(32\|64\)\?/libAMDXvBA.so.1.0
|
||||
usr/lib\(32\|64\)\?/xorg/modules/amdxmm.so
|
||||
usr/lib\(32\|64\)\?/xorg/modules/glesx.so
|
||||
usr/lib\(32\|64\)\?/xorg/modules/linux/libfglrxdrm.so
|
||||
usr/lib\(32\|64\)\?/xorg/modules/drivers/fglrx_drv.so
|
||||
usr/lib\(32\|64\)\?/libaticaldd.so
|
||||
usr/lib\(32\|64\)\?/dri/fglrx_dri.so
|
||||
usr/lib\(32\|64\)\?/opengl/ati/extensions/libglx.so
|
||||
usr/lib\(32\|64\)\?/opengl/ati/extensions/fglrx-libglx.so
|
||||
usr/lib\(32\|64\)\?/opengl/ati/lib/fglrx-libGL.so.1.2
|
||||
usr/lib\(32\|64\)\?/opengl/ati/lib/libGL.so.1.2
|
||||
usr/lib\(32\|64\)\?/OpenCL/vendors/amd/libamdocl\(32\|64\)\?.so
|
||||
usr/lib\(32\|64\)\?/OpenCL/vendors/amd/libOpenCL.so.1
|
||||
"
|
||||
|
||||
_check_kernel_config() {
|
||||
local failed=0
|
||||
local error=""
|
||||
if ! kernel_is ge 2 6; then
|
||||
eerror "You need a 2.6 linux kernel to compile against!"
|
||||
die "No 2.6 Kernel found"
|
||||
fi
|
||||
|
||||
if ! linux_chkconfig_present MTRR; then
|
||||
ewarn "You don't have MTRR support enabled in the kernel."
|
||||
ewarn "Direct rendering will not work."
|
||||
fi
|
||||
|
||||
if linux_chkconfig_builtin DRM; then
|
||||
ewarn "You have DRM support built in to the kernel"
|
||||
ewarn "Direct rendering will not work."
|
||||
fi
|
||||
|
||||
if ! linux_chkconfig_present AGP && \
|
||||
! linux_chkconfig_present PCIEPORTBUS; then
|
||||
ewarn "You don't have AGP and/or PCIe support enabled in the kernel"
|
||||
ewarn "Direct rendering will not work."
|
||||
fi
|
||||
|
||||
if ! linux_chkconfig_present ACPI; then
|
||||
eerror "${P} requires the ACPI support in the kernel"
|
||||
eerror "Please enable it:"
|
||||
eerror " CONFIG_ACPI=y"
|
||||
eerror "in /usr/src/linux/.config or"
|
||||
eerror " Power management and ACPI options --->"
|
||||
eerror " [*] Power Management support"
|
||||
eerror "in the 'menuconfig'"
|
||||
error+=" CONFIG_ACPI disabled;"
|
||||
failed=1
|
||||
fi
|
||||
|
||||
if ! linux_chkconfig_present PCI_MSI; then
|
||||
eerror "${P} requires MSI in the kernel."
|
||||
eerror "Please enable it:"
|
||||
eerror " CONFIG_PCI_MSI=y"
|
||||
eerror "in /usr/src/linux/.config or"
|
||||
eerror " Bus options (PCI etc.) --->"
|
||||
eerror " [*] Message Signaled Interrupts (MSI and MSI-X)"
|
||||
eerror "in the kernel config."
|
||||
error+=" CONFIG_PCI_MSI disabled;"
|
||||
failed=1
|
||||
fi
|
||||
|
||||
if linux_chkconfig_present LOCKDEP; then
|
||||
eerror "You've enabled LOCKDEP -- lock tracking -- in the kernel."
|
||||
eerror "Unfortunately, this option exports the symbol lock_acquire as GPL-only."
|
||||
eerror "This prevents ${P} from compiling with an error like this:"
|
||||
eerror "FATAL: modpost: GPL-incompatible module fglrx.ko uses GPL-only symbol 'lock_acquire'"
|
||||
eerror "Please make sure the following options have been unset:"
|
||||
eerror " Kernel hacking --->"
|
||||
eerror " [ ] Lock debugging: detect incorrect freeing of live locks"
|
||||
eerror " [ ] Lock debugging: prove locking correctness"
|
||||
eerror " [ ] Lock usage statistics"
|
||||
eerror "in 'menuconfig'"
|
||||
error+=" LOCKDEP enabled;"
|
||||
failed=1
|
||||
fi
|
||||
|
||||
use amd64 && if ! linux_chkconfig_present COMPAT; then
|
||||
eerror "${P} requires COMPAT."
|
||||
eerror "Please enable the 32 bit emulation:"
|
||||
eerror "Executable file formats / Emulations --->"
|
||||
eerror " [*] IA32 Emulation"
|
||||
eerror "in the kernel config."
|
||||
eerror "if this doesn't enable CONFIG_COMPAT add"
|
||||
eerror " CONFIG_COMPAT=y"
|
||||
eerror "in /usr/src/linux/.config"
|
||||
error+=" COMPAT disabled;"
|
||||
failed=1
|
||||
fi
|
||||
|
||||
kernel_is ge 2 6 37 && kernel_is le 2 6 38 && if ! linux_chkconfig_present BKL ; then
|
||||
eerror "${P} requires BKL."
|
||||
eerror "Please enable the Big Kernel Lock:"
|
||||
eerror "Kernel hacking --->"
|
||||
eerror " [*] Big Kernel Lock"
|
||||
eerror "in the kernel config."
|
||||
eerror "or add"
|
||||
eerror " CONFIG_BKL=y"
|
||||
eerror "in /usr/src/linux/.config"
|
||||
error+=" BKL disabled;"
|
||||
failed=1
|
||||
fi
|
||||
|
||||
[[ ${failed} -ne 0 ]] && die "${error}"
|
||||
}
|
||||
|
||||
pkg_pretend() {
|
||||
# workaround until bug 365543 is solved
|
||||
if use modules; then
|
||||
linux-info_pkg_setup
|
||||
require_configured_kernel
|
||||
_check_kernel_config
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_setup() {
|
||||
if use modules; then
|
||||
MODULE_NAMES="fglrx(video:${S}/${FOLDER_PREFIX}/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}"
|
||||
BUILD_PARAMS="${BUILD_PARAMS} CFLAGS_MODULE+=\"-DMODULE -DATI -DFGL\""
|
||||
if grep -q arch_compat_alloc_user_space ${KV_DIR}/arch/x86/include/asm/compat.h ; then
|
||||
BUILD_PARAMS="${BUILD_PARAMS} CFLAGS_MODULE+=-DCOMPAT_ALLOC_USER_SPACE=arch_compat_alloc_user_space"
|
||||
else
|
||||
BUILD_PARAMS="${BUILD_PARAMS} CFLAGS_MODULE+=-DCOMPAT_ALLOC_USER_SPACE=compat_alloc_user_space"
|
||||
fi
|
||||
fi
|
||||
# Define module dir.
|
||||
MODULE_DIR="${S}/${FOLDER_PREFIX}/lib/modules/fglrx/build_mod"
|
||||
# get the xorg-server version and set BASE_DIR for that
|
||||
BASE_DIR="${S}/xpic"
|
||||
|
||||
# amd64/x86
|
||||
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
|
||||
|
||||
elog
|
||||
elog "Please note that this driver supports only graphic cards based on"
|
||||
elog "Evergreen chipset and newer."
|
||||
elog "This represent the AMD Radeon HD 5400+ series at this moment."
|
||||
elog
|
||||
elog "If your card is older then use ${CATEGORY}/xf86-video-ati"
|
||||
elog "For migration informations please reffer to:"
|
||||
elog "http://www.gentoo.org/proj/en/desktop/x/x11/ati-migration-guide.xml"
|
||||
einfo
|
||||
}
|
||||
|
||||
src_unpack() {
|
||||
if [[ ${MY_V[2]} == beta ]]; then
|
||||
unpack ${A}
|
||||
RUN="${S}/${A/%.zip/.run}"
|
||||
else
|
||||
RUN="${DISTDIR}/${A}"
|
||||
fi
|
||||
sh ${RUN} --extract "${S}" # 2>&1 > /dev/null || die
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
# All kernel options for prepare are ment to be in here
|
||||
if use modules; then
|
||||
# version patches
|
||||
# epatch "${FILESDIR}"/kernel/${PV}-*.patch
|
||||
if use debug; then
|
||||
sed -i '/^#define DRM_DEBUG_CODE/s/0/1/' \
|
||||
"${MODULE_DIR}/firegl_public.c" \
|
||||
|| die "Failed to enable debug output."
|
||||
fi
|
||||
fi
|
||||
|
||||
# These are the userspace utilities that we also have source for.
|
||||
# We rebuild these later.
|
||||
rm \
|
||||
"${ARCH_DIR}"/usr/X11R6/bin/fgl_glxgears \
|
||||
|| die "bin rm failed"
|
||||
|
||||
# in this version amdcccle isn't static, thus we depend on qt4
|
||||
use qt4 || rm "${ARCH_DIR}"/usr/X11R6/bin/amdcccle
|
||||
|
||||
# ACPI fixups
|
||||
sed -i \
|
||||
-e "s:/var/lib/xdm/authdir/authfiles/:/var/run/xauth/:" \
|
||||
-e "s:/var/lib/gdm/:/var/gdm/:" \
|
||||
"${S}/${FOLDER_PREFIX}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}/${FOLDER_PREFIX}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 function to detect default state.
|
||||
epatch "${FILESDIR}"/ati-powermode-opt-path-2.patch
|
||||
|
||||
#fixes bug #420751
|
||||
epatch "${FILESDIR}"/ati-drivers-do_mmap.patch
|
||||
|
||||
# see http://ati.cchtml.com/show_bug.cgi?id=495
|
||||
epatch "${FILESDIR}"/ati-drivers-old_rsp.patch
|
||||
|
||||
cd "${MODULE_DIR}"
|
||||
|
||||
# bugged fglrx build system, this file should be copied by hand
|
||||
cp ${ARCH_DIR}/lib/modules/fglrx/build_mod/libfglrx_ip.a 2.6.x
|
||||
|
||||
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"
|
||||
cd "${S}"
|
||||
|
||||
mkdir extra || die "mkdir failed"
|
||||
cd extra
|
||||
unpack ./../${FOLDER_PREFIX}usr/src/ati/fglrx_sample_source.tgz
|
||||
|
||||
# Get rid of watermark. Oldest known reference:
|
||||
# http://phoronix.com/forums/showthread.php?19875-Unsupported-Hardware-watermark
|
||||
ebegin "Disabling watermark"
|
||||
driver="${MY_BASE_DIR}"/usr/X11R6/${PKG_LIBDIR}/modules/drivers/fglrx_drv.so
|
||||
for x in $(objdump -d ${driver}|awk '/call/&&/EnableLogo/{print "\\x"$2"\\x"$3"\\x"$4"\\x"$5"\\x"$6}'); do
|
||||
sed -i "s/${x}/\x90\x90\x90\x90\x90/g" ${driver} || break 1
|
||||
done
|
||||
eend $? || die "Disabling watermark failed"
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
use modules && linux-mod_src_compile
|
||||
|
||||
ebegin "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}"/${FOLDER_PREFIX}usr/include fgl_glxgears.c \
|
||||
-lGL -lGLU -lX11 -lm || die "fgl_glxgears build failed"
|
||||
eend $?
|
||||
}
|
||||
|
||||
src_test() { :; } # no tests present
|
||||
|
||||
src_install() {
|
||||
use modules && 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" || die
|
||||
|
||||
# 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/{glesx.so,amdxmm.so}
|
||||
|
||||
# Arch-specific files.
|
||||
# (s)bin.
|
||||
into /opt
|
||||
dosbin "${ARCH_DIR}"/usr/sbin/atieventsd
|
||||
use qt4 && dosbin "${ARCH_DIR}"/usr/sbin/amdnotifyui
|
||||
dobin "${ARCH_DIR}"/usr/bin/clinfo
|
||||
# We cleaned out the compilable stuff in src_unpack
|
||||
dobin "${ARCH_DIR}"/usr/X11R6/bin/*
|
||||
|
||||
# Common files.
|
||||
# etc.
|
||||
insinto /etc/ati
|
||||
exeinto /etc/ati
|
||||
# Everything except for the authatieventsd.sh script.
|
||||
doins ${FOLDER_PREFIX}etc/ati/{logo*,control,atiogl.xml,signature,amdpcsdb.default}
|
||||
doexe ${FOLDER_PREFIX}etc/ati/authatieventsd.sh
|
||||
|
||||
# include.
|
||||
insinto /usr
|
||||
doins -r ${FOLDER_PREFIX}usr/include
|
||||
insinto /usr/include/X11/extensions
|
||||
|
||||
# Just the atigetsysteminfo.sh script.
|
||||
into /usr
|
||||
dosbin ${FOLDER_PREFIX}usr/sbin/*
|
||||
|
||||
# data files for the control panel.
|
||||
if use qt4 ; then
|
||||
insinto /usr/share
|
||||
doins -r ${FOLDER_PREFIX}usr/share/ati
|
||||
insinto /usr/share/pixmaps
|
||||
doins ${FOLDER_PREFIX}usr/share/icons/ccc_large.xpm
|
||||
make_desktop_entry amdcccle 'AMD Catalyst Control Center' \
|
||||
ccc_large System
|
||||
fi
|
||||
|
||||
# doc.
|
||||
dohtml -r ${FOLDER_PREFIX}usr/share/doc/fglrx
|
||||
|
||||
doman ${FOLDER_PREFIX}usr/share/man/man8/atieventsd.8
|
||||
|
||||
pushd ${FOLDER_PREFIX}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
|
||||
|
||||
# Done with the "source" tree. Install tools we rebuilt:
|
||||
dobin extra/fgl_glxgears/fgl_glxgears
|
||||
newdoc extra/fgl_glxgears/README README.fgl_glxgears
|
||||
|
||||
# Gentoo-specific stuff:
|
||||
newinitd "${FILESDIR}"/atieventsd.init atieventsd
|
||||
echo 'ATIEVENTSDOPTS=""' > "${T}"/atieventsd.conf
|
||||
newconfd "${T}"/atieventsd.conf atieventsd
|
||||
|
||||
# PowerXpress stuff
|
||||
exeinto /usr/$(get_libdir)/fglrx
|
||||
doexe "${FILESDIR}"/switchlibGL || die "doexe switchlibGL failed"
|
||||
cp "${FILESDIR}"/switchlibGL "${T}"/switchlibglx
|
||||
doexe "${T}"/switchlibglx || die "doexe switchlibglx failed"
|
||||
}
|
||||
|
||||
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"
|
||||
local oclsuffix=64
|
||||
else
|
||||
local EX_BASE_DIR="${BASE_DIR}"
|
||||
local pkglibdir=lib
|
||||
local MY_ARCH_DIR="${S}/arch/x86"
|
||||
local oclsuffix=32
|
||||
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
|
||||
newexe "${MY_ARCH_DIR}"/usr/X11R6/${pkglibdir}/fglrx/fglrx-libGL.so.${libver} \
|
||||
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/fglrx/fglrx-libglx.so
|
||||
mv "${D}"/${ATI_ROOT}/extensions/{fglrx-,}libglx.so
|
||||
|
||||
# other libs
|
||||
exeinto /usr/$(get_libdir)
|
||||
# Everything except for the libGL.so installed some row above
|
||||
doexe $(find "${MY_ARCH_DIR}"/usr/X11R6/${pkglibdir} \
|
||||
-maxdepth 1 -type f -name '*.so*' -not -name '*libGL.so*')
|
||||
insinto /usr/$(get_libdir)
|
||||
doins $(find "${MY_ARCH_DIR}"/usr/X11R6/${pkglibdir} \
|
||||
-maxdepth 1 -type f -not -name '*.so*')
|
||||
|
||||
# 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 and OpenCL libraries
|
||||
exeinto /usr/$(get_libdir)/OpenCL/vendors/amd
|
||||
doexe "${MY_ARCH_DIR}"/usr/${pkglibdir}/libamdocl*.so*
|
||||
doexe "${MY_ARCH_DIR}"/usr/${pkglibdir}/libOpenCL*.so*
|
||||
dosym libOpenCL.so.${libmajor} /usr/$(get_libdir)/OpenCL/vendors/amd/libOpenCL.so
|
||||
exeinto /usr/$(get_libdir)
|
||||
doexe "${MY_ARCH_DIR}"/usr/${pkglibdir}/libati*.so*
|
||||
|
||||
# OpenCL vendor files
|
||||
insinto /etc/OpenCL/vendors/
|
||||
cat > "${T}"/amdocl${oclsuffix}.icd <<-EOF
|
||||
/usr/$(get_libdir)/OpenCL/vendors/amd/libamdocl${oclsuffix}.so
|
||||
EOF
|
||||
doins "${T}"/amdocl${oclsuffix}.icd
|
||||
|
||||
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}"
|
||||
|
||||
# Silence the QA notice by creating missing soname symlinks
|
||||
for so in $(find "${D}"/usr/$(get_libdir) -maxdepth 1 -name *.so.[0-9].[0-9])
|
||||
do
|
||||
local soname=${so##*/}
|
||||
## let's keep also this alternative way ;)
|
||||
#dosym ${soname} /usr/$(get_libdir)/${soname%.[0-9]}
|
||||
dosym ${soname} /usr/$(get_libdir)/$(scanelf -qF "#f%S" ${so})
|
||||
done
|
||||
|
||||
#remove static libs if not wanted
|
||||
use static-libs || rm -rf "${D}"/usr/$(get_libdir)/libfglrx_dm.a
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
elog "To switch to AMD 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 "Fully rebooting the system after an ${PN} update is recommended"
|
||||
elog "Stopping Xorg, reloading fglrx kernel module and restart Xorg"
|
||||
elog "might not work"
|
||||
elog
|
||||
elog "Some cards need acpid running to handle events"
|
||||
elog "Please add it to boot runlevel with rc-update add acpid boot"
|
||||
elog
|
||||
|
||||
use modules && linux-mod_pkg_postinst
|
||||
"${ROOT}"/usr/bin/eselect opengl set --use-old ati
|
||||
"${ROOT}"/usr/bin/eselect opencl set --use-old amd
|
||||
}
|
||||
|
||||
pkg_preinst() {
|
||||
use modules && linux-mod_pkg_preinst
|
||||
}
|
||||
|
||||
pkg_prerm() {
|
||||
"${ROOT}"/usr/bin/eselect opengl set --use-old xorg-x11
|
||||
}
|
||||
|
||||
pkg_postrm() {
|
||||
use modules && linux-mod_pkg_postrm
|
||||
"${ROOT}"/usr/bin/eselect opengl set --use-old xorg-x11
|
||||
}
|
||||
|
|
@ -1,630 +0,0 @@
|
|||
# Copyright 1999-2012 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
# $Header: /var/cvsroot/gentoo-x86/x11-drivers/ati-drivers/ati-drivers-12.6.ebuild,v 1.3 2012/07/26 15:08:38 johu Exp $
|
||||
|
||||
EAPI=4
|
||||
|
||||
inherit eutils multilib linux-info linux-mod toolchain-funcs versionator
|
||||
|
||||
DESCRIPTION="Ati precompiled drivers for Radeon Evergreen (HD5000 Series) and newer chipsets"
|
||||
HOMEPAGE="http://www.amd.com"
|
||||
MY_V=( $(get_version_components) )
|
||||
if [[ ${MY_V[2]} != beta ]]; then
|
||||
ATI_URL="http://www2.ati.com/drivers/linux/"
|
||||
SRC_URI="${ATI_URL}/amd-driver-installer-${PV/./-}-x86.x86_64.zip"
|
||||
RUN="${WORKDIR}/amd-driver-installer-8.982-x86.x86_64.run"
|
||||
FOLDER_PREFIX="common/"
|
||||
else
|
||||
#SRC_URI="https://launchpad.net/ubuntu/natty/+source/fglrx-installer/2:${PV}-0ubuntu1/+files/fglrx-installer_${PV}.orig.tar.gz"
|
||||
SRC_URI="http://www2.ati.com/drivers/hotfix/catalyst_12.6_hotfixes/amd-driver-installer-8.98-x86.x86_64.zip"
|
||||
FOLDER_PREFIX="common/"
|
||||
fi
|
||||
IUSE="debug +modules multilib qt4 static-libs"
|
||||
|
||||
LICENSE="AMD GPL-2 QPL-1.0 as-is"
|
||||
KEYWORDS="-* ~amd64 ~x86"
|
||||
SLOT="1"
|
||||
|
||||
RESTRICT="bindist"
|
||||
|
||||
RDEPEND="
|
||||
<=x11-base/xorg-server-1.12.49[-minimal]
|
||||
>=app-admin/eselect-opengl-1.0.7
|
||||
app-admin/eselect-opencl
|
||||
sys-power/acpid
|
||||
x11-apps/xauth
|
||||
x11-libs/libX11
|
||||
x11-libs/libXext
|
||||
x11-libs/libXinerama
|
||||
x11-libs/libXrandr
|
||||
x11-libs/libXrender
|
||||
multilib? (
|
||||
app-emulation/emul-linux-x86-opengl
|
||||
app-emulation/emul-linux-x86-xlibs
|
||||
)
|
||||
qt4? (
|
||||
x11-libs/libICE
|
||||
x11-libs/libSM
|
||||
x11-libs/libXcursor
|
||||
x11-libs/libXfixes
|
||||
x11-libs/libXxf86vm
|
||||
x11-libs/qt-core:4
|
||||
x11-libs/qt-gui:4
|
||||
)
|
||||
"
|
||||
|
||||
DEPEND="${RDEPEND}
|
||||
x11-proto/inputproto
|
||||
x11-proto/xf86miscproto
|
||||
x11-proto/xf86vidmodeproto
|
||||
x11-proto/xineramaproto
|
||||
x11-libs/libXtst
|
||||
sys-apps/findutils
|
||||
app-misc/pax-utils
|
||||
"
|
||||
|
||||
EMULTILIB_PKG="true"
|
||||
|
||||
S="${WORKDIR}"
|
||||
|
||||
# QA Silencing
|
||||
QA_TEXTRELS="
|
||||
usr/lib*/opengl/ati/lib/libGL.so.1.2
|
||||
usr/lib*/libatiadlxx.so
|
||||
usr/lib*/xorg/modules/glesx.so
|
||||
usr/lib*/libaticaldd.so
|
||||
usr/lib*/dri/fglrx_dri.so
|
||||
"
|
||||
|
||||
QA_EXECSTACK="
|
||||
opt/bin/atiode
|
||||
opt/bin/amdcccle
|
||||
usr/lib*/opengl/ati/lib/libGL.so.1.2
|
||||
usr/lib*/dri/fglrx_dri.so
|
||||
"
|
||||
|
||||
QA_WX_LOAD="
|
||||
usr/lib*/opengl/ati/lib/libGL.so.1.2
|
||||
usr/lib*/dri/fglrx_dri.so
|
||||
"
|
||||
|
||||
QA_PRESTRIPPED="
|
||||
usr/lib\(32\|64\)\?/libXvBAW.so.1.0
|
||||
usr/lib\(32\|64\)\?/opengl/ati/lib/libGL.so.1.2
|
||||
usr/lib\(32\|64\)\?/opengl/ati/extensions/libglx.so
|
||||
usr/lib\(32\|64\)\?/xorg/modules/glesx.so
|
||||
usr/lib\(32\|64\)\?/libAMDXvBA.so.1.0
|
||||
usr/lib\(32\|64\)\?/libaticaldd.so
|
||||
usr/lib\(32\|64\)\?/dri/fglrx_dri.so
|
||||
"
|
||||
|
||||
QA_SONAME="
|
||||
usr/lib\(32\|64\)\?/libatiadlxx.so
|
||||
usr/lib\(32\|64\)\?/libaticalcl.so
|
||||
usr/lib\(32\|64\)\?/libaticaldd.so
|
||||
usr/lib\(32\|64\)\?/libaticalrt.so
|
||||
usr/lib\(32\|64\)\?/libamdocl\(32\|64\)\?.so
|
||||
"
|
||||
|
||||
QA_DT_HASH="
|
||||
opt/bin/amdcccle
|
||||
opt/bin/aticonfig
|
||||
opt/bin/atiodcli
|
||||
opt/bin/atiode
|
||||
opt/bin/clinfo
|
||||
opt/bin/fglrxinfo
|
||||
opt/sbin/atieventsd
|
||||
opt/sbin/amdnotifyui
|
||||
usr/lib\(32\|64\)\?/libaticalcl.so
|
||||
usr/lib\(32\|64\)\?/libaticalrt.so
|
||||
usr/lib\(32\|64\)\?/libatiuki.so.1.0
|
||||
usr/lib\(32\|64\)\?/libatiadlxx.so
|
||||
usr/lib\(32\|64\)\?/libfglrx_dm.so.1.0
|
||||
usr/lib\(32\|64\)\?/libXvBAW.so.1.0
|
||||
usr/lib\(32\|64\)\?/libAMDXvBA.so.1.0
|
||||
usr/lib\(32\|64\)\?/xorg/modules/amdxmm.so
|
||||
usr/lib\(32\|64\)\?/xorg/modules/glesx.so
|
||||
usr/lib\(32\|64\)\?/xorg/modules/linux/libfglrxdrm.so
|
||||
usr/lib\(32\|64\)\?/xorg/modules/drivers/fglrx_drv.so
|
||||
usr/lib\(32\|64\)\?/libaticaldd.so
|
||||
usr/lib\(32\|64\)\?/dri/fglrx_dri.so
|
||||
usr/lib\(32\|64\)\?/opengl/ati/extensions/libglx.so
|
||||
usr/lib\(32\|64\)\?/opengl/ati/extensions/fglrx-libglx.so
|
||||
usr/lib\(32\|64\)\?/opengl/ati/lib/fglrx-libGL.so.1.2
|
||||
usr/lib\(32\|64\)\?/opengl/ati/lib/libGL.so.1.2
|
||||
usr/lib\(32\|64\)\?/OpenCL/vendors/amd/libamdocl\(32\|64\)\?.so
|
||||
usr/lib\(32\|64\)\?/OpenCL/vendors/amd/libOpenCL.so.1
|
||||
"
|
||||
|
||||
_check_kernel_config() {
|
||||
local failed=0
|
||||
local error=""
|
||||
if ! kernel_is ge 2 6; then
|
||||
eerror "You need a 2.6 linux kernel to compile against!"
|
||||
die "No 2.6 Kernel found"
|
||||
fi
|
||||
|
||||
if ! linux_chkconfig_present MTRR; then
|
||||
ewarn "You don't have MTRR support enabled in the kernel."
|
||||
ewarn "Direct rendering will not work."
|
||||
fi
|
||||
|
||||
if linux_chkconfig_builtin DRM; then
|
||||
ewarn "You have DRM support built in to the kernel"
|
||||
ewarn "Direct rendering will not work."
|
||||
fi
|
||||
|
||||
if ! linux_chkconfig_present AGP && \
|
||||
! linux_chkconfig_present PCIEPORTBUS; then
|
||||
ewarn "You don't have AGP and/or PCIe support enabled in the kernel"
|
||||
ewarn "Direct rendering will not work."
|
||||
fi
|
||||
|
||||
if ! linux_chkconfig_present ACPI; then
|
||||
eerror "${P} requires the ACPI support in the kernel"
|
||||
eerror "Please enable it:"
|
||||
eerror " CONFIG_ACPI=y"
|
||||
eerror "in /usr/src/linux/.config or"
|
||||
eerror " Power management and ACPI options --->"
|
||||
eerror " [*] Power Management support"
|
||||
eerror "in the 'menuconfig'"
|
||||
error+=" CONFIG_ACPI disabled;"
|
||||
failed=1
|
||||
fi
|
||||
|
||||
if ! linux_chkconfig_present PCI_MSI; then
|
||||
eerror "${P} requires MSI in the kernel."
|
||||
eerror "Please enable it:"
|
||||
eerror " CONFIG_PCI_MSI=y"
|
||||
eerror "in /usr/src/linux/.config or"
|
||||
eerror " Bus options (PCI etc.) --->"
|
||||
eerror " [*] Message Signaled Interrupts (MSI and MSI-X)"
|
||||
eerror "in the kernel config."
|
||||
error+=" CONFIG_PCI_MSI disabled;"
|
||||
failed=1
|
||||
fi
|
||||
|
||||
if linux_chkconfig_present LOCKDEP; then
|
||||
eerror "You've enabled LOCKDEP -- lock tracking -- in the kernel."
|
||||
eerror "Unfortunately, this option exports the symbol lock_acquire as GPL-only."
|
||||
eerror "This prevents ${P} from compiling with an error like this:"
|
||||
eerror "FATAL: modpost: GPL-incompatible module fglrx.ko uses GPL-only symbol 'lock_acquire'"
|
||||
eerror "Please make sure the following options have been unset:"
|
||||
eerror " Kernel hacking --->"
|
||||
eerror " [ ] Lock debugging: detect incorrect freeing of live locks"
|
||||
eerror " [ ] Lock debugging: prove locking correctness"
|
||||
eerror " [ ] Lock usage statistics"
|
||||
eerror "in 'menuconfig'"
|
||||
error+=" LOCKDEP enabled;"
|
||||
failed=1
|
||||
fi
|
||||
|
||||
use amd64 && if ! linux_chkconfig_present COMPAT; then
|
||||
eerror "${P} requires COMPAT."
|
||||
eerror "Please enable the 32 bit emulation:"
|
||||
eerror "Executable file formats / Emulations --->"
|
||||
eerror " [*] IA32 Emulation"
|
||||
eerror "in the kernel config."
|
||||
eerror "if this doesn't enable CONFIG_COMPAT add"
|
||||
eerror " CONFIG_COMPAT=y"
|
||||
eerror "in /usr/src/linux/.config"
|
||||
error+=" COMPAT disabled;"
|
||||
failed=1
|
||||
fi
|
||||
|
||||
kernel_is ge 2 6 37 && kernel_is le 2 6 38 && if ! linux_chkconfig_present BKL ; then
|
||||
eerror "${P} requires BKL."
|
||||
eerror "Please enable the Big Kernel Lock:"
|
||||
eerror "Kernel hacking --->"
|
||||
eerror " [*] Big Kernel Lock"
|
||||
eerror "in the kernel config."
|
||||
eerror "or add"
|
||||
eerror " CONFIG_BKL=y"
|
||||
eerror "in /usr/src/linux/.config"
|
||||
error+=" BKL disabled;"
|
||||
failed=1
|
||||
fi
|
||||
|
||||
#if linux_chkconfig_present X86_X32; then
|
||||
# eerror "You've enabled x32 in the kernel."
|
||||
# eerror "Unfortunately, this option is not supported yet and prevents the fglrx"
|
||||
# eerror "kernel module from loading."
|
||||
# error+=" X86_32 enabled;"
|
||||
# failed=1
|
||||
#fi
|
||||
|
||||
[[ ${failed} -ne 0 ]] && die "${error}"
|
||||
}
|
||||
|
||||
pkg_pretend() {
|
||||
# workaround until bug 365543 is solved
|
||||
if use modules; then
|
||||
linux-info_pkg_setup
|
||||
require_configured_kernel
|
||||
_check_kernel_config
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_setup() {
|
||||
if use modules; then
|
||||
MODULE_NAMES="fglrx(video:${S}/${FOLDER_PREFIX}/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}"
|
||||
BUILD_PARAMS="${BUILD_PARAMS} CFLAGS_MODULE+=\"-DMODULE -DATI -DFGL\""
|
||||
if grep -q arch_compat_alloc_user_space ${KV_DIR}/arch/x86/include/asm/compat.h ; then
|
||||
BUILD_PARAMS="${BUILD_PARAMS} CFLAGS_MODULE+=-DCOMPAT_ALLOC_USER_SPACE=arch_compat_alloc_user_space"
|
||||
else
|
||||
BUILD_PARAMS="${BUILD_PARAMS} CFLAGS_MODULE+=-DCOMPAT_ALLOC_USER_SPACE=compat_alloc_user_space"
|
||||
fi
|
||||
fi
|
||||
# Define module dir.
|
||||
MODULE_DIR="${S}/${FOLDER_PREFIX}/lib/modules/fglrx/build_mod"
|
||||
# get the xorg-server version and set BASE_DIR for that
|
||||
BASE_DIR="${S}/xpic"
|
||||
|
||||
# amd64/x86
|
||||
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
|
||||
|
||||
elog
|
||||
elog "Please note that this driver supports only graphic cards based on"
|
||||
elog "Evergreen chipset and newer."
|
||||
elog "This represent the AMD Radeon HD 5400+ series at this moment."
|
||||
elog
|
||||
elog "If your card is older then use ${CATEGORY}/xf86-video-ati"
|
||||
elog "For migration informations please reffer to:"
|
||||
elog "http://www.gentoo.org/proj/en/desktop/x/x11/ati-migration-guide.xml"
|
||||
einfo
|
||||
}
|
||||
|
||||
src_unpack() {
|
||||
#please note, RUN may be insanely assigned at top near SRC_URI
|
||||
if [[ ${A} =~ .*\.zip ]]; then
|
||||
unpack ${A}
|
||||
[[ -z "$RUN" ]] && RUN="${S}/${A/%.zip/.run}"
|
||||
else
|
||||
RUN="${DISTDIR}/${A}"
|
||||
fi
|
||||
sh ${RUN} --extract "${S}" 2>&1 > /dev/null || die
|
||||
}
|
||||
|
||||
|
||||
src_prepare() {
|
||||
# All kernel options for prepare are ment to be in here
|
||||
if use modules; then
|
||||
# version patches
|
||||
# epatch "${FILESDIR}"/kernel/${PV}-*.patch
|
||||
if use debug; then
|
||||
sed -i '/^#define DRM_DEBUG_CODE/s/0/1/' \
|
||||
"${MODULE_DIR}/firegl_public.c" \
|
||||
|| die "Failed to enable debug output."
|
||||
fi
|
||||
fi
|
||||
|
||||
# These are the userspace utilities that we also have source for.
|
||||
# We rebuild these later.
|
||||
rm \
|
||||
"${ARCH_DIR}"/usr/X11R6/bin/fgl_glxgears \
|
||||
|| die "bin rm failed"
|
||||
|
||||
# in this version amdcccle isn't static, thus we depend on qt4
|
||||
use qt4 || rm "${ARCH_DIR}"/usr/X11R6/bin/amdcccle
|
||||
|
||||
# ACPI fixups
|
||||
sed -i \
|
||||
-e "s:/var/lib/xdm/authdir/authfiles/:/var/run/xauth/:" \
|
||||
-e "s:/var/lib/gdm/:/var/gdm/:" \
|
||||
"${S}/${FOLDER_PREFIX}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}/${FOLDER_PREFIX}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 function to detect default state.
|
||||
epatch "${FILESDIR}"/ati-powermode-opt-path-3.patch
|
||||
|
||||
#fixes bug #420751
|
||||
epatch "${FILESDIR}"/ati-drivers-do_mmap.patch
|
||||
|
||||
# see http://ati.cchtml.com/show_bug.cgi?id=495
|
||||
#epatch "${FILESDIR}"/ati-drivers-old_rsp.patch
|
||||
# first hunk applied upstream second (x32 related) was not
|
||||
epatch "${FILESDIR}"/ati-drivers-x32_something_something.patch
|
||||
|
||||
cd "${MODULE_DIR}"
|
||||
|
||||
# bugged fglrx build system, this file should be copied by hand
|
||||
cp ${ARCH_DIR}/lib/modules/fglrx/build_mod/libfglrx_ip.a 2.6.x
|
||||
|
||||
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"
|
||||
cd "${S}"
|
||||
|
||||
mkdir extra || die "mkdir failed"
|
||||
cd extra
|
||||
unpack ./../${FOLDER_PREFIX}usr/src/ati/fglrx_sample_source.tgz
|
||||
|
||||
# Get rid of watermark. Oldest known reference:
|
||||
# http://phoronix.com/forums/showthread.php?19875-Unsupported-Hardware-watermark
|
||||
ebegin "Disabling watermark"
|
||||
driver="${MY_BASE_DIR}"/usr/X11R6/${PKG_LIBDIR}/modules/drivers/fglrx_drv.so
|
||||
for x in $(objdump -d ${driver}|awk '/call/&&/EnableLogo/{print "\\x"$2"\\x"$3"\\x"$4"\\x"$5"\\x"$6}'); do
|
||||
sed -i "s/${x}/\x90\x90\x90\x90\x90/g" ${driver} || break 1
|
||||
done
|
||||
eend $? || die "Disabling watermark failed"
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
use modules && linux-mod_src_compile
|
||||
|
||||
ebegin "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}"/${FOLDER_PREFIX}usr/include fgl_glxgears.c \
|
||||
-lGL -lGLU -lX11 -lm || die "fgl_glxgears build failed"
|
||||
eend $?
|
||||
}
|
||||
|
||||
src_test() { :; } # no tests present
|
||||
|
||||
src_install() {
|
||||
use modules && 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" || die
|
||||
|
||||
# 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/{glesx.so,amdxmm.so}
|
||||
|
||||
# Arch-specific files.
|
||||
# (s)bin.
|
||||
into /opt
|
||||
dosbin "${ARCH_DIR}"/usr/sbin/atieventsd
|
||||
use qt4 && dosbin "${ARCH_DIR}"/usr/sbin/amdnotifyui
|
||||
dobin "${ARCH_DIR}"/usr/bin/clinfo
|
||||
# We cleaned out the compilable stuff in src_unpack
|
||||
dobin "${ARCH_DIR}"/usr/X11R6/bin/*
|
||||
|
||||
# Common files.
|
||||
# etc.
|
||||
insinto /etc/ati
|
||||
exeinto /etc/ati
|
||||
# Everything except for the authatieventsd.sh script.
|
||||
doins ${FOLDER_PREFIX}etc/ati/{logo*,control,atiogl.xml,signature,amdpcsdb.default}
|
||||
doexe ${FOLDER_PREFIX}etc/ati/authatieventsd.sh
|
||||
|
||||
# include.
|
||||
insinto /usr
|
||||
doins -r ${FOLDER_PREFIX}usr/include
|
||||
insinto /usr/include/X11/extensions
|
||||
|
||||
# Just the atigetsysteminfo.sh script.
|
||||
into /usr
|
||||
dosbin ${FOLDER_PREFIX}usr/sbin/*
|
||||
|
||||
# data files for the control panel.
|
||||
if use qt4 ; then
|
||||
insinto /usr/share
|
||||
doins -r ${FOLDER_PREFIX}usr/share/ati
|
||||
insinto /usr/share/pixmaps
|
||||
doins ${FOLDER_PREFIX}usr/share/icons/ccc_large.xpm
|
||||
make_desktop_entry amdcccle 'AMD Catalyst Control Center' \
|
||||
ccc_large System
|
||||
fi
|
||||
|
||||
# doc.
|
||||
dohtml -r ${FOLDER_PREFIX}usr/share/doc/fglrx
|
||||
|
||||
doman ${FOLDER_PREFIX}usr/share/man/man8/atieventsd.8
|
||||
|
||||
pushd ${FOLDER_PREFIX}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
|
||||
|
||||
# Done with the "source" tree. Install tools we rebuilt:
|
||||
dobin extra/fgl_glxgears/fgl_glxgears
|
||||
newdoc extra/fgl_glxgears/README README.fgl_glxgears
|
||||
|
||||
# Gentoo-specific stuff:
|
||||
newinitd "${FILESDIR}"/atieventsd.init atieventsd
|
||||
echo 'ATIEVENTSDOPTS=""' > "${T}"/atieventsd.conf
|
||||
newconfd "${T}"/atieventsd.conf atieventsd
|
||||
|
||||
# PowerXpress stuff
|
||||
exeinto /usr/$(get_libdir)/fglrx
|
||||
doexe "${FILESDIR}"/switchlibGL || die "doexe switchlibGL failed"
|
||||
cp "${FILESDIR}"/switchlibGL "${T}"/switchlibglx
|
||||
doexe "${T}"/switchlibglx || die "doexe switchlibglx failed"
|
||||
}
|
||||
|
||||
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"
|
||||
local oclsuffix=64
|
||||
else
|
||||
local EX_BASE_DIR="${BASE_DIR}"
|
||||
local pkglibdir=lib
|
||||
local MY_ARCH_DIR="${S}/arch/x86"
|
||||
local oclsuffix=32
|
||||
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
|
||||
newexe "${MY_ARCH_DIR}"/usr/X11R6/${pkglibdir}/fglrx/fglrx-libGL.so.${libver} \
|
||||
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/fglrx/fglrx-libglx.so
|
||||
mv "${D}"/${ATI_ROOT}/extensions/{fglrx-,}libglx.so
|
||||
|
||||
# other libs
|
||||
exeinto /usr/$(get_libdir)
|
||||
# Everything except for the libGL.so installed some row above
|
||||
doexe $(find "${MY_ARCH_DIR}"/usr/X11R6/${pkglibdir} \
|
||||
-maxdepth 1 -type f -name '*.so*' -not -name '*libGL.so*')
|
||||
insinto /usr/$(get_libdir)
|
||||
doins $(find "${MY_ARCH_DIR}"/usr/X11R6/${pkglibdir} \
|
||||
-maxdepth 1 -type f -not -name '*.so*')
|
||||
|
||||
# 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 and OpenCL libraries
|
||||
exeinto /usr/$(get_libdir)/OpenCL/vendors/amd
|
||||
doexe "${MY_ARCH_DIR}"/usr/${pkglibdir}/libamdocl*.so*
|
||||
doexe "${MY_ARCH_DIR}"/usr/${pkglibdir}/libOpenCL*.so*
|
||||
dosym libOpenCL.so.${libmajor} /usr/$(get_libdir)/OpenCL/vendors/amd/libOpenCL.so
|
||||
exeinto /usr/$(get_libdir)
|
||||
doexe "${MY_ARCH_DIR}"/usr/${pkglibdir}/libati*.so*
|
||||
|
||||
# OpenCL vendor files
|
||||
insinto /etc/OpenCL/vendors/
|
||||
cat > "${T}"/amdocl${oclsuffix}.icd <<-EOF
|
||||
/usr/$(get_libdir)/OpenCL/vendors/amd/libamdocl${oclsuffix}.so
|
||||
EOF
|
||||
doins "${T}"/amdocl${oclsuffix}.icd
|
||||
|
||||
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}"
|
||||
|
||||
# Silence the QA notice by creating missing soname symlinks
|
||||
for so in $(find "${D}"/usr/$(get_libdir) -maxdepth 1 -name *.so.[0-9].[0-9])
|
||||
do
|
||||
local soname=${so##*/}
|
||||
## let's keep also this alternative way ;)
|
||||
#dosym ${soname} /usr/$(get_libdir)/${soname%.[0-9]}
|
||||
dosym ${soname} /usr/$(get_libdir)/$(scanelf -qF "#f%S" ${so})
|
||||
done
|
||||
|
||||
#remove static libs if not wanted
|
||||
use static-libs || rm -rf "${D}"/usr/$(get_libdir)/libfglrx_dm.a
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
elog "To switch to AMD 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 "Fully rebooting the system after an ${PN} update is recommended"
|
||||
elog "Stopping Xorg, reloading fglrx kernel module and restart Xorg"
|
||||
elog "might not work"
|
||||
elog
|
||||
elog "Some cards need acpid running to handle events"
|
||||
elog "Please add it to boot runlevel with rc-update add acpid boot"
|
||||
elog
|
||||
|
||||
use modules && linux-mod_pkg_postinst
|
||||
"${ROOT}"/usr/bin/eselect opengl set --use-old ati
|
||||
"${ROOT}"/usr/bin/eselect opencl set --use-old amd
|
||||
}
|
||||
|
||||
pkg_preinst() {
|
||||
use modules && linux-mod_pkg_preinst
|
||||
}
|
||||
|
||||
pkg_prerm() {
|
||||
"${ROOT}"/usr/bin/eselect opengl set --use-old xorg-x11
|
||||
}
|
||||
|
||||
pkg_postrm() {
|
||||
use modules && linux-mod_pkg_postrm
|
||||
"${ROOT}"/usr/bin/eselect opengl set --use-old xorg-x11
|
||||
}
|
||||
|
|
@ -1,19 +0,0 @@
|
|||
--- a/common/lib/modules/fglrx/build_mod/firegl_public.c
|
||||
+++ b/common/lib/modules/fglrx/build_mod/firegl_public.c
|
||||
@@ -5797,10 +5797,16 @@ void ATI_API_CALL KCL_fpu_begin(void)
|
||||
#ifdef CONFIG_X86_64
|
||||
kernel_fpu_begin();
|
||||
#else
|
||||
+#ifndef TS_USEDFPU
|
||||
+ preempt_disable();
|
||||
+ if (__thread_has_fpu(current))
|
||||
+ __save_init_fpu(current);
|
||||
+#else
|
||||
struct thread_info *cur_task = current_thread_info();
|
||||
preempt_disable();
|
||||
if (cur_task->status & TS_USEDFPU)
|
||||
__save_init_fpu(cur_task->task);
|
||||
+#endif
|
||||
else
|
||||
clts();
|
||||
#endif
|
||||
|
|
@ -1,42 +0,0 @@
|
|||
--- common/lib/modules/fglrx/build_mod/kcl_debug.h.orig 2012-03-08 19:30:38.195025328 +0100
|
||||
+++ common/lib/modules/fglrx/build_mod/kcl_debug.h 2012-03-08 19:31:24.976024507 +0100
|
||||
@@ -85,8 +85,8 @@
|
||||
#ifdef ERROR
|
||||
#undef ERROR
|
||||
#endif
|
||||
-#ifdef WARN
|
||||
-#undef WARN
|
||||
+#ifdef AMD_WARN
|
||||
+#undef AMD_WARN
|
||||
#endif
|
||||
#ifdef INFO
|
||||
#undef INFO
|
||||
@@ -122,7 +122,7 @@
|
||||
{
|
||||
SPECIAL = 0,
|
||||
ERROR ,
|
||||
- WARN ,
|
||||
+ AMD_WARN ,
|
||||
INFO ,
|
||||
INFOEX,
|
||||
TRACE,
|
||||
@@ -160,7 +160,7 @@
|
||||
}log_map;
|
||||
|
||||
|
||||
-#define DEFAULT_LOG_LEVEL ((U08)(___BIT(INFO) | ___BIT(INFOEX) |___BIT(ERROR) |___BIT(WARN) | ___BIT(TRACE)| ___BIT(SPECIAL) ))
|
||||
+#define DEFAULT_LOG_LEVEL ((U08)(___BIT(INFO) | ___BIT(INFOEX) |___BIT(ERROR) |___BIT(AMD_WARN) | ___BIT(TRACE)| ___BIT(SPECIAL) ))
|
||||
#define INFO_LOG_LEVEL ((U08)(___BIT(INFO) | ___BIT(INFOEX)))
|
||||
extern const log_map module_log_map[];
|
||||
extern const module_map module_type_map[];
|
||||
--- common/lib/modules/fglrx/build_mod/kcl_debug.c.orig 2012-03-08 19:36:18.244019310 +0100
|
||||
+++ common/lib/modules/fglrx/build_mod/kcl_debug.c 2012-03-08 19:36:36.197018973 +0100
|
||||
@@ -69,7 +69,7 @@
|
||||
{
|
||||
{SPECIAL , 'S'},
|
||||
{ERROR , 'E'},
|
||||
- {WARN , 'W'},
|
||||
+ {AMD_WARN , 'W'},
|
||||
{INFO , 'I'},
|
||||
{INFOEX , 'X'},
|
||||
{TRACE , 'T'},
|
||||
|
|
@ -1,50 +0,0 @@
|
|||
--- a/common/lib/modules/fglrx/build_mod/firegl_public.c 2012-06-15 18:30:13.483762070 +0200
|
||||
+++ b/common/lib/modules/fglrx/build_mod/firegl_public.c 2012-06-17 17:47:36.543041869 +0200
|
||||
@@ -2106,6 +2106,12 @@
|
||||
}
|
||||
}
|
||||
|
||||
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 5, 0)
|
||||
+# define NO_DO_MMAP
|
||||
+# define do_mmap(a,b,c,d,e,f) vm_mmap(a, b, c, d, e, f)
|
||||
+# define do_munmap(a,b,c) vm_munmap(b, c)
|
||||
+#endif
|
||||
+
|
||||
unsigned long ATI_API_CALL KCL_MEM_AllocLinearAddrInterval(
|
||||
KCL_IO_FILE_Handle file,
|
||||
unsigned long addr,
|
||||
@@ -2117,10 +2123,13 @@
|
||||
|
||||
flags = MAP_SHARED;
|
||||
prot = PROT_READ|PROT_WRITE;
|
||||
-
|
||||
+#ifdef NO_DO_MMAP
|
||||
+ vaddr = (void *) vm_mmap(file, 0, len, prot, flags, pgoff);
|
||||
+#else
|
||||
down_write(¤t->mm->mmap_sem);
|
||||
vaddr = (void *) do_mmap(file, 0, len, prot, flags, pgoff);
|
||||
up_write(¤t->mm->mmap_sem);
|
||||
+#endif
|
||||
if (IS_ERR(vaddr))
|
||||
return 0;
|
||||
else
|
||||
@@ -2131,7 +2140,9 @@
|
||||
{
|
||||
int retcode = 0;
|
||||
|
||||
+#ifndef NO_DO_MMAP
|
||||
down_write(¤t->mm->mmap_sem);
|
||||
+#endif
|
||||
#ifdef FGL_LINUX_RHEL_MUNMAP_API
|
||||
retcode = do_munmap(current->mm,
|
||||
addr,
|
||||
@@ -2142,7 +2153,9 @@
|
||||
addr,
|
||||
len);
|
||||
#endif
|
||||
+#ifndef NO_DO_MMAP
|
||||
up_write(¤t->mm->mmap_sem);
|
||||
+#endif
|
||||
return retcode;
|
||||
}
|
||||
|
||||
|
|
@ -1,24 +0,0 @@
|
|||
--- a/common/lib/modules/fglrx/build_mod/firegl_public.c 2012-05-26 18:33:25.044695179 +0200
|
||||
+++ b/common/lib/modules/fglrx/build_mod/firegl_public.c 2012-05-26 18:28:39.692699095 +0200
|
||||
@@ -4154,7 +4154,7 @@
|
||||
{
|
||||
unsigned int p;
|
||||
KCL_DEBUG5(FN_FIREGL_KAS, "%d\n", level_init);
|
||||
- for_each_cpu_mask(p, cpu_possible_map)
|
||||
+ for_each_possible_cpu(p)
|
||||
{
|
||||
KCL_DEBUG1(FN_FIREGL_KAS,"Setting initial execution level for CPU # %d\n", p);
|
||||
preempt_disable();
|
||||
--- a/common/lib/modules/fglrx/build_mod/kcl_ioctl.c 2012-05-26 19:11:03.402987821 +0200
|
||||
+++ b/common/lib/modules/fglrx/build_mod/kcl_ioctl.c 2012-05-26 19:13:00.273986422 +0200
|
||||
@@ -217,6 +217,10 @@
|
||||
* \param size [in] Number of bytes to allocate
|
||||
* \return Pointer to allocated memory
|
||||
*/
|
||||
+#ifndef CONFIG_X86_X32
|
||||
+DEFINE_PER_CPU(unsigned long, old_rsp);
|
||||
+#endif
|
||||
+
|
||||
void* ATI_API_CALL KCL_IOCTL_AllocUserSpace32(long size)
|
||||
{
|
||||
void __user *ret = COMPAT_ALLOC_USER_SPACE(size);
|
||||
|
|
@ -1,13 +0,0 @@
|
|||
--- a/common/lib/modules/fglrx/build_mod/kcl_ioctl.c 2012-05-26 19:11:03.402987821 +0200
|
||||
+++ b/common/lib/modules/fglrx/build_mod/kcl_ioctl.c 2012-05-26 19:13:00.273986422 +0200
|
||||
@@ -217,6 +217,10 @@
|
||||
* \param size [in] Number of bytes to allocate
|
||||
* \return Pointer to allocated memory
|
||||
*/
|
||||
+#ifndef CONFIG_X86_X32
|
||||
+DEFINE_PER_CPU(unsigned long, old_rsp);
|
||||
+#endif
|
||||
+
|
||||
void* ATI_API_CALL KCL_IOCTL_AllocUserSpace32(long size)
|
||||
{
|
||||
void __user *ret = COMPAT_ALLOC_USER_SPACE(size);
|
||||
|
|
@ -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
|
||||
|
||||
|
|
@ -1,40 +0,0 @@
|
|||
--- a/common/usr/share/doc/fglrx/examples/etc/acpi/ati-powermode.sh 2012-08-17 22:39:05.077984979 +0800
|
||||
+++ b/common/usr/share/doc/fglrx/examples/etc/acpi/ati-powermode.sh 2012-08-17 22:41:15.919976149 +0800
|
||||
@@ -4,6 +4,8 @@
|
||||
# Control script for ACPI lid state and AC adapter state
|
||||
#
|
||||
|
||||
+aticonfig='/opt/bin/aticonfig'
|
||||
+
|
||||
getXuser() {
|
||||
user=`who| 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 --effective=now"
|
||||
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=3 --effective=now"
|
||||
fi
|
||||
fi
|
||||
|
|
@ -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 $?
|
||||
}
|
||||
|
|
@ -1,61 +0,0 @@
|
|||
#!/bin/bash
|
||||
# switchlibGL
|
||||
#
|
||||
# Copyright (c) 2011 Advanced Micro Devices, Inc.
|
||||
#
|
||||
# Purpose:
|
||||
# For switch between AMD and Intel graphic driver library.
|
||||
#
|
||||
# Usage:
|
||||
# switchlibGL amd|intel|query
|
||||
# amd: switches to the AMD version of libGL.
|
||||
# intel: switches to the open-source version of libGL .
|
||||
# query: checks, which version is currently active and prints either "amd"
|
||||
# or "intel" or "unknown" on the standard output.
|
||||
# must be root to execute this script
|
||||
|
||||
ARCH=`uname -m`
|
||||
E_ERR=1
|
||||
|
||||
# Check if root
|
||||
if [ "`whoami`" != "root" ]; then
|
||||
echo "Must be root to run this script." 1>&2
|
||||
exit $E_ERR
|
||||
fi
|
||||
|
||||
# One parameter
|
||||
if [ $# -ne 1 ]; then
|
||||
echo "Usage: `basename $0` amd|intel|query " 1>&2
|
||||
echo "Please choose one parameter " 1>&2
|
||||
exit $E_ERR
|
||||
fi
|
||||
|
||||
current=$(eselect opengl show)
|
||||
# Switch to right mode
|
||||
case "$1" in
|
||||
"amd" )
|
||||
if [ $current != ati ] ; then
|
||||
eselect opengl set ati || return 1
|
||||
fi
|
||||
;;
|
||||
"intel" )
|
||||
if [ $current != xorg-x11 ] ; then
|
||||
eselect opengl set xorg-x11 || return 1
|
||||
fi
|
||||
;;
|
||||
"query" )
|
||||
case "$current" in
|
||||
"ati" )
|
||||
echo "amd"
|
||||
;;
|
||||
"xorg-x11" )
|
||||
echo "intel"
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
* ) echo "Usage: `basename $0` amd|intel|query" 1>&2; exit $E_ERR;;
|
||||
# other than amd|intel|query parameter report an error
|
||||
esac
|
||||
|
||||
# A zero return value from the script upon exit indicates success.
|
||||
exit 0
|
||||
|
|
@ -1,26 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
|
||||
<pkgmetadata>
|
||||
<herd>x11</herd>
|
||||
<maintainer>
|
||||
<email>lu_zero@gentoo.org</email>
|
||||
</maintainer>
|
||||
<maintainer>
|
||||
<email>enrico.tagliavini@gmail.com</email>
|
||||
<name>Enrico Tagliavini</name>
|
||||
<description>Proxied co-maintainer</description>
|
||||
</maintainer>
|
||||
<use>
|
||||
<flag name='qt4'>
|
||||
Install qt4 dependent optional tools (e.g Catalyst Control Panel)
|
||||
</flag>
|
||||
</use>
|
||||
<use>
|
||||
<flag name='modules'>Build the kernel modules</flag>
|
||||
</use>
|
||||
<use>
|
||||
<flag name='pax_kernel'>
|
||||
Enable if the user plans to run the package under a pax enabled hardened kernel
|
||||
</flag>
|
||||
</use>
|
||||
</pkgmetadata>
|
||||
Loading…
Reference in a new issue