@@ -466,7 +466,7 @@ SUBDIR+= ${_DIR}
466466# by calling 'makedb' in share/man. This is only relevant for
467467# install/distribute so they build the whatis file after every manpage is
468468# installed.
469- .if make(installworld) || make(install)
469+ .if make(installworld) || make(install) || make(distributeworld) || make(distribute)
470470SUBDIR+=.WAIT
471471.endif
472472SUBDIR+=etc
@@ -600,7 +600,16 @@ PKG_VERSION:= ${_PKG_REVISION}${EXTRA_REVISION:C/[[:space:]]//g}
600600.endif
601601.endif # !defined(_MKSHOWCONFIG)
602602
603+ PKG_NAME_PREFIX?= FreeBSD
604+ PKG_MAINTAINER?= re@FreeBSD.org
605+ PKG_WWW?= https://www.FreeBSD.org
606+ PKG_WORKERS_COUNT?= 1
607+
603608.if make(*package*)
609+ .export PKG_NAME_PREFIX
610+ .export PKG_MAINTAINER
611+ .export PKG_WWW
612+
604613.if !defined(PKG_TIMESTAMP)
605614.if !empty(GIT_CMD) && exists(${GIT_CMD}) && exists(${SRCDIR}/.git)
606615SOURCE_DATE_EPOCH!= ${GIT_CMD} -C ${SRCDIR} show -s --format=%ct HEAD
@@ -611,14 +620,6 @@ SOURCE_DATE_EPOCH= ${TIMEEPOCHNOW:gmtime}
611620.else
612621SOURCE_DATE_EPOCH= ${PKG_TIMESTAMP}
613622.endif
614- PKG_WORKERS_COUNT?= 1
615-
616- PKG_NAME_PREFIX?= FreeBSD
617- PKG_MAINTAINER?= re@FreeBSD.org
618- PKG_WWW?= https://www.FreeBSD.org
619- .export PKG_NAME_PREFIX
620- .export PKG_MAINTAINER
621- .export PKG_WWW
622623.endif
623624
624625.if !defined(_MKSHOWCONFIG)
@@ -1366,6 +1367,28 @@ __installcheck_DESTDIR: .PHONY
13661367.endif
13671368.endif
13681369
1370+ #
1371+ # Don't allow installworld or installkernel on a pkgbase system. This avoids
1372+ # accidentally updating a pkgbase system with install{world,kernel}, causing
1373+ # the installed system to become out of date with the package database.
1374+ #
1375+ # Skip the check if DESTDIR is defined on the assumption the user knows what
1376+ # they're doing. This means the check can be disabled for the running system
1377+ # using DESTDIR=/.
1378+ #
1379+ .if !make(distributeworld) && !defined(DESTDIR)
1380+ _installcheck_world: __installcheck_PKG
1381+ _installcheck_kernel: __installcheck_PKG
1382+ __installcheck_PKG: .PHONY
1383+ .if exists(${LOCALBASE}/sbin/pkg-static)
1384+ @if ${LOCALBASE}/sbin/pkg-static info -e ${PKG_NAME_PREFIX}-runtime; then \
1385+ echo >&2 "ERROR: This target should not be used on a system installed from packages." ; \
1386+ echo >&2 " To override this check, set DESTDIR=/."; \
1387+ false; \
1388+ fi
1389+ .endif
1390+ .endif
1391+
13691392.if !defined(DB_FROM_SRC)
13701393#
13711394# Check for missing UIDs/GIDs.
@@ -1977,6 +2000,7 @@ REPODIR?= ${OBJROOT}repo
19772000PKG_FORMAT?= tzst
19782001PKG_LEVEL?= -1
19792002PKG_CLEVEL?= ${"${PKG_FORMAT:Mtar}" != "":?:-l ${PKG_LEVEL}}
2003+ PKG_CTHREADS?= 0
19802004PKG_REPO_SIGNING_KEY?= # empty
19812005PKG_OUTPUT_DIR?= ${PKG_VERSION}
19822006PKG_ABI_FILE?= ${WSTAGEDIR}/usr/bin/uname
@@ -2157,7 +2181,7 @@ create-source-src-package: _pkgbootstrap .PHONY
21572181 ${SSTAGEDIR}/src.ucl
21582182 ${PKG_CMD} -o ABI=${PKG_ABI} \
21592183 -o OSVERSION="${SRCRELDATE}" \
2160- create -f ${PKG_FORMAT} ${PKG_CLEVEL} \
2184+ create -f ${PKG_FORMAT} ${PKG_CLEVEL} -T${PKG_CTHREADS} \
21612185 -M ${SSTAGEDIR}/src.ucl \
21622186 -p ${SSTAGEDIR}/src.plist \
21632187 -r ${SRCDIR} \
@@ -2183,7 +2207,7 @@ create-source-src-sys-package: _pkgbootstrap .PHONY
21832207 ${SSTAGEDIR}/src-sys.ucl
21842208 ${PKG_CMD} -o ABI=${PKG_ABI} \
21852209 -o OSVERSION="${SRCRELDATE}" \
2186- create -f ${PKG_FORMAT} ${PKG_CLEVEL} \
2210+ create -f ${PKG_FORMAT} ${PKG_CLEVEL} -T${PKG_CTHREADS} \
21872211 -M ${SSTAGEDIR}/src-sys.ucl \
21882212 -p ${SSTAGEDIR}/src-sys.plist \
21892213 -r ${SRCDIR} \
@@ -2226,7 +2250,7 @@ create-world-package-${pkgname}: .PHONY
22262250 fi
22272251 ${PKG_CMD} -o ABI=${PKG_ABI} -o ALLOW_BASE_SHLIBS=yes \
22282252 -o OSVERSION="${SRCRELDATE}" \
2229- create -f ${PKG_FORMAT} ${PKG_CLEVEL} \
2253+ create -f ${PKG_FORMAT} ${PKG_CLEVEL} -T${PKG_CTHREADS} \
22302254 -M ${WSTAGEDIR}/${pkgname}.ucl \
22312255 -p ${WSTAGEDIR}/${pkgname}.plist \
22322256 -r ${WSTAGEDIR} \
@@ -2245,7 +2269,7 @@ create-sets-packages: .PHONY
22452269 @for manifest in ${WSTAGEDIR}/set-*.ucl; do \
22462270 echo "--> Processing manifest: $$manifest"; \
22472271 ${PKG_CMD} -o ABI=${PKG_ABI} -o OSVERSION="${SRCRELDATE}" \
2248- create -f ${PKG_FORMAT} ${PKG_CLEVEL} \
2272+ create -f ${PKG_FORMAT} ${PKG_CLEVEL} -T${PKG_CTHREADS} \
22492273 -M $$manifest \
22502274 -o "${REPODIR}/${PKG_ABI}/${PKG_OUTPUT_DIR}" \
22512275 || exit 1; \
@@ -2275,7 +2299,7 @@ create-dtb-package: .PHONY
22752299 ${KSTAGEDIR}/${DISTDIR}/dtb.ucl ; \
22762300 ${PKG_CMD} -o ABI=${PKG_ABI} -o ALLOW_BASE_SHLIBS=yes \
22772301 -o OSVERSION="${SRCRELDATE}" \
2278- create -f ${PKG_FORMAT} ${PKG_CLEVEL} \
2302+ create -f ${PKG_FORMAT} ${PKG_CLEVEL} -T${PKG_CTHREADS} \
22792303 -M ${KSTAGEDIR}/${DISTDIR}/dtb.ucl \
22802304 -p ${KSTAGEDIR}/${DISTDIR}/dtb.plist \
22812305 -r ${KSTAGEDIR}/${DISTDIR} \
@@ -2312,7 +2336,7 @@ create-kernel-packages-flavor${flavor:C,^""$,${_default_flavor},}: _pkgbootstrap
23122336 ${KSTAGEDIR}/${DISTDIR}/kernel.${INSTALLKERNEL}${flavor}.ucl ; \
23132337 ${PKG_CMD} -o ABI=${PKG_ABI} -o ALLOW_BASE_SHLIBS=yes \
23142338 -o OSVERSION="${SRCRELDATE}" \
2315- create -f ${PKG_FORMAT} ${PKG_CLEVEL} \
2339+ create -f ${PKG_FORMAT} ${PKG_CLEVEL} -T${PKG_CTHREADS} \
23162340 -M ${KSTAGEDIR}/${DISTDIR}/kernel.${INSTALLKERNEL}${flavor}.ucl \
23172341 -p ${KSTAGEDIR}/${DISTDIR}/kernel.${INSTALLKERNEL}${flavor}.plist \
23182342 -r ${KSTAGEDIR}/${DISTDIR} \
@@ -2352,7 +2376,7 @@ create-kernel-packages-extra-flavor${flavor:C,^""$,${_default_flavor},}-${_kerne
23522376 ${KSTAGEDIR}/kernel.${_kernel}/kernel.${_kernel}${flavor}.ucl ; \
23532377 ${PKG_CMD} -o ABI=${PKG_ABI} -o ALLOW_BASE_SHLIBS=yes \
23542378 -o OSVERSION="${SRCRELDATE}" \
2355- create -f ${PKG_FORMAT} ${PKG_CLEVEL} \
2379+ create -f ${PKG_FORMAT} ${PKG_CLEVEL} -T${PKG_CTHREADS} \
23562380 -M ${KSTAGEDIR}/kernel.${_kernel}/kernel.${_kernel}${flavor}.ucl \
23572381 -p ${KSTAGEDIR}/kernel.${_kernel}/kernel.${_kernel}${flavor}.plist \
23582382 -r ${KSTAGEDIR}/kernel.${_kernel} \
0 commit comments