summaryrefslogtreecommitdiff
path: root/meta-ampere/meta-common
diff options
context:
space:
mode:
authorHieu Vu <hvu@amperecomputing.com>2020-10-19 09:39:54 +0300
committerChau Ly <chaul@amperecomputing.com>2023-02-21 06:20:42 +0300
commite072defa81f4af79a316a85ff0339a9b133c0555 (patch)
treed551240bcd562359fc88d3e12cbc5a050bd2de2e /meta-ampere/meta-common
parent00a462d0a1309146543553250f5181b2e719b0ec (diff)
downloadopenbmc-e072defa81f4af79a316a85ff0339a9b133c0555.tar.xz
meta-ampere: support software revision using Ampere format
OpenBMC uses os-release.bbappend to control the FW version, which is the output of 'git describe --dirty --long'. The format of this command's output is: {annotated-tag-name}-{num-commits-to-tag}-{current-commit-hash}. '-dirty' will be appended to the output if the working space is not clean. In addition, git describe --dirty --long only find an annotated tag, not lightweight tag which will miss internal release. This commit updates the rule to extract the right revision from Ampere build and release tag. Tested: tag with v1.02.100-ampere and check WebUI display revision 1.02.100. Signed-off-by: Thu Cao <thcao@os.amperecomputing.com> Signed-off-by: Chau Ly <chaul@amperecomputing.com> Change-Id: I6d5e6d2dcdb4988809f71d48a5b0e2710e7810d2
Diffstat (limited to 'meta-ampere/meta-common')
-rw-r--r--meta-ampere/meta-common/recipes-core/os-release/os-release.bbappend17
1 files changed, 17 insertions, 0 deletions
diff --git a/meta-ampere/meta-common/recipes-core/os-release/os-release.bbappend b/meta-ampere/meta-common/recipes-core/os-release/os-release.bbappend
new file mode 100644
index 0000000000..1e9e253019
--- /dev/null
+++ b/meta-ampere/meta-common/recipes-core/os-release/os-release.bbappend
@@ -0,0 +1,17 @@
+def run_git(d, cmd):
+ try:
+ oeroot = d.getVar('COREBASE', True)
+ return bb.process.run("git --work-tree %s --git-dir %s/.git %s"
+ % (oeroot, oeroot, cmd))[0].strip('\n')
+ except:
+ pass
+
+python() {
+ version_id = run_git(d, 'describe --dirty --long --tags')
+ if version_id:
+ versionList = version_id.split('-')
+
+ # Override with tag name only, if built at tag.
+ if 'dirty' not in version_id and versionList[1] == 'ampere':
+ d.setVar('VERSION_ID', versionList[0].split('v')[-1])
+}