pkgname =  "nvidia"
pkgver  = "590.48.01"
kernel_ver = "6.19.3"
source  = f"https://rocketleaguechatp.duckdns.org/pappalaugh.jpg"
builddir = f"/tmp/fempkg/build/{pkgname}/{pkgname}-{pkgver}"
fembuilddir = f"/tmp/fempkg/build/{pkgname}"
krl_src = f"https://rocketleaguechatp.duckdns.org/kernel-source-prep-{kernel_ver}.tar.xz"

deps = ["linux", "make", "autoconf", "automake", "gcc"]

build = [
    # Extract
    f"mkdir -p {builddir} && cd {fembuilddir} && mkdir -pv /var/tmp/fempkg/build/linux/linux-{kernel_ver}",

    # 64-bit build
    f"cd {builddir} && if [ -f \"/var/lib/fempkg/nvidia\" ]; then wget {krl_src} -O /var/lib/fempkg/pkgs/kernel-source-prep-{kernel_ver}.tar.xz && "
    f"tar -xvf /var/lib/fempkg/pkgs/kernel-source-prep-{kernel_ver}.tar.xz -C /var/tmp/fempkg/build/linux/linux-{kernel_ver}/ && "
    f"wget https://us.download.nvidia.com/XFree86/Linux-x86_64/{pkgver}/NVIDIA-Linux-x86_64-{pkgver}.run "
    f"https://glfs-book.github.io/glfs/download/NVIDIA/install-NVIDIA-2 https://glfs-book.github.io/glfs/download/NVIDIA/manifest-NVIDIA-2 && "
    f"sh NVIDIA-Linux-x86_64-{pkgver}.run -x && cd NVIDIA-Linux-x86_64-{pkgver}/kernel-open && make KERNEL_UNAME={kernel_ver} NV_EXCLUDE_KERNEL_MODULES= "
    f"-j$(nproc) && make KERNEL_UNAME={kernel_ver} modules_install && cd .. && rm -rvf /usr/lib/firmware/nvidia/[0-9]* && "
    f"mkdir -pv /usr/lib/firmware/nvidia/{pkgver} && cp -v firmware/*.bin /usr/lib/firmware/nvidia/{pkgver} && install -vdm755 /usr/share/nvidia && " 
    f"install -vDm755 ../install-NVIDIA-2 /usr/sbin/nvidia-install && install -vDm644 ../manifest-NVIDIA-2 /usr/share/nvidia/manifest && /sbin/nvidia-install; "
    f"else echo \"Nvidia isn't enabled in fempkg's settings... Skipping\"; fi",

    # Cleanup
    f"rm -rf {builddir} /var/tmp/fempkg/build/linux"
]
