Re: Using "latest git" versions of recipes


Joel A Cohen
 

Hmm, that is a very good suggestion that I hadn't thought of. I guess the only disadvantage is that PV doesn't get changed so you end up having to keep track of which "recipe_1.0.0.rpm" is the test one and which is the good version, but even that you could probably do:

SRCREV_pn-recipe1 = "${AUTOREV}"
PV_pn-recipe1 = "1.0.1+git${SRCPV}"  # I'm not sure if this would actually work?

My bbclass thing is a little easier if you have to do a bunch of those, but maybe not worthwhile then.

Thanks!
Aaron


On Tue, Feb 25, 2020 at 1:30 PM Denys Dmytriyenko <denis@...> wrote:
On Tue, Feb 25, 2020 at 01:21:53PM -0500, Joel A Cohen wrote:
> Hi all,
>
> What I've done for quite a while when creating recipes for code that is
> under heavy development is create 2 version of the recipe.
>
> 1) recipe_1.0.0.bb (a known-stable recipe)
>
> 2) recipe_git.bb (which contains something like:
> SRCREV="${AUTOREV}"
> SRCPV="1.0.1+git${SRCPV}"
> DEFAULT_PREFERENCE = "-1"
>
>
> The major problem I have with this, is that it defeats BB_NO_NETWORK, even
> if I'm not using the git version of the recipe (because bitbake wants to go
> check what the latest version is of the recipe during parsing).
>
> I'm currently experimenting with a different approapch, which seems to have
> several advantages. I wanted to share it and get commentary.
>
> 1) Add a new class, "use-git.bbclass":
> # This allows using the latest version of the source without requiring a
> separate
> # "recipe_git.bb". To use:
> # 1) Add: INHERIT += "use-git"
> # 2) Add: GIT_PNS = "recipe1 recipe2 etc"
>
> GIT_PNS ?= ""
> GIT_PNS[type] = "list"
>
> python () {
>     pn = d.getVar('PN')
>     git_pns = d.getVar('GIT_PNS', [])
>
>     if pn in git_pns:
>         d.setVar('SRCREV', d.getVar('AUTOREV'))
>         srcpv = d.getVar('SRCPV')
>         d.appendVar('PV', '+git' + srcpv)
>         bb.note('Using latest git source code for %s, as recipe %s' % (pn,
> d.getVar('BP')))
> }
>
>
>
> 2) In local.conf:
> INHERIT += "use-git"
> GIT_PNS = "recipe1 recipe2 etc"
>
>
>
> This is nice, because I no longer have to create those recipe_git.bb
> recipes, and it's a central place to go configure a "use latest source
> code" setting.
>
> Is this interesting to anyone else?
>
> --Aaron

You know that you can poke SRCREV and other vars from a config file,
such as local.conf?

SRCREV_pn-recipe1 = "${AUTOREV}"
SRCREV_pn-recipe2 = "${AUTOREV}"

--
Denys

Join yocto@lists.yoctoproject.org to automatically receive all group messages.