Is it possible to create installers using makensis.exe (on Windows) or makensis (on Linux) based on the same nsi file and file tree which are identical as binary files?
We try to provide reproducable installer builds in the sense of
https://reproducible-builds.org
When we switch the platform used to run makensis, the produced installers slightly change.
It seems we managed to be able to do cross-platform reproducible builds. So I am closing this.
We used the following scons line to build the makensis installer (and tool all other files from the same binary download for Windows, that are used when building the installer directly on Windows):
scons UNICODE=yes PREFIX=/home/myuser/install/nsis-3.10/bin SKIPPLUGINS=all SKIPUTILS=all SKIPMISC=all NSIS_CONFIG_CONST_DATA_PATH=no VERSION=3.10 install-compiler
Yes, the stubs and plug-in will always be different between Windows on Posix so copy them from Windows and only build makensis on Posix.
If you really want reproducible builds:
I can't close the ticket, but feel free to close it. Thanks.
Thanks! Can one find out the SOURCE_DATE_EPOCH that the project used for its own binary distribution? And doesn't SOURCE_DATE_EPOCH only influence the makensis binary, but not any application installer created by makensis using an nsi file?
Last edit: Rainer Jung 2025-02-12
I added some extra details to the documentation. The official release does not set it but we will try to do it for the next release.
When SOURCE_DATE_EPOCH is set, it is propagated to the stubs and plug-ins when compiling those. Even when setting it, you still need to copy the stubs and plug-in from Windows to Posix if you want to match a specific Windows build (and vice versa).