Hi all. Before opening a request for packaging, I’d like to check how to get an app into a shape F-Droid can build, so the packagers’ time isn’t wasted.
sherpa-onnx is currently pulled in as the prebuilt AAR from the k2-fsa GitHub releases (version 1.13.6). Is there an existing srclib or recipe for building sherpa-onnx (and onnxruntime) from source that other apps use, or is building it in the recipe the expected route?
The Whisper base model (about 150 MB, MIT licensed weights, from the k2-fsa asr-models release) is bundled in the APK today, which makes the arm64 APK about 115 MB. Is a bundled model of that size acceptable if it’s fetched with a pinned URL and checksum in the build, or would you rather the app downloaded it on first launch after the user confirms?
The app has an anonymous usage ping (app version, Android version and a random id, at most once a day) with an off switch in Settings. For an F-Droid build I plan to turn it off by default or remove it. Is off by default enough to avoid the Tracking anti-feature?
There’s an optional paid upgrade that’s checked against a small license server. The free version works fully without it. I assume that means the NonFreeNet anti-feature. Is that right, or is there a better way to handle it?
The F-Droid build would also have its in-app update banner removed, since it points to GitHub releases signed with a different key.
Model license: the Whisper weights are OpenAI’s, released under MIT, and the ONNX export comes from sherpa-onnx (Apache 2.0). I’ll link both licences in the metadata. If that’s fine, I’d rather keep the model bundled and avoid NonFreeNet.
The Pro check is already opt-in. The app only contacts the license server when someone taps Unlock and enters a key. Day to day, the key is verified offline on the phone.
Reproducible builds: yes, I’d much prefer that, so F-Droid can ship the same signed APK as GitHub and people can move between the two. I’ll work on making the release build reproducible (pinned Flutter and Gradle versions, the sherpa-onnx build from source). Is there anything Flutter-specific I should watch for?
Last question: should I open an RFP first, or go straight to a merge request on fdroiddata once the build is reproducible?