[yocto] How do you release distros produced with Yocto? How should I?

Venkata ramana gollamudi ramana.gollamudi at huawei.com
Wed Oct 3 23:06:43 PDT 2012


On Tue, Oct 02, 2012 at 12:43:27PM -0400, Jerrod Peach wrote:
> I was thinking about doing something very close to that in actual Yocto,
> except I'd store only the revisions/branches that were different from what
> the bb file prescribed in local.conf.  I ran that idea by a couple of
> colleagues separately and they both immediately pointed out a concern: they
> didn't want to have two different places that could manage the revision of
> the package, i.e. local.conf and the package bb file.  They don't like how
> that works in the system we have today.  Instead, they wanted to branch all
> the metadata and have people update individual bb files with different
> revisions as necessary.  That leaves only one place to manage the revision:
> the package bb file.  Doing all that branching concerns me (it seems
> heavier-weight than it needs to be, at the very least), but I can't say
> specifically why branching the bb files is harmful.  If you guys can think
> of a reason why, let me know.  If you think it's reasonable, let me know
> that too.

We have solved this issue by adding OS_VERSION variable to local.conf
Let say your product (OS) should be released in versions, Ex: 1.0 , 1.1 or 1.1.1 etc.
Which is built from packages of different versions. So each package contains <pkgname>.inc and <package>_<version>.bb file.
revision number and patches are maintained in <package>_<version>.bb and all common part under <package>.inc.

Now the problems comes to mapping the package versions to your product(OS) version.
This is done having a file included into disto file listing out all the PREFERRED_VERSIONS and PREFERRED_PROVIDERS for all packages.
      ex: conf/disto/include/osversion_1.0.inc
And this is included to disto file like
      require conf/disto/include/osversion_${OS_VERSION}.inc

This file is freezed after your one version release.
Next version will add a new file osversion_1.1.inc overiding to pick all the required package version changes to make your product version.

This will allow you to release multiple product(OS) versions and clearly maps the package version, creating individual distributions.
You can even build older version product by just giving OS_VERSION=1.0 in local.conf
This eliminates branching all together.

Regards,
Ramana


More information about the yocto mailing list