reproducible builds with Gradle
This MR modifies the Gradle build system to create a reproducible archive of an I2P distribution. The archive also contains start scripts which can be used to launch a router. The results have been verified on Linux and on Mac with JDK 11. There is probably a lot of cleanup that can be done.
To verify that it is reproducible, check out this branch at commit 64731adfc77fbec4e63642a56ed28698795de328
and run ./gradlew clean assemble
. You should get the following SHA256 checksum:
8e5de1d32a5ef53fc652f298041fc1ab872bbeabbf7d96d556bfacf09be2ed63 reproducible/build/distributions/i2p.zip
(the .tar file in the same directory is not reproducible, I don't know why).
To launch i2p:
unzip i2p.zip
cd i2p
sh bin/i2p
(the file is not marked executable due to stripping)