git: f4e907a49258 - main - x11/nvidia-driver: Split kmod into x11/nvidia-kmod
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Wed, 01 Oct 2025 06:08:36 UTC
The branch main has been updated by kbowling:
URL: https://cgit.FreeBSD.org/ports/commit/?id=f4e907a492584bc31f9f3aa100a98a4e918dc7f4
commit f4e907a492584bc31f9f3aa100a98a4e918dc7f4
Author: Tomoaki AOKI <junchoon@dec.sakura.ne.jp>
AuthorDate: 2025-10-01 06:04:33 +0000
Commit: Kevin Bowling <kbowling@FreeBSD.org>
CommitDate: 2025-10-01 06:07:31 +0000
x11/nvidia-driver: Split kmod into x11/nvidia-kmod
Split out kmod part of x11/nvidia-driver into x11/nvidia-kmod,
including slave ports, to allow FreeBSD-kmods repo builders building
nvidia-related kmod ports.
In this update,
* split out *.ko from x11/nvidia-driver[-304|-340|-390|470|-devel]
into corresponding x11/nvidia-kmod[-304|-340|-390|470|-devel],
* switch dependency of graphics/nvidia-drm-*-kmod upon
x11/nvidia-driver[-devel] to newly introduced
x11/nvidia-kmod[-devel],
* make x11/nvidia-driver[-304|-340|-390|470|-devel] depend upon
newly introduced x11/nvidia-kmod[-304|-340|-390|470|-devel],
* bump consumers directly depending upon x11/nvidia-driver*
as of dependency switches,
* and hook x11/nvidia-kmod[-304|-340|-390|470|-devel] to build.
Note that upgrading x11/nvidia-driver* from monolithic version
requires deinstallation of x11/nvidia-driver* before starting,
as both previous version of x11/nvidia-driver* and newly introduced
x11/nvidia-kmod* installs *.ko into same place.
PR: 288314
Approved by: bapt (kmod repo)
Differential Revision: https://reviews.freebsd.org/D52178
---
UPDATING | 10 ++
graphics/nvidia-drm-510-kmod-devel/Makefile | 2 +-
graphics/nvidia-drm-510-kmod/Makefile | 2 +-
graphics/nvidia-drm-515-kmod-devel/Makefile | 2 +-
graphics/nvidia-drm-515-kmod/Makefile | 2 +-
graphics/nvidia-drm-61-kmod-devel/Makefile | 2 +-
graphics/nvidia-drm-61-kmod/Makefile | 2 +-
graphics/nvidia-drm-66-kmod-devel/Makefile | 2 +-
graphics/nvidia-drm-66-kmod/Makefile | 2 +-
graphics/nvidia-drm-kmod-devel/Makefile | 2 +-
graphics/nvidia-drm-kmod/Makefile | 3 +
graphics/nvidia-drm-kmod/Makefile.common | 2 +-
x11/Makefile | 6 +
x11/nvidia-driver-304/Makefile | 2 +-
x11/nvidia-driver-340/Makefile | 2 +-
x11/nvidia-driver-390/Makefile | 2 +-
x11/nvidia-driver-470/Makefile | 2 +-
x11/nvidia-driver-devel/Makefile | 2 +-
x11/nvidia-driver/Makefile | 177 ++------------------
x11/nvidia-driver/pkg-plist | 4 -
x11/nvidia-kmod-304/Makefile | 8 +
x11/nvidia-kmod-340/Makefile | 8 +
x11/nvidia-kmod-390/Makefile | 8 +
x11/nvidia-kmod-470/Makefile | 8 +
x11/nvidia-kmod-devel/Makefile | 8 +
x11/nvidia-kmod/Makefile | 243 ++++++++++++++++++++++++++++
x11/nvidia-kmod/pkg-descr | 3 +
x11/nvidia-kmod/pkg-plist | 4 +
28 files changed, 336 insertions(+), 184 deletions(-)
diff --git a/UPDATING b/UPDATING
index 4d6900e24ef2..b86738dabde7 100644
--- a/UPDATING
+++ b/UPDATING
@@ -5,6 +5,16 @@ they are unavoidable.
You should get into the habit of checking this file for changes each time
you update your ports collection, before attempting any port upgrades.
+20250930:
+ AFFECTS: users of x11/nvidia-driver*
+ AUTHOR: junchoon@dec.sakura.ne.jp
+
+ Because of splitting out kernel modules (kmod) part from x11/nvidia-driver*
+ into newly introduced x11/nvidia-kmod*, you need to deinstall currently
+ installed x11/nvidia-driver* and freshly install it again with new version.
+ This would pull in corresponding x11/nvidia-kmod* because x11/nvidia-driver*
+ explicitly depends on corresponding x11/nvidia-kmod*.
+
20250918:
AFFECTS: users of sysutils/py-mitogen
AUTHOR: dch@FreeBSD.org
diff --git a/graphics/nvidia-drm-510-kmod-devel/Makefile b/graphics/nvidia-drm-510-kmod-devel/Makefile
index f97a3010b82f..cd3742e2b20f 100644
--- a/graphics/nvidia-drm-510-kmod-devel/Makefile
+++ b/graphics/nvidia-drm-510-kmod-devel/Makefile
@@ -1,6 +1,6 @@
NVIDIA_DISTVERSION?= 580.82.07
# 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
index 8ac628c6b799..ef6b0443c59f 100644
--- 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
index b49f7994584c..0709ce73e273 100644
--- a/graphics/nvidia-drm-515-kmod-devel/Makefile
+++ b/graphics/nvidia-drm-515-kmod-devel/Makefile
@@ -1,6 +1,6 @@
NVIDIA_DISTVERSION?= 580.82.07
# 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
index 2c0ad686c426..57a3031df4c4 100644
--- 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
index 96d0c7d006d9..d1984728ec65 100644
--- a/graphics/nvidia-drm-61-kmod-devel/Makefile
+++ b/graphics/nvidia-drm-61-kmod-devel/Makefile
@@ -1,6 +1,6 @@
NVIDIA_DISTVERSION?= 580.82.07
# Explicitly set PORTREVISION as it can be overridden by the master port
-PORTREVISION= 2
+PORTREVISION= 3
MASTERDIR= ${.CURDIR}/../nvidia-drm-61-kmod
PKGNAMESUFFIX= -devel
diff --git a/graphics/nvidia-drm-61-kmod/Makefile b/graphics/nvidia-drm-61-kmod/Makefile
index 7e5747d7622d..88e1760a6398 100644
--- a/graphics/nvidia-drm-61-kmod/Makefile
+++ b/graphics/nvidia-drm-61-kmod/Makefile
@@ -1,5 +1,5 @@
PORTNAME= nvidia-drm-61-kmod
-PORTREVISION= 4
+PORTREVISION= 5
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
index 7941985a9c4b..3680a9932b36 100644
--- a/graphics/nvidia-drm-66-kmod-devel/Makefile
+++ b/graphics/nvidia-drm-66-kmod-devel/Makefile
@@ -1,6 +1,6 @@
NVIDIA_DISTVERSION?= 580.82.07
# Explicitly set PORTREVISION as it can be overridden by the master port
-PORTREVISION= 2
+PORTREVISION= 3
MASTERDIR= ${.CURDIR}/../nvidia-drm-66-kmod
PKGNAMESUFFIX= -devel
diff --git a/graphics/nvidia-drm-66-kmod/Makefile b/graphics/nvidia-drm-66-kmod/Makefile
index 19636dc722bc..b3bc019d6b4c 100644
--- a/graphics/nvidia-drm-66-kmod/Makefile
+++ b/graphics/nvidia-drm-66-kmod/Makefile
@@ -1,5 +1,5 @@
PORTNAME= nvidia-drm-66-kmod
-PORTREVISION= 4
+PORTREVISION= 5
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
index f458869fe4c6..95842efea536 100644
--- a/graphics/nvidia-drm-kmod-devel/Makefile
+++ b/graphics/nvidia-drm-kmod-devel/Makefile
@@ -1,6 +1,6 @@
DISTVERSION?= 580.82.07
# 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
index 128dad89c6be..bce69261c6ed 100644
--- a/graphics/nvidia-drm-kmod/Makefile
+++ b/graphics/nvidia-drm-kmod/Makefile
@@ -1,5 +1,6 @@
PORTNAME= nvidia-drm-kmod
DISTVERSION?= ${NVIDIA_DISTVERSION}
+PORTREVISION?= 1
CATEGORIES= graphics kld
MAINTAINER= x11@FreeBSD.org
@@ -23,6 +24,8 @@ RUN_DEPENDS+= ${KMODDIR}/nvidia-drm.ko:graphics/nvidia-drm-61-kmod${PKGNAMESUFF
. 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
index 9ef819ba40da..016558cb30ac 100644
--- a/graphics/nvidia-drm-kmod/Makefile.common
+++ b/graphics/nvidia-drm-kmod/Makefile.common
@@ -20,7 +20,7 @@ USES= kmod uidfix tar:xz
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
index d0d0600e56db..0addc97e569f 100644
--- a/x11/Makefile
+++ b/x11/Makefile
@@ -302,6 +302,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
index 737adc80c52f..c1119a49d546 100644
--- 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
index adeee49ab528..3ea1d49eea69 100644
--- 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
index b3fa58bc3212..eadfa4276cf4 100644
--- 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
index 6f1f8c865b7d..d49b3e056507 100644
--- 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
index 71f2eab631d2..3577eb57d30d 100644
--- a/x11/nvidia-driver-devel/Makefile
+++ b/x11/nvidia-driver-devel/Makefile
@@ -1,6 +1,6 @@
DISTVERSION?= 580.82.07
# 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
index ad87c00eb3fd..8255931553fd 100644
--- 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 @@ PATCH_DEPENDS= gsed:textproc/gsed
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 @@ SUB_FILES= pkg-message
.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=""
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 @@ PLIST_FILES+= lib/libnvidia-wayland-client.so.${DISTVERSION}
.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 @@ EXTRA_PATCHES+= ${WRKDIR}/${p}
.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 @@ post-patch: .SILENT
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 @@ post-install: .SILENT
.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 @@ post-install: .SILENT
.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
index 4c244c172570..d2b2e337a6f4 100644
--- a/x11/nvidia-driver/pkg-plist
+++ b/x11/nvidia-driver/pkg-plist
@@ -100,7 +100,3 @@ share/vulkan/implicit_layer.d/nvidia_layers.json
%%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
index 000000000000..76f6b4bc4af5
--- /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
index 000000000000..874e5e234d03
--- /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
index 000000000000..2e4db1f9b735
--- /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
index 000000000000..fa5651187a45
--- /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
index 000000000000..7798cba99767
--- /dev/null
+++ b/x11/nvidia-kmod-devel/Makefile
@@ -0,0 +1,8 @@
+DISTVERSION?= 580.82.07
+# 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
index 000000000000..983ec63c0c2f
--- /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
index 000000000000..82219fab2cae
--- /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.
diff --git a/x11/nvidia-kmod/pkg-plist b/x11/nvidia-kmod/pkg-plist
new file mode 100644
index 000000000000..f48a97e7c1f3
--- /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