Author: emaste
Date: Thu Dec 15 21:26:58 2016
New Revision: 310128
URL: https://svnweb.freebsd.org/changeset/base/310128

Log:
  Add WITH_REPRODUCIBLE_BUILD src.conf(5) knob to disable kernel metadata
  
  The kernel builds reproducibly, except for the time, date, user, and
  hostname baked into the kernel (reported at startup and via the
  kern.version sysctl for uname).  Add a build knob to disable the
  inclusion of this metadata.
  
  Reviewed by:  jhb
  MFC after:    1 month
  Relnotes:     Yes
  Sponsored by: Reproducible Builds World Summit 2, Berlin
  Differential Revision:        https://reviews.freebsd.org/D8809

Added:
  head/tools/build/options/WITH_REPRODUCIBLE_BUILD   (contents, props changed)
Modified:
  head/sys/conf/kern.opts.mk
  head/sys/conf/kern.post.mk

Modified: head/sys/conf/kern.opts.mk
==============================================================================
--- head/sys/conf/kern.opts.mk  Thu Dec 15 20:13:40 2016        (r310127)
+++ head/sys/conf/kern.opts.mk  Thu Dec 15 21:26:58 2016        (r310128)
@@ -47,7 +47,8 @@ __DEFAULT_NO_OPTIONS = \
     EISA \
     EXTRA_TCP_STACKS \
     NAND \
-    OFED
+    OFED \
+    REPRODUCIBLE_BUILD
 
 # Some options are totally broken on some architectures. We disable
 # them. If you need to enable them on an experimental basis, you

Modified: head/sys/conf/kern.post.mk
==============================================================================
--- head/sys/conf/kern.post.mk  Thu Dec 15 20:13:40 2016        (r310127)
+++ head/sys/conf/kern.post.mk  Thu Dec 15 21:26:58 2016        (r310128)
@@ -357,8 +357,11 @@ config.o env.o hints.o vers.o vnode_if.o
 config.ln env.ln hints.ln vers.ln vnode_if.ln:
        ${NORMAL_LINT}
 
+.if ${MK_REPRODUCIBLE_BUILD} != "no"
+REPRO_FLAG="-r"
+.endif
 vers.c: $S/conf/newvers.sh $S/sys/param.h ${SYSTEM_DEP}
-       MAKE=${MAKE} sh $S/conf/newvers.sh ${KERN_IDENT}
+       MAKE=${MAKE} sh $S/conf/newvers.sh ${REPRO_FLAG} ${KERN_IDENT}
 
 vnode_if.c: $S/tools/vnode_if.awk $S/kern/vnode_if.src
        ${AWK} -f $S/tools/vnode_if.awk $S/kern/vnode_if.src -c

Added: head/tools/build/options/WITH_REPRODUCIBLE_BUILD
==============================================================================
--- /dev/null   00:00:00 1970   (empty, because file is newly added)
+++ head/tools/build/options/WITH_REPRODUCIBLE_BUILD    Thu Dec 15 21:26:58 
2016        (r310128)
@@ -0,0 +1,3 @@
+$FreeBSD$
+Set to exclude build metadata (build time, user, host and path) from the
+kernel and uname output.
_______________________________________________
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to