From: Gilles Chanteperdrix <gilles.chanteperdrix@xenomai.org>
To: buildroot@busybox.net
Subject: [Buildroot] [PATCH 09/34] reproducibility/libglib2: allow removing codegen
Date: Sat, 14 May 2016 15:34:42 +0200 [thread overview]
Message-ID: <20160514133442.GE27354@hermes.click-hack.org> (raw)
In-Reply-To: <a5ff4b5b-d255-17d5-1393-d16b72965482@mind.be>
On Thu, May 12, 2016 at 10:05:36PM +0200, Arnout Vandecappelle wrote:
> On 05/10/16 21:42, Gilles Chanteperdrix wrote:
> > On Tue, May 10, 2016 at 01:40:30AM +0200, Arnout Vandecappelle wrote:
> >> On 05/08/16 22:25, Gilles Chanteperdrix wrote:
> >>> On Sat, May 07, 2016 at 11:04:25PM +0200, Arnout Vandecappelle wrote:
> >>>> On 04/30/16 09:49, Gilles Chanteperdrix wrote:
> >>>>> But this is not sufficient, compiling the python bytecode with the
> >>>>> same interpreter in different environments yields different binaries,
> >>>>
> >>>> Er, this is worrisome... You are saying that we don't have a chance in hell of
> >>>> generating reproducible python bytecode?
> >>>
> >>> I am not a python specialist, but it seems to me four bytes in the
> >>> python generated bytecode are the build timestamp, so unless there
> >>> is a way to override it with SOURCE_DATE_EPOCH, I do not see that
> >>> possible.
> >>
> >> I've checked the docs. What is saved is the timestamp of the .py file, not the
> >> build time.
> >
> > Mmmm I don't remember. I would run a compilation manually, twice at
> > a different time, to make sure that the problem is only the file
> > date.
>
> I did that - admittedly with just a few seconds difference. Both in
> python2.7.11 and python3.5, they were identical when compiling a second time,
> and different after touch'ing.
>
> >
> >>
> >> I think it would make sense to run 'touch -d @$(SOURCE_DATE_EPOCH)' on all
> >> files after patching to capture this aspect. This was also proposed for
> >> Fedora[1] (though there it was only for the .py files). Not sure what happened
> >> with that proposal in the end.
> >
> > I think I tried running "touch" before compiling, unfortunately
> > playing with file dates before running "make" is a bit like playing
> > with fire. For instance with autotools based projects for which
> > autoreconf is not run, the project may use versions of the autotools
> > not installed on the user machine, and because of file dates may
> > want to rerun autoconf or autmake and whine because the right
> > versions are not available. Doing this only for .py files is much
> > more reasonable.
>
> I tested this as well, with make-3.81 and make-4.04. Both of them do _not_
> rebuild if the timestamps are identical. And since the idea is to use touch -d
> @$(SOURCE_DATE_EPOCH), all timestamps will be identical.
You checked both the pyo and the pyc?
>
> But it does indeed mean that if a package has a generated file with an earlier
> date than the source files, it will now suddenly no longer be
> rebuilt.
Yes, that is another problem. But I tried it, and this is not the
one I had, the one I had was the contrary: the dates made make want
to rebuild some files (the autotools/automake files), whereas the
right versions of autoconf and automake were not installed, this was
a package that did not run autoreconf. The "make" tool is completely
based on file dates, so again, I think messing with file dates
before running make is a bad idea.
--
Gilles.
https://click-hack.org
next prev parent reply other threads:[~2016-05-14 13:34 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 [this message]
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 ` [Buildroot] Reproducible builds Thomas Petazzoni
2016-05-07 20:55 ` 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=20160514133442.GE27354@hermes.click-hack.org \
--to=gilles.chanteperdrix@xenomai.org \
--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