-
-
Notifications
You must be signed in to change notification settings - Fork 2.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Reproducible Builds regression: dns-fallback.json #6823
Comments
I've setup a project that automatically extracts the official dns-fallback.json from https://github.com/kpcyrd/signal-desktop-dns-fallback-extractor The https://raw.githubusercontent.com/kpcyrd/signal-desktop-dns-fallback-extractor/${pkgver}/dns-fallback.json |
I think this change was a mistake. While I understand manually updating the DNS fallback IPs is annoying for the devs, making builds reproducible/deterministic for users to verify should be considered way more important. Further, the DNS fallback will end up being the same for everyone in that official build, and only changes weekly, so doing it dynamically as if they were pushing updates all the time doesn't really make sense I feel. I suggest the following change for the Signal devs: remove the generated The only chore this would give the devs is having to run |
Personally I'm fine with how things work at the moment, I'd gladly retire my signal-desktop-dns-fallback-extractor project as soon as it's not needed anymore, but keeping it around is fairly low-maintenance for me. There haven't been any reproducible builds issues since. The only downside is how there's no checks/controls (that I'm aware of) to ensure the |
hey, I have an update: this should no longer be an issue as of 620392e as part of work to make Linux builds reproducible |
This is fixed in the latest 7.21.0 release, thank you very much! |
Using a supported version?
Overall summary
Arch Linux is very far in implementing reproducible builds and has multiple independent groups that compare the official binaries with the binaries they compiled on their own computers.
This has been working fine for signal-desktop the last few years, today I noticed signal-desktop is currently listed as "not reproducible" on https://reproducible.archlinux.org/ (the instance that is run by Arch Linux staff):
The rebuilder has generated a semantic diff (although it doesn't understand .asar that well):
https://web.archive.org/web/20240311104937/https://reproducible.archlinux.org/api/v0/builds/594200/diffoscope
This might be somewhat difficult to read, most of the differences are an offset being off-by-one, but the first difference seems to be:
So the content of
dns-fallback.json
became 1 byte larger in the second build.Ater a quick search in the source code I found ts/scripts/generate-dns-fallback.ts which seems to define how this file is generated.
The content of
build/dns-fallback.json
as currently distributed by Arch Linux:It seems
storage.signal.org
has changed from142.250.74.115
to142.250.181.211
(causing the 1 byte increase).Embedding this kind of data is generally fine in Arch Linux, however could this file be attached to the github release as an artifact? The "official"
dns-fallback.json
is currently only available inside of the official signal-desktop .deb. :)Currently these build instructions are used:
Suggestions on how to edit this very welcome! 🫶
This is somewhat related to #6814.
Thanks!
Steps to reproduce
Expected result
Actual result
Screenshots
Signal version
7.1.1
Operating system
Arch Linux
Version of Signal on your phone
No response
Link to debug log
No response
The text was updated successfully, but these errors were encountered: