mirror of
https://github.com/CompassConnections/Compass.git
synced 2026-07-30 17:59:13 -04:00
2.3 KiB
2.3 KiB
F-Droid publishing
Can Compass be published on F-Droid? Short version: licensing allows it, but the Google/Firebase dependencies block the official repo.
Eligibility
- License — ✅ AGPL-3.0 + MIT. Meets F-Droid's hard FOSS-license requirement.
- Buildable from source — feasible; it's a Capacitor WebView shell over the
webbuild. - Backend — ⚠️ the app wraps the hosted service (compassmeet.com, Supabase + Firebase). F-Droid tags
this
NonFreeNet("depends on a non-free network service") regardless of the client code.
Blocking dependencies
Proprietary Google libraries F-Droid's main repo bans. From android/app/build.gradle:
com.google.firebase:firebase-analytics— proprietary and tracking; an outright anti-feature.com.google.firebase:firebase-auth— proprietary Google auth.com.google.android.gms:play-services-auth— proprietary Google Play Services.com.google.android.play:app-update/app-update-ktx— proprietary in-app-update lib.com.google.gms.google-servicesGradle plugin +google-services.json— non-free build tooling/config.
From the web bundle (web/package.json):
firebase(11.1.0) — proprietary JS SDK compiled into the WebView assets.@capacitor/push-notifications— wired to Firebase Cloud Messaging (FCM), which is proprietary.
Paths to ship
Official F-Droid repo — significant work:
- Remove
firebase-analytics(or swap for self-hosted Matomo/Plausible). - Replace Firebase Auth with a Supabase-side / FOSS auth flow.
- Replace FCM push with UnifiedPush (the F-Droid-blessed push system) — the biggest lift.
- Drop the in-app-update lib (F-Droid handles updates).
- Remove
google-services.jsonand the gms plugin. - Add F-Droid metadata + a reproducible build recipe. A
NonFreeNetlabel likely remains because the backend is a hosted service.
Estimate: days-to-weeks, dominated by the auth + push replacement.
Self-hosted F-Droid repo — easy:
- Use
fdroidserverto host the existing signed APK/AAB at your own repo URL (Firebase and all). The anti-feature bans are official-repo policy, not enforced by the tooling. Users add the repo manually and get auto-updates; you skip Google's storefront. Setup is roughly an afternoon.