rouse-context/fdroid
monkopedia-coder 5da0fe36e5
refactor(build): extract Firebase/Google-services into a -Pgoogle-only script so the FOSS build is genuinely Firebase-free (F-Droid) + bump 1.0.7 (#534)
The FOSS build (bare `assembleRelease`) already skipped applying the Firebase
Gradle plugins at runtime, but every Firebase/Google-services coordinate — the
two plugin ids, the Crashlytics per-build-type config, and the firebase-*
dependencies — still lived inline in app/build.gradle.kts, guarded only by
`if (googleBuild)`. F-Droid's source scanner is static, so it still saw those
non-FOSS coordinates in a file that survives into the FOSS build. The fdroiddata
maintainer asked us to remove the non-FOSS deps in prebuild rather than
allow-list them with scanignore.

This extracts ALL Google/Firebase build config into
gradle/google-services.gradle.kts, applied from app/build.gradle.kts ONLY under
`-Pgoogle` (`if (googleBuild) { apply(from = ...) }`). The bare FOSS build never
applies it, so it compiles ZERO Firebase: no plugins on the classpath, no
firebase-* deps, no Crashlytics config, and google-services.json is not required
to assemble it. Verified: aapt2 dump strings on the FOSS APK shows no
firebase/gms strings and the DEX contains no com.google.firebase /
com.google.android.gms classes, while the `-Pgoogle` APK still links Firebase.

The extracted file lives in the repo-root gradle/ dir (not app/) because Android
Lint's build-script visitor (lintVitalRelease, which the FOSS release build runs)
crashes trying to FIR-resolve a standalone apply(from=...) script inside an
Android module; the root project has no Android lint task. Its Crashlytics
mapping/symbol toggles are set by reflection because an apply-script has no AGP /
crashlytics DSL types on its classpath.

The fdroiddata recipe now removes the file in `prebuild:
rm -f gradle/google-services.gradle.kts` before the scanner runs (no
scanignore/scandelete), and the version/toolchain fields + MaintainerNotes are
updated to 1.0.7. Adds changelog 8.txt (build-internal, no user-facing change
vs 1.0.6). Part of #465.

Co-authored-by: Jason Monk <monkopedia@gmail.com>
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-04 14:38:35 -04:00
..
com.rousecontext.yml refactor(build): extract Firebase/Google-services into a -Pgoogle-only script so the FOSS build is genuinely Firebase-free (F-Droid) + bump 1.0.7 (#534) 2026-07-04 14:38:35 -04:00