[PATCH] edk2: get version + date from git submodule

Gerd Hoffmann posted 1 patch 1 month ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20240325144440.1069662-1-kraxel@redhat.com
There is a newer version of this series
roms/Makefile | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
[PATCH] edk2: get version + date from git submodule
Posted by Gerd Hoffmann 1 month ago
Turned out hard-coding version and date in the Makefile wasn't a bright
idea.  Updating it on edk2 updates is easily forgotten.  Fetch the info
from git instead.

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
---
 roms/Makefile | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/roms/Makefile b/roms/Makefile
index edc234a0e886..534eba17ebd0 100644
--- a/roms/Makefile
+++ b/roms/Makefile
@@ -51,6 +51,8 @@ SEABIOS_EXTRAVERSION="-prebuilt.qemu.org"
 # efi ia32, efi x64) into a single rom binary.
 #
 EDK2_EFIROM = edk2/BaseTools/Source/C/bin/EfiRom
+EDK2_STABLE = $(shell cd edk2; git describe --tags --match 'edk2-stable*')
+EDK2_DATE = $(shell cd edk2; git show --pretty='format:%cd' --date='format:%m/%d/%Y'| head -1)
 
 default help:
 	@echo "nothing is build by default"
@@ -149,8 +151,9 @@ skiboot:
 
 efi:
 	$(PYTHON) edk2-build.py --config edk2-build.config \
-		--version-override "edk2-stable202302-for-qemu" \
-		--release-date "03/01/2023"
+		--version-override "$(EDK2_STABLE)-for-qemu" \
+		--release-date "$(EDK2_DATE)" \
+		--silent --no-logs
 	rm -f ../pc-bios/edk2-*.fd.bz2
 	bzip2 --verbose ../pc-bios/edk2-*.fd
 
-- 
2.44.0
Re: [PATCH] edk2: get version + date from git submodule
Posted by Michael Tokarev 2 weeks, 5 days ago
25.03.2024 17:44, Gerd Hoffmann:
> Turned out hard-coding version and date in the Makefile wasn't a bright
> idea.  Updating it on edk2 updates is easily forgotten.  Fetch the info
> from git instead.

Fixes: https://gitlab.com/qemu-project/qemu/-/issues/2233

Thanks,

/mjt
Re: [PATCH] edk2: get version + date from git submodule
Posted by Peter Maydell 2 weeks, 5 days ago
On Mon, 25 Mar 2024 at 14:45, Gerd Hoffmann <kraxel@redhat.com> wrote:
>
> Turned out hard-coding version and date in the Makefile wasn't a bright
> idea.  Updating it on edk2 updates is easily forgotten.  Fetch the info
> from git instead.
>
> Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
> ---
>  roms/Makefile | 7 +++++--
>  1 file changed, 5 insertions(+), 2 deletions(-)
>
> diff --git a/roms/Makefile b/roms/Makefile
> index edc234a0e886..534eba17ebd0 100644
> --- a/roms/Makefile
> +++ b/roms/Makefile
> @@ -51,6 +51,8 @@ SEABIOS_EXTRAVERSION="-prebuilt.qemu.org"
>  # efi ia32, efi x64) into a single rom binary.
>  #
>  EDK2_EFIROM = edk2/BaseTools/Source/C/bin/EfiRom
> +EDK2_STABLE = $(shell cd edk2; git describe --tags --match 'edk2-stable*')
> +EDK2_DATE = $(shell cd edk2; git show --pretty='format:%cd' --date='format:%m/%d/%Y'| head -1)
>
>  default help:
>         @echo "nothing is build by default"
> @@ -149,8 +151,9 @@ skiboot:
>
>  efi:
>         $(PYTHON) edk2-build.py --config edk2-build.config \
> -               --version-override "edk2-stable202302-for-qemu" \
> -               --release-date "03/01/2023"
> +               --version-override "$(EDK2_STABLE)-for-qemu" \
> +               --release-date "$(EDK2_DATE)" \
> +               --silent --no-logs
>         rm -f ../pc-bios/edk2-*.fd.bz2
>         bzip2 --verbose ../pc-bios/edk2-*.fd

Hi -- I've just noticed that we never made this change to
automate the date/version for EDK2 ROMs, but we also never
updated the version by hand. So at the moment we ship an
EDK2 blob that wrongly claims to be an older version.
See this bug report by a user:

https://gitlab.com/qemu-project/qemu/-/issues/2233

Is it possible to fix this for 9.0?

thanks
-- PMM
Re: [PATCH] edk2: get version + date from git submodule
Posted by Gerd Hoffmann 2 weeks, 5 days ago
  Hi,

