[PATCH v2 1/3] edk2: get version + date from git submodule

Gerd Hoffmann posted 3 patches 1 year, 10 months ago
Maintainers: "Philippe Mathieu-Daudé" <philmd@linaro.org>, Gerd Hoffmann <kraxel@redhat.com>
[PATCH v2 1/3] edk2: get version + date from git submodule
Posted by Gerd Hoffmann 1 year, 10 months 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.  Store in edk2-version, so this can be committed to
the repo and is present in tarballs too.

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

diff --git a/roms/Makefile b/roms/Makefile
index edc234a0e886..783a5cab4f4c 100644
--- a/roms/Makefile
+++ b/roms/Makefile
@@ -52,6 +52,8 @@ SEABIOS_EXTRAVERSION="-prebuilt.qemu.org"
 #
 EDK2_EFIROM = edk2/BaseTools/Source/C/bin/EfiRom
 
+-include edk2-version
+
 default help:
 	@echo "nothing is build by default"
 	@echo "available build targets:"
@@ -147,10 +149,19 @@ skiboot:
 	$(MAKE) -C skiboot CROSS=$(powerpc64_cross_prefix)
 	cp skiboot/skiboot.lid ../pc-bios/skiboot.lid
 
-efi:
+edk2-version: edk2
+	if test -e edk2/.git; then \
+		echo "EDK2_STABLE = $$(cd edk2; git describe --tags --match 'edk2-stable*')" > $@; \
+		echo "EDK2_DATE = $$(cd edk2; git log -1 --pretty='format:%cd' --date='format:%m/%d/%Y')" >> $@; \
+	else \
+		touch $@; \
+	fi
+
+efi: edk2-version
 	$(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 v2 1/3] edk2: get version + date from git submodule
Posted by Peter Maydell 1 year, 10 months ago
On Wed, 27 Mar 2024 at 10:26, 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.  Store in edk2-version, so this can be committed to
> the repo and is present in tarballs too.
>
> Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
> ---
>  roms/Makefile | 17 ++++++++++++++---
>  1 file changed, 14 insertions(+), 3 deletions(-)
>
> diff --git a/roms/Makefile b/roms/Makefile
> index edc234a0e886..783a5cab4f4c 100644
> --- a/roms/Makefile
> +++ b/roms/Makefile
> @@ -52,6 +52,8 @@ SEABIOS_EXTRAVERSION="-prebuilt.qemu.org"
>  #
>  EDK2_EFIROM = edk2/BaseTools/Source/C/bin/EfiRom
>
> +-include edk2-version
> +
>  default help:
>         @echo "nothing is build by default"
>         @echo "available build targets:"
> @@ -147,10 +149,19 @@ skiboot:
>         $(MAKE) -C skiboot CROSS=$(powerpc64_cross_prefix)
>         cp skiboot/skiboot.lid ../pc-bios/skiboot.lid
>
> -efi:
> +edk2-version: edk2
> +       if test -e edk2/.git; then \
> +               echo "EDK2_STABLE = $$(cd edk2; git describe --tags --match 'edk2-stable*')" > $@; \
> +               echo "EDK2_DATE = $$(cd edk2; git log -1 --pretty='format:%cd' --date='format:%m/%d/%Y')" >> $@; \
> +       else \
> +               touch $@; \
> +       fi
> +
> +efi: edk2-version

Do we actually need this dependency, by the way? I think Make
will rebuild edk2-version regardless because it's included
(and it would be too late to rebuild it as merely a dependency
of 'efi' here).

>         $(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

-- PMM