John, On Tue, Feb 25, 2014 at 12:59 AM, John Weber <[email protected]> wrote: > On 2/24/14, 2:27 PM, Robin Findley wrote: >> >> On 2014-02-24 12:51, John Weber wrote: >>> >>> Here is a question someone might be able to quickly answer. >>> >>> I want to be able to override the SRCREV, SRCBRANCH, and the git >>> repository >> >> for >>> >>> the kernel recipe in local.conf. I like to do this so that I can do >>> local >>> hacking on a kernel without having to edit the recipe files themselves, >>> and >> >> I >>> >>> find that managing local.conf is easier when I'm changing SRCREVs a lot. >>> >>> I've been able to override SRCBRANCH by doing this: >>> >>> In recipes-kernel/linux/linux-wandboard.inc: >>> >>> SRCBRANCH ??= "master" >>> >>> The default is set in recipes-kernel/linux/linux-wandboard_3.10.17.bb: >>> >>> SRCBRANCH ?= "<the-default-branch>" >>> >>> Then, in local.conf, I can override it: >>> >>> SRCBRANCH_linux-wandboard = "<my-local-hacking-branch>" >>> >>> This works fine for SRCBRANCH. If I do the same thing with SRCREV, it >> >> doesn't >>> >>> seem to work. I've done this: >>> >>> In linux-wandboard_3.10.17.bb: >>> >>> SRCREV ??= "<default big long commit id>" >>> >>> In local.conf: >>> >>> SRCREV_linux-wandboard = "<my local branch commit id>" >>> >>> I always get the checkout of the SRCREV assignment done in the recipe >>> file, >> >> not >>> >>> the one I set in local.conf. >>> >>> Any idea why? The only thing I can think of is that SRCREV is evaluated >> >> completely before >>> >>> local.conf settings are evaluated. >> >> >> John, you were close. Here's an example from my local.conf: >> >> PREFERRED_VERSION_linux-wandboard = "3.10.17" >> SRCBRANCH_pn-linux-wandboard = "wandboard_imx_3.10.17_1.0.0_beta_test" >> SRCREV_pn-linux-wandboard = "4299c87fd4d46fd786d1600c57986b1fe164138a" > > Beautiful. Thanks for the help. This works. > >> >> You may want to double-check if your SRCBRANCH override really did work as >> you >> expected. I think you need the "_pn-". > > Yes. In my setup I had modified the assignment of SRCBRANCH to the weakest > one (??=) in the linux-wandboard.inc file and then set it using a stronger > one (?=) in the recipe (.bb) file, and then finally set it using the hardest > one (=) in the local.conf. I certainly do not have a solid foundation in > these assignment operators. :-)
No; this is wrong. ??= is late setting operator. So basically if noone sets it (either a ?=) it is used. Another difference is that the last evaluated value for ??= is used. So: A ??= "value1" A ??= "value2" A is value2 But A ??= "value1" A ?= "valuenew" A ??= "value2" A is valuenew ?= is weak setting; so: A ?= "value1" A ?= "value2" A is value1. > Using this method I was able to remove those other changes, so this is all > good stuff. What does the _pn- do? In other recipes it serves as a short > reference for packagename, I think. Same here. pn- is a way to target the override to the package itself. The reason why this works is due BitBake code: http://git.yoctoproject.org/cgit/cgit.cgi/poky/tree/bitbake/lib/bb/fetch2/__init__.py#n870 But SRCREV_linux-wandboard should work in this case. I'd like to debug it here if you can send your working patch so we can understand why it did not. -- Otavio Salvador O.S. Systems http://www.ossystems.com.br http://code.ossystems.com.br Mobile: +55 (53) 9981-7854 Mobile: +1 (347) 903-9750 _______________________________________________ meta-freescale mailing list [email protected] https://lists.yoctoproject.org/listinfo/meta-freescale
