[Reproducible-builds] Bug#774498: base-files: please make the build reproducible

Santiago Vila sanvila at unex.es
Fri May 15 20:27:11 UTC 2015

On Fri, May 15, 2015 at 10:07:34PM +0200, Jérémy Bobbio wrote:
> Hi!
> Santiago Vila:
> > I'm thinking about the minimal "find" command which does the trick.
> > 
> > The proposed line says this:
> > 
> > +       find debian/tmp -depth -newermt '$(BUILD_DATE)' -print0 | \
> > +               xargs -0r touch --no-dereference --date='$(BUILD_DATE)'
> > 
> > Why -depth?
> > 
> > If I were to remove files or directories, the timestamps of the parent
> > directories would be affected. A simple touch, however, does only
> > touch what I tell it to touch, so I don't see why the -depth switch is
> > required here. Do other systems behave differently? kFreeBSD? Hurd?
> Indeed. I was convinced that touch would change the directory mtime, but
> that's actually not true. Thanks for noticing. We shall update doc and
> patches, now. :D
> > Then we have the -print0 and xargs -0. This is of course needed in the
> > general sense, but if this package had any files containing spaces in
> > their filename I would consider it undesirable and would prefer to fix
> > the package first (in this case I'm only talking about this package).
> Your call. debhelper uses \0 to stay compatible in most situation and
> I'm following the trend.
> > Finally, what would happen if I remove -r from xargs? It would FTBFS
> > if the list of files to be touched is empty, which means the package
> > is being built in the past (before the date in the changelog). Would
> > this be considered as a real FTBFS or as a false positive?
> I think this depend on your package. This also comes from debhelper as
> we don't want to introduce FTBFS because of changes to make builds
> reproducible.


What I did at the end was just to remove -depth. I've also used -h
instead of --no-dereference, but that's a matter of personal taste, as
it's completely equivalent.


More information about the Reproducible-builds mailing list