* [XEN PATCH 0/5] Fixes for reproducible builds and other small fixes
@ 2024-12-30 21:00 Maximilian Engelhardt
2024-12-30 21:00 ` [XEN PATCH 1/5] docs/man/xen-vbd-interface.7: Provide properly-formatted NAME section Maximilian Engelhardt
` (5 more replies)
0 siblings, 6 replies; 12+ messages in thread
From: Maximilian Engelhardt @ 2024-12-30 21:00 UTC (permalink / raw)
To: xen-devel
Cc: Maximilian Engelhardt, Anthony PERARD, Jan Beulich, Andrew Cooper,
Roger Pau Monné, Juergen Gross
This series is a bunch of fixes we found while packaging Xen in Debian
and we believe they should be best addressed upstream.
We have been carrying the first patch for a long time in Debian, but it
seems it never was applied upstream. It's an addition to
"docs/man: Provide properly-formatted NAME sections"
(commit 423c4def1f7a01eeff56fa70564180640ef3af43).
Patch two and three are fixes for reproducibility issues that I found
using our testing gear in Debian.
The last two patches are trivial fixes correcting two common typos found
by Debian tools.
Thanks
Ian Jackson (1):
docs/man/xen-vbd-interface.7: Provide properly-formatted NAME section
Maximilian Engelhardt (4):
docs: set DATE to SOURCE_DATE_EPOCH if available
xen/arch/x86: make objdump output user locale agnostic
docs/man: fix typo: hexidecimal -> hexadecimal
tools: fix typo: subsytem -> subsystem
docs/Makefile | 8 +++++++-
docs/man/xen-vbd-interface.7.pandoc | 5 +++++
docs/man/xl-pci-configuration.5.pod | 2 +-
tools/include/xenctrl.h | 2 +-
tools/misc/xen-memshare.c | 2 +-
xen/arch/x86/arch.mk | 2 +-
6 files changed, 16 insertions(+), 5 deletions(-)
--
2.39.5
^ permalink raw reply [flat|nested] 12+ messages in thread* [XEN PATCH 1/5] docs/man/xen-vbd-interface.7: Provide properly-formatted NAME section 2024-12-30 21:00 [XEN PATCH 0/5] Fixes for reproducible builds and other small fixes Maximilian Engelhardt @ 2024-12-30 21:00 ` Maximilian Engelhardt 2024-12-30 21:00 ` [XEN PATCH 2/5] docs: set DATE to SOURCE_DATE_EPOCH if available Maximilian Engelhardt ` (4 subsequent siblings) 5 siblings, 0 replies; 12+ messages in thread From: Maximilian Engelhardt @ 2024-12-30 21:00 UTC (permalink / raw) To: xen-devel; +Cc: Ian Jackson, Anthony PERARD, Maximilian Engelhardt From: Ian Jackson <ian.jackson@citrix.com> This manpage was omitted from docs/man: Provide properly-formatted NAME sections (423c4def1f7a01eeff56fa70564180640ef3af43) because I was previously building with markdown not installed. Signed-off-by: Ian Jackson <ian.jackson@citrix.com> Tested-by: Maximilian Engelhardt <maxi@daemonizer.de> --- docs/man/xen-vbd-interface.7.pandoc | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/docs/man/xen-vbd-interface.7.pandoc b/docs/man/xen-vbd-interface.7.pandoc index ba0d159dfa..2f18d5b72e 100644 --- a/docs/man/xen-vbd-interface.7.pandoc +++ b/docs/man/xen-vbd-interface.7.pandoc @@ -1,3 +1,8 @@ +Name +---- + +xen-vbd-interface - Xen paravirtualised block device protocol + Xen guest interface ------------------- -- 2.39.5 ^ permalink raw reply related [flat|nested] 12+ messages in thread
* [XEN PATCH 2/5] docs: set DATE to SOURCE_DATE_EPOCH if available 2024-12-30 21:00 [XEN PATCH 0/5] Fixes for reproducible builds and other small fixes Maximilian Engelhardt 2024-12-30 21:00 ` [XEN PATCH 1/5] docs/man/xen-vbd-interface.7: Provide properly-formatted NAME section Maximilian Engelhardt @ 2024-12-30 21:00 ` Maximilian Engelhardt 2024-12-30 21:38 ` Andrew Cooper 2024-12-30 21:00 ` [XEN PATCH 3/5] xen/arch/x86: make objdump output user locale agnostic Maximilian Engelhardt ` (3 subsequent siblings) 5 siblings, 1 reply; 12+ messages in thread From: Maximilian Engelhardt @ 2024-12-30 21:00 UTC (permalink / raw) To: xen-devel; +Cc: Maximilian Engelhardt, Anthony PERARD 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@daemonizer.de> --- 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 -- 2.39.5 ^ permalink raw reply related [flat|nested] 12+ messages in thread
* Re: [XEN PATCH 2/5] docs: set DATE to SOURCE_DATE_EPOCH if available 2024-12-30 21:00 ` [XEN PATCH 2/5] docs: set DATE to SOURCE_DATE_EPOCH if available Maximilian Engelhardt @ 2024-12-30 21:38 ` Andrew Cooper 2024-12-30 22:28 ` Maximilian Engelhardt 0 siblings, 1 reply; 12+ messages in thread From: Andrew Cooper @ 2024-12-30 21:38 UTC (permalink / raw) To: Maximilian Engelhardt, xen-devel; +Cc: Anthony PERARD [-- Attachment #1: Type: text/plain, Size: 1886 bytes --] 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@daemonizer.de> > --- > 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 [-- Attachment #2: SOURCE_DATE_EPOCH.patch --] [-- Type: text/x-patch, Size: 1689 bytes --] diff --git a/Config.mk b/Config.mk index fa0414055b93..0931e702b025 100644 --- a/Config.mk +++ b/Config.mk @@ -141,6 +141,14 @@ export XEN_HAS_BUILD_ID=y build_id_linker := --build-id=sha1 endif +# Wrap date(1) to use SOURCE_DATE_EPOCH if set the environment. +# See https://reproducible-builds.org/docs/source-date-epoch/ +ifdef SOURCE_DATE_EPOCH +date = $(shell date -u -d "@$(SOURCE_DATE_EPOCH)" "$(1)" 2>/dev/null || date -u -r "$(SOURCE_DATE_EPOCH)" "$(1)" 2>/dev/null || date -u "$(1)") +else +date = $(shell date "$(1)") +endif + define buildmakevars2shellvars export PREFIX="$(prefix)"; \ export XEN_SCRIPT_DIR="$(XEN_SCRIPT_DIR)"; \ diff --git a/docs/Makefile b/docs/Makefile index b30cc619f8dd..95dc83ff9c59 100644 --- a/docs/Makefile +++ b/docs/Makefile @@ -3,7 +3,7 @@ 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 := $(call date,+%Y-%m-%d) DOC_ARCHES := arm x86_32 x86_64 MAN_SECTIONS := 1 5 7 8 diff --git a/tools/firmware/hvmloader/Makefile b/tools/firmware/hvmloader/Makefile index c7bc4006578a..1e77b014f614 100644 --- a/tools/firmware/hvmloader/Makefile +++ b/tools/firmware/hvmloader/Makefile @@ -23,7 +23,7 @@ include $(XEN_ROOT)/tools/firmware/Rules.mk ld-option = $(shell if $(LD) -v $(1) >/dev/null 2>&1; then echo y; else echo n; fi) # SMBIOS spec requires format mm/dd/yyyy -SMBIOS_REL_DATE ?= $(shell date +%m/%d/%Y) +SMBIOS_REL_DATE ?= $(call date,+%m/%d/%Y) CFLAGS += $(CFLAGS_xeninclude) -fno-pic -mregparm=3 ^ permalink raw reply related [flat|nested] 12+ messages in thread
* Re: [XEN PATCH 2/5] docs: set DATE to SOURCE_DATE_EPOCH if available 2024-12-30 21:38 ` Andrew Cooper @ 2024-12-30 22:28 ` Maximilian Engelhardt 2025-01-01 19:03 ` Maximilian Engelhardt 0 siblings, 1 reply; 12+ messages in thread From: Maximilian Engelhardt @ 2024-12-30 22:28 UTC (permalink / raw) To: xen-devel, Andrew Cooper; +Cc: Anthony PERARD [-- Attachment #1: Type: text/plain, Size: 2515 bytes --] 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@daemonizer.de> > > --- > > > > 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 #2: This is a digitally signed message part. --] [-- Type: application/pgp-signature, Size: 833 bytes --] ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [XEN PATCH 2/5] docs: set DATE to SOURCE_DATE_EPOCH if available 2024-12-30 22:28 ` Maximilian Engelhardt @ 2025-01-01 19:03 ` Maximilian Engelhardt 2025-01-13 13:46 ` Andrew Cooper 0 siblings, 1 reply; 12+ messages in thread From: Maximilian Engelhardt @ 2025-01-01 19:03 UTC (permalink / raw) To: xen-devel, Andrew Cooper; +Cc: Anthony PERARD [-- Attachment #1.1: Type: text/plain, Size: 3504 bytes --] On Montag, 30. Dezember 2024 23:28:42 CET Maximilian Engelhardt wrote: > 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@daemonizer.de> > > > --- > > > > > > 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 Hi Andrew, I extended your patch to also cover the other uses of date. Please check if this look reasonable as I'm not an expert in makefiles. It seems to DTRT in the cases I tested. What I changed compared to your patch: * Add LC_ALL=C to all date commands. This was also missing in my original patch, but I think it's a good thing to do and XEN_BUILD_{DATE,TIME} already do it. * Change the quoting to allow calling the date command without any additional (formatting) arguments. * Add an include of Config.mk to tools/firmware/vgabios/Makefile and moved the definition of XEN_BUILD_{DATE,TIME} further down in xen/Makefile to have the newly defined date wrapper available. Does this look reasonable or are there parts that should be done differently? Thanks, Maxi [-- Attachment #1.2: SOURCE_DATE_EPOCH_full.patch --] [-- Type: text/x-patch, Size: 3641 bytes --] diff --git a/Config.mk b/Config.mk index fa0414055b..9188fc9053 100644 --- a/Config.mk +++ b/Config.mk @@ -141,6 +141,14 @@ export XEN_HAS_BUILD_ID=y build_id_linker := --build-id=sha1 endif +# Wrap date(1) to use SOURCE_DATE_EPOCH if set the environment. +# See https://reproducible-builds.org/docs/source-date-epoch/ +ifdef SOURCE_DATE_EPOCH +date = $(shell LC_ALL=C date -u -d "@$(SOURCE_DATE_EPOCH)" $(1) 2>/dev/null || LC_ALL=C date -u -r "$(SOURCE_DATE_EPOCH)" $(1) 2>/dev/null || LC_ALL=C date -u $(1)) +else +date = $(shell LC_ALL=C date $(1)) +endif + define buildmakevars2shellvars export PREFIX="$(prefix)"; \ export XEN_SCRIPT_DIR="$(XEN_SCRIPT_DIR)"; \ diff --git a/docs/Makefile b/docs/Makefile index b30cc619f8..ca9fd726d3 100644 --- a/docs/Makefile +++ b/docs/Makefile @@ -3,7 +3,7 @@ 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 := $(call date,"+%Y-%m-%d") DOC_ARCHES := arm x86_32 x86_64 MAN_SECTIONS := 1 5 7 8 diff --git a/tools/firmware/hvmloader/Makefile b/tools/firmware/hvmloader/Makefile index c7bc400657..cc5dc00498 100644 --- a/tools/firmware/hvmloader/Makefile +++ b/tools/firmware/hvmloader/Makefile @@ -23,7 +23,7 @@ include $(XEN_ROOT)/tools/firmware/Rules.mk ld-option = $(shell if $(LD) -v $(1) >/dev/null 2>&1; then echo y; else echo n; fi) # SMBIOS spec requires format mm/dd/yyyy -SMBIOS_REL_DATE ?= $(shell date +%m/%d/%Y) +SMBIOS_REL_DATE ?= $(call date,"+%m/%d/%Y") CFLAGS += $(CFLAGS_xeninclude) -fno-pic -mregparm=3 diff --git a/tools/firmware/vgabios/Makefile b/tools/firmware/vgabios/Makefile index 3284812fde..db5a2624be 100644 --- a/tools/firmware/vgabios/Makefile +++ b/tools/firmware/vgabios/Makefile @@ -1,3 +1,6 @@ +XEN_ROOT = $(CURDIR)/../../.. +include $(XEN_ROOT)/Config.mk + CC = gcc GCC = gcc @@ -5,7 +8,7 @@ BCC = bcc AS86 = as86 RELEASE = `pwd | sed "s-.*/--"` -VGABIOS_REL_DATE ?= `date '+%d %b %Y'` +VGABIOS_REL_DATE ?= $(call date,"+%d %b %Y") RELVERS = `pwd | sed "s-.*/--" | sed "s/vgabios//" | sed "s/-//"` VGABIOS_DATE = "-DVGABIOS_DATE=\"$(VGABIOS_REL_DATE)\"" diff --git a/xen/Makefile b/xen/Makefile index 2e1a925c84..a2d0795cde 100644 --- a/xen/Makefile +++ b/xen/Makefile @@ -14,15 +14,11 @@ export XEN_WHOAMI ?= $(USER) ifeq ($(origin XEN_DOMAIN), undefined) export XEN_DOMAIN := $(shell ([ -x /bin/dnsdomainname ] && /bin/dnsdomainname) || ([ -x /bin/domainname ] && /bin/domainname || echo [unknown])) endif -ifeq ($(origin XEN_BUILD_DATE), undefined) -export XEN_BUILD_DATE := $(shell LC_ALL=C date) -endif -ifeq ($(origin XEN_BUILD_TIME), undefined) -export XEN_BUILD_TIME := $(shell LC_ALL=C date +%T) -endif ifeq ($(origin XEN_BUILD_HOST), undefined) export XEN_BUILD_HOST := $(shell hostname) endif +# XEN_BUILD_DATE and XEN_BUILD_TIME are set further down, as they depend on +# Config.mk for SOURCE_DATE_EPOCH handling. # Best effort attempt to find a python interpreter, defaulting to Python 3 if # available. Fall back to just `python`. @@ -250,6 +246,13 @@ SRCARCH := $(shell echo $(ARCH) | \ -e 's/riscv.*/riscv/g' -e 's/ppc.*/ppc/g') export ARCH SRCARCH +ifeq ($(origin XEN_BUILD_DATE), undefined) +export XEN_BUILD_DATE := $(call date) +endif +ifeq ($(origin XEN_BUILD_TIME), undefined) +export XEN_BUILD_TIME := $(call date,"+%T") +endif + export CONFIG_SHELL := $(SHELL) export CC CXX LD NM OBJCOPY OBJDUMP ADDR2LINE export YACC = $(if $(BISON),$(BISON),bison) [-- Attachment #2: This is a digitally signed message part. --] [-- Type: application/pgp-signature, Size: 833 bytes --] ^ permalink raw reply related [flat|nested] 12+ messages in thread
* Re: [XEN PATCH 2/5] docs: set DATE to SOURCE_DATE_EPOCH if available 2025-01-01 19:03 ` Maximilian Engelhardt @ 2025-01-13 13:46 ` Andrew Cooper 0 siblings, 0 replies; 12+ messages in thread From: Andrew Cooper @ 2025-01-13 13:46 UTC (permalink / raw) To: Maximilian Engelhardt, xen-devel; +Cc: Anthony PERARD On 01/01/2025 7:03 pm, Maximilian Engelhardt wrote: > On Montag, 30. Dezember 2024 23:28:42 CET Maximilian Engelhardt wrote: >> 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@daemonizer.de> >>>> --- >>>> >>>> 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 > Hi Andrew, > > I extended your patch to also cover the other uses of date. Please check if > this look reasonable as I'm not an expert in makefiles. It seems to DTRT in > the cases I tested. > > What I changed compared to your patch: > > * Add LC_ALL=C to all date commands. This was also missing in my original > patch, but I think it's a good thing to do and XEN_BUILD_{DATE,TIME} already > do it. > > * Change the quoting to allow calling the date command without any additional > (formatting) arguments. > > * Add an include of Config.mk to tools/firmware/vgabios/Makefile and moved the > definition of XEN_BUILD_{DATE,TIME} further down in xen/Makefile to have the > newly defined date wrapper available. > > Does this look reasonable or are there parts that should be done differently? That looks good to me. Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com> ^ permalink raw reply [flat|nested] 12+ messages in thread
* [XEN PATCH 3/5] xen/arch/x86: make objdump output user locale agnostic 2024-12-30 21:00 [XEN PATCH 0/5] Fixes for reproducible builds and other small fixes Maximilian Engelhardt 2024-12-30 21:00 ` [XEN PATCH 1/5] docs/man/xen-vbd-interface.7: Provide properly-formatted NAME section Maximilian Engelhardt 2024-12-30 21:00 ` [XEN PATCH 2/5] docs: set DATE to SOURCE_DATE_EPOCH if available Maximilian Engelhardt @ 2024-12-30 21:00 ` Maximilian Engelhardt 2025-01-06 10:20 ` Jan Beulich 2024-12-30 21:00 ` [XEN PATCH 4/5] docs/man: fix typo: hexidecimal -> hexadecimal Maximilian Engelhardt ` (2 subsequent siblings) 5 siblings, 1 reply; 12+ messages in thread From: Maximilian Engelhardt @ 2024-12-30 21:00 UTC (permalink / raw) To: xen-devel Cc: Maximilian Engelhardt, Jan Beulich, Andrew Cooper, Roger Pau Monné The objdump output is fed to grep, so make sure it doesn't change with different user locales and break the grep parsing. This problem was identified while updating xen in Debian and the fix is needed for generating reproducible builds in varying environments. Signed-off-by: Maximilian Engelhardt <maxi@daemonizer.de> --- xen/arch/x86/arch.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/xen/arch/x86/arch.mk b/xen/arch/x86/arch.mk index 9dde8a5756..cb47d72991 100644 --- a/xen/arch/x86/arch.mk +++ b/xen/arch/x86/arch.mk @@ -109,7 +109,7 @@ endif ifeq ($(XEN_BUILD_PE),y) # Check if the linker produces fixups in PE by default -efi-nr-fixups := $(shell $(OBJDUMP) -p $(efi-check).efi | grep '^[[:blank:]]*reloc[[:blank:]]*[0-9][[:blank:]].*DIR64$$' | wc -l) +efi-nr-fixups := $(shell LC_ALL=C $(OBJDUMP) -p $(efi-check).efi | grep '^[[:blank:]]*reloc[[:blank:]]*[0-9][[:blank:]].*DIR64$$' | wc -l) ifeq ($(efi-nr-fixups),2) MKRELOC := : -- 2.39.5 ^ permalink raw reply related [flat|nested] 12+ messages in thread
* Re: [XEN PATCH 3/5] xen/arch/x86: make objdump output user locale agnostic 2024-12-30 21:00 ` [XEN PATCH 3/5] xen/arch/x86: make objdump output user locale agnostic Maximilian Engelhardt @ 2025-01-06 10:20 ` Jan Beulich 0 siblings, 0 replies; 12+ messages in thread From: Jan Beulich @ 2025-01-06 10:20 UTC (permalink / raw) To: Maximilian Engelhardt; +Cc: Andrew Cooper, Roger Pau Monné, xen-devel On 30.12.2024 22:00, Maximilian Engelhardt wrote: > The objdump output is fed to grep, so make sure it doesn't change with > different user locales and break the grep parsing. > This problem was identified while updating xen in Debian and the fix is > needed for generating reproducible builds in varying environments. It required me to check objdump (really: libbfd) source code to figure that it's ... > --- a/xen/arch/x86/arch.mk > +++ b/xen/arch/x86/arch.mk > @@ -109,7 +109,7 @@ endif > ifeq ($(XEN_BUILD_PE),y) > > # Check if the linker produces fixups in PE by default > -efi-nr-fixups := $(shell $(OBJDUMP) -p $(efi-check).efi | grep '^[[:blank:]]*reloc[[:blank:]]*[0-9][[:blank:]].*DIR64$$' | wc -l) > +efi-nr-fixups := $(shell LC_ALL=C $(OBJDUMP) -p $(efi-check).efi | grep '^[[:blank:]]*reloc[[:blank:]]*[0-9][[:blank:]].*DIR64$$' | wc -l) ... the "reloc" in here which (oddly enough) may be subject to translation. Would have been nice if such a relevant detail had been added to the description. Jan ^ permalink raw reply [flat|nested] 12+ messages in thread
* [XEN PATCH 4/5] docs/man: fix typo: hexidecimal -> hexadecimal 2024-12-30 21:00 [XEN PATCH 0/5] Fixes for reproducible builds and other small fixes Maximilian Engelhardt ` (2 preceding siblings ...) 2024-12-30 21:00 ` [XEN PATCH 3/5] xen/arch/x86: make objdump output user locale agnostic Maximilian Engelhardt @ 2024-12-30 21:00 ` Maximilian Engelhardt 2024-12-30 21:00 ` [XEN PATCH 5/5] tools: fix typo: subsytem -> subsystem Maximilian Engelhardt 2024-12-30 21:53 ` [XEN PATCH 0/5] Fixes for reproducible builds and other small fixes Andrew Cooper 5 siblings, 0 replies; 12+ messages in thread From: Maximilian Engelhardt @ 2024-12-30 21:00 UTC (permalink / raw) To: xen-devel; +Cc: Maximilian Engelhardt, Anthony PERARD This was found by the lintian tool (Debian package checker) during packaging xen for Debian. Signed-off-by: Maximilian Engelhardt <maxi@daemonizer.de> --- docs/man/xl-pci-configuration.5.pod | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/man/xl-pci-configuration.5.pod b/docs/man/xl-pci-configuration.5.pod index db3360307c..ec76f590b7 100644 --- a/docs/man/xl-pci-configuration.5.pod +++ b/docs/man/xl-pci-configuration.5.pod @@ -89,7 +89,7 @@ device. For example, running L<lspci(1)> in a Linux guest where B<vslot> was specified as C<8> would identify the device as C<00:08.0>. Virtual domain and bus numbers are always 0. -B<NOTE:> This parameter is always parsed as a hexidecimal value. +B<NOTE:> This parameter is always parsed as a hexadecimal value. =item Default Value -- 2.39.5 ^ permalink raw reply related [flat|nested] 12+ messages in thread
* [XEN PATCH 5/5] tools: fix typo: subsytem -> subsystem 2024-12-30 21:00 [XEN PATCH 0/5] Fixes for reproducible builds and other small fixes Maximilian Engelhardt ` (3 preceding siblings ...) 2024-12-30 21:00 ` [XEN PATCH 4/5] docs/man: fix typo: hexidecimal -> hexadecimal Maximilian Engelhardt @ 2024-12-30 21:00 ` Maximilian Engelhardt 2024-12-30 21:53 ` [XEN PATCH 0/5] Fixes for reproducible builds and other small fixes Andrew Cooper 5 siblings, 0 replies; 12+ messages in thread From: Maximilian Engelhardt @ 2024-12-30 21:00 UTC (permalink / raw) To: xen-devel; +Cc: Maximilian Engelhardt, Anthony PERARD, Juergen Gross This was found by the lintian tool (Debian package checker) during packaging xen for Debian. Signed-off-by: Maximilian Engelhardt <maxi@daemonizer.de> --- tools/include/xenctrl.h | 2 +- tools/misc/xen-memshare.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/include/xenctrl.h b/tools/include/xenctrl.h index 5bb41c9c53..4955981231 100644 --- a/tools/include/xenctrl.h +++ b/tools/include/xenctrl.h @@ -2212,7 +2212,7 @@ int xc_memshr_domain_resume(xc_interface *xch, * May fail with: * EINVAL if the gfn is not populated or not sharable (mmio, etc) * ENOMEM if internal data structures cannot be allocated - * E2BIG if the page is being referenced by other subsytems (e.g. qemu) + * E2BIG if the page is being referenced by other subsystems (e.g. qemu) * ENOENT or EEXIST if there are internal hypervisor errors. */ int xc_memshr_nominate_gfn(xc_interface *xch, diff --git a/tools/misc/xen-memshare.c b/tools/misc/xen-memshare.c index 8e5e22b9e9..ab30979ebc 100644 --- a/tools/misc/xen-memshare.c +++ b/tools/misc/xen-memshare.c @@ -30,7 +30,7 @@ static int usage(const char* prog) printf(" add-to-physmap <domid> <gfn> <source> <source-gfn> <source-handle>\n"); printf(" - Populate a page in a domain with a shared page.\n"); printf(" debug-gfn <domid> <gfn> - Debug a particular domain and gfn.\n"); - printf(" audit - Audit the sharing subsytem in Xen.\n"); + printf(" audit - Audit the sharing subsystem in Xen.\n"); return 1; } -- 2.39.5 ^ permalink raw reply related [flat|nested] 12+ messages in thread
* Re: [XEN PATCH 0/5] Fixes for reproducible builds and other small fixes 2024-12-30 21:00 [XEN PATCH 0/5] Fixes for reproducible builds and other small fixes Maximilian Engelhardt ` (4 preceding siblings ...) 2024-12-30 21:00 ` [XEN PATCH 5/5] tools: fix typo: subsytem -> subsystem Maximilian Engelhardt @ 2024-12-30 21:53 ` Andrew Cooper 5 siblings, 0 replies; 12+ messages in thread From: Andrew Cooper @ 2024-12-30 21:53 UTC (permalink / raw) To: Maximilian Engelhardt, xen-devel Cc: Anthony PERARD, Jan Beulich, Roger Pau Monné, Juergen Gross On 30/12/2024 9:00 pm, Maximilian Engelhardt wrote: > This series is a bunch of fixes we found while packaging Xen in Debian > and we believe they should be best addressed upstream. > > We have been carrying the first patch for a long time in Debian, but it > seems it never was applied upstream. It's an addition to > "docs/man: Provide properly-formatted NAME sections" > (commit 423c4def1f7a01eeff56fa70564180640ef3af43). > > Patch two and three are fixes for reproducibility issues that I found > using our testing gear in Debian. > > The last two patches are trivial fixes correcting two common typos found > by Debian tools. These are all very simple and obvious. I've summarily acked and taken all patches other than 2, where I've got a question/suggestion. https://gitlab.com/xen-project/people/andyhhp/xen/-/pipelines/1606875387 ~Andrew ^ permalink raw reply [flat|nested] 12+ messages in thread
end of thread, other threads:[~2025-01-13 13:47 UTC | newest] Thread overview: 12+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2024-12-30 21:00 [XEN PATCH 0/5] Fixes for reproducible builds and other small fixes Maximilian Engelhardt 2024-12-30 21:00 ` [XEN PATCH 1/5] docs/man/xen-vbd-interface.7: Provide properly-formatted NAME section Maximilian Engelhardt 2024-12-30 21:00 ` [XEN PATCH 2/5] docs: set DATE to SOURCE_DATE_EPOCH if available Maximilian Engelhardt 2024-12-30 21:38 ` Andrew Cooper 2024-12-30 22:28 ` Maximilian Engelhardt 2025-01-01 19:03 ` Maximilian Engelhardt 2025-01-13 13:46 ` Andrew Cooper 2024-12-30 21:00 ` [XEN PATCH 3/5] xen/arch/x86: make objdump output user locale agnostic Maximilian Engelhardt 2025-01-06 10:20 ` Jan Beulich 2024-12-30 21:00 ` [XEN PATCH 4/5] docs/man: fix typo: hexidecimal -> hexadecimal Maximilian Engelhardt 2024-12-30 21:00 ` [XEN PATCH 5/5] tools: fix typo: subsytem -> subsystem Maximilian Engelhardt 2024-12-30 21:53 ` [XEN PATCH 0/5] Fixes for reproducible builds and other small fixes Andrew Cooper
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.