Trust is good, control is better: Reproducible builds at F-Droid
nico.dorfbrunnen.eu
nico.dorfbrunnen.eu
> truly every single app is built from source and therefore F-Droid’s build infrastructure is highly secured, with only Ciaran Gultnieks, who founded the project almost nine years ago, having access to it.
What assurances (including legal) are there (besides best intentions) that Ciaran Gultnieks is the only one that has access to the infrastructure that builds F-droid?
Also what happens if Ciaran no longer works on the project?
That being said, I don't know enough about the project to say if there are actually people doing the verification work.
It’s worth noting here that it’s not sufficient for some users to build from source for their own usage: they have to additionally compare their build results against the version served by the repository, and then they have to publicize if there’s a mismatch.
As somebody who builds many things from source, but has never attempted to validate a packaged repo using my results, I’m curious: does anybody here perform this validation?
You get a situation like QuadrigaCX when CEO Gerald Cotten passed away and 190 USD in bitcoin became unavailable.
https://www.quadrigacxtrustee.com/
Or, to address the problem, something like Shamir's Secret Sharing algorithm could help.
Better source: https://www.theguardian.com/technology/2019/feb/04/quadrigac...
Personally, I find the greying of a post on even a single downvote to be quite unfortunate and easily abused. I feel a post should only start greying on the second downvote.
Actually developers can sign with their own key if the build is reproducible (in an FDroid build system) and F-Droid would have no issues with distributing this app.
See the diagram here: https://f-droid.org/en/docs/Reproducible_Builds/
AFAIK it should work that way but I couldn't tell from the diagram and skimming the text.
>If Signal would be built reproducibly, everyone including F-Droid could check whether the app has been built straight from its source code and could then include it in F-Droid’s store
> Firefox klar(focus) was outdated for six months because they couldn't build it.
A build that can't be reproduced is also a security threat.
Of course. There is nothing wrong with the play store per se in this context other than it not being FOSS.
>A build that can't be reproduced is also a security threat.
No. That's not the issue. F-droid has its own requirements which basically boil down to building software in their own debian VM with no/limited external software. That's an orthogonal engineering issue unrelated to security outside this narrow scope. There is a lot of upstream software that cannot be 'built' by f-droid. It can demonstrably be built if you follow the upstream's README.
Well, the store itself isn't free-software. But the software it distributes also isn't free software and is many times crapware/malware, without any human review. F-Droid has "AntiFeatures" tags on applications, and while these could be better, they're already more informational for end-users than blindly downloading/running programs : https://f-droid.org/wiki/page/Antifeatures
Then, there's also the problem that Google Play Store relies on Google Play Services. So if you don't want to install Google's universal backdoor on your phone (which Google used last year to push silent config updates on some phones, wtf?) you can't use that. Or you have to use F-Droid to setup a Play Store scrapper such as Yalp or Aurora.
https://f-droid.org/en/docs/FAQ_-_App_Developers/#what-about...
https://support.google.com/googleplay/android-developer/answ...
I wonder when it becomes mandatory and hope it doesn't.
A practical solution, IMO, would be several organizations running and publishing the builds—i.e. several independent F-Droids. Then, a few interested people could rather trivially automatically download the binaries and compare them. If one of the ‘stores’ gets compromised, a mismatch in binaries would indicate that.
This implies that versions should be built fully automatically from updated sources, without action on the part of the authors that is specific to the stores.
Edit: the idea of distributed builds, mentioned in the article, is similar—but IMO it's still unlikely that people will spend resources on apps that they personally don't use.
This idea has been discussed for years in the reproducible builds project. There has been some progress on this part on the Debian side of things, and you can in practice deploy rebuilders and make APT communicate and compare signed attestations.
Lukas from NYU did a presentation during miniDebConf in June. https://www.youtube.com/watch?v=hbHa4OFv7Qo
Disclaimer: I worked on this project and contribute to the reproducible builds project.
And even if the share of nerds is higher among F-Droid users, I still don't think coders often go “wait, this app is open-source, let me build it myself instead of getting a binary.”
Literal wizards, they build from source.
> Arch Linux is currently in the process of having it 100% reproducible, for the exact definition of reproducible builds and it's benefits take a look at the project website[2]. Arch users can help contribute to Reproducible Build issues by looking at the continuous reproducing environment[3]
[1] https://wiki.archlinux.org/index.php/DeveloperWiki:Reproduci... [2] https://reproducible-builds.org/ [3] https://tests.reproducible-builds.org/archlinux/archlinux.ht...
Isn't this a GPL violation?
My understanding is you can distribute Signal binaries but you'd have to connect it to your own servers so it is not Signal anymore... It is something based on Signal like whatsapp (which nobody wants)
I don't know what you meant by this, but MYEUHD is correct: you can't release software under GPL and then dictate the terms under which binaries may be distributed, beyond the relevant copyleft restrictions already imposed by the GPL.
I'm not convinced that Signal attempt any such prohibition though. There's a discussion over here [0] on this question. Someone rightly points out Stallman's Freedom 2.
[0] https://github.com/signalapp/Signal-Android/issues/282#issue...
As you say, Mozilla have done the same thing, and it's not hard to see why, though some FOSS folks (Debian in particular) took issue with this [0][1]
[0] https://lwn.net/Articles/676799/
[1] https://en.wikipedia.org/wiki/Mozilla_software_rebranded_by_...
He and his colleagues are hostile towards federated protocols. This culminated in an article called "The ecosystem is moving" to which Daniel Gultsch (maintainer of conversations.im) answered here: https://gultsch.de/objection.html
If you license under GPL, you're still free to be protective of your trademarks.
This makes sense given that although Mozilla like to use their own licence, they've been careful over the years to either release under the GPL as well, or to use a licence of their own which has been constructed to be GPL-compatible [2]. Clearly, the GPL didn't force Mozilla to be permissive with their trademark.
[0] https://www.gnu.org/licenses/old-licenses/gpl-2.0.txt
F-droid feels incomplete to me -- open source + third party builds are still not enough, we need privacy linting and community code review to have any assurance of what these apps are doing.
(But don't mean to dis, F-droid is IMO the best thing about mobile right now)