# # Chakra Packages for Chakra, part of chakra-project.org # # maintainer (i686): Phil Miller # maintainer (x86_64): Manuel Tortosa # Find the kernel name inside the chroot _extramodules=extramodules-`pacman -Q linux | cut -c7-9 | sed 's/linux //g'`-CHAKRA _kver="$(cat /lib/modules/${_extramodules}/version)" pkgname=catalyst pkgver=12.2 pkgrel=1 pkgdesc="AMD/ATI Catalyst drivers for linux. fglrx kernel module only" arch=('i686' 'x86_64') url="http://www.ati.amd.com" license=('custom') depends=('linux>=3.2' 'linux<3.3' 'catalyst-utils') makedepends=('gcc-libs' 'gcc>4.0.0' 'make' 'linux-headers') conflicts=('catalyst-test' 'nvidia' 'xf86-video-ati' 'xf86-video-radeonhd' 'ati-dri') install=${pkgname}.install source=(http://www2.ati.com/drivers/linux/amd-driver-installer-${pkgver/./-}-x86.x86_64.run ati_make.sh makefile_compat.patch 3.2.8.patch) md5sums=('7764bd0343ed542a8e0ebed05e347865' '660396540b0ceaff71d6155c986734de' '3e1b82bd69774ea808da69c983d6a43b' '32c8142c73dcfed5db426f494feda9e3') build() { msg "Setting compilation variables ..." ## include ati_make.sh and use _ati_check function from it . ati_make.sh _ati_check msg "Unpacking archive ..." /bin/sh ./amd-driver-installer-${pkgver/./-}-x86.x86_64.run --extract archive_files if [ "${CARCH}" = "x86_64" ]; then BUILDARCH=x86_64 _archdir=x86_64 sed -i -e s'~COMPAT_ALLOC_USER_SPACE~arch_compat_alloc_user_space~' ${srcdir}/archive_files/common/lib/modules/fglrx/build_mod//kcl_ioctl.c fi if [ "${CARCH}" = "i686" ]; then BUILDARCH=i386 _archdir=x86 fi 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 ../3.2.8.patch #if [[ ${_kver:0:6} < "2.6.39" ]] && [[ `cat /lib/modules/${_kver}/build/.config | grep -c CONFIG_BKL=y` = 0 ]]; then # patch -Np1 -i ../no_bkl.patch #fi 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 make -C /lib/modules/${_kver}/build SUBDIRS="`pwd`" ARCH=${BUILDARCH} \ MODFLAGS="-DMODULE -DATI -DFGL -DPAGE_ATTR_FIX=$PAGE_ATTR_FIX -DCOMPAT_ALLOC_USER_SPACE=$COMPAT_ALLOC_USER_SPACE $def_smp $def_modversions" \ 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 /lib/modules/*; do s=${r:13} 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}/lib/modules/${_extramodules}" install -m644 fglrx.ko "${pkgdir}/lib/modules/${_extramodules}" gzip "${pkgdir}/lib/modules/${_extramodules}/fglrx.ko" ## License install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}" install -m644 "${srcdir}/archive_files/LICENSE.TXT" "${pkgdir}/usr/share/licenses/${pkgname}/" sed -i -e "s/EXTRAMODULES='.*'/EXTRAMODULES='${_extramodules}'/" ${startdir}/*.install }