# $Id$ # Maintainer: jcstryker # Contributor: Sven-Hendrik Haase # Contributor: Felix Yan # Contributor: Thomas Baechler # Contributor: James Rayner pkgbase=nvidia-vulkan pkgname=('nvidia-vulkan' 'nvidia-vulkan-dkms' 'nvidia-vulkan-utils' 'opencl-nvidia-vulkan' 'lib32-nvidia-vulkan-utils' 'lib32-opencl-nvidia-vulkan') pkgver=435.27.03 pkgrel=1 pkgdesc="NVIDIA drivers for linux (vulkan developer branch)" arch=('x86_64') url="https://developer.nvidia.com/vulkan-driver" makedepends=('libglvnd' 'linux' 'linux-headers') license=('custom') options=('!strip') _pkg="NVIDIA-Linux-x86_64-${pkgver}" source=("${_pkg}.run::https://developer.nvidia.com/vulkan-beta-4352703-linux" 'nvidia-drm-outputclass.conf' 'nvidia-vulkan-utils.sysusers') sha512sums=('9f82b92c42cb35f5f44a025b6e7756f994eabbc801048d61a39bb0a3cc021a42145cdf511760d1b1247aeb44a119757af001e173f5e2b675912afb2cc62c392e' 'c49d246a519731bfab9d22afa5c2dd2d366db06d80182738b84881e93cd697c783f16ee04819275c05597bb063451a5d6102fbc562cd078d2a374533a23cea48' '4b3ad73f5076ba90fe0b3a2e712ac9cde76f469cd8070280f960c3ce7dc502d1927f525ae18d008075c8f08ea432f7be0a6c3a7a6b49c361126dcf42f97ec499') create_links() { # create soname links find "$pkgdir" -type f -name '*.so*' ! -path '*xorg/*' -print0 | while read -d $'\0' _lib; do _soname=$(dirname "${_lib}")/$(readelf -d "${_lib}" | grep -Po 'SONAME.*: \[\K[^]]*' || true) _base=$(echo ${_soname} | sed -r 's/(.*).so.*/\1.so/') [[ -e "${_soname}" ]] || ln -s $(basename "${_lib}") "${_soname}" [[ -e "${_base}" ]] || ln -s $(basename "${_soname}") "${_base}" done } prepare() { sh "${_pkg}.run" --extract-only cd "${_pkg}" bsdtar -xf nvidia-persistenced-init.tar.bz2 sed -i "s/static int nv_drm_vma_fault(struct vm_fault \*vmf)/#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 1, 0)\nstatic int nv_drm_vma_fault(struct vm_fault \*vmf)\n#else\nstatic vm_fault_t nv_drm_vma_fault(struct vm_fault \*vmf)\n#endif/g" kernel/nvidia-drm/nvidia-drm-gem-nvkms-memory.c cp -a kernel kernel-dkms cd kernel-dkms sed -i "s/__VERSION_STRING/${pkgver}/" dkms.conf sed -i 's/__JOBS/`nproc`/' dkms.conf sed -i 's/__DKMS_MODULES//' dkms.conf sed -i '$iBUILT_MODULE_NAME[0]="nvidia"\ DEST_MODULE_LOCATION[0]="/kernel/drivers/video"\ BUILT_MODULE_NAME[1]="nvidia-uvm"\ DEST_MODULE_LOCATION[1]="/kernel/drivers/video"\ BUILT_MODULE_NAME[2]="nvidia-modeset"\ DEST_MODULE_LOCATION[2]="/kernel/drivers/video"\ BUILT_MODULE_NAME[3]="nvidia-drm"\ DEST_MODULE_LOCATION[3]="/kernel/drivers/video"' dkms.conf # Gift for linux-rt guys sed -i 's/NV_EXCLUDE_BUILD_MODULES/IGNORE_PREEMPT_RT_PRESENCE=1 NV_EXCLUDE_BUILD_MODULES/' dkms.conf } build() { cd "${_pkg}"/kernel make SYSSRC=/usr/src/linux module } package_nvidia-vulkan() { pkgdesc="NVIDIA drivers for linux (vulkan developer branch)" depends=('linux' "nvidia-vulkan-utils=${pkgver}" 'libglvnd') provides=("nvidia=$pkgver") conflicts+=('nvidia') _extradir="/usr/lib/modules/$(