From mboxrd@z Thu Jan 1 00:00:00 1970 From: Leo Famulari Subject: Re: Reproducible build: linux-libre kernel Date: Wed, 30 Mar 2016 11:56:46 -0400 Message-ID: <20160330155646.GA8124@jasmine> References: <0d3d04dd006e640ed0fd201e6ec73fb1@openmailbox.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:48049) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1alIUF-0004vt-Fb for guix-devel@gnu.org; Wed, 30 Mar 2016 11:56:52 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1alIU9-0007Ij-Mj for guix-devel@gnu.org; Wed, 30 Mar 2016 11:56:51 -0400 Received: from out4-smtp.messagingengine.com ([66.111.4.28]:57886) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1alIU9-0007HN-GF for guix-devel@gnu.org; Wed, 30 Mar 2016 11:56:45 -0400 Content-Disposition: inline In-Reply-To: <0d3d04dd006e640ed0fd201e6ec73fb1@openmailbox.org> List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org Sender: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org To: rain1@openmailbox.org Cc: guix-devel@gnu.org On Wed, Mar 30, 2016 at 01:16:13PM +0100, rain1@openmailbox.org wrote: > Hello! > > I noticed that the linux-libre package we have is not a reproducible build > using the command: guix build linux-libre --check --no-substitutes > > I did a bit of research into this these posts and blogs were helpful, as > well as the mempo project: > * > * > * > > So I've added these tweaks, performed the build twice and it seems to be > reproducible now! Would anyone like to test it and see if they do get the > same build? (On x86_64) Wow, thanks for taking this on! I'm testing it now... it might take a little while. > (let* ((version "4.5") > (build-phase > '(lambda* (#:key system inputs #:allow-other-keys #:rest args) > + ;; Tuning for a reproducible build > + (setenv "KCONFIG_NOTIMESTAMP" "1") > + (setenv "KBUILD_BUILD_TIMESTAMP" "0") For these timestamps, can you set them to value of the environment variable SOURCE_DATE_EPOCH? [0] If you search the package tree you will find a few examples. This variable is set automatically in the build environment. > + (setenv "KBUILD_BUILD_USER" "guix") > + (setenv "KBUILD_BUILD_HOST" "guix") Can you say if there is a canonical user name for this sort of thing, as with SOURCE_DATE_EPOCH for dates? The site in [0] could be a good resource. There is also the 'notes' git repo used to catalogue reproducibility problems and solutions [1]. [0] https://reproducible-builds.org/specs/source-date-epoch/ [1] https://anonscm.debian.org/cgit/reproducible/notes.git