Skip to content

Make Rust build F-Droid compatible#649

Merged
kasnder merged 10 commits into
masterfrom
agent/fdroid-rust-build
Jul 12, 2026
Merged

Make Rust build F-Droid compatible#649
kasnder merged 10 commits into
masterfrom
agent/fdroid-rust-build

Conversation

@kasnder

@kasnder kasnder commented Jul 12, 2026

Copy link
Copy Markdown
Member

Summary

  • pin Rust 1.95.0 and cargo-ndk 4.1.2
  • provision Android Rust targets and fetch locked crates before the offline build phase
  • make the Gradle WireGuard bridge build locked and offline
  • use the same setup in CI
  • document the fdroiddata release workflow in FDROID-UPDATE.md

Why

F-Droid's current TrackerControl recipe only provisions NDK r27c. The new Rust WireGuard bridge additionally needs a pinned Rust toolchain, Android targets, cargo-ndk, and a populated Cargo cache before F-Droid disables networking for the actual build.

Validation

  • 21 Rust unit tests passed with --locked --offline
  • all four Android Rust ABIs compiled via Gradle with --offline
  • ./gradlew :app:assembleFdroidRelease --offline succeeded
  • verified the APK contains libwgbridge.so for armeabi-v7a, arm64-v8a, x86, and x86_64
  • verified 16 KiB ELF LOAD alignment for all four libraries

@kasnder kasnder merged commit 3635c37 into master Jul 12, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant