- the packager resources only carried assets/i18n, so installed builds
showed blank toolbar glyphs: add assets/icons to the Windows/macOS
packages and install it to /usr/share/oak/icons in the deb/rpm/pkg
scripts;
- icon_path resolved through the compile-time CARGO_MANIFEST_DIR (the CI
checkout path), which never exists on a user machine: search the
runtime layouts instead — dev checkout, next to the executable,
Contents/Resources, usr/lib/oak-editor (cargo-packager's deb/AppImage
layout) and /usr/share/oak — mirroring the i18n pack search, which
gains the same usr/lib/oak-editor candidate so the AppImage finds its
language packs too.
Verified: oak-app 556 tests pass; the deb and rpm now carry
/usr/share/oak/icons/{dark,light}/*.png.
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).