Each distro package builds inside that distro's container so declared dependencies always resolve to native names: hand-rolled deb via dpkg-shlibdeps + dpkg-deb, rpm via rpmbuild's auto-requires, Arch via makepkg (non-root builder user). git/curl install before checkout (container jobs). AppImage keeps cargo-packager on the Ubuntu runner. The release gates on all four package jobs plus macOS/Windows.