Page MenuHomeFreeBSD

D52178.1791492646.diff
No OneTemporary

Size
27 KB
Referenced Files
None
Subscribers
None

D52178.1791492646.diff

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

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)

Event Timeline