Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

You can read more about reproducible build support in Flit reproducible build docs and Hatch reproducible build docs.

Preparing reproducible .tar.gz packages

If you prepare source-tarball, or another .tar.gz packae you can have script use scripts similar to this one - which takes the same source_date_epoch and repacks the .tar.gz file to be reproducible. There are however few gotchas:

1) Make sure to remove permissions for "group" and "other" for all files that you add to the repository. This is needed because group/other permissions have different deault settings (based on umask) and clearing them is the most certain way of reproducibility. This can be done in a few ways:

  • if you use git archive  - "-c tar.umask=0077" removes all permissions for group/others
  • Just run chmod -R og= <directory>  for the directory to compress - before running the reproducible script

2) if you usse git archive , you can exclude some of the directories with .gitattributes  eport-ignore  specification