diff options
author | Max Krummenacher <max.krummenacher@toradex.com> | 2023-12-03 12:10:39 +0100 |
---|---|---|
committer | Max Krummenacher <max.krummenacher@toradex.com> | 2023-12-04 15:16:51 +0100 |
commit | 16a356ef0d5d62090e84530e125ea6952994aaeb (patch) | |
tree | f6669e3d9a0f06b822fdeb2e639299a9ede15f50 | |
parent | 0fc1504fb3c8721f80182f5ec54644efe1f1e842 (diff) | |
download | meta-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>
-rw-r--r-- | classes/fsl-kernel-localversion.bbclass | 14 |
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 |