The Gradle wrapper inside the flatpak build was trying to download
gradle-9.5.1-all.zip from services.gradle.org and failing because the
build phase has no network. Two problems:
1. The bundled gradle distribution was gradle-9.4.1-bin.zip
(mismatched version + bin instead of all).
2. The overlay was missing the sed step that rewrites
distributionUrl in gradle-wrapper.properties to point at the
bundled file.
Fix: bump bundled distribution to gradle-9.5.1-all.zip (matches
gradle/wrapper/gradle-wrapper.properties exactly) and add the
distributionUrl sed before any gradlew invocation. Hash pulled from
the official services.gradle.org/.../*.sha256 endpoint.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
After a flatpak-builder failure mid-build, the slow path was running
the full pipeline again: regenerate flatpak-sources.json, re-clone
vid's repo, rsync the entire Meshtastic-Android tree. The fix you
want to test is usually a one-line YAML tweak.
--rebuild-only keeps the existing workspace as-is, refreshes only
the overlay yaml and flatpak-sources.json (the two iteration knobs),
and re-runs flatpak-builder. Implies --skip-regen.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Upstream manifest at vidplace7/org.meshtastic.desktop now references
desktopApp/ instead of the old desktop/ module path. Our overlay was
stale and failed with `sed: can't read desktop/build.gradle.kts: No
such file or directory` partway into the build phase.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
PR #5599's BuildOperationListener attached too late: build-logic's own
plugin resolutions (kotlin-dsl plugin marker, detekt, etc.) happen
before the root project applies meshtastic.flatpak-ops, so those URLs
never reached the manifest. Vid's flatpak-builder run then failed with
'Plugin [org.gradle.kotlin.kotlin-dsl:6.5.7] was not found' under
--offline Gradle.
Fix: move listener registration into a Gradle init script
(gradle/init-scripts/flatpak-ops.init.gradle.kts) passed via -I.
The init script fires before any project or plugin resolution, so
build-logic bootstrap downloads are captured. The flatpak-ops plugin
now reads the shared URL set from gradle.extensions; if the init
script isn't loaded, it falls back to a local listener and warns.
CI workflows + scripts/verify-flatpak/verify.sh updated to pass
-I gradle/init-scripts/flatpak-ops.init.gradle.kts.
Also expand verify.sh to optionally run a full flatpak-builder build
(not just --download-only), with macOS refusing full-build mode
because nested bwrap fails under Docker Desktop's seccomp. Adds
--download-only and --skip-regen flags.
Verified on macOS via --download-only: manifest grew to 2744 entries
and now contains org.gradle.kotlin.kotlin-dsl.gradle.plugin (the
artifact that broke vid's CI). Full-build verification pending on
Linux.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>