Ensure builds are reproducible
ikeydoherty opened this issue · comments
Currently, the internal build is essentially reproducible already
Two separate builds of nano will yield files with identical hashes:
f958945235c5eb55868d3122534d08d5e7026c2d install/usr/bin/nano
f958945235c5eb55868d3122534d08d5e7026c2d install/usr/bin/nano
However, the packing of the archive itself causes hash differences to occur in the resulting .eopkg
, which should be remedied. Every build from the same sources and dependencies should produce a bit-for-bit identical .eopkg
Eh - we've done all we can do until Solus 2 and eopkg is in C
https://github.com/hadronproject/hadron64/blob/master/gnome-base/gconf/gconf-2.32.4.py
https://github.com/hadronproject/lpms
here's some inspiration for the solus 2 ypkg maybe
one spec
@aydemir also I note in your project that you have some some complex collision detection going on.
Take a look @ https://github.com/solus-project/ypkg/blob/native-builds/ypkg2/stringglob.py
It'll make your life simpler.
In use: https://github.com/solus-project/ypkg/blob/native-builds/ypkg2/packages.py#L196