summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBruce Ashfield <bruce.ashfield@windriver.com>2013-09-06 15:47:28 -0400
committerRichard Purdie <richard.purdie@linuxfoundation.org>2013-09-06 23:04:53 +0100
commitbaba8cff4829f1459fe5119515fe4e8052d73705 (patch)
treefe4d810ec2ee5693f89e37746a57186e5114f66d
parentfbd629745f80302f25bf0e758d25bec50eafc29f (diff)
downloadpoky-baba8cff4829f1459fe5119515fe4e8052d73705.tar.gz
kernel-yocto: improve error checking on non-git repos
While non-git kernel repos are not the preferred format for a kernel upstream, they are supported. Depending on the creator of the archive the expanded source directory name varies. If the recipe for the kernel doesn't properly set S to the right value, a cryptic git error message is produced. We can detect the situation and offer some advice on how to fix the issue. A second check is also added in this commit for archive based kernel repos which won't have a SRCREV to validate. If we have no SRCREV or SRCREV is INVALID, we can exit the branch validation step immediately. This saves yet another cryptic git error message and simplifies a custom tgz based recipe. (From OE-Core rev: 0ebf67e8b4f7aaf259d7abac4af645070d846ec8) Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--meta/classes/kernel-yocto.bbclass13
1 files changed, 12 insertions, 1 deletions
diff --git a/meta/classes/kernel-yocto.bbclass b/meta/classes/kernel-yocto.bbclass
index 26d449acd7..97a5fa7a27 100644
--- a/meta/classes/kernel-yocto.bbclass
+++ b/meta/classes/kernel-yocto.bbclass
@@ -176,7 +176,17 @@ do_kernel_checkout() {
176 # case 3: we have no git repository at all. 176 # case 3: we have no git repository at all.
177 # To support low bandwidth options for building the kernel, we'll just 177 # To support low bandwidth options for building the kernel, we'll just
178 # convert the tree to a git repo and let the rest of the process work unchanged 178 # convert the tree to a git repo and let the rest of the process work unchanged
179
180 # if ${S} hasn't been set to the proper subdirectory a default of "linux" is
181 # used, but we can't initialize that empty directory. So check it and throw a
182 # clear error
183
179 cd ${S} 184 cd ${S}
185 if [ ! -f "Makefile" ]; then
186 echo "[ERROR]: S is not set to the linux source directory. Check "
187 echo " the recipe and set S to the proper extracted subdirectory"
188 exit 1
189 fi
180 git init 190 git init
181 git add . 191 git add .
182 git commit -q -m "baseline commit: creating repo for ${PN}-${PV}" 192 git commit -q -m "baseline commit: creating repo for ${PN}-${PV}"
@@ -288,7 +298,8 @@ do_validate_branches() {
288 set +e 298 set +e
289 # if SRCREV is AUTOREV it shows up as AUTOINC there's nothing to 299 # if SRCREV is AUTOREV it shows up as AUTOINC there's nothing to
290 # check and we can exit early 300 # check and we can exit early
291 if [ "${SRCREV_machine}" = "AUTOINC" ]; then 301 if [ "${SRCREV_machine}" = "AUTOINC" ] || "${SRCREV_machine}" = "INVALID" ] ||
302 [ "${SRCREV_machine}" = "" ]; then
292 return 303 return
293 fi 304 fi
294 305