[meta-ti] Denys Dmytriyenko : multi-kernel.inc: improve handling of configs with different version string

Arago Project git git at arago-project.org
Wed Nov 4 07:04:13 PST 2015


Module: meta-ti
Branch: master
Commit: 9e959a5e670518075ad08bee22a1543ba01097ff
URL:    http://arago-project.org/git/meta-ti.git?a=commit;h=9e959a5e670518075ad08bee22a1543ba01097ff

Author: Denys Dmytriyenko <denys at ti.com>
Date:   Wed Nov  4 06:24:21 2015 +0000

multi-kernel.inc: improve handling of configs with different version string

Signed-off-by: Denys Dmytriyenko <denys at ti.com>

---

 recipes-kernel/linux/multi-kernel.inc |   39 ++++++++++++++++++++++++--------
 1 files changed, 29 insertions(+), 10 deletions(-)

diff --git a/recipes-kernel/linux/multi-kernel.inc b/recipes-kernel/linux/multi-kernel.inc
index 5d21d4e..64701ed 100644
--- a/recipes-kernel/linux/multi-kernel.inc
+++ b/recipes-kernel/linux/multi-kernel.inc
@@ -21,8 +21,21 @@ inherit deploy
 SRC_URI += " \
            file://configs "
 
+def get_git_revision(p):
+    import subprocess
+
+    try:
+        return subprocess.Popen("git rev-parse HEAD 2>/dev/null ", cwd=p, shell=True, stdout=subprocess.PIPE).communicate()[0].rstrip()
+    except OSError:
+        return None
+
+KERNEL_LOCALVERSION = "-g${@get_git_revision('${S}').__str__()[:10]}"
+
 MULTI_CONFIG_BASE_SUFFIX = "multi-config-"
-MODULE_IMAGE_BASE_NAME ?= "modules-${PE}-${PV}-${PR}-${MACHINE}-${DATETIME}"
+
+KERNEL_IMAGE_BASE_NAME = "${KERNEL_IMAGETYPE}-${KERNEL_VERSION}-${PKGR}-${MACHINE}-${DATETIME}"
+MODULE_IMAGE_BASE_NAME = "modules-${KERNEL_VERSION}-${PKGR}-${MACHINE}-${DATETIME}"
+CONFIG_IMAGE_BASE_NAME = "config-${KERNEL_VERSION}-${PKGR}-${MACHINE}-${DATETIME}"
 
 EXTRA_OEMAKE = "${PARALLEL_MAKE} "
 
@@ -61,16 +74,22 @@ do_compileconfigs () {
             do_configure
             echo ${KERNEL_LOCALVERSION}-$(basename $configname) > ${B}/.scmversion
             echo ${KERNEL_LOCALVERSION}-$(basename $configname) > ${S}/.scmversion
-            kernel_do_compile
+            do_compile
             do_compile_kernelmodules
+            # Below lines are needed to satisfy do_install and it's cleanup code, which doesn't know about configname
             install -d "${D}/lib/modules/${KERNEL_VERSION}"
             touch "${D}/lib/modules/${KERNEL_VERSION}/build"
             touch "${D}/lib/modules/${KERNEL_VERSION}/source"
             install -d "${D}/lib/modules/${KERNEL_VERSION}/kernel"
-            kernel_do_install
-            rm "${D}/lib/modules/${KERNEL_VERSION}-$(basename $configname)/build"
-            rm "${D}/lib/modules/${KERNEL_VERSION}-$(basename $configname)/source"
-            rmdir --ignore-fail-on-non-empty "${D}/lib/modules/${KERNEL_VERSION}-$(basename $configname)/kernel"
+            do_install
+
+            # Remove unused symlinks specific to configname
+            rm "${D}/lib/modules/$(cut -d\" -f2 ${B}/include/generated/utsrelease.h)/build"
+            rm "${D}/lib/modules/$(cut -d\" -f2 ${B}/include/generated/utsrelease.h)/source"
+            # In case no modules were installed, remove empty dirs
+            rmdir --ignore-fail-on-non-empty "${D}/lib/modules/$(cut -d\" -f2 ${B}/include/generated/utsrelease.h)/kernel"
+            rmdir --ignore-fail-on-non-empty "${D}/lib/modules/$(cut -d\" -f2 ${B}/include/generated/utsrelease.h)"
+            # Also remove default location for modules used by do_install if empty
             rmdir --ignore-fail-on-non-empty "${D}/lib/modules/${KERNEL_VERSION}"
 
             # Drop the resulting images in the deploy dir
@@ -82,7 +101,7 @@ do_compileconfigs () {
             fi
 
             # Install the final config alongside the images
-            cp .config ${DEPLOYDIR}/config-${PV}-${PR}-${MACHINE}.${MULTI_CONFIG_BASE_SUFFIX}$(basename $configname).config
+            cp .config ${DEPLOYDIR}/${CONFIG_IMAGE_BASE_NAME}.${MULTI_CONFIG_BASE_SUFFIX}$(basename $configname).config
 
             # Create symlinks
             cd ${DEPLOYDIR}
@@ -91,7 +110,7 @@ do_compileconfigs () {
             rm -f modules-${MACHINE}.${MULTI_CONFIG_BASE_SUFFIX}$(basename $configname).tgz
             ln -sf ${MODULE_IMAGE_BASE_NAME}.${MULTI_CONFIG_BASE_SUFFIX}$(basename $configname).tgz modules-${MACHINE}.${MULTI_CONFIG_BASE_SUFFIX}$(basename $configname).tgz
             rm -f config-${MACHINE}.${MULTI_CONFIG_BASE_SUFFIX}$(basename $configname).config
-            ln -sf config-${PV}-${PR}-${MACHINE}.${MULTI_CONFIG_BASE_SUFFIX}$(basename $configname).config config-${MACHINE}.${MULTI_CONFIG_BASE_SUFFIX}$(basename $configname).config
+            ln -sf ${CONFIG_IMAGE_BASE_NAME}.${MULTI_CONFIG_BASE_SUFFIX}$(basename $configname).config config-${MACHINE}.${MULTI_CONFIG_BASE_SUFFIX}$(basename $configname).config
         done
 
         # Restore the regular 'defconfig'
@@ -106,12 +125,12 @@ do_deploy_append () {
     install -d ${DEPLOYDIR}
 
     # Drop the regular defconfig along side the others for consistency
-    cp ${B}/.config ${DEPLOYDIR}/config-${PV}-${PR}-${MACHINE}.config
+    cp ${B}/.config ${DEPLOYDIR}/${CONFIG_IMAGE_BASE_NAME}.config
 
     # add symlink
     cd ${DEPLOYDIR}
     rm -f config-${MACHINE}.config
-    ln -s config-${PV}-${PR}-${MACHINE}.config config-${MACHINE}.config
+    ln -s ${CONFIG_IMAGE_BASE_NAME}.config config-${MACHINE}.config
 
     rm -f modules-${MACHINE}.tgz
     ln -sf ${MODULE_IMAGE_BASE_NAME}.tgz modules-${MACHINE}.tgz



More information about the meta-ti mailing list