Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 05 Feb 2026 18:20:50 +0000
From:      Colin Percival <cperciva@FreeBSD.org>
To:        src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org
Subject:   git: b0fbed20ceb9 - stable/15 - release: Ship firmware from kmods repo on DVD
Message-ID:  <6984df82.33647.6600aa5@gitrepo.freebsd.org>

index | next in thread | raw e-mail

The branch stable/15 has been updated by cperciva:

URL: https://cgit.FreeBSD.org/src/commit/?id=b0fbed20ceb9b899e7e20bf785e9d303608bc7a0

commit b0fbed20ceb9b899e7e20bf785e9d303608bc7a0
Author:     Colin Percival <cperciva@FreeBSD.org>
AuthorDate: 2025-09-16 18:43:36 +0000
Commit:     Colin Percival <cperciva@FreeBSD.org>
CommitDate: 2026-02-05 18:20:41 +0000

    release: Ship firmware from kmods repo on DVD
    
    The packages for X.Y-RELEASE are a snapshot of the quarterly branch
    for stable/X, i.e. typically built on X.(Y-1)-RELEASE.  (The case of
    Y=0 is an exception for obvious reasons.)  This works for most ports
    but not for kernel modules, which may need to be built on the release
    in question; this is why we have a separate "kmods" repository.
    
    Make sure that we put the packages from the kmods repository onto the
    mini-pkg-repo on the DVD rather than shipping unusable firmware.
    
    Reviewed by:    bz
    MFC after:      1 week
    Sponsored by:   https://www.patreon.com/cperciva
    Differential Revision:  https://reviews.freebsd.org/D52581
    
    (cherry picked from commit bda8028146694ee490543b35e3349e060936fde4)
---
 release/pkg_repos/release-dvd.conf |  7 +++++++
 release/scripts/pkg-stage.sh       | 25 ++++++++++++++++++-------
 2 files changed, 25 insertions(+), 7 deletions(-)

diff --git a/release/pkg_repos/release-dvd.conf b/release/pkg_repos/release-dvd.conf
index c2e64c43a56f..d2db295c53c8 100644
--- a/release/pkg_repos/release-dvd.conf
+++ b/release/pkg_repos/release-dvd.conf
@@ -5,3 +5,10 @@ release: {
   fingerprints: "/usr/share/keys/pkg",
   enabled: yes
 }
+release-kmods: {
+  url: "pkg+http://pkg.FreeBSD.org/${ABI}/kmods_latest",
+  mirror_type: "srv",
+  signature_type: "fingerprints",
+  fingerprints: "/usr/share/keys/pkg",
+  enabled: yes
+}
diff --git a/release/scripts/pkg-stage.sh b/release/scripts/pkg-stage.sh
index b64fe5e5f1e5..5d4d267b150f 100755
--- a/release/scripts/pkg-stage.sh
+++ b/release/scripts/pkg-stage.sh
@@ -13,7 +13,7 @@ export REPO_AUTOUPDATE="NO"
 export ROOTDIR="$PWD/dvd"
 export PORTSDIR="${PORTSDIR:-/usr/ports}"
 
-_DVD_PACKAGES="
+_DVD_PACKAGES_MAIN="
 comms/usbmuxd
 devel/git@lite
 editors/emacs@nox
@@ -21,7 +21,6 @@ editors/vim
 misc/freebsd-doc-all
 net/mpd5
 net/rsync
-net/wifi-firmware-kmod@release
 ports-mgmt/pkg
 shells/bash
 shells/zsh
@@ -37,6 +36,10 @@ x11/xorg
 x11-wm/sway
 "
 
+_DVD_PACKAGES_KMODS="
+net/wifi-firmware-kmod@release
+"
+
 # If NOPORTS is set for the release, do not attempt to build pkg(8).
 if [ ! -f ${PORTSDIR}/Makefile ]; then
 	echo "*** ${PORTSDIR} is missing!    ***"
@@ -78,18 +81,25 @@ if [ -n "${PKG_ALTABI}" ]; then
 	ln -s ${PKG_ABI} ${ROOTDIR}/packages/${PKG_ALTABI}
 fi
 
-# Ensure the ports listed in _DVD_PACKAGES exist to sanitize the
+# Ensure the ports listed in _DVD_PACKAGES_* exist to sanitize the
 # final list.
-for _P in ${_DVD_PACKAGES}; do
+for _P in ${_DVD_PACKAGES_MAIN}; do
+	if [ -d "${PORTSDIR}/${_P%%@*}" ]; then
+		DVD_PACKAGES_MAIN="${DVD_PACKAGES_MAIN} ${_P}"
+	else
+		echo "*** Skipping nonexistent port: ${_P%%@*}"
+	fi
+done
+for _P in ${_DVD_PACKAGES_KMODS}; do
 	if [ -d "${PORTSDIR}/${_P%%@*}" ]; then
-		DVD_PACKAGES="${DVD_PACKAGES} ${_P}"
+		DVD_PACKAGES_KMODS="${DVD_PACKAGES_KMODS} ${_P}"
 	else
 		echo "*** Skipping nonexistent port: ${_P%%@*}"
 	fi
 done
 
 # Make sure the package list is not empty.
-if [ -z "${DVD_PACKAGES}" ]; then
+if [ -z "${DVD_PACKAGES_MAIN}${DVD_PACKAGES_KMODS}" ]; then
 	echo "*** The package list is empty."
 	echo "*** Something is very wrong."
 	# Exit '0' so the rest of the build process continues
@@ -100,7 +110,8 @@ fi
 # Print pkg(8) information to make debugging easier.
 ${PKGCMD} -vv
 ${PKGCMD} update -f
-${PKGCMD} fetch -o ${PKG_REPODIR} -d ${DVD_PACKAGES}
+${PKGCMD} fetch -o ${PKG_REPODIR} -r release -d ${DVD_PACKAGES_MAIN}
+${PKGCMD} fetch -o ${PKG_REPODIR} -r release-kmods -d ${DVD_PACKAGES_KMODS}
 
 # Create the 'Latest/pkg.pkg' symlink so 'pkg bootstrap' works
 # using the on-disc packages.


home | help

Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?6984df82.33647.6600aa5>