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.
