The icon trees were staged into the buildroot but not declared in
%files, so rpmbuild aborted with 'Installed (but unpackaged) file(s)
found' (deb and pkg install them through explicit paths and are
unaffected). Verified in fedora:43: the rpm builds and carries all 35
icon files.
Verified locally in debian:12 and fedora:43 containers before pushing:
- deb: dpkg-deb rejected the control file because `paste -sd', '` uses
the delimiter list cyclically (comma, space, comma, ...) — join with a
plain comma instead;
- rpm: rpm 4.20+ (Fedora 43) computes %{buildroot} itself and ignores a
caller-supplied buildroot define, so stage the payload and let the
spec's %install copy it via %{_oak_stage}; add a changelog entry (the
%source_date_epoch_from_changelog warning) and drop it from the
changelog-less build.
- Runtime window icon: X11 takes the embedded 512px PNG up front
(_NET_WM_ICON), Wayland resolves it from oak.desktop via the app id,
Windows reads it from the exe's icon resource.
- assets/appicon: 512px PNG + 7-size ICO rasterized from Oak_Icon.svg.
- Windows: oak.rc (ICON resource ID 1, also the Explorer icon) compiled
by build.rs through embed-resource.
- Linux packaging (deb/rpm/PKGBUILD/oak.spec): install Oak_Icon.svg
into the hicolor scalable theme alongside the existing 512px PNG.
- macOS: no change needed - cargo packager already builds the .icns
from the CD-generated icons/icon.png (same source art).
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.