diff --git a/common/recipes-core/os-release/os-release.bbappend b/common/recipes-core/os-release/os-release.bbappend
index 64f0fed..9c599ee 100644
--- a/common/recipes-core/os-release/os-release.bbappend
+++ b/common/recipes-core/os-release/os-release.bbappend
@@ -1,22 +1,22 @@
 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
+    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')
-        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')
+    if version_id:
+        d.setVar('VERSION_ID', version_id)
+        versionList = version_id.split('-')
+        version = versionList[0] + "-" + versionList[1]
+        d.setVar('VERSION', version)
 
-        build_id = run_git(d, 'describe --abbrev=0')
-        if build_id:
-                d.setVar('BUILD_ID', build_id)
+    build_id = run_git(d, 'describe --abbrev=0')
+    if build_id:
+        d.setVar('BUILD_ID', build_id)
 }
 
 OS_RELEASE_FIELDS_append = " BUILD_ID"
