aboutsummaryrefslogtreecommitdiff
path: root/x11/nvidia-driver
diff options
context:
space:
mode:
authorTijl Coosemans <tijl@FreeBSD.org>2018-12-14 16:24:02 +0000
committerTijl Coosemans <tijl@FreeBSD.org>2018-12-14 16:24:02 +0000
commitdae73343c3fa55323131714bebe19131a9329faa (patch)
treef6139bfaceb181693a1cc4f81c941195adc47ada /x11/nvidia-driver
parent0674a3d197928e2516de7ce4ea996b48669fa62b (diff)
downloadports-dae73343c3fa55323131714bebe19131a9329faa.tar.gz
ports-dae73343c3fa55323131714bebe19131a9329faa.zip
Notes
Diffstat (limited to 'x11/nvidia-driver')
-rw-r--r--x11/nvidia-driver/Makefile406
-rw-r--r--x11/nvidia-driver/distinfo12
-rw-r--r--x11/nvidia-driver/files/extra-patch-src-Makefile.in (renamed from x11/nvidia-driver/files/extra-patch-src-Makefile)6
-rw-r--r--x11/nvidia-driver/files/extra-patch-src-nv-freebsd.h.in (renamed from x11/nvidia-driver/files/extra-patch-src-nv-freebsd.h)6
-rw-r--r--x11/nvidia-driver/files/extra-patch-src-nv-misc.h.in (renamed from x11/nvidia-driver/files/extra-patch-src-nv-misc.h)4
-rw-r--r--x11/nvidia-driver/files/extra-patch-src-nvidia_ctl.c.in75
-rw-r--r--x11/nvidia-driver/files/extra-patch-src-nvidia_dev.c.in66
-rw-r--r--x11/nvidia-driver/files/extra-patch-src-nvidia_linux.c.in35
-rw-r--r--x11/nvidia-driver/files/extra-patch-src-nvidia_pci.c.in10
-rw-r--r--x11/nvidia-driver/files/extra-patch-src_nvidia-modeset_nvidia-modeset-freebsd.c97
-rw-r--r--x11/nvidia-driver/files/extra-patch-src_nvidia_Makefile18
-rw-r--r--x11/nvidia-driver/files/extra-patch-src_nvidia_nv-freebsd.h14
-rw-r--r--x11/nvidia-driver/files/extra-patch-src_nvidia_nv-misc.h11
-rw-r--r--x11/nvidia-driver/pkg-plist206
14 files changed, 843 insertions, 123 deletions
diff --git a/x11/nvidia-driver/Makefile b/x11/nvidia-driver/Makefile
index 71eda17c42df..c405976f27ed 100644
--- a/x11/nvidia-driver/Makefile
+++ b/x11/nvidia-driver/Makefile
@@ -12,10 +12,12 @@
PORTNAME= nvidia-driver
DISTVERSION?= 390.87
# Always try to set PORTREVISION as it can be overridden by the slave ports
-PORTREVISION?= 0
+PORTREVISION?= 1
CATEGORIES= x11
MASTER_SITES= NVIDIA/XFree86/FreeBSD-${ARCH_SUFX}/${DISTVERSION}
DISTNAME= NVIDIA-FreeBSD-${ARCH_SUFX}-${DISTVERSION}
+DISTFILES= ${DISTNAME}${EXTRACT_SUFX}
+EXTRACT_ONLY= ${DISTNAME}${EXTRACT_SUFX}
MAINTAINER= danfe@FreeBSD.org
COMMENT= NVidia graphics card binary drivers for hardware OpenGL rendering
@@ -40,7 +42,15 @@ USE_LDCONFIG= yes
# hack below to universally set NVIDIA_ROOT. Also provide X11BASE value
# since it is still used by legacy drivers.
MAKE_ENV= NVIDIA_ROOT=${WRKSRC} X11BASE=${LOCALBASE}
+PLIST_RE= # empty
SUB_FILES= pkg-deinstall pkg-install pkg-message nvidia.conf
+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
PORTDOCS= *
@@ -64,14 +74,8 @@ SUB_LIST+= NVGL="\# "
.endif
.if ${NVVERSION} < 355.006
-EXTRA_PATCHES= ${FILESDIR}/extra-patch-src-Makefile \
- ${FILESDIR}/extra-patch-src-nv-freebsd.h \
- ${FILESDIR}/extra-patch-src-nv-misc.h
NVSRC= .
.else
-EXTRA_PATCHES= ${FILESDIR}/extra-patch-src_nvidia_Makefile \
- ${FILESDIR}/extra-patch-src_nvidia_nv-freebsd.h \
- ${FILESDIR}/extra-patch-src_nvidia_nv-misc.h
NVSRC= nvidia
.endif
@@ -85,6 +89,7 @@ EXTRA_PATCHES+= ${FILESDIR}/extra-patch-src_nvidia-modeset_nvidia-modeset-freebs
OPTIONS_DEFINE= ACPI_PM LINUX WBINVD DOCS
OPTIONS_DEFINE_i386= PAE
OPTIONS_DEFAULT= LINUX
+OPTIONS_SUB= yes
ACPI_PM_DESC= ACPI Power Management support
LINUX_DESC= Linux compatibility support
@@ -96,22 +101,315 @@ OPTIONS_DEFINE+= FREEBSD_AGP
FREEBSD_AGP_DESC= Use FreeBSD AGP GART driver
.endif
-PLIST_SUB+= LINUXBASE=${LINUXBASE} SHLIB_VERSION=${PORTVERSION} \
+LINUX_MASTER_SITES=NVIDIA/XFree86/Linux-${LINUX_ARCH_SUFX}/${DISTVERSION}/:linux
+LINUX_DISTFILES=NVIDIA-Linux-${LINUX_ARCH_SUFX}-${DISTVERSION}.run:linux
+LINUX_USES= linux
+LINUX_USE= LINUX=xorglibs
+
+LINUX_ARCH_SUFX=${LINUX_ARCH:S/i386/x86/}
+LINUX_LIBDIR= /usr/lib${LINUX_ARCH:S/i386//:S/x86_64/64/}
+LINUX_WRKSRC= ${WRKDIR}/NVIDIA-Linux-${LINUX_ARCH_SUFX}-${DISTVERSION}
+
+LINUX_LIBS= libcuda.so.${PORTVERSION} \
+ libnvcuvid.so.${PORTVERSION} \
+ libnvidia-cfg.so.${PORTVERSION} \
+ libnvidia-compiler.so.${PORTVERSION} \
+ libnvidia-glcore.so.${PORTVERSION} \
+ libnvidia-ml.so.${PORTVERSION} \
+ libnvidia-opencl.so.${PORTVERSION} \
+ libnvidia-tls.so.${PORTVERSION} \
+ libvdpau_nvidia.so.${PORTVERSION} \
+ tls/libnvidia-tls.so.${PORTVERSION}
+LINUX_LINKS= libcuda.so.${PORTVERSION} libcuda.so.1 \
+ libcuda.so.${PORTVERSION} libcuda.so \
+ libnvcuvid.so.${PORTVERSION} libnvcuvid.so.1 \
+ libnvcuvid.so.${PORTVERSION} libnvcuvid.so \
+ libnvidia-cfg.so.${PORTVERSION} libnvidia-cfg.so.1 \
+ libnvidia-cfg.so.${PORTVERSION} libnvidia-cfg.so \
+ libnvidia-ml.so.${PORTVERSION} libnvidia-ml.so.1 \
+ libnvidia-ml.so.${PORTVERSION} libnvidia-ml.so \
+ libnvidia-opencl.so.${PORTVERSION} libnvidia-opencl.so.1 \
+ libvdpau_nvidia.so.${PORTVERSION} vdpau/libvdpau_nvidia.so.1
+LINUX32_LIBS= libcuda.so.${PORTVERSION} \
+ libnvidia-compiler.so.${PORTVERSION} \
+ libnvidia-glcore.so.${PORTVERSION} \
+ libnvidia-ml.so.${PORTVERSION} \
+ libnvidia-opencl.so.${PORTVERSION} \
+ libnvidia-tls.so.${PORTVERSION} \
+ libvdpau_nvidia.so.${PORTVERSION} \
+ tls/libnvidia-tls.so.${PORTVERSION}
+LINUX32_LINKS= libcuda.so.${PORTVERSION} libcuda.so.1 \
+ libcuda.so.${PORTVERSION} libcuda.so \
+ libnvidia-ml.so.${PORTVERSION} libnvidia-ml.so.1 \
+ libnvidia-ml.so.${PORTVERSION} libnvidia-ml.so \
+ libnvidia-opencl.so.${PORTVERSION} libnvidia-opencl.so.1 \
+ libvdpau_nvidia.so.${PORTVERSION} vdpau/libvdpau_nvidia.so.1
+LINUX_PROGS= nvidia-debugdump nvidia-settings nvidia-smi nvidia-xconfig
+LINUX_MANS= nvidia-settings nvidia-smi nvidia-xconfig
+LINUX_DATA= nvidia.icd /etc/OpenCL/vendors
+.if ${NVVERSION} >= 375.010
+LINUX_DATA+= 10_nvidia.json /usr/share/glvnd/egl_vendor.d
+.else
+PLIST_RE+= '\,${LINUXBASE}/usr/share/glvnd,d'
+.endif
+.if ${NVVERSION} >= 378.009
+LINUX_DATA+= 10_nvidia_wayland.json /usr/share/egl/egl_external_platform.d
+.else
+PLIST_RE+= '\,${LINUXBASE}/usr/share/egl,d'
+.endif
+.if ${NVVERSION} >= 390.042
+LINUX_LIBS+= libEGL.so.1.1.0
+LINUX_LINKS+= libEGL.so.1.1.0 libEGL.so.1
+LINUX32_LIBS+= libEGL.so.1.1.0
+LINUX32_LINKS+= libEGL.so.1.1.0 libEGL.so.1
+PLIST_RE+= '\,${LINUXBASE},s/(libEGL\.so)\.X/\1.1.1.0/'
+.elif ${NVVERSION} >= 355.006
+LINUX_LIBS+= libEGL.so.1
+LINUX32_LIBS+= libEGL.so.1
+PLIST_RE+= '\,${LINUXBASE}.*libEGL\.so\.X,d'
+.elif ${NVVERSION} >= 331.013
+LINUX_LIBS+= libEGL.so.${PORTVERSION}
+LINUX_LINKS+= libEGL.so.${PORTVERSION} libEGL.so.1
+LINUX32_LIBS+= libEGL.so.${PORTVERSION}
+LINUX32_LINKS+= libEGL.so.${PORTVERSION} libEGL.so.1
+PLIST_RE+= '\,${LINUXBASE},s/(libEGL\.so)\.X/\1.${PORTVERSION}/'
+.else
+PLIST_RE+= '\,${LINUXBASE}.*libEGL\.so,d'
+.endif
+.if ${NVVERSION} >= 361.016
+LINUX_LIBS+= libEGL_nvidia.so.${PORTVERSION}
+LINUX_LINKS+= libEGL_nvidia.so.${PORTVERSION} libEGL_nvidia.so.0
+LINUX32_LIBS+= libEGL_nvidia.so.${PORTVERSION}
+LINUX32_LINKS+= libEGL_nvidia.so.${PORTVERSION} libEGL_nvidia.so.0
+.elif ${NVVERSION} >= 355.006
+LINUX_LIBS+= libEGL_nvidia.so.0
+PLIST_RE+= '\,${LINUXBASE}.*libEGL_nvidia\.so\.${PORTVERSION},d'
+.else
+PLIST_RE+= '\,${LINUXBASE}.*libEGL_nvidia\.so,d'
+.endif
+.if ${NVVERSION} >= 390.042
+LINUX_LIBS+= libGL.so.1.7.0
+LINUX_LINKS+= libGL.so.1.7.0 libGL.so.1
+LINUX32_LIBS+= libGL.so.1.7.0
+LINUX32_LINKS+= libGL.so.1.7.0 libGL.so.1
+PLIST_RE+= '\,${LINUXBASE},s/(libGL\.so)\.X/\1.1.7.0/'
+.elif ${NVVERSION} >= 361.028
+LINUX_LIBS+= libGL.so.1.0.0
+LINUX_LINKS+= libGL.so.1.0.0 libGL.so.1
+LINUX32_LIBS+= libGL.so.1.0.0
+LINUX32_LINKS+= libGL.so.1.0.0 libGL.so.1
+PLIST_RE+= '\,${LINUXBASE},s/(libGL\.so)\.X/\1.1.0.0/'
+.elif ${NVVERSION} >= 361.016
+LINUX_LIBS+= libGL.so.1
+LINUX32_LIBS+= libGL.so.1
+PLIST_RE+= '\,${LINUXBASE}.*libGL\.so\.X,d'
+.else
+LINUX_LIBS+= libGL.so.${PORTVERSION}
+LINUX_LINKS+= libGL.so.${PORTVERSION} libGL.so.1
+LINUX32_LIBS+= libGL.so.${PORTVERSION}
+LINUX32_LINKS+= libGL.so.${PORTVERSION} libGL.so.1
+PLIST_RE+= '\,${LINUXBASE},s/(libGL\.so)\.X/\1.${PORTVERSION}/'
+.endif
+.if ${NVVERSION} >= 390.042
+LINUX_LIBS+= libGLESv1_CM.so.1.2.0 \
+ libGLESv2.so.2.1.0
+LINUX_LINKS+= libGLESv1_CM.so.1.2.0 libGLESv1_CM.so.1 \
+ libGLESv2.so.2.1.0 libGLESv2.so.2
+LINUX32_LIBS+= libGLESv1_CM.so.1.2.0 \
+ libGLESv2.so.2.1.0
+LINUX32_LINKS+= libGLESv1_CM.so.1.2.0 libGLESv1_CM.so.1 \
+ libGLESv2.so.2.1.0 libGLESv2.so.2
+PLIST_RE+= '\,${LINUXBASE},s/(libGLESv1_CM\.so)\.X/\1.1.2.0/' \
+ '\,${LINUXBASE},s/(libGLESv2\.so)\.X/\1.2.1.0/'
+.elif ${NVVERSION} >= 361.016
+LINUX_LIBS+= libGLESv1_CM.so.1 \
+ libGLESv2.so.2
+LINUX32_LIBS+= libGLESv1_CM.so.1 \
+ libGLESv2.so.2
+PLIST_RE+= '\,${LINUXBASE}.*GLESv(1_CM|2)\.so\.X,d'
+.elif ${NVVERSION} >= 331.013
+LINUX_LIBS+= libGLESv1_CM.so.${PORTVERSION} \
+ libGLESv2.so.${PORTVERSION}
+LINUX_LINKS+= libGLESv1_CM.so.${PORTVERSION} libGLESv1_CM.so.1 \
+ libGLESv2.so.${PORTVERSION} libGLESv2.so.2
+LINUX32_LIBS+= libGLESv1_CM.so.${PORTVERSION} \
+ libGLESv2.so.${PORTVERSION}
+LINUX32_LINKS+= libGLESv1_CM.so.${PORTVERSION} libGLESv1_CM.so.1 \
+ libGLESv2.so.${PORTVERSION} libGLESv2.so.2
+PLIST_RE+= '\,${LINUXBASE},s/(libGLESv(1_CM|2)\.so)\.X/\1.${PORTVERSION}/'
+.else
+PLIST_RE+= '\,${LINUXBASE}.*libGLESv(1_CM|2)\.so,d'
+.endif
+.if ${NVVERSION} >= 361.016
+LINUX_LIBS+= libGLESv1_CM_nvidia.so.${PORTVERSION} \
+ libGLESv2_nvidia.so.${PORTVERSION} \
+ libGLX.so.0 \
+ 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 \
+ libGLX.so.0 libGLX.so \
+ libGLX_nvidia.so.${PORTVERSION} libGLX_nvidia.so.0 \
+ libGLX_nvidia.so.${PORTVERSION} libGLX_indirect.so.0 \
+ libnvidia-ptxjitcompiler.so.${PORTVERSION} libnvidia-ptxjitcompiler.so.1 \
+ libnvidia-ptxjitcompiler.so.${PORTVERSION} libnvidia-ptxjitcompiler.so
+LINUX32_LIBS+= libGLESv1_CM_nvidia.so.${PORTVERSION} \
+ libGLESv2_nvidia.so.${PORTVERSION} \
+ libGLX.so.0 \
+ 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 \
+ libGLX.so.0 libGLX.so \
+ libGLX_nvidia.so.${PORTVERSION} libGLX_nvidia.so.0 \
+ libGLX_nvidia.so.${PORTVERSION} libGLX_indirect.so.0 \
+ libnvidia-ptxjitcompiler.so.${PORTVERSION} libnvidia-ptxjitcompiler.so.1 \
+ libnvidia-ptxjitcompiler.so.${PORTVERSION} libnvidia-ptxjitcompiler.so
+.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} >= 355.006
+LINUX_LIBS+= libGLdispatch.so.0 \
+ libOpenGL.so.0
+LINUX_LINKS+= libOpenGL.so.0 libOpenGL.so
+LINUX32_LIBS+= libGLdispatch.so.0 \
+ libOpenGL.so.0
+LINUX32_LINKS+= libOpenGL.so.0 libOpenGL.so
+.else
+PLIST_RE+= '\,${LINUXBASE}.*libGLdispatch\.so,d' \
+ '\,${LINUXBASE}.*libOpenGL\.so,d'
+.endif
+.if ${NVVERSION} >= 387.012
+LINUX_LIBS+= libnvidia-egl-wayland.so.1.0.2
+LINUX_LINKS+= libnvidia-egl-wayland.so.1.0.2 libnvidia-egl-wayland.so.1
+PLIST_RE+= '\,${LINUXBASE},s/(libnvidia-egl-wayland\.so)\.X/\1.1.0.2/'
+.elif ${NVVERSION} >= 378.013
+LINUX_LIBS+= libnvidia-egl-wayland.so.1.0.1
+LINUX_LINKS+= libnvidia-egl-wayland.so.1.0.1 libnvidia-egl-wayland.so.1
+PLIST_RE+= '\,${LINUXBASE},s/(libnvidia-egl-wayland\.so)\.X/\1.1.0.1/'
+.elif ${NVVERSION} >= 378.009
+LINUX_LIBS+= libnvidia-egl-wayland.so.1.0.0
+LINUX_LINKS+= libnvidia-egl-wayland.so.1.0.0 libnvidia-egl-wayland.so.1
+PLIST_RE+= '\,${LINUXBASE},s/(libnvidia-egl-wayland\.so)\.X/\1.1.0.0/'
+.elif ${NVVERSION} >= 364.012
+LINUX_LIBS+= libnvidia-egl-wayland.so.${PORTVERSION}
+LINUX_LINKS+= libnvidia-egl-wayland.so.${PORTVERSION} libnvidia-egl-wayland.so.1
+PLIST_RE+= '\,${LINUXBASE},s/(libnvidia-egl-wayland\.so)\.X/\1.${PORTVERSION}/'
+.else
+PLIST_RE+= '\,${LINUXBASE}.*libnvidia-egl-wayland\.so,d'
+.endif
+.if ${NVVERSION} >= 331.013
+LINUX_LIBS+= libnvidia-eglcore.so.${PORTVERSION} \
+ libnvidia-fbc.so.${PORTVERSION} \
+ libnvidia-glsi.so.${PORTVERSION} \
+ libnvidia-ifr.so.${PORTVERSION}
+LINUX_LINKS+= libnvidia-fbc.so.${PORTVERSION} libnvidia-fbc.so.1 \
+ libnvidia-fbc.so.${PORTVERSION} libnvidia-fbc.so \
+ libnvidia-ifr.so.${PORTVERSION} libnvidia-ifr.so.1 \
+ libnvidia-ifr.so.${PORTVERSION} libnvidia-ifr.so
+LINUX32_LIBS+= libnvidia-eglcore.so.${PORTVERSION} \
+ libnvidia-fbc.so.${PORTVERSION} \
+ libnvidia-glsi.so.${PORTVERSION} \
+ libnvidia-ifr.so.${PORTVERSION}
+LINUX32_LINKS+= libnvidia-fbc.so.${PORTVERSION} libnvidia-fbc.so.1 \
+ libnvidia-fbc.so.${PORTVERSION} libnvidia-fbc.so \
+ libnvidia-ifr.so.${PORTVERSION} libnvidia-ifr.so.1 \
+ libnvidia-ifr.so.${PORTVERSION} libnvidia-ifr.so
+.else
+PLIST_RE+= '\,${LINUXBASE}.*libnvidia-(eglcore|fbc|glsi|ifr),d'
+.endif
+.if ${NVVERSION} >= 310.014
+LINUX_LIBS+= libnvidia-encode.so.${PORTVERSION}
+LINUX_LINKS+= libnvidia-encode.so.${PORTVERSION} libnvidia-encode.so.1 \
+ libnvidia-encode.so.${PORTVERSION} libnvidia-encode.so
+LINUX32_LIBS+= libnvidia-encode.so.${PORTVERSION}
+LINUX32_LINKS+= libnvidia-encode.so.${PORTVERSION} libnvidia-encode.so.1 \
+ libnvidia-encode.so.${PORTVERSION} libnvidia-encode.so
+PLIST_RE+= '\,${LINUXBASE}.*libXvMCNVIDIA,d'
+.else
+LINUX_LIBS+= libXvMCNVIDIA.so.${PORTVERSION}
+LINUX_LINKS+= libXvMCNVIDIA.so.${PORTVERSION} libXvMCNVIDIA_dynamic.so.1 \
+ libXvMCNVIDIA.so.${PORTVERSION} libXvMCNVIDIA_dynamic.so
+PLIST_RE+= '\,${LINUXBASE}.*libnvidia-encode,d'
+.endif
+.if ${NVVERSION} >= 346.016
+LINUX_LIBS+= libnvidia-gtk2.so.${PORTVERSION} \
+ libnvidia-gtk3.so.${PORTVERSION}
+.else
+PLIST_RE+= '\,${LINUXBASE}.*libnvidia-gtk(2|3)\.so,d'
+.endif
+.if ${NVVERSION} >= 331.049 && ${NVVERSION} < 352.009
+LINUX_DATA+= monitoring.conf /usr/share/nvidia \
+ ${WRKSRC}/pci.ids /usr/share/nvidia
+.else
+PLIST_RE+= '\,${LINUXBASE}.*monitoring\.conf,d' \
+ '\,${LINUXBASE}.*pci\.ids,d'
+.endif
+.if ${NVVERSION} >= 334.016
+LINUX_DATA+= nvidia-application-profiles-${PORTVERSION}-key-documentation /usr/share/nvidia
+.else
+PLIST_RE+= '\,${LINUXBASE}.*application-profiles-${PORTVERSION}-key-documentation,d'
+.endif
+.if ${NVVERSION} >= 319.012
+LINUX_DATA+= nvidia-application-profiles-${PORTVERSION}-rc /usr/share/nvidia
+.else
+PLIST_RE+= '\,${LINUXBASE}.*share/nvidia,d'
+.endif
+.if ${NVVERSION} >= 319.017
+LINUX_PROGS+= nvidia-cuda-mps-control nvidia-cuda-mps-server \
+ nvidia-persistenced
+LINUX_MANS+= nvidia-cuda-mps-control nvidia-persistenced
+.else
+LINUX_PROGS+= nvidia-cuda-proxy-control nvidia-cuda-proxy-server
+LINUX_MANS+= nvidia-cuda-proxy-control
+PLIST_RE+= '\,${LINUXBASE},s/cuda-mps/cuda-proxy/' \
+ '\,${LINUXBASE}.*nvidia-persistenced,d'
+.endif
+.if ${NVVERSION} >= 364.012
+LINUX_DATA+= nvidia_icd.json /etc/vulkan/icd.d
+.else
+PLIST_RE+= '\,${LINUXBASE}/etc/vulkan,d'
+.endif
+
+PLIST_SUB+= LINUXBASE=${LINUXBASE} \
+ LINUX_LIBDIR=${LINUX_LIBDIR} \
+ SHLIB_VERSION=${PORTVERSION} \
MODULESDIR=${MODULESDIR}
-.include <bsd.port.options.mk>
+.include <bsd.port.pre.mk>
+
+.if ${NVVERSION} >= 310.014
+LINUX32_LIBS+= libnvcuvid.so.${PORTVERSION}
+LINUX32_LINKS+= libnvcuvid.so.${PORTVERSION} libnvcuvid.so.1 \
+ libnvcuvid.so.${PORTVERSION} libnvcuvid.so
+.elif "${LINUX_ARCH}" == "x86_64"
+PLIST_RE+= '\,${LINUXBASE}/usr/lib/libnvcuvid\.so,d'
+.endif
-.if ${PORT_OPTIONS:MLINUX}
-CONFLICTS_INSTALL= linux[-_]dri-[0-9]* linux-f10-dri-[0-9]*
-USES+= linux
-USE_LINUX= base:build,run xorglibs
-PLIST_SUB+= LINUX=""
+.if "${LINUX_ARCH}" == "x86_64"
+PLIST_SUB+= LINUX32=""
.else
-PLIST_SUB+= LINUX="@comment "
-# Propagate WITHOUT_LINUX variable down to inner Makefiles
-MAKE_ENV+= WITHOUT_LINUX=yes
+PLIST_SUB+= LINUX32="@comment "
.endif
+post-extract-LINUX-on:
+ @(cd ${WRKDIR} && ${SH} \
+ ${DISTDIR}/NVIDIA-Linux-${LINUX_ARCH_SUFX}-${DISTVERSION}.run \
+ --extract-only > /dev/null)
+
+pre-patch:
+.for p in ${SUB_PATCHES}
+ @${SED} 's/%%NVSRC%%/${NVSRC}/g' ${PATCHDIR}/${p}.in > ${WRKDIR}/${p}
+.endfor
+.for p in ${SUB_PATCHES}
+EXTRA_PATCHES+= ${WRKDIR}/${p}
+.endfor
+
post-patch: .SILENT
# We should support -CURRENT: kill the check
${REINPLACE_CMD} -e '24,26d' ${WRKSRC}/src/${NVSRC}/nv-freebsd.h
@@ -136,8 +434,8 @@ post-patch: .SILENT
-e 's/kmem_free(kmem_arena, /kmem_free(/' \
${WRKSRC}/src/${NVSRC}/nvidia_subr.c
.endif
-# Respect WITHOUT_LINUX setting
- ${REINPLACE_CMD} -e 's/exists(\/.*/& \&\& !defined(WITHOUT_LINUX)/' \
+# Disable installation of Linux libraries
+ ${REINPLACE_CMD} -e 's/exists(\/.*/& \&\& 0/' \
${WRKSRC}/lib/Makefile
# Do not install VDPAU libraries which are provided by `multimedia/libvdpau'
# port for a while now
@@ -197,6 +495,13 @@ post-patch: .SILENT
${REINPLACE_CMD} -E 's/(x11).*/\1/ ; /doc/d' ${WRKSRC}/Makefile
.endif
+post-patch-LINUX-on:
+.if ${NVVERSION} >= 384.047
+ @${SED} 's/__NV_VK_ICD__/libGLX_nvidia.so.0/' \
+ ${LINUX_WRKSRC}/nvidia_icd.json.template > \
+ ${LINUX_WRKSRC}/nvidia_icd.json
+.endif
+
pre-install:
@${MKDIR} ${STAGEDIR}${PREFIX}/${MODULESDIR}/drivers \
${STAGEDIR}${PREFIX}/${MODULESDIR}/extensions
@@ -206,37 +511,41 @@ post-install: .SILENT
${STAGEDIR}${PREFIX}/bin
# pkg-plist is already overbloated, so use these hacks instead of PLIST_SUB's
.if ${NVVERSION} >= 304.128 && ${NVVERSION} < 310.019 || ${NVVERSION} >= 361.016
- ${REINPLACE_CMD} -E '/libvdpau(_trace)?\.so/d' ${TMPPLIST}
+ ${REINPLACE_CMD} -E '\,${LINUXBASE},!{/libvdpau(_trace)?\.so/d;}' \
+ ${TMPPLIST}
.endif
.if ${NVVERSION} >= 310.019
- ${REINPLACE_CMD} -e '/libXvMCNVIDIA/d' ${TMPPLIST}
+ ${REINPLACE_CMD} -e '\,${LINUXBASE},!{/libXvMCNVIDIA/d;}' ${TMPPLIST}
.else # some applications need this symlink (see PR ports/72877)
${LN} -sf libXvMCNVIDIA.so.1 \
${STAGEDIR}${PREFIX}/lib/libXvMCNVIDIA_dynamic.so.1
.endif
.if ${NVVERSION} < 331.013 || ${ARCH} == amd64 && ${NVVERSION} < 334.016
- ${REINPLACE_CMD} -E '/lib(nvidia-)?(EGL|eglcore|GLESv|glsi)/d' \
+ ${REINPLACE_CMD} -E '\,${LINUXBASE},!{/lib(nvidia-)?(EGL|eglcore|GLESv|glsi)/d;}' \
${TMPPLIST}
.endif
.if ${NVVERSION} < 352.009
- ${REINPLACE_CMD} -E '/(lib)?nvidia-(debugdump|smi|ml)/d' ${TMPPLIST}
+ ${REINPLACE_CMD} -E '\,${LINUXBASE},!{/(lib)?nvidia-(debugdump|smi|ml)/d;}' \
+ ${TMPPLIST}
.endif
.if ${NVVERSION} < 355.006
- ${REINPLACE_CMD} -E '/(libEGL_nvidia|GLdispatch|OpenGL)/d' ${TMPPLIST}
+ ${REINPLACE_CMD} -E '\,${LINUXBASE},!{/(libEGL_nvidia|GLdispatch|OpenGL)/d;}' \
+ ${TMPPLIST}
.else
- ${REINPLACE_CMD} 's/libEGL\.so\.${PORTVERSION}/libEGL.so/' \
+ ${REINPLACE_CMD} '\,${LINUXBASE},!s/libEGL\.so\.${PORTVERSION}/libEGL.so/' \
${TMPPLIST}
.endif
.if ${NVVERSION} < 358.009
${REINPLACE_CMD} '/nvidia-modeset.ko/d' ${TMPPLIST}
.endif
.if ${NVVERSION} >= 361.028
- ${REINPLACE_CMD} -E '/(EGL_nvidia\.so|GLESv[12](_CM)?(\.so\.[0-9]+\.[0-9]+))$$/d' \
+ ${REINPLACE_CMD} -E '\,${LINUXBASE},!{/(EGL_nvidia\.so|GLESv[12](_CM)?(\.so\.[0-9]+\.[0-9]+))$$/d;}' \
${TMPPLIST}
.else
- ${REINPLACE_CMD} -E '/\/lib\/libGLESv[12](_CM)?(\.so)?(_nvidia.so(\.[0-9]|\.[0-9]+\.[0-9]+)?)?$$/d ; \
- /libEGL_nvidia\.so\.${PORTVERSION}/d' ${TMPPLIST}
+ ${REINPLACE_CMD} -E '\,${LINUXBASE},!{/\/lib\/libGLESv[12](_CM)?(\.so)?(_nvidia.so(\.[0-9]|\.[0-9]+\.[0-9]+)?)?$$/d ; \
+ /libEGL_nvidia\.so\.${PORTVERSION}/d;}' ${TMPPLIST}
.endif
+ ${REINPLACE_CMD} -E ${PLIST_RE:S/^/-e /} ${TMPPLIST}
# rename libGL.so, libEGL.so and libGLESv2.so
${MV} -f ${STAGEDIR}${PREFIX}/lib/libGL.so \
${STAGEDIR}${PREFIX}/lib/libGL-NVIDIA.so
@@ -256,6 +565,45 @@ post-install: .SILENT
${INSTALL_DATA} ${WRKDIR}/nvidia.conf \
${STAGEDIR}${PREFIX}/etc/libmap.d/
+post-install-LINUX-on:
+.for f d in ${LINUX_DATA}
+ ${MKDIR} ${STAGEDIR}${LINUXBASE}${d}
+ ${INSTALL_DATA} ${LINUX_WRKSRC}/${f} ${STAGEDIR}${LINUXBASE}${d}
+.endfor
+ ${MKDIR} ${STAGEDIR}${LINUXBASE}/usr/bin
+ ${INSTALL_SCRIPT} ${LINUX_WRKSRC}/nvidia-bug-report.sh \
+ ${STAGEDIR}${LINUXBASE}/usr/bin
+.for p in ${LINUX_PROGS}
+ ${INSTALL_PROGRAM} ${LINUX_WRKSRC}/${p} ${STAGEDIR}${LINUXBASE}/usr/bin
+.endfor
+ ${MKDIR} ${STAGEDIR}${LINUXBASE}/usr/share/man/man1
+.for m in ${LINUX_MANS}
+ ${INSTALL_MAN} ${LINUX_WRKSRC}/${m}.1.gz \
+ ${STAGEDIR}${LINUXBASE}/usr/share/man/man1
+.endfor
+ ${MKDIR} ${STAGEDIR}${LINUXBASE}${LINUX_LIBDIR}/tls
+ ${MKDIR} ${STAGEDIR}${LINUXBASE}${LINUX_LIBDIR}/vdpau
+.for l in ${LINUX_LIBS}
+ ${INSTALL_LIB} ${LINUX_WRKSRC}/${l} \
+ ${STAGEDIR}${LINUXBASE}${LINUX_LIBDIR}/${l}
+.endfor
+.for s t in ${LINUX_LINKS}
+ ${RLN} ${STAGEDIR}${LINUXBASE}${LINUX_LIBDIR}/${s} \
+ ${STAGEDIR}${LINUXBASE}${LINUX_LIBDIR}/${t}
+.endfor
+.if "${LINUX_ARCH}" == "x86_64"
+ ${MKDIR} ${STAGEDIR}${LINUXBASE}/usr/lib/tls
+ ${MKDIR} ${STAGEDIR}${LINUXBASE}/usr/lib/vdpau
+.for l in ${LINUX32_LIBS}
+ ${INSTALL_LIB} ${LINUX_WRKSRC}/32/${l} \
+ ${STAGEDIR}${LINUXBASE}/usr/lib/${l}
+.endfor
+.for s t in ${LINUX32_LINKS}
+ ${RLN} ${STAGEDIR}${LINUXBASE}/usr/lib/${s} \
+ ${STAGEDIR}${LINUXBASE}/usr/lib/${t}
+.endfor
+.endif
+
# Target below can be used instead of standard `makesum' to correctly
# update distinfo (i.e., keeping other driver version entries intact)
.if ${.TARGETS:Mupdate-distinfo}
@@ -269,4 +617,4 @@ update-distinfo: makesum .SILENT
${MASTERDIR}/distinfo
${RM} ${DISTINFO_FILE} ${MASTERDIR}/distinfo.bak
-.include <bsd.port.mk>
+.include <bsd.port.post.mk>
diff --git a/x11/nvidia-driver/distinfo b/x11/nvidia-driver/distinfo
index 9850adc99e85..ecd7ea942839 100644
--- a/x11/nvidia-driver/distinfo
+++ b/x11/nvidia-driver/distinfo
@@ -1,13 +1,25 @@
TIMESTAMP = 1482026038
SHA256 (NVIDIA-FreeBSD-x86_64-390.87.tar.gz) = 221c80982378a333f541646d5d2030c72311c491f5a0f98b93fdd95cd5be11fc
SIZE (NVIDIA-FreeBSD-x86_64-390.87.tar.gz) = 63648591
+SHA256 (NVIDIA-Linux-x86_64-390.87.run) = 38290a0b19e86037112f22397e02be9cdd6bcd677dd926b2977bbd49119e611e
+SIZE (NVIDIA-Linux-x86_64-390.87.run) = 82690871
SHA256 (NVIDIA-FreeBSD-x86-390.87.tar.gz) = a2e61b0c541aa9bdcde7de43cd88a7ce5ff3de9fdafe60fa7d6e10942186d7d4
SIZE (NVIDIA-FreeBSD-x86-390.87.tar.gz) = 64326801
+SHA256 (NVIDIA-Linux-x86-390.87.run) = 5c29c5f9d80a07ea71219c6323fe5fc9b7577847b970f23161685d4b890b9966
+SIZE (NVIDIA-Linux-x86-390.87.run) = 47959124
SHA256 (NVIDIA-FreeBSD-x86_64-340.107.tar.gz) = 047efae28cc81e4d56c64d2a0c15d9b7ff07f09bba22696464de8276334a4df7
SIZE (NVIDIA-FreeBSD-x86_64-340.107.tar.gz) = 61179967
+SHA256 (NVIDIA-Linux-x86_64-340.107.run) = e3e359964ed568008584c4fb2dbcb76b76a848591d1456a783e94dd0c7f6695f
+SIZE (NVIDIA-Linux-x86_64-340.107.run) = 70233686
SHA256 (NVIDIA-FreeBSD-x86-340.107.tar.gz) = 1978ae48512d8a693979b153463c76954d2aec91a6b2a568b3aa1198e5b3d199
SIZE (NVIDIA-FreeBSD-x86-340.107.tar.gz) = 60305952
+SHA256 (NVIDIA-Linux-x86-340.107.run) = 8d8bd2b04019eaa55d848534e2dbdc460be918e7731ecd8da87199ef9c1a0856
+SIZE (NVIDIA-Linux-x86-340.107.run) = 39016798
SHA256 (NVIDIA-FreeBSD-x86_64-304.137.tar.gz) = 231693189e1bdf5c1dd02315cde5ef9ed6c0854564314438f2f40f9788a34120
SIZE (NVIDIA-FreeBSD-x86_64-304.137.tar.gz) = 36474676
+SHA256 (NVIDIA-Linux-x86_64-304.137.run) = eb1f56db3a2bea13e3ccde7b5ae14abe8cd6c6dbe69af4c71c68a623cc96e3e2
+SIZE (NVIDIA-Linux-x86_64-304.137.run) = 70087133
SHA256 (NVIDIA-FreeBSD-x86-304.137.tar.gz) = 5f874133853eacc5b9a10311cec22d3c4898db7f75b92bb6c12d5be5126516fb
SIZE (NVIDIA-FreeBSD-x86-304.137.tar.gz) = 35399011
+SHA256 (NVIDIA-Linux-x86-304.137.run) = ca98379fc2090bdfe8b74113d6ac7bcc7eadbd86a489c3c4ec4cd5ba9f6064f8
+SIZE (NVIDIA-Linux-x86-304.137.run) = 41504115
diff --git a/x11/nvidia-driver/files/extra-patch-src-Makefile b/x11/nvidia-driver/files/extra-patch-src-Makefile.in
index 818a79ba30f5..8fd6ad2db371 100644
--- a/x11/nvidia-driver/files/extra-patch-src-Makefile
+++ b/x11/nvidia-driver/files/extra-patch-src-Makefile.in
@@ -1,6 +1,6 @@
---- src/Makefile.orig 2014-04-04 23:24:59.000000000 +0200
-+++ src/Makefile 2014-05-06 14:31:07.000000000 +0200
-@@ -24,6 +24,15 @@
+--- src/%%NVSRC%%/Makefile.orig 2017-09-14 20:46:30 UTC
++++ src/%%NVSRC%%/Makefile
+@@ -30,6 +30,15 @@ NOOBJ= true
stdarg.h:
@ln -s machine/stdarg.h stdarg.h
diff --git a/x11/nvidia-driver/files/extra-patch-src-nv-freebsd.h b/x11/nvidia-driver/files/extra-patch-src-nv-freebsd.h.in
index 4662aecb8331..b437b1e13e60 100644
--- a/x11/nvidia-driver/files/extra-patch-src-nv-freebsd.h
+++ b/x11/nvidia-driver/files/extra-patch-src-nv-freebsd.h.in
@@ -1,6 +1,6 @@
---- src/nv-freebsd.h.orig 2014-02-13 05:07:44.000000000 +0100
-+++ src/nv-freebsd.h 2014-05-05 18:38:59.000000000 +0200
-@@ -143,6 +143,11 @@
+--- src/%%NVSRC%%/nv-freebsd.h.orig 2017-09-14 20:46:30 UTC
++++ src/%%NVSRC%%/nv-freebsd.h
+@@ -157,6 +157,11 @@ MALLOC_DECLARE(M_NVIDIA);
#define NV_SUPPORT_ACPI_PM
/*
diff --git a/x11/nvidia-driver/files/extra-patch-src-nv-misc.h b/x11/nvidia-driver/files/extra-patch-src-nv-misc.h.in
index 1a43fb40f029..8d7432070651 100644
--- a/x11/nvidia-driver/files/extra-patch-src-nv-misc.h
+++ b/x11/nvidia-driver/files/extra-patch-src-nv-misc.h.in
@@ -1,5 +1,5 @@
---- src/nv-misc.h.orig 2014-02-13 05:07:44.000000000 +0100
-+++ src/nv-misc.h 2014-05-05 18:45:44.000000000 +0200
+--- src/%%NVSRC%%/nv-misc.h.orig 2017-09-14 20:46:30 UTC
++++ src/%%NVSRC%%/nv-misc.h
@@ -11,6 +11,8 @@
#ifndef _NV_MISC_H_
#define _NV_MISC_H_
diff --git a/x11/nvidia-driver/files/extra-patch-src-nvidia_ctl.c.in b/x11/nvidia-driver/files/extra-patch-src-nvidia_ctl.c.in
new file mode 100644
index 000000000000..a187792bd1cd
--- /dev/null
+++ b/x11/nvidia-driver/files/extra-patch-src-nvidia_ctl.c.in
@@ -0,0 +1,75 @@
+--- src/%%NVSRC%%/nvidia_ctl.c.orig 2017-09-14 20:46:30 UTC
++++ src/%%NVSRC%%/nvidia_ctl.c
+@@ -13,6 +13,12 @@
+ #include "nv.h"
+ #include "nv-freebsd.h"
+
++#ifdef NV_SUPPORT_LINUX_COMPAT /* (COMPAT_LINUX || COMPAT_LINUX32) */
++#include <compat/linux/linux_util.h>
++
++const char nvidia_driver_name[] = "nvidia";
++#endif
++
+ static d_open_t nvidia_ctl_open;
+ static void nvidia_ctl_dtor(void *arg);
+ static d_ioctl_t nvidia_ctl_ioctl;
+@@ -138,6 +144,18 @@ static int nvidia_ctl_poll(
+
+ int nvidia_ctl_attach(void)
+ {
++#ifdef NV_SUPPORT_LINUX_COMPAT
++ struct linux_device_handler nvidia_ctl_linux_handler = {
++ .bsd_driver_name = __DECONST(char *, nvidia_driver_name),
++ .linux_driver_name = __DECONST(char *, nvidia_driver_name),
++ .bsd_device_name = __DECONST(char *, nvidia_ctl_cdevsw.d_name),
++ .linux_device_name = __DECONST(char *, nvidia_ctl_cdevsw.d_name),
++ .linux_major = NV_MAJOR_DEVICE_NUMBER,
++ .linux_minor = 255,
++ .linux_char_device = 1
++ };
++#endif
++
+ if (nvidia_count == 0) {
+ nvidia_ctl_cdev = make_dev(&nvidia_ctl_cdevsw,
+ CDEV_CTL_MINOR,
+@@ -145,6 +163,10 @@ int nvidia_ctl_attach(void)
+ "%s", nvidia_ctl_cdevsw.d_name);
+ if (nvidia_ctl_cdev == NULL)
+ return ENOMEM;
++
++#ifdef NV_SUPPORT_LINUX_COMPAT
++ (void)linux_device_register_handler(&nvidia_ctl_linux_handler);
++#endif
+ }
+
+ nvidia_count++;
+@@ -153,13 +175,28 @@ int nvidia_ctl_attach(void)
+
+ int nvidia_ctl_detach(void)
+ {
++#ifdef NV_SUPPORT_LINUX_COMPAT
++ struct linux_device_handler nvidia_ctl_linux_handler = {
++ .bsd_driver_name = __DECONST(char *, nvidia_driver_name),
++ .linux_driver_name = __DECONST(char *, nvidia_driver_name),
++ .bsd_device_name = __DECONST(char *, nvidia_ctl_cdevsw.d_name),
++ .linux_device_name = __DECONST(char *, nvidia_ctl_cdevsw.d_name),
++ .linux_major = NV_MAJOR_DEVICE_NUMBER,
++ .linux_minor = 255,
++ .linux_char_device = 1
++ };
++#endif
+ struct nvidia_softc *sc;
+
+ sc = &nvidia_ctl_sc;
+ nvidia_count--;
+
+- if (nvidia_count == 0)
++ if (nvidia_count == 0) {
++#ifdef NV_SUPPORT_LINUX_COMPAT
++ (void)linux_device_unregister_handler(&nvidia_ctl_linux_handler);
++#endif
+ destroy_dev(nvidia_ctl_cdev);
++ }
+
+ return 0;
+ }
diff --git a/x11/nvidia-driver/files/extra-patch-src-nvidia_dev.c.in b/x11/nvidia-driver/files/extra-patch-src-nvidia_dev.c.in
new file mode 100644
index 000000000000..a38bb8f28f92
--- /dev/null
+++ b/x11/nvidia-driver/files/extra-patch-src-nvidia_dev.c.in
@@ -0,0 +1,66 @@
+--- src/%%NVSRC%%/nvidia_dev.c.orig 2017-09-14 20:46:30 UTC
++++ src/%%NVSRC%%/nvidia_dev.c
+@@ -13,6 +13,12 @@
+ #include "nv.h"
+ #include "nv-freebsd.h"
+
++#ifdef NV_SUPPORT_LINUX_COMPAT /* (COMPAT_LINUX || COMPAT_LINUX32) */
++#include <compat/linux/linux_util.h>
++
++extern const char nvidia_driver_name[];
++#endif
++
+ static d_open_t nvidia_dev_open;
+ static void nvidia_dev_dtor(void *arg);
+ static d_ioctl_t nvidia_dev_ioctl;
+@@ -162,6 +168,18 @@ static int nvidia_dev_mmap_single(
+
+ int nvidia_dev_attach(struct nvidia_softc *sc)
+ {
++#ifdef NV_SUPPORT_LINUX_COMPAT
++ struct linux_device_handler nvidia_dev_linux_handler = {
++ .bsd_driver_name = __DECONST(char *, nvidia_driver_name),
++ .linux_driver_name = __DECONST(char *, nvidia_driver_name),
++ .bsd_device_name = NULL,
++ .linux_device_name = NULL,
++ .linux_major = NV_MAJOR_DEVICE_NUMBER,
++ .linux_minor = device_get_unit(sc->dev),
++ .linux_char_device = 1
++ };
++#endif
++
+ sc->cdev = make_dev(&nvidia_dev_cdevsw,
+ device_get_unit(sc->dev),
+ UID_ROOT, GID_WHEEL, 0666,
+@@ -172,11 +190,31 @@ int nvidia_dev_attach(struct nvidia_softc *sc)
+
+ sc->cdev->si_drv1 = sc;
+
++#ifdef NV_SUPPORT_LINUX_COMPAT
++ nvidia_dev_linux_handler.bsd_device_name = sc->cdev->si_name;
++ nvidia_dev_linux_handler.linux_device_name = sc->cdev->si_name;
++ (void)linux_device_register_handler(&nvidia_dev_linux_handler);
++#endif
++
+ return 0;
+ }
+
+ int nvidia_dev_detach(struct nvidia_softc *sc)
+ {
++#ifdef NV_SUPPORT_LINUX_COMPAT
++ struct linux_device_handler nvidia_dev_linux_handler = {
++ .bsd_driver_name = __DECONST(char *, nvidia_driver_name),
++ .linux_driver_name = __DECONST(char *, nvidia_driver_name),
++ .bsd_device_name = sc->cdev->si_name,
++ .linux_device_name = sc->cdev->si_name,
++ .linux_major = NV_MAJOR_DEVICE_NUMBER,
++ .linux_minor = device_get_unit(sc->dev),
++ .linux_char_device = 1
++ };
++
++ (void)linux_device_unregister_handler(&nvidia_dev_linux_handler);
++#endif
++
+ destroy_dev(sc->cdev);
+ return 0;
+ }
diff --git a/x11/nvidia-driver/files/extra-patch-src-nvidia_linux.c.in b/x11/nvidia-driver/files/extra-patch-src-nvidia_linux.c.in
new file mode 100644
index 000000000000..f6cffc57748f
--- /dev/null
+++ b/x11/nvidia-driver/files/extra-patch-src-nvidia_linux.c.in
@@ -0,0 +1,35 @@
+--- src/%%NVSRC%%/nvidia_linux.c.orig 2017-09-14 20:46:30 UTC
++++ src/%%NVSRC%%/nvidia_linux.c
+@@ -35,23 +35,16 @@ int linux_ioctl_nvidia(
+ struct linux_ioctl_args *args
+ )
+ {
+- struct file *fp;
+- int error;
+-#if __FreeBSD_version >= 1000053
+- cap_rights_t rights;
+-#endif
+- 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 = {
diff --git a/x11/nvidia-driver/files/extra-patch-src-nvidia_pci.c.in b/x11/nvidia-driver/files/extra-patch-src-nvidia_pci.c.in
new file mode 100644
index 000000000000..78b5add6a867
--- /dev/null
+++ b/x11/nvidia-driver/files/extra-patch-src-nvidia_pci.c.in
@@ -0,0 +1,10 @@
+--- src/%%NVSRC%%/nvidia_pci.c.orig 2017-09-14 20:46:30 UTC
++++ src/%%NVSRC%%/nvidia_pci.c
+@@ -405,4 +405,7 @@ MODULE_DEPEND(nvidia, agp, 1, 1, 1);
+
+ #ifdef NV_SUPPORT_LINUX_COMPAT /* (COMPAT_LINUX || COMPAT_LINUX32) */
+ MODULE_DEPEND(nvidia, linux, 1, 1, 1);
++#if defined(NVCPU_X86_64)
++MODULE_DEPEND(nvidia, linux_common, 1, 1, 1);
++#endif
+ #endif
diff --git a/x11/nvidia-driver/files/extra-patch-src_nvidia-modeset_nvidia-modeset-freebsd.c b/x11/nvidia-driver/files/extra-patch-src_nvidia-modeset_nvidia-modeset-freebsd.c
index 75214a8db0e4..d129820b5988 100644
--- a/x11/nvidia-driver/files/extra-patch-src_nvidia-modeset_nvidia-modeset-freebsd.c
+++ b/x11/nvidia-driver/files/extra-patch-src_nvidia-modeset_nvidia-modeset-freebsd.c
@@ -1,6 +1,22 @@
---- src/nvidia-modeset/nvidia-modeset-freebsd.c.orig 2016-05-28 15:44:11 UTC
+--- src/nvidia-modeset/nvidia-modeset-freebsd.c.orig 2018-08-21 23:09:28 UTC
+++ src/nvidia-modeset/nvidia-modeset-freebsd.c
-@@ -245,7 +245,7 @@ struct nvkms_ref_ptr {
+@@ -25,6 +25,7 @@
+ #include <sys/poll.h>
+ #include <sys/file.h>
+ #include <sys/proc.h>
++#include <sys/sysproto.h>
+
+ #include "nvkms-ioctl.h"
+ #include "nvidia-modeset-os-interface.h"
+@@ -48,6 +49,7 @@
+ #include "machine/../linux32/linux32_proto.h"
+ #endif
+ #include <compat/linux/linux_ioctl.h>
++ #include <compat/linux/linux_util.h>
+ #endif
+
+
+@@ -250,7 +252,7 @@ struct nvkms_ref_ptr {
struct nvkms_ref_ptr* NVKMS_API_CALL nvkms_alloc_ref_ptr(void *ptr)
{
@@ -9,3 +25,80 @@
if (ref_ptr) {
mtx_init(&ref_ptr->lock, "nvkms-ref-ptr-lock", NULL, MTX_SPIN);
// The ref_ptr owner counts as a reference on the ref_ptr itself.
+@@ -867,33 +869,31 @@ static int nvkms_poll(
+ *************************************************************************/
+
+ #if defined(NVKMS_SUPPORT_LINUX_COMPAT)
++static struct linux_device_handler nvkms_linux_device_handler = {
++ .bsd_driver_name = "nvidia-modeset",
++ .linux_driver_name = "nvidia-modeset",
++ .bsd_device_name = "nvidia-modeset",
++ .linux_device_name = "nvidia-modeset",
++ .linux_major = 195,
++ .linux_minor = 254,
++ .linux_char_device = 1
++};
+
+ static int nvkms_linux_ioctl_function(
+ struct thread *td,
+ struct linux_ioctl_args *args
+ )
+ {
+- struct file *fp;
+- int status;
+- u_long cmd;
++ static const uint32_t dir[4] = { IOC_VOID, IOC_IN, IOC_OUT, IOC_INOUT };
+
+-#if NV_FGET_HAS_CAP_RIGHTS_T_ARG
+- cap_rights_t rights;
+- status = fget(td, args->fd, cap_rights_init(&rights, CAP_IOCTL), &fp);
+-#else
+- status = fget(td, args->fd, &fp);
+-#endif
+-
+- if (status != 0) {
+- return status;
++ 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);
+ }
+-
+- cmd = args->cmd;
+-
+- status = fo_ioctl(fp, cmd, (caddr_t)args->arg, td->td_ucred, td);
+- fdrop(fp, td);
+-
+- return status;
++ args->cmd = (args->cmd & ~IOC_DIRMASK) | dir[args->cmd >> 30];
++ return (sys_ioctl(td, (struct ioctl_args *)args));
+ }
+
+ #define NVKMS_LINUX_IOCTL_MIN _IOC(0, NVKMS_IOCTL_MAGIC, NVKMS_IOCTL_CMD, 0)
+@@ -909,6 +909,7 @@ static struct linux_ioctl_handler nvkms_linux_ioctl_ha
+ static void nvkms_linux_compat_load(void)
+ {
+ #if defined(NVKMS_SUPPORT_LINUX_COMPAT)
++ linux_device_register_handler(&nvkms_linux_device_handler);
+ linux_ioctl_register_handler(&nvkms_linux_ioctl_handler);
+ #endif
+ }
+@@ -917,6 +918,7 @@ static void nvkms_linux_compat_unload(void)
+ {
+ #if defined(NVKMS_SUPPORT_LINUX_COMPAT)
+ linux_ioctl_unregister_handler(&nvkms_linux_ioctl_handler);
++ linux_device_unregister_handler(&nvkms_linux_device_handler);
+ #endif
+ }
+
+@@ -1100,4 +1102,9 @@ MODULE_DEPEND(nvidia_modeset, /* module
+ MODULE_DEPEND(nvidia_modeset, /* module name */
+ linux, /* prerequisite module */
+ 1, 1, 1); /* vmin, vpref, vmax */
++#if defined(NVCPU_X86_64)
++MODULE_DEPEND(nvidia_modeset, /* module name */
++ linux_common, /* prerequisite module */
++ 1, 1, 1); /* vmin, vpref, vmax */
++#endif
+ #endif
diff --git a/x11/nvidia-driver/files/extra-patch-src_nvidia_Makefile b/x11/nvidia-driver/files/extra-patch-src_nvidia_Makefile
deleted file mode 100644
index f596b4b4505a..000000000000
--- a/x11/nvidia-driver/files/extra-patch-src_nvidia_Makefile
+++ /dev/null
@@ -1,18 +0,0 @@
---- src/nvidia/Makefile.orig 2014-04-04 23:24:59.000000000 +0200
-+++ src/nvidia/Makefile 2014-05-06 14:31:07.000000000 +0200
-@@ -24,6 +24,15 @@
- stdarg.h:
- @ln -s machine/stdarg.h stdarg.h
-
-+SRCS+= opt_global.h
-+.if ${MACHINE_ARCH} == "i386" && !defined(KERNBUILDDIR)
-+PAE!= sed -n '/define NV_SUPPORT_PAE/p' nv-freebsd.h
-+.if !empty(PAE)
-+opt_global.h:
-+ echo "#define PAE 1" > ${.TARGET}
-+.endif
-+.endif
-+
- *.c: stdarg.h
-
- beforeinstall: ${KMOD}.ko
diff --git a/x11/nvidia-driver/files/extra-patch-src_nvidia_nv-freebsd.h b/x11/nvidia-driver/files/extra-patch-src_nvidia_nv-freebsd.h
deleted file mode 100644
index a5d18e2d190e..000000000000
--- a/x11/nvidia-driver/files/extra-patch-src_nvidia_nv-freebsd.h
+++ /dev/null
@@ -1,14 +0,0 @@
---- src/nvidia/nv-freebsd.h.orig 2015-10-30 22:40:02 UTC
-+++ src/nvidia/nv-freebsd.h
-@@ -144,6 +144,11 @@ MALLOC_DECLARE(M_NVIDIA);
- #endif
-
- /*
-+ * Enable/Disable support for PAE on i386.
-+ */
-+#undef NV_SUPPORT_PAE
-+
-+/*
- * Enable/Disable support for ACPI Power Management.
- */
-
diff --git a/x11/nvidia-driver/files/extra-patch-src_nvidia_nv-misc.h b/x11/nvidia-driver/files/extra-patch-src_nvidia_nv-misc.h
deleted file mode 100644
index 3bd04fc8e9ae..000000000000
--- a/x11/nvidia-driver/files/extra-patch-src_nvidia_nv-misc.h
+++ /dev/null
@@ -1,11 +0,0 @@
---- src/nvidia/nv-misc.h.orig 2014-02-13 05:07:44.000000000 +0100
-+++ src/nvidia/nv-misc.h 2014-05-05 18:45:44.000000000 +0200
-@@ -11,6 +11,8 @@
- #ifndef _NV_MISC_H_
- #define _NV_MISC_H_
-
-+#include "opt_global.h"
-+
- #include "nvtypes.h"
- #include "rmretval.h"
-
diff --git a/x11/nvidia-driver/pkg-plist b/x11/nvidia-driver/pkg-plist
index 70d52033a060..bedbfb414320 100644
--- a/x11/nvidia-driver/pkg-plist
+++ b/x11/nvidia-driver/pkg-plist
@@ -34,47 +34,171 @@ man/man1/nvidia-smi.1.gz
%%MODULESDIR%%/extensions/.nvidia/libglx.so.1
/%%KMODDIR%%/nvidia.ko
/%%KMODDIR%%/nvidia-modeset.ko
-%%LINUX%%%%LINUXBASE%%/usr/lib/libEGL.so.%%SHLIB_VERSION%%
-%%LINUX%%%%LINUXBASE%%/usr/lib/libEGL.so.1
-%%LINUX%%@postunexec [ ! -e %%LINUXBASE%%/usr/lib/libEGL.so.1.0.0 ] || ln -sf libEGL.so.1.0.0 %%LINUXBASE%%/usr/lib/libEGL.so.1
-%%LINUX%%%%LINUXBASE%%/usr/lib/libEGL_nvidia.so.%%SHLIB_VERSION%%
-%%LINUX%%%%LINUXBASE%%/usr/lib/libEGL_nvidia.so.0
-%%LINUX%%%%LINUXBASE%%/usr/lib/libEGL_nvidia.so
-%%LINUX%%%%LINUXBASE%%/usr/lib/libGL.so.%%SHLIB_VERSION%%
-%%LINUX%%%%LINUXBASE%%/usr/lib/libGL.so.1
-%%LINUX%%@postunexec [ ! -e %%LINUXBASE%%/usr/lib/libGL.so.1.2.0 ] || ln -sf libGL.so.1.2.0 %%LINUXBASE%%/usr/lib/libGL.so.1
-%%LINUX%%%%LINUXBASE%%/usr/lib/libGLESv1_CM.so.%%SHLIB_VERSION%%
-%%LINUX%%%%LINUXBASE%%/usr/lib/libGLESv1_CM.so.1
-%%LINUX%%%%LINUXBASE%%/usr/lib/libGLESv1_CM.so
-%%LINUX%%%%LINUXBASE%%/usr/lib/libGLESv1_CM_nvidia.so.1
-%%LINUX%%%%LINUXBASE%%/usr/lib/libGLESv1_CM_nvidia.so.%%SHLIB_VERSION%%
-%%LINUX%%%%LINUXBASE%%/usr/lib/libGLESv2.so.%%SHLIB_VERSION%%
-%%LINUX%%%%LINUXBASE%%/usr/lib/libGLESv2.so.2
-%%LINUX%%%%LINUXBASE%%/usr/lib/libGLESv2.so
-%%LINUX%%%%LINUXBASE%%/usr/lib/libGLESv2_nvidia.so.2
-%%LINUX%%%%LINUXBASE%%/usr/lib/libGLESv2_nvidia.so.%%SHLIB_VERSION%%
-%%LINUX%%%%LINUXBASE%%/usr/lib/libGLdispatch.so
-%%LINUX%%%%LINUXBASE%%/usr/lib/libGLdispatch.so.0
-%%LINUX%%%%LINUXBASE%%/usr/lib/libOpenGL.so
-%%LINUX%%%%LINUXBASE%%/usr/lib/libOpenGL.so.0
-%%LINUX%%%%LINUXBASE%%/usr/lib/libcuda.so.%%SHLIB_VERSION%%
-%%LINUX%%%%LINUXBASE%%/usr/lib/libcuda.so.1
-%%LINUX%%%%LINUXBASE%%/usr/lib/libnvidia-eglcore.so.%%SHLIB_VERSION%%
-%%LINUX%%%%LINUXBASE%%/usr/lib/libnvidia-glcore.so.%%SHLIB_VERSION%%
-%%LINUX%%%%LINUXBASE%%/usr/lib/libnvidia-glsi.so.%%SHLIB_VERSION%%
-%%LINUX%%%%LINUXBASE%%/usr/lib/libnvidia-tls.so.%%SHLIB_VERSION%%
-%%LINUX%%%%LINUXBASE%%/usr/lib/libvdpau.so.%%SHLIB_VERSION%%
-%%LINUX%%%%LINUXBASE%%/usr/lib/libvdpau.so.1
-%%LINUX%%%%LINUXBASE%%/usr/lib/libvdpau_nvidia.so
-%%LINUX%%%%LINUXBASE%%/usr/lib/libvdpau_trace.so
-%%LINUX%%%%LINUXBASE%%/usr/lib/vdpau/libvdpau_nvidia.so.%%SHLIB_VERSION%%
-%%LINUX%%%%LINUXBASE%%/usr/lib/vdpau/libvdpau_nvidia.so.1
-%%LINUX%%%%LINUXBASE%%/usr/lib/vdpau/libvdpau_trace.so.%%SHLIB_VERSION%%
-%%LINUX%%%%LINUXBASE%%/usr/lib/vdpau/libvdpau_trace.so.1
-%%LINUX%%@postexec %%LINUXBASE%%/sbin/ldconfig -r %%LINUXBASE%%
-%%LINUX%%@postunexec %%LINUXBASE%%/sbin/ldconfig -r %%LINUXBASE%%
-%%LINUX%%@dir %%LINUXBASE%%/usr/lib/vdpau
-%%LINUX%%@dir %%LINUXBASE%%/usr/lib
+%%LINUX%%%%LINUXBASE%%/etc/OpenCL/vendors/nvidia.icd
+%%LINUX%%%%LINUXBASE%%/etc/vulkan/icd.d/nvidia_icd.json
+%%LINUX%%%%LINUXBASE%%/usr/bin/nvidia-bug-report.sh
+%%LINUX%%%%LINUXBASE%%/usr/bin/nvidia-cuda-mps-control
+%%LINUX%%%%LINUXBASE%%/usr/bin/nvidia-cuda-mps-server
+%%LINUX%%%%LINUXBASE%%/usr/bin/nvidia-debugdump
+%%LINUX%%%%LINUXBASE%%/usr/bin/nvidia-persistenced
+%%LINUX%%%%LINUXBASE%%/usr/bin/nvidia-settings
+%%LINUX%%%%LINUXBASE%%/usr/bin/nvidia-smi
+%%LINUX%%%%LINUXBASE%%/usr/bin/nvidia-xconfig
+%%LINUX32%%%%LINUXBASE%%/usr/lib/libEGL.so.1
+%%LINUX32%%@postunexec [ ! -e %%LINUXBASE%%/usr/lib/libEGL.so.1.0.0 ] || ln -sf libEGL.so.1.0.0 %%LINUXBASE%%/usr/lib/libEGL.so.1
+%%LINUX32%%%%LINUXBASE%%/usr/lib/libEGL.so.X
+%%LINUX32%%%%LINUXBASE%%/usr/lib/libEGL_nvidia.so.0
+%%LINUX32%%%%LINUXBASE%%/usr/lib/libEGL_nvidia.so.%%SHLIB_VERSION%%
+%%LINUX32%%%%LINUXBASE%%/usr/lib/libGL.so.1
+%%LINUX32%%@postunexec [ ! -e %%LINUXBASE%%/usr/lib/libGL.so.1.2.0 ] || ln -sf libGL.so.1.2.0 %%LINUXBASE%%/usr/lib/libGL.so.1
+%%LINUX32%%%%LINUXBASE%%/usr/lib/libGL.so.X
+%%LINUX32%%%%LINUXBASE%%/usr/lib/libGLdispatch.so.0
+%%LINUX32%%%%LINUXBASE%%/usr/lib/libGLESv1_CM.so.1
+%%LINUX32%%%%LINUXBASE%%/usr/lib/libGLESv1_CM.so.X
+%%LINUX32%%%%LINUXBASE%%/usr/lib/libGLESv1_CM_nvidia.so.1
+%%LINUX32%%%%LINUXBASE%%/usr/lib/libGLESv1_CM_nvidia.so.%%SHLIB_VERSION%%
+%%LINUX32%%%%LINUXBASE%%/usr/lib/libGLESv2.so.2
+%%LINUX32%%%%LINUXBASE%%/usr/lib/libGLESv2.so.X
+%%LINUX32%%%%LINUXBASE%%/usr/lib/libGLESv2_nvidia.so.2
+%%LINUX32%%%%LINUXBASE%%/usr/lib/libGLESv2_nvidia.so.%%SHLIB_VERSION%%
+%%LINUX32%%%%LINUXBASE%%/usr/lib/libGLX.so
+%%LINUX32%%%%LINUXBASE%%/usr/lib/libGLX.so.0
+%%LINUX32%%%%LINUXBASE%%/usr/lib/libGLX_indirect.so.0
+%%LINUX32%%%%LINUXBASE%%/usr/lib/libGLX_nvidia.so.0
+%%LINUX32%%%%LINUXBASE%%/usr/lib/libGLX_nvidia.so.%%SHLIB_VERSION%%
+%%LINUX32%%%%LINUXBASE%%/usr/lib/libOpenGL.so
+%%LINUX32%%%%LINUXBASE%%/usr/lib/libOpenGL.so.0
+%%LINUX32%%%%LINUXBASE%%/usr/lib/libcuda.so
+%%LINUX32%%%%LINUXBASE%%/usr/lib/libcuda.so.1
+%%LINUX32%%%%LINUXBASE%%/usr/lib/libcuda.so.%%SHLIB_VERSION%%
+%%LINUX32%%%%LINUXBASE%%/usr/lib/libnvcuvid.so
+%%LINUX32%%%%LINUXBASE%%/usr/lib/libnvcuvid.so.1
+%%LINUX32%%%%LINUXBASE%%/usr/lib/libnvcuvid.so.%%SHLIB_VERSION%%
+%%LINUX32%%%%LINUXBASE%%/usr/lib/libnvidia-compiler.so.%%SHLIB_VERSION%%
+%%LINUX32%%%%LINUXBASE%%/usr/lib/libnvidia-eglcore.so.%%SHLIB_VERSION%%
+%%LINUX32%%%%LINUXBASE%%/usr/lib/libnvidia-encode.so
+%%LINUX32%%%%LINUXBASE%%/usr/lib/libnvidia-encode.so.1
+%%LINUX32%%%%LINUXBASE%%/usr/lib/libnvidia-encode.so.%%SHLIB_VERSION%%
+%%LINUX32%%%%LINUXBASE%%/usr/lib/libnvidia-fatbinaryloader.so.%%SHLIB_VERSION%%
+%%LINUX32%%%%LINUXBASE%%/usr/lib/libnvidia-fbc.so
+%%LINUX32%%%%LINUXBASE%%/usr/lib/libnvidia-fbc.so.1
+%%LINUX32%%%%LINUXBASE%%/usr/lib/libnvidia-fbc.so.%%SHLIB_VERSION%%
+%%LINUX32%%%%LINUXBASE%%/usr/lib/libnvidia-glcore.so.%%SHLIB_VERSION%%
+%%LINUX32%%%%LINUXBASE%%/usr/lib/libnvidia-glsi.so.%%SHLIB_VERSION%%
+%%LINUX32%%%%LINUXBASE%%/usr/lib/libnvidia-ifr.so
+%%LINUX32%%%%LINUXBASE%%/usr/lib/libnvidia-ifr.so.1
+%%LINUX32%%%%LINUXBASE%%/usr/lib/libnvidia-ifr.so.%%SHLIB_VERSION%%
+%%LINUX32%%%%LINUXBASE%%/usr/lib/libnvidia-ml.so
+%%LINUX32%%%%LINUXBASE%%/usr/lib/libnvidia-ml.so.1
+%%LINUX32%%%%LINUXBASE%%/usr/lib/libnvidia-ml.so.%%SHLIB_VERSION%%
+%%LINUX32%%%%LINUXBASE%%/usr/lib/libnvidia-opencl.so.1
+%%LINUX32%%%%LINUXBASE%%/usr/lib/libnvidia-opencl.so.%%SHLIB_VERSION%%
+%%LINUX32%%%%LINUXBASE%%/usr/lib/libnvidia-ptxjitcompiler.so
+%%LINUX32%%%%LINUXBASE%%/usr/lib/libnvidia-ptxjitcompiler.so.1
+%%LINUX32%%%%LINUXBASE%%/usr/lib/libnvidia-ptxjitcompiler.so.%%SHLIB_VERSION%%
+%%LINUX32%%%%LINUXBASE%%/usr/lib/libnvidia-tls.so.%%SHLIB_VERSION%%
+%%LINUX32%%%%LINUXBASE%%/usr/lib/libvdpau_nvidia.so.%%SHLIB_VERSION%%
+%%LINUX32%%%%LINUXBASE%%/usr/lib/tls/libnvidia-tls.so.%%SHLIB_VERSION%%
+%%LINUX32%%%%LINUXBASE%%/usr/lib/vdpau/libvdpau_nvidia.so.1
+%%LINUX%%%%LINUXBASE%%%%LINUX_LIBDIR%%/libEGL.so.1
+%%LINUX%%@postunexec [ ! -e %%LINUXBASE%%%%LINUX_LIBDIR%%/libEGL.so.1.0.0 ] || ln -sf libEGL.so.1.0.0 %%LINUXBASE%%%%LINUX_LIBDIR%%/libEGL.so.1
+%%LINUX%%%%LINUXBASE%%%%LINUX_LIBDIR%%/libEGL.so.X
+%%LINUX%%%%LINUXBASE%%%%LINUX_LIBDIR%%/libEGL_nvidia.so.0
+%%LINUX%%%%LINUXBASE%%%%LINUX_LIBDIR%%/libEGL_nvidia.so.%%SHLIB_VERSION%%
+%%LINUX%%%%LINUXBASE%%%%LINUX_LIBDIR%%/libGL.so.1
+%%LINUX%%@postunexec [ ! -e %%LINUXBASE%%%%LINUX_LIBDIR%%/libGL.so.1.2.0 ] || ln -sf libGL.so.1.2.0 %%LINUXBASE%%%%LINUX_LIBDIR%%/libGL.so.1
+%%LINUX%%%%LINUXBASE%%%%LINUX_LIBDIR%%/libGL.so.X
+%%LINUX%%%%LINUXBASE%%%%LINUX_LIBDIR%%/libGLdispatch.so.0
+%%LINUX%%%%LINUXBASE%%%%LINUX_LIBDIR%%/libGLESv1_CM.so.1
+%%LINUX%%%%LINUXBASE%%%%LINUX_LIBDIR%%/libGLESv1_CM.so.X
+%%LINUX%%%%LINUXBASE%%%%LINUX_LIBDIR%%/libGLESv1_CM_nvidia.so.1
+%%LINUX%%%%LINUXBASE%%%%LINUX_LIBDIR%%/libGLESv1_CM_nvidia.so.%%SHLIB_VERSION%%
+%%LINUX%%%%LINUXBASE%%%%LINUX_LIBDIR%%/libGLESv2.so.2
+%%LINUX%%%%LINUXBASE%%%%LINUX_LIBDIR%%/libGLESv2.so.X
+%%LINUX%%%%LINUXBASE%%%%LINUX_LIBDIR%%/libGLESv2_nvidia.so.2
+%%LINUX%%%%LINUXBASE%%%%LINUX_LIBDIR%%/libGLESv2_nvidia.so.%%SHLIB_VERSION%%
+%%LINUX%%%%LINUXBASE%%%%LINUX_LIBDIR%%/libGLX.so
+%%LINUX%%%%LINUXBASE%%%%LINUX_LIBDIR%%/libGLX.so.0
+%%LINUX%%%%LINUXBASE%%%%LINUX_LIBDIR%%/libGLX_indirect.so.0
+%%LINUX%%%%LINUXBASE%%%%LINUX_LIBDIR%%/libGLX_nvidia.so.0
+%%LINUX%%%%LINUXBASE%%%%LINUX_LIBDIR%%/libGLX_nvidia.so.%%SHLIB_VERSION%%
+%%LINUX%%%%LINUXBASE%%%%LINUX_LIBDIR%%/libOpenGL.so
+%%LINUX%%%%LINUXBASE%%%%LINUX_LIBDIR%%/libOpenGL.so.0
+%%LINUX%%%%LINUXBASE%%%%LINUX_LIBDIR%%/libXvMCNVIDIA.so.%%SHLIB_VERSION%%
+%%LINUX%%%%LINUXBASE%%%%LINUX_LIBDIR%%/libXvMCNVIDIA_dynamic.so
+%%LINUX%%%%LINUXBASE%%%%LINUX_LIBDIR%%/libXvMCNVIDIA_dynamic.so.1
+%%LINUX%%%%LINUXBASE%%%%LINUX_LIBDIR%%/libcuda.so
+%%LINUX%%%%LINUXBASE%%%%LINUX_LIBDIR%%/libcuda.so.1
+%%LINUX%%%%LINUXBASE%%%%LINUX_LIBDIR%%/libcuda.so.%%SHLIB_VERSION%%
+%%LINUX%%%%LINUXBASE%%%%LINUX_LIBDIR%%/libnvcuvid.so
+%%LINUX%%%%LINUXBASE%%%%LINUX_LIBDIR%%/libnvcuvid.so.1
+%%LINUX%%%%LINUXBASE%%%%LINUX_LIBDIR%%/libnvcuvid.so.%%SHLIB_VERSION%%
+%%LINUX%%%%LINUXBASE%%%%LINUX_LIBDIR%%/libnvidia-cfg.so
+%%LINUX%%%%LINUXBASE%%%%LINUX_LIBDIR%%/libnvidia-cfg.so.1
+%%LINUX%%%%LINUXBASE%%%%LINUX_LIBDIR%%/libnvidia-cfg.so.%%SHLIB_VERSION%%
+%%LINUX%%%%LINUXBASE%%%%LINUX_LIBDIR%%/libnvidia-compiler.so.%%SHLIB_VERSION%%
+%%LINUX%%%%LINUXBASE%%%%LINUX_LIBDIR%%/libnvidia-egl-wayland.so.1
+%%LINUX%%%%LINUXBASE%%%%LINUX_LIBDIR%%/libnvidia-egl-wayland.so.X
+%%LINUX%%%%LINUXBASE%%%%LINUX_LIBDIR%%/libnvidia-eglcore.so.%%SHLIB_VERSION%%
+%%LINUX%%%%LINUXBASE%%%%LINUX_LIBDIR%%/libnvidia-encode.so
+%%LINUX%%%%LINUXBASE%%%%LINUX_LIBDIR%%/libnvidia-encode.so.1
+%%LINUX%%%%LINUXBASE%%%%LINUX_LIBDIR%%/libnvidia-encode.so.%%SHLIB_VERSION%%
+%%LINUX%%%%LINUXBASE%%%%LINUX_LIBDIR%%/libnvidia-fatbinaryloader.so.%%SHLIB_VERSION%%
+%%LINUX%%%%LINUXBASE%%%%LINUX_LIBDIR%%/libnvidia-fbc.so
+%%LINUX%%%%LINUXBASE%%%%LINUX_LIBDIR%%/libnvidia-fbc.so.1
+%%LINUX%%%%LINUXBASE%%%%LINUX_LIBDIR%%/libnvidia-fbc.so.%%SHLIB_VERSION%%
+%%LINUX%%%%LINUXBASE%%%%LINUX_LIBDIR%%/libnvidia-glcore.so.%%SHLIB_VERSION%%
+%%LINUX%%%%LINUXBASE%%%%LINUX_LIBDIR%%/libnvidia-glsi.so.%%SHLIB_VERSION%%
+%%LINUX%%%%LINUXBASE%%%%LINUX_LIBDIR%%/libnvidia-gtk2.so.%%SHLIB_VERSION%%
+%%LINUX%%%%LINUXBASE%%%%LINUX_LIBDIR%%/libnvidia-gtk3.so.%%SHLIB_VERSION%%
+%%LINUX%%%%LINUXBASE%%%%LINUX_LIBDIR%%/libnvidia-ifr.so
+%%LINUX%%%%LINUXBASE%%%%LINUX_LIBDIR%%/libnvidia-ifr.so.1
+%%LINUX%%%%LINUXBASE%%%%LINUX_LIBDIR%%/libnvidia-ifr.so.%%SHLIB_VERSION%%
+%%LINUX%%%%LINUXBASE%%%%LINUX_LIBDIR%%/libnvidia-ml.so
+%%LINUX%%%%LINUXBASE%%%%LINUX_LIBDIR%%/libnvidia-ml.so.1
+%%LINUX%%%%LINUXBASE%%%%LINUX_LIBDIR%%/libnvidia-ml.so.%%SHLIB_VERSION%%
+%%LINUX%%%%LINUXBASE%%%%LINUX_LIBDIR%%/libnvidia-opencl.so.1
+%%LINUX%%%%LINUXBASE%%%%LINUX_LIBDIR%%/libnvidia-opencl.so.%%SHLIB_VERSION%%
+%%LINUX%%%%LINUXBASE%%%%LINUX_LIBDIR%%/libnvidia-ptxjitcompiler.so
+%%LINUX%%%%LINUXBASE%%%%LINUX_LIBDIR%%/libnvidia-ptxjitcompiler.so.1
+%%LINUX%%%%LINUXBASE%%%%LINUX_LIBDIR%%/libnvidia-ptxjitcompiler.so.%%SHLIB_VERSION%%
+%%LINUX%%%%LINUXBASE%%%%LINUX_LIBDIR%%/libnvidia-tls.so.%%SHLIB_VERSION%%
+%%LINUX%%%%LINUXBASE%%%%LINUX_LIBDIR%%/libvdpau_nvidia.so.%%SHLIB_VERSION%%
+%%LINUX%%%%LINUXBASE%%%%LINUX_LIBDIR%%/tls/libnvidia-tls.so.%%SHLIB_VERSION%%
+%%LINUX%%%%LINUXBASE%%%%LINUX_LIBDIR%%/vdpau/libvdpau_nvidia.so.1
+%%LINUX%%%%LINUXBASE%%/usr/share/egl/egl_external_platform.d/10_nvidia_wayland.json
+%%LINUX%%%%LINUXBASE%%/usr/share/glvnd/egl_vendor.d/10_nvidia.json
+%%LINUX%%%%LINUXBASE%%/usr/share/man/man1/nvidia-cuda-mps-control.1.gz
+%%LINUX%%%%LINUXBASE%%/usr/share/man/man1/nvidia-persistenced.1.gz
+%%LINUX%%%%LINUXBASE%%/usr/share/man/man1/nvidia-settings.1.gz
+%%LINUX%%%%LINUXBASE%%/usr/share/man/man1/nvidia-smi.1.gz
+%%LINUX%%%%LINUXBASE%%/usr/share/man/man1/nvidia-xconfig.1.gz
+%%LINUX%%%%LINUXBASE%%/usr/share/nvidia/monitoring.conf
+%%LINUX%%%%LINUXBASE%%/usr/share/nvidia/nvidia-application-profiles-%%SHLIB_VERSION%%-key-documentation
+%%LINUX%%%%LINUXBASE%%/usr/share/nvidia/nvidia-application-profiles-%%SHLIB_VERSION%%-rc
+%%LINUX%%%%LINUXBASE%%/usr/share/nvidia/pci.ids
+%%LINUX%%@postexec %%LINUXBASE%%/sbin/ldconfig
+%%LINUX%%@postunexec %%LINUXBASE%%/sbin/ldconfig
+%%LINUX%%@dir %%LINUXBASE%%/etc/OpenCL/vendors
+%%LINUX%%@dir %%LINUXBASE%%/etc/OpenCL
+%%LINUX%%@dir %%LINUXBASE%%/etc/vulkan/icd.d
+%%LINUX%%@dir %%LINUXBASE%%/etc/vulkan
+%%LINUX%%@dir %%LINUXBASE%%/etc
+%%LINUX%%@dir %%LINUXBASE%%/usr/bin
+%%LINUX32%%@dir %%LINUXBASE%%/usr/lib/tls
+%%LINUX32%%@dir %%LINUXBASE%%/usr/lib/vdpau
+%%LINUX32%%@dir %%LINUXBASE%%/usr/lib
+%%LINUX%%@dir %%LINUXBASE%%%%LINUX_LIBDIR%%/tls
+%%LINUX%%@dir %%LINUXBASE%%%%LINUX_LIBDIR%%/vdpau
+%%LINUX%%@dir %%LINUXBASE%%%%LINUX_LIBDIR%%
+%%LINUX%%@dir %%LINUXBASE%%/usr/share/egl/egl_external_platform.d
+%%LINUX%%@dir %%LINUXBASE%%/usr/share/egl
+%%LINUX%%@dir %%LINUXBASE%%/usr/share/glvnd/egl_vendor.d
+%%LINUX%%@dir %%LINUXBASE%%/usr/share/glvnd
+%%LINUX%%@dir %%LINUXBASE%%/usr/share/man/man1
+%%LINUX%%@dir %%LINUXBASE%%/usr/share/man
+%%LINUX%%@dir %%LINUXBASE%%/usr/share/nvidia
+%%LINUX%%@dir %%LINUXBASE%%/usr/share
%%LINUX%%@dir %%LINUXBASE%%/usr
%%LINUX%%@dir %%LINUXBASE%%
%%LINUX%%@dir /compat