git: d500f1f015e3 - stable/15 - release: Install pkg from the pkgbase repo
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Thu, 25 Sep 2025 01:01:43 UTC
The branch stable/15 has been updated by ivy:
URL: https://cgit.FreeBSD.org/src/commit/?id=d500f1f015e3157cd2fe501686fc4343df087613
commit d500f1f015e3157cd2fe501686fc4343df087613
Author: Lexi Winter <ivy@FreeBSD.org>
AuthorDate: 2025-09-23 22:37:26 +0000
Commit: Lexi Winter <ivy@FreeBSD.org>
CommitDate: 2025-09-25 01:00:41 +0000
release: Install pkg from the pkgbase repo
If we're building pkgbase media, install the pkg package from the
pkgbase repository we already created, not from pkg.freebsd.org.
Aside from being more desirable, this also fixes make release for
version/architecture combinations which are missing repository
on pkg.f.o (which is nearly all of them at the time of writing).
This doesn't yet work for bootonly, since we don't build the pkgbase
repository there. For now, restore the old behaviour of attempting
to install pkg from pkg.freebsd.org for bootonly.
MFC after: 1 day
Reviewed by: ifreund_freebsdfoundation.org, cperciva (previous version)
Differential Revision: https://reviews.freebsd.org/D52637
(cherry picked from commit aba986215fc99d09655d4dcfc5e37f8b1ac83edf)
---
release/Makefile | 24 +++++++++++++++++++-----
1 file changed, 19 insertions(+), 5 deletions(-)
diff --git a/release/Makefile b/release/Makefile
index 13aaefd4db8d..73ab2b7cb250 100644
--- a/release/Makefile
+++ b/release/Makefile
@@ -79,11 +79,16 @@ VOLUME_LABEL= ${REVISION:C/[.-]/_/g}_${BRANCH:C/[.-]/_/g}_${TARGET_ARCH}
PKG_ENV+= INSTALL_AS_USER=yes
PKG_ENV+= ASSUME_ALWAYS_YES=yes
PKG_ARGS+= -o METALOG=METALOG
-PKG_ARGS+= -r ${.TARGET} -o REPOS_DIR=${.CURDIR}/pkg_repos
+PKG_ARGS+= -r ${.TARGET}
+PKG_REPO_ARGS= -o REPOS_DIR=${.CURDIR}/pkg_repos
+PKGBASE_REPO_ARGS=-o REPOS_DIR=${.OBJDIR}/pkgbase-repo-conf
# Pass -f to make sure pkg writes to the METALOG even if the package
# is already installed from a previous build
-PKG_INSTALL= env ${PKG_ENV} ${PKG_CMD} ${PKG_ARGS} install -f
-PKG_CLEAN= env ${PKG_ENV} ${PKG_CMD} ${PKG_ARGS} clean -a
+PKG_INSTALL= env ${PKG_ENV} ${PKG_CMD} ${PKG_ARGS} ${PKG_REPO_ARGS} install -f
+PKG_CLEAN= env ${PKG_ENV} ${PKG_CMD} ${PKG_ARGS} ${PKG_REPO_ARGS} clean -a
+# This installs from the pkgbase repo we created during build.
+PKGBASE_INSTALL=env ${PKG_ENV} ${PKG_CMD} ${PKG_ARGS} ${PKGBASE_REPO_ARGS} install -f
+PKGBASE_CLEAN= env ${PKG_ENV} ${PKG_CMD} ${PKG_ARGS} ${PKGBASE_REPO_ARGS} clean -a
.endif
.if !defined(VOLUME_LABEL) || empty(VOLUME_LABEL)
@@ -238,7 +243,12 @@ disc1: ${PKGBASE_REPO}
.endif
.if ${.MAKE.OS} == "FreeBSD" && (!defined(NOPKG) || empty(NOPKG))
# Install packages onto release media.
+.if !defined(NOPKGBASE) || empty(NOPKGBASE)
+ ${PKGBASE_INSTALL} pkg
+ ${PKGBASE_CLEAN}
+.else
${PKG_INSTALL} pkg
+.endif
${PKG_INSTALL} wifi-firmware-kmod-release || true
${PKG_CLEAN} || true
.endif
@@ -277,8 +287,7 @@ bootonly:
echo "./usr/freebsd-dist/MANIFEST type=file uname=root gname=wheel mode=0644" >> ${.TARGET}/METALOG
.endif
.if ${.MAKE.OS} == "FreeBSD" && (!defined(NOPKG) || empty(NOPKG))
-# Install packages onto release media.
- ${PKG_INSTALL} pkg
+ ${PKG_INSTALL} pkg || true
${PKG_INSTALL} wifi-firmware-iwlwifi-kmod wifi-firmware-rtw88-kmod || true
${PKG_CLEAN} || true
.endif
@@ -331,7 +340,12 @@ dvd: ${PKGBASE_REPO}
.endif
.if ${.MAKE.OS} == "FreeBSD" && (!defined(NOPKG) || empty(NOPKG))
# Install packages onto release media.
+.if !defined(NOPKGBASE) || empty(NOPKGBASE)
+ ${PKGBASE_INSTALL} pkg
+ ${PKGBASE_CLEAN}
+.else
${PKG_INSTALL} pkg
+.endif
${PKG_INSTALL} wifi-firmware-kmod-release || true
${PKG_CLEAN} || true
.endif