sdk: enable xz RPM payload support in the SDK - #44
Conversation
Azure Linux ships xz-compressed RPM payloads, but rpm only advertises the rpmlib(PayloadIsXz) capability when built with the lzma USE flag, which is off by default upstream. Without it, installing those packages fails with a missing-dependency error. Set the flags in the SDK target profile rather than in Dockerfile.sdk-update so they apply both when a fresh SDK image is bootstrapped and when an existing one is updated. Also enable bzip2 for rpmlib(PayloadIsBzip2), and pin caps, which is needed to apply file capabilities from Azure Linux packages. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 8d938d41-62cb-43ad-9422-864d07815eb2
334e3af to
4765343
Compare
There was a problem hiding this comment.
Pull request overview
Enables the Gentoo app-arch/rpm features required for the SDK to install Azure Linux 4 RPMs that use xz-compressed payloads, by setting the appropriate USE flags in the SDK target profile.
Changes:
- Enable
lzmaandbzip2USE flags forapp-arch/rpmso it advertises/handlesrpmlib(PayloadIsXz)andrpmlib(PayloadIsBzip2). - Enable
capsUSE flag forapp-arch/rpmto support applying file capabilities from Azure Linux packages.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
ValidationBuilt the SDK two ways from this branch and inspected the resulting containers. Baseline (without this change): With this change — SDK update path ( With this change — from-scratch bootstrap path (catalyst): The emerge output confirms Both paths resolve the same profile via |
Azure Linux 4 ships xz-compressed RPM payloads, which the SDK's
rpmcannot install because it is built without thelzmaUSE flag (it never advertisesrpmlib(PayloadIsXz)).app-arch/rpm caps lzma bzip2to the SDK target profile (profiles/coreos/targets/sdk/package.use).Dockerfile.sdk-updatemeans it applies both when a fresh SDK image is bootstrapped and when an existing one is updated — the existing--changed-useemerge inDockerfile.sdk-updatepicks up the rebuild.bzip2coversrpmlib(PayloadIsBzip2);capsis pinned because file capabilities from Azure Linux packages depend on it.Work item: AB#22734