diff options
author | Denys Dmytriyenko <denys@ti.com> | 2015-11-04 06:24:21 +0000 |
---|---|---|
committer | Denys Dmytriyenko <denys@ti.com> | 2015-11-04 10:04:01 -0500 |
commit | 9e959a5e670518075ad08bee22a1543ba01097ff (patch) | |
tree | 124332e2d344b8fbde39d8e1e70a6166bbc8ce2b /recipes-kernel | |
parent | 489224afdc22cd949fcc3b4215fe1bb2110d6b98 (diff) | |
download | meta-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.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 5d21d4ec..64701ed4 100644 --- a/recipes-kernel/linux/multi-kernel.inc +++ b/recipes-kernel/linux/multi-kernel.inc | |||
@@ -21,8 +21,21 @@ inherit deploy | |||
21 | SRC_URI += " \ | 21 | SRC_URI += " \ |
22 | file://configs " | 22 | file://configs " |
23 | 23 | ||
24 | def 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 | |||
32 | KERNEL_LOCALVERSION = "-g${@get_git_revision('${S}').__str__()[:10]}" | ||
33 | |||
24 | MULTI_CONFIG_BASE_SUFFIX = "multi-config-" | 34 | MULTI_CONFIG_BASE_SUFFIX = "multi-config-" |
25 | MODULE_IMAGE_BASE_NAME ?= "modules-${PE}-${PV}-${PR}-${MACHINE}-${DATETIME}" | 35 | |
36 | KERNEL_IMAGE_BASE_NAME = "${KERNEL_IMAGETYPE}-${KERNEL_VERSION}-${PKGR}-${MACHINE}-${DATETIME}" | ||
37 | MODULE_IMAGE_BASE_NAME = "modules-${KERNEL_VERSION}-${PKGR}-${MACHINE}-${DATETIME}" | ||
38 | CONFIG_IMAGE_BASE_NAME = "config-${KERNEL_VERSION}-${PKGR}-${MACHINE}-${DATETIME}" | ||
26 | 39 | ||
27 | EXTRA_OEMAKE = "${PARALLEL_MAKE} " | 40 | EXTRA_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 |