Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 25 Jul 2026 13:08:03 +0000
From:      Lexi Winter <ivy@FreeBSD.org>
To:        src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org
Subject:   git: f8b81bfc76d8 - stable/15 - Makefile.inc1: Only copy locales to INSTALLTMP on FreeBSD
Message-ID:  <6a64b533.2504b.47803c4d@gitrepo.freebsd.org>

index | next in thread | raw e-mail

The branch stable/15 has been updated by ivy:

URL: https://cgit.FreeBSD.org/src/commit/?id=f8b81bfc76d8e3c8ceb11e7285d0c04cb62a802e

commit f8b81bfc76d8e3c8ceb11e7285d0c04cb62a802e
Author:     Lexi Winter <ivy@FreeBSD.org>
AuthorDate: 2026-04-28 19:42:39 +0000
Commit:     Lexi Winter <ivy@FreeBSD.org>
CommitDate: 2026-07-25 13:01:23 +0000

    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)
---
 Makefile.inc1 | 11 +++++++++--
 1 file 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}


home | help

Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?6a64b533.2504b.47803c4d>