void-packages/srcpkgs/nvidia340/template
fosslinux fa8ba0ae8a nvidia340: move to manjaro's new patches.
Drop the patches we currently have, some of which are manjaro's old
patches, and use the new ones which put all of the changes up to 5.7 in
one patch.
2020-11-09 10:11:57 -03:00

223 lines
7.4 KiB
Bash

# Template file for 'nvidia340'
_desc="NVIDIA drivers (GeForce 8, 9, 9M, 100, 100M, 200, 300 series)"
pkgname=nvidia340
version=340.108
revision=4
maintainer="Orphaned <orphan@voidlinux.org>"
license="custom:NVIDIA proprietary"
homepage="http://www.nvidia.com"
archs="i686 x86_64"
nopie=yes
repository=nonfree
create_wrksrc=yes
short_desc="${_desc} - Libraries and Utilities"
hostmakedepends="tar"
depends="${pkgname}-dkms-${version}_${revision} pkg-config"
conflicts="catalyst>=0 xserver-abi-video>24_1"
provides="nvidia-${version}_${revision}"
replaces="nvidia>=0 nvidia-stable>=0"
subpackages="${pkgname}-dkms ${pkgname}-opencl ${pkgname}-libs"
if [ "$XBPS_TARGET_MACHINE" = "i686" ]; then
_pkg="NVIDIA-Linux-x86-${version}"
distfiles="http://us.download.nvidia.com/XFree86/Linux-x86/${version}/${_pkg}.run"
checksum=2032aad612d9f3af1aecf979cfdfe423d79aa76929ef8bf8d3a403076f507cca
else
_pkg="NVIDIA-Linux-x86_64-${version}-no-compat32"
distfiles="http://us.download.nvidia.com/XFree86/Linux-x86_64/${version}/${_pkg}.run"
checksum=995d44fef587ff5284497a47a95d71adbee0c13020d615e940ac928f180f5b77
fi
do_extract() {
install -m755 ${XBPS_SRCDISTDIR}/${pkgname}-${version}/${_pkg}.run ${wrksrc}
cd ${wrksrc}
./${_pkg}.run --extract-only
rm -f ${_pkg}.run
}
do_patch() {
cd ${_pkg}
patch -p1 < ${FILESDIR}/kernel-5.x.patch
patch -p1 < ${FILESDIR}/kernel-5.8.patch
patch -p1 < ${FILESDIR}/kernel-5.9.patch
}
do_install() {
cd ${_pkg}
# X driver
vinstall nvidia_drv.so 755 usr/lib/xorg/modules/drivers
# GLX extension module for X
vinstall libglx.so.${version} 755 usr/lib/nvidia/xorg
ln -sf libglx.so.${version} ${DESTDIR}/usr/lib/nvidia/xorg/libglx.so.1
ln -sf libglx.so.${version} ${DESTDIR}/usr/lib/nvidia/xorg/libglx.so
# Override default ModulePath to load nvidia's glx instead of xorg's
vinstall ${FILESDIR}/nvidia-glx.conf 644 /usr/share/X11/xorg.conf.d 10-nvidia-glx.conf
# OpenGL libraries (GL, EGL and GLES)
vinstall libGL.so.${version} 755 usr/lib
ln -sf libGL.so.${version} ${DESTDIR}/usr/lib/libGL.so.1
vinstall libEGL.so.${version} 755 usr/lib
ln -sf libEGL.so.${version} ${DESTDIR}/usr/lib/libEGL.so.1
vinstall libGLESv1_CM.so.${version} 755 usr/lib
ln -sf libGLESv1_CM.so.${version} ${DESTDIR}/usr/lib/libGLESv1_CM.so.1
vinstall libGLESv2.so.${version} 755 usr/lib
ln -sf libGLESv2.so.${version} ${DESTDIR}/usr/lib/libGLESv2.so.2
# Some programs link to these libglvnd links
ln -sf libGL.so.1 ${DESTDIR}/usr/lib/libOpenGL.so.0
ln -sf libGL.so.1 ${DESTDIR}/usr/lib/libGLX.so.0
# OpenGL core library
vinstall libnvidia-glcore.so.${version} 755 usr/lib
ln -sf libnvidia-glcore.so.${version} ${DESTDIR}/usr/lib/libnvidia-glcore.so
# VDPAU
vinstall libvdpau_nvidia.so.${version} 755 usr/lib/vdpau
ln -sf libvdpau_nvidia.so.${version} ${DESTDIR}/usr/lib/vdpau/libvdpau_nvidia.so
ln -sf libvdpau_nvidia.so.${version} ${DESTDIR}/usr/lib/vdpau/libvdpau_nvidia.so.1
# misc libraries
vinstall tls/libnvidia-tls.so.${version} 755 usr/lib
ln -sf libnvidia-tls.so.${version} ${DESTDIR}/usr/lib/libnvidia-tls.so
vinstall libnvidia-cfg.so.${version} 755 usr/lib
ln -sf libnvidia-cfg.so.${version} ${DESTDIR}/usr/lib/libnvidia-cfg.so
ln -sf libnvidia-cfg.so.${version} ${DESTDIR}/usr/lib/libnvidia-cfg.so.1
vinstall libnvidia-ml.so.${version} 755 usr/lib
ln -sf libnvidia-ml.so.${version} ${DESTDIR}/usr/lib/libnvidia-ml.so
ln -sf libnvidia-ml.so.${version} ${DESTDIR}/usr/lib/libnvidia-ml.so.1
vinstall libnvidia-encode.so.${version} 755 usr/lib
ln -sf libnvidia-encode.so.${version} ${DESTDIR}/usr/lib/libnvidia-encode.so
ln -sf libnvidia-encode.so.${version} ${DESTDIR}/usr/lib/libnvidia-encode.so.1
vinstall libnvidia-ifr.so.${version} 755 usr/lib
ln -sf libnvidia-ifr.so.${version} ${DESTDIR}/usr/lib/libnvidia-ifr.so
ln -sf libnvidia-ifr.so.${version} ${DESTDIR}/usr/lib/libnvidia-ifr.so.1
vinstall libnvidia-fbc.so.${version} 755 usr/lib
ln -sf libnvidia-fbc.so.${version} ${DESTDIR}/usr/lib/libnvidia-fbc.so
ln -sf libnvidia-fbc.so.${version} ${DESTDIR}/usr/lib/libnvidia-fbc.so.1
vinstall libnvidia-glsi.so.${version} 755 usr/lib
# CUDA
vbin nvidia-cuda-mps-control
vbin nvidia-cuda-mps-server
vman nvidia-cuda-mps-control.1.gz
vinstall libcuda.so.${version} 755 usr/lib
ln -sf libcuda.so.${version} ${DESTDIR}/usr/lib/libcuda.so
ln -sf libcuda.so.${version} ${DESTDIR}/usr/lib/libcuda.so.1
vinstall libnvcuvid.so.${version} 755 usr/lib
ln -sf libnvcuvid.so.${version} ${DESTDIR}/usr/lib/libnvcuvid.so
ln -sf libnvcuvid.so.${version} ${DESTDIR}/usr/lib/libnvcuvid.so.1
# nvidia-xconfig
vbin nvidia-xconfig
vman nvidia-xconfig.1.gz
# nvidia-settings
vbin nvidia-settings
vman nvidia-settings.1.gz
vinstall nvidia-settings.desktop 644 usr/share/applications
vinstall nvidia-settings.png 644 usr/share/pixmaps
sed -e 's:__UTILS_PATH__:/usr/bin:' \
-e 's:__PIXMAP_PATH__:/usr/share/pixmaps:' \
-i ${DESTDIR}/usr/share/applications/nvidia-settings.desktop
# nvidia-bug-report
vbin nvidia-bug-report.sh nvidia-bug-report
vbin nvidia-debugdump
# nvidia-smi
vbin nvidia-smi
vman nvidia-smi.1.gz
# License and documentation.
vlicense LICENSE
vdoc README.txt README
vdoc NVIDIA_Changelog
# opencl pkg
vinstall nvidia.icd 644 etc/OpenCL/vendors
vinstall libnvidia-compiler.so.${version} 755 usr/lib
ln -sf libnvidia-compiler.so.${version} \
${DESTDIR}/usr/lib/libnvidia-compiler.so
ln -sf libnvidia-compiler.so.${version} \
${DESTDIR}/usr/lib/libnvidia-compiler.so.1
vinstall libnvidia-opencl.so.${version} 755 usr/lib
ln -sf libnvidia-opencl.so.${version} \
${DESTDIR}/usr/lib/libnvidia-opencl.so
ln -sf libnvidia-opencl.so.${version} \
${DESTDIR}/usr/lib/libnvidia-opencl.so.1
# dkms pkg
vmkdir usr/src/nvidia-${version}
# add nvidia-uvm dkms submodule too.
if [ "$XBPS_TARGET_MACHINE" = "x86_64" ]; then
cat kernel/uvm/dkms.conf.fragment >> kernel/dkms.conf
fi
vcopy "kernel/*" usr/src/nvidia-${version}
# systemd modules-load.d(5) file.
vmkdir usr/lib/modules-load.d
echo "nvidia" > ${DESTDIR}/usr/lib/modules-load.d/nvidia.conf
chmod 644 ${DESTDIR}/usr/lib/modules-load.d/nvidia.conf
if [ "$XBPS_TARGET_MACHINE" = "x86_64" ]; then
echo "nvidia-uvm" > ${DESTDIR}/usr/lib/modules-load.d/nvidia-uvm.conf
chmod 644 ${DESTDIR}/usr/lib/modules-load.d/nvidia-uvm.conf
fi
# Blacklist nouveau.
vmkdir usr/lib/modprobe.d
echo "blacklist nouveau" > ${DESTDIR}/usr/lib/modprobe.d/nvidia.conf
chmod 644 ${DESTDIR}/usr/lib/modprobe.d/nvidia.conf
# Omit drm dracut module too.
vmkdir usr/lib/dracut/dracut.conf.d
echo "omit_dracutmodules+=\" drm \"" > ${DESTDIR}/usr/lib/dracut/dracut.conf.d/99-nvidia.conf
}
nvidia340-dkms_package() {
short_desc="${_desc} - DKMS kernel module"
dkms_modules="nvidia ${version}"
depends="dkms"
provides="nvidia-dkms-${version}_${revision}"
replaces="nvidia-dkms>=0 nvidia-stable-dkms>=0"
pkg_install() {
vmove usr/src
vmove usr/lib/modules-load.d
vmove usr/lib/modprobe.d
vmove usr/lib/dracut
}
}
nvidia340-opencl_package() {
short_desc="${_desc} - OpenCL implementation"
provides="nvidia-opencl-${version}_${revision}"
replaces="nvidia-opencl>=0 nvidia-stable-opencl>=0"
depends="libOpenCL"
pkg_install() {
vmove "usr/lib/libnvidia-compiler*"
vmove "usr/lib/libnvidia-opencl*"
vmove etc/OpenCL
}
}
nvidia340-libs_package() {
short_desc="${_desc} - libraries"
provides="libGL-7.11_1 libEGL-7.11_1 libGLES-7.11_1 libglvnd-1.3.0_1"
shlib_provides="libGLX.so.0 libOpenGL.so.0"
replaces="libGL>=0 libEGL>=0 libGLES>=0 libglvnd>=0"
pkg_install() {
vmove usr/lib
}
}