summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--meta/classes/kernel-yocto.bbclass39
1 files changed, 23 insertions, 16 deletions
diff --git a/meta/classes/kernel-yocto.bbclass b/meta/classes/kernel-yocto.bbclass
index 38c886b21b..4938712c7c 100644
--- a/meta/classes/kernel-yocto.bbclass
+++ b/meta/classes/kernel-yocto.bbclass
@@ -71,6 +71,7 @@ do_patch() {
71 fi 71 fi
72 72
73 machine_branch="${@ get_machine_branch(d, "${KBRANCH}" )}" 73 machine_branch="${@ get_machine_branch(d, "${KBRANCH}" )}"
74 machine_srcrev="${SRCREV_machine}"
74 75
75 # if we have a defined/set meta branch we should not be generating 76 # if we have a defined/set meta branch we should not be generating
76 # any meta data. The passed branch has what we need. 77 # any meta data. The passed branch has what we need.
@@ -122,6 +123,17 @@ do_patch() {
122 exit 1 123 exit 1
123 fi 124 fi
124 125
126 # see if the branch we are about to patch has been properly reset to the defined
127 # SRCREV .. if not, we reset it.
128 branch_head=`git rev-parse HEAD`
129 if [ "${machine_srcrev}" != "AUTOINC" ]; then
130 if [ "${machine_srcrev}" != "${branch_head}" ]; then
131 current_branch=`git rev-parse --abbrev-ref HEAD`
132 git branch "$current_branch-orig"
133 git reset --hard ${machine_srcrev}
134 fi
135 fi
136
125 # executes and modifies the source tree as required 137 # executes and modifies the source tree as required
126 patchme ${KMACHINE} 138 patchme ${KMACHINE}
127 if [ $? -ne 0 ]; then 139 if [ $? -ne 0 ]; then
@@ -130,6 +142,17 @@ do_patch() {
130 exit 1 142 exit 1
131 fi 143 fi
132 144
145 # check to see if the specified SRCREV is reachable from the final branch.
146 # if it wasn't something wrong has happened, and we should error.
147 if [ "${machine_srcrev}" != "AUTOINC" ]; then
148 git merge-base --is-ancestor ${machine_srcrev} HEAD
149 if [ $? -ne 0 ]; then
150 bbnote "ERROR: SRCREV ${machine_srcrev} was specified, but is not reachable"
151 bbnote " Check the BSP description for incorrect branch selection, or other errors."
152 exit 1
153 fi
154 fi
155
133 # Perform a final check. If something other than the default kernel 156 # Perform a final check. If something other than the default kernel
134 # branch was requested, and that's not where we ended up, then we 157 # branch was requested, and that's not where we ended up, then we
135 # should thrown an error, since we aren't building what was expected 158 # should thrown an error, since we aren't building what was expected
@@ -335,22 +358,6 @@ do_validate_branches() {
335 exit 1 358 exit 1
336 fi 359 fi
337 360
338 # force the SRCREV in each branch that contains the specified
339 # SRCREV (if it isn't the current HEAD of that branch)
340 git checkout -q master
341 for b in $containing_branches; do
342 branch_head=`git show-ref -s --heads ${b}`
343 if [ "$branch_head" != "$machine_srcrev" ]; then
344 echo "[INFO] Setting branch $b to ${machine_srcrev}"
345 if [ "$b" = "master" ]; then
346 git reset --hard $machine_srcrev > /dev/null
347 else
348 git branch -D $b > /dev/null
349 git branch $b $machine_srcrev > /dev/null
350 fi
351 fi
352 done
353
354 ## KMETA branch validation. 361 ## KMETA branch validation.
355 ## We do validation if the meta branch exists, and AUTOREV hasn't been set 362 ## We do validation if the meta branch exists, and AUTOREV hasn't been set
356 meta_head=`git show-ref -s --heads ${KMETA}` 363 meta_head=`git show-ref -s --heads ${KMETA}`