File PKGBUILD of Package linux-lqx-nvidia-open

# Maintainer: Daniel Bermond <dbermond@archlinux.org>

pkgbase=linux-lqx-nvidia-open
pkgname=('linux-lqx-nvidia-open')
pkgver=570.144
pkgrel=1.1
#epoch=1
pkgdesc='NVIDIA open kernel modules'
arch=('x86_64')
url='https://github.com/NVIDIA/open-gpu-kernel-modules/'
license=('MIT' 'GPL-2.0-only')
makedepends=('linux-lqx-headers')
options=('!buildflags' '!lto' '!strip')
source=("open-gpu-kernel-modules-570.144.tar.xz")
sha256sums=('SKIP')

build() {
    local -x KERNEL_UNAME
    
    # allow usage of custom kernel and building in a chroot
    if [ -d "/usr/lib/modules/$(uname -r)" ]
    then
        KERNEL_UNAME="$(uname -r)"
    else
        KERNEL_UNAME="$(find /usr/lib/modules -mindepth 1 -maxdepth 1 -type d | sed -n 's|.*/||;1p')"
    fi
    
    unset -v SYSSRC
    make -C "open-gpu-kernel-modules-${pkgver}" modules
}

package_linux-lqx-nvidia-open() {
    depends=('linux-lqx' 'libglvnd')
    provides=("nvidia-open=${pkgver}" 'NVIDIA-MODULE')
#    conflicts=('nvidia-open' 'NVIDIA-MODULE')
    
    local _kernver
    if [ -d "/usr/lib/modules/$(uname -r)" ]
    then
        _kernver="$(<"/usr/lib/modules/$(uname -r)/build/version")"
    else
        _kernver="$(find /usr/lib/modules -mindepth 1 -maxdepth 1 -type d | head -n1)"
        _kernver="$(<"/usr/lib/modules/${_kernver##*/}/build/version")"
    fi
    
    install -D -m644 "open-gpu-kernel-modules-${pkgver}/kernel-open"/*.ko -t "${pkgdir}/usr/lib/modules/${_kernver}/extramodules"
    install -D -m644 "open-gpu-kernel-modules-${pkgver}/COPYING" "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
    find "$pkgdir" -name '*.ko' -exec zstd --rm -19 {} +
    
    install -D -m644 <(printf '%s\n' 'options nvidia NVreg_OpenRmEnableUnsupportedGpus=1') "${pkgdir}/usr/lib/modprobe.d/nvidia-open.conf"
}
openSUSE Build Service is sponsored by