NSIS 3.06.1 based builds are not reproducible anymore
While building 10.0a7 we realized that Windows builds were not matching
anymore. Extracting 32bit .exe files (with 7z x
) it turns out the NSIS
.dlls in the PLUGINSDIR
were different. Inspecting them with xxd
(diff -u <(xxd 1/\$PLUGINSDIR/System.dll) <(xxd 2/\$PLUGINSDIR/System.dll)
) showed the following:
--- /dev/fd/63 2020-09-14 13:36:43.586345952 +0000
+++ /dev/fd/62 2020-09-14 13:36:43.590345980 +0000
@@ -6,7 +6,7 @@
00000050: 6973 2070 726f 6772 616d 2063 616e 6e6f is program canno
00000060: 7420 6265 2072 756e 2069 6e20 444f 5320 t be run in DOS
00000070: 6d6f 6465 2e0d 0d0a 2400 0000 0000 0000 mode....$.......
-00000080: 5045 0000 4c01 0900 3076 5c5f 0000 0000 PE..L...0v\_....
+00000080: 5045 0000 4c01 0900 acc6 5c5f 0000 0000 PE..L.....\_....
00000090: 0000 0000 e000 2e23 0b01 021f 0046 0000 .......#.....F..
000000a0: 0064 0000 0004 0000 a633 0000 0010 0000 .d.......3......
000000b0: 0060 0000 0000 6c63 0010 0000 0002 0000 .`....lc........
@@ -1342,7 +1342,7 @@
000053d0: 0000 0000 0000 0000 0000 0000 0000 0000 ................
000053e0: 0000 0000 0000 0000 0000 0000 0000 0000 ................
000053f0: 0000 0000 0000 0000 0000 0000 0000 0000 ................
-00005400: 0000 0000 3076 5c5f 0000 0000 7890 0000 ....0v\_....x...
+00005400: 0000 0000 acc6 5c5f 0000 0000 7890 0000 ......\_....x...
00005410: 0100 0000 0800 0000 0800 0000 2890 0000 ............(...
00005420: 4890 0000 6890 0000 7514 0000 c831 0000 H...h...u....1..
00005430: a114 0000 c71b 0000 3d29 0000 441c 0000 ........=)..D...
After the PE header ends with \0\0
The COFF header starts with 2 bytes
for the Machine
attribute and 2 bytes for the NumberOfSections
.
Immediately after those the differences begin in the TimeDateStamp
part. The same timestamps seem to show up later again.
I am not sure why I did not see those, though when redoing the build. I probably recreated only the .exe files assuming the issue was solely in those and not in binaries coming with NSIS itself.