diff --git a/x11/Makefile b/x11/Makefile index d2c610b229eb..801950b010be 100644 --- a/x11/Makefile +++ b/x11/Makefile @@ -232,6 +232,7 @@ SUBDIR += nvidia-driver SUBDIR += nvidia-driver-304 SUBDIR += nvidia-driver-340 + SUBDIR += nvidia-driver-390 SUBDIR += nvidia-settings SUBDIR += nvidia-xconfig SUBDIR += nxcomp diff --git a/x11/nvidia-driver-390/Makefile b/x11/nvidia-driver-390/Makefile new file mode 100644 index 000000000000..e6cb52029a54 --- /dev/null +++ b/x11/nvidia-driver-390/Makefile @@ -0,0 +1,11 @@ +# Created by: Alexey Dokuchaev +# $FreeBSD$ + +DISTVERSION= 390.129 +# Explicitly set PORTREVISION as it can be overridden by the master port +PORTREVISION= 0 + +MASTERDIR= ${.CURDIR}/../nvidia-driver +PKGNAMESUFFIX= -390 + +.include "${MASTERDIR}/Makefile" diff --git a/x11/nvidia-driver/Makefile b/x11/nvidia-driver/Makefile index b1f36444cd3e..3ca183dc6561 100644 --- a/x11/nvidia-driver/Makefile +++ b/x11/nvidia-driver/Makefile @@ -10,9 +10,9 @@ # slave ports instead (`x11/nvidia-driver-340' or `x11/nvidia-driver-304'). PORTNAME= nvidia-driver -DISTVERSION?= 390.87 +DISTVERSION?= 410.104 # Always try to set PORTREVISION as it can be overridden by the slave ports -PORTREVISION?= 4 +PORTREVISION?= 0 CATEGORIES= x11 MASTER_SITES= NVIDIA/XFree86/FreeBSD-${ARCH_SUFX}/${DISTVERSION} DISTNAME= NVIDIA-FreeBSD-${ARCH_SUFX}-${DISTVERSION} @@ -24,6 +24,11 @@ COMMENT= NVidia graphics card binary drivers for hardware OpenGL rendering LICENSE_FILE= ${WRKSRC}/doc/license.txt .include "${.CURDIR}/../nvidia-driver/Makefile.common" +# Pull GNU sed(1) for "binary" patching of libEGL.so.1 (see below) +.if ${NVVERSION} >= 410.057 +PATCH_DEPENDS= gsed:textproc/gsed +.endif + USES= kmod uidfix USE_XORG= x11 xorg-server xext USE_GL= gl @@ -35,7 +40,9 @@ USE_LDCONFIG= yes # fixed upstream (across all versions, including legacy ones), use this # 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} +GLVND_JSON_PATH= ${PREFIX}/share/glvnd/egl_vendor.d +MAKE_ENV= NVIDIA_ROOT=${WRKSRC} X11BASE=${LOCALBASE} \ + EGL_GLVND_JSON_PATH=${STAGEDIR}${GLVND_JSON_PATH} SUB_FILES= pkg-deinstall pkg-install pkg-message nvidia.conf SUB_PATCHES= extra-patch-src-Makefile \ extra-patch-src-nv-freebsd.h \ @@ -140,8 +147,10 @@ post-patch: .SILENT .endif # Adjust installation path of a conflicting file (shared between # nvidia-driver and xorg-server) to ease package manager work +.if ${NVVERSION} < 410.057 ${REINPLACE_CMD} -e '/LIBDIR/s:xorg/modules/extensions:&/.nvidia:' \ ${WRKSRC}/x11/extension/Makefile +.endif # Do not execute afterinstall target (prevent automatic module registration # and "smart" installation of conflicting files heuristics) ${REINPLACE_CMD} -e 's/afterinstall/&_dontexecute/' ${WRKSRC}/Makefile @@ -150,8 +159,16 @@ post-patch: .SILENT # /usr/share/nvidia path is hardcoded in libGL and nvidia-settings, but we # won't adhere to this stupidity and install nvidia-application-profiles-* # files as part of documentation -.if ${NVVERSION} >= 334.016 - ${REINPLACE_CMD} -e 's,/usr/share/nvidia,${STAGEDIR}${DOCSDIR},' \ +.if ${NVVERSION} >= 410.057 + ${REINPLACE_CMD} -e 's,/usr/share/nvidia,$${DESTDIR}${DOCSDIR},' \ + ${WRKSRC}/lib/libGLX_nvidia/Makefile ${WRKSRC}/doc/Makefile + ${REINPLACE_CMD} -e '/AUXLINK_LINK/s,\$${DESTDIR},,' \ + ${WRKSRC}/lib/libGLX_nvidia/Makefile + prefix="${PREFIX}" ; padding=$$(($${#prefix}+3)) ; \ + gsed ${REINPLACE_ARGS} -E "s,/etc/glvnd/egl_vendor\.d.{$$padding},${GLVND_JSON_PATH}\x00," \ + ${WRKSRC}/obj/libglvnd/libEGL.so.1 +.elif ${NVVERSION} >= 334.016 + ${REINPLACE_CMD} -e 's,/usr/share/nvidia,$${DESTDIR}${DOCSDIR},' \ ${WRKSRC}/lib/libGL/Makefile ${WRKSRC}/doc/Makefile .endif # Finally, process OPTIONS @@ -209,7 +226,15 @@ post-install: .SILENT ${REINPLACE_CMD} -E '/(lib)?nvidia-(debugdump|smi|ml)/d' ${TMPPLIST} .endif .if ${NVVERSION} < 358.009 - ${REINPLACE_CMD} '/nvidia-modeset.ko/d' ${TMPPLIST} + ${REINPLACE_CMD} -e '/nvidia-modeset\.ko/d' ${TMPPLIST} +.endif +.if ${NVVERSION} < 410.057 + ${REINPLACE_CMD} -E '/lib(EGL|GLESv[12].*)_nvidia/d ; \ + /lib(GLX|GLdispatch|OpenGL)/d ; \ + /extensions\/libglxserver_nvidia\.so/d ; \ + /10_nvidia\.json/d' ${TMPPLIST} +.else + ${REINPLACE_CMD} -e '/extensions\/\.nvidia\/libglx/d' ${TMPPLIST} .endif # Rename some libraries and install a libmap file to resolve conflict with # Mesa libraries. diff --git a/x11/nvidia-driver/Makefile.common b/x11/nvidia-driver/Makefile.common index 004efc90f8cc..1217a625d339 100644 --- a/x11/nvidia-driver/Makefile.common +++ b/x11/nvidia-driver/Makefile.common @@ -4,7 +4,11 @@ LICENSE= NVIDIA LICENSE_NAME= License For Customer Use of NVIDIA Software LICENSE_PERMS= dist-mirror no-dist-sell pkg-mirror no-pkg-sell auto-accept +.if ${DISTVERSION:R} > 390 +ONLY_FOR_ARCHS= amd64 +.else ONLY_FOR_ARCHS= i386 amd64 +.endif ARCH_SUFX= x86${ARCH:S/i386//:S/amd/_/} diff --git a/x11/nvidia-driver/distinfo b/x11/nvidia-driver/distinfo index 9850adc99e85..d053fb310274 100644 --- a/x11/nvidia-driver/distinfo +++ b/x11/nvidia-driver/distinfo @@ -1,8 +1,11 @@ TIMESTAMP = 1482026038 -SHA256 (NVIDIA-FreeBSD-x86_64-390.87.tar.gz) = 221c80982378a333f541646d5d2030c72311c491f5a0f98b93fdd95cd5be11fc -SIZE (NVIDIA-FreeBSD-x86_64-390.87.tar.gz) = 63648591 -SHA256 (NVIDIA-FreeBSD-x86-390.87.tar.gz) = a2e61b0c541aa9bdcde7de43cd88a7ce5ff3de9fdafe60fa7d6e10942186d7d4 -SIZE (NVIDIA-FreeBSD-x86-390.87.tar.gz) = 64326801 +SHA256 (NVIDIA-FreeBSD-x86_64-410.104.tar.gz) = 39bafa652026fae3dc077ceff8bea0a15401c36fd13c4770842f546b2e27498f +SIZE (NVIDIA-FreeBSD-x86_64-410.104.tar.gz) = 61995820 +SHA256 (NVIDIA-FreeBSD-x86_64-390.129.tar.gz) = fa109c9737a529c87efe66c3bc0a47bffa49278d6361aebc1bf6b784eb5d6968 +SIZE (NVIDIA-FreeBSD-x86_64-390.129.tar.gz) = 63905694 +TIMESTAMP = 1572354940 +SHA256 (NVIDIA-FreeBSD-x86-390.129.tar.gz) = 58e537c1a016e4fd362590e32c6f874ccdd90ce265839eb30cf370afcdc22bae +SIZE (NVIDIA-FreeBSD-x86-390.129.tar.gz) = 64565178 SHA256 (NVIDIA-FreeBSD-x86_64-340.107.tar.gz) = 047efae28cc81e4d56c64d2a0c15d9b7ff07f09bba22696464de8276334a4df7 SIZE (NVIDIA-FreeBSD-x86_64-340.107.tar.gz) = 61179967 SHA256 (NVIDIA-FreeBSD-x86-340.107.tar.gz) = 1978ae48512d8a693979b153463c76954d2aec91a6b2a568b3aa1198e5b3d199 diff --git a/x11/nvidia-driver/pkg-plist b/x11/nvidia-driver/pkg-plist index 34d8ad9d31ef..ee181260f904 100644 --- a/x11/nvidia-driver/pkg-plist +++ b/x11/nvidia-driver/pkg-plist @@ -2,14 +2,29 @@ bin/nvidia-bug-report.sh bin/nvidia-debugdump bin/nvidia-smi etc/libmap.d/nvidia.conf -lib/libGL-NVIDIA.so -lib/libGL-NVIDIA.so.1 lib/libEGL-NVIDIA.so lib/libEGL-NVIDIA.so.1 +lib/libEGL_nvidia.so +lib/libEGL_nvidia.so.0 +lib/libGL-NVIDIA.so +lib/libGL-NVIDIA.so.1 lib/libGLESv1_CM.so lib/libGLESv1_CM.so.1 +lib/libGLESv1_CM_nvidia.so +lib/libGLESv1_CM_nvidia.so.1 lib/libGLESv2-NVIDIA.so lib/libGLESv2-NVIDIA.so.2 +lib/libGLESv2_nvidia.so +lib/libGLESv2_nvidia.so.2 +lib/libGLX.so +lib/libGLX.so.0 +lib/libGLX_indirect.so.0 +lib/libGLX_nvidia.so +lib/libGLX_nvidia.so.0 +lib/libGLdispatch.so +lib/libGLdispatch.so.0 +lib/libOpenGL.so +lib/libOpenGL.so.0 lib/libXvMCNVIDIA.a lib/libXvMCNVIDIA.so lib/libXvMCNVIDIA.so.1 @@ -29,8 +44,11 @@ lib/libnvidia-tls.so.1 lib/libvdpau_nvidia.so lib/vdpau/libvdpau_nvidia.so.1 man/man1/nvidia-smi.1.gz +share/glvnd/egl_vendor.d/10_nvidia.json %%MODULESDIR%%/drivers/nvidia_drv.so %%MODULESDIR%%/extensions/.nvidia/libglx.so %%MODULESDIR%%/extensions/.nvidia/libglx.so.1 +%%MODULESDIR%%/extensions/libglxserver_nvidia.so +%%MODULESDIR%%/extensions/libglxserver_nvidia.so.1 /%%KMODDIR%%/nvidia.ko /%%KMODDIR%%/nvidia-modeset.ko