From nobody Wed Oct 01 06:08:36 2025 X-Original-To: dev-commits-ports-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4cc4HT0Twrz6B8Y9; Wed, 01 Oct 2025 06:08:37 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R12" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4cc4HT00fwz3kk8; Wed, 01 Oct 2025 06:08:37 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1759298917; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=PvfWrs8iditqX6Q5L1H12d5pAaMjp2PIdnk6dm1aB0c=; b=owhy0MgVb2Ujvh9PFiK3IllYTGJruGO34LG6Eqr5j5X/9AjhZ1PfzuCfU4O6hzZG3NXqnt CdCpjE7ASWq1d9pW92bVWLS7PYI61IMN26J5J4fE0Y3Bjotzd2TZbAK+UCPkWJw1Htqn1m vRCBDKQtLqF+Y1lRsrMmkpQ82byJwyue5fpntLukCwkyx76z4vZdrbTEuUgQsVOcHj8Y/N j9SpXV0btsT2U+5He3G+SInlG7tEgp8Ti7e2QK3pJ03/xuqNSDuh7koteLvHPBVKoX4LhS KlNJYHbPO7MJxTGKs+XI4lzUKqGgd3g1R+h2CIlaPZZXGcTlTToShXMEAYR6Lg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1759298917; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=PvfWrs8iditqX6Q5L1H12d5pAaMjp2PIdnk6dm1aB0c=; b=SsPFTiwVbeEOeP6yOtdfBnd0MN2IX1EIoEXl+AtdsnJ5k3lR7N3zk9m42CnsV/p55M5riA 5kzi79NknkhAg3M6wS32kXP5I66W+fyPR7YLAej1MWrqrQhB+zchOZ4knEqFVFsdZuWecu sL9SwNo5pQLEKQtWOT1XDetqnI8TngK5C+4ppIsa6oIvJRL+vEJJ1R+5YCbRluKgCqMdV8 rXDMuSXbJStWoDqPHGtJfR04yk7uMn2NtUuTuGs1bhfV68yvdaUqKkn944OJTjpXKWX/Zy rubOhdM9BRkTjCwjOO8xK9E8VnBLHJJ4S52/AzpdDDFowh6TlnPyxesa3GkZkA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1759298917; a=rsa-sha256; cv=none; b=YdrfO6IfiE6JZkU92BpQHzJxG1ZCa1go5NpLceKgQj21lMoi8oTDH0r1CIj+Nlpf/IZ4Sz dAdxPcCaLwKoyLxou4jEwLsoZBeQYTeFXXts9BnkzRNWshMLAaOoqcwQk9UBDvkVAW7GNJ XBYBIpZYEYtdoPyL4J1DztgqXVDdF7PfKe8xXMma840dpsbFyBYzevfvOpJoVf3hye/S8e XDiAi7HKp92hq3NjAazpFpBW7867M/ZhW5U0upxfb+EYyPnDDmtFb+q712KxUnoviMISC3 dYKNy6UKpp03k1GEXWWdd5k5LPUNlnR+g6cxQXtVX/b8hKhPd7/qvpBO2Njsvw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4cc4HS6Zs0z18c3; Wed, 01 Oct 2025 06:08:36 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 59168axu012829; Wed, 1 Oct 2025 06:08:36 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 59168a69012826; Wed, 1 Oct 2025 06:08:36 GMT (envelope-from git) Date: Wed, 1 Oct 2025 06:08:36 GMT Message-Id: <202510010608.59168a69012826@gitrepo.freebsd.org> To: ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org From: Kevin Bowling Subject: git: f4e907a49258 - main - x11/nvidia-driver: Split kmod into x11/nvidia-kmod List-Id: Commit messages for all branches of the ports repository List-Archive: https://lists.freebsd.org/archives/dev-commits-ports-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-ports-all@freebsd.org Sender: owner-dev-commits-ports-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kbowling X-Git-Repository: ports X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: f4e907a492584bc31f9f3aa100a98a4e918dc7f4 Auto-Submitted: auto-generated The branch main has been updated by kbowling: URL: https://cgit.FreeBSD.org/ports/commit/?id=f4e907a492584bc31f9f3aa100a98a4e918dc7f4 commit f4e907a492584bc31f9f3aa100a98a4e918dc7f4 Author: Tomoaki AOKI AuthorDate: 2025-10-01 06:04:33 +0000 Commit: Kevin Bowling 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 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 @@ -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 /d; \ - /^#include / { x; \ - s:^:#include :; 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 + +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 /d; \ + /^#include / { x; \ + s:^:#include :; 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 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