Full-GUI builds for Windows ARM64 + Linux RISC-V 64 (deps: opticaldiscs 0.5, libchdman 0.288.8)#49
Merged
Merged
Conversation
opticaldiscs 0.5 changes FileEntry::type_code/creator_code from Option<String> (lossy display string) to Option<[u8; 4]> (raw Finder bytes), and adds type_code_string()/creator_code_string() for display. This fixes a latent extraction bug: the optical AppleDouble/MacBinary export rebuilt the Finder type/creator from the display string, so a non-printable 4-byte creator (e.g. Prince of Persia's 50 6F C4 50, shown as "0x506FC450") was corrupted to b"0x50". With the raw bytes available the fourcc/fourcc_bytes reparse helpers are deleted and the raw fields are used directly; display sites switch to the *_string() methods. libchdman-rs 0.288.8 publishes aarch64-pc-windows-msvc and riscv64gc-unknown-linux-gnu prebuilts (prep for full GUI builds on those targets); both it and opticaldiscs 0.5 still dedupe to one libchdman copy. Verified with --features optical: build, 44 test suites, clippy -D warnings, fmt --check all clean; cargo tree -i libchdman-rs shows a single 0.288.8. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
libchdman-rs 0.288.8 now publishes aarch64-pc-windows-msvc and riscv64gc-unknown-linux-gnu prebuilts, removing the only blocker to a full desktop app on those targets. - build-rb-cli-win-arm64 -> build-windows-arm64: was a CLI-only slim cross-build; now one default-feature build (GUI + chd + optical) on the x64 Windows runner produces both rusty-backup.exe and rb-cli.exe. Packages a portable GUI zip alongside the existing rb-cli zip. Build-only (continue-on-error) since an ARM64 exe can't run on the host. - build-gui-linux-riscv64 (new): cross-compiles the default-feature GUI for riscv64gc against a riscv64 GTK/GL sysroot installed via dpkg multiarch (ubuntu-ports), links through g++ for libstdc++ (libchdman is C++), and ships a plain dynamically-linked tarball (not a self-contained AppImage — no riscv64 runner to package one). continue-on-error. Downloads table: Windows ARM64 and RISC-V 64 promoted into the main first-class table (App + rb-cli columns); their rb-cli rows moved up out of the "other CPU architectures" table, which now lists only PowerPC. Nothing removed from the chart. Expected-asset checks and release `needs` updated; the release job stays branch-gated to main, so feature-branch pushes build+upload artifacts for diagnosis without publishing a release. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
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
Promotes Windows ARM64 and Linux RISC-V 64 to first-class, full desktop-app builds, unblocked by the libchdman-rs bump. Both new CI legs passed green on the first run (run 28443141702).
Two commits:
1.
deps:opticaldiscs 0.4.2 → 0.5, libchdman-rs 0.288.5 → 0.288.8FileEntry::type_code/creator_codefromOption<String>(lossy display string) toOption<[u8; 4]>(raw Finder bytes), addingtype_code_string()/creator_code_string()for display.50 6F C4 50, rendered"0x506FC450") was corrupted tob"0x50". Thefourcc/fourcc_bytesreparse helpers are deleted; raw fields are used directly; display sites use the new*_string()methods.aarch64-pc-windows-msvcandriscv64gc-unknown-linux-gnuprebuilts — the only blocker to GUI builds on those targets. Both deps still dedupe to a single libchdman copy.--features optical): build, 44 test suites,clippy -D warnings,fmt --checkall clean;cargo tree -i libchdman-rs→ single 0.288.8.2.
ci:first-class full-GUI builds for Windows ARM64 and Linux RISC-V 64build-windows-arm64(wasbuild-rb-cli-win-arm64, CLI-only): one default-feature build on the x64 Windows runner now produces bothrusty-backup.exeandrb-cli.exe; packages a portable GUI zip alongside the rb-cli zip. Build-only (continue-on-error) since an ARM64 exe can't run on the x64 host.build-gui-linux-riscv64(new): cross-compiles the default-feature GUI forriscv64gcagainst a riscv64 GTK/GL sysroot installed via dpkg multiarch (ubuntu-ports), links through g++ (libchdman is C++), and ships a plain dynamically-linked tarball — not a self-contained AppImage, since there's no riscv64 runner to package one.continue-on-error.Verification
riscv64 GUI binary confirmed a genuine RISC-V GTK app:
All four new artifacts uploaded (GUI: ~30 MB win-arm64 zip / ~32 MB riscv64 tarball; plus the two rb-cli builds).
Notes
continue-on-error, so a future breakage on these niche legs can't block the desktop release.maintriggers the real Release run that publishes these as downloads.🤖 Generated with Claude Code