How to create deterministic origin.tar.gz / debian.tar.xz?

Patrick Schleizer patrick-mailinglists at whonix.org
Thu Jan 19 10:25:00 UTC 2017


Do you have any best practices recommendation on how to create a
deterministic deterministic origin.tar.gz / debian.tar.xz?

   LC_ALL=C.UTF-8
   export LC_ALL

make dist

   find \
      "." \
      -not -iwholename '*.git*' \
      -print0 \
         | tar \
            --null \
            --no-recursion \
            --create \
            --verbose \
            --owner="0" --group="0" \
            --numeric-owner \
            --mode=go=rX,u+rw,a-s \
            -T \
            - \
               | gzip -9 -n > "$make_upstream_tarball_real_path"

make debdist

   find debian -print0 \
      | sort -z \
         | tar \
            --null \
            --no-recursion \
            --create \
            --xz \
            --verbose \
            --owner="0" --group="0" \
            --numeric-owner \
            --mode=go=rX,u+rw,a-s \
            --file="$make_debian_tarball_absolute_path" \
            -T \
            -

(Using origin.tar.gz / debian.tar.xz to then feed dpkg-source (dsc file
creation) followed by cowbuilder with it.)

I hopefully added all that is recommended on the Debian reproducible
wiki pages.

What about tar header BLKTYPE device major:minor filesystem?
Non-deterministic or somehow kept care of already? Anything else?

Best regards,
Patrick




More information about the Reproducible-builds mailing list