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:01:52 +0100 | 
| commit | 0ebf67e8b4f7aaf259d7abac4af645070d846ec8 (patch) | |
| tree | 1c5219a214f3317ba8093afade12d4f52cbd4ff3 | |
| parent | 410a4db2faec084a0e918dfce9fcb6c54d2aeaaf (diff) | |
| download | openembedded-core-0ebf67e8b4f7aaf259d7abac4af645070d846ec8.tar.gz openembedded-core-0ebf67e8b4f7aaf259d7abac4af645070d846ec8.tar.bz2 openembedded-core-0ebf67e8b4f7aaf259d7abac4af645070d846ec8.zip | |
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.
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() {  		# 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 | 
