git: 58610d1e0fbb - main - build: Sort distributekernel METALOG when using -DNO_ROOT
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Mon, 06 Jan 2025 18:01:11 UTC
The branch main has been updated by emaste:
URL: https://cgit.FreeBSD.org/src/commit/?id=58610d1e0fbbd1a49927559ee3970d8e4594cc86
commit 58610d1e0fbbd1a49927559ee3970d8e4594cc86
Author: Pat Maddox <pat@patmaddox.com>
AuthorDate: 2024-12-13 19:57:30 +0000
Commit: Ed Maste <emaste@FreeBSD.org>
CommitDate: 2025-01-06 17:56:30 +0000
build: Sort distributekernel METALOG when using -DNO_ROOT
The metalog is produced by install -M, which is not inherently sorted.
This results in non-deterministic file ordering in kernel.txz. Order the
files in kernel.txz to support reproducible builds.
PR: 283214
Reviewed by: emaste
Signed-off-by: Pat Maddox <pat@patmaddox.com>
---
Makefile.inc1 | 20 +++++++++-----------
1 file changed, 9 insertions(+), 11 deletions(-)
diff --git a/Makefile.inc1 b/Makefile.inc1
index bad747a0e551..fe799218ab0a 100644
--- a/Makefile.inc1
+++ b/Makefile.inc1
@@ -1903,9 +1903,7 @@ distributekernel distributekernel.debug: .PHONY
false
.endif
mkdir -p ${DESTDIR}/${DISTDIR}
-.if defined(NO_ROOT)
- @echo "#${MTREE_MAGIC}" > ${DESTDIR}/${DISTDIR}/kernel.premeta
-.endif
+ rm -f ${DESTDIR}/${DISTDIR}/kernel.premeta
${_+_}cd ${KRNLOBJDIR}/${INSTALLKERNEL}; \
${IMAKEENV} ${IMAKE_INSTALL:S/METALOG/kernel.premeta/} \
${IMAKE_MTREE} PATH=${TMPPATH:Q} ${MAKE} KERNEL=${INSTKERNNAME} \
@@ -1913,15 +1911,14 @@ distributekernel distributekernel.debug: .PHONY
METALOG=${METALOG:S/METALOG/kernel.premeta/} \
${.TARGET:S/distributekernel/install/}
.if defined(NO_ROOT)
- @sed -e 's|^./kernel|.|' ${DESTDIR}/${DISTDIR}/kernel.premeta > \
- ${DESTDIR}/${DISTDIR}/kernel.meta
+ echo "#${MTREE_MAGIC}" > ${DESTDIR}/${DISTDIR}/kernel.meta
+ sed -e 's|^./kernel|.|' ${DESTDIR}/${DISTDIR}/kernel.premeta | \
+ ${METALOG_SORT_CMD} >> ${DESTDIR}/${DISTDIR}/kernel.meta
.endif
.endif
.if ${BUILDKERNELS:[#]} > 1 && ${NO_INSTALLEXTRAKERNELS} != "yes"
.for _kernel in ${BUILDKERNELS:[2..-1]}
-.if defined(NO_ROOT)
- @echo "#${MTREE_MAGIC}" > ${DESTDIR}/${DISTDIR}/kernel.${_kernel}.premeta
-.endif
+ rm -f ${DESTDIR}/${DISTDIR}/kernel.${_kernel}.premeta
${_+_}cd ${KRNLOBJDIR}/${_kernel}; \
${IMAKEENV} ${IMAKE_INSTALL:S/METALOG/kernel.${_kernel}.premeta/} \
${IMAKE_MTREE} PATH=${TMPPATH:Q} ${MAKE} \
@@ -1930,9 +1927,10 @@ distributekernel distributekernel.debug: .PHONY
METALOG=${METALOG:S/METALOG/kernel.${_kernel}.premeta/} \
${.TARGET:S/distributekernel/install/}
.if defined(NO_ROOT)
- @sed -e "s|^./kernel.${_kernel}|.|" \
- ${DESTDIR}/${DISTDIR}/kernel.${_kernel}.premeta > \
- ${DESTDIR}/${DISTDIR}/kernel.${_kernel}.meta
+ echo "#${MTREE_MAGIC}" > ${DESTDIR}/${DISTDIR}/kernel.${_kernel}.meta
+ sed -e "s|^./kernel.${_kernel}|.|" \
+ ${DESTDIR}/${DISTDIR}/kernel.${_kernel}.premeta | \
+ ${METALOG_SORT_CMD} >> ${DESTDIR}/${DISTDIR}/kernel.${_kernel}.meta
.endif
.endfor
.endif