WalletWasabi: Deterministic build fails
@nopara73 merged https://github.com/zkSNACKs/WalletWasabi/pull/3872 so with the package.lock
file the exact version of every dependency can be controlled.
A couple of issues raised by this and unfortunately it did not solve the original problem, that the deterministic build is not working.
However, after running the packager on windows the lock files grown so I added the changes:
https://github.com/zkSNACKs/WalletWasabi/pull/4075 https://github.com/zkSNACKs/WalletWasabi/pull/4074
- Seemingly if you run publish on different platforms, more and more dependency hashes added.
- If you add
/p:RestoreLockedMode=true
here it will fail as “hash inconsistency”. When I was running the Packager as it is now in the source, without locked mode, I saw that the package.lock files were modified meanwhile the build and only at the end were the same like in the current master. Sodonet publish
is manipulating the lock file according to the runtime platform.
I uploaded some files here to compare the differences
AfterRunningPackager.zip -> the first phase of the packager basically just publish the files and get them ready for packing and signing.
WithOnlyBinaries.zip -> Just ran onlybinaries right after creating the zip above.
Here are the files: https://github.com/molnard/WalletWasabi/releases/tag/v1.1.12rc3
commit b7608c3ef366cc6200e93cca6f74d0497cf37083
About this issue
- Original URL
- State: closed
- Created 4 years ago
- Comments: 15
Status report
I followed this guide: https://github.com/zkSNACKs/WalletWasabi/blob/master/WalletWasabi.Documentation/Guides/DeterministicBuildGuide.md
By fixing this https://github.com/zkSNACKs/WalletWasabi/issues/4090 the situation improved a lot.
Windows
Zero difference
Linux
Zero difference, just line endings in SOS_README.TXT
macOS
Many differences in the binaries. According to Apple documentation, the signature that is used to ensure the integrity of the software is added into the binary itself.
Source
According to this, it is impossible to have a deterministic build and code signature on macOS.
I think it’s more like thanks to git setting:
core.autocrlf
(https://www.git-scm.com/book/en/v2/Customizing-Git-Git-Configuration).@molnard Could you somehow summarize what’s current status after those two PRs? What is the next issue?