On Fri, Mar 14, 2014 at 5:40 PM, Hart, Darren <darren.h...@intel.com> wrote: > On 3/14/14, 13:18, "Hart, Darren" <darren.h...@intel.com> wrote: > >>Trying to build minnow/dora with the latest linux-yocto 3.10-ltsi >>including the recent emgd fixes results in a build source tree that has no >>emgd patches applied. >> >>The recipe has good SRCREVs: >> >>Minnow linux-yocto_3.10.bbappend: >> >>SRC_URI_minnow = >>"git://git.yoctoproject.org/linux-yocto-3.10;protocol=git;nocheckout=1;bra >>n >>ch=${KBRANCH},${KMETA},emgd-1.18;name=machine,meta,emgd" >> >>SRCREV_machine_pn-linux-yocto_minnow ?= >>"78afd3095c9b37efbbfbfdc25eb3833ef3c6a718" >>SRCREV_meta_pn-linux-yocto_minnow ?= >>"6e0e756d51372c8b176c5d1e6f786545bceed351" >>SRCREV_emgd_pn-linux-yocto_minnow ?= >>"42d5e4548e8e79e094fa8697949eed4cf6af00a3" >> >> >>I verified with bitbake -e that is indeed using the correct SRC_URI and >>SRCREVs. >> >>After a clean all and fresh linux-yocto build: >> >>$ cd >>tmp/work/minnow-poky-linux/linux-yocto/3.10.32+gitAUTOINC+6e0e756d51_78afd >>3 >>095c-r0/linux >>$ git rev-parse HEAD >>78afd3095c9b37efbbfbfdc25eb3833ef3c6a718 >> >>This is the tip of standard/base. Appears as though the ddm-emgd feature >>was not applied. But... >> >>$ grep emgd .meta/meta-series >> # _mark drm-emgd-1.18.scc start >># _kconf hardware >>/build/yocto/dora/minnow_20131203165453/build/tmp/work/minnow-poky-linux/l >>i >>nux-yocto/3.10.32+gitAUTOINC+6e0e756d51_78afd3095c-r0/linux/.meta/cfg/kern >>e >>l-cache/features/drm-emgd/drm-emgd.cfg >># _git merge emgd-1.18 >> # _mark drm-emgd-1.18.scc en >> >> >>So it did attempt to merge in the branch... >> >>$ git rev-parse emgd-1.18 >>78afd3095c9b37efbbfbfdc25eb3833ef3c6a718 >> >> >>Well... That's not good, emgd-1.18 is the same as standard/base in this >>checkout (although clearly not in the upstream repository). Any ideas what >>is going on here? I would guess one of my SRCREVs was wrong (or possibly >>the name of the variable in the recipe), but they all seem correct to me, >>and no warnings are issued that I have seen. > > > OK, I found it. It's rather ugly. > > do_validate_branches resets the HEAD of any branch that contains > SRCREV_machine. So if a feature branch is current with standard/base for > example, that feature branch gets reset to standard/base.
Yep, and the answer is, don't set SRCREV to that value :) > > Why on earth does this blob of time suckage exist? Check the mailing list archives, I've answered this about 3 times :) It has to work like this, it is fixing a specific set of bugs that were reported, and changes can break that workflow. The point is that *any* branch can be built in the tree, since the .scc files describe the BSP and the BSP descriptions have the branching information. The SRCREV and branch are in the recipe to keep the fetcher happy, but to make them actually *mean* something to the build (like any other git based build .. which resets the tree to SRCREV) then any branch that contains that SRCREV is reset to that same point. So no matter where a BSP wanders, it finds what you've specified as the SRCREV. Moral of the story, make sure that your SRCREV is what you want to build, not a default value. I've actually re-written the branch validation based on top of the fact that the fetcher now does a lot of this checking for me, so the code is a lot simpler. Bruce > > kernel-yocto.bbclass: > 349 |───────# force the SRCREV in each branch that contains the specified > 350 |───────# SRCREV (if it isn't the current HEAD of that branch) > 351 |───────git checkout -q master > 352 |───────for b in $containing_branches; do > 354 |───────|───────branch_head=`git show-ref -s --heads > ${b}`|─────|─────── > 355 |───────|───────if [ "$branch_head" != "$target_branch_head" ]; then > 356 |───────|───────|───────echo "[INFO] Setting branch $b to > ${target_branch_head}" > 357 |───────|───────|───────if [ "$b" = "master" ]; then > 358 |───────|───────|───────|───────git reset --hard $target_branch_head > > /dev/null > 359 |───────|───────|───────else > 360 |───────|───────|───────|───────git branch -D $b > /dev/null > 361 |───────|───────|───────|───────git branch $b $target_branch_head > > /dev/null > 362 |───────|───────|───────fi > 363 |───────|───────fi > 364 |───────done > > > > -- > Darren Hart > Yocto Project - Linux Kernel > Intel Open Source Technology Center > > > > -- > _______________________________________________ > linux-yocto mailing list > linux-yocto@yoctoproject.org > https://lists.yoctoproject.org/listinfo/linux-yocto -- "Thou shalt not follow the NULL pointer, for chaos and madness await thee at its end" -- _______________________________________________ linux-yocto mailing list linux-yocto@yoctoproject.org https://lists.yoctoproject.org/listinfo/linux-yocto