meta-phosphor: Improve kernel version string

The kernel version string by yocto by default is <tag>-<revision>, e.g.

    5.0.7-b1b37a25644213428f4bab4c427581dd923e35da

Where the revision is the version specified by SRCREV, no matter if
there are additional pathces applied or not.

This commit improves it by

* If there are no yocto patches, keep the current version but use a
  shorter revision, e.g. 5.0.7-b1b37a2
* If there are yocto patches, append -dirty-<new-short-revision> to the
  version string, e.g. 5.0.7-b1b37a2-dirty-84fa553

Resolves openbmc/openbmc#1289

Tested: Verify the kernel version string is changed as above depending
        on if there are yocto patches.

(From meta-phosphor rev: fcfd10d7380309bc274c4f5a8355ecaeb60ce439)

Change-Id: I4210227a981721a6b322d640984ea58c57802cb1
Signed-off-by: Lei YU <mine260309@gmail.com>
Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
diff --git a/meta-phosphor/classes/obmc-phosphor-kernel-version.bbclass b/meta-phosphor/classes/obmc-phosphor-kernel-version.bbclass
new file mode 100644
index 0000000..8fa8947
--- /dev/null
+++ b/meta-phosphor/classes/obmc-phosphor-kernel-version.bbclass
@@ -0,0 +1,17 @@
+do_kernel_configme_append() {
+    # Remove previous CONFIG_LOCALVERSION
+    sed -i '/CONFIG_LOCALVERSION/d' ${B}/.config
+
+    # Latest version after yocto patched (if any)
+    latestVersion="-$(git rev-parse --verify HEAD)"
+    shortLatestVersion="$(echo ${latestVersion} | cut -c1-8)"
+
+    shortLinuxVersionExt="$(echo ${LINUX_VERSION_EXTENSION} | cut -c1-8)"
+
+    if [ "${latestVersion}" != "${LINUX_VERSION_EXTENSION}" ]; then
+        dirtyString="-dirty"
+        echo "CONFIG_LOCALVERSION="\"${shortLinuxVersionExt}${dirtyString}${shortLatestVersion}\" >> ${B}/.config
+    else
+        echo "CONFIG_LOCALVERSION="\"${shortLinuxVersionExt}\" >> ${B}/.config
+    fi
+}