Reproducible Builds at Threema
Hans-Christoph Steiner
hans at guardianproject.info
Wed Dec 30 16:43:17 UTC 2020
Hey Danilo,
Great to see your work on open-sourcing Threema and reproducible builds
on Android. The F-Droid and RB contributors have been working on
upstreaming fixes to the Android Tools themselves. Google has been
somewhat responsive.
Also, F-Droid.org has a publishing process based on reproducible builds
for those that want it. Basically you build your release APK, then
extract the signature from it, and send it to "fdroiddata" with a build
recipe. If the F-Droid builders can reproduce it, it then publishes the
APK with the upstream developer's (e.g. Threema) signature.
These builds are done using an free, open source stack that is
relatively easy to setup. So then reproducible builds can be done with
a shared, audited, reproducible stack.
We also track all known RB issues with Android apps:
https://f-droid.org/docs/Reproducible_Builds/
.hc
Danilo:
> Hello RB Folks
>
> Since a few days, the Threema messenger is open source and provides reproducible builds for the Android app:
>
> https://threema.ch/en/open-source/reproducible-builds
>
> I was involved in that project (I work for Threema) and set up the reproducible builds. So far these builds for the Android app seem to work nicely, after we fixed an initial issue with an NDK Makefile that linked object files in a non-deterministic way depending on the filesystem.
>
> Providing reproducible builds for the iOS app is still an open issue though, and a tough one. Telegram seem to provide a reproducible setup, but it's really complicated. They write[0]:
>
>> As things stand now, you'll need a jailbroken device, at least 1,5 hours and approximately 90GB of free space to properly set up a virtual machine for the verification process.
>
> [0] https://core.telegram.org/reproducible-builds#reproducible-builds-for-ios
>
> Are there any other examples of iOS apps providing reproducible builds? I feel that an approach with a VM and requiring a jailbroken device results in a process that is hard to reproduce, will break often and is an endless fight against Apple who are trying to lock down their ecosystem. And if a process is not reliable, then I don't think that it's of much value (since any failure to reproduce a build can be attributed to the unreliability of the build process itself).
>
> I'd be happy to hear about ideas how to make the iOS reproducible. The reproducible-builds.org website doesn't seem to contain any information targeted at mobile apps.
>
> General feedback regarding the current RB setup for the Android app is welcome too of course!
>
> Cheers,
> Danilo
>
--
PGP fingerprint: EE66 20C7 136B 0D2C 456C 0A4D E9E2 8DEA 00AA 5556
https://pgp.mit.edu/pks/lookup?op=vindex&search=0xE9E28DEA00AA5556
More information about the rb-general
mailing list