Thanks for doing this :)

On 15/12/2016 12:57, Ed Maste wrote:
Author: emaste
Date: Thu Dec 15 12:57:03 2016
New Revision: 310112
URL: https://svnweb.freebsd.org/changeset/base/310112

Log:
   newvers.sh: add option to eliminate kernel build metadata
Build metadata (username, hostname, etc.) prevents the FreeBSD kernel
   from building reproducibly. Add an option to disable inclusion of that
   metadata but retain the release information and SVN/git VCS details.
   See https://reproducible-builds.org/ for additional background.
Reviewed by: bapt
   Obtained from:       NetBSD
   MFC after:   1 month
   Sponsored by:        Reproducible Builds World Summit 2, Berlin
   Differential Revision:       https://reviews.freebsd.org/D4347

Modified:
   head/sys/conf/newvers.sh

Modified: head/sys/conf/newvers.sh
==============================================================================
--- head/sys/conf/newvers.sh    Thu Dec 15 10:51:35 2016        (r310111)
+++ head/sys/conf/newvers.sh    Thu Dec 15 12:57:03 2016        (r310112)
@@ -30,6 +30,14 @@
  #     @(#)newvers.sh  8.1 (Berkeley) 4/20/94
  # $FreeBSD$
+# Command line options:
+#
+#     -r               Reproducible build.  Do not embed directory names, user
+#                      names, time stamps or other dynamic information into
+#                      the outuput file.  This is intended to allow two builds
+#                      done at different times and even by different people on
+#                      different hosts to produce identical output.
+
  TYPE="FreeBSD"
  REVISION="12.0"
  BRANCH="CURRENT"
@@ -250,10 +258,28 @@ if [ -n "$hg_cmd" ] ; then
        fi
  fi
+include_metadata=true
+while getopts r opt; do
+       case "$opt" in
+       r)
+               include_metadata=
+               ;;
+       esac
+done
+shift $((OPTIND - 1))
+
+if [ -z "${include_metadata}" ]; then
+       VERINFO="${VERSION} ${svn}${git}${hg}${p4version}"
+       VERSTR="${VERINFO}\\n"
+else
+       VERINFO="${VERSION} #${v}${svn}${git}${hg}${p4version}: ${t}"
+       VERSTR="${VERINFO}\\n    ${u}@${h}:${d}\\n"
+fi
+
  cat << EOF > vers.c
  $COPYRIGHT
-#define SCCSSTR "@(#)${VERSION} #${v}${svn}${git}${hg}${p4version}: ${t}"
-#define VERSTR "${VERSION} #${v}${svn}${git}${hg}${p4version}: ${t}\\n    
${u}@${h}:${d}\\n"
+#define SCCSSTR "@(#)${VERINFO}"
+#define VERSTR "${VERSTR}"
  #define RELSTR "${RELEASE}"
char sccs[sizeof(SCCSSTR) > 128 ? sizeof(SCCSSTR) : 128] = SCCSSTR;


_______________________________________________
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to