Re: [Xen-devel] [PATCH] tools/firmware: pass EXTRAVERSION to seabios build
On Tue, May 30, Wei Liu wrote: > subdirs-seabios-dir: EXTRAVERSION=XXX > Limit it to the one that needs the environment variable -- seabios or > ipxe. Ok, I will try it. Last time I looked environment did not work. Olaf signature.asc Description: PGP signature ___ Xen-devel mailing list Xen-devel@lists.xen.org https://lists.xen.org/xen-devel
Re: [Xen-devel] [PATCH] tools/firmware: pass EXTRAVERSION to seabios build
On Tue, May 30, 2017 at 04:24:18PM +0200, Olaf Hering wrote: > On Tue, May 30, Wei Liu wrote: > > > In that case, can you confine such hackery to be seabios only? > > Is it worth the hassle? It seems only ipxe would recognize the > EXTRAVERSION. And how would I actually limit it to seabios? Something > like "make $(filter-out subdir-seabios-dir, subdirs-$@)"? > No, what I meant was something like: subdirs-seabios-dir: EXTRAVERSION=XXX Limit it to the one that needs the environment variable -- seabios or ipxe. ___ Xen-devel mailing list Xen-devel@lists.xen.org https://lists.xen.org/xen-devel
Re: [Xen-devel] [PATCH] tools/firmware: pass EXTRAVERSION to seabios build
On Tue, May 30, Wei Liu wrote: > In that case, can you confine such hackery to be seabios only? Is it worth the hassle? It seems only ipxe would recognize the EXTRAVERSION. And how would I actually limit it to seabios? Something like "make $(filter-out subdir-seabios-dir, subdirs-$@)"? Olaf signature.asc Description: PGP signature ___ Xen-devel mailing list Xen-devel@lists.xen.org https://lists.xen.org/xen-devel
Re: [Xen-devel] [PATCH] tools/firmware: pass EXTRAVERSION to seabios build
On Tue, May 30, 2017 at 02:25:11PM +0200, Olaf Hering wrote: > On Tue, May 30, Wei Liu wrote: > > > What I meant was: this is passing EXTRAVERSION to all subdir targets, > > which seems unnecessary to me. And you already specified a version > > string for seabios. > > True, but scripts/buildversion.py insists on --extra 'whatever'. > In that case, can you confine such hackery to be seabios only? > Olaf ___ Xen-devel mailing list Xen-devel@lists.xen.org https://lists.xen.org/xen-devel
Re: [Xen-devel] [PATCH] tools/firmware: pass EXTRAVERSION to seabios build
On Tue, May 30, Wei Liu wrote: > What I meant was: this is passing EXTRAVERSION to all subdir targets, > which seems unnecessary to me. And you already specified a version > string for seabios. True, but scripts/buildversion.py insists on --extra 'whatever'. Olaf signature.asc Description: PGP signature ___ Xen-devel mailing list Xen-devel@lists.xen.org https://lists.xen.org/xen-devel
Re: [Xen-devel] [PATCH] tools/firmware: pass EXTRAVERSION to seabios build
On Tue, May 30, 2017 at 12:33:15PM +0100, Wei Liu wrote: > On Mon, May 29, 2017 at 09:57:58AM +0200, Olaf Hering wrote: > > On Fri, May 26, Ian Jackson wrote: > > > > > This seems like a real problem which should be improved. But maybe we > > > should use Xen's EXTRAVERSION by default ? > > > > After thinking about it, why does the tools build not just enforce a > > fixed string? There is no point for scripts/buildversion.py to put > > current time and buildhost into the binary. This breaks reproducible > > builds. A simple, untested change like this should be enough: > > > > diff --git a/tools/firmware/Makefile b/tools/firmware/Makefile > > index 8562f547bc..c2b5985dc7 100644 > > --- a/tools/firmware/Makefile > > +++ b/tools/firmware/Makefile > > @@ -22,6 +22,8 @@ ovmf-dir: > > seabios-dir: > > GIT=$(GIT) $(XEN_ROOT)/scripts/git-checkout.sh $(SEABIOS_UPSTREAM_URL) > > $(SEABIOS_UPSTREAM_REVISION) seabios-dir > > cp seabios-config seabios-dir/.config; > > + rm -f seabios-dir/.version > > + echo '$(SEABIOS_UPSTREAM_REVISION)' > seabios-dir/.version > > Please consider adding a comment before this snippet saying this is for > reproducible build. > > > $(MAKE) -C seabios-dir olddefconfig > > > > .PHONY: all > > @@ -35,7 +37,7 @@ ifeq ($(CONFIG_ROMBIOS),y) > > false ; \ > > fi > > endif > > - $(MAKE) $(LD32BIT-y) CC=$(CC) PYTHON=$(PYTHON) subdirs-$@ > > + $(MAKE) $(LD32BIT-y) CC=$(CC) PYTHON=$(PYTHON) EXTRAVERSION="-Xen" > > subdirs-$@ > > Why is this needed? > What I meant was: this is passing EXTRAVERSION to all subdir targets, which seems unnecessary to me. And you already specified a version string for seabios. ___ Xen-devel mailing list Xen-devel@lists.xen.org https://lists.xen.org/xen-devel
Re: [Xen-devel] [PATCH] tools/firmware: pass EXTRAVERSION to seabios build
On Mon, May 29, 2017 at 09:57:58AM +0200, Olaf Hering wrote: > On Fri, May 26, Ian Jackson wrote: > > > This seems like a real problem which should be improved. But maybe we > > should use Xen's EXTRAVERSION by default ? > > After thinking about it, why does the tools build not just enforce a > fixed string? There is no point for scripts/buildversion.py to put > current time and buildhost into the binary. This breaks reproducible > builds. A simple, untested change like this should be enough: > > diff --git a/tools/firmware/Makefile b/tools/firmware/Makefile > index 8562f547bc..c2b5985dc7 100644 > --- a/tools/firmware/Makefile > +++ b/tools/firmware/Makefile > @@ -22,6 +22,8 @@ ovmf-dir: > seabios-dir: > GIT=$(GIT) $(XEN_ROOT)/scripts/git-checkout.sh $(SEABIOS_UPSTREAM_URL) > $(SEABIOS_UPSTREAM_REVISION) seabios-dir > cp seabios-config seabios-dir/.config; > + rm -f seabios-dir/.version > + echo '$(SEABIOS_UPSTREAM_REVISION)' > seabios-dir/.version Please consider adding a comment before this snippet saying this is for reproducible build. > $(MAKE) -C seabios-dir olddefconfig > > .PHONY: all > @@ -35,7 +37,7 @@ ifeq ($(CONFIG_ROMBIOS),y) > false ; \ > fi > endif > - $(MAKE) $(LD32BIT-y) CC=$(CC) PYTHON=$(PYTHON) subdirs-$@ > + $(MAKE) $(LD32BIT-y) CC=$(CC) PYTHON=$(PYTHON) EXTRAVERSION="-Xen" > subdirs-$@ Why is this needed? > > > .PHONY: install > > Olaf ___ Xen-devel mailing list Xen-devel@lists.xen.org https://lists.xen.org/xen-devel
Re: [Xen-devel] [PATCH] tools/firmware: pass EXTRAVERSION to seabios build
On Fri, May 26, Ian Jackson wrote: > This seems like a real problem which should be improved. But maybe we > should use Xen's EXTRAVERSION by default ? After thinking about it, why does the tools build not just enforce a fixed string? There is no point for scripts/buildversion.py to put current time and buildhost into the binary. This breaks reproducible builds. A simple, untested change like this should be enough: diff --git a/tools/firmware/Makefile b/tools/firmware/Makefile index 8562f547bc..c2b5985dc7 100644 --- a/tools/firmware/Makefile +++ b/tools/firmware/Makefile @@ -22,6 +22,8 @@ ovmf-dir: seabios-dir: GIT=$(GIT) $(XEN_ROOT)/scripts/git-checkout.sh $(SEABIOS_UPSTREAM_URL) $(SEABIOS_UPSTREAM_REVISION) seabios-dir cp seabios-config seabios-dir/.config; + rm -f seabios-dir/.version + echo '$(SEABIOS_UPSTREAM_REVISION)' > seabios-dir/.version $(MAKE) -C seabios-dir olddefconfig .PHONY: all @@ -35,7 +37,7 @@ ifeq ($(CONFIG_ROMBIOS),y) false ; \ fi endif - $(MAKE) $(LD32BIT-y) CC=$(CC) PYTHON=$(PYTHON) subdirs-$@ + $(MAKE) $(LD32BIT-y) CC=$(CC) PYTHON=$(PYTHON) EXTRAVERSION="-Xen" subdirs-$@ .PHONY: install Olaf signature.asc Description: PGP signature ___ Xen-devel mailing list Xen-devel@lists.xen.org https://lists.xen.org/xen-devel
[Xen-devel] [PATCH] tools/firmware: pass EXTRAVERSION to seabios build
Olaf Hering writes ("[PATCH] tools/firmware: pass EXTRAVERSION to seabios build"): > Having a fixed version string in the seabios binary is cumbersome: > - it is required to write something to '.version' in the toplevel >directory of seabios-dir-remove. > - it is required to pass EXTRAVERSION= to make. I can't quite parse this, but: > The latter is impossible without this change. For some reason an 'export > EXTRAVERSION=something' prior to 'make tools' is not sufficient. It has > to be passed in as cmdline option to make. This seems like a real problem which should be improved. But maybe we should use Xen's EXTRAVERSION by default ? > +SEABIOS_EXTRAVERSION ?= "-prebuilt.xen.org" I think this is a rather odd default value. This image is precisely not prebuild, for example. Also I don't think a domain name is really the right thing here. Thanks, Ian. ___ Xen-devel mailing list Xen-devel@lists.xen.org https://lists.xen.org/xen-devel
[Xen-devel] [PATCH] tools/firmware: pass EXTRAVERSION to seabios build
Having a fixed version string in the seabios binary is cumbersome: - it is required to write something to '.version' in the toplevel directory of seabios-dir-remove. - it is required to pass EXTRAVERSION= to make. The latter is impossible without this change. For some reason an 'export EXTRAVERSION=something' prior to 'make tools' is not sufficient. It has to be passed in as cmdline option to make. Add a make variable SEABIOS_EXTRAVERSION= and pass it to make. Allow changing the default via the environment. Document the new variable in INSTALL. Signed-off-by: Olaf Hering--- INSTALL | 2 ++ tools/firmware/Makefile | 4 +++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/INSTALL b/INSTALL index 58359da380..96245505d7 100644 --- a/INSTALL +++ b/INSTALL @@ -279,6 +279,8 @@ CHECKPOLICY= Use clang instead of GCC. clang=y +The version string of the built-in seabios can be adjusted with: +SEABIOS_EXTRAVERSION= Systemd support === diff --git a/tools/firmware/Makefile b/tools/firmware/Makefile index 8562f547bc..fcc9754b08 100644 --- a/tools/firmware/Makefile +++ b/tools/firmware/Makefile @@ -5,6 +5,8 @@ include $(XEN_ROOT)/tools/Rules.mk TARGET := hvmloader/hvmloader INST_DIR := $(DESTDIR)$(XENFIRMWAREDIR) +SEABIOS_EXTRAVERSION ?= "-prebuilt.xen.org" + SUBDIRS-y := SUBDIRS-$(CONFIG_OVMF) += ovmf-dir SUBDIRS-$(CONFIG_SEABIOS) += seabios-dir @@ -35,7 +37,7 @@ ifeq ($(CONFIG_ROMBIOS),y) false ; \ fi endif - $(MAKE) $(LD32BIT-y) CC=$(CC) PYTHON=$(PYTHON) subdirs-$@ + $(MAKE) $(LD32BIT-y) CC=$(CC) PYTHON=$(PYTHON) EXTRAVERSION=$(SEABIOS_EXTRAVERSION) subdirs-$@ .PHONY: install ___ Xen-devel mailing list Xen-devel@lists.xen.org https://lists.xen.org/xen-devel