1
0
mirror of https://git.FreeBSD.org/ports.git synced 2025-01-16 07:58:04 +00:00

Update nVidia main driver, Linux libraries, and tools to version 460.36.

PR:	249505, 250277
This commit is contained in:
Alexey Dokuchaev 2021-02-05 07:27:55 +00:00
parent e8506bd7d0
commit bc4f906a66
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=564088
11 changed files with 104 additions and 26 deletions

View File

@ -1,7 +1,7 @@
# $FreeBSD$
PORTNAME= nvidia-libs
DISTVERSION?= 440.100
DISTVERSION?= 460.39
# Always try to set PORTREVISION as it can be overridden by the slave ports
PORTREVISION?= 0
CATEGORIES= x11 linux
@ -40,9 +40,6 @@ LINUX_LIBS= libcuda.so.${PORTVERSION} \
libnvidia-opencl.so.${PORTVERSION} \
libnvidia-tls.so.${PORTVERSION} \
libvdpau_nvidia.so.${PORTVERSION}
.if ${NVVERSION} < 415.013
LINUX_LIBS+= tls/libnvidia-tls.so.${PORTVERSION}
.endif
LINUX_LINKS= libcuda.so.${PORTVERSION} libcuda.so.1 \
libcuda.so.${PORTVERSION} libcuda.so \
libnvcuvid.so.${PORTVERSION} libnvcuvid.so.1 \
@ -61,6 +58,7 @@ LINUX32_LIBS= libcuda.so.${PORTVERSION} \
libnvidia-tls.so.${PORTVERSION} \
libvdpau_nvidia.so.${PORTVERSION}
.if ${NVVERSION} < 415.013
LINUX_LIBS+= tls/libnvidia-tls.so.${PORTVERSION}
LINUX32_LIBS+= tls/libnvidia-tls.so.${PORTVERSION}
.endif
LINUX32_LINKS= libcuda.so.${PORTVERSION} libcuda.so.1 \
@ -93,11 +91,16 @@ PLIST_RE+= '\,${LINUXBASE}.*libEGL_nvidia\.so\.${PORTVERSION},d'
.else
PLIST_RE+= '\,${LINUXBASE}.*libEGL_nvidia\.so,d'
.endif
.if ${NVVERSION} >= 361.016 && ${NVVERSION} < 450.051
LINUX_LIBS+= libnvidia-fatbinaryloader.so.${PORTVERSION}
LINUX32_LIBS+= libnvidia-fatbinaryloader.so.${PORTVERSION}
.else
PLIST_RE+= '\,${LINUXBASE}.*libnvidia-fatbinaryloader\.so,d'
.endif
.if ${NVVERSION} >= 361.016
LINUX_LIBS+= libGLESv1_CM_nvidia.so.${PORTVERSION} \
libGLESv2_nvidia.so.${PORTVERSION} \
libGLX_nvidia.so.${PORTVERSION} \
libnvidia-fatbinaryloader.so.${PORTVERSION} \
libnvidia-ptxjitcompiler.so.${PORTVERSION}
LINUX_LINKS+= libGLESv1_CM_nvidia.so.${PORTVERSION} libGLESv1_CM_nvidia.so.1 \
libGLESv2_nvidia.so.${PORTVERSION} libGLESv2_nvidia.so.2 \
@ -108,7 +111,6 @@ LINUX_LINKS+= libGLESv1_CM_nvidia.so.${PORTVERSION} libGLESv1_CM_nvidia.so.1 \
LINUX32_LIBS+= libGLESv1_CM_nvidia.so.${PORTVERSION} \
libGLESv2_nvidia.so.${PORTVERSION} \
libGLX_nvidia.so.${PORTVERSION} \
libnvidia-fatbinaryloader.so.${PORTVERSION} \
libnvidia-ptxjitcompiler.so.${PORTVERSION}
LINUX32_LINKS+= libGLESv1_CM_nvidia.so.${PORTVERSION} libGLESv1_CM_nvidia.so.1 \
libGLESv2_nvidia.so.${PORTVERSION} libGLESv2_nvidia.so.2 \
@ -119,10 +121,13 @@ LINUX32_LINKS+= libGLESv1_CM_nvidia.so.${PORTVERSION} libGLESv1_CM_nvidia.so.1 \
.else
PLIST_RE+= '\,${LINUXBASE}.*libGLESv(1_CM|2)_nvidia\.so,d' \
'\,${LINUXBASE}.*libGLX_(nvidia|indirect)\.so,d' \
'\,${LINUXBASE}.*libnvidia-fatbinaryloader\.so,d' \
'\,${LINUXBASE}.*libnvidia-ptxjitcompiler\.so,d'
.endif
.if ${NVVERSION} >= 440.026
.if ${NVVERSION:R} >= 460 # 460.27.04
LINUX_LIBS+= libnvidia-egl-wayland.so.1.1.5
LINUX_LINKS+= libnvidia-egl-wayland.so.1.1.5 libnvidia-egl-wayland.so.1
PLIST_RE+= '\,${LINUXBASE},s/(libnvidia-egl-wayland\.so)\.X/\1.1.1.5/'
.elif ${NVVERSION} >= 440.026
LINUX_LIBS+= libnvidia-egl-wayland.so.1.1.4
LINUX_LINKS+= libnvidia-egl-wayland.so.1.1.4 libnvidia-egl-wayland.so.1
PLIST_RE+= '\,${LINUXBASE},s/(libnvidia-egl-wayland\.so)\.X/\1.1.1.4/'

