[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [XEN PATCH 2/5] docs: set DATE to SOURCE_DATE_EPOCH if available



On Montag, 30. Dezember 2024 22:38:24 CET Andrew Cooper wrote:
> On 30/12/2024 9:00 pm, Maximilian Engelhardt wrote:
> > Use the solution described in [1] to replace the call to the 'date'
> > command with a version that uses SOURCE_DATE_EPOCH if available. This
> > is needed for reproducible builds.
> > 
> > The -d "@..." syntax was introduced in GNU date about 2005 (but only
> > added to the docuemntation in 2011), so I assume a version supporting
> > this syntax is available, if SOURCE_DATE_EPOCH is defined. If
> > SOURCE_DATE_EPOCH is not defined, nothing changes with respect to the
> > current behavior.
> > 
> > [1] https://reproducible-builds.org/docs/source-date-epoch/
> > 
> > Signed-off-by: Maximilian Engelhardt <maxi@xxxxxxxxxxxxx>
> > ---
> > 
> >  docs/Makefile | 8 +++++++-
> >  1 file changed, 7 insertions(+), 1 deletion(-)
> > 
> > diff --git a/docs/Makefile b/docs/Makefile
> > index b30cc619f8..beba02a94f 100644
> > --- a/docs/Makefile
> > +++ b/docs/Makefile
> > @@ -3,7 +3,13 @@ include $(XEN_ROOT)/Config.mk
> > 
> >  -include $(XEN_ROOT)/config/Docs.mk
> >  
> >  VERSION            := $(shell $(MAKE) -C $(XEN_ROOT)/xen 
> > --no-print-directory
> >  xenversion)> 
> > -DATE               := $(shell date +%Y-%m-%d)
> > +
> > +DATE_FMT   := +%Y-%m-%d
> > +ifdef SOURCE_DATE_EPOCH
> > +DATE               := $(shell date -u -d "@$(SOURCE_DATE_EPOCH)" 
> > "$(DATE_FMT)"
> > 2>/dev/null || date -u -r "$(SOURCE_DATE_EPOCH)" "$(DATE_FMT)"
> > 2>/dev/null || date -u "$(DATE_FMT)") +else
> > +DATE               := $(shell date "$(DATE_FMT)")
> > +endif
> > 
> >  DOC_ARCHES      := arm x86_32 x86_64
> >  MAN_SECTIONS    := 1 5 7 8
> 
> While this looks fine for docs, there's another (identical) use of date
> in tools/firmware/hvmloader/Makefile, as well as some differing uses to
> construct XEN_BUILD_{DATE,TIME}.  INSTALL talks about VGABIOS_REL_DATE too.
> 
> Does something like this work for you?  It seems to DTRT for SMBIOS.  It
> needs adapting a bit more for vgabios and Xen, but I think having one
> common $(date) is going to be better than ad-hoc ones over the tree.
> 
> ~Andrew

Hi Andrew,

Thanks for your quick reply. Your patch looks fine to me. You can add my 
Tested-by.

We currently use "export XEN_BUILD_{DATE,TIME}=...", "export 
SMBIOS_REL_DATE=..." and "export VGABIOS_REL_DATE=..." for building xen in 
Debian, so we did not run into reproducibility problems with these. But having 
them combined to all use SOURCE_DATE_EPOCH if available sounds like a good 
idea and would also benefit other downstream users.

Maxi

Attachment: signature.asc
Description: This is a digitally signed message part.


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.