summaryrefslogtreecommitdiff
path: root/meta/classes/kernel-yocto.bbclass
diff options
context:
space:
mode:
authorPetter Mabäcker <petter@technux.se>2015-07-08 21:02:03 +0200
committerRichard Purdie <richard.purdie@linuxfoundation.org>2015-07-16 15:08:42 +0100
commit5f7403151fc8bfd5b1d77f6626717c8b84d33d93 (patch)
tree94956098bd58c468e02275bcf39c512a8178a37a /meta/classes/kernel-yocto.bbclass
parent80ec9f62791575de4948d7635dc6674abfac2193 (diff)
downloadopenembedded-core-5f7403151fc8bfd5b1d77f6626717c8b84d33d93.tar.gz
openembedded-core-5f7403151fc8bfd5b1d77f6626717c8b84d33d93.tar.bz2
openembedded-core-5f7403151fc8bfd5b1d77f6626717c8b84d33d93.zip
kernel-yocto: fix machine_srcrev check in do_patch
do_patch is currently doing checks with machine_srcrev without initiate it which leads to below (additional debug added): DEBUG: Executing shell function do_patch . . . + [ 0 -ne 0 ] + [ != AUTOINC ] + git rev-parse --verify ~0 fatal: Needed a single revision + git merge-base HEAD usage: git merge-base [-a|--all] <commit> <commit>... or: git merge-base [-a|--all] --octopus <commit>... or: git merge-base --independent <commit>... or: git merge-base --is-ancestor <commit> <commit> or: git merge-base --fork-point <ref> [<commit>] -a, --all output all common ancestors --octopus find ancestors for a single n-way merge --independent list revs not reachable from others --is-ancestor is the first one ancestor of the other? --fork-point find where <commit> forked from reflog of <ref> + [ = ] + set +x DEBUG: Shell function do_patch finished Only reason it works today is because 'rev-parse/merge-base' with empty machine_srcrev will result in "false positive". Solve this by adding a similar non-empty check and use SRCREV as fallback as in 'do_kernel_metadata' Signed-off-by: Petter Mabäcker <petter@technux.se> Signed-off-by: Ross Burton <ross.burton@intel.com>
Diffstat (limited to 'meta/classes/kernel-yocto.bbclass')
-rw-r--r--meta/classes/kernel-yocto.bbclass10
1 files changed, 10 insertions, 0 deletions
diff --git a/meta/classes/kernel-yocto.bbclass b/meta/classes/kernel-yocto.bbclass
index 6fd025ef1e..fb14926fad 100644
--- a/meta/classes/kernel-yocto.bbclass
+++ b/meta/classes/kernel-yocto.bbclass
@@ -168,6 +168,16 @@ do_patch() {
# check to see if the specified SRCREV is reachable from the final branch.
# if it wasn't something wrong has happened, and we should error.
+ machine_srcrev="${SRCREV_machine}"
+ if [ -z "${machine_srcrev}" ]; then
+ # fallback to SRCREV if a non machine_meta tree is being built
+ machine_srcrev="${SRCREV}"
+ # if SRCREV cannot be reached something is wrong.
+ if [ -z "${machine_srcrev}" ]; then
+ bbfatal "Neither SRCREV_machine or SRCREV was specified!"
+ fi
+ fi
+
if [ "${machine_srcrev}" != "AUTOINC" ]; then
if ! [ "$(git rev-parse --verify ${machine_srcrev}~0)" = "$(git merge-base ${machine_srcrev} HEAD)" ]; then
bberror "SRCREV ${machine_srcrev} was specified, but is not reachable"