dtc: preserve version also from shallow git clones

Since switch from Makefile to meson based build,
the version is no longer hardcoded but queried from git tag.

This works only if git history is available.
When shallow tarballs are used, tag is not available.

Example error for trusted-firmware-a from meta-arm:
dtc version too old (039a994), you need at least version 1.4.4

Backport also patch to fix version in meson file.

(From OE-Core rev: 319f5d8a32d1f4a71ac997ce4522249b08f84945)

Signed-off-by: Peter Marko <peter.marko@siemens.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Peter Marko
2023-12-16 19:55:04 +01:00
committed by Richard Purdie
parent b1ff67062a
commit b2585b54b1
3 changed files with 72 additions and 1 deletions

View File

@@ -0,0 +1,29 @@
From 9153522103bd4ed7e3299c4d073f66bb37cb2d42 Mon Sep 17 00:00:00 2001
From: Nikolay Letov <letov.nikolay@gmail.com>
Date: Wed, 22 Feb 2023 13:36:07 +0300
Subject: [PATCH 1/2] meson.build: bump version to 1.7.0
[This was botched in the actual 1.7.0 release :( - David Gibson]
Upstream-Status: Backport [https://git.kernel.org/pub/scm/utils/dtc/dtc.git/commit/?id=64a907f08b9bedd89833c1eee674148cff2343c6]
Signed-off-by: Nikolay Letov <letov.nikolay@gmail.com>
Signed-off-by: Peter Marko <peter.marko@siemens.com>
---
meson.build | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/meson.build b/meson.build
index 78251eb..d88cd9f 100644
--- a/meson.build
+++ b/meson.build
@@ -1,5 +1,5 @@
project('dtc', 'c',
- version: '1.6.0',
+ version: '1.7.0',
license: ['GPL2+', 'BSD-2'],
default_options: 'werror=true',
)
--
2.30.2

View File

@@ -0,0 +1,38 @@
From 4415b0baece3c4351a6d3637c2754abbefd4795d Mon Sep 17 00:00:00 2001
From: Peter Marko <peter.marko@siemens.com>
Date: Sat, 16 Dec 2023 18:58:31 +0100
Subject: [PATCH 2/2] meson: allow building from shallow clones
When building from shallow clone, tag is not available
and version defaults to git hash.
Problem is that some builds check DTC version and fail the comparison.
Example is https://git.trustedfirmware.org/TF-A/trusted-firmware-a.git
Which fails to build with following error:
dtc version too old (039a994), you need at least version 1.4.4
Drop --always from git describe command, see
https://github.com/mesonbuild/meson/blob/1.3.0/mesonbuild/utils/universal.py#L773
This will make it more closer to build via Makefile.
Upstream-Status: Submitted [https://github.com/dgibson/dtc/pull/122]
Signed-off-by: Peter Marko <peter.marko@siemens.com>
---
meson.build | 1 +
1 file changed, 1 insertion(+)
diff --git a/meson.build b/meson.build
index 78251eb..fc0c92a 100644
--- a/meson.build
+++ b/meson.build
@@ -56,6 +56,7 @@ py = py.find_installation(required: get_option('python'))
swig = find_program('swig', required: get_option('python'))
version_gen_h = vcs_tag(
+ command: ['git', 'describe', '--dirty=+'],
input: 'version_gen.h.in',
output: 'version_gen.h',
)
--
2.30.2

View File

@@ -8,7 +8,11 @@ LIC_FILES_CHKSUM = "file://GPL;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
file://BSD-2-Clause;md5=5d6306d1b08f8df623178dfd81880927 \
file://README.license;md5=a1eb22e37f09df5b5511b8a278992d0e"
SRC_URI = "git://git.kernel.org/pub/scm/utils/dtc/dtc.git;branch=main;protocol=https"
SRC_URI = " \
git://git.kernel.org/pub/scm/utils/dtc/dtc.git;branch=main;protocol=https \
file://0001-meson.build-bump-version-to-1.7.0.patch \
file://0002-meson-allow-building-from-shallow-clones.patch \
"
SRCREV = "039a99414e778332d8f9c04cbd3072e1dcc62798"
UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>\d+(\.\d+)+)"