# WARNING! # # These modifications to os-release disable the bitbake parse # cache (for the os-release recipe only). Before copying # and pasting into another recipe ensure it is understood # what that means! def run_git(d, cmd): try: oeroot = d.getVar('COREBASE', True) return bb.process.run(("export PSEUDO_DISABLED=1; " + "git --work-tree %s --git-dir %s/.git %s") % (oeroot, oeroot, cmd))[0].strip('\n') except Exception as e: bb.warn("Unexpected exception from 'git' call: %s" % e) pass # DISTRO_VERSION can be overridden by a bbappend or config, so it must be a # weak override. But, when a variable is weakly overridden the definition # and not the contents are used in the task-hash (for sstate reuse). We need # a strong variable in the vardeps chain for do_compile so that we get the # contents of the 'git describe --dirty' call. Create a strong/immediate # indirection via PHOSPHOR_OS_RELEASE_DISTRO_VERSION. PHOSPHOR_OS_RELEASE_DISTRO_VERSION := "${@run_git(d, 'describe --dirty')}" DISTRO_VERSION ??= "${PHOSPHOR_OS_RELEASE_DISTRO_VERSION}" VERSION = "${@'-'.join(d.getVar('VERSION_ID').split('-')[0:2])}" BUILD_ID := "${@run_git(d, 'describe --abbrev=0')}" OPENBMC_TARGET_MACHINE = "${MACHINE}" OS_RELEASE_FIELDS:append = " BUILD_ID OPENBMC_TARGET_MACHINE EXTENDED_VERSION" # Ensure the git commands run every time bitbake is invoked. BB_DONT_CACHE = "1" # Make os-release available to other recipes. SYSROOT_DIRS:append = " ${sysconfdir}"