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.

Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
Change-Id: Iea2fd406f4e8b8843cdbcc8da4f2f29664344a27
diff --git a/recipes-core/os-release/os-release.bbappend b/recipes-core/os-release/os-release.bbappend
index c010146..0f938c3 100644
--- a/recipes-core/os-release/os-release.bbappend
+++ b/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"