[rb-general] [Libosinfo] [PATCH osinfo-db] Use SOURCE_DATE_EPOCH to make build reproducible

Chris Lamb lamby at debian.org
Mon Apr 24 09:50:31 CEST 2017


[Adding rb-general at lists.reproducible-builds.org to CC]

Hi Fabiano,

> > using a fixed timestamp when the variable is set
> > ---
> >  Makefile | 6 +++++-
> >  1 file changed, 5 insertions(+), 1 deletion(-)
> >
> > diff --git a/Makefile b/Makefile
> > index 48d2951..1846f7a 100644
> > --- a/Makefile
> > +++ b/Makefile
> > @@ -1,7 +1,11 @@
> >
> >  VPATH = .
> >
> > -TODAY = $(shell date +"%Y%m%d")
> > +ifdef SOURCE_DATE_EPOCH
> > +    TODAY = $(shell date --utc --date="@$(SOURCE_DATE_EPOCH)" +"%Y%m%d")
> > +else
> > +    TODAY = $(shell date +"%Y%m%d")
> > +endif
> >
> >  OSINFO_DB_EXPORT = osinfo-db-export
> >  OSINFO_DB_IMPORT = osinfo-db-import
> > --
> > 2.11.0
> >
> > _______________________________________________
> > Libosinfo mailing list
> > Libosinfo at redhat.com
> > https://www.redhat.com/mailman/listinfo/libosinfo
> 
> Chris,
> 
> Thanks for the patch. Would you mind adding some notes to the README
> just to make as explicit as possible that someone who may be
> interested can generate a build from a specific date using
> SOURCE_DATE_EPOCH env var (and an example on how to do so)?

Sure, please just append the following:

   To build libosinfo reproduciblity, you should export
   the SOURCE_DATE_EPOCH[0] environment variable to the
   build system. For example:

     $ export SOURCE_DATE_EPOCH="$(date +%s)"
     $ ./configure [..]
     $ make
     […]
  
   [0] https://reproducible-builds.org/specs/source-date-epoch/

It seems more optimal to link to the specification rather than to
duplicate a lot of the info (eg. should be in integer, etc. etc.)
in every projects' documentation.


Regards,

-- 
      ,''`.
     : :'  :     Chris Lamb
     `. `'`      lamby at debian.org / chris-lamb.co.uk
       `-


More information about the rb-general mailing list