Removing build metadata, for reproducible kernel builds

Tim Kientzle tim at kientzle.com
Thu Dec 3 05:29:15 UTC 2015


> On Dec 2, 2015, at 9:36 AM, Ed Maste <emaste at freebsd.org> wrote:
> 
> The main issue currently preventing kernel builds from being
> reproducible[1] is the build metadata itself that's included (time,
> user, host, build path). In order to make the kernel build
> reproducible I plan to remove these by default, and add a src.conf
> knob to enable them for developers who want them in their own builds.
> 
> The user-facing effect of this is that the kern.version sysctl no
> longer conveys this information, and uname -a changes from something
> like:
> 
> FreeBSD ref11-amd64.freebsd.org 11.0-CURRENT FreeBSD 11.0-CURRENT #0
> r288681: Mon Oct  5 01:40:11 UTC 2015
> peter at build-11.freebsd.org:/usr/obj/usr/src/sys/CLUSTER11  amd64
> 
> to something like:
> 
> FreeBSD feynman 10.2-STABLE FreeBSD 10.2-STABLE #44
> r288174+7644546(stable-10) amd64
> 
> The current version of the change is available for review at
> https://reviews.freebsd.org/D4347.
> 
> [1] See https://reproducible-builds.org/ for more information on the
> reproducible builds project.

How feasible would it be for the various metadata here to
be overridable by src.conf?

That is, by default, the time, user, host, etc, are taken from
the local environment, but src.conf variables can override them
to produce more predictable results.

Tim




More information about the freebsd-arch mailing list