[OE-core] [PATCH 1/4] linux-yocto: make KBRANCH the exception and not the rule

Richard Purdie richard.purdie at linuxfoundation.org
Sat Aug 18 12:07:45 UTC 2012


On Wed, 2012-08-15 at 16:06 -0400, Bruce Ashfield wrote:
> The kernel branch is no longer required by the yocto-kern-tools
> to locate BSP feature descriptions (it is the MACHINE:KTYPE
> descriptor), so we no longer require that the BSP branch be
> explicitly set.
> 
> If a kernel branch is explicitly set, it is now used to trigger
> a checks to ensure that the branch really is being built.
> Otherwise the branch that the machine description creates will
> be built (just as it always was).
> 
> This further simplies the use and configuration of a linux-yocto
> based kernel recipe.

[...]

>  
> -	# We have SRCREVs and we have branches so validation can continue!
> -	current=`git branch |grep \*|sed 's/^\* //'`
> -	if [ -n "$target_branch_head" ] && [ "$branch_head" != "$target_branch_head" ] &&
> -           [ "$target_branch_head" != "AUTOINC" ]; then
> -		ref=`git show ${target_branch_head} 2>&1 | head -n1 || true`
> -		if [ "$ref" = "fatal: bad object ${target_meta_head}" ]; then
> -			echo "ERROR ${target_branch_head} is not a valid commit ID."
> -			echo "The kernel source tree may be out of sync"
> -			exit 1
> -		else
> -			echo "Forcing branch $current to ${target_branch_head}"
> -			git branch -m $current $current-orig
> -			git checkout -b $current ${target_branch_head}
> -		fi
> +	containing_branches=`git branch --contains $target_branch_head | sed 's/^..//'`
> +	if [ -z "$containing_branches" ]; then
> +		echo "ERROR: SRCREV was set to \"$target_branch_head\", but no branches"
> +		echo "       contain this commit"
> +		exit 1
> +	fi
> +	ref=`git show ${target_branch_head} 2>&1 | head -n1 || true`
> +	if [ "$ref" = "fatal: bad object ${target_meta_head}" ]; then
> +	    echo "ERROR ${target_branch_head} is not a valid commit ID."
> +	    echo "The kernel source tree may be out of sync"
> +	    exit 1
>  	fi

There is a bit of uncertainty flying around at the moment about why
these changes are failing on the autobuilder. For example:

http://autobuilder.yoctoproject.org:8010/builders/nightly-mips/builds/560/steps/shell_138/logs/stdio

Log data follows:
| DEBUG: Executing shell function do_validate_branches
| ERROR: SRCREV was set to "1c17c082b6ee565acc176cde5be835ac4269817b", but no branches
|        contain this commit
| ERROR: Function failed: do_validate_branches

It looks like:

http://git.yoctoproject.org/cgit.cgi/poky/commit/bitbake/lib/bb/fetch2/git.py?id=64662290d3e7deb0b6093b3959c3f3eddb873893

doesn't totally fix the problem. It allows the correct revisions to be
found and sets alternatives correctly but imports the wrong branch
config.

I don't really want to have to require a patched git binary so we may
end up having to rebuild the branch structure manually.

I guess the older code cared less about the branch name and more about
the revisions being present.

Cheers,

Richard









More information about the Openembedded-core mailing list