> > +               --version-override "$(EDK2_STABLE)-for-qemu" \
> > +               --release-date "$(EDK2_DATE)" \
> 
> Hi -- I've just noticed that we never made this change to
> automate the date/version for EDK2 ROMs, but we also never
> updated the version by hand. So at the moment we ship an
> EDK2 blob that wrongly claims to be an older version.
> See this bug report by a user:
> 
> https://gitlab.com/qemu-project/qemu/-/issues/2233
> 
> Is it possible to fix this for 9.0?

I've posted v2 (series) a while back, no feedback so far.

https://lore.kernel.org/qemu-devel/20240327102448.61877-1-kraxel@redhat.com/

If there are no objections I can do a PR for these three patches plus an
edk2 binary rebuild (which shouldn't change anything but the version
string).

take care,
  Gerd
Re: [PATCH] edk2: get version + date from git submodule
Posted by Peter Maydell 2 weeks, 5 days ago
On Tue, 9 Apr 2024 at 15:14, Gerd Hoffmann <kraxel@redhat.com> wrote:
>
>   Hi,
>
> > > +               --version-override "$(EDK2_STABLE)-for-qemu" \
> > > +               --release-date "$(EDK2_DATE)" \
> >
> > Hi -- I've just noticed that we never made this change to
> > automate the date/version for EDK2 ROMs, but we also never
> > updated the version by hand. So at the moment we ship an
> > EDK2 blob that wrongly claims to be an older version.
> > See this bug report by a user:
> >
> > https://gitlab.com/qemu-project/qemu/-/issues/2233
> >
> > Is it possible to fix this for 9.0?
>
> I've posted v2 (series) a while back, no feedback so far.
>
> https://lore.kernel.org/qemu-devel/20240327102448.61877-1-kraxel@redhat.com/
>
> If there are no objections I can do a PR for these three patches plus an
> edk2 binary rebuild (which shouldn't change anything but the version
> string).

I guess that's safe enough, though the very-conservative
choice would be to take just the EDK2 rebuild for 9.0.

thanks
-- PMM
Re: [PATCH] edk2: get version + date from git submodule
Posted by Peter Maydell 2 weeks, 5 days ago
On Tue, 9 Apr 2024 at 15:19, Peter Maydell <peter.maydell@linaro.org> wrote:
>
> On Tue, 9 Apr 2024 at 15:14, Gerd Hoffmann <kraxel@redhat.com> wrote:
> >
> >   Hi,
> >
> > > > +               --version-override "$(EDK2_STABLE)-for-qemu" \
> > > > +               --release-date "$(EDK2_DATE)" \
> > >
> > > Hi -- I've just noticed that we never made this change to
> > > automate the date/version for EDK2 ROMs, but we also never
> > > updated the version by hand. So at the moment we ship an
> > > EDK2 blob that wrongly claims to be an older version.
> > > See this bug report by a user:
> > >
> > > https://gitlab.com/qemu-project/qemu/-/issues/2233
> > >
> > > Is it possible to fix this for 9.0?
> >
> > I've posted v2 (series) a while back, no feedback so far.
> >
> > https://lore.kernel.org/qemu-devel/20240327102448.61877-1-kraxel@redhat.com/
> >
> > If there are no objections I can do a PR for these three patches plus an
> > edk2 binary rebuild (which shouldn't change anything but the version
> > string).
>
> I guess that's safe enough, though the very-conservative
> choice would be to take just the EDK2 rebuild for 9.0.

Would you be able to get a pullreq in for this before rc3?
(I can delay rc3 by a day or so if necessary; I'd rather
not have to do an rc4 if we can avoid it...)

thanks
-- PMM
Re: [PATCH] edk2: get version + date from git submodule
Posted by Gerd Hoffmann 2 weeks, 5 days ago
On Tue, Apr 09, 2024 at 04:13:34PM +0100, Peter Maydell wrote:
> On Tue, 9 Apr 2024 at 15:19, Peter Maydell <peter.maydell@linaro.org> wrote:
> >
> > On Tue, 9 Apr 2024 at 15:14, Gerd Hoffmann <kraxel@redhat.com> wrote:
> > >
> > >   Hi,
> > >
> > > > > +               --version-override "$(EDK2_STABLE)-for-qemu" \
> > > > > +               --release-date "$(EDK2_DATE)" \
> > > >
> > > > Hi -- I've just noticed that we never made this change to
> > > > automate the date/version for EDK2 ROMs, but we also never
> > > > updated the version by hand. So at the moment we ship an
> > > > EDK2 blob that wrongly claims to be an older version.
> > > > See this bug report by a user:
> > > >
> > > > https://gitlab.com/qemu-project/qemu/-/issues/2233
> > > >
> > > > Is it possible to fix this for 9.0?
> > >
> > > I've posted v2 (series) a while back, no feedback so far.
> > >
> > > https://lore.kernel.org/qemu-devel/20240327102448.61877-1-kraxel@redhat.com/
> > >
> > > If there are no objections I can do a PR for these three patches plus an
> > > edk2 binary rebuild (which shouldn't change anything but the version
> > > string).
> >
> > I guess that's safe enough, though the very-conservative
> > choice would be to take just the EDK2 rebuild for 9.0.
> 
> Would you be able to get a pullreq in for this before rc3?
> (I can delay rc3 by a day or so if necessary; I'd rather
> not have to do an rc4 if we can avoid it...)

