Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F150023645
D52178.1791492646.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Flag For Later
Award Token
Size
27 KB
Referenced Files
None
Subscribers
None
D52178.1791492646.diff
View Options
diff --git a/graphics/nvidia-drm-510-kmod-devel/Makefile b/graphics/nvidia-drm-510-kmod-devel/Makefile
--- a/graphics/nvidia-drm-510-kmod-devel/Makefile
+++ b/graphics/nvidia-drm-510-kmod-devel/Makefile
@@ -1,6 +1,6 @@
NVIDIA_DISTVERSION?= 580.76.05
# Explicitly set PORTREVISION as it can be overridden by the master port
-PORTREVISION= 0
+PORTREVISION= 1
MASTERDIR= ${.CURDIR}/../nvidia-drm-510-kmod
PKGNAMESUFFIX= -devel
diff --git a/graphics/nvidia-drm-510-kmod/Makefile b/graphics/nvidia-drm-510-kmod/Makefile
--- a/graphics/nvidia-drm-510-kmod/Makefile
+++ b/graphics/nvidia-drm-510-kmod/Makefile
@@ -1,5 +1,5 @@
PORTNAME= nvidia-drm-510-kmod
-PORTREVISION= 1
+PORTREVISION= 2
CATEGORIES= graphics
BUILD_DEPENDS+= ${KMODDIR}/drm.ko:graphics/drm-510-kmod
diff --git a/graphics/nvidia-drm-515-kmod-devel/Makefile b/graphics/nvidia-drm-515-kmod-devel/Makefile
--- a/graphics/nvidia-drm-515-kmod-devel/Makefile
+++ b/graphics/nvidia-drm-515-kmod-devel/Makefile
@@ -1,6 +1,6 @@
NVIDIA_DISTVERSION?= 580.76.05
# Explicitly set PORTREVISION as it can be overridden by the master port
-PORTREVISION= 0
+PORTREVISION= 1
MASTERDIR= ${.CURDIR}/../nvidia-drm-515-kmod
PKGNAMESUFFIX= -devel
diff --git a/graphics/nvidia-drm-515-kmod/Makefile b/graphics/nvidia-drm-515-kmod/Makefile
--- a/graphics/nvidia-drm-515-kmod/Makefile
+++ b/graphics/nvidia-drm-515-kmod/Makefile
@@ -1,5 +1,5 @@
PORTNAME= nvidia-drm-515-kmod
-PORTREVISION= 3
+PORTREVISION= 4
CATEGORIES= graphics
BUILD_DEPENDS+= ${KMODDIR}/drm.ko:graphics/drm-515-kmod
diff --git a/graphics/nvidia-drm-61-kmod-devel/Makefile b/graphics/nvidia-drm-61-kmod-devel/Makefile
--- a/graphics/nvidia-drm-61-kmod-devel/Makefile
+++ b/graphics/nvidia-drm-61-kmod-devel/Makefile
@@ -1,6 +1,6 @@
NVIDIA_DISTVERSION?= 580.76.05
# Explicitly set PORTREVISION as it can be overridden by the master port
-PORTREVISION= 0
+PORTREVISION= 1
MASTERDIR= ${.CURDIR}/../nvidia-drm-61-kmod
PKGNAMESUFFIX= -devel
diff --git a/graphics/nvidia-drm-61-kmod/Makefile b/graphics/nvidia-drm-61-kmod/Makefile
--- a/graphics/nvidia-drm-61-kmod/Makefile
+++ b/graphics/nvidia-drm-61-kmod/Makefile
@@ -1,5 +1,5 @@
PORTNAME= nvidia-drm-61-kmod
-PORTREVISION= 2
+PORTREVISION= 3
CATEGORIES= graphics
BUILD_DEPENDS+= ${KMODDIR}/drm.ko:graphics/drm-61-kmod
diff --git a/graphics/nvidia-drm-66-kmod-devel/Makefile b/graphics/nvidia-drm-66-kmod-devel/Makefile
--- a/graphics/nvidia-drm-66-kmod-devel/Makefile
+++ b/graphics/nvidia-drm-66-kmod-devel/Makefile
@@ -1,6 +1,6 @@
NVIDIA_DISTVERSION?= 580.76.05
# Explicitly set PORTREVISION as it can be overridden by the master port
-PORTREVISION= 0
+PORTREVISION= 1
MASTERDIR= ${.CURDIR}/../nvidia-drm-66-kmod
PKGNAMESUFFIX= -devel
diff --git a/graphics/nvidia-drm-66-kmod/Makefile b/graphics/nvidia-drm-66-kmod/Makefile
--- a/graphics/nvidia-drm-66-kmod/Makefile
+++ b/graphics/nvidia-drm-66-kmod/Makefile
@@ -1,5 +1,5 @@
PORTNAME= nvidia-drm-66-kmod
-PORTREVISION= 2
+PORTREVISION= 3
CATEGORIES= graphics
BUILD_DEPENDS+= ${KMODDIR}/drm.ko:graphics/drm-66-kmod
diff --git a/graphics/nvidia-drm-kmod-devel/Makefile b/graphics/nvidia-drm-kmod-devel/Makefile
--- a/graphics/nvidia-drm-kmod-devel/Makefile
+++ b/graphics/nvidia-drm-kmod-devel/Makefile
@@ -1,6 +1,6 @@
DISTVERSION?= 580.76.05
# Explicitly set PORTREVISION as it can be overridden by the master port
-PORTREVISION= 0
+PORTREVISION= 1
MASTERDIR= ${.CURDIR}/../nvidia-drm-kmod
PKGNAMESUFFIX= -devel
diff --git a/graphics/nvidia-drm-kmod/Makefile b/graphics/nvidia-drm-kmod/Makefile
--- a/graphics/nvidia-drm-kmod/Makefile
+++ b/graphics/nvidia-drm-kmod/Makefile
@@ -23,6 +23,8 @@
. endif
.endif
+RUN_DEPENDS+= nvidia-driver${PKGNAMESUFFIX}>0:x11/nvidia-driver${PKGNAMESUFFIX}
+
CONFLICTS_INSTALL= nvidia-drm-kmod*
.include <bsd.port.post.mk>
diff --git a/graphics/nvidia-drm-kmod/Makefile.common b/graphics/nvidia-drm-kmod/Makefile.common
--- a/graphics/nvidia-drm-kmod/Makefile.common
+++ b/graphics/nvidia-drm-kmod/Makefile.common
@@ -20,7 +20,7 @@
SUB_FILES= 20-nvidia-drm-outputclass.conf
-RUN_DEPENDS+= ${KMODDIR}/nvidia.ko:x11/nvidia-driver${PKGNAMESUFFIX}
+RUN_DEPENDS+= ${KMODDIR}/nvidia.ko:x11/nvidia-kmod${PKGNAMESUFFIX}
.include "${.CURDIR}/../../x11/nvidia-driver/Makefile.version"
.include "${.CURDIR}/../../x11/nvidia-driver/Makefile.common"
diff --git a/x11/Makefile b/x11/Makefile
--- a/x11/Makefile
+++ b/x11/Makefile
@@ -299,6 +299,12 @@
SUBDIR += nvidia-driver-390
SUBDIR += nvidia-driver-470
SUBDIR += nvidia-driver-devel
+ SUBDIR += nvidia-kmod
+ SUBDIR += nvidia-kmod-304
+ SUBDIR += nvidia-kmod-340
+ SUBDIR += nvidia-kmod-390
+ SUBDIR += nvidia-kmod-470
+ SUBDIR += nvidia-kmod-devel
SUBDIR += nvidia-settings
SUBDIR += nvidia-xconfig
SUBDIR += nwg-bar
diff --git a/x11/nvidia-driver-304/Makefile b/x11/nvidia-driver-304/Makefile
--- a/x11/nvidia-driver-304/Makefile
+++ b/x11/nvidia-driver-304/Makefile
@@ -1,6 +1,6 @@
DISTVERSION= 304.137
# Explicitly set PORTREVISION as it can be overridden by the master port
-PORTREVISION= 10
+PORTREVISION= 11
MASTERDIR= ${.CURDIR}/../nvidia-driver
PKGNAMESUFFIX= -304
diff --git a/x11/nvidia-driver-340/Makefile b/x11/nvidia-driver-340/Makefile
--- a/x11/nvidia-driver-340/Makefile
+++ b/x11/nvidia-driver-340/Makefile
@@ -1,6 +1,6 @@
DISTVERSION= 340.108
# Explicitly set PORTREVISION as it can be overridden by the master port
-PORTREVISION= 4
+PORTREVISION= 5
MASTERDIR= ${.CURDIR}/../nvidia-driver
PKGNAMESUFFIX= -340
diff --git a/x11/nvidia-driver-390/Makefile b/x11/nvidia-driver-390/Makefile
--- a/x11/nvidia-driver-390/Makefile
+++ b/x11/nvidia-driver-390/Makefile
@@ -1,6 +1,6 @@
DISTVERSION= 390.157
# Explicitly set PORTREVISION as it can be overridden by the master port
-PORTREVISION= 0
+PORTREVISION= 1
MASTERDIR= ${.CURDIR}/../nvidia-driver
PKGNAMESUFFIX= -390
diff --git a/x11/nvidia-driver-470/Makefile b/x11/nvidia-driver-470/Makefile
--- a/x11/nvidia-driver-470/Makefile
+++ b/x11/nvidia-driver-470/Makefile
@@ -1,6 +1,6 @@
DISTVERSION= 470.256.02
# Explicitly set PORTREVISION as it can be overridden by the master port
-PORTREVISION= 1
+PORTREVISION= 2
MASTERDIR= ${.CURDIR}/../nvidia-driver
PKGNAMESUFFIX= -470
diff --git a/x11/nvidia-driver-devel/Makefile b/x11/nvidia-driver-devel/Makefile
--- a/x11/nvidia-driver-devel/Makefile
+++ b/x11/nvidia-driver-devel/Makefile
@@ -1,6 +1,6 @@
DISTVERSION?= 580.76.05
# Explicitly set PORTREVISION as it can be overridden by the master port
-PORTREVISION= 0
+PORTREVISION= 1
MASTERDIR= ${.CURDIR}/../nvidia-driver
PKGNAMESUFFIX= -devel
diff --git a/x11/nvidia-driver/Makefile b/x11/nvidia-driver/Makefile
--- a/x11/nvidia-driver/Makefile
+++ b/x11/nvidia-driver/Makefile
@@ -14,7 +14,7 @@
PORTNAME?= nvidia-driver
DISTVERSION?= ${NVIDIA_DISTVERSION}
# 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}
@@ -46,11 +46,14 @@
BUILD_DEPENDS= pkg-config:devel/pkgconf
LIB_DEPENDS= libOpenGL.so:graphics/libglvnd
.endif
+
+RUN_DEPENDS= ${KMODDIR}/nvidia.ko:x11/nvidia-kmod${PKGNAMESUFFIX}
+
.if ${NVVERSION} >= 415.013
LIB_DEPENDS+= libnvidia-egl-wayland.so:graphics/egl-wayland
.endif
-USES= kmod uidfix xorg
+USES= uidfix xorg
.if ${NVVERSION} >= 470.04201
USES+= tar:xz
.endif
@@ -76,21 +79,6 @@
.if !defined(LIBGLDIR)
SUB_FILES+= nvidia.conf
.endif
-SUB_PATCHES= extra-patch-src-Makefile \
- extra-patch-src-nv-freebsd.h
-.if ${NVVERSION} < 510.03901
-SUB_PATCHES+= extra-patch-src-nvidia_dev.c \
- extra-patch-src-nvidia_pci.c
-.endif
-.if ${NVVERSION} < 470.25602 || ${NVVERSION} >= 480.00000 && ${NVVERSION} < 530.03002
-SUB_PATCHES+= extra-patch-src-nvidia_subr.c
-.endif
-
-# Temporarily disable GSP firmware as it is known to cause
-# issues with suspend/resume
-.if ${NVVERSION} >= 565.00000
-SUB_PATCHES+= extra-gsp-patch-src-common-inc-nv_firmware_registry.h
-.endif
DOCSDIR= ${PREFIX}/share/doc/NVIDIA_GLX-1.0
MODULESDIR= lib/xorg/modules
@@ -103,49 +91,7 @@
SUB_LIST+= NVGL="\# "
.endif
-.if ${NVVERSION} < 355.006
-NVSRC= .
-.else
-NVSRC= nvidia
-.endif
-
-.if ${NVVERSION} < 358.009
-SUB_LIST+= KLDNAME=nvidia
-.else
-SUB_LIST+= KLDNAME=nvidia-modeset
-.endif
-
-.if ${NVVERSION} >= 530.03002 && ${NVVERSION} < 545.00
-SUB_PATCHES += extra-patch-src_nvidia-modeset_nvidia-modeset-freebsd.c
-.endif
-.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
-.elif ${NVVERSION} < 510.03901
-EXTRA_PATCHES+= ${FILESDIR}/460-patch-src-nvidia-nvidia_ctl.c \
- ${FILESDIR}/460-patch-src-nvidia-nvidia_linux.c \
- ${FILESDIR}/460-patch-src_nvidia-modeset_nvidia-modeset-freebsd.c
-.endif
-.if ${NVVERSION} < 470.04201
-SUB_PATCHES+= extra-patch-src-nv-misc.h
-.endif
-
-OPTIONS_DEFINE= ACPI_PM LINUX WBINVD DOCS
-OPTIONS_DEFINE_i386= PAE
-OPTIONS_DEFAULT= ACPI_PM LINUX
-
-ACPI_PM_DESC= ACPI Power Management support
-LINUX_DESC= Linux compatibility support
-PAE_DESC= Physical Address Extensions support
-WBINVD_DESC= Flush CPU caches directly with WBINVD
-
-.if ${NVVERSION} < 310.014
-OPTIONS_DEFINE+= FREEBSD_AGP
-FREEBSD_AGP_DESC= Use FreeBSD AGP GART driver
-.endif
+OPTIONS_DEFINE= DOCS
PLIST_SUB+= MODULESDIR=${MODULESDIR}
.if ${NVVERSION} < 410.057
@@ -160,9 +106,6 @@
.endif
CONFLICTS_INSTALL+= nvidia-driver*
-.if ${PORTNAME} != nvidia-secondary-driver
-CONFLICTS_INSTALL+= nvidia-secondary-driver
-.endif
.include <bsd.port.pre.mk>
@@ -175,46 +118,15 @@
.endfor
post-patch: .SILENT
+# Patch only needed for non-kmod
+ ${REINPLACE_CMD} -e '/SUBDIR=\tsrc \\/d' -e 's/\tlib/SUBDIR=\tlib/' \
+ ${WRKSRC}/Makefile
+ ${REINPLACE_CMD} -e '/\.if exists(firmware)/,/\.endif/d' \
+ ${WRKSRC}/Makefile
+
.if ${NVVERSION} >= 390
${REINPLACE_CMD} -e 's|/man/man1|/share/man/man1|' ${WRKSRC}/nvml/man/Makefile
.endif
-# We should support -CURRENT: kill the check (first #if __FreeBSD_version)
- 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
- ${REINPLACE_CMD} -E '/#include "machine\/\.\.\/linux(32)?\/linux.h"/ \
- { x ; s/.*/#include "machine\/..\/..\/compat\/linux\/linux_ioctl.h"/ ; H ; x ; }' \
- ${WRKSRC}/src/${NVSRC}/nvidia_linux.c
-# Fix bogus memset() call
- ${REINPLACE_CMD} -e '/memset/s/sizeof(ci/sizeof(*ci/' \
- ${WRKSRC}/src/${NVSRC}/nvidia_subr.c
-# Chase `sys/capability.h' rename to `sys/capsicum.h' in FreeBSD src r263232
- ${REINPLACE_CMD} -e 's:sys/capability\.h:sys/capsicum.h:' \
- ${WRKSRC}/src/${NVSRC}/nv-freebsd.h
-.if ${NVVERSION} >= 358.009
- ${REINPLACE_CMD} -e 's:sys/capability\.h:sys/capsicum.h:' \
- ${WRKSRC}/src/nvidia-modeset/nvidia-modeset-freebsd.c
-.endif
-# KPI of kmem_alloc_contig(),kmem_free() changed in FreeBSD src r338143,r338318
-.if ${NVVERSION} < 530.03002
- ${REINPLACE_CMD} \
- -e 's/kmem_alloc_contig(kmem_arena, /kmem_alloc_contig(/' \
- -e 's/kmem_free(kmem_arena, /kmem_free(/' \
- ${WRKSRC}/src/${NVSRC}/nvidia_subr.c
-.endif
-# Pull the right header after FreeBSD src r347984
-.if ${NVVERSION} >= 358.009
- ${REINPLACE_CMD} -e '/^#include/s:lock\.h:mutex.h:' \
- ${WRKSRC}/src/nvidia-modeset/nvidia-modeset-freebsd.c
-.endif
-# After src df38ada2931f, `sys/module.h' must be included after `sys/param.h'
-.if ${NVVERSION} >= 358.009
- @${REINPLACE_CMD} -e '/^#include <sys\/param\.h>/d; \
- /^#include <sys\/module\.h>/ { x; \
- s:^:#include <sys/param.h>:; G; }' \
- ${WRKSRC}/src/nvidia-modeset/nvidia-modeset-freebsd.c
-.endif
# Disable installation of Linux libraries (provided by the corresponding
# `x11/linux-nvidia-libs' port or its slaves)
${REINPLACE_CMD} -e 's/exists(\/.*/& \&\& 0/' \
@@ -262,74 +174,16 @@
gsed ${REINPLACE_ARGS} -E "s,/etc/egl/egl_external_platform\.d.{$$padding},${EGL_JSON_PATH}\x00," \
${WRKSRC}/obj/libEGL_nvidia.so.0
.endif
-# Unbreak the build against -Werror,-Wunused-but-set-variable CFLAGS
-.if ${NVVERSION} < 450.51
- ${REINPLACE_CMD} -e '/void nvidia_dev_dtor/,+8s,.*status.*,,' \
- ${WRKSRC}/src/${NVSRC}/nvidia_dev.c
-.endif
# Move symlinks under PREFIX
.if ${NVVERSION} >= 525.08902
${REINPLACE_CMD} -e '/ln/s/$${LOCALBASE}\/lib/../' \
-e '/LIBDIR/!s/$${LOCALBASE}/$${DESTDIR}$${PREFIX}/' \
${WRKSRC}/lib/libnvidia-allocator/Makefile
.endif
-# After src 2a99dd30dfaa, DRIVER_MODULE should not include nvidia_devclass
-.if ${OSVERSION} >= 1400058
- ${REINPLACE_CMD} -e '/^DRIVER_MODULE/s/, nvidia_devclass//' \
- ${WRKSRC}/src/${NVSRC}/nvidia_pci.c
-.endif
-# Catch up with pmap_unmapdev() and kmem_*() changes in 14-CURRENT
-.if ${OSVERSION} >= 1400070 && (${NVVERSION} < 470.25602 || ${NVVERSION} >= 480.00000 && ${NVVERSION} < 530.03002)
- ${REINPLACE_CMD} -e '/pmap_unmapdev/s,(vm_offset_t),,' \
- ${WRKSRC}/src/${NVSRC}/nvidia_os.c
- ${REINPLACE_CMD} -e '/vm_offset_t virtual_address/s,vm_offset_t ,char *,' \
- ${WRKSRC}/src/${NVSRC}/nv-freebsd.h
- ${REINPLACE_CMD} -e '/vm_offset_t address;/s,vm_offset_t ,void *,' \
- ${WRKSRC}/src/${NVSRC}/nvidia_subr.c
-.endif
-# Fix a K&R prototype
-.if ${NVVERSION:R} >= 390
- ${REINPLACE_CMD} -e '/nvlink_allocLock/s,(),(void),' \
- ${WRKSRC}/src/${NVSRC}/nvlink_freebsd.c
-.endif
-# Finally, process OPTIONS
-.if ${PORT_OPTIONS:MFREEBSD_AGP}
- ${REINPLACE_CMD} -E 's/undef (NV_SUPPORT_OS_AGP)/define \1/' \
- ${WRKSRC}/src/${NVSRC}/nv-freebsd.h
-.endif
-.if ${PORT_OPTIONS:MACPI_PM}
- ${REINPLACE_CMD} -E 's/undef (NV_SUPPORT_ACPI_PM)/define \1/' \
- ${WRKSRC}/src/${NVSRC}/nv-freebsd.h
-.endif
-.if ! ${PORT_OPTIONS:MLINUX}
- ${REINPLACE_CMD} -E 's/define (NV_SUPPORT_LINUX_COMPAT)/undef \1/' \
- ${WRKSRC}/src/${NVSRC}/nv-freebsd.h
-. if ${NVVERSION} >= 358.009
- ${REINPLACE_CMD} -E 's/define (NVKMS_SUPPORT_LINUX_COMPAT)/undef \1/' \
- ${WRKSRC}/src/nvidia-modeset/nvidia-modeset-freebsd.c
-. endif
-.endif
-.if ${PORT_OPTIONS:MPAE}
- ${REINPLACE_CMD} -E 's/undef (NV_SUPPORT_PAE)/define \1/' \
- ${WRKSRC}/src/${NVSRC}/nv-freebsd.h
-.endif
-.if ${PORT_OPTIONS:MWBINVD}
- ${REINPLACE_CMD} -E 's/undef (NV_USE_WBINVD)/define \1/' \
- ${WRKSRC}/src/${NVSRC}/nv-freebsd.h
-.endif
# Conditionally install documentation (but you generally want it)
.if ! ${PORT_OPTIONS:MDOCS}
${REINPLACE_CMD} -E 's/(x11).*/\1/ ; /doc/d' ${WRKSRC}/Makefile
.endif
-# DMAP_MIN_ADDRESS and DMAP_MAX_ADDRESS is deleted from src at commit
-# 4dd828c80828637452a8a4e07a64e294c82e5d8b on main branch.
-# Note that there are about 10 days of broken window, as the commit
-# does not have corresponding version bump.
-.if ${OSVERSION} >= 1500051
- ${REINPLACE_CMD} -e 's/DMAP_MIN_ADDRESS/kva_layout.dmap_low/' \
- -e 's/DMAP_MAX_ADDRESS/kva_layout.dmap_high/' \
- ${WRKSRC}/src/${NVSRC}/nvidia_subr.c
-.endif
pre-install:
@${MKDIR} ${STAGEDIR}${PREFIX}/${MODULESDIR}/drivers \
@@ -359,9 +213,6 @@
.if ${NVVERSION} < 352.009
${REINPLACE_CMD} -E '/(lib)?nvidia-(debugdump|smi|ml)/d' ${TMPPLIST}
.endif
-.if ${NVVERSION} < 358.009
- ${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 ; \
@@ -393,10 +244,6 @@
.if ${NVVERSION} < 545.000
${REINPLACE_CMD} -e '/libnvidia-gpucomp\.so/d' ${TMPPLIST}
.endif
-.if ${NVVERSION} < 560.02803
- ${REINPLACE_CMD} -e '/nvidia_gsp_ga10x_fw\.ko/d' ${TMPPLIST}
- ${REINPLACE_CMD} -e '/nvidia_gsp_tu10x_fw\.ko/d' ${TMPPLIST}
-.endif
.if ${NVVERSION} < 410.057
# Rename some libraries and install a libmap file to resolve conflict with
diff --git a/x11/nvidia-driver/pkg-plist b/x11/nvidia-driver/pkg-plist
--- a/x11/nvidia-driver/pkg-plist
+++ b/x11/nvidia-driver/pkg-plist
@@ -100,7 +100,3 @@
%%EXTENSIONSDIR%%/libglx.so.1
%%MODULESDIR%%/extensions/libglxserver_nvidia.so
%%MODULESDIR%%/extensions/libglxserver_nvidia.so.1
-/%%KMODDIR%%/nvidia.ko
-/%%KMODDIR%%/nvidia-modeset.ko
-/%%KMODDIR%%/nvidia_gsp_ga10x_fw.ko
-/%%KMODDIR%%/nvidia_gsp_tu10x_fw.ko
diff --git a/x11/nvidia-kmod-304/Makefile b/x11/nvidia-kmod-304/Makefile
new file mode 100644
--- /dev/null
+++ b/x11/nvidia-kmod-304/Makefile
@@ -0,0 +1,8 @@
+DISTVERSION= 304.137
+# Explicitly set PORTREVISION as it can be overridden by the master port
+PORTREVISION= 0
+
+MASTERDIR= ${.CURDIR}/../nvidia-kmod
+PKGNAMESUFFIX= -304
+
+.include "${MASTERDIR}/Makefile"
diff --git a/x11/nvidia-kmod-340/Makefile b/x11/nvidia-kmod-340/Makefile
new file mode 100644
--- /dev/null
+++ b/x11/nvidia-kmod-340/Makefile
@@ -0,0 +1,8 @@
+DISTVERSION= 340.108
+# Explicitly set PORTREVISION as it can be overridden by the master port
+PORTREVISION= 0
+
+MASTERDIR= ${.CURDIR}/../nvidia-kmod
+PKGNAMESUFFIX= -340
+
+.include "${MASTERDIR}/Makefile"
diff --git a/x11/nvidia-kmod-390/Makefile b/x11/nvidia-kmod-390/Makefile
new file mode 100644
--- /dev/null
+++ b/x11/nvidia-kmod-390/Makefile
@@ -0,0 +1,8 @@
+DISTVERSION= 390.157
+# Explicitly set PORTREVISION as it can be overridden by the master port
+PORTREVISION= 0
+
+MASTERDIR= ${.CURDIR}/../nvidia-kmod
+PKGNAMESUFFIX= -390
+
+.include "${MASTERDIR}/Makefile"
diff --git a/x11/nvidia-kmod-470/Makefile b/x11/nvidia-kmod-470/Makefile
new file mode 100644
--- /dev/null
+++ b/x11/nvidia-kmod-470/Makefile
@@ -0,0 +1,8 @@
+DISTVERSION= 470.256.02
+# Explicitly set PORTREVISION as it can be overridden by the master port
+PORTREVISION= 0
+
+MASTERDIR= ${.CURDIR}/../nvidia-kmod
+PKGNAMESUFFIX= -470
+
+.include "${MASTERDIR}/Makefile"
diff --git a/x11/nvidia-kmod-devel/Makefile b/x11/nvidia-kmod-devel/Makefile
new file mode 100644
--- /dev/null
+++ b/x11/nvidia-kmod-devel/Makefile
@@ -0,0 +1,8 @@
+DISTVERSION?= 580.76.05
+# Explicitly set PORTREVISION as it can be overridden by the master port
+PORTREVISION= 0
+
+MASTERDIR= ${.CURDIR}/../nvidia-kmod
+PKGNAMESUFFIX= -devel
+
+.include "${MASTERDIR}/Makefile"
diff --git a/x11/nvidia-kmod/Makefile b/x11/nvidia-kmod/Makefile
new file mode 100644
--- /dev/null
+++ b/x11/nvidia-kmod/Makefile
@@ -0,0 +1,243 @@
+# For those wondering why this port is not under `x11-drivers' category,
+# have a look at https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=121930.
+#
+# Starting with version 1.0-7667, NVidia has dropped support for numerous
+# "legacy" GPUs. Consult NVidia README (the Appendix) to find out whether
+# you need to use legacy driver version and install one of corresponding
+# slave ports instead (`x11/nvidia-driver-470', `x11/nvidia-driver-390',
+# `x11/nvidia-driver-340', or `x11/nvidia-driver-304').
+#
+# To simplify testing of new feature branches and beta driver versions,
+# the port aims to support building against arbitrary DISTVERSION, i.e.
+# ``make DISTVERSION=xxx.yy.zz -DNO_CHECKSUM'' should typically work.
+
+PORTNAME?= nvidia-kmod
+DISTVERSION?= ${NVIDIA_DISTVERSION}
+# Always try to set PORTREVISION as it can be overridden by the slave ports
+PORTREVISION?= 0
+CATEGORIES= x11
+MASTER_SITES= NVIDIA/XFree86/FreeBSD-${ARCH_SUFX}/${DISTVERSION}
+DISTNAME= NVIDIA-FreeBSD-${ARCH_SUFX}-${DISTVERSION}
+DISTFILES= ${DISTNAME}${EXTRACT_SUFX}
+
+MAINTAINER?= x11@FreeBSD.org
+COMMENT?= kmod part of NVidia graphics card binary drivers for hardware OpenGL rendering
+WWW= https://www.nvidia.com/object/unix.html
+
+LICENSE_FILE= ${WRKSRC}/doc/license.txt
+.include "${.CURDIR}/../nvidia-driver/Makefile.version"
+.include "${.CURDIR}/../nvidia-driver/Makefile.common"
+
+# the package provides lib32 versions of the libraries, which then depends
+# themselves in non existing lib32 libraries, so we don't want the package
+# to end up depending on non existing libraries
+NO_SHLIB_REQUIRES_GLOB=*:32
+
+# Choose proper distinfo file using PKGNAMESUFFIX for slave ports.
+DISTINFO_FILE= ${.CURDIR}/../nvidia-driver${PKGNAMESUFFIX}/distinfo
+
+# Share patches with main part of ports
+FILESDIR= ${.CURDIR}/../nvidia-driver/files
+PATCHDIR= ${FILESDIR}
+
+USES= kmod uidfix
+.if ${NVVERSION} >= 470.04201
+USES+= tar:xz
+.endif
+USE_LDCONFIG= yes
+
+PIE_UNSAFE= yes
+
+MAKE_ENV= DEBUG_FLAGS=${DEBUG_FLAGS}
+SUB_FILES= pkg-message
+SUB_PATCHES= extra-patch-src-Makefile \
+ extra-patch-src-nv-freebsd.h
+.if ${NVVERSION} < 510.03901
+SUB_PATCHES+= extra-patch-src-nvidia_dev.c \
+ extra-patch-src-nvidia_pci.c
+.endif
+.if ${NVVERSION} < 470.25602 || ${NVVERSION} >= 480.00000 && ${NVVERSION} < 530.03002
+SUB_PATCHES+= extra-patch-src-nvidia_subr.c
+.endif
+
+# Temporarily disable GSP firmware as it is known to cause
+# issues with suspend/resume
+.if ${NVVERSION} >= 565.00000
+SUB_PATCHES+= extra-gsp-patch-src-common-inc-nv_firmware_registry.h
+.endif
+
+.if ${NVVERSION} < 355.006
+NVSRC= .
+.else
+NVSRC= nvidia
+.endif
+
+.if ${NVVERSION} < 358.009
+SUB_LIST+= KLDNAME=nvidia
+.else
+SUB_LIST+= KLDNAME=nvidia-modeset
+.endif
+
+.if ${NVVERSION} >= 530.03002 && ${NVVERSION} < 545.00
+SUB_PATCHES += extra-patch-src_nvidia-modeset_nvidia-modeset-freebsd.c
+.endif
+.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
+.elif ${NVVERSION} < 510.03901
+EXTRA_PATCHES+= ${FILESDIR}/460-patch-src-nvidia-nvidia_ctl.c \
+ ${FILESDIR}/460-patch-src-nvidia-nvidia_linux.c \
+ ${FILESDIR}/460-patch-src_nvidia-modeset_nvidia-modeset-freebsd.c
+.endif
+.if ${NVVERSION} < 470.04201
+SUB_PATCHES+= extra-patch-src-nv-misc.h
+.endif
+
+OPTIONS_DEFINE= ACPI_PM LINUX WBINVD
+OPTIONS_DEFINE_i386= PAE
+OPTIONS_DEFAULT= ACPI_PM LINUX
+
+ACPI_PM_DESC= ACPI Power Management support
+LINUX_DESC= Linux compatibility support
+PAE_DESC= Physical Address Extensions support
+WBINVD_DESC= Flush CPU caches directly with WBINVD
+
+.if ${NVVERSION} < 310.014
+OPTIONS_DEFINE+= FREEBSD_AGP
+FREEBSD_AGP_DESC= Use FreeBSD AGP GART driver
+.endif
+
+CONFLICTS_INSTALL+= nvidia-kmod*
+
+.include <bsd.port.pre.mk>
+
+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
+# Patch only needed for kmod
+ ${REINPLACE_CMD} -e 's/SUBDIR=\tsrc \\/SUBDIR=\tsrc/' -e '/lib/,/doc/d' \
+ ${WRKSRC}/Makefile
+ ${REINPLACE_CMD} -e '/\.if exists(nvml)/,/\.endif/d' \
+ ${WRKSRC}/Makefile
+
+# We should support -CURRENT: kill the check (first #if __FreeBSD_version)
+ 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
+ ${REINPLACE_CMD} -E '/#include "machine\/\.\.\/linux(32)?\/linux.h"/ \
+ { x ; s/.*/#include "machine\/..\/..\/compat\/linux\/linux_ioctl.h"/ ; H ; x ; }' \
+ ${WRKSRC}/src/${NVSRC}/nvidia_linux.c
+# Fix bogus memset() call
+ ${REINPLACE_CMD} -e '/memset/s/sizeof(ci/sizeof(*ci/' \
+ ${WRKSRC}/src/${NVSRC}/nvidia_subr.c
+# Chase `sys/capability.h' rename to `sys/capsicum.h' in FreeBSD src r263232
+ ${REINPLACE_CMD} -e 's:sys/capability\.h:sys/capsicum.h:' \
+ ${WRKSRC}/src/${NVSRC}/nv-freebsd.h
+.if ${NVVERSION} >= 358.009
+ ${REINPLACE_CMD} -e 's:sys/capability\.h:sys/capsicum.h:' \
+ ${WRKSRC}/src/nvidia-modeset/nvidia-modeset-freebsd.c
+.endif
+# KPI of kmem_alloc_contig(),kmem_free() changed in FreeBSD src r338143,r338318
+.if ${NVVERSION} < 530.03002
+ ${REINPLACE_CMD} \
+ -e 's/kmem_alloc_contig(kmem_arena, /kmem_alloc_contig(/' \
+ -e 's/kmem_free(kmem_arena, /kmem_free(/' \
+ ${WRKSRC}/src/${NVSRC}/nvidia_subr.c
+.endif
+# Pull the right header after FreeBSD src r347984
+.if ${NVVERSION} >= 358.009
+ ${REINPLACE_CMD} -e '/^#include/s:lock\.h:mutex.h:' \
+ ${WRKSRC}/src/nvidia-modeset/nvidia-modeset-freebsd.c
+.endif
+# After src df38ada2931f, `sys/module.h' must be included after `sys/param.h'
+.if ${NVVERSION} >= 358.009
+ @${REINPLACE_CMD} -e '/^#include <sys\/param\.h>/d; \
+ /^#include <sys\/module\.h>/ { x; \
+ s:^:#include <sys/param.h>:; G; }' \
+ ${WRKSRC}/src/nvidia-modeset/nvidia-modeset-freebsd.c
+.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
+ ${REINPLACE_CMD} -e 's/beforeinstall/&_dontexecute/' \
+ ${WRKSRC}/lib/Makefile ${WRKSRC}/src/${NVSRC}/Makefile
+# Unbreak the build against -Werror,-Wunused-but-set-variable CFLAGS
+.if ${NVVERSION} < 450.51
+ ${REINPLACE_CMD} -e '/void nvidia_dev_dtor/,+8s,.*status.*,,' \
+ ${WRKSRC}/src/${NVSRC}/nvidia_dev.c
+.endif
+# After src 2a99dd30dfaa, DRIVER_MODULE should not include nvidia_devclass
+.if ${OSVERSION} >= 1400058
+ ${REINPLACE_CMD} -e '/^DRIVER_MODULE/s/, nvidia_devclass//' \
+ ${WRKSRC}/src/${NVSRC}/nvidia_pci.c
+.endif
+# Catch up with pmap_unmapdev() and kmem_*() changes in 14-CURRENT
+.if ${OSVERSION} >= 1400070 && (${NVVERSION} < 470.25602 || ${NVVERSION} >= 480.00000 && ${NVVERSION} < 530.03002)
+ ${REINPLACE_CMD} -e '/pmap_unmapdev/s,(vm_offset_t),,' \
+ ${WRKSRC}/src/${NVSRC}/nvidia_os.c
+ ${REINPLACE_CMD} -e '/vm_offset_t virtual_address/s,vm_offset_t ,char *,' \
+ ${WRKSRC}/src/${NVSRC}/nv-freebsd.h
+ ${REINPLACE_CMD} -e '/vm_offset_t address;/s,vm_offset_t ,void *,' \
+ ${WRKSRC}/src/${NVSRC}/nvidia_subr.c
+.endif
+# Fix a K&R prototype
+.if ${NVVERSION:R} >= 390
+ ${REINPLACE_CMD} -e '/nvlink_allocLock/s,(),(void),' \
+ ${WRKSRC}/src/${NVSRC}/nvlink_freebsd.c
+.endif
+# Finally, process OPTIONS
+.if ${PORT_OPTIONS:MFREEBSD_AGP}
+ ${REINPLACE_CMD} -E 's/undef (NV_SUPPORT_OS_AGP)/define \1/' \
+ ${WRKSRC}/src/${NVSRC}/nv-freebsd.h
+.endif
+.if ${PORT_OPTIONS:MACPI_PM}
+ ${REINPLACE_CMD} -E 's/undef (NV_SUPPORT_ACPI_PM)/define \1/' \
+ ${WRKSRC}/src/${NVSRC}/nv-freebsd.h
+.endif
+.if ! ${PORT_OPTIONS:MLINUX}
+ ${REINPLACE_CMD} -E 's/define (NV_SUPPORT_LINUX_COMPAT)/undef \1/' \
+ ${WRKSRC}/src/${NVSRC}/nv-freebsd.h
+. if ${NVVERSION} >= 358.009
+ ${REINPLACE_CMD} -E 's/define (NVKMS_SUPPORT_LINUX_COMPAT)/undef \1/' \
+ ${WRKSRC}/src/nvidia-modeset/nvidia-modeset-freebsd.c
+. endif
+.endif
+.if ${PORT_OPTIONS:MPAE}
+ ${REINPLACE_CMD} -E 's/undef (NV_SUPPORT_PAE)/define \1/' \
+ ${WRKSRC}/src/${NVSRC}/nv-freebsd.h
+.endif
+.if ${PORT_OPTIONS:MWBINVD}
+ ${REINPLACE_CMD} -E 's/undef (NV_USE_WBINVD)/define \1/' \
+ ${WRKSRC}/src/${NVSRC}/nv-freebsd.h
+.endif
+# DMAP_MIN_ADDRESS and DMAP_MAX_ADDRESS is deleted from src at commit
+# 4dd828c80828637452a8a4e07a64e294c82e5d8b on main branch.
+# Note that there are about 10 days of broken window, as the commit
+# does not have corresponding version bump.
+.if ${OSVERSION} >= 1500051
+ ${REINPLACE_CMD} -e 's/DMAP_MIN_ADDRESS/kva_layout.dmap_low/' \
+ -e 's/DMAP_MAX_ADDRESS/kva_layout.dmap_high/' \
+ ${WRKSRC}/src/${NVSRC}/nvidia_subr.c
+.endif
+
+post-install: .SILENT
+# pkg-plist is already overbloated, so use these hacks instead of PLIST_SUB's
+.if ${NVVERSION} < 358.009
+ ${REINPLACE_CMD} -e '/nvidia-modeset\.ko/d' ${TMPPLIST}
+.endif
+.if ${NVVERSION} < 560.02803
+ ${REINPLACE_CMD} -e '/nvidia_gsp_ga10x_fw\.ko/d' ${TMPPLIST}
+ ${REINPLACE_CMD} -e '/nvidia_gsp_tu10x_fw\.ko/d' ${TMPPLIST}
+.endif
+
+.include <bsd.port.post.mk>
diff --git a/x11/nvidia-kmod/pkg-descr b/x11/nvidia-kmod/pkg-descr
new file mode 100644
--- /dev/null
+++ b/x11/nvidia-kmod/pkg-descr
@@ -0,0 +1,3 @@
+These are the official NVidia binary drivers for hardware OpenGL rendering
+in X11, using the GLX extensions.
+This port is the kmods-only part.
\ No newline at end of file
diff --git a/x11/nvidia-kmod/pkg-plist b/x11/nvidia-kmod/pkg-plist
new file mode 100644
--- /dev/null
+++ b/x11/nvidia-kmod/pkg-plist
@@ -0,0 +1,4 @@
+/%%KMODDIR%%/nvidia.ko
+/%%KMODDIR%%/nvidia-modeset.ko
+/%%KMODDIR%%/nvidia_gsp_ga10x_fw.ko
+/%%KMODDIR%%/nvidia_gsp_tu10x_fw.ko
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Thu, Oct 8, 8:50 PM (13 h, 8 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
30243273
Default Alt Text
D52178.1791492646.diff (27 KB)
Attached To
Mode
D52178: x11/nvidia-driver: Splitting out kmod part of x11/nvidia-driver into x11/nvidia-kmod, including slave ports.
Attached
Detach File
Event Timeline
Log In to Comment