From 5f7403151fc8bfd5b1d77f6626717c8b84d33d93 Mon Sep 17 00:00:00 2001 From: Petter Mabäcker Date: Wed, 8 Jul 2015 21:02:03 +0200 Subject: kernel-yocto: fix machine_srcrev check in do_patch MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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] ... or: git merge-base [-a|--all] --octopus ... or: git merge-base --independent ... or: git merge-base --is-ancestor or: git merge-base --fork-point [] -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 forked from reflog of + [ = ] + 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 Signed-off-by: Ross Burton --- meta/classes/kernel-yocto.bbclass | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'meta/classes/kernel-yocto.bbclass') 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" -- cgit 1.2.3-korg