https://lore.kernel.org/qemu-devel/20240409162942.454419-1-kraxel@redhat.com/T/

take care,
  Gerd
Re: [PATCH] edk2: get version + date from git submodule
Posted by Peter Maydell 1 month ago
On Mon, 25 Mar 2024 at 14:45, Gerd Hoffmann <kraxel@redhat.com> wrote:
>
> Turned out hard-coding version and date in the Makefile wasn't a bright
> idea.  Updating it on edk2 updates is easily forgotten.  Fetch the info
> from git instead.
>
> Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
> ---
>  roms/Makefile | 7 +++++--
>  1 file changed, 5 insertions(+), 2 deletions(-)
>
> diff --git a/roms/Makefile b/roms/Makefile
> index edc234a0e886..534eba17ebd0 100644
> --- a/roms/Makefile
> +++ b/roms/Makefile
> @@ -51,6 +51,8 @@ SEABIOS_EXTRAVERSION="-prebuilt.qemu.org"
>  # efi ia32, efi x64) into a single rom binary.
>  #
>  EDK2_EFIROM = edk2/BaseTools/Source/C/bin/EfiRom
> +EDK2_STABLE = $(shell cd edk2; git describe --tags --match 'edk2-stable*')
> +EDK2_DATE = $(shell cd edk2; git show --pretty='format:%cd' --date='format:%m/%d/%Y'| head -1)

I don't think there's any guarantee that the user has 'git'
installed. scripts/qemu-version avoids using "git describe"
unless it's building in a git tree.

You can avoid the "| head -1" by using
  git log -1 --pretty='format:%cd' --date='format:%m/%d/%Y'
I think.

Also, does EDK2 really want month/day/year? Typically silly
choice if so :-)

thanks
-- PMM
Re: [PATCH] edk2: get version + date from git submodule
Posted by Gerd Hoffmann 1 month ago
On Mon, Mar 25, 2024 at 02:55:11PM +0000, Peter Maydell wrote:
> On Mon, 25 Mar 2024 at 14:45, Gerd Hoffmann <kraxel@redhat.com> wrote:
> >
> > Turned out hard-coding version and date in the Makefile wasn't a bright
> > idea.  Updating it on edk2 updates is easily forgotten.  Fetch the info
> > from git instead.
> >
> > Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
> > ---
> >  roms/Makefile | 7 +++++--
> >  1 file changed, 5 insertions(+), 2 deletions(-)
> >
> > diff --git a/roms/Makefile b/roms/Makefile
> > index edc234a0e886..534eba17ebd0 100644
> > --- a/roms/Makefile
> > +++ b/roms/Makefile
> > @@ -51,6 +51,8 @@ SEABIOS_EXTRAVERSION="-prebuilt.qemu.org"
> >  # efi ia32, efi x64) into a single rom binary.
> >  #
> >  EDK2_EFIROM = edk2/BaseTools/Source/C/bin/EfiRom
> > +EDK2_STABLE = $(shell cd edk2; git describe --tags --match 'edk2-stable*')
> > +EDK2_DATE = $(shell cd edk2; git show --pretty='format:%cd' --date='format:%m/%d/%Y'| head -1)
> 
> I don't think there's any guarantee that the user has 'git'
> installed. scripts/qemu-version avoids using "git describe"
> unless it's building in a git tree.

Hmm.  Have to figure something else then I guess.

> You can avoid the "| head -1" by using
>   git log -1 --pretty='format:%cd' --date='format:%m/%d/%Y'
> I think.

Works.  Thanks.

> Also, does EDK2 really want month/day/year? Typically silly
> choice if so :-)

Yes.

It's the smbios spec being silly btw, this lands more or less
directly in /sys/class/dmi/id/bios_date.  edk2 itself doesn't
care.

take care,
  Gerd