[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