Repository navigation
Include missing runtime tools in RPM package selection - #117
Merged
Merged
Conversation
There was a problem hiding this comment.
🔵 Needs a closer look
Production-equivalent image validation remains incomplete because the successful build bypassed final SELinux relabeling.
No open issues 🎉
What changed in this PR
Explicitly selects five runtime RPMs for ACL images, restoring compression support and adding system-management tools.
Changes:
- Adds
bzip2,zstd,systemd-container,iproute-tc, andintegritysetupto existing mappings. - Documents deliberate optional-package omissions without changing resolver behavior or polkit selection.
| File | Description |
|---|---|
build_library/rpm/package_catalog.yaml |
Selects missing runtime tools and documents optional-package omissions. |
Review effort: Balanced
Jiri Appl (jiria)
marked this pull request as ready for review
October 19, 2026 16:57
SeanDougherty
previously approved these changes
Oct 19, 2026
Paco Huelsz (frhuelsz)
previously approved these changes
Oct 19, 2026
Select compression CLIs and split traffic-control, systemd-container, and integritysetup RPMs through effective catalog mappings. Document intentionally deferred optional tools and add catalog and finished-image smoke tests. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: f79407ad-4d7a-493d-85c9-06d703e55986
Remove the two test scripts from the proposed changes at user request. Preserve their historical validation results and keep the catalog unchanged. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: f79407ad-4d7a-493d-85c9-06d703e55986
Jiri Appl (jiria)
dismissed stale reviews from Paco Huelsz (frhuelsz), Lanze Liu (liulanze), and SeanDougherty
via
October 19, 2026 22:33
175e8a9
Jiri Appl (jiria)
force-pushed
the
jiria-runtime-package-parity
branch
from
October 19, 2026 22:33
c13ffe1 to
175e8a9
Compare
Lanze Liu (liulanze)
approved these changes
Oct 19, 2026
Member
Author
|
/azp run |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Summary
Ensure five runtime RPMs are actually selected rather than relying on library dependencies or standalone catalog entries. This restores bzip2/zstd tar support and adds traffic-control, systemd machine-management, and dm-integrity tools. The final diff changes only
build_library/rpm/package_catalog.yaml.Change Log
bzip2,zstd, andsystemd-containerunder the existingsys-apps/systemdumbrella; extendsys-apps/iproute2withiproute-tcandsys-fs/cryptsetupwithintegritysetup.quota-rpc,quota-warnquota,tdb-tools,idn2,psl,xxhash,vim-extra,erofs-utils,bind-dnssec-utils,p11-kit-server,glibc-nscd, andlibseccomp-devel. Existing containerd-sysext selection oferofs-utilsis unchanged. Comments do not select packages.Type of Change
Does this affect the image build?
Associated Issues
N/A
Test Methodology
bash build_library/rpm/tests/test_runtime_package_selection.sh— passed, using the actual catalog installation/resolution path with the RPM transaction mocked: amd64/arm64 × UKI/GRUB. Checked all five requested packages and intentional optional-package exclusions. Rerun after the test-file removal: all four cases passed against the identical catalog in the retained validation source copy.bash -n build_library/rpm/tests/test_runtime_package_selection.sh acl/tests/run-runtime-package-test.sh— passed, including a rerun against the retained scripts after removal from this branch.git diff --check— passed after removal../build_image --image_compression_formats=none --nogenerate_update --board=amd64-usr --group=production --base_sysexts=oem-azure --disk_layout=vm --image_name=acl_runtime_parity_image.bin— failed during finalization:setfilesreportedCould not set context ... Invalid argumentfor paths including/etc/.pwd.lockand/etc/systemd/system, and exited 255. The real installation transaction and installed-package manifest included all five requested RPMs before that failure. A Fedora-host/target SELinux policy incompatibility is a hypothesis, not a proven per-type diagnosis: the rejected target context types were not recorded or established../build_image --image_compression_formats=none --nogenerate_update --board=amd64-usr --group=production --base_sysexts=containerd --disk_layout=vm --image_name=acl_runtime_parity_image.bin— passed with a validation-only workaround: an isolated remote source copy inserted an earlyreturn 0infinish_image_selinux_rpm, skipping its explicit final/etcrelabel command,sudo setfiles -Dv -r "${root_fs_dir}" "${file_contexts}" "${root_fs_dir}/etc" >/dev/null. Other SELinux policy setup remained active. That bypass is not in this PR. Finalization, cleanup, UKI generation and verity generation completed; this is not a production-equivalent labeled-build pass../image_to_vm.sh --image_compression_formats=none --from=../build/images/amd64-usr/latest --board=amd64-usr --format=qemu_uefi --image_name=acl_runtime_parity_image.bin— passed. Booted this fresh image in an isolated KVM/QEMU UEFI guest, without Secure Boot; guest SELinux reported Enforcing and/usrused the read-only verity device plus containerd/oem-qemu extensions. Enforcement mode alone does not establish correct file labels or domain transitions. No label/domain-transition/AVC audit was performed; Ignition logged that it was compiled without relabeling support.sudo bash -s, with the then-presentacl/tests/run-runtime-package-test.shsupplied over SSH on stdin — passed inside the fresh guest. Verified installed executable targets, executed compression CLIs,tc,machinectl,systemd-nspawn,integritysetup, and the importd/machined helpers, and round-tripped valid tar archives through both bzip2 and zstd. Confirmed final-image RPM database and documentation cleanup. This was not merely an installroot or build-host package test. The runtime script is preserved externally, not included in the final diff.sudo dnf5 --installroot="$p/query-aarch64" --releasever=3.0 --forcearch=aarch64 --setopt=reposdir=/nonexistent --repofrompath=azl,https://packages.microsoft.com/azurelinux/3.0/prod/base/aarch64 --setopt=azl.gpgcheck=0 install --downloadonly -y bzip2 zstd iproute-tc systemd-container integritysetup— passed, resolving/downloading 87 packages into an isolated validation directory ($p). Inspected the five ARM64 RPM payloads for the expected CLI/helper paths. This download-only check did not install packages or validate RPM signatures; it is not an ARM64 image-build/boot result.Merge Checklist
All applicable boxes should be checked before merging
No package sources/SPECs were changed, so their build/hash checklist items are not applicable. The image-build checkbox remains open for a build without the remote-only labeling bypass.