[yocto] Setting PV dynamically in a recipe

Brad Litterell brad at evidence.com
Tue Dec 17 17:29:25 PST 2013


Hi Paul,

Thanks for that tip.  For my private packages I don't build directly from git, but from a tarball (in turn created from my working directory) because I want to be able to build the source I'm working on without committing it to git.  

In an ideal world, I'd like to to be able to build in two modes: dev & release.  Release mode would use the git-based solution (and enforce building from git), and in the dev mode, build from something like externalsrc.  (The reason I don't use externalsrc directly is because it didn't detect changes in the underlying external source, so I created a script that does and updates the tarball.)

What is the best way to switch recipes between dev & test modes like that.  It appears debug-tweaks is only used in image recipes, so I don't know whether I should (or could) use something like this in a package recipe:

SRC_URI += '${@base_contains("EXTRA_IMAGE_FEATURES", "debug-tweaks", "...tarball...", "...git..."}'

or whether something like that is asking for trouble.  My current solution is manual - edit the recipe, but that feels kinda lame.

It seems like most of the yocto build tools assume building directly from git (or with external-src but without dependency checking).

Any suggestions?

Thanks,
Brad
________________________________________
From: Paul Eggleton [paul.eggleton at linux.intel.com]
Sent: Tuesday, December 17, 2013 12:24 PM
To: Brad Litterell
Cc: zhenhua.luo at freescale.com; yocto at yoctoproject.org
Subject: Re: [yocto] Setting PV dynamically in a recipe

Hi Brad,

On Tuesday 17 December 2013 19:46:11 Brad Litterell wrote:
> Thank you for the reply.  However, That's not what I'm looking for.  I
> already get the latest version of the source code.
>
> What I'm really after is the ability to generate output packages that have
> increasing version numbers so I can use the package manager to update them.
>
> I think Martin's subsequent reply is the secret to use PKGV.  I didn't know
> about that variable.

You don't need to use any special classes to get this behaviour. Put this in
your recipe (replacing 1.2.3 with the appropriate base version you are
building):

PV = "1.2.3+git${SRCPV}"

and enable the PR service, which will ensure SRCREV changes always increment
the version properly:

http://www.yoctoproject.org/docs/current/dev-manual/dev-manual.html#working-with-a-pr-service

Cheers,
Paul

--

Paul Eggleton
Intel Open Source Technology Centre



More information about the yocto mailing list