diff options
author | Bruce Ashfield <bruce.ashfield@windriver.com> | 2013-09-06 15:47:28 -0400 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2013-09-06 23:04:53 +0100 |
commit | baba8cff4829f1459fe5119515fe4e8052d73705 (patch) | |
tree | fe4d810ec2ee5693f89e37746a57186e5114f66d | |
parent | fbd629745f80302f25bf0e758d25bec50eafc29f (diff) | |
download | poky-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.bbclass | 13 |
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 | ||