# Maintainer: Neophytos Kolokotronis _extramodules=extramodules-3.2-lts _kernver="$(cat /usr/lib/modules/${_extramodules}/version)" url_ref="http://support.amd.com/en-us/download/desktop?os=Linux+x86" DLAGENTS="http::/usr/bin/curl --referer ${url_ref} -o %o %u" pkgname=catalyst-lts pkgver=14.4 pkgrel=2 _amdver=14.10.1006.1001 pkgdesc="AMD/ATI Catalyst drivers for linux. fglrx kernel module only" arch=('x86_64') url="http://www.amd.com" screenshot="http://linuxtation3.files.wordpress.com/2007/03/pantallazo.jpg" license=('custom') depends=('linux-lts>=3.2' 'linux-lts<3.4' 'catalyst-utils') makedepends=('gcc-libs' 'gcc>4.0.0' 'make' 'linux-lts-headers') conflicts=('catalyst-test' 'nvidia' 'xf86-video-ati' 'xf86-video-radeonhd') install=catalyst.install source=(http://www2.ati.com/drivers/linux/amd-catalyst-${pkgver/./-}-rev2-linux-x86-x86-64-may6.zip ati_make.sh makefile_compat.patch lano1106_fglrx_intel_iommu.patch lano1106_kcl_agp_13_4.patch lano1106_fglrx-13.8_proc.patch ati-compat_alloc_user_space.patch fglrx_supported) md5sums=('6e9483e8d34aea68af22fbb70116275f' '660396540b0ceaff71d6155c986734de' '3e1b82bd69774ea808da69c983d6a43b' '5184b94a2a40216a67996999481dd9ee' 'c5156eddf81c8a1719b160d05a2e8d67' '2ab4837233de42332753882445373d7b' '21013e49598edfffa7f37b62b2d6a930' '8bd182de340d6ed8b2dfcedfd3e5a389') build() { msg "Unpacking archive ..." /bin/sh ./fglrx-${_amdver}/amd-driver-installer-${_amdver}-x86.x86_64.run --extract archive_files msg "Setting compilation variables ..." # include ati_make.sh and use _ati_check function from it . ati_make.sh _ati_check BUILDARCH=x86_64 _archdir=x86_64 cd "${srcdir}/archive_files/" msg "Applying patch(es) ..." # makefile patch to choose arch_compat_alloc_user_space or older compat_alloc_user_space # works only in combination with ati_make.sh script patch -Np1 -i ../makefile_compat.patch patch -Np1 -i ../lano1106_fglrx_intel_iommu.patch patch -Np1 -i ../lano1106_kcl_agp_13_4.patch patch -Np1 -i ../lano1106_fglrx-13.8_proc.patch # https://github.com/herecura/herecura/blob/master/keep-old-system-alive/catalyst-legacy-slk/ati-2.6.36-compat_alloc_user_space.patch patch -Np1 -i ../ati-compat_alloc_user_space.patch cd "${srcdir}/archive_files/common/lib/modules/fglrx/build_mod" cp "${srcdir}/archive_files/arch/${_archdir}/lib/modules/fglrx/build_mod/libfglrx_ip.a" . cp 2.6.x/Makefile . msg "Compiling fglrx module ..." # Compile module using _ati_check variables CFLAGS_MODULE="-DMODULE -DATI -DFGL -DPAGE_ATTR_FIX=$PAGE_ATTR_FIX -DCOMPAT_ALLOC_USER_SPACE=$COMPAT_ALLOC_USER_SPACE $def_smp $def_modversions" make -C /usr/lib/modules/${_kernver}/build SUBDIRS="`pwd`" ARCH=${BUILDARCH} \ MODFLAGS="$CFLAGS_MODULE" \ CFLAGS_MODULE="$CFLAGS_MODULE" \ PAGE_ATTR_FIX=$PAGE_ATTR_FIX COMPAT_ALLOC_USER_SPACE=$COMPAT_ALLOC_USER_SPACE modules } package() { # here we are checking kernel's extramodules dir for r in /usr/lib/modules/*; do s=${r:17} if [[ ${s:0:3} = "ext" ]]; then if [[ `cat ${r}/version | grep -c ${_kernver}` != 0 ]]; then _destidir=${s} sed -i -e "s/EXTRAMODULES=.*/EXTRAMODULES=${s}/" $startdir/catalyst.install fi elif [[ ${s} = ${_kernver} ]] && [[ ! -e ${r}/extramodules ]]; then _destidir=${_kernver}/video sed -i -e "s/EXTRAMODULES=.*/EXTRAMODULES=null/" $startdir/catalyst.install fi done cd "${srcdir}/archive_files/common/lib/modules/fglrx/build_mod" install -m755 -d "${pkgdir}/usr/lib/modules/${_destidir}/" install -m644 fglrx.ko "${pkgdir}/usr/lib/modules/${_destidir}/" find "${pkgdir}" -name '*.ko' -exec gzip -9 {} \; sed -i -e "s/KERNEL_VERSION=.*/KERNEL_VERSION=${_kernver}/" $startdir/catalyst.install # License install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}" install -m644 "${srcdir}/archive_files/LICENSE.TXT" "${pkgdir}/usr/share/licenses/${pkgname}/" }