solus-project / ypkg

Modern, declarative, structured build format

Home Page:https://solus-project.com/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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

@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