Reproducible Builds (for IzzyOnDroid)
Discussed in https://github.com/bitfireAT/davx5-ose/discussions/991
Originally posted by obfusk August 21, 2024 At IzzyOnDroid we support Reproducible Builds (see: Reproducible Builds, special client support and more in our repo).
Your app has been reproducible for quite a while (see the green shields) :tada:. Unfortunately, it has embedded timestamps, the biggest source of reproducibility issues. We can work around those, but it requires manual work to keep up to date. It would be a lot easier for us if you could make the build fully deterministic.
The first timestamp comes from this code in app/build.gradle.kts:
buildConfigField("long", "buildTime", "${System.currentTimeMillis()}L")
I see it's used in the user agent so I assume removal is not an option. But perhaps it could use e.g. the timestamp from the git commit instead of the build time? That would be deterministic.
The second timestamp comes from the aboutLibraries plugin and can easily be disabled:
// build.gradle.kts
aboutLibraries {
excludeFields = arrayOf("generated")
}
We'd appreciate if you could help making your build reproducible. We've prepared some hints on Reproducible Builds.
Thank you!
cc @IzzySoft