From ac572da40aabf045f263941d823b72dcacd31da5 Mon Sep 17 00:00:00 2001 From: Jean-Luc Makiola Date: Sun, 21 Jun 2026 20:09:31 +0200 Subject: [PATCH] build(fdroid): drop unused foojay toolchain resolver; release v2.7.4 F-Droid's official build scanner rejects the foojay-resolver-convention plugin because it can fetch a JDK over the network during the offline, reproducible build. The plugin was inert here (no toolchain block ever invoked it), so removing it leaves the app functionally identical to 2.7.3 and still reproducible byte-for-byte from source. Bumps versionName to 2.7.4 (the release trigger) and retargets the official fdroiddata recipe draft at v2.7.4, plus two recipe corrections the fdroiddata CI caught on the v2.7.3 submission (MR !40967): - Categories: 'Time' (retired in the current taxonomy) -> 'Calendar & Agenda' - AutoUpdateMode: 'Version v%v' (invalid per schema) -> 'Version' Co-Authored-By: Claude Opus 4.8 (1M context) --- CHANGELOG.md | 8 +++++ app/build.gradle.kts | 4 +-- .../de.jeanlucmakiola.calendula.yml | 30 ++++++++++--------- .../android/en-US/changelogs/20704.txt | 6 ++++ settings.gradle.kts | 3 -- 5 files changed, 32 insertions(+), 19 deletions(-) create mode 100644 fastlane/metadata/android/en-US/changelogs/20704.txt diff --git a/CHANGELOG.md b/CHANGELOG.md index 2bb77c0..55a7b4a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,14 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [2.7.4] — 2026-06-21 + +### Changed +- Build cleanup that lets Calendula ship in the official F-Droid repository: + removed an unused Gradle toolchain-resolver plugin, which F-Droid's offline, + reproducible build process disallows. No functional or visible changes — this + is the same app as 2.7.3. + ## [2.7.3] — 2026-06-21 ### Fixed diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 169c68e..2835966 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -28,8 +28,8 @@ android { // which builds this version and then creates the matching vX.Y.Z tag + // release itself (versionCode is pinned to MAJOR*10000 + MINOR*100 + // PATCH from versionName, e.g. 2.7.2 -> 20702). See docs/RELEASING.md. - versionCode = 20703 - versionName = "2.7.3" + versionCode = 20704 + versionName = "2.7.4" testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" } diff --git a/docs/fdroid-official/de.jeanlucmakiola.calendula.yml b/docs/fdroid-official/de.jeanlucmakiola.calendula.yml index dd0fbac..8a17f1b 100644 --- a/docs/fdroid-official/de.jeanlucmakiola.calendula.yml +++ b/docs/fdroid-official/de.jeanlucmakiola.calendula.yml @@ -15,7 +15,7 @@ # --------------------------------------------------------------------------- Categories: - - Time + - Calendar & Agenda License: MIT AuthorName: Jean-Luc Makiola SourceCode: https://gitea.jeanlucmakiola.de/makiolaj/calendula @@ -27,16 +27,18 @@ AutoName: Calendula RepoType: git Repo: https://gitea.jeanlucmakiola.de/makiolaj/calendula.git -# First build entry = v2.7.3, the first release with `vcsInfo { include = false }`. -# VERIFIED reproducible (2026-06-21): a clean from-source build of tag v2.7.3 -# matched the published calendula_v2.7.3.apk byte-for-byte across all 1382 zip -# entries (only the signature block differs, which F-Droid copies). v2.7.2 and -# earlier embed META-INF/version-control-info.textproto and will NOT verify — do -# not target them. Subsequent versions are added automatically (AutoUpdateMode). +# First build entry = v2.7.4, the first release that BOTH disables AGP VCS-info +# (`vcsInfo { include = false }`, since v2.7.3) AND drops the unused Gradle +# foojay toolchain-resolver plugin, which F-Droid's offline build scanner rejects +# (it can fetch a JDK over the network). The plugin was inert here (no toolchain +# block invoked it), so v2.7.4 is functionally identical to v2.7.3 and reproduces +# byte-for-byte from source. v2.7.3 and earlier either embed +# META-INF/version-control-info.textproto or trip the foojay scanner — do not +# target them. Subsequent versions are added automatically (AutoUpdateMode). Builds: - - versionName: 2.7.3 - versionCode: 20703 - commit: v2.7.3 + - versionName: 2.7.4 + versionCode: 20704 + commit: v2.7.4 subdir: app gradle: - yes @@ -49,13 +51,13 @@ Builds: AllowedAPKSigningKeys: 5cdaee8eb31cb0df9157c646ae3ec8b3dc43b5bb72624e088c9ddea0c4eb5ec1 # Our own developer-signed APK for reproducible-build verification. %v -> the -# versionName, so v2.7.3 resolves to calendula_v2.7.3.apk on the self-hosted repo. +# versionName, so v2.7.4 resolves to calendula_v2.7.4.apk on the self-hosted repo. Binaries: https://apps.dev.jeanlucmakiola.de/dev/fdroid/repo/calendula_v%v.apk # After this one-time submission F-Droid auto-tracks new vX.Y.Z tags and creates # build entries itself — no manual recipe edits per release. The tag regex keeps # it to release tags only. -AutoUpdateMode: Version v%v +AutoUpdateMode: Version UpdateCheckMode: Tags ^v[0-9.]+$ -CurrentVersion: 2.7.3 -CurrentVersionCode: 20703 +CurrentVersion: 2.7.4 +CurrentVersionCode: 20704 diff --git a/fastlane/metadata/android/en-US/changelogs/20704.txt b/fastlane/metadata/android/en-US/changelogs/20704.txt new file mode 100644 index 0000000..2924c73 --- /dev/null +++ b/fastlane/metadata/android/en-US/changelogs/20704.txt @@ -0,0 +1,6 @@ +### Changed +- Build cleanup that lets Calendula ship in the official F-Droid repository: + removed an unused Gradle toolchain-resolver plugin, which F-Droid's offline, + reproducible build process disallows. No functional or visible changes — this + is the same app as 2.7.3. + diff --git a/settings.gradle.kts b/settings.gradle.kts index e1b14d0..450da9a 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -11,9 +11,6 @@ pluginManagement { gradlePluginPortal() } } -plugins { - id("org.gradle.toolchains.foojay-resolver-convention") version "1.0.0" -} dependencyResolutionManagement { repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)