summaryrefslogtreecommitdiffstats
path: root/classes
diff options
context:
space:
mode:
authorMax Krummenacher <max.krummenacher@toradex.com>2023-12-03 12:10:39 +0100
committerMax Krummenacher <max.krummenacher@toradex.com>2023-12-04 15:16:51 +0100
commit16a356ef0d5d62090e84530e125ea6952994aaeb (patch)
treef6669e3d9a0f06b822fdeb2e639299a9ede15f50 /classes
parent0fc1504fb3c8721f80182f5ec54644efe1f1e842 (diff)
downloadmeta-freescale-16a356ef0d5d62090e84530e125ea6952994aaeb.tar.gz
fsl-kernel-localversion: fix SRCREV_machine and AUTOREV use cases
Depending on how one uses the Yocto kernel classes the kernels hash is defined in either "SRCREV_machine" or "SRCREV". If "SRCREV_machine" is in use, "SRCREV" stays at its bitbake default "INVALID". If the "SRCREV_machine" or "SRCREV" is set to "AUTOREV" that value is replaced by "AUTOINC". If using "SRCREV_machine" and/or "AUTOREV" do_kernel_localversion fails | run.do_kernel_localversion:158 exit 128 from 'head=`git --git-dir=.../.git rev-parse --verify --short INVALID 2> /dev/null`' Cope with both use cases. Fixes: 41537394 ("classes: make localversion classes deterministic") Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
Diffstat (limited to 'classes')
-rw-r--r--classes/fsl-kernel-localversion.bbclass14
1 files changed, 12 insertions, 2 deletions
diff --git a/classes/fsl-kernel-localversion.bbclass b/classes/fsl-kernel-localversion.bbclass
index f7e0908f..9ef0a62f 100644
--- a/classes/fsl-kernel-localversion.bbclass
+++ b/classes/fsl-kernel-localversion.bbclass
@@ -25,8 +25,18 @@ do_kernel_localversion() {
25 25
26 if [ "${SCMVERSION}" = "y" ]; then 26 if [ "${SCMVERSION}" = "y" ]; then
27 # Add GIT revision to the local version 27 # Add GIT revision to the local version
28 head=`git --git-dir=${S}/.git rev-parse --verify --short ${SRCREV} 2> /dev/null` 28 if [ "${SRCREV}" = "INVALID" ]; then
29 patches=`git --git-dir=${S}/.git rev-list --count ${SRCREV}..HEAD 2> /dev/null` 29 hash=${SRCREV_machine}
30 else
31 hash=${SRCREV}
32 fi
33 if [ "$hash" = "AUTOINC" ]; then
34 branch=`git --git-dir=${S}/.git symbolic-ref --short -q HEAD`
35 head=`git --git-dir=${S}/.git rev-parse --verify --short origin/${branch} 2> /dev/null`
36 else
37 head=`git --git-dir=${S}/.git rev-parse --verify --short $hash 2> /dev/null`
38 fi
39 patches=`git --git-dir=${S}/.git rev-list --count $head..HEAD 2> /dev/null`
30 printf "%s%s%s%s" +g $head +p $patches > ${S}/.scmversion 40 printf "%s%s%s%s" +g $head +p $patches > ${S}/.scmversion
31 41
32 sed -i -e "/CONFIG_LOCALVERSION_AUTO[ =]/d" ${B}/.config 42 sed -i -e "/CONFIG_LOCALVERSION_AUTO[ =]/d" ${B}/.config