* [PATCH 0/1] [denzil] linux-yocto: make validate_branches handle non BSP branches
@ 2012-08-13 17:10 Bruce Ashfield
2012-08-13 17:10 ` [PATCH 1/1] linux-yocto: allow do_validate_branches to handle all branches Bruce Ashfield
2012-08-22 5:27 ` [PATCH 0/1] [denzil] linux-yocto: make validate_branches handle non BSP branches Tom Zanussi
0 siblings, 2 replies; 7+ messages in thread
From: Bruce Ashfield @ 2012-08-13 17:10 UTC (permalink / raw)
To: scott.a.garman; +Cc: openembedded-core
Scott,
Here's a fix for validate_branches that comes from a pending master
change that I've been running for 3 weeks, and one that TomZ has tested
in his yocto BSP work on denzil.
It fixes some BSP use cases that involve setting a specific SRCREV
on a base branch, so that a BSP branch that doesn't yet exist can
be created off of that known base. Previously only an existing BSP
branch could have it's SRCREV restricted.
cc: Tom Zanussi <tom.zanussi@intel.com>
Cheers,
Bruce
The following changes since commit 73cdebf60df225ee10f2eb215935be3b61e1b831:
documentation/dev-manual/dev-manual-kernel-appendix.xml: Add note about conflict (2012-06-29 15:54:26 +0100)
are available in the git repository at:
git://git.pokylinux.org/poky-contrib zedd/kernel-denzil
http://git.pokylinux.org/cgit.cgi/poky-contrib/log/?h=zedd/kernel-denzil
Bruce Ashfield (1):
linux-yocto: allow do_validate_branches to handle all branches
meta/classes/kernel-yocto.bbclass | 119 +++++++++++++++++++++++++------------
1 files changed, 80 insertions(+), 39 deletions(-)
--
1.7.5.4
^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH 1/1] linux-yocto: allow do_validate_branches to handle all branches
2012-08-13 17:10 [PATCH 0/1] [denzil] linux-yocto: make validate_branches handle non BSP branches Bruce Ashfield
@ 2012-08-13 17:10 ` Bruce Ashfield
2012-08-22 5:27 ` [PATCH 0/1] [denzil] linux-yocto: make validate_branches handle non BSP branches Tom Zanussi
1 sibling, 0 replies; 7+ messages in thread
From: Bruce Ashfield @ 2012-08-13 17:10 UTC (permalink / raw)
To: scott.a.garman; +Cc: openembedded-core
Branch validation will not restrict a branch that doesn't exist
in the tree at the time of validation (since you can't reset a
SRCREV on a non-existent branch). This restriction can be removed
by looking for all branches that contain the specified SRCREV
and forcing them to that value.
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
---
meta/classes/kernel-yocto.bbclass | 119 +++++++++++++++++++++++++------------
1 files changed, 80 insertions(+), 39 deletions(-)
diff --git a/meta/classes/kernel-yocto.bbclass b/meta/classes/kernel-yocto.bbclass
index c995a2e..d859d76 100644
--- a/meta/classes/kernel-yocto.bbclass
+++ b/meta/classes/kernel-yocto.bbclass
@@ -214,63 +214,104 @@ python do_kernel_configcheck() {
bb.plain( "%s" % result )
}
-
-# Ensure that the branches (BSP and meta) are on the locatios specified by
+# Ensure that the branches (BSP and meta) are on the locations specified by
# their SRCREV values. If they are NOT on the right commits, the branches
-# are reset to the correct commit.
+# are corrected to the proper commit.
do_validate_branches() {
cd ${S}
+ export KMETA=${KMETA}
- # nothing to do if bootstrapping
- if [ -n "${YOCTO_KERNEL_EXTERNAL_BRANCH}" ]; then
- return
- fi
-
- # nothing to do if SRCREV is AUTOREV
+ 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
- # restore the branch for builds
- git checkout -f ${KBRANCH}
return
fi
- branch_head=`git show-ref -s --heads ${KBRANCH}`
+ # If something other than the default branch was requested, it must
+ # exist in the tree, and it's a hard error if it wasn't
+ git show-ref --quiet --verify -- "refs/heads/${KBRANCH}"
+ if [ $? -eq 1 ]; then
+ if [ -n "${KBRANCH_DEFAULT}" ] &&
+ [ "${KBRANCH}" != "${KBRANCH_DEFAULT}" ]; then
+ echo "ERROR: branch ${KBRANCH} was set for kernel compilation, "
+ echo " but it does not exist in the kernel repository."
+ echo " Check the value of KBRANCH and ensure that it describes"
+ echo " a valid banch in the source kernel repository"
+ exit 1
+ fi
+ fi
+
+ if [ -z "${SRCREV_machine}" ]; then
+ target_branch_head="${SRCREV}"
+ else
+ target_branch_head="${SRCREV_machine}"
+ fi
+
+ # $SRCREV could have also been AUTOINC, so check again
+ if [ "${target_branch_head}" = "AUTOINC" ]; then
+ return
+ 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
+
+ # force the SRCREV in each branch that contains the specified
+ # SRCREV (if it isn't the current HEAD of that branch)
+ git checkout -q master
+ for b in $containing_branches; do
+ branch_head=`git show-ref -s --heads ${b}`
+ if [ "$branch_head" != "$target_branch_head" ]; then
+ echo "[INFO] Setting branch $b to ${target_branch_head}"
+ git branch -D $b > /dev/null
+ git branch $b $target_branch_head > /dev/null
+ fi
+ done
+
+ ## KMETA branch validation
meta_head=`git show-ref -s --heads ${KMETA}`
- target_branch_head="${SRCREV_machine}"
target_meta_head="${SRCREV_meta}"
+ git show-ref --quiet --verify -- "refs/heads/${KMETA}"
+ if [ $? -eq 1 ]; then
+ return
+ fi
- current=`git branch |grep \*|sed 's/^\* //'`
- if [ -n "$target_branch_head" ] && [ "$branch_head" != "$target_branch_head" ]; then
- if [ -n "${KERNEL_REVISION_CHECKING}" ]; then
- ref=`git show ${target_meta_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
- fi
+ if [ "${target_meta_head}" = "AUTOINC" ]; then
+ return
fi
if [ "$meta_head" != "$target_meta_head" ]; then
- if [ -n "${KERNEL_REVISION_CHECKING}" ]; then
- ref=`git show ${target_meta_head} 2>&1 | head -n1 || true`
- if [ "$ref" = "fatal: bad object ${target_meta_head}" ]; then
- echo "ERROR ${target_meta_head} is not a valid commit ID"
- echo "The kernel source tree may be out of sync"
+ ref=`git show ${target_meta_head} 2>&1 | head -n1 || true`
+ if [ "$ref" = "fatal: bad object ${target_meta_head}" ]; then
+ echo "ERROR ${target_meta_head} is not a valid commit ID"
+ echo "The kernel source tree may be out of sync"
+ exit 1
+ else
+ echo "[INFO] Setting branch ${KMETA} to ${target_meta_head}"
+ git branch -m ${KMETA} ${KMETA}-orig
+ git checkout -q -b ${KMETA} ${target_meta_head}
+ if [ $? -ne 0 ];then
+ echo "ERROR: could not checkout ${KMETA} branch from known hash ${target_meta_head}"
exit 1
- else
- echo "Forcing branch meta to ${target_meta_head}"
- git branch -m ${KMETA} ${KMETA}-orig
- git checkout -b ${KMETA} ${target_meta_head}
- fi
+ fi
fi
fi
- # restore the branch for builds
- git checkout -f ${KBRANCH}
+ git show-ref --quiet --verify -- "refs/heads/${KBRANCH}"
+ if [ $? -eq 0 ]; then
+ # restore the branch for builds
+ git checkout -q -f ${KBRANCH}
+ fi
}
# Many scripts want to look in arch/$arch/boot for the bootable
--
1.7.5.4
^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH 0/1] [denzil] linux-yocto: make validate_branches handle non BSP branches
2012-08-13 17:10 [PATCH 0/1] [denzil] linux-yocto: make validate_branches handle non BSP branches Bruce Ashfield
2012-08-13 17:10 ` [PATCH 1/1] linux-yocto: allow do_validate_branches to handle all branches Bruce Ashfield
@ 2012-08-22 5:27 ` Tom Zanussi
2012-08-22 5:48 ` Bruce Ashfield
2012-08-24 8:08 ` Scott Garman
1 sibling, 2 replies; 7+ messages in thread
From: Tom Zanussi @ 2012-08-22 5:27 UTC (permalink / raw)
To: Bruce Ashfield; +Cc: openembedded-core, scott.a.garman
On Mon, 2012-08-13 at 13:10 -0400, Bruce Ashfield wrote:
> Scott,
>
> Here's a fix for validate_branches that comes from a pending master
> change that I've been running for 3 weeks, and one that TomZ has tested
> in his yocto BSP work on denzil.
>
> It fixes some BSP use cases that involve setting a specific SRCREV
> on a base branch, so that a BSP branch that doesn't yet exist can
> be created off of that known base. Previously only an existing BSP
> branch could have it's SRCREV restricted.
>
Hi Scott,
I don't see this in denzil - do you have it queued for the next pull
request, or did it get missed?
Tom
> cc: Tom Zanussi <tom.zanussi@intel.com>
>
> Cheers,
>
> Bruce
>
> The following changes since commit 73cdebf60df225ee10f2eb215935be3b61e1b831:
>
> documentation/dev-manual/dev-manual-kernel-appendix.xml: Add note about conflict (2012-06-29 15:54:26 +0100)
>
> are available in the git repository at:
> git://git.pokylinux.org/poky-contrib zedd/kernel-denzil
> http://git.pokylinux.org/cgit.cgi/poky-contrib/log/?h=zedd/kernel-denzil
>
> Bruce Ashfield (1):
> linux-yocto: allow do_validate_branches to handle all branches
>
> meta/classes/kernel-yocto.bbclass | 119 +++++++++++++++++++++++++------------
> 1 files changed, 80 insertions(+), 39 deletions(-)
>
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH 0/1] [denzil] linux-yocto: make validate_branches handle non BSP branches
2012-08-22 5:27 ` [PATCH 0/1] [denzil] linux-yocto: make validate_branches handle non BSP branches Tom Zanussi
@ 2012-08-22 5:48 ` Bruce Ashfield
2012-08-23 19:18 ` Tom Zanussi
2012-08-24 8:08 ` Scott Garman
1 sibling, 1 reply; 7+ messages in thread
From: Bruce Ashfield @ 2012-08-22 5:48 UTC (permalink / raw)
To: Tom Zanussi; +Cc: openembedded-core, scott.a.garman
[-- Attachment #1: Type: text/plain, Size: 1627 bytes --]
On 12-08-22 1:27 AM, Tom Zanussi wrote:
> On Mon, 2012-08-13 at 13:10 -0400, Bruce Ashfield wrote:
>> Scott,
>>
>> Here's a fix for validate_branches that comes from a pending master
>> change that I've been running for 3 weeks, and one that TomZ has tested
>> in his yocto BSP work on denzil.
>>
>> It fixes some BSP use cases that involve setting a specific SRCREV
>> on a base branch, so that a BSP branch that doesn't yet exist can
>> be created off of that known base. Previously only an existing BSP
>> branch could have it's SRCREV restricted.
>>
>
> Hi Scott,
>
> I don't see this in denzil - do you have it queued for the next pull
> request, or did it get missed?
I was wondering the same thing, in particular, since I just made a minor
tweak to this in master (which I'll send out tomorrow). The attached
patch should also be merged to denzil.
Bruce
>
> Tom
>
>> cc: Tom Zanussi<tom.zanussi@intel.com>
>>
>> Cheers,
>>
>> Bruce
>>
>> The following changes since commit 73cdebf60df225ee10f2eb215935be3b61e1b831:
>>
>> documentation/dev-manual/dev-manual-kernel-appendix.xml: Add note about conflict (2012-06-29 15:54:26 +0100)
>>
>> are available in the git repository at:
>> git://git.pokylinux.org/poky-contrib zedd/kernel-denzil
>> http://git.pokylinux.org/cgit.cgi/poky-contrib/log/?h=zedd/kernel-denzil
>>
>> Bruce Ashfield (1):
>> linux-yocto: allow do_validate_branches to handle all branches
>>
>> meta/classes/kernel-yocto.bbclass | 119 +++++++++++++++++++++++++------------
>> 1 files changed, 80 insertions(+), 39 deletions(-)
>>
>
>
[-- Attachment #2: 0001-kernel-yocto-set-master-branch-to-a-defined-SRCREV.patch --]
[-- Type: application/mbox, Size: 1628 bytes --]
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH 0/1] [denzil] linux-yocto: make validate_branches handle non BSP branches
2012-08-22 5:48 ` Bruce Ashfield
@ 2012-08-23 19:18 ` Tom Zanussi
2012-08-23 19:21 ` Bruce Ashfield
0 siblings, 1 reply; 7+ messages in thread
From: Tom Zanussi @ 2012-08-23 19:18 UTC (permalink / raw)
To: Bruce Ashfield; +Cc: openembedded-core, scott.a.garman
On Wed, 2012-08-22 at 01:48 -0400, Bruce Ashfield wrote:
> On 12-08-22 1:27 AM, Tom Zanussi wrote:
> > On Mon, 2012-08-13 at 13:10 -0400, Bruce Ashfield wrote:
> >> Scott,
> >>
> >> Here's a fix for validate_branches that comes from a pending master
> >> change that I've been running for 3 weeks, and one that TomZ has tested
> >> in his yocto BSP work on denzil.
> >>
> >> It fixes some BSP use cases that involve setting a specific SRCREV
> >> on a base branch, so that a BSP branch that doesn't yet exist can
> >> be created off of that known base. Previously only an existing BSP
> >> branch could have it's SRCREV restricted.
> >>
> >
> > Hi Scott,
> >
> > I don't see this in denzil - do you have it queued for the next pull
> > request, or did it get missed?
>
> I was wondering the same thing, in particular, since I just made a minor
> tweak to this in master (which I'll send out tomorrow). The attached
> patch should also be merged to denzil.
>
I tried the above patch on top of the other, built and booted a qemu arm
bsp generated by yocto-bsp, and didn't see any problems FWIW...
Tom
> Bruce
>
> >
> > Tom
> >
> >> cc: Tom Zanussi<tom.zanussi@intel.com>
> >>
> >> Cheers,
> >>
> >> Bruce
> >>
> >> The following changes since commit 73cdebf60df225ee10f2eb215935be3b61e1b831:
> >>
> >> documentation/dev-manual/dev-manual-kernel-appendix.xml: Add note about conflict (2012-06-29 15:54:26 +0100)
> >>
> >> are available in the git repository at:
> >> git://git.pokylinux.org/poky-contrib zedd/kernel-denzil
> >> http://git.pokylinux.org/cgit.cgi/poky-contrib/log/?h=zedd/kernel-denzil
> >>
> >> Bruce Ashfield (1):
> >> linux-yocto: allow do_validate_branches to handle all branches
> >>
> >> meta/classes/kernel-yocto.bbclass | 119 +++++++++++++++++++++++++------------
> >> 1 files changed, 80 insertions(+), 39 deletions(-)
> >>
> >
> >
>
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH 0/1] [denzil] linux-yocto: make validate_branches handle non BSP branches
2012-08-23 19:18 ` Tom Zanussi
@ 2012-08-23 19:21 ` Bruce Ashfield
0 siblings, 0 replies; 7+ messages in thread
From: Bruce Ashfield @ 2012-08-23 19:21 UTC (permalink / raw)
To: Tom Zanussi; +Cc: openembedded-core, scott.a.garman
On 12-08-23 03:18 PM, Tom Zanussi wrote:
> On Wed, 2012-08-22 at 01:48 -0400, Bruce Ashfield wrote:
>> On 12-08-22 1:27 AM, Tom Zanussi wrote:
>>> On Mon, 2012-08-13 at 13:10 -0400, Bruce Ashfield wrote:
>>>> Scott,
>>>>
>>>> Here's a fix for validate_branches that comes from a pending master
>>>> change that I've been running for 3 weeks, and one that TomZ has tested
>>>> in his yocto BSP work on denzil.
>>>>
>>>> It fixes some BSP use cases that involve setting a specific SRCREV
>>>> on a base branch, so that a BSP branch that doesn't yet exist can
>>>> be created off of that known base. Previously only an existing BSP
>>>> branch could have it's SRCREV restricted.
>>>>
>>>
>>> Hi Scott,
>>>
>>> I don't see this in denzil - do you have it queued for the next pull
>>> request, or did it get missed?
>>
>> I was wondering the same thing, in particular, since I just made a minor
>> tweak to this in master (which I'll send out tomorrow). The attached
>> patch should also be merged to denzil.
>>
>
> I tried the above patch on top of the other, built and booted a qemu arm
> bsp generated by yocto-bsp, and didn't see any problems FWIW...
Good news. It will make the bsp tooling more robust for new boards.
Cheers,
Bruce
>
> Tom
>
>> Bruce
>>
>>>
>>> Tom
>>>
>>>> cc: Tom Zanussi<tom.zanussi@intel.com>
>>>>
>>>> Cheers,
>>>>
>>>> Bruce
>>>>
>>>> The following changes since commit 73cdebf60df225ee10f2eb215935be3b61e1b831:
>>>>
>>>> documentation/dev-manual/dev-manual-kernel-appendix.xml: Add note about conflict (2012-06-29 15:54:26 +0100)
>>>>
>>>> are available in the git repository at:
>>>> git://git.pokylinux.org/poky-contrib zedd/kernel-denzil
>>>> http://git.pokylinux.org/cgit.cgi/poky-contrib/log/?h=zedd/kernel-denzil
>>>>
>>>> Bruce Ashfield (1):
>>>> linux-yocto: allow do_validate_branches to handle all branches
>>>>
>>>> meta/classes/kernel-yocto.bbclass | 119 +++++++++++++++++++++++++------------
>>>> 1 files changed, 80 insertions(+), 39 deletions(-)
>>>>
>>>
>>>
>>
>
>
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH 0/1] [denzil] linux-yocto: make validate_branches handle non BSP branches
2012-08-22 5:27 ` [PATCH 0/1] [denzil] linux-yocto: make validate_branches handle non BSP branches Tom Zanussi
2012-08-22 5:48 ` Bruce Ashfield
@ 2012-08-24 8:08 ` Scott Garman
1 sibling, 0 replies; 7+ messages in thread
From: Scott Garman @ 2012-08-24 8:08 UTC (permalink / raw)
To: Tom Zanussi; +Cc: openembedded-core
On 08/21/2012 10:27 PM, Tom Zanussi wrote:
> On Mon, 2012-08-13 at 13:10 -0400, Bruce Ashfield wrote:
>> Scott,
>>
>> Here's a fix for validate_branches that comes from a pending master
>> change that I've been running for 3 weeks, and one that TomZ has tested
>> in his yocto BSP work on denzil.
>>
>> It fixes some BSP use cases that involve setting a specific SRCREV
>> on a base branch, so that a BSP branch that doesn't yet exist can
>> be created off of that known base. Previously only an existing BSP
>> branch could have it's SRCREV restricted.
>>
>
> Hi Scott,
>
> I don't see this in denzil - do you have it queued for the next pull
> request, or did it get missed?
>
> Tom
Sorry about this - it did get missed. I now have it in my denzil-next
branches and I'm planning to submit a pull request sometime next week.
Scott
--
Scott Garman
Embedded Linux Engineer - Yocto Project
Intel Open Source Technology Center
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2012-08-24 8:19 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-08-13 17:10 [PATCH 0/1] [denzil] linux-yocto: make validate_branches handle non BSP branches Bruce Ashfield
2012-08-13 17:10 ` [PATCH 1/1] linux-yocto: allow do_validate_branches to handle all branches Bruce Ashfield
2012-08-22 5:27 ` [PATCH 0/1] [denzil] linux-yocto: make validate_branches handle non BSP branches Tom Zanussi
2012-08-22 5:48 ` Bruce Ashfield
2012-08-23 19:18 ` Tom Zanussi
2012-08-23 19:21 ` Bruce Ashfield
2012-08-24 8:08 ` Scott Garman
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox