bsdinstall: Use pkgbase.f.o for BETA/RC/RELEASE

For BETA/RC/RELEASE builds, fetch files from the appropriate repository
on pkgbase.freebsd.org, using the appropriate signing keys.  Note that
there is a separate repository for each BETA and RC; this ensures that
someone installing from e.g. a 15.0-RC1 ISO will get 15.0-RC1 bits and
not whatever happens to be the most recent build from releng/15.0.

With hat:	re
MFC after:	8 hours (needed in 15.0-RC1)
This commit is contained in:
Colin Percival
2025-11-14 19:04:51 -08:00
parent b05f38262b
commit 51184e38c9
2 changed files with 15 additions and 5 deletions
+2 -2
View File
@@ -1,7 +1,7 @@
FreeBSD-base: {
url: "pkg+https://pkg.FreeBSD.org/${ABI}/%%SUBURL%%",
url: "pkg+https://%%PKGHOST%%.FreeBSD.org/${ABI}/%%SUBURL%%",
mirror_type: "srv",
signature_type: "fingerprints",
fingerprints: "/usr/share/keys/pkg",
fingerprints: "/usr/share/keys/%%KEYSDIR%%",
enabled: yes
}
+13 -3
View File
@@ -21,16 +21,26 @@ _REVISION!= ${MAKE} -C ${SRCTOP}/release -V REVISION
REVISION?= ${_REVISION}
.if ${BRANCH} == CURRENT || ${BRANCH} == STABLE
PKGHOST= pkg
KEYSDIR= pkg
SUBURL= base_latest
.elif ${BRANCH} == RELEASE || ${BRANCH:C/[0-9]+$//} == BETA || \
${BRANCH:C/[0-9]+$//} == RC
.elif ${BRANCH} == RELEASE
PKGHOST= pkgbase
KEYSDIR= pkgbase-${REVISION:C/\.[0-9]+//}
SUBURL= base_release_${REVISION:C/[0-9]+\.//}
.elif ${BRANCH:C/[0-9]+$//} == BETA || \
${BRANCH:C/[0-9]+$//} == RC
PKGHOST= pkgbase
KEYSDIR= pkgbase-${REVISION:C/\.[0-9]+//}
SUBURL= base_release_${REVISION:C/[0-9]+\.//}_${BRANCH:tl}
.else
.warning Invalid branch "${BRANCH}"
PKGHOST= pkg
KEYSDIR= pkg
SUBURL= base_latest
.endif
FreeBSD-base.conf: FreeBSD-base.conf.in
sed "s|%%SUBURL%%|${SUBURL}|" < ${.ALLSRC} > ${.TARGET}
sed "s|%%PKGHOST%%|${PKGHOST}|;s|%%SUBURL%%|${SUBURL}|;s|%%KEYSDIR%%|${KEYSDIR}|" < ${.ALLSRC} > ${.TARGET}
.include <bsd.prog.mk>