Bug 2046

Summary: Make KBRANCH default to a valid branch (not KMACHINE)
Product: [Build System, Metadata & Runtime] OE-Core Reporter: Darren Hart <dvhart>
Component: kernelAssignee: Bruce Ashfield <bruce.ashfield>
Status: VERIFIED FIXED QA Contact:
Severity: normal    
Priority: Medium CC: bruce.ashfield, song.liu, tom.zanussi
Version: 1.3   
Target Milestone: 1.3 M1   
Hardware: x86   
OS: Multiple   
Whiteboard: (Development)Mostly done, needs to be verified and closed.
OS type for building Yocto: --- Type of Regression: ---
Verified: Documentation change: ---

Description Darren Hart 2012-03-01 22:10:15 UTC
The current linux-yocto* recipes use a trick to define the KMACHINE and the KBRANCH together by specifying the branch in KMACHINE, and allowing the kernel tools to deduce the rest.

This results in forcing every bbappend to define the KBRANCH in addition to the KMACHINE (or also reusing the magic path as a KMACHINE).

Instead, bbappend writers shouldn't need to do anything more than define the KMACHINE in it's purest form, for example:

KMACHINE="fri2"

In order for this to work, the default KBRANCH from linux-yocto_3.0.bb (for example) needs to be:

KBRANCH="yocto/standard/base"

and not:

KBANCH="${KMACHINE}"

which would result in KBRANCH="fri2" and the do_validate_branch() task will fail (as fri2 is not a branch).

This is a rather invasive change which impacts every BSP. This needs to be done early in a release phase, marking for 1.3.
Comment 1 Darren Hart 2012-04-09 19:51:41 UTC
This should have been marked for 1.3, not 1.2. Bruce, iirc, this is already the case for the 3.3 development recipes / repository. Do I have that right?
Comment 2 Bruce Ashfield 2012-04-10 04:29:44 UTC
Correct. This is already done in the new tools and pending recipes.
Comment 3 Darren Hart 2012-05-17 16:32:42 UTC
Bruce, you've done the work here and are driving things, so I'm assigning to you.
Comment 4 Darren Hart 2012-06-14 16:39:58 UTC
For linux-yocto_3.4 this is now:
KBRANCH = "standard/base"

linux-yocto_3.2 is now:
KBRANCH = "standard/default/base"

linux-yocto_3.0 is now:
KBRANCH = "yocto/standard/base"

linux-yocto-tiny_3.2 is now:
KBRANCH = "standard/tiny"

linux-yocto-rt_3.2 is now:
KBRANCH = "standard/preempt-rt/base"

linux-yocto-rt_3.0 is now:
KBRANCH = "yocto/standard/preempt-rt/base"


These are all correct.

Bruce, this looks fixed to me.
Comment 5 Bruce Ashfield 2012-06-14 17:45:03 UTC
ack'd. This one is done. verified.