mirror of
https://github.com/status-im/status-app.git
synced 2026-08-27 15:11:20 +00:00
- `mobile/Makefile` -> Added `apk-fdroid` build target, used by `fdroid/build-app.sh`. F-Droid requires an unsigned APK without Google Play services. - `mobile/android/qt6/build.gradle` -> Added F-Droid gradle build flavor, used during `apk-fdroid` target. Separates F-Droid builds from Play Store builds and no signing configuration since it's supposed to be unsigned. - `mobile/scripts/buildApp.sh` -> Updated to copy F-Droid APK instead of usual locations from Jenkins build. - `mobile/scripts/buildOpenSSL.sh` -> Moved from iOS dir, shared between iOS and F-Droid builds. Reusing the OpenSSL build logic that was previously iOS-only but is now needed for F-Droid's from-source requirement. - `mobile/scripts/Common.mk` -> Updated path to `buildOpenSSL.sh` which is no longer inside iOS dir. - `mobile/scripts/openssl-patch.diff` -> Moved from iOS dir, applied by `buildOpenSSL.sh`, so that the patch is co-located with the script that uses it. - `ci/Jenkinsfile.fdroid` -> Had to make a new pipeline script because integrating this into `ci/Jenkinsfile.android` was causing issues with the generated `AppImage` and steps had to be fully sequential, so I figured it's good to separate them out. - `fdroid/entrypoint-fdroid.sh` -> Docker entrypoint, used by `fdroid/Dockerfile`. Sets up the container user/permissions before the F-Droid build starts. - `fdroid/Dockerfile` -> A minimalistic Docker image for the F-Droid Jenkins build environment, used by `ci/Jenkinsfile.fdroid`. I didn't add to existing Qt Android `Dockerfile` because this one only needs a minimal environment with Docker-in-Docker to run the `fdroidserver` VM. - `fdroid/build-app.sh` -> Called by `fdroiddata` metadata build step. Sets up Qt and Android NDK environment, detects `JAVA_HOME`, configures `Go`/`Nim` env vars, and runs the `make` targets for the F-Droid APK. - `fdroid/build-openssl.sh` -> F-Droid requires OpenSSL to be built from source rather than using prebuilt binaries. - `fdroid/build-qt-android.sh` -> F-Droid requires Qt to be built from source; this handles the Android cross-compilation. - `fdroid/build-qt-host.sh` -> Qt's cross-compilation requires host tools (`moc`, `rcc`, etc.) to be built first. - `fdroid/cleanup-binaries.sh` -> Removes binaries flagged by `fdroid` scanner, called by `fdroiddata` metadata `prebuild` step. F-Droid's scanner rejects repos containing prebuilt binaries in test/vendor directories. - `fdroid/cleanup-fdroiddata.sh` -> Removes stale `fdroiddata` clones, called by `ci/Jenkinsfile.fdroid`. Prevents disk space issues from accumulating `fdroiddata` clones across builds. - `fdroid/fdroid-container-build.sh` -> Runs `fdroid build` inside Docker container, called by `scripts/fdroid-local-build.sh`. Isolates the build in a container to match F-Droid's official build environment. - `scripts/fdroid-local-build.sh` -> A handy script to build F-Droid locally, also called by `ci/Jenkinsfile.fdroid`. Manages the full lifecycle of cloning `fdroiddata`, launching the `fdroidserver`, and extracting the output APK. - `fdroid/generate-keystore.sh` -> Generates a single-use keystore for signing the F-Droid APK. Sourced by `buildApp.sh` to export signing credentials into the build environment. fixes: https://github.com/status-im/status-app/issues/19741