View File

@ -1,6 +1,6 @@
TIMESTAMP = 1482026038
SHA256 (NVIDIA-Linux-x86_64-440.100.run) = 649684fab4f37b178afb6cae012e7f9736377d89fa8abdfca26f24a13bbacf1f
SIZE (NVIDIA-Linux-x86_64-440.100.run) = 144653408
SHA256 (NVIDIA-Linux-x86_64-460.39.run) = 0bf0664078013aa62ed6840caed0637b226884b9398e1fb647e127ad3ad9a37f
SIZE (NVIDIA-Linux-x86_64-460.39.run) = 178310565
SHA256 (NVIDIA-Linux-x86_64-390.141.run) = 4b389a374412c80b2eda356c0fb9e8bef5768831d2cb77c8c9f906f6172c3f7e
SIZE (NVIDIA-Linux-x86_64-390.141.run) = 85330901
SHA256 (NVIDIA-Linux-x86-390.141.run) = 8dfbc8ce77d2f49780105dd7e3058bbf8e663e9b17495507b7544ece34ffaf43

View File

@ -11,9 +11,9 @@
# or `x11/nvidia-driver-304').
PORTNAME= nvidia-driver
DISTVERSION?= 440.100
DISTVERSION?= 460.39
# Always try to set PORTREVISION as it can be overridden by the slave ports
PORTREVISION?= 1
PORTREVISION?= 0
CATEGORIES= x11
MASTER_SITES= NVIDIA/XFree86/FreeBSD-${ARCH_SUFX}/${DISTVERSION}
DISTNAME= NVIDIA-FreeBSD-${ARCH_SUFX}-${DISTVERSION}
@ -47,9 +47,7 @@ SUB_FILES+= pkg-deinstall pkg-install
SUB_PATCHES= extra-patch-src-Makefile \
extra-patch-src-nv-freebsd.h \
extra-patch-src-nv-misc.h \
extra-patch-src-nvidia_ctl.c \
extra-patch-src-nvidia_dev.c \
extra-patch-src-nvidia_linux.c \
extra-patch-src-nvidia_pci.c
DOCSDIR= ${PREFIX}/share/doc/NVIDIA_GLX-1.0
MODULESDIR= lib/xorg/modules
@ -67,8 +65,15 @@ NVSRC= .
NVSRC= nvidia
.endif
.if ${NVVERSION} >= 358.009
.if ${NVVERSION} < 460.039
. if ${NVVERSION} >= 358.009
EXTRA_PATCHES+= ${FILESDIR}/extra-patch-src_nvidia-modeset_nvidia-modeset-freebsd.c
. endif
SUB_PATCHES+= extra-patch-src-nvidia_ctl.c \
extra-patch-src-nvidia_linux.c
.else
EXTRA_PATCHES+= ${FILESDIR}/460-patch-lib-libGLX_nvidia-Makefile
SUB_PATCHES+= 460-patch-src-nvidia_linux.c
.endif
OPTIONS_DEFINE= ACPI_PM LINUX WBINVD DOCS
@ -99,7 +104,7 @@ EXTRA_PATCHES+= ${WRKDIR}/${p}
post-patch: .SILENT
# We should support -CURRENT: kill the check (first #if __FreeBSD_version)
linenum=$$(${SED} -ne '/^#if __FreeBSD_version/ {=; q;}' \
linenum=$$(${SED} -ne '/^#if __FreeBSD_version/ { = ; q ; }' \
${WRKSRC}/src/${NVSRC}/nv-freebsd.h) ; ${REINPLACE_CMD} \
-e "$$linenum,+2d" ${WRKSRC}/src/${NVSRC}/nv-freebsd.h
# Adjust Linux headers #include's after FreeBSD src r246085
@ -213,6 +218,10 @@ post-install: .SILENT
${INSTALL_SCRIPT} ${WRKSRC}/obj/nvidia-bug-report.sh \
${STAGEDIR}${PREFIX}/bin
# pkg-plist is already overbloated, so use these hacks instead of PLIST_SUB's
.if ${NVVERSION:R} < 460
${REINPLACE_CMD} -e '/libnvidia-glvkspirv\.so/d ; \
/nvidia_icd\.json/d ; /nvidia_layers\.json/d' ${TMPPLIST}
.endif
.if ${NVVERSION} >= 304.128 && ${NVVERSION} < 310.019 || ${NVVERSION} >= 361.016
${REINPLACE_CMD} -E '/libvdpau(_trace)?\.so/d' ${TMPPLIST}
.endif

View File

@ -1,6 +1,6 @@
TIMESTAMP = 1482026038
SHA256 (NVIDIA-FreeBSD-x86_64-440.100.tar.gz) = da5abe605560890405976785eb28e6d9fa79181ac7d158e52e5327d4d0faef5f
SIZE (NVIDIA-FreeBSD-x86_64-440.100.tar.gz) = 82523267
SHA256 (NVIDIA-FreeBSD-x86_64-460.39.tar.gz) = a666f04313e9c919e3c6ecebe3c8d75d91246147955d9497ce6dae64738a314e
SIZE (NVIDIA-FreeBSD-x86_64-460.39.tar.gz) = 108214308
SHA256 (NVIDIA-FreeBSD-x86_64-390.141.tar.gz) = d51fb464a52773c285ba075628f4a513a3ece5bba8e500be8b65fd0c122f78a4
SIZE (NVIDIA-FreeBSD-x86_64-390.141.tar.gz) = 65303462
SHA256 (NVIDIA-FreeBSD-x86-390.141.tar.gz) = c0e2abc13ec350ba7d34bf68225261cf1bfa0f5b07e30c71dd090c83c0542f7d

View File

@ -0,0 +1,27 @@
--- lib/libGLX_nvidia/Makefile.orig
+++ lib/libGLX_nvidia/Makefile
@@ -16,18 +16,18 @@ EXTRADEPS= nvidia-application-profiles-rc nvidia_icd.j
# look for this file.
nvidia_icd.json:
- @mkdir -p ${VKICD_PATH}
+ @mkdir -p ${DESTDIR}${VKICD_PATH}
@${INSTALL} -o ${LIBOWN} -g ${LIBGRP} -m ${LIBMODE} \
${NVIDIA_ROOT}/nvidia_icd.json \
- ${VKICD_PATH}
- @sed -i '' -e "s/__NV_VK_ICD__/lib${LIB}.so/" ${VKICD_PATH}/nvidia_icd.json
+ ${DESTDIR}${VKICD_PATH}
+ @sed -i '' -e "s/__NV_VK_ICD__/lib${LIB}.so/" ${DESTDIR}${VKICD_PATH}/nvidia_icd.json
nvidia_layers.json:
- @mkdir -p ${VKLAYERS_PATH}
+ @mkdir -p ${DESTDIR}${VKLAYERS_PATH}
@${INSTALL} -o ${LIBOWN} -g ${LIBGRP} -m ${LIBMODE} \
${NVIDIA_ROOT}/nvidia_layers.json \
- ${VKLAYERS_PATH}
- @sed -i '' -e "s/__NV_VK_ICD__/lib${LIB}.so/" ${VKLAYERS_PATH}/nvidia_layers.json
+ ${DESTDIR}${VKLAYERS_PATH}
+ @sed -i '' -e "s/__NV_VK_ICD__/lib${LIB}.so/" ${DESTDIR}${VKLAYERS_PATH}/nvidia_layers.json
nvidia-application-profiles-rc:

View File

@ -0,0 +1,33 @@
--- src/%%NVSRC%%/nvidia_linux.c.orig 2017-09-14 20:46:30 UTC
+++ src/%%NVSRC%%/nvidia_linux.c
@@ -35,21 +35,16 @@ int linux_ioctl_nvidia(
struct linux_ioctl_args *args
)
{
- struct file *fp;
- int error;
- cap_rights_t rights;
- u_long cmd;
+ static const uint32_t dir[4] = { IOC_VOID, IOC_IN, IOC_OUT, IOC_INOUT };
- error = fget(td, args->fd, cap_rights_init(&rights, CAP_IOCTL), &fp);
- if (error != 0)
- return error;
-
- cmd = args->cmd;
-
- error = fo_ioctl(fp, cmd, (caddr_t)args->arg, td->td_ucred, td);
- fdrop(fp, td);
-
- return error;
+ if ((args->cmd & (1<<29)) != 0) {
+ /* FreeBSD has only 13 bits to encode the size. */
+ printf("nvidia: pid %d (%s): ioctl cmd=0x%x size too large\n",
+ (int)td->td_proc->p_pid, td->td_proc->p_comm, args->cmd);
+ return (EINVAL);
+ }
+ args->cmd = (args->cmd & ~IOC_DIRMASK) | dir[args->cmd >> 30];
+ return (sys_ioctl(td, (struct ioctl_args *)args));
}
struct linux_ioctl_handler nvidia_handler = {

View File

@ -37,6 +37,8 @@ lib/libnvidia-glcore.so
lib/libnvidia-glcore.so.1
lib/libnvidia-glsi.so
lib/libnvidia-glsi.so.1
lib/libnvidia-glvkspirv.so
lib/libnvidia-glvkspirv.so.1
lib/libnvidia-ml.so
lib/libnvidia-ml.so.1
lib/libnvidia-tls.so
@ -79,6 +81,8 @@ lib32/vdpau/libvdpau_nvidia.so.1
man/man1/nvidia-smi.1.gz
@comment share/egl/egl_external_platform.d/10_nvidia_wayland.json
share/glvnd/egl_vendor.d/10_nvidia.json
share/vulkan/icd.d/nvidia_icd.json
share/vulkan/implicit_layer.d/nvidia_layers.json
%%MODULESDIR%%/drivers/nvidia_drv.so
%%MODULESDIR%%/extensions/.nvidia/libglx.so
%%MODULESDIR%%/extensions/.nvidia/libglx.so.1

View File

@ -2,7 +2,7 @@
# $FreeBSD$
PORTNAME= nvidia-settings
PORTVERSION= 440.100
PORTVERSION= 460.39
CATEGORIES= x11
MAINTAINER= x11@FreeBSD.org

View File

@ -1,3 +1,3 @@
TIMESTAMP = 1593032511
SHA256 (NVIDIA-nvidia-settings-440.100_GH0.tar.gz) = 562e487261986f4e5241f554b14b799fd9184cdb121532c0e3fe309709c37719
SIZE (NVIDIA-nvidia-settings-440.100_GH0.tar.gz) = 1314731
TIMESTAMP = 1611681405
SHA256 (NVIDIA-nvidia-settings-460.39_GH0.tar.gz) = ea4183fcf38f4cdfedbf782f101de57a88e2c38fc25b9bd691b101087da0e5e2
SIZE (NVIDIA-nvidia-settings-460.39_GH0.tar.gz) = 1233261

View File

@ -2,7 +2,7 @@
# $FreeBSD$
PORTNAME= nvidia-xconfig
PORTVERSION= 440.100
PORTVERSION= 460.39
CATEGORIES= x11
MAINTAINER= x11@FreeBSD.org

View File

@ -1,3 +1,3 @@
TIMESTAMP = 1593032427
SHA256 (NVIDIA-nvidia-xconfig-440.100_GH0.tar.gz) = 2517e614b8500f69099b74abceb782ca4741c61dc288560d9d39c40cfa458b1d
SIZE (NVIDIA-nvidia-xconfig-440.100_GH0.tar.gz) = 141048
TIMESTAMP = 1611681275
SHA256 (NVIDIA-nvidia-xconfig-460.39_GH0.tar.gz) = eb6e6034389a3ed2ea39d89b9a7a49e9f1cc4669f620abff114964867c05ed9f
SIZE (NVIDIA-nvidia-xconfig-460.39_GH0.tar.gz) = 142321