Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: Peter Korsgaard <peter@korsgaard.com>
To: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Antoine Coutant <antoine.coutant@smile.fr>,
	Vincent Fazio <vfazio@xes-inc.com>,
	Thomas Petazzoni <thomas.petazzoni@bootlin.com>,
	buildroot@buildroot.org
Subject: Re: [Buildroot] [PATCH] Revert "support/download: generate even more reproducible tarballs"
Date: Sat, 13 Jan 2024 21:26:13 +0100	[thread overview]
Message-ID: <87cyu5rndm.fsf@48ers.dk> (raw)
In-Reply-To: <20240101215142.2480384-1-yann.morin.1998@free.fr> (Yann E. MORIN's message of "Mon, 1 Jan 2024 22:51:42 +0100")

>>>>> "Yann" == Yann E MORIN <yann.morin.1998@free.fr> writes:

 > Commit 768f9f80f62c (support/download: generate even more reproducible
 > tarballs) causes non-reproducibility in tarballs we previousy
 > generated, especially the archives for two cargo-vendored packages,
 > ripgrep and sentry-cli.

 > The cause is that those two pakcages eventually vendor a file that has
 > the u+x bit set, but is otehrwise go-x. With 768f9f80f62c, the files are
 > now go+x, so the hash for those generated archives has changed.

 > Besides, that commit was wrong: it did not account for the 'r' bit for
 > go part, leaving some non-reproducibility still unaccounted for.

 > So, to generate really reproducible archives, we would need to fix that
 > read bit as well, and that has the potential to affect all the archives
 > we generated so far. If we wanted to do so, we'd need a way to version
 > all generated archives, like we do for git and svn, but now for all the
 > different CVSes, as well as for all the vendoring post-processes.

 > For 768f9f80f62c, all that was of conern was the working copies of CVSes
 > (i.e. git, svn, cvs...) that we cache in the Buildroot download dir, not
 > the temporary files during post-processing. Indeed, in that latter case,
 > the user has virtually no way to mangle with the mode of the
 > intermediate extract before repack.

 > And we do have a big fat warning that users should not attempt to meddle
 > with the git tree that Buildroot caches.

 > As 768f9f80f62c however demonstrates, is that it took quite a long time
 > between the introduction of the git caching, and the time someone
 > eventually discovered they could meddle in there. This shows that the
 > issue it not actually critical in most setups.

 > Also, the tar manual [0] hints at a better solution to handle
 > reproducibility, which even avoids touching the files on disk which is
 > even nicer:

 >     ‘--mode='go+u,go-w'’
 >         Omit irrelevant information about file permissions.

 > If we were to actually handle the mode bit for reproducibility, we'd
 > need to:
 >   - introduce archive versioning for all download backends and
 >     prost-processing
 >   - use the tar officially suggested method

 > So, revert that change, as it was incomplete, was not really fixing much
 > issues, and causes actual issues.

 > This reverts commit 768f9f80f62c1da6e298c680f0f4bfa887f38c78.

 > [0] https://www.gnu.org/software/tar/manual/tar.html#Reproducibility

 > Thanks to Vincent and Arnout for pointing at the tar manual.

 > Reported-by: Antoine Coutant <antoine.coutant@smile.fr>
 > Reported-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
 > Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
 > Cc: Vincent Fazio <vfazio@xes-inc.com>
 > Cc: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>

Committed to 2023.02.x and 2023.11.x, thanks.

-- 
Bye, Peter Korsgaard
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

      parent reply	other threads:[~2024-01-13 20:26 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-01-01 21:51 [Buildroot] [PATCH] Revert "support/download: generate even more reproducible tarballs" Yann E. MORIN
2024-01-10 15:28 ` Romain Naour
2024-01-13 20:26 ` Peter Korsgaard [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87cyu5rndm.fsf@48ers.dk \
    --to=peter@korsgaard.com \
    --cc=antoine.coutant@smile.fr \
    --cc=buildroot@buildroot.org \
    --cc=thomas.petazzoni@bootlin.com \
    --cc=vfazio@xes-inc.com \
    --cc=yann.morin.1998@free.fr \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox