[yocto] Best way to support multiple versions of Poky?

Jerrod Peach peachj at lexmark.com
Mon Nov 26 05:55:02 PST 2012


On Thu, Nov 22, 2012 at 3:35 AM, Chris Tapp <opensource at keylevel.com> wrote:

> I'm just getting round to moving from 'denzil' to 'danny'. I've got a
> layer that makes some changes to a few recipes through bbappend files.
>
> However, 'danny' has bumped a few of these to a new version (which is
> good) which means I now have bbappend files that get a 'there is no
> matching bb file' errors when I try to build. This is easy to fix
> (generally just rename the bbappend to match the new version), but I would
> like the layer to be able to work with older versions of Poky - mainly in
> case I need to make changes to an existing project that hasn't be verified
> under 'danny'.
>
> What's the best way to do this? All I can think of is to have another set
> of layers to use when building against a specific poky version:
>
> meta-mystuff
> |
> +--poky-versions
>    |
>    +--denzil-specific
>    +--danny-specific
>    +--etc
>
> Is there a more elegant solution?
>
> Chris Tapp
>
> opensource at keylevel.com
> www.keylevel.com
>
>
>
> _______________________________________________
> yocto mailing list
> yocto at yoctoproject.org
> https://lists.yoctoproject.org/listinfo/yocto
>

I don't know what sort of version control (if any) you're using around
"meta-mystuff", so what I'm about to suggest may not be directly applicable
to you.  Also, note that we have not actually deployed the scheme we've
developed at our company yet (so there may be some reason it doesn't work
that we haven't thought of yet), but here's the directory/repo structure we
think will work for our code:

build-bundle (git repo with our layers + tools)
|
+-- meta-ourstuff (git submodule, i.e. separate repo locked to a specific
version within build-bundle)
+-- poky (another submodule)
   |
   +-- poky BB files (i.e. within meta, meta-yocto, etc.)

When we release code, we'll create a tag in build-bundle.  If the released
code needs to diverge from the state of our master, we'll branch, then tag.
 Either way, if you want to build old code, you check out the tag and build
it.  That should "just work" because what we see as the tools (i.e.
everything in the poky directory) are being version-controlled along-side
everything we've added, including .bbappend files in our layers that modify
.bb files in the poky layer.  Of course, if you need to modify an old
release, you'd branch off the release you wanted to modify.  So, if
"denzil" is the current version and you need to modify a release created
with "danny", you simply branch from that release, and all your .bbappend
files and tools will be correct for the "danny" version of the Yocto tools.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.yoctoproject.org/pipermail/yocto/attachments/20121126/ca34cec7/attachment.html>


More information about the yocto mailing list