diff options
author | Daniel Bermond | 2019-06-09 02:34:39 +0000 |
---|---|---|
committer | Daniel Bermond | 2019-06-09 02:34:39 +0000 |
commit | 547644cf9fabd8eb92db75bb9295a90c17781ad3 (patch) | |
tree | eaedfcfa73ff53f8a31715ca37700aca62cb2c41 | |
parent | 0944d00066e5a60e1999bd36c1beef5a46ba52fe (diff) | |
download | aur-547644cf9fabd8eb92db75bb9295a90c17781ad3.tar.gz |
First major rewrite after package adoption
-rw-r--r-- | .SRCINFO | 84 | ||||
-rw-r--r-- | FS62142.patch | 12 | ||||
-rw-r--r-- | PKGBUILD | 472 | ||||
-rw-r--r-- | nvidia-settings-full-beta-all-change-desktop-paths.patch | 13 | ||||
-rw-r--r-- | nvidia-utils-full-beta-all-change-vulkan-driver-path.patch | 12 | ||||
-rw-r--r-- | nvidia-utils-full-beta-all.install | 11 |
6 files changed, 254 insertions, 350 deletions
@@ -1,22 +1,29 @@ pkgbase = nvidia-full-beta-all pkgdesc = Full NVIDIA driver package for all kernels on the system (drivers, utilities and libraries) (beta version) pkgver = 430.14 - pkgrel = 1 + pkgrel = 2 url = https://www.nvidia.com/ arch = x86_64 - license = custom:NVIDIA + license = custom + makedepends = linux makedepends = linux-headers options = !strip source = https://us.download.nvidia.com/XFree86/Linux-x86_64/430.14/NVIDIA-Linux-x86_64-430.14.run source = nvidia-drm-outputclass.conf source = nvidia-utils-full-beta-all.sysusers + source = FS62142.patch + source = nvidia-utils-full-beta-all-change-vulkan-driver-path.patch + source = nvidia-settings-full-beta-all-change-desktop-paths.patch sha256sums = 00d46ffaf3e1e430081ddbd68b74cc361cd1328e8944224dfe69630dd8540f17 sha256sums = 089d6dc247c9091b320c418b0d91ae6adda65e170934d178cdd4e9bd0785b182 sha256sums = d8d1caa5d72c71c6430c2a0d9ce1a674787e9272ccce28b9d5898ca24e60a167 + sha256sums = c961006882afb691410c017c239e2c2ef61badb88f15735d37112b513ef0a99d + sha256sums = 57e2393228b09b85d91b9d095b85899178f6fd4b456cbb7ea39093d07e7c7ca7 + sha256sums = 633bf69c39b8f35d0e64062eb0365c9427c2191583f2daa20b14e51772e8423a pkgname = nvidia-full-beta-all depends = nvidia-utils-full-beta-all>=430.14 - depends = libgl + depends = libglvnd provides = nvidia=430.14 provides = nvidia-beta=430.14 conflicts = nvidia @@ -25,77 +32,58 @@ pkgname = nvidia-utils-full-beta-all pkgdesc = NVIDIA driver utilities and libraries for 'nvidia-full-beta-all' install = nvidia-utils-full-beta-all.install depends = xorg-server - depends = mesa>=17.0.2-2 - optdepends = gtk2: nvidia-settings (GTK+ v2) - optdepends = gtk3: nvidia-settings (GTK+ v3) - optdepends = opencl-nvidia-full-beta-all: OpenCL support - optdepends = xorg-server-devel: nvidia-xconfig - optdepends = egl-wayland-git: for alternative, more advanced Wayland library (libnvidia-egl-wayland.so.1.1.2) + depends = libglvnd + depends = egl-wayland + optdepends = nvidia-settings-full-beta-all: for the configuration tool + optdepends = xorg-server-devel: for nvidia-xconfig + optdepends = opencl-nvidia-full-beta-all: for OpenCL support provides = nvidia-utils=430.14 - provides = nvidia-settings=430.14 - provides = libglvnd provides = vulkan-driver - conflicts = nvidia-utils - conflicts = nvidia-settings - conflicts = libglvnd - -pkgname = nvidia-egl-wayland-full-beta-all - pkgdesc = NVIDIA EGL Wayland library (libnvidia-egl-wayland.so.1.1.2) for 'nvidia-utils-full-beta-all' - depends = nvidia-utils-full-beta-all - provides = egl-wayland - conflicts = egl-wayland - -pkgname = nvidia-libgl-full-beta-all - pkgdesc = NVIDIA driver library symlinks for 'nvidia-utils-full-beta-all' - depends = nvidia-utils-full-beta-all + provides = opengl-driver provides = nvidia-libgl=430.14 - provides = libgl - provides = libegl - provides = libgles + provides = nvidia-libgl-beta=430.14 + conflicts = nvidia-utils conflicts = nvidia-libgl - conflicts = libgl - conflicts = libegl - conflicts = libgles + replaces = nvidia-libgl pkgname = opencl-nvidia-full-beta-all pkgdesc = NVIDIA's OpenCL implemention for 'nvidia-utils-full-beta-all' depends = zlib + depends = nvidia-utils-full-beta-all>=430.14 optdepends = opencl-headers: headers necessary for OpenCL development provides = opencl-nvidia=430.14 provides = opencl-driver conflicts = opencl-nvidia +pkgname = nvidia-settings-full-beta-all + pkgdesc = Tool for configuring the NVIDIA graphics driver for 'nvidia-full-beta-all' + depends = nvidia-utils-full-beta-all>=430.14 + depends = gtk3 + provides = nvidia-settings=430.14 + provides = nvidia-settings=430.14 + conflicts = nvidia-settings + pkgname = lib32-nvidia-utils-full-beta-all pkgdesc = NVIDIA driver utilities and libraries for 'nvidia-full-beta-all' (32-bit) depends = lib32-zlib depends = lib32-gcc-libs - depends = nvidia-utils-full-beta-all - depends = lib32-mesa>=17.0.2-1 - optdepends = lib32-opencl-nvidia-full-beta-all: OpenCL support + depends = lib32-libglvnd + depends = nvidia-utils-full-beta-all>=430.14 + optdepends = lib32-opencl-nvidia-full-beta-all: for OpenCL support provides = lib32-nvidia-utils=430.14 - provides = lib32-libglvnd provides = lib32-vulkan-driver - conflicts = lib32-nvidia-utils - conflicts = lib32-libglvnd - -pkgname = lib32-nvidia-libgl-full-beta-all - pkgdesc = NVIDIA driver library symlinks for 'lib32-nvidia-utils-full-beta-all' - depends = lib32-nvidia-utils-full-beta-all - depends = nvidia-libgl-full-beta-all + provides = lib32-opengl-driver provides = lib32-nvidia-libgl=430.14 - provides = lib32-libgl - provides = lib32-libegl - provides = lib32-libgles + provides = lib32-nvidia-libgl-beta=430.14 + conflicts = lib32-nvidia-utils conflicts = lib32-nvidia-libgl - conflicts = lib32-libgl - conflicts = lib32-libegl - conflicts = lib32-libgles - replaces = lib32-nvidia-utils<=313.26-1 + replaces = lib32-nvidia-libgl pkgname = lib32-opencl-nvidia-full-beta-all pkgdesc = NVIDIA's OpenCL implemention for 'lib32-nvidia-utils-full-beta-all' depends = lib32-zlib depends = lib32-gcc-libs + depends = lib32-nvidia-utils-full-beta-all>=430.14 optdepends = opencl-headers: headers necessary for OpenCL development provides = lib32-opencl-nvidia=430.14 provides = lib32-opencl-driver diff --git a/FS62142.patch b/FS62142.patch new file mode 100644 index 000000000000..887f3366723e --- /dev/null +++ b/FS62142.patch @@ -0,0 +1,12 @@ +diff -Naurp a/kernel/nvidia/nv-dma.c b/kernel/nvidia/nv-dma.c +--- a/kernel/nvidia/nv-dma.c 2019-05-08 01:37:30.000000000 +0000 ++++ b/kernel/nvidia/nv-dma.c 2019-06-08 18:33:00.000000000 +0000 +@@ -613,7 +613,7 @@ static NvBool nv_dma_is_map_resource_imp + #endif + } + +- return (ops->map_resource != NULL); ++ return (ops && ops->map_resource); + #else + return NV_FALSE; + #endif @@ -1,64 +1,50 @@ # Maintainer : Daniel Bermond < gmail-com: danielbermond > # Contributor: Det <nimetonmaili g-mail> -# Based on nvidia-beta-all: https://aur.archlinux.org/packages/nvidia-beta-all/, -# nvidia-utils-beta: https://aur.archlinux.org/packages/nvidia-utils-beta/ and -# lib32-nvidia-utils-beta: https://aur.archlinux.org/packages/lib32-nvidia-utils-beta/ - -# Build the lib32 packages too? This only needs to be defined once and will -# remain until the packages are removed. "1" to enable. -_lib32=0 pkgbase=nvidia-full-beta-all -pkgname=('nvidia-full-beta-all' 'nvidia-utils-full-beta-all' 'nvidia-egl-wayland-full-beta-all' 'nvidia-libgl-full-beta-all' 'opencl-nvidia-full-beta-all') +pkgname=('nvidia-full-beta-all' + 'nvidia-utils-full-beta-all' + 'opencl-nvidia-full-beta-all' + 'nvidia-settings-full-beta-all' + 'lib32-nvidia-utils-full-beta-all' + 'lib32-opencl-nvidia-full-beta-all') pkgver=430.14 -pkgrel=1 +pkgrel=2 pkgdesc='Full NVIDIA driver package for all kernels on the system (drivers, utilities and libraries) (beta version)' arch=('x86_64') url='https://www.nvidia.com/' -license=('custom:NVIDIA') -makedepends=('linux-headers') +license=('custom') +makedepends=('linux' 'linux-headers') options=('!strip') - -# installer name -_pkg="NVIDIA-Linux-${CARCH}-${pkgver}-no-compat32" -if [ "$_lib32" = '1' ] || pacman -Q lib32-nvidia-utils-full-beta-all >/dev/null 2>&1 -then - pkgname+=('lib32-nvidia-utils-full-beta-all' 'lib32-nvidia-libgl-full-beta-all' 'lib32-opencl-nvidia-full-beta-all') - _pkg="NVIDIA-Linux-${CARCH}-${pkgver}" -fi - -# source +_pkg="NVIDIA-Linux-${CARCH}-${pkgver}" source=("https://us.download.nvidia.com/XFree86/Linux-${CARCH}/${pkgver}/${_pkg}.run" 'nvidia-drm-outputclass.conf' - 'nvidia-utils-full-beta-all.sysusers') -sha256sums=('0f583a277b1731cb8327510b75dba9cf7adf5c781247e4f48bcc9f358253278f' + 'nvidia-utils-full-beta-all.sysusers' + 'FS62142.patch' + 'nvidia-utils-full-beta-all-change-vulkan-driver-path.patch' + 'nvidia-settings-full-beta-all-change-desktop-paths.patch') +sha256sums=('00d46ffaf3e1e430081ddbd68b74cc361cd1328e8944224dfe69630dd8540f17' '089d6dc247c9091b320c418b0d91ae6adda65e170934d178cdd4e9bd0785b182' - 'd8d1caa5d72c71c6430c2a0d9ce1a674787e9272ccce28b9d5898ca24e60a167') -[ "$_pkg" = "NVIDIA-Linux-${CARCH}-${pkgver}" ] && sha256sums[0]='00d46ffaf3e1e430081ddbd68b74cc361cd1328e8944224dfe69630dd8540f17' + 'd8d1caa5d72c71c6430c2a0d9ce1a674787e9272ccce28b9d5898ca24e60a167' + 'c961006882afb691410c017c239e2c2ef61badb88f15735d37112b513ef0a99d' + '57e2393228b09b85d91b9d095b85899178f6fd4b456cbb7ea39093d07e7c7ca7' + '633bf69c39b8f35d0e64062eb0365c9427c2191583f2daa20b14e51772e8423a') -_eglver=1.1.2 - -# create missing soname links +# create soname links _create_links() { local _lib local _soname local _base - - for _lib in $(find "$pkgdir" -name '*.so*' | grep -v 'xorg/') + find "$pkgdir" -type f -name '*.so*' ! -path '*xorg/*' -print0 | while read -d $'\0' _lib do - # get soname/base name _soname="$(dirname "$_lib")/$(readelf -d "$_lib" | grep -Po 'SONAME.*: \[\K[^]]*' || true)" - _base="$(echo "$_soname" | sed -r 's/(.*).so.*/\1.so/')" - - # create missing links + _base="$(printf '%s' "$_soname" | sed -r 's/(.*).so.*/\1.so/')" [ -e "$_soname" ] || ln -s "$(basename "$_lib")" "$_soname" [ -e "$_base" ] || ln -s "$(basename "$_soname")" "$_base" done } prepare() { - local _kernel - # extract the source file [ -d "$_pkg" ] && rm -rf "$_pkg" printf '%s\n' " -> Self-Extracting ${_pkg}.run..." @@ -66,27 +52,32 @@ prepare() { cd "${_pkg}" bsdtar -xf nvidia-persistenced-init.tar.bz2 - sed -i 's/__NV_VK_ICD__/libGLX_nvidia.so.0/' nvidia_icd.json.template + patch -Np1 -i "${srcdir}/nvidia-utils-full-beta-all-change-vulkan-driver-path.patch" + patch -Np1 -i "${srcdir}/nvidia-settings-full-beta-all-change-desktop-paths.patch" # create a build directory for each installed kernel - for _kernel in $(cat /usr/lib/modules/extramodules-*/version) + local _kernel + local _kernels + _kernels=($(find /usr/lib/modules/extramodules-*/version -exec cat {} +)) + for _kernel in "${_kernels[@]}" do cp -a kernel "kernel-${_kernel}" + printf '%s\n' " -> Applying patch(es) for kernel ${_kernel}..." + cd "kernel-${_kernel}" - #printf '%s\n' " -> Applying patch(es) for kernel ${_kernel}..." - #cd "kernel-${_kernel}" + # fix https://bugs.archlinux.org/task/62142 + patch -Np2 -i "${srcdir}/FS62142.patch" - # apply patches(es) here: - #patch -Np2 -i "${srcdir}/<patch>" - - #cd .. + cd .. done } build() { local _kernel + local _kernels + _kernels=($(find /usr/lib/modules/extramodules-*/version -exec cat {} +)) - for _kernel in $(cat /usr/lib/modules/extramodules-*/version) + for _kernel in "${_kernels[@]}" do cd "${srcdir}/${_pkg}/kernel-${_kernel}" @@ -95,139 +86,122 @@ build() { done } -package_opencl-nvidia-full-beta-all() { - pkgdesc="NVIDIA's OpenCL implemention for 'nvidia-utils-full-beta-all'" - depends=('zlib') - optdepends=('opencl-headers: headers necessary for OpenCL development') - provides=("opencl-nvidia=${pkgver}" 'opencl-driver') - conflicts=('opencl-nvidia') +package_nvidia-full-beta-all() { + depends=("nvidia-utils-full-beta-all>=${pkgver}" 'libglvnd') + provides=("nvidia=${pkgver}" "nvidia-beta=${pkgver}") + conflicts=('nvidia') - cd "$_pkg" + local _dir + local _kerndir + local _kernel + _kerndir=($(find /usr/lib/modules -maxdepth 1 -type d -name 'extramodules-*')) - # libraries - install -D -m755 "libnvidia-compiler.so.${pkgver}" -t "${pkgdir}/usr/lib" - install -D -m755 "libnvidia-opencl.so.${pkgver}" -t "${pkgdir}/usr/lib" - _create_links + for _dir in "${_kerndir[@]}" + do + _kernel="$(cat "${_dir}/version")" + + install -D -m644 "${_pkg}/kernel-${_kernel}/"nvidia{,-drm,-modeset,-uvm}.ko -t "${pkgdir}/${_dir}" + + find "$pkgdir" -name '*.ko' -exec gzip -n {} + + done - # vendor icd - install -D -m644 nvidia.icd -t "${pkgdir}/etc/OpenCL/vendors" + printf '%s\n' 'blacklist nouveau' | install -D -m644 /dev/stdin "${pkgdir}/usr/lib/modprobe.d/nvidia.conf" - # license - install -D -m644 LICENSE -t "${pkgdir}/usr/share/licenses/${pkgname}" + install -D -m644 "${_pkg}/LICENSE" -t "${pkgdir}/usr/share/licenses/${pkgname}" } -package_nvidia-libgl-full-beta-all() { - pkgdesc="NVIDIA driver library symlinks for 'nvidia-utils-full-beta-all'" - depends=('nvidia-utils-full-beta-all') - provides=("nvidia-libgl=${pkgver}" 'libgl' 'libegl' 'libgles') - conflicts=('nvidia-libgl' 'libgl' 'libegl' 'libgles') +package_nvidia-settings-full-beta-all() { + pkgdesc="Tool for configuring the NVIDIA graphics driver for 'nvidia-full-beta-all'" + depends=("nvidia-utils-full-beta-all>=${pkgver}" 'gtk3') + provides=("nvidia-settings=${pkgver}" "nvidia-settings=${pkgver}") + conflicts=('nvidia-settings') cd "$_pkg" - mkdir -p "${pkgdir}/usr/lib/" - - # libGL (link) - ln -s /usr/lib/nvidia/libGL.so.1.7.0 "${pkgdir}/usr/lib/libGL.so.1" - ln -s libGL.so.1 "${pkgdir}/usr/lib/libGL.so" - - # EGL (link) - ln -s /usr/lib/nvidia/libEGL.so.1.1.0 "${pkgdir}/usr/lib/libEGL.so.1" - ln -s libEGL.so.1 "${pkgdir}/usr/lib/libEGL.so" - - # OpenGL ES 1 (link) - ln -s /usr/lib/nvidia/libGLESv1_CM.so.1.2.0 "${pkgdir}/usr/lib/libGLESv1_CM.so.1" - ln -s libGLESv1_CM.so.1 "${pkgdir}/usr/lib/libGLESv1_CM.so" - - # OpenGL ES 2 (link) - ln -s /usr/lib/nvidia/libGLESv2.so.2.1.0 "${pkgdir}/usr/lib/libGLESv2.so.2" - ln -s libGLESv2.so.2 "${pkgdir}/usr/lib/libGLESv2.so" + install -D -m755 nvidia-settings -t "${pkgdir}/usr/bin" + install -D -m644 nvidia-settings.1.gz -t "${pkgdir}/usr/share/man/man1" + install -D -m644 nvidia-settings.png -t "${pkgdir}/usr/share/pixmaps" + install -D -m644 nvidia-settings.desktop -t "${pkgdir}/usr/share/applications" + install -D -m755 "libnvidia-gtk3.so.${pkgver}" -t "${pkgdir}/usr/lib" # license install -D -m644 LICENSE -t "${pkgdir}/usr/share/licenses/${pkgname}" } -package_nvidia-egl-wayland-full-beta-all() { - pkgdesc="NVIDIA EGL Wayland library (libnvidia-egl-wayland.so.${_eglver}) for 'nvidia-utils-full-beta-all'" - depends=('nvidia-utils-full-beta-all') - provides=('egl-wayland') - conflicts=('egl-wayland') +package_opencl-nvidia-full-beta-all() { + pkgdesc="NVIDIA's OpenCL implemention for 'nvidia-utils-full-beta-all'" + depends=('zlib' "nvidia-utils-full-beta-all>=${pkgver}") + optdepends=('opencl-headers: headers necessary for OpenCL development') + provides=("opencl-nvidia=${pkgver}" 'opencl-driver') + conflicts=('opencl-nvidia') cd "$_pkg" - # libraries - install -D -m755 "libnvidia-egl-wayland.so.${_eglver}" -t "${pkgdir}/usr/lib" - ln -s "libnvidia-egl-wayland.so.${_eglver}" "${pkgdir}/usr/lib/libnvidia-egl-wayland.so" - ln -s "libnvidia-egl-wayland.so.${_eglver}" "${pkgdir}/usr/lib/libnvidia-egl-wayland.so.1" + # OpenCL + install -D -m644 nvidia.icd "${pkgdir}/etc/OpenCL/vendors/nvidia.icd" + install -D -m755 "libnvidia-compiler.so.${pkgver}" -t "${pkgdir}/usr/lib" + install -D -m755 "libnvidia-opencl.so.${pkgver}" -t "${pkgdir}/usr/lib" + _create_links + # license install -D -m644 LICENSE -t "${pkgdir}/usr/share/licenses/${pkgname}" } package_nvidia-utils-full-beta-all() { pkgdesc="NVIDIA driver utilities and libraries for 'nvidia-full-beta-all'" - depends=('xorg-server' 'mesa>=17.0.2-2') - optdepends=('gtk2: nvidia-settings (GTK+ v2)' - 'gtk3: nvidia-settings (GTK+ v3)' - 'opencl-nvidia-full-beta-all: OpenCL support' - 'xorg-server-devel: nvidia-xconfig' - "egl-wayland-git: for alternative, more advanced Wayland library (libnvidia-egl-wayland.so.${_eglver})") - provides=("nvidia-utils=${pkgver}" "nvidia-settings=${pkgver}" 'libglvnd' 'vulkan-driver') - conflicts=('nvidia-utils' 'nvidia-settings' 'libglvnd') + depends=('xorg-server' 'libglvnd' 'egl-wayland') + optdepends=('nvidia-settings-full-beta-all: for the configuration tool' + 'xorg-server-devel: for nvidia-xconfig' + 'opencl-nvidia-full-beta-all: for OpenCL support') + provides=("nvidia-utils=${pkgver}" 'vulkan-driver' 'opengl-driver' "nvidia-libgl=${pkgver}" + "nvidia-libgl-beta=${pkgver}") + conflicts=('nvidia-utils' 'nvidia-libgl') + replaces=('nvidia-libgl') install=nvidia-utils-full-beta-all.install cd "$_pkg" -##### LIBRARIES AND COMPONENTS ##### - # X driver - install -D -m755 nvidia_drv.so -t "${pkgdir}/usr/lib/xorg/modules/drivers/" + install -D -m755 nvidia_drv.so -t "${pkgdir}/usr/lib/xorg/modules/drivers" - # GLX extension for X + # GLX extension module for X install -D -m755 "libglxserver_nvidia.so.${pkgver}" -t "${pkgdir}/usr/lib/nvidia/xorg" - ln -s "libglxserver_nvidia.so.${pkgver}" "${pkgdir}/usr/lib/nvidia/xorg/libglxserver_nvidia.so.1" # X doesn't find glx otherwise - ln -s "libglxserver_nvidia.so.${pkgver}" "${pkgdir}/usr/lib/nvidia/xorg/libglxserver_nvidia.so" # X doesn't find glx otherwise - - # libGL & OpenGL - install -D -m755 libGL.so.1.7.0 -t "${pkgdir}/usr/lib/nvidia" - install -D -m755 libGLdispatch.so.0 -t "${pkgdir}/usr/lib" - install -D -m755 "libnvidia-glcore.so.${pkgver}" -t "${pkgdir}/usr/lib" - install -D -m755 libOpenGL.so.0 -t "${pkgdir}/usr/lib" - install -D -m755 "libnvidia-glvkspirv.so.${pkgver}" -t "${pkgdir}/usr/lib" + # Ensure that X finds glx + ln -s "libglxserver_nvidia.so.${pkgver}" "${pkgdir}/usr/lib/nvidia/xorg/libglxserver_nvidia.so.1" + ln -s "libglxserver_nvidia.so.${pkgver}" "${pkgdir}/usr/lib/nvidia/xorg/libglxserver_nvidia.so" - # GLX - install -D -m755 libGLX.so.0 -t "${pkgdir}/usr/lib" install -D -m755 "libGLX_nvidia.so.${pkgver}" -t "${pkgdir}/usr/lib" - # now in mesa driver - #ln -s "libGLX_nvidia.so.${pkgver}" "${pkgdir}/usr/lib/libGLX_indirect.so.0" - # EGL - install -D -m755 libEGL.so.1.1.0 -t "${pkgdir}/usr/lib/nvidia" - install -D -m755 "libEGL_nvidia.so.${pkgver}" -t "${pkgdir}/usr/lib" - install -D -m755 "libnvidia-eglcore.so.${pkgver}" -t "${pkgdir}/usr/lib" - install -D -m644 10_nvidia.json -t "${pkgdir}/usr/share/glvnd/egl_vendor.d" - install -D -m644 10_nvidia_wayland.json -t "${pkgdir}/usr/share/egl/egl_external_platform.d" - - # OpenGL ES - install -D -m755 libGLESv1_CM.so.1.2.0 -t "${pkgdir}/usr/lib/nvidia" + # OpenGL libraries + install -D -m755 "libEGL_nvidia.so.${pkgver}" -t "${pkgdir}/usr/lib" install -D -m755 "libGLESv1_CM_nvidia.so.${pkgver}" -t "${pkgdir}/usr/lib" - install -D -m755 libGLESv2.so.2.1.0 -t "${pkgdir}/usr/lib/nvidia" install -D -m755 "libGLESv2_nvidia.so.${pkgver}" -t "${pkgdir}/usr/lib" - install -D -m755 "libnvidia-glsi.so.${pkgver}" -t "${pkgdir}/usr/lib" + install -D -m644 "10_nvidia.json" -t "${pkgdir}/usr/share/glvnd/egl_vendor.d" - # VDPAU (Video Decode and Presentation API for Unix) - install -D -m755 "libvdpau_nvidia.so.${pkgver}" -t "${pkgdir}/usr/lib/vdpau" + # OpenGL core library + install -D -m755 "libnvidia-glcore.so.${pkgver}" -t "${pkgdir}/usr/lib" + install -D -m755 "libnvidia-eglcore.so.${pkgver}" -t "${pkgdir}/usr/lib" + install -D -m755 "libnvidia-glsi.so.${pkgver}" -t "${pkgdir}/usr/lib" + + # misc + install -D -m755 "libnvidia-ifr.so.${pkgver}" -t "${pkgdir}/usr/lib" + install -D -m755 "libnvidia-fbc.so.${pkgver}" -t "${pkgdir}/usr/lib" + install -D -m755 "libnvidia-encode.so.${pkgver}" -t "${pkgdir}/usr/lib" + install -D -m755 "libnvidia-cfg.so.${pkgver}" -t "${pkgdir}/usr/lib" + install -D -m755 "libnvidia-ml.so.${pkgver}" -t "${pkgdir}/usr/lib" + install -D -m755 "libnvidia-glvkspirv.so.${pkgver}" -t "${pkgdir}/usr/lib" - # GPU-accelerated video encoding - install -D -m755 "libnvidia-encode.so.${pkgver}" -t "${pkgdir}/usr/lib" + # Vulkan ICD + install -D -m644 "nvidia_icd.json.template" "${pkgdir}/usr/share/vulkan/icd.d/nvidia_icd.json" - # GTK+ for nvidia-settings - install -D -m755 "libnvidia-gtk2.so.${pkgver}" -t "${pkgdir}/usr/lib" - install -D -m755 "libnvidia-gtk3.so.${pkgver}" -t "${pkgdir}/usr/lib" + # VDPAU + install -D -m755 "libvdpau_nvidia.so.${pkgver}" -t "${pkgdir}/usr/lib/vdpau" - # component of nvidia-xconfig - install -D -m755 "libnvidia-cfg.so.${pkgver}" -t "${pkgdir}/usr/lib" + # nvidia-tls library + install -D -m755 "libnvidia-tls.so.${pkgver}" -t "${pkgdir}/usr/lib" - # CUDA (Compute Unified Device Architecture) (perform traditional CPU calculations with the GPU) + # CUDA install -D -m755 "libcuda.so.${pkgver}" -t "${pkgdir}/usr/lib" install -D -m755 "libnvcuvid.so.${pkgver}" -t "${pkgdir}/usr/lib" @@ -237,203 +211,118 @@ package_nvidia-utils-full-beta-all() { # Fat (multiarchitecture) binary loader install -D -m755 "libnvidia-fatbinaryloader.so.${pkgver}" -t "${pkgdir}/usr/lib" - # TLS (Thread local storage) support for OpenGL libs - install -D -m755 "libnvidia-tls.so.${pkgver}" -t "${pkgdir}/usr/lib" - - # GPU monitoring and management (1/2) - install -D -m755 "libnvidia-ml.so.${pkgver}" -t "${pkgdir}/usr/lib" - - # vulkan icd - install -D -m644 nvidia_icd.json.template "${pkgdir}/usr/share/vulkan/icd.d/nvidia_icd.json" - - # vulkan real-time ray tracing extensions (VK_NV_raytracing) + # raytracing + install -D -m755 "libnvoptix.so.${pkgver}" -t "${pkgdir}/usr/lib" install -D -m755 "libnvidia-rtcore.so.${pkgver}" -t "${pkgdir}/usr/lib" install -D -m755 "libnvidia-cbl.so.${pkgver}" -t "${pkgdir}/usr/lib" - # helper libs for approved partners GRID remote apps - install -D -m755 "libnvidia-ifr.so.${pkgver}" -t "${pkgdir}/usr/lib" - install -D -m755 "libnvidia-fbc.so.${pkgver}" -t "${pkgdir}/usr/lib" + # Optical flow + install -D -m755 "libnvidia-opticalflow.so.${pkgver}" -t "${pkgdir}/usr/lib" - # OptiX ray tracing engine - install -D -m755 "libnvoptix.so.${pkgver}" -t "${pkgdir}/usr/lib" + # DEBUG + install -D -m755 nvidia-debugdump -t "${pkgdir}/usr/bin" - # Optical Flow - install -D -m755 "libnvidia-opticalflow.so.${pkgver}" -t "${pkgdir}/usr/lib" + # nvidia-xconfig + install -D -m755 nvidia-xconfig -t "${pkgdir}/usr/bin" + install -D -m644 nvidia-xconfig.1.gz -t "${pkgdir}/usr/share/man/man1" - _create_links + # nvidia-bug-report + install -D -m755 nvidia-bug-report.sh -t "${pkgdir}/usr/bin" -##### BINARIES AND MANPAGES ##### + # nvidia-smi + install -D -m755 nvidia-smi -t "${pkgdir}/usr/bin" + install -D -m644 nvidia-smi.1.gz -t "${pkgdir}/usr/share/man/man1" - # CUDA MPS (Multi Process Service) + # nvidia-cuda-mps install -D -m755 nvidia-cuda-mps-server -t "${pkgdir}/usr/bin" install -D -m755 nvidia-cuda-mps-control -t "${pkgdir}/usr/bin" install -D -m644 nvidia-cuda-mps-control.1.gz -t "${pkgdir}/usr/share/man/man1" - # for loading the kernel module and creating the character device files - install -D -m4755 nvidia-modprobe -t "${pkgdir}/usr/bin" - install -D -m644 nvidia-modprobe.1.gz -t "${pkgdir}/usr/share/man/man1" + # nvidia-modprobe + # This should be removed if nvidia fixed their uvm module! + install -D -m4755 nvidia-modprobe -t "${pkgdir}/usr/bin" + install -D -m644 nvidia-modprobe.1.gz -t "${pkgdir}/usr/share/man/man1" - # daemon for maintaining persistent software state in the driver - install -D -m755 nvidia-persistenced -t "$pkgdir/usr/bin" - install -D -m644 nvidia-persistenced.1.gz -t "$pkgdir/usr/share/man/man1" - install -D -m644 nvidia-persistenced-init/systemd/nvidia-persistenced.service.template \ - "${pkgdir}/usr/lib/systemd/system/nvidia-persistenced.service" + # nvidia-persistenced + install -D -m755 nvidia-persistenced -t "${pkgdir}/usr/bin" + install -D -m644 nvidia-persistenced.1.gz -t "${pkgdir}/usr/share/man/man1" + install -D -m644 nvidia-persistenced-init/systemd/nvidia-persistenced.service.template "${pkgdir}/usr/lib/systemd/system/nvidia-persistenced.service" sed -i 's/__USER__/nvidia-persistenced/' "${pkgdir}/usr/lib/systemd/system/nvidia-persistenced.service" - # GUI for configuring the driver - install -D -m755 nvidia-settings -t "${pkgdir}/usr/bin" - install -D -m644 nvidia-settings.1.gz -t "${pkgdir}/usr/share/man/man1" - install -D -m644 nvidia-settings.png -t "${pkgdir}/usr/share/pixmaps" - install -D -m644 nvidia-settings.desktop -t "${pkgdir}/usr/share/applications" - sed -e 's:__UTILS_PATH__:/usr/bin:' \ - -e 's:__PIXMAP_PATH__:/usr/share/pixmaps:' \ - -i "${pkgdir}/usr/share/applications/nvidia-settings.desktop" - - # GPU monitoring and management (2/2) - install -D -m755 nvidia-smi -t "${pkgdir}/usr/bin" - install -D -m644 nvidia-smi.1.gz -t "${pkgdir}/usr/share/man/man1" - - # basic control over configuration options in the driver - install -D -m755 nvidia-xconfig -t "${pkgdir}/usr/bin" - install -D -m644 nvidia-xconfig.1.gz -t "${pkgdir}/usr/share/man/man1" - - # debugging and bug reporting - install -D -m755 nvidia-bug-report.sh -t "${pkgdir}/usr/bin" - install -D -m755 nvidia-debugdump -t "${pkgdir}/usr/bin" - -##### MISCELLANEOUS ##### - - # vendor profiles + # application profiles install -D -m644 "nvidia-application-profiles-${pkgver}-rc" -t "${pkgdir}/usr/share/nvidia" install -D -m644 "nvidia-application-profiles-${pkgver}-key-documentation" -t "${pkgdir}/usr/share/nvidia" - - # documentation - install -D -m644 README.txt "${pkgdir}/usr/share/doc/${pkgname}/README" + + install -D -m644 LICENSE -t "${pkgdir}/usr/share/licenses/${pkgname}" + install -D -m644 README.txt "${pkgdir}/usr/share/doc/${pkgname}/README" install -D -m644 NVIDIA_Changelog -t "${pkgdir}/usr/share/doc/${pkgname}" - cp -a html "${pkgdir}/usr/share/doc/${pkgname}" + cp -a html "${pkgdir}/usr/share/doc/${pkgname}/" + #ln -s nvidia "${pkgdir}/usr/share/doc/nvidia-utils" - # distro-specific files must be installed in /usr/share/X11/xorg.conf.d + # distro specific files must be installed in /usr/share/X11/xorg.conf.d install -D -m644 "${srcdir}/nvidia-drm-outputclass.conf" "${pkgdir}/usr/share/X11/xorg.conf.d/10-nvidia-drm-outputclass.conf" - # sysusers install -D -m644 "${srcdir}/nvidia-utils-full-beta-all.sysusers" -t "${pkgdir}/usr/lib/sysusers.d" - # license - install -D -m644 LICENSE -t "${pkgdir}/usr/share/licenses/${pkgname}" -} - -package_nvidia-full-beta-all() { - depends=("nvidia-utils-full-beta-all>=${pkgver}" 'libgl') - provides=("nvidia=${pkgver}" "nvidia-beta=${pkgver}") - conflicts=('nvidia') - - local _dir - local _kernel - - for _dir in $(find /usr/lib/modules -maxdepth 1 -type d -name 'extramodules-*') - do - _kernel="$(cat "${_dir}/version")" - - install -D -m644 "${_pkg}/kernel-${_kernel}/"nvidia{,-drm,-modeset,-uvm}.ko -t "${pkgdir}/${_dir}" - - gzip -n "${pkgdir}/${_dir}/"*.ko - done - - printf '%s\n' 'blacklist nouveau' | install -D -m644 /dev/stdin "${pkgdir}/usr/lib/modprobe.d/nvidia.conf" - - install -D -m644 "${_pkg}/LICENSE" -t "${pkgdir}/usr/share/licenses/${pkgname}" + _create_links } package_lib32-opencl-nvidia-full-beta-all() { pkgdesc="NVIDIA's OpenCL implemention for 'lib32-nvidia-utils-full-beta-all' " - depends=('lib32-zlib' 'lib32-gcc-libs') + depends=('lib32-zlib' 'lib32-gcc-libs' "lib32-nvidia-utils-full-beta-all>=${pkgver}") optdepends=('opencl-headers: headers necessary for OpenCL development') provides=("lib32-opencl-nvidia=${pkgver}" 'lib32-opencl-driver') conflicts=('lib32-opencl-nvidia') - cd "$_pkg" - - # libraries - install -D -m755 "32/libnvidia-compiler.so.${pkgver}" -t "${pkgdir}/usr/lib32" - install -D -m755 "32/libnvidia-opencl.so.${pkgver}" -t "${pkgdir}/usr/lib32" - _create_links - - # license - install -D -m644 LICENSE -t "${pkgdir}/usr/share/licenses/${pkgname}" -} - -package_lib32-nvidia-libgl-full-beta-all() { - pkgdesc="NVIDIA driver library symlinks for 'lib32-nvidia-utils-full-beta-all'" - depends=('lib32-nvidia-utils-full-beta-all' 'nvidia-libgl-full-beta-all') - provides=("lib32-nvidia-libgl=${pkgver}" 'lib32-libgl' 'lib32-libegl' 'lib32-libgles') - conflicts=('lib32-nvidia-libgl' 'lib32-libgl' 'lib32-libegl' 'lib32-libgles') - replaces=('lib32-nvidia-utils<=313.26-1') - - cd "$_pkg" - - mkdir -p "${pkgdir}/usr/lib32/" - - # libGL (link) - ln -s /usr/lib32/nvidia/libGL.so.1.7.0 "${pkgdir}/usr/lib32/libGL.so.1" - ln -s libGL.so.1 "${pkgdir}/usr/lib32/libGL.so" - - # EGL (link) - ln -s /usr/lib32/nvidia/libEGL.so.1.1.0 "${pkgdir}/usr/lib32/libEGL.so.1" - ln -s libEGL.so.1 "${pkgdir}/usr/lib32/libEGL.so" + cd "${_pkg}/32" - # OpenGL ES 1 (link) - ln -s /usr/lib32/nvidia/libGLESv1_CM.so.1.2.0 "${pkgdir}/usr/lib32/libGLESv1_CM.so.1" - ln -s libGLESv1_CM.so.1 "${pkgdir}/usr/lib32/libGLESv1_CM.so" + # OpenCL + install -D -m755 "libnvidia-compiler.so.${pkgver}" -t "${pkgdir}/usr/lib32" + install -D -m755 "libnvidia-opencl.so.${pkgver}" -t "${pkgdir}/usr/lib32" - # OpenGL ES 2 (link) - ln -s /usr/lib32/nvidia/libGLESv2.so.2.1.0 "${pkgdir}/usr/lib32/libGLESv2.so.2" - ln -s libGLESv2.so.2 "${pkgdir}/usr/lib32/libGLESv2.so" + _create_links # license - install -D -m644 LICENSE -t "${pkgdir}/usr/share/licenses/${pkgname}" + install -D -m644 "${srcdir}/${_pkg}/LICENSE" -t "${pkgdir}/usr/share/licenses/${pkgname}" } package_lib32-nvidia-utils-full-beta-all() { pkgdesc="NVIDIA driver utilities and libraries for 'nvidia-full-beta-all' (32-bit)" - depends=('lib32-zlib' 'lib32-gcc-libs' 'nvidia-utils-full-beta-all' 'lib32-mesa>=17.0.2-1') - optdepends=('lib32-opencl-nvidia-full-beta-all: OpenCL support') - provides=("lib32-nvidia-utils=${pkgver}" 'lib32-libglvnd' 'lib32-vulkan-driver') - conflicts=('lib32-nvidia-utils' 'lib32-libglvnd') + depends=('lib32-zlib' 'lib32-gcc-libs' 'lib32-libglvnd' "nvidia-utils-full-beta-all>=${pkgver}") + optdepends=('lib32-opencl-nvidia-full-beta-all: for OpenCL support') + provides=("lib32-nvidia-utils=${pkgver}" 'lib32-vulkan-driver' 'lib32-opengl-driver' + "lib32-nvidia-libgl=${pkgver}" "lib32-nvidia-libgl-beta=${pkgver}") + conflicts=('lib32-nvidia-utils' 'lib32-nvidia-libgl') + replaces=('lib32-nvidia-libgl') cd "${_pkg}/32" - # libGL & OpenGL - install -D -m755 libGL.so.1.7.0 -t "${pkgdir}/usr/lib32/nvidia" - install -D -m755 libGLdispatch.so.0 -t "${pkgdir}/usr/lib32" - install -D -m755 "libnvidia-glcore.so.${pkgver}" -t "${pkgdir}/usr/lib32" - install -D -m755 libOpenGL.so.0 -t "${pkgdir}/usr/lib32" - install -D -m755 "libnvidia-glvkspirv.so.${pkgver}" -t "${pkgdir}/usr/lib32" - - # GLX - install -D -m755 libGLX.so.0 -t "${pkgdir}/usr/lib32" install -D -m755 "libGLX_nvidia.so.${pkgver}" -t "${pkgdir}/usr/lib32" - # now in lib32-mesa driver - #ln -s "libGLX_nvidia.so.${pkgver}" "${pkgdir}/usr/lib32/libGLX_indirect.so.0" - # EGL - install -D -m755 libEGL.so.1.1.0 -t "${pkgdir}/usr/lib32/nvidia" - install -D -m755 "libEGL_nvidia.so.${pkgver}" -t "${pkgdir}/usr/lib32" - install -D -m755 "libnvidia-eglcore.so.${pkgver}" -t "${pkgdir}/usr/lib32" - - # OpenGL ES - install -D -m755 libGLESv1_CM.so.1.2.0 -t "${pkgdir}/usr/lib32/nvidia" + # OpenGL libraries + install -D -m755 "libEGL_nvidia.so.${pkgver}" -t "${pkgdir}/usr/lib32" install -D -m755 "libGLESv1_CM_nvidia.so.${pkgver}" -t "${pkgdir}/usr/lib32" - install -D -m755 libGLESv2.so.2.1.0 -t "${pkgdir}/usr/lib32/nvidia" install -D -m755 "libGLESv2_nvidia.so.${pkgver}" -t "${pkgdir}/usr/lib32" - install -D -m755 "libnvidia-glsi.so.${pkgver}" -t "${pkgdir}/usr/lib32" - # VDPAU (Video Decode and Presentation API for Unix) + # OpenGL core library + install -D -m755 "libnvidia-glcore.so.${pkgver}" -t "${pkgdir}/usr/lib32" + install -D -m755 "libnvidia-eglcore.so.${pkgver}" -t "${pkgdir}/usr/lib32" + install -D -m755 "libnvidia-glsi.so.${pkgver}" -t "${pkgdir}/usr/lib32" + + # misc + install -D -m755 "libnvidia-ifr.so.${pkgver}" -t "${pkgdir}/usr/lib32" + install -D -m755 "libnvidia-fbc.so.${pkgver}" -t "${pkgdir}/usr/lib32" + install -D -m755 "libnvidia-encode.so.${pkgver}" -t "${pkgdir}/usr/lib32" + install -D -m755 "libnvidia-ml.so.${pkgver}" -t "${pkgdir}/usr/lib32" + install -D -m755 "libnvidia-glvkspirv.so.${pkgver}" -t "${pkgdir}/usr/lib32" + + # VDPAU install -D -m755 "libvdpau_nvidia.so.${pkgver}" -t "${pkgdir}/usr/lib32/vdpau" - # GPU-accelerated video encoding - install -D -m755 "libnvidia-encode.so.${pkgver}" -t "${pkgdir}/usr/lib32" + # nvidia-tls library + install -D -m755 "libnvidia-tls.so.${pkgver}" -t "${pkgdir}/usr/lib32" - # CUDA (Compute Unified Device Architecture) (perform traditional CPU calculations with the GPU) + # CUDA install -D -m755 "libcuda.so.${pkgver}" -t "${pkgdir}/usr/lib32" install -D -m755 "libnvcuvid.so.${pkgver}" -t "${pkgdir}/usr/lib32" @@ -443,22 +332,11 @@ package_lib32-nvidia-utils-full-beta-all() { # Fat (multiarchitecture) binary loader install -D -m755 "libnvidia-fatbinaryloader.so.${pkgver}" -t "${pkgdir}/usr/lib32" - # TLS (Thread local storage) support for OpenGL libs - install -D -m755 "libnvidia-tls.so.${pkgver}" -t "${pkgdir}/usr/lib32" - - # GPU monitoring and management - install -D -m755 "libnvidia-ml.so.${pkgver}" -t "${pkgdir}/usr/lib32" - - # helper libs for approved partners GRID remote apps - install -D -m755 "libnvidia-ifr.so.${pkgver}" -t "${pkgdir}/usr/lib32" - install -D -m755 "libnvidia-fbc.so.${pkgver}" -t "${pkgdir}/usr/lib32" - - # Optical Flow + # Optical flow install -D -m755 "libnvidia-opticalflow.so.${pkgver}" -t "${pkgdir}/usr/lib32" _create_links # license - cd "${srcdir}/${_pkg}" - install -D -m644 LICENSE -t "${pkgdir}/usr/share/licenses/${pkgname}" + install -D -m644 "${srcdir}/${_pkg}/LICENSE" -t "${pkgdir}/usr/share/licenses/${pkgname}" } diff --git a/nvidia-settings-full-beta-all-change-desktop-paths.patch b/nvidia-settings-full-beta-all-change-desktop-paths.patch new file mode 100644 index 000000000000..97d02f608293 --- /dev/null +++ b/nvidia-settings-full-beta-all-change-desktop-paths.patch @@ -0,0 +1,13 @@ +diff -Naurp a/nvidia-settings.desktop b/nvidia-settings.desktop +--- a/nvidia-settings.desktop 2019-05-08 00:56:46.000000000 +0000 ++++ b/nvidia-settings.desktop 2019-06-08 16:30:13.000000000 +0000 +@@ -3,7 +3,7 @@ Type=Application + Encoding=UTF-8 + Name=NVIDIA X Server Settings + Comment=Configure NVIDIA X Server Settings +-Exec=__UTILS_PATH__/nvidia-settings +-Icon=__PIXMAP_PATH__/nvidia-settings.png ++Exec=/usr/bin/nvidia-settings ++Icon=/usr/share/pixmaps/nvidia-settings.png + Categories=Settings;HardwareSettings; + diff --git a/nvidia-utils-full-beta-all-change-vulkan-driver-path.patch b/nvidia-utils-full-beta-all-change-vulkan-driver-path.patch new file mode 100644 index 000000000000..1e7a45be536f --- /dev/null +++ b/nvidia-utils-full-beta-all-change-vulkan-driver-path.patch @@ -0,0 +1,12 @@ +diff -Naurp a/nvidia_icd.json.template b/nvidia_icd.json.template +--- a/nvidia_icd.json.template 2019-05-08 00:55:21.000000000 +0000 ++++ b/nvidia_icd.json.template 2019-06-08 15:56:37.000000000 +0000 +@@ -1,7 +1,7 @@ + { + "file_format_version" : "1.0.0", + "ICD": { +- "library_path": "__NV_VK_ICD__", ++ "library_path": "libGLX_nvidia.so.0", + "api_version" : "1.1.99" + } + } diff --git a/nvidia-utils-full-beta-all.install b/nvidia-utils-full-beta-all.install index 6090aad70c43..d87d405aef6d 100644 --- a/nvidia-utils-full-beta-all.install +++ b/nvidia-utils-full-beta-all.install @@ -1,7 +1,8 @@ post_upgrade() { - printf '%s\n' "If you run into trouble with CUDA not being available, run 'nvidia-modprobe' first." -} - -post_install() { - post_upgrade + if (("$(vercmp "$2" 430.14-2)" < 0 )) + then + printf '%s\n' '==> Package nvidia-egl-wayland-full-beta-all was dropped since version 430.14-2.' + printf '%s\n' '==> Replace it with egl-wayland from the official repositories with:' + printf '%s\n' '==> # pacman -Syu egl-wayland' + fi } |