oem+drivers: fix wrong order or lower layers when building overlays #1780
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
When doing an offline install, ubuntu-drivers would sometimes list a package that is available in the archive but not present in the pool. This would lead to a failed install when trying to download/install such package.
This is not something we would expect since we run apt-get update (with only the pool configured when offline) in the install tree.
However, it turned out that we create the overlay with the lower layers specified in the wrong order - which essentially makes APT indexes visible in the source tree also visible in the OEM/third-party driver overlay.
When calling
setup_overlay(lowers=[a, b, c])
, Subiquity invokes mount withlowerdir=c:b:a
(in the reverse order).This means that c is top, b is middle and a is bottom.
For the OEM and third-party drivers, we build overlays that are based on:
Unfortunately, we were doing the opposite. Fixed by reversing the order of the lower layers.