[yocto] Setting PV dynamically in a recipe

Martin Jansa martin.jansa at gmail.com
Wed Dec 18 01:36:24 PST 2013


On Wed, Dec 18, 2013 at 01:29:25AM +0000, Brad Litterell wrote:
> 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?

Don't use *IMAGE_FEATURES* to in recipe conditionals.

When you're building some package you don't know in which image it will
be included so you cannot know with which *IMAGE_FEATURES* it should be
built.

It's true that EXTRA_IMAGE_FEATURES are often set in DISTRO config, but
still it's unsafe to assume they are "global". With improved
base_contains and sstate interaction, using some flag in DISTRO_FEATURES
shouldn't cause so many packages to rebuild, so it could be usable for
"debug-build" flag.

> ________________________________________
> 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
> _______________________________________________
> yocto mailing list
> yocto at yoctoproject.org
> https://lists.yoctoproject.org/listinfo/yocto

-- 
Martin 'JaMa' Jansa     jabber: Martin.Jansa at gmail.com
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 198 bytes
Desc: Digital signature
URL: <http://lists.yoctoproject.org/pipermail/yocto/attachments/20131218/f8de0c2e/attachment.pgp>


More information about the yocto mailing list