# Contributor: Dan Vratil # Contributor: Ng Oon-Ee # Contributor: Amaury Couste # Contributor: James Rayner # Contributor: Thomas Baechler # Contributor: Nuno Aniceto aka quarkup # Contributor: Det ## This list soon should be a separate file pkgname='nvidia-all' true && pkgname=('nvidia-all' 'nvidia-utils') pkgver='260.19.44' pkgrel=1 _arch='x86_64' && _pkg="NVIDIA-Linux-${_arch}-${pkgver}-no-compat32" && md5sums=('3dfce350616ad70d626b531a15c8604f') [ "$CARCH" = "i686" ] && _arch='x86' && _pkg="NVIDIA-Linux-${_arch}-${pkgver}" && md5sums=('c99b0710a43db3aafb4f27408194e910') url='http://www.nvidia.com/' arch=('i686' 'x86_64') license=('custom') source=("http://us.download.nvidia.com/XFree86/Linux-${_arch}/${pkgver}/${_pkg}.run" '20-nvidia.conf') md5sums+=('541cb36684b6764ccba73d7afe268bf5') _KERNELS=`ls /usr/src | sed 's|linux-||'` build() { rm -rf ${_pkg} # Extract the nvidia drivers sh "${_pkg}.run" --extract-only # Loop through all detected kernels and build modules #for _kernver in `file /boot/* | grep 'Linux kernel.*boot executable' | grep 'vmlinuz' | sed 's|.*version \([^ ]\+\).*|\1|'`; for _kernver in $_KERNELS; do cd "${srcdir}/${_pkg}" cp -a kernel kernel-${_kernver} cd kernel-${_kernver} msg "Found kernel: $_kernver" msg2 "Building module..." make SYSSRC=/usr/src/linux-${_kernver} module &> /dev/null done } package_nvidia-utils() { pkgdesc='NVIDIA drivers utilities and libraries' depends=('xorg-server' 'libxvmc') optdepends=('gtk2: nvidia-settings') conflicts=('libgl') provides=('libgl' 'libcl') install='nvidia-utils.install' backup=('etc/X11/xorg.conf.d/20-nvidia.conf') cd ${_pkg} # X driver install -D -m755 nvidia_drv.so $pkgdir/usr/lib/xorg/modules/drivers/nvidia_drv.so # GLX extension module for X install -D -m755 libglx.so.$pkgver $pkgdir/usr/lib/xorg/modules/extensions/libglx.so.$pkgver ln -s libglx.so.$pkgver $pkgdir/usr/lib/xorg/modules/extensions/libglx.so # X doesn't find glx otherwise # OpenGL library install -D -m755 libGL.so.$pkgver $pkgdir/usr/lib/libGL.so.$pkgver # OpenGL core library install -D -m755 libnvidia-glcore.so.$pkgver $pkgdir/usr/lib/libnvidia-glcore.so.$pkgver # XvMC install -D -m644 libXvMCNVIDIA.a $pkgdir/usr/lib/libXvMCNVIDIA.a install -D -m755 libXvMCNVIDIA.so.$pkgver $pkgdir/usr/lib/libXvMCNVIDIA.so.$pkgver # VDPAU install -D -m755 libvdpau_nvidia.so.$pkgver $pkgdir/usr/lib/vdpau/libvdpau_nvidia.so.$pkgver # CUDA install -D -m755 libcuda.so.$pkgver $pkgdir/usr/lib/libcuda.so.$pkgver install -D -m755 libnvcuvid.so.$pkgver $pkgdir/usr/lib/libnvcuvid.so.$pkgver # nvidia-tls library install -D -m755 tls/libnvidia-tls.so.$pkgver $pkgdir/usr/lib/libnvidia-tls.so.$pkgver # OpenCL install -D -m755 libnvidia-compiler.so.$pkgver $pkgdir/usr/lib/libnvidia-compiler.so.$pkgver install -D -m755 libOpenCL.so.1.0.0 $pkgdir/usr/lib/libOpenCL.so.1.0.0 install -D -m644 nvidia.icd $pkgdir/etc/OpenCL/vendors/nvidia.icd install -D -m755 libnvidia-cfg.so.$pkgver $pkgdir/usr/lib/libnvidia-cfg.so.$pkgver # create soname links for _lib in $(find $pkgdir -name '*.so*'); do _soname="$(dirname ${_lib})/$(readelf -d "$_lib" | sed -nr 's/.*Library soname: \[(.*)\].*/\1/p')" if [ ! -e "${_soname}" ]; then ln -s "$(basename ${_lib})" "${_soname}" ln -s "$(basename ${_soname})" "${_soname/.[0-9]*/}" fi done # nvidia-xconfig install -D -m755 nvidia-xconfig $pkgdir/usr/bin/nvidia-xconfig install -D -m644 nvidia-xconfig.1.gz $pkgdir/usr/share/man/man1/nvidia-xconfig.1.gz # nvidia-settings install -D -m755 nvidia-settings $pkgdir/usr/bin/nvidia-settings install -D -m644 nvidia-settings.1.gz $pkgdir/usr/share/man/man1/nvidia-settings.1.gz install -D -m644 nvidia-settings.desktop $pkgdir/usr/share/applications/nvidia-settings.desktop install -D -m644 nvidia-settings.png $pkgdir/usr/share/pixmaps/nvidia-settings.png sed -e 's:__UTILS_PATH__:/usr/bin:' -e 's:__PIXMAP_PATH__:/usr/share/pixmaps:' -i $pkgdir/usr/share/applications/nvidia-settings.desktop # nvidia-bug-report install -D -m755 nvidia-bug-report.sh $pkgdir/usr/bin/nvidia-bug-report.sh # nvidia-smi install -D -m755 nvidia-smi $pkgdir/usr/bin/nvidia-smi install -D -m644 nvidia-smi.1.gz $pkgdir/usr/share/man/man1/nvidia-smi.1.gz install -D -m644 LICENSE $pkgdir/usr/share/licenses/nvidia/LICENSE ln -s nvidia $pkgdir/usr/share/licenses/nvidia-utils install -D -m644 README.txt $pkgdir/usr/share/doc/nvidia/README install -D -m644 NVIDIA_Changelog $pkgdir/usr/share/doc/nvidia/NVIDIA_Changelog ln -s nvidia $pkgdir/usr/share/doc/nvidia-utils # Install xorg.conf.d file for nvidia autodetection in xorg.conf-less configurations install -D -m644 $srcdir/20-nvidia.conf $pkgdir/etc/X11/xorg.conf.d/20-nvidia.conf } package_nvidia-all(){ pkgdesc='NVIDIA drivers for all kernels on the system' conflicts=('nvidia-71xx' 'nvidia-96xx' 'nvidia-173xx' 'nvidia-legacy' 'nvidia') depends=("nvidia-utils=${pkgver}") makedepends=('kernel26-headers') install='nvidia-all.install' for _kernver in $_KERNELS; do msg2 "Installing module..." install -D -m644 ${_pkg}/kernel-${_kernver}/nvidia.ko "${pkgdir}/lib/modules/${_kernver}/kernel/drivers/video/nvidia.ko" done # Blacklist the Nouveau driver (avoiding possible conflicts by appending the -all suffix) install -d -m755 "${pkgdir}/etc/modprobe.d" echo "blacklist nouveau" > "${pkgdir}/etc/modprobe.d/nouveau_blacklist-all.conf" }