os-release: switch python to variable expansion

The previous implementation of the OpenBMC os-release.bbappends
used a python function to inject `git` results into Python
variables.  Since the python function is then executed at multiple
task phases, it can result in the hash value changing between tasks,
which causes bitbake failures.

Rewrite the os-release implementation to use forced immediate
variable expansion, rather than a python function.  This, combined
with BB_DONT_CACHE, allows the variables to be expanded once at
recipe parse time and the values to continue through to the rest of
the task phases without affecting the hash.

Fixes openbmc/openbmc#3720.

(From meta-phosphor rev: 5266d02bd2a8a6d3a6e047b212f06c7e7aaacb36)

Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
Change-Id: If221573cdfefc2b0496a0ef2aca4d3cbc82abb7b
Signed-off-by: Andrew Geissler <geissonator@yahoo.com>
diff --git a/meta-phosphor/recipes-core/os-release/os-release.bbappend b/meta-phosphor/recipes-core/os-release/os-release.bbappend
index c010146..0f938c3 100644
--- a/meta-phosphor/recipes-core/os-release/os-release.bbappend
+++ b/meta-phosphor/recipes-core/os-release/os-release.bbappend
@@ -13,22 +13,11 @@
     except:
         pass
 
-python() {
-    version_id = run_git(d, 'describe --dirty --long')
-    if version_id:
-        d.setVar('VERSION_ID', version_id)
-        versionList = version_id.split('-')
-        version = versionList[0] + "-" + versionList[1]
-        d.setVar('VERSION', version)
+VERSION_ID := "${@run_git(d, 'describe --dirty --long')}"
+VERSION = "${@'-'.join(d.getVar('VERSION_ID').split('-')[0:2])}"
 
-    build_id = run_git(d, 'describe --abbrev=0')
-    if build_id:
-        d.setVar('BUILD_ID', build_id)
-
-    target_machine = d.getVar('MACHINE', True)
-    if target_machine:
-        d.setVar('OPENBMC_TARGET_MACHINE', target_machine)
-}
+BUILD_ID := "${@run_git(d, 'describe --abbrev=0')}"
+OPENBMC_TARGET_MACHINE = "${MACHINE}"
 
 OS_RELEASE_FIELDS_append = " BUILD_ID OPENBMC_TARGET_MACHINE"