From baba8cff4829f1459fe5119515fe4e8052d73705 Mon Sep 17 00:00:00 2001 From: Bruce Ashfield Date: Fri, 6 Sep 2013 15:47:28 -0400 Subject: 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 Signed-off-by: Richard Purdie --- meta/classes/kernel-yocto.bbclass | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) (limited to 'meta/classes') 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() { # case 3: we have no git repository at all. # To support low bandwidth options for building the kernel, we'll just # convert the tree to a git repo and let the rest of the process work unchanged + + # if ${S} hasn't been set to the proper subdirectory a default of "linux" is + # used, but we can't initialize that empty directory. So check it and throw a + # clear error + cd ${S} + if [ ! -f "Makefile" ]; then + echo "[ERROR]: S is not set to the linux source directory. Check " + echo " the recipe and set S to the proper extracted subdirectory" + exit 1 + fi git init git add . git commit -q -m "baseline commit: creating repo for ${PN}-${PV}" @@ -288,7 +298,8 @@ do_validate_branches() { set +e # if SRCREV is AUTOREV it shows up as AUTOINC there's nothing to # check and we can exit early - if [ "${SRCREV_machine}" = "AUTOINC" ]; then + if [ "${SRCREV_machine}" = "AUTOINC" ] || "${SRCREV_machine}" = "INVALID" ] || + [ "${SRCREV_machine}" = "" ]; then return fi -- cgit v1.2.3-54-g00ecf