commit: 8dd557ff4303226a49aecb544c8e8d0594b91c99 Author: Emil Karlson <jekarlson <AT> gmail <DOT> com> AuthorDate: Tue Dec 8 11:13:50 2015 +0000 Commit: Emil Karlson <jekarlson <AT> gmail <DOT> com> CommitDate: Tue Dec 8 11:13:50 2015 +0000 URL: https://gitweb.gentoo.org/proj/x11.git/commit/?id=8dd557ff
x11-drivers/ati-drivers: version bump Thanks to Rion for comtributed patch ...s-14.2_beta.ebuild => ati-drivers-15.11.ebuild} | 109 +++++++++++---------- .../ati-drivers-15.11-remove-gpl-symbols.patch | 48 +++++++++ x11-drivers/ati-drivers/files/atieventsd.service | 9 ++ 3 files changed, 112 insertions(+), 54 deletions(-) diff --git a/x11-drivers/ati-drivers/ati-drivers-14.2_beta.ebuild b/x11-drivers/ati-drivers/ati-drivers-15.11.ebuild similarity index 90% rename from x11-drivers/ati-drivers/ati-drivers-14.2_beta.ebuild rename to x11-drivers/ati-drivers/ati-drivers-15.11.ebuild index bfd9728..e38c540 100644 --- a/x11-drivers/ati-drivers/ati-drivers-14.2_beta.ebuild +++ b/x11-drivers/ati-drivers/ati-drivers-15.11.ebuild @@ -4,19 +4,20 @@ EAPI=5 -inherit eutils multilib linux-info linux-mod toolchain-funcs versionator pax-utils +MULTILIB_COMPAT=( abi_x86_{32,64} ) +inherit eutils multilib-build linux-info linux-mod systemd toolchain-funcs versionator pax-utils DESCRIPTION="Ati precompiled drivers for Radeon Evergreen (HD5000 Series) and newer chipsets" HOMEPAGE="http://www.amd.com" -RUN="${WORKDIR}/amd-driver-installer-13.35.1005-x86.x86_64.run" +RUN="${WORKDIR}/fglrx-15.30.1025/amd-driver-installer-15.30.1025-x86.x86_64.run" SLOT="1" # Uses javascript for download YESSSS #DRIVERS_URI="http://www2.ati.com/drivers/linux/amd-catalyst-13.12-linux-x86.x86_64.zip" -DRIVERS_URI="http://dev.gentooexperimental.org/~scarabeus/amd-catalyst-14.2-betav1.3-linux-x86.x86_64.zip" +DRIVERS_URI="mirror://gentoo/radeon-crimson-15.11-15.30.1025.zip" XVBA_SDK_URI="http://developer.amd.com/wordpress/media/2012/10/xvba-sdk-0.74-404001.tar.gz" SRC_URI="${DRIVERS_URI} ${XVBA_SDK_URI}" FOLDER_PREFIX="common/" -IUSE="debug +modules multilib qt4 static-libs pax_kernel" +IUSE="debug +modules qt4 static-libs pax_kernel gdm-hack" LICENSE="AMD GPL-2 QPL-1.0" KEYWORDS="-* ~amd64 ~x86" @@ -24,30 +25,18 @@ KEYWORDS="-* ~amd64 ~x86" RESTRICT="bindist test" RDEPEND=" - <=x11-base/xorg-server-1.15.49[-minimal] + <=x11-base/xorg-server-1.17.49[-minimal] >=app-eselect/eselect-opengl-1.0.7 app-eselect/eselect-opencl sys-power/acpid x11-apps/xauth - x11-libs/libX11 - x11-libs/libXext - x11-libs/libXinerama - x11-libs/libXrandr - x11-libs/libXrender - virtual/glu - multilib? ( - app-emulation/emul-linux-x86-opengl - || ( - ( - x11-libs/libX11[abi_x86_32] - x11-libs/libXext[abi_x86_32] - x11-libs/libXinerama[abi_x86_32] - x11-libs/libXrandr[abi_x86_32] - x11-libs/libXrender[abi_x86_32] - ) - app-emulation/emul-linux-x86-xlibs - ) - ) + !x11-libs/xvba-video + virtual/glu[${MULTILIB_USEDEP}] + x11-libs/libX11[${MULTILIB_USEDEP}] + x11-libs/libXext[${MULTILIB_USEDEP}] + x11-libs/libXinerama[${MULTILIB_USEDEP}] + x11-libs/libXrandr[${MULTILIB_USEDEP}] + x11-libs/libXrender[${MULTILIB_USEDEP}] qt4? ( x11-libs/libICE x11-libs/libSM @@ -57,6 +46,9 @@ RDEPEND=" dev-qt/qtcore:4 dev-qt/qtgui:4[accessibility] ) + gdm-hack? ( + x11-base/xorg-server:= + ) " if [[ legacy != ${SLOT} ]]; then RDEPEND="${RDEPEND} @@ -120,6 +112,7 @@ QA_SONAME=" usr/lib\(32\|64\)\?/libaticaldd.so usr/lib\(32\|64\)\?/libaticalrt.so usr/lib\(32\|64\)\?/libamdocl\(32\|64\)\?.so + usr/lib\(32\|64\)\?/libamdhsasc\(32\|64\)\?.so " QA_DT_HASH=" @@ -152,6 +145,14 @@ QA_DT_HASH=" usr/lib\(32\|64\)\?/OpenCL/vendors/amd/libOpenCL.so.1 " +pkg_nofetch() { + einfo "The driver packages" + einfo ${A} + einfo "need to be downloaded manually from" + einfo "http://support.amd.com/en-us/download/desktop?os=Linux%20x86_64" + einfo "and ${XVBA_SDK_URI}" +} + pkg_pretend() { local CONFIG_CHECK="~MTRR ~!DRM ACPI PCI_MSI !LOCKDEP !PAX_KERNEXEC_PLUGIN_METHOD_OR" use amd64 && CONFIG_CHECK+=" COMPAT" @@ -193,7 +194,7 @@ pkg_setup() { 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="GCC_VER_MAJ=$(gcc-major-version) KVER=${KV_FULL} KDIR=${KV_OUT_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" @@ -224,7 +225,7 @@ pkg_setup() { elog elog "If your card is older then use ${CATEGORY}/xf86-video-ati" elog "For migration informations please refer to:" - elog "http://www.gentoo.org/proj/en/desktop/x/x11/ati-migration-guide.xml" + elog "https://www.gentoo.org/proj/en/desktop/x/x11/ati-migration-guide.xml" einfo } @@ -235,6 +236,8 @@ src_unpack() { if [[ ${DRIVERS_DISTFILE} =~ .*\.tar\.gz ]]; then unpack ${DRIVERS_DISTFILE} + mkdir -p common + mv etc lib usr common || die "Assumed to find etc lib and usr for common" else #please note, RUN may be insanely assigned at top near SRC_URI if [[ ${DRIVERS_DISTFILE} =~ .*\.zip ]]; then @@ -296,25 +299,18 @@ src_prepare() { # compile fix for AGP-less kernel, bug #435322 epatch "${FILESDIR}"/ati-drivers-12.9-KCL_AGP_FindCapsRegisters-stub.patch - # Compile fix for kernel typesafe uid types #469160 - epatch "${FILESDIR}/typesafe-kuid.diff" - epatch "${FILESDIR}/ati-drivers-13.8-beta-include-seq_file.patch" - epatch "${FILESDIR}/check-for-iommu-only-if-iommu-is-supported.patch" - # Fix #483400 epatch "${FILESDIR}/fgl_glxgears-do-not-include-glATI.patch" - # Fix build on new kernels - #epatch "${FILESDIR}/ati-drivers-13.12-acpi.patch" - - # Add support for linux-3.13. See #498766 - #epatch "${FILESDIR}/ati-drivers-linux-3.13-acpi-handle.patch" + epatch "${FILESDIR}/ati-drivers-15.11-remove-gpl-symbols.patch" # Compile fix, https://bugs.gentoo.org/show_bug.cgi?id=454870 use pax_kernel && epatch "${FILESDIR}/const-notifier-block.patch" + epatch_user + cd "${MODULE_DIR}" # bugged fglrx build system, this file should be copied by hand @@ -382,21 +378,7 @@ src_install() { # 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 + multilib_foreach_abi src_install-libs # This is sorted by the order the files occur in the source tree. @@ -408,6 +390,11 @@ src_install() { exeinto /usr/$(get_libdir)/xorg/modules doexe "${MY_BASE_DIR}"/usr/X11R6/${PKG_LIBDIR}/modules/{glesx.so,amdxmm.so} + #516816 + if use gdm-hack; then + sed -i 's#/proc/%i/fd/0#/etc/ati/xvrn#g' "${D}/usr/$(get_libdir)/xorg/modules/drivers/fglrx_drv.so" || die "Applying gdm-hack failed" + fi + # Arch-specific files. # (s)bin. into /opt @@ -466,12 +453,16 @@ src_install() { newinitd "${FILESDIR}"/atieventsd.init atieventsd echo 'ATIEVENTSDOPTS=""' > "${T}"/atieventsd.conf newconfd "${T}"/atieventsd.conf atieventsd + systemd_dounit "${FILESDIR}/atieventsd.service" # 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" + + #516816 + use gdm-hack && Xorg -version > "${D}/etc/ati/xvrn" 2>&1 } src_install-libs() { @@ -501,9 +492,16 @@ src_install-libs() { 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 + if multilib_is_native_abi; then + 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 + + #516816 + if use gdm-hack; then + sed -i 's#/proc/%i/fd/0#/etc/ati/xvrn#g' "${D}/${ATI_ROOT}/extensions/libglx.so" || die "Applying gdm-hack failed" + fi + fi # other libs exeinto /usr/$(get_libdir) @@ -560,6 +558,9 @@ src_install-libs() { #install xvba sdk headers doheader xvba_sdk/include/amdxvba.h + # VA-API internal wrapper + dosym /usr/$(get_libdir)/libXvBAW.so.1.0 /usr/$(get_libdir)/va/drivers/fglrx_drv_video.so + if use pax_kernel; then pax-mark m "${D}"/usr/lib*/opengl/ati/lib/libGL.so.1.2 || die "pax-mark failed" fi diff --git a/x11-drivers/ati-drivers/files/ati-drivers-15.11-remove-gpl-symbols.patch b/x11-drivers/ati-drivers/files/ati-drivers-15.11-remove-gpl-symbols.patch new file mode 100644 index 0000000..5cea796 --- /dev/null +++ b/x11-drivers/ati-drivers/files/ati-drivers-15.11-remove-gpl-symbols.patch @@ -0,0 +1,48 @@ +--- a/common/lib/modules/fglrx/build_mod/firegl_public.c 2015-09-18 23:57:02.000000000 -0400 ++++ b/common/lib/modules/fglrx/build_mod/firegl_public.c 2015-09-18 23:57:11.000000000 -0400 +@@ -136,7 +136,6 @@ + #include <asm/mman.h> + #include <asm/uaccess.h> + #include <asm/processor.h> +-#include <asm/tlbflush.h> // for flush_tlb_page + #include <asm/cpufeature.h> + #ifdef CONFIG_MTRR + #include <asm/mtrr.h> +@@ -251,6 +250,26 @@ + #define WRITE_CR4(x) write_cr4(x) + #endif + ++#define __flush_tlb_one(addr) asm volatile("invlpg (%0)" ::"r" (addr) : "memory") ++#define __flush_tlb() native_write_cr3(native_read_cr3()) ++ ++static inline void __flush_tlb_all(void) ++{ ++ if (cpu_has_pge) ++ { ++ unsigned long flags, cr4; ++ raw_local_irq_save(flags); ++ cr4 = native_read_cr4(); ++ native_write_cr4(cr4 & ~X86_CR4_PGE); ++ native_write_cr4(cr4); ++ raw_local_irq_restore(flags); ++ } ++ else ++ { ++ __flush_tlb(); ++ } ++} ++ + // ============================================================ + /* globals */ + +--- a/common/lib/modules/fglrx/build_mod/kcl_acpi.c 2015-09-19 00:43:35.000000000 -0400 ++++ b/common/lib/modules/fglrx/build_mod/kcl_acpi.c 2015-09-19 00:43:48.000000000 -0400 +@@ -868,7 +868,7 @@ void ATI_API_CALL KCL_ACPI_No_Hotplug(vo + #elif LINUX_VERSION_CODE >= KERNEL_VERSION(3,17,0) + if(pdev) + { +-#if (UTS_UBUNTU_RELEASE_ABI < 0 && LINUX_VERSION_CODE < KERNEL_VERSION(4,1,3)) || (UTS_UBUNTU_RELEASE_ABI >= 0 && UTS_UBUNTU_RELEASE_ABI < 26 && LINUX_VERSION_CODE <= KERNEL_VERSION(3,19,8)) ++#if 0 && (UTS_UBUNTU_RELEASE_ABI < 0 && LINUX_VERSION_CODE < KERNEL_VERSION(4,1,3)) || (UTS_UBUNTU_RELEASE_ABI >= 0 && UTS_UBUNTU_RELEASE_ABI < 26 && LINUX_VERSION_CODE <= KERNEL_VERSION(3,19,8)) + pci_ignore_hotplug(pdev); + #else + pdev->ignore_hotplug = 1; diff --git a/x11-drivers/ati-drivers/files/atieventsd.service b/x11-drivers/ati-drivers/files/atieventsd.service new file mode 100644 index 0000000..72df6c4 --- /dev/null +++ b/x11-drivers/ati-drivers/files/atieventsd.service @@ -0,0 +1,9 @@ +[Unit] +Description=Catalyst event Daemon +Requires=acpid.socket + +[Service] +ExecStart=/opt/sbin/atieventsd --nodaemon + +[Install] +WantedBy=multi-user.target