aboutsummaryrefslogtreecommitdiff
path: root/Makefile.inc1
diff options
context:
space:
mode:
authorJessica Clarke <jrtc27@FreeBSD.org>2023-06-08 16:47:04 +0000
committerJessica Clarke <jrtc27@FreeBSD.org>2023-06-08 18:14:12 +0000
commit469727c966bbd91447c8402470452b95810f3ffe (patch)
treec1b21a9fedc407663bce067daae0bddb39d254d1 /Makefile.inc1
parenta30a0d940daef2df51371cf142790109e2019fa0 (diff)
downloadsrc-469727c966bbd91447c8402470452b95810f3ffe.tar.gz
src-469727c966bbd91447c8402470452b95810f3ffe.zip
Makefile.inc1: Use INSTALL_DDIR for distributeworld's distrib-dirs
INSTALL_DDIR is the canonicalised version of DESTDIR/DISTDIR. Whilst most of what distrib-dirs does doesn't need the canonicalised form, it is responsible for installing the POSIX and en_US.US_ASCII NLS symlinks to C, and therefore needs the canonicalised version for those two uses of install for NO_ROOT builds, since our install does a naive text-based prefix strip when creating the METALOG entry rather than a smarter path semantics-aware one (which itself is really a bug, and has bitten us many times). As a result, using plain DESTDIR/DISTDIR instead can result in the METALOG having ./path/to/destdir/base/usr/share/nls/$LOCALE rather than ./base/usr/share/nls/$LOCALE and then being filtered out when creating base.meta (or, if you're unlucky and the absolute path begins with base or tests, weird things will probably happen). Given this footgun an audit of DESTDIR uses is probably in order, especially those using DESTDIR/DISTDIR, but this is sufficient for now.
Diffstat (limited to 'Makefile.inc1')
-rw-r--r--Makefile.inc12
1 files changed, 1 insertions, 1 deletions
diff --git a/Makefile.inc1 b/Makefile.inc1
index 86e8da9467da..88ae6dadd8a1 100644
--- a/Makefile.inc1
+++ b/Makefile.inc1
@@ -1456,7 +1456,7 @@ distributeworld installworld stageworld: _installcheck_world .PHONY
-mkdir ${DESTDIR}/${DISTDIR}/base
${_+_}cd ${.CURDIR}/etc; ${CROSSENV} PATH=${TMPPATH:Q} ${MAKE} \
METALOG=${METALOG} ${IMAKE_INSTALL} ${IMAKE_MTREE} \
- DISTBASE=/base DESTDIR=${DESTDIR}/${DISTDIR}/base \
+ DISTBASE=/base DESTDIR=${INSTALL_DDIR}/base \
LOCAL_MTREE=${LOCAL_MTREE:Q} distrib-dirs
${INSTALL_SYMLINK} ${INSTALLFLAGS} usr/src/sys ${INSTALL_DDIR}/base/sys
.endif # make(distributeworld)