diff options
author | Ed Tanous <ed.tanous@intel.com> | 2019-06-06 19:43:20 +0300 |
---|---|---|
committer | Ed Tanous <ed.tanous@intel.com> | 2019-06-07 00:20:52 +0300 |
commit | 10bc2ef852277cf8e9858f75cea9f55b482bf85b (patch) | |
tree | 6d29c0a7edc3769c9fbba0a3c6f6ed9ba10ba8ed /meta-openbmc-mods/meta-common/recipes-core/os-release | |
parent | 9087065ce8c9f13d6450293c15101a3db5fe6f49 (diff) | |
download | openbmc-10bc2ef852277cf8e9858f75cea9f55b482bf85b.tar.xz |
Update to internal 6-6-19
Signed-off-by: Ed Tanous <ed.tanous@intel.com>
Diffstat (limited to 'meta-openbmc-mods/meta-common/recipes-core/os-release')
-rw-r--r-- | meta-openbmc-mods/meta-common/recipes-core/os-release/os-release.bbappend | 56 | ||||
-rw-r--r-- | meta-openbmc-mods/meta-common/recipes-core/os-release/version-vars.inc | 78 |
2 files changed, 81 insertions, 53 deletions
diff --git a/meta-openbmc-mods/meta-common/recipes-core/os-release/os-release.bbappend b/meta-openbmc-mods/meta-common/recipes-core/os-release/os-release.bbappend index 584d3b645..059931ed2 100644 --- a/meta-openbmc-mods/meta-common/recipes-core/os-release/os-release.bbappend +++ b/meta-openbmc-mods/meta-common/recipes-core/os-release/os-release.bbappend @@ -5,60 +5,9 @@ # and pasting into another recipe ensure it is understood # what that means! -def irun_git(d, oeroot, git_cmd, **kwargs): - err = None - try: - cmd = 'git --work-tree {} --git-dir {}/.git {}'.format(oeroot, oeroot, git_cmd) - ret, err = bb.process.run(cmd, **kwargs) - if err is not None: - ret += err - except bb.process.ExecutionError as e: - ret = '' - if e.stdout is not None: - ret += e.stdout - if e.stderr is not None: - ret += e.stderr - except Exception as e: - ret = str(e) - return ret.strip('\n') +require version-vars.inc -def repo_status(d, f, repo, tagargs): - import subprocess - - cmd_list = [['HEAD', 'rev-parse HEAD'], - ['TAG', 'describe {} --dirty --long'.format(tagargs)], - ['STATUS', 'status -sb']] - - f.write(('\n# REPOSITORY: {} '.format(os.path.basename(repo))).ljust(80, '+') + '\n') - for item in cmd_list: - f.write('# {}: '.format(item[0])) - sb = irun_git(d, repo, item[1]) - if sb: - sb_lines = sb.split('\n') - if len(sb_lines) == 1: - f.write(sb_lines[0]) - else: - f.write('\n# ' + '\n# '.join(sb_lines)) - f.write('\n') - -python() { - corebase = d.getVar('COREBASE', True) - mibase = os.path.join(corebase, 'meta-openbmc-mods') - obmc_vers = irun_git(d, corebase, 'describe --dirty --long') - meta_vers = irun_git(d, mibase, 'rev-parse HEAD')[0:7] - version_id = '{}-{}'.format(obmc_vers, meta_vers) - if version_id: - d.setVar('VERSION_ID', version_id) - versionList = version_id.split('-') - version = '{}-{}'.format(versionList[0], versionList[1]) - d.setVar('VERSION', version) - - build_id = irun_git(d, corebase, 'describe --abbrev=0') - if build_id: - d.setVar('BUILD_ID', build_id) -} - -OS_RELEASE_FIELDS_append = " BUILD_ID" +OS_RELEASE_FIELDS_append = " OPENBMC_VERSION IPMI_MAJOR IPMI_MINOR IPMI_AUX13 IPMI_AUX14 IPMI_AUX15 IPMI_AUX16" python do_compile_append () { import glob @@ -80,6 +29,7 @@ python do_compile_append () { # Ensure the git commands run every time bitbake is invoked. BB_DONT_CACHE = "1" +do_compile[nostamp]="1" # Make os-release available to other recipes. SYSROOT_DIRS_append = " ${sysconfdir}" diff --git a/meta-openbmc-mods/meta-common/recipes-core/os-release/version-vars.inc b/meta-openbmc-mods/meta-common/recipes-core/os-release/version-vars.inc new file mode 100644 index 000000000..b6a2504a2 --- /dev/null +++ b/meta-openbmc-mods/meta-common/recipes-core/os-release/version-vars.inc @@ -0,0 +1,78 @@ +def irun_git(d, oeroot, git_cmd, **kwargs): + err = None + try: + cmd = 'git --work-tree {} --git-dir {}/.git {}'.format(oeroot, oeroot, git_cmd) + ret, err = bb.process.run(cmd, **kwargs) + if err is not None: + ret += err + except bb.process.ExecutionError as e: + ret = '' + if e.stdout is not None: + ret += e.stdout + if e.stderr is not None: + ret += e.stderr + except Exception as e: + ret = str(e) + return ret.strip('\n') + +def repo_status(d, f, repo, tagargs): + import subprocess + + cmd_list = [['HEAD', 'rev-parse HEAD'], + ['TAG', 'describe {} --dirty --long'.format(tagargs)], + ['STATUS', 'status -sb']] + + f.write(('\n# REPOSITORY: {} '.format(os.path.basename(repo))).ljust(80, '+') + '\n') + for item in cmd_list: + f.write('# {}: '.format(item[0])) + sb = irun_git(d, repo, item[1]) + if sb: + sb_lines = sb.split('\n') + if len(sb_lines) == 1: + f.write(sb_lines[0]) + else: + f.write('\n# ' + '\n# '.join(sb_lines)) + f.write('\n') + +python() { + import re + + gen = d.getVar('PRODUCT_GENERATION', True) + if gen is None: + gen = 'unknown' + + corebase = d.getVar('COREBASE', True) + mibase = os.path.join(corebase, 'meta-openbmc-mods') + obmc_vers = irun_git(d, corebase, 'describe --dirty --long') + if obmc_vers is None: + raise bb.build.FuncFailed("Missing version tag for openbmc-openbmc") + d.setVar('OPENBMC_VERSION', obmc_vers) + + obmc_hash = irun_git(d, corebase, 'rev-parse HEAD') + meta_vers = irun_git(d, mibase, + 'describe --long --abbrev=6 ' + + '--match \'{}-[0-9]*\.[0-9]*\''.format(gen)) + + # Until tags in meta-openbmc-mods, interim measure keep builds working. + if meta_vers.startswith('fatal:'): + meta_vers = '{}-0.0-0'.format(gen) + + meta_hash = irun_git(d, mibase, 'rev-parse HEAD') + version_id = '{}-{}'.format(meta_vers, obmc_hash[0:7]) + if version_id: + d.setVar('VERSION_ID', version_id) + versionList = version_id.split('-') + versionList = re.split('-|\.', version_id) + version = '{}.{}-{}'.format(versionList[0], versionList[1], versionList[2]) + d.setVar('VERSION', version) + d.setVar('IPMI_MAJOR', versionList[1]) + d.setVar('IPMI_MINOR', versionList[2]) + d.setVar('IPMI_AUX13', hex(int(versionList[3]))) + d.setVar('IPMI_AUX14', '0x{}'.format(meta_hash[0:2])) + d.setVar('IPMI_AUX15', '0x{}'.format(meta_hash[2:4])) + d.setVar('IPMI_AUX16', '0x{}'.format(meta_hash[4:6])) + + build_id = irun_git(d, mibase, 'describe --abbrev=0') + if build_id: + d.setVar('BUILD_ID', build_id) +} |