The branch main has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=3238878379d3bd4bb9796ccb41c090139bbde94f
commit 3238878379d3bd4bb9796ccb41c090139bbde94f Author: Mark Johnston <ma...@freebsd.org> AuthorDate: 2025-08-21 14:05:19 +0000 Commit: Mark Johnston <ma...@freebsd.org> CommitDate: 2025-08-21 15:56:23 +0000 newvers: Add a builddir parameter When reproducible builds are configured, we should use /usr/obj as the canonical objdir. Add a parameter to newvers.sh to ensure that build metadata is reproducible. Reviewed by: emaste MFC after: 1 month Sponsored by: The FreeBSD Foundation Sponsored by: Klara, Inc. Differential Revision: https://reviews.freebsd.org/D50954 --- sys/conf/kern.post.mk | 2 +- sys/conf/newvers.sh | 8 ++++++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/sys/conf/kern.post.mk b/sys/conf/kern.post.mk index 1accd3fa8df4..bb3c7af82a4d 100644 --- a/sys/conf/kern.post.mk +++ b/sys/conf/kern.post.mk @@ -467,7 +467,7 @@ config.o env.o hints.o vers.o vnode_if.o: NEWVERS_ENV+= MAKE="${MAKE}" .if ${MK_REPRODUCIBLE_BUILD} != "no" -NEWVERS_ARGS+= -R +NEWVERS_ARGS+= -R -d ${PREFIX_OBJDIR} .endif vers.c: .NOMETA_CMP $S/conf/newvers.sh $S/sys/param.h ${SYSTEM_DEP:Nvers.*} ${NEWVERS_ENV} sh $S/conf/newvers.sh ${NEWVERS_ARGS} ${KERN_IDENT} diff --git a/sys/conf/newvers.sh b/sys/conf/newvers.sh index 66926805052c..8b60da95741e 100644 --- a/sys/conf/newvers.sh +++ b/sys/conf/newvers.sh @@ -110,14 +110,18 @@ COPYRIGHT="$COPYRIGHT # We expand include_metadata later since we may set it to the # future value of modified. +builddir=$(pwd) include_metadata=yes modified=no -while getopts crRvV: opt; do +while getopts cd:rRvV: opt; do case "$opt" in c) echo "$COPYRIGHT" exit 0 ;; + d) + builddir=$OPTARG + ;; r) include_metadata=no ;; @@ -187,7 +191,7 @@ fi touch version v=$(cat version) u=${USER:-root} -d=$(pwd) +d=$builddir h=${HOSTNAME:-$(hostname)} if [ -n "$SOURCE_DATE_EPOCH" ]; then if ! t=$(date -ur $SOURCE_DATE_EPOCH 2>/dev/null); then