From owner-freebsd-arch@freebsd.org Wed Dec 2 20:16:07 2015 Return-Path: Delivered-To: freebsd-arch@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id BBFA2A3F2F0 for ; Wed, 2 Dec 2015 20:16:07 +0000 (UTC) (envelope-from ian@freebsd.org) Received: from erouter6.ore.mailhop.org (erouter6.ore.mailhop.org [54.187.213.119]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 9364F1D24 for ; Wed, 2 Dec 2015 20:16:07 +0000 (UTC) (envelope-from ian@freebsd.org) Received: from ilsoft.org (unknown [73.34.117.227]) by outbound3.ore.mailhop.org (Halon Mail Gateway) with ESMTPSA; Wed, 2 Dec 2015 20:13:55 +0000 (UTC) Received: from rev (rev [172.22.42.240]) by ilsoft.org (8.14.9/8.14.9) with ESMTP id tB2KEvYd017492; Wed, 2 Dec 2015 13:14:57 -0700 (MST) (envelope-from ian@freebsd.org) Message-ID: <1449087297.1262.82.camel@freebsd.org> Subject: Re: Removing build metadata, for reproducible kernel builds From: Ian Lepore To: John Baldwin , freebsd-arch@freebsd.org Cc: Ed Maste Date: Wed, 02 Dec 2015 13:14:57 -0700 In-Reply-To: <1920964.NJpSim6qZF@ralph.baldwin.cx> References: <1920964.NJpSim6qZF@ralph.baldwin.cx> Content-Type: text/plain; charset="us-ascii" X-Mailer: Evolution 3.16.5 FreeBSD GNOME Team Port Mime-Version: 1.0 Content-Transfer-Encoding: 7bit X-BeenThere: freebsd-arch@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: Discussion related to FreeBSD architecture List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 02 Dec 2015 20:16:07 -0000 On Wed, 2015-12-02 at 12:03 -0800, John Baldwin wrote: > On Wednesday, December 02, 2015 05:36:52 PM Ed Maste 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@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. > > As I noted in the review, this will break kgdb -n (and possibly > crashinfo, > less certain about that). Keeping the path (which should not vary if > you > build out of the same tree) will be sufficient to let kgdb -n still > work > (though it may need some changes to recognize both formats). > > Keeping the path also means that 'uname -a' still tells you which > kernel > config you are running (I assume you aren't changing 'uname -i', but > 'uname -a' doesn't include 'uname -i'). > But in the kinds of venues where reproducible builds are most important, such as creating images that are part of commercial products, the build path is one of the things most likely to change between builds and least likely to be significant in terms of any differences to the conents of the build. Likewise the hostname of the build machine, which it appears is still in the uname output. -- Ian