[yocto] suggestions for version controlling multi-layer reproducible builds?

Mike Looijmans mike.looijmans at topic.nl
Tue Dec 13 00:53:31 PST 2016


On 12-12-16 16:20, Robert P. J. Day wrote:
>
>   (if there's already a doc section for this somewhere, a pointer to
> it would be just ducky.)
>
>   if one is building an image for a releasable, commercial product,
> and that image involves pulling in numerous layers, then dumping all
> sorts of proprietary apps on top of it, what are the possibilities for
> how to version number the released images such that, if a client has
> an issue, they can identify precisely the state of components that
> went into the system they're working with?

I always make a top-level git repository for the project. It contains all the 
"meta" layers as submodules (sometimes nested).

That way, the version of the top layer is the version of the whole product and 
can be reproduced any time.

>   in addition to all of the layers involved in the build, one has to
> take into account that, when critical bugs are identified, an updated
> RPM might be sent out and applied, whereupon that system's version
> number is no longer perfectly accurate. in the end, the state of
> someone's running system will be determined by a possibly huge
> combination of selected packages, preferred package versions, build
> config options, additional user space apps, hot fixes that have been
> applied and so on.

The only way to version such a system is to actually dump the whole package 
version table (e.g. "opkg list-installed"). You could compare the table to the 
initially installed one and only send the difference, as an optimization.

>   what sort of meaningful "version number" can be applied to something
> like that? i'm sure at least a few other people have to be doing
> something like that, so i'm open to suggestions.

Version "numbers" are for marketing purposes only and have no useful meaning 
in version management. The git hash is the "technical" version number. Create 
a table somewhere to map the commercial version number to a git hash. The 
simplest implementation is to "tag" the version numbers in the top-level 
repository.



Kind regards,

Mike Looijmans
System Expert

TOPIC Products
Materiaalweg 4, NL-5681 RJ Best
Postbus 440, NL-5680 AK Best
Telefoon: +31 (0) 499 33 69 79
E-mail: mike.looijmans at topicproducts.com
Website: www.topicproducts.com

Please consider the environment before printing this e-mail








More information about the yocto mailing list