From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
To: buildroot@busybox.net
Subject: [Buildroot] Reproducible builds
Date: Sat, 7 May 2016 15:11:17 +0200 [thread overview]
Message-ID: <20160507151117.33428d9f@free-electrons.com> (raw)
In-Reply-To: <20160430074358.GE1781@hermes.click-hack.org>
Hello Gilles,
On Sat, 30 Apr 2016 09:43:58 +0200, Gilles Chanteperdrix wrote:
> some time ago, I worked on getting reproducible builds for
> buildroot. I take "reproducible builds" in a broader sense than what
> Debian does for instance: in the case of buildroot, we would like
> the built binaries to be as independent of the build environment as
> possible, so that in addition to getting identical binaries when
> building twice on the same machine, we also get identical binaries
> when building on a different distribution.
First of all, thanks a lot for working on this! It's definitely an
interesting and useful topic.
> So far, I got
> reproducible builds for a (relatively reduced) subset of buildroot
> packages, on a Debian jessie and Slackware 14.1, with as many
> differences in the distributions configuration as I could find
> (timezone, locale, date, time, etc... even the awk flavor used). The
> only thing I have to get identical is the build path, this is what
> Debian does, a patch has been proposed a long time ago to allow gcc
> to avoid the dependence between the __FILE__ macro and the build
> path, but it does not seem to have been merged:
> https://mail-index.netbsd.org/tech-toolchain/2009/02/17/msg000577.html
>
> I expected to be able to clean up the patches before submission (as
> many patches do the same thing, like overriding the __DATE__ and
> __TIME__ macros in order to avoid depending on the build time, so
> this could probably be made generic by buildroot core), but I am not
> going to have time soon to do that, so here come the patches as they
> are, in order to spark discussion and gather remarks, before I have
> time to do more. The patches are based on the 2015.11.1 release.
Indeed, as you say yourself, some of your patches are not mergeable
as-is. However, several of them are not related, or directly related to
reproducible builds (some of your patches add new packages, etc.).
One first thing that is missing is your Signed-off-by line on the
patches, which we require for all Buildroot contributions (exactly like
for the Linux kernel).
Another thing that worries me is all the patches/modifications needed
by each package to make their build "reproducible". Do you expect such
patches to be merged in the respective upstream projects?
Finally, I'm also concerned by the testability of the reproducible
build feature. To make sure such a feature work, we would need to do
some automated build testing of the same configuration in various
environments/configurations and ensure they provide the same output.
This is clearly not impossible to do, but there's quite some work
involved to set up such an infrastructure.
I'll review some of your patches (when it makes sense). However, I'll
mark them all as "RFC" in our patch tracking system: since none of them
have a Signed-off-by line, we can't even take them. It would be good if
you could resend first with your SoB line the patches that are not
related to the reproducible builds. It would help reduce your stack of
patches.
Thanks!
Thomas
--
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
next prev parent reply other threads:[~2016-05-07 13:11 UTC|newest]
Thread overview: 91+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-04-30 7:43 [Buildroot] Reproducible builds Gilles Chanteperdrix
2016-04-30 7:48 ` [Buildroot] [PATCH 01/34] reproducibility: introduce config knob Gilles Chanteperdrix
2016-04-30 7:48 ` [Buildroot] [PATCH 02/34] reproducibility: override locale and timezone Gilles Chanteperdrix
2016-05-07 13:15 ` Thomas Petazzoni
2016-05-07 18:54 ` Arnout Vandecappelle
2016-06-14 13:53 ` Gilles Chanteperdrix
2016-04-30 7:48 ` [Buildroot] [PATCH 03/34] reproducibility: generate SOURCE_DATE_EPOCH Gilles Chanteperdrix
2016-05-07 13:20 ` Thomas Petazzoni
2016-05-07 21:00 ` Arnout Vandecappelle
2016-05-08 20:22 ` Gilles Chanteperdrix
2016-05-09 23:28 ` Arnout Vandecappelle
2016-05-11 7:17 ` Gilles Chanteperdrix
2016-04-30 7:49 ` [Buildroot] [PATCH 04/34] reproducibility: make rootfs.tar reproducible Gilles Chanteperdrix
2016-05-07 13:23 ` Thomas Petazzoni
2016-05-07 19:51 ` Arnout Vandecappelle
2016-05-08 20:17 ` Gilles Chanteperdrix
2016-05-09 23:29 ` Arnout Vandecappelle
2016-04-30 7:49 ` [Buildroot] [PATCH 05/34] reproducibility/linux: override build timestamp Gilles Chanteperdrix
2016-05-07 20:52 ` Arnout Vandecappelle
2016-04-30 7:49 ` [Buildroot] [PATCH 06/34] reproducibility/busybox: disable build timestamps Gilles Chanteperdrix
2016-04-30 7:49 ` [Buildroot] [PATCH 07/34] reproducibility/libgcrypt: override timestamps Gilles Chanteperdrix
2016-05-07 13:24 ` Thomas Petazzoni
2016-05-07 21:01 ` Arnout Vandecappelle
2016-04-30 7:49 ` [Buildroot] [PATCH 08/34] reproducibility/libgpg-error: " Gilles Chanteperdrix
2016-04-30 7:49 ` [Buildroot] [PATCH 09/34] reproducibility/libglib2: allow removing codegen Gilles Chanteperdrix
2016-05-07 13:28 ` Thomas Petazzoni
2016-05-08 12:51 ` Gustavo Zacarias
2016-05-08 12:56 ` Thomas Petazzoni
2016-05-07 21:04 ` Arnout Vandecappelle
2016-05-08 20:25 ` Gilles Chanteperdrix
2016-05-09 23:40 ` Arnout Vandecappelle
2016-05-10 19:42 ` Gilles Chanteperdrix
2016-05-12 20:05 ` Arnout Vandecappelle
2016-05-14 13:34 ` Gilles Chanteperdrix
2016-05-14 23:48 ` Arnout Vandecappelle
2016-06-14 14:18 ` Gilles Chanteperdrix
2016-04-30 7:49 ` [Buildroot] [PATCH 10/34] reproducibility/sysstat: override gcc macros Gilles Chanteperdrix
2016-05-07 21:07 ` Arnout Vandecappelle
2016-04-30 7:49 ` [Buildroot] [PATCH 11/34] reproducibility/vim: make vim reproducible Gilles Chanteperdrix
2016-05-07 13:30 ` Thomas Petazzoni
2016-05-08 20:26 ` Gilles Chanteperdrix
2016-04-30 7:49 ` [Buildroot] [PATCH 12/34] reproducibility/wireshark: remove documentation Gilles Chanteperdrix
2016-05-07 13:30 ` Thomas Petazzoni
2016-04-30 7:49 ` [Buildroot] [PATCH 13/34] reproducibility/libtool: fix reproducibility issues Gilles Chanteperdrix
2016-05-07 20:22 ` Thomas Petazzoni
2016-05-08 20:15 ` Gilles Chanteperdrix
2016-04-30 7:49 ` [Buildroot] [PATCH 14/34] reproducibility/python: also remove pyo files Gilles Chanteperdrix
2016-05-07 20:24 ` Thomas Petazzoni
2016-04-30 7:49 ` [Buildroot] [PATCH 15/34] reproducibility/gzip: avoid gzip timestamp in rootfs.tar.gz Gilles Chanteperdrix
2016-05-07 20:24 ` Thomas Petazzoni
2016-04-30 7:49 ` [Buildroot] [PATCH 16/34] reproducibility/lzo: forbid lzo with reproducible builds Gilles Chanteperdrix
2016-05-07 20:25 ` Thomas Petazzoni
2016-05-12 20:10 ` Arnout Vandecappelle
2016-04-30 7:49 ` [Buildroot] [PATCH 17/34] reproducibility/libnspr: override build timestamps Gilles Chanteperdrix
2016-05-07 20:27 ` Thomas Petazzoni
2016-05-08 20:32 ` Gilles Chanteperdrix
2016-04-30 7:49 ` [Buildroot] [PATCH 18/34] readline: fix installed libraries permission Gilles Chanteperdrix
2016-04-30 7:49 ` [Buildroot] [PATCH 19/34] reproducibility/python: make python reproducible Gilles Chanteperdrix
2016-05-07 20:29 ` Thomas Petazzoni
2016-05-08 20:19 ` Gilles Chanteperdrix
2016-04-30 7:49 ` [Buildroot] [PATCH 20/34] reproducibility/iproute2: do not rely on host directories Gilles Chanteperdrix
2016-04-30 7:49 ` [Buildroot] [PATCH 21/34] hddtemp: add Gilles Chanteperdrix
2016-05-07 20:31 ` Thomas Petazzoni
2016-05-09 7:38 ` Peter Korsgaard
2016-05-09 19:58 ` Gilles Chanteperdrix
2016-04-30 7:49 ` [Buildroot] [PATCH 22/34] High availability: add packages Gilles Chanteperdrix
2016-05-07 20:38 ` Thomas Petazzoni
2016-05-08 20:20 ` Gilles Chanteperdrix
2016-04-30 7:49 ` [Buildroot] [PATCH 23/34] pkg-download: allow git+ssh URLs Gilles Chanteperdrix
2016-05-07 20:39 ` Thomas Petazzoni
2016-05-09 6:41 ` Peter Korsgaard
2016-05-09 19:56 ` Gilles Chanteperdrix
2016-04-30 7:49 ` [Buildroot] [PATCH 24/34] grub2: really disable liblzma Gilles Chanteperdrix
2016-04-30 7:49 ` [Buildroot] [PATCH 25/34] grub2: allow full install (for installer images) Gilles Chanteperdrix
2016-04-30 7:49 ` [Buildroot] [PATCH 26/34] reproducibility: cpio: avoid embedding file dates in archive Gilles Chanteperdrix
2016-04-30 7:49 ` [Buildroot] [PATCH 27/34] package/cpio: allow generating host-cpio Gilles Chanteperdrix
2016-04-30 7:49 ` [Buildroot] [PATCH 28/34] reproducibility/fs/cpio: generate archive with host-cpio Gilles Chanteperdrix
2016-04-30 7:49 ` [Buildroot] [PATCH 29/34] cdrkit: add patch allowing to set creation date Gilles Chanteperdrix
2016-04-30 7:49 ` [Buildroot] [PATCH 30/34] reproducibility/fs/iso9660: reproducible iso images Gilles Chanteperdrix
2016-04-30 7:49 ` [Buildroot] [PATCH 31/34] reproducible/syslinux: make syslinux build reproducible Gilles Chanteperdrix
2016-04-30 7:49 ` [Buildroot] [PATCH 32/34] reproducible/iso9660: generate reproducible isos Gilles Chanteperdrix
2016-04-30 7:49 ` [Buildroot] [PATCH 33/34] reproducible/cpio: generate reproducible cpio archives Gilles Chanteperdrix
2016-04-30 7:49 ` [Buildroot] [PATCH 34/34] reproducible/grub2: get a reproducible grub2 full installation Gilles Chanteperdrix
2016-05-07 13:14 ` [Buildroot] [PATCH 01/34] reproducibility: introduce config knob Thomas Petazzoni
2016-05-09 7:42 ` Peter Korsgaard
2016-05-09 12:53 ` Thomas Petazzoni
2016-05-09 13:01 ` Peter Korsgaard
2016-05-09 13:11 ` Thomas Petazzoni
2016-05-07 13:11 ` Thomas Petazzoni [this message]
2016-05-07 20:55 ` [Buildroot] Reproducible builds Arnout Vandecappelle
2016-05-08 5:51 ` Thomas Petazzoni
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20160507151117.33428d9f@free-electrons.com \
--to=thomas.petazzoni@free-electrons.com \
--cc=buildroot@busybox.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox