Subject: Re: bug#75090: Make 'guix pack -f docker' tarballs reproducible?

From: Ludovic Courtès <[email-masked]>
Date: Tue, 07 Jan 2025 23:57:41 +0100

Hi Simon,

Simon Josefsson <[email-masked]> skribis:

> I am creating docker archives using:
>
> guix pack guix bash-minimal coreutils-minimal net-base --save-provenance -S /bin=bin -S /share=share -f docker --image-tag=guix --max-layers=8 --verbosity=2
>
> To my surprise the output was not reproducible between re-runs.
>
> The reason is because of the timestamp and ownership information in the
> outer tarball.  The internals are identical and reproducible.  See
> diffoscope output below.
>
> I tried to work around it by wrapping either the 'guix pack' or
> 'guix-daemon' commands with this environment variable, which I suggest
> for inspiration as additional parameters to tar:
>
> TAR_OPTIONS="--owner=0 --group=0 --numeric-owner --sort=name --mode=go+u,go-w --mtime=@0"
>
> I would prefer 'guix pack' produced reproducible archives by default.

Indeed.  I sent a fix based on your suggestion:
<https://issues.guix.gnu.org/75426>.

Thanks,
Ludo’.