mirror of
https://git.yoctoproject.org/poky
synced 2026-04-04 23:02:22 +02:00
kernel-yocto: make sure git tags get dereferenced properly in do_patch()
Commit 92c1ece6c3 causes the test in do_patch()
in kernel-yocto.bbclass to fail if ${machine_srcrev} is an annotated tag. The
check is meant to ensure that ${machine_srcrev} is an ancestor of HEAD, but
if ${machine_srcrev} is a tag, then "$(git rev-parse --verify
${machine_srcrev})" evaluates to the SHA of the tag instead of what it's
pointing to.
Replacing "$(git rev-parse --verify ${machine_srcrev})" with "$(git rev-parse
--verify ${machine_srcrev}~0)" fixed the problem by finding the object pointed
to by the tag, and not the tag itself. This also works for commit IDs that
are not tags, hence is safe in a scenarios.
Jeff Wang <jeffrey.wang@ll.mit.edu>
(From OE-Core rev: f79c9334f670ed6fce86047fbadb817af8d4fe14)
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
committed by
Richard Purdie
parent
5b71b69355
commit
6a5a2dff3c
@@ -129,7 +129,7 @@ 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.
|
||||
if [ "${machine_srcrev}" != "AUTOINC" ]; then
|
||||
if ! [ "$(git rev-parse --verify ${machine_srcrev})" = "$(git merge-base ${machine_srcrev} HEAD)" ]; 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"
|
||||
bbfatal "Check the BSP description for incorrect branch selection, or other errors."
|
||||
fi
|
||||
|
||||
Reference in New Issue
Block a user