aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLexi Winter <ivy@FreeBSD.org>2026-04-28 19:42:39 +0000
committerLexi Winter <ivy@FreeBSD.org>2026-07-25 13:01:23 +0000
commitf8b81bfc76d8e3c8ceb11e7285d0c04cb62a802e (patch)
treeb132d9265ca135abd46f04cb0f4aa3ece20521d0
parent121e955d6164bfc4a09b990b786d254b99cc6a95 (diff)
Makefile.inc1: Only copy locales to INSTALLTMP on FreeBSD
Makefile.inc1 copies locales to ${INSTALLTMP} to avoid issues when running make installworld on a live system. However, this can break on non-FreeBSD systems, e.g. on openSUSE where /usr/share/locales has mode 0555, which means after we copy it, we can't delete it, so the build fails. Since this functionality is only useful when installing over a live system, disable it when the build host is not FreeBSD. MFC after: 2 weeks Reviewed by: kevans, emaste Sponsored by: https://www.patreon.com/bsdivy Differential Revision: https://reviews.freebsd.org/D56677 (cherry picked from commit 4429630d1ca9d90c886bae1eaa0d8ee32d0fee12)
-rw-r--r--Makefile.inc111
1 files changed, 9 insertions, 2 deletions
diff --git a/Makefile.inc1 b/Makefile.inc1
index b2f491ff254b..fb2a5e2ce527 100644
--- a/Makefile.inc1
+++ b/Makefile.inc1
@@ -961,8 +961,10 @@ IMAKE= ${TIME_ENV} ${IMAKEENV} ${MAKE} -f Makefile.inc1 \
${IMAKE_INSTALL} ${IMAKE_MTREE}
.if empty(.MAKEFLAGS:M-n)
IMAKEENV+= PATH=${STRICTTMPPATH:Q}:${INSTALLTMP:Q} \
- LD_LIBRARY_PATH=${INSTALLTMP:Q} \
- PATH_LOCALE=${INSTALLTMP}/locale
+ LD_LIBRARY_PATH=${INSTALLTMP:Q}
+.if ${.MAKE.OS} == "FreeBSD"
+IMAKEENV+= PATH_LOCALE=${INSTALLTMP}/locale
+.endif
IMAKE+= __MAKE_SHELL=${INSTALLTMP}/sh
.else
IMAKEENV+= PATH=${TMPPATH:Q}:${INSTALLTMP:Q}
@@ -1471,7 +1473,12 @@ distributeworld installworld stageworld: _installcheck_world .PHONY
done); \
fi; \
${INSTALLTMP_COPY_HOST_TOOL} $$libs $$progs ${INSTALLTMP}
+ # On non-FreeBSD systems, there's no point copying locales here
+ # since we aren't going to overwrite them anyway. This avoids
+ # failing if /usr/share/locale has odd modes (e.g., openSUSE).
+.if ${.MAKE.OS} == "FreeBSD"
cp -R $${PATH_LOCALE:-"/usr/share/locale"} ${INSTALLTMP}/locale
+.endif
.if defined(NO_ROOT)
-mkdir -p ${METALOG:H}
echo "#${MTREE_MAGIC}" > ${METALOG}