diff options
Diffstat (limited to 'meta/classes')
-rw-r--r-- | meta/classes/kernel-yocto.bbclass | 33 |
1 files changed, 12 insertions, 21 deletions
diff --git a/meta/classes/kernel-yocto.bbclass b/meta/classes/kernel-yocto.bbclass index 6010dc94e0..6c92427704 100644 --- a/meta/classes/kernel-yocto.bbclass +++ b/meta/classes/kernel-yocto.bbclass | |||
@@ -296,12 +296,14 @@ do_validate_branches() { | |||
296 | export KMETA=${KMETA} | 296 | export KMETA=${KMETA} |
297 | 297 | ||
298 | machine_branch="${@ get_machine_branch(d, "${KBRANCH}" )}" | 298 | machine_branch="${@ get_machine_branch(d, "${KBRANCH}" )}" |
299 | machine_srcrev="${SRCREV_machine}" | ||
299 | 300 | ||
300 | set +e | 301 | set +e |
301 | # if SRCREV is AUTOREV it shows up as AUTOINC there's nothing to | 302 | # if SRCREV is AUTOREV it shows up as AUTOINC there's nothing to |
302 | # check and we can exit early | 303 | # check and we can exit early |
303 | if [ "${SRCREV_machine}" = "AUTOINC" ] || [ "${SRCREV_machine}" = "INVALID" ] || | 304 | if [ "${machine_srcrev}" = "AUTOINC" ] || [ "${machine_srcrev}" = "INVALID" ] || |
304 | [ "${SRCREV_machine}" = "" ]; then | 305 | [ "${machine_srcrev}" = "" ]; then |
306 | bbnote "INFO: SRCREV validation is not required for AUTOREV or empty/invalid settings, returning" | ||
305 | return | 307 | return |
306 | fi | 308 | fi |
307 | 309 | ||
@@ -319,27 +321,16 @@ do_validate_branches() { | |||
319 | fi | 321 | fi |
320 | fi | 322 | fi |
321 | 323 | ||
322 | if [ -z "${SRCREV_machine}" ]; then | 324 | ref=`git show ${machine_srcrev} 2>&1 | head -n1 || true` |
323 | target_branch_head="${SRCREV}" | ||
324 | else | ||
325 | target_branch_head="${SRCREV_machine}" | ||
326 | fi | ||
327 | |||
328 | # $SRCREV could have also been AUTOINC, so check again | ||
329 | if [ "${target_branch_head}" = "AUTOINC" ]; then | ||
330 | return | ||
331 | fi | ||
332 | |||
333 | ref=`git show ${target_branch_head} 2>&1 | head -n1 || true` | ||
334 | if [ "$ref" = "fatal: bad object ${target_meta_head}" ]; then | 325 | if [ "$ref" = "fatal: bad object ${target_meta_head}" ]; then |
335 | echo "ERROR ${target_branch_head} is not a valid commit ID." | 326 | echo "ERROR ${machine_srcrev} is not a valid commit ID." |
336 | echo "The kernel source tree may be out of sync" | 327 | echo "The kernel source tree may be out of sync" |
337 | exit 1 | 328 | exit 1 |
338 | fi | 329 | fi |
339 | 330 | ||
340 | containing_branches=`git branch --contains $target_branch_head | sed 's/^..//'` | 331 | containing_branches=`git branch --contains $machine_srcrev | sed 's/^..//'` |
341 | if [ -z "$containing_branches" ]; then | 332 | if [ -z "$containing_branches" ]; then |
342 | echo "ERROR: SRCREV was set to \"$target_branch_head\", but no branches" | 333 | echo "ERROR: SRCREV was set to \"$machine_srcrev\", but no branches" |
343 | echo " contain this commit" | 334 | echo " contain this commit" |
344 | exit 1 | 335 | exit 1 |
345 | fi | 336 | fi |
@@ -349,13 +340,13 @@ do_validate_branches() { | |||
349 | git checkout -q master | 340 | git checkout -q master |
350 | for b in $containing_branches; do | 341 | for b in $containing_branches; do |
351 | branch_head=`git show-ref -s --heads ${b}` | 342 | branch_head=`git show-ref -s --heads ${b}` |
352 | if [ "$branch_head" != "$target_branch_head" ]; then | 343 | if [ "$branch_head" != "$machine_srcrev" ]; then |
353 | echo "[INFO] Setting branch $b to ${target_branch_head}" | 344 | echo "[INFO] Setting branch $b to ${machine_srcrev}" |
354 | if [ "$b" = "master" ]; then | 345 | if [ "$b" = "master" ]; then |
355 | git reset --hard $target_branch_head > /dev/null | 346 | git reset --hard $machine_srcrev > /dev/null |
356 | else | 347 | else |
357 | git branch -D $b > /dev/null | 348 | git branch -D $b > /dev/null |
358 | git branch $b $target_branch_head > /dev/null | 349 | git branch $b $machine_srcrev > /dev/null |
359 | fi | 350 | fi |
360 | fi | 351 | fi |
361 | done | 352 | done |