Subject: Re: Git generated tarballs and Debian

From: "brian m. carlson" <[email-masked]>
Date: Tue, 28 Apr 2026 10:25:24 +0000

On 2026-04-28 at 08:40:05, Simon Richter wrote:
> Hi,
> 
> in Debian, we're shipping "original" tarballs for each software package, and
> the Debian specific changes in a separate file.
> 
> Historically, this users could do a bitwise comparison of the original
> tarball and the one in Debian to verify that these were unchanged.
> 
> With git, some authors have stopped releasing official tarballs, so we're
> using git-archive a lot -- but this is reproducible only by accident. GitHub
> also prepares some release tarballs that may or not be bitwise identical to
> what git archive produces.

I'll just note that we don't make any guarantees that `git archive`
produces identical output across versions.  Incorrectly making that
assumption broke kernel.org when we changed the format in the past.

Also, if you use `export-subst`, then it's possible to emit short object
IDs, which can differ in length depending on how many objects are in the
repository.  It's also possible to use zlib or pigz instead of gzip to
produce tarballs, in which case the compressed data will also differ.

I had intended to create and emit a standard, reproducible format for
`git archive`, but never got around to finishing that.  Perhaps I'll try
to pick it up at some point; I expect it will be easier to implement now
that we have Rust support in the tree.

When I was one of the maintainer of Git LFS, we intentionally produced
source tarballs specifically to emit bit-for-bit identical artifacts.
-- 
brian m. carlson (they/them)
Toronto, Ontario, CA