I’m currently in the process to improve the android app’s build process both for keeping reproducible builds in mind and building as tight to official builds as possible in regard to the go version used in the build.
The build script and code of the android app is currently “centralized” around docker/Dockefile where it says “ENV GO_VERSION=1.25.0” and grep takes “1.25.0” along. The new build script I’m currently on checks which go version is provided by the build system env, compares it to the expected go version (e.g. 1.25.0 at the moment) and if it mismatches it automatically starts building go from source (which is what F-Droid prefers instead of prebuilt-to).
Is there a central place in the Syncthing source where I could grep the current required go build tools version, e.g. “1.25.0” that is considered “stable over time”? This would aid in make sure for the future official Synchting is build using the same go version as the Android builds.
The version in go.mod that bt90 linked to is effectively the lowest version that will currently work. (And should not be taken as the version to build with, as it will always be the .0 version and not the latest patch for the series.) For what we actually build our binaries with,
Which is to say, we’ll build with whatever is the latest patch version of Go 1.25 at the time the build happens.
Does that mean go1.23.5 can no longer build? Fdroid team is working on bumping the version on their buildbot servers (verification.f-droid.org) because we are building with go1.24.x in production and reproducible build verification fails because the buildbot server sticks with 1.23. but anyway I should be able to at least build without verification using their infra.