certctl: invoke with LOCALBASE set

When invoking certctl as part of installworld, set LOCALBASE in the
environment to match the build environment.  That ensures that LOCABASE
is non-empty on systems without the user.localbase sysctl and avoids
allowing a system configuration detail to leak into the build.  Users
who wish to build targeting a non-standard LOCALBASE should ensure it is
set in src.conf or similar.

Reviewed by:	Mina Galić <freebsd@igalic.co>
Differential Revision:	https://reviews.freebsd.org/D40530
This commit is contained in:
Brooks Davis 2023-10-16 23:35:40 +01:00
parent def6ee77db
commit 0e0c4f5837

View file

@ -1489,6 +1489,7 @@ distributeworld installworld stageworld: _installcheck_world .PHONY
.if !make(packageworld) && ${MK_CAROOT} != "no"
@if which openssl>/dev/null; then \
PATH=${TMPPATH:Q}:${PATH:Q} \
LOCALBASE=${LOCALBASE:Q} \
sh ${SRCTOP}/usr.sbin/certctl/certctl.sh ${CERTCTLFLAGS} rehash; \
else \
echo "No openssl on the host, not rehashing certificates target -- /etc/ssl may not be populated."; \