signalapp / Signal-Desktop

A private messenger for Windows, macOS, and Linux.
https://signal.org/download
GNU Affero General Public License v3.0
14.68k stars 2.68k forks source link

preload.bundle.cache breaks reproducible builds #7028

Open brjsp opened 1 month ago

brjsp commented 1 month ago

Using a supported version?

Overall summary

While building Signal version 7.26.0 i noticed that the compiled version of the preload bundle has some bytes that differ from run to run:

RPM file checksum differs.
Extracting packages
/usr/libexec/signal-desktop/preload.bundle.cache differs at offset '561934' (data)
--- old /usr/libexec/signal-desktop/preload.bundle.cache (hex)
+++ new /usr/libexec/signal-desktop/preload.bundle.cache (hex)
@@ -1,4 +1,4 @@
-00089300  05 10 00 00 96 65 02 00  03 00 08 00 02 90 40 10  |.....e........@.|
+00089300  05 10 00 00 96 65 02 00  03 00 08 00 02 10 40 10  |.....e........@.|
 00089310  01 00 4f 06 00 00 4d 66  00 00 00 00 00 00 04 ae  |..O...Mf........|
 00089320  0a 01 05 00 92 49 09 7e  20 00 00 00 08 00 00 00  |.....I.~ .......|
 00089330  00 00 00 00 88 00 01 1a  f9 0b 02 25 02 2f 02 01  |...........%./..|

Given how important reproducible builds are for us (openSUSE) for technical reasons, i will be forced to disable the code pre-compilation.

Signal version

7.26.0

Electron version

31.6.0

Operating system

openSUSE Tumbleweed (observed on x86_64 and aarch64)