Small fix, rewrite the Package builds section
- Peter Senna Tschudin authored
This patch rewrites the Package builds section adding more details about package builds using the SDK, devroots and snapshots of APT archives. Signed-off-by:
Peter Senna Tschudin <peter.senna@collabora.com>
This document is not really about the Apertis images themselves, but about the product-team specific recipes. They should have their own SDK and devroots.
What about this?
327 For the long term reproducibility we recommend the product team to have a 328 backup copy of: 329 * The Apertis SDK: Matching the Apertis release in use by the target device. 330 * The Apertis devroot: Matching the Apertis release and the architecture of 331 the target device. 327 For long term reproducibility we recommend product teams to either store 328 and use the SDK image and devroots matching the original build that is 329 being reproduced, or use the procedure described in this document to 330 reproduce the SDK image and devroots as a first step. Edited by Emanuele AinaYup, sorry.
The point is that product teams will have their own SDK images, so either they store them somewhere or they reproduce them in the same way as the target images.
(I've edited the suggestion)
Edited by Emanuele Aina
In theory, packages should not even notice they are built on emulated devices. For the vast majority of packages that's the case. There may be bugs and corner cases, but I don't think it's worth mentioning it here.
333 At the time of writing OBS supports native and emulated builds, and we have 334 successfully deployed emulated builds on the Bosch Developer Cloud. While 335 emulated builds are expected to work in most cases, they may require 336 changes to the packages being build using emulation, and they may produce 337 different results when compared to native builds. 338 339 For more information about emulated and native builds see 340 [Build infrastructure on Intel x86-64](designs/x86-build-infrastructure/). changed this line in version 4 of the diff
@em here is a concrete example(even if between KVM and LXC in this case). I did not have this particular case in mind, but I expect that there is plenty of room for such corner cases that will produce different results when building on hardware and when building on an emulator.
Edited by Peter Senna TschudinIf the package detects the current CPU features and selects options based on that it's going to be funny anyway when it ends up being built on our ARM64 worker once and then it gets rebuilt on a Packet cloud worker when Sjoerd turns them on (or vice-versa).
One thing that is much more likely to cause issues is the kernel version on the workers since some testcase exercise features that are not available there as we ship newer kernels.
All of them are valid concerns (and are really bugs in the packaging), I just don't feel this is the right place to point them out.
@em I added this section based on the request from @sudarshan here
Elaborate the Risk and mitigation of SDK and devroot usage on latest release to reproduce the build setup
. What do you suggest to address the request?I'd set that aside for the moment and merge the other changes while we can clarify that point with @sudarshan. :)