summaryrefslogtreecommitdiffstats
path: root/recipes-kernel
diff options
context:
space:
mode:
authorDenys Dmytriyenko <denys@ti.com>2015-11-04 06:24:21 +0000
committerDenys Dmytriyenko <denys@ti.com>2015-11-04 10:04:01 -0500
commit9e959a5e670518075ad08bee22a1543ba01097ff (patch)
tree124332e2d344b8fbde39d8e1e70a6166bbc8ce2b /recipes-kernel
parent489224afdc22cd949fcc3b4215fe1bb2110d6b98 (diff)
downloadmeta-ti-9e959a5e670518075ad08bee22a1543ba01097ff.tar.gz
multi-kernel.inc: improve handling of configs with different version string
Signed-off-by: Denys Dmytriyenko <denys@ti.com>
Diffstat (limited to 'recipes-kernel')
-rw-r--r--recipes-kernel/linux/multi-kernel.inc39
1 files changed, 29 insertions, 10 deletions
diff --git a/recipes-kernel/linux/multi-kernel.inc b/recipes-kernel/linux/multi-kernel.inc
index 5d21d4ec..64701ed4 100644
--- a/recipes-kernel/linux/multi-kernel.inc
+++ b/recipes-kernel/linux/multi-kernel.inc
@@ -21,8 +21,21 @@ inherit deploy
21SRC_URI += " \ 21SRC_URI += " \
22 file://configs " 22 file://configs "
23 23
24def get_git_revision(p):
25 import subprocess
26
27 try:
28 return subprocess.Popen("git rev-parse HEAD 2>/dev/null ", cwd=p, shell=True, stdout=subprocess.PIPE).communicate()[0].rstrip()
29 except OSError:
30 return None
31
32KERNEL_LOCALVERSION = "-g${@get_git_revision('${S}').__str__()[:10]}"
33
24MULTI_CONFIG_BASE_SUFFIX = "multi-config-" 34MULTI_CONFIG_BASE_SUFFIX = "multi-config-"
25MODULE_IMAGE_BASE_NAME ?= "modules-${PE}-${PV}-${PR}-${MACHINE}-${DATETIME}" 35
36KERNEL_IMAGE_BASE_NAME = "${KERNEL_IMAGETYPE}-${KERNEL_VERSION}-${PKGR}-${MACHINE}-${DATETIME}"
37MODULE_IMAGE_BASE_NAME = "modules-${KERNEL_VERSION}-${PKGR}-${MACHINE}-${DATETIME}"
38CONFIG_IMAGE_BASE_NAME = "config-${KERNEL_VERSION}-${PKGR}-${MACHINE}-${DATETIME}"
26 39
27EXTRA_OEMAKE = "${PARALLEL_MAKE} " 40EXTRA_OEMAKE = "${PARALLEL_MAKE} "
28 41
@@ -61,16 +74,22 @@ do_compileconfigs () {
61 do_configure 74 do_configure
62 echo ${KERNEL_LOCALVERSION}-$(basename $configname) > ${B}/.scmversion 75 echo ${KERNEL_LOCALVERSION}-$(basename $configname) > ${B}/.scmversion
63 echo ${KERNEL_LOCALVERSION}-$(basename $configname) > ${S}/.scmversion 76 echo ${KERNEL_LOCALVERSION}-$(basename $configname) > ${S}/.scmversion
64 kernel_do_compile 77 do_compile
65 do_compile_kernelmodules 78 do_compile_kernelmodules
79 # Below lines are needed to satisfy do_install and it's cleanup code, which doesn't know about configname
66 install -d "${D}/lib/modules/${KERNEL_VERSION}" 80 install -d "${D}/lib/modules/${KERNEL_VERSION}"
67 touch "${D}/lib/modules/${KERNEL_VERSION}/build" 81 touch "${D}/lib/modules/${KERNEL_VERSION}/build"
68 touch "${D}/lib/modules/${KERNEL_VERSION}/source" 82 touch "${D}/lib/modules/${KERNEL_VERSION}/source"
69 install -d "${D}/lib/modules/${KERNEL_VERSION}/kernel" 83 install -d "${D}/lib/modules/${KERNEL_VERSION}/kernel"
70 kernel_do_install 84 do_install
71 rm "${D}/lib/modules/${KERNEL_VERSION}-$(basename $configname)/build" 85
72 rm "${D}/lib/modules/${KERNEL_VERSION}-$(basename $configname)/source" 86 # Remove unused symlinks specific to configname
73 rmdir --ignore-fail-on-non-empty "${D}/lib/modules/${KERNEL_VERSION}-$(basename $configname)/kernel" 87 rm "${D}/lib/modules/$(cut -d\" -f2 ${B}/include/generated/utsrelease.h)/build"
88 rm "${D}/lib/modules/$(cut -d\" -f2 ${B}/include/generated/utsrelease.h)/source"
89 # In case no modules were installed, remove empty dirs
90 rmdir --ignore-fail-on-non-empty "${D}/lib/modules/$(cut -d\" -f2 ${B}/include/generated/utsrelease.h)/kernel"
91 rmdir --ignore-fail-on-non-empty "${D}/lib/modules/$(cut -d\" -f2 ${B}/include/generated/utsrelease.h)"
92 # Also remove default location for modules used by do_install if empty
74 rmdir --ignore-fail-on-non-empty "${D}/lib/modules/${KERNEL_VERSION}" 93 rmdir --ignore-fail-on-non-empty "${D}/lib/modules/${KERNEL_VERSION}"
75 94
76 # Drop the resulting images in the deploy dir 95 # Drop the resulting images in the deploy dir
@@ -82,7 +101,7 @@ do_compileconfigs () {
82 fi 101 fi
83 102
84 # Install the final config alongside the images 103 # Install the final config alongside the images
85 cp .config ${DEPLOYDIR}/config-${PV}-${PR}-${MACHINE}.${MULTI_CONFIG_BASE_SUFFIX}$(basename $configname).config 104 cp .config ${DEPLOYDIR}/${CONFIG_IMAGE_BASE_NAME}.${MULTI_CONFIG_BASE_SUFFIX}$(basename $configname).config
86 105
87 # Create symlinks 106 # Create symlinks
88 cd ${DEPLOYDIR} 107 cd ${DEPLOYDIR}
@@ -91,7 +110,7 @@ do_compileconfigs () {
91 rm -f modules-${MACHINE}.${MULTI_CONFIG_BASE_SUFFIX}$(basename $configname).tgz 110 rm -f modules-${MACHINE}.${MULTI_CONFIG_BASE_SUFFIX}$(basename $configname).tgz
92 ln -sf ${MODULE_IMAGE_BASE_NAME}.${MULTI_CONFIG_BASE_SUFFIX}$(basename $configname).tgz modules-${MACHINE}.${MULTI_CONFIG_BASE_SUFFIX}$(basename $configname).tgz 111 ln -sf ${MODULE_IMAGE_BASE_NAME}.${MULTI_CONFIG_BASE_SUFFIX}$(basename $configname).tgz modules-${MACHINE}.${MULTI_CONFIG_BASE_SUFFIX}$(basename $configname).tgz
93 rm -f config-${MACHINE}.${MULTI_CONFIG_BASE_SUFFIX}$(basename $configname).config 112 rm -f config-${MACHINE}.${MULTI_CONFIG_BASE_SUFFIX}$(basename $configname).config
94 ln -sf config-${PV}-${PR}-${MACHINE}.${MULTI_CONFIG_BASE_SUFFIX}$(basename $configname).config config-${MACHINE}.${MULTI_CONFIG_BASE_SUFFIX}$(basename $configname).config 113 ln -sf ${CONFIG_IMAGE_BASE_NAME}.${MULTI_CONFIG_BASE_SUFFIX}$(basename $configname).config config-${MACHINE}.${MULTI_CONFIG_BASE_SUFFIX}$(basename $configname).config
95 done 114 done
96 115
97 # Restore the regular 'defconfig' 116 # Restore the regular 'defconfig'
@@ -106,12 +125,12 @@ do_deploy_append () {
106 install -d ${DEPLOYDIR} 125 install -d ${DEPLOYDIR}
107 126
108 # Drop the regular defconfig along side the others for consistency 127 # Drop the regular defconfig along side the others for consistency
109 cp ${B}/.config ${DEPLOYDIR}/config-${PV}-${PR}-${MACHINE}.config 128 cp ${B}/.config ${DEPLOYDIR}/${CONFIG_IMAGE_BASE_NAME}.config
110 129
111 # add symlink 130 # add symlink
112 cd ${DEPLOYDIR} 131 cd ${DEPLOYDIR}
113 rm -f config-${MACHINE}.config 132 rm -f config-${MACHINE}.config
114 ln -s config-${PV}-${PR}-${MACHINE}.config config-${MACHINE}.config 133 ln -s ${CONFIG_IMAGE_BASE_NAME}.config config-${MACHINE}.config
115 134
116 rm -f modules-${MACHINE}.tgz 135 rm -f modules-${MACHINE}.tgz
117 ln -sf ${MODULE_IMAGE_BASE_NAME}.tgz modules-${MACHINE}.tgz 136 ln -sf ${MODULE_IMAGE_BASE_NAME}.tgz modules-${MACHINE}.tgz