The branch main has been updated by cperciva:

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

commit bda8028146694ee490543b35e3349e060936fde4
Author:     Colin Percival <[email protected]>
AuthorDate: 2025-09-16 18:43:36 +0000
Commit:     Colin Percival <[email protected]>
CommitDate: 2026-01-30 17:41:51 +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
---
 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 d06fc9dd1d41..00b83d9c51f0 100755
--- a/release/scripts/pkg-stage.sh
+++ b/release/scripts/pkg-stage.sh
@@ -11,7 +11,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
@@ -19,7 +19,6 @@ editors/vim
 misc/freebsd-doc-all
 net/mpd5
 net/rsync
-net/wifi-firmware-kmod@release
 ports-mgmt/pkg
 shells/bash
 shells/zsh
@@ -35,6 +34,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!    ***"
@@ -74,18 +77,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
@@ -96,7 +106,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.

Reply via email to