diff options
| author | Max Krummenacher <max.krummenacher@toradex.com> | 2023-12-03 12:10:39 +0100 |
|---|---|---|
| committer | github-actions[bot] <github-actions[bot]@users.noreply.github.com> | 2023-12-04 14:30:58 +0000 |
| commit | 84c08eb2921c6c35cdfee142356a7ae6f48eb23d (patch) | |
| tree | 554692e0d8082ff25dbe5df8fd446f608632373f | |
| parent | 62452549927794e9857bff6b49b368303ea4fbf4 (diff) | |
| download | meta-freescale-84c08eb2921c6c35cdfee142356a7ae6f48eb23d.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>
(cherry picked from commit 16a356ef0d5d62090e84530e125ea6952994aaeb)
| -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 f7e0908fd..9ef0a62f6 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 |
