Hi,

On 2/18/25 00:21, Jeremy Stanley wrote:

Debian has, for legal and logistical reasons, decided that it cannot
distribute upstream Git repositories as its source packages, and
instead chooses to try to condense upstream's preferred form for
modification (back) into source tarballs.

If we "cannot", then it is not something we "choose".

We have several upstreams whose git repositories contain files that may be legal for upstream to distribute, but that do not fulfill our, stricter, requirements, or where we do not want to ship the files as they are for technical reasons, such as when upstream is vendoring old versions of libraries.

We have a toolchain that can handle file exclusions when importing source archives from upstream, and these tools output a compressed source tarball.

In theory, they could output a git bundle with the offending files removed, but this would not be useful: simply removing the objects makes it impossible to import the bundle, and changing the objects changes the hashes, so neither can fulfill the role of "preferred form for modification."

What I'd like to see at some point is "compressed bundle containing a single commit or tag" as the orig archive. Verifying this against upstream is a little harder than for upstream released tarballs (where I can just check if the file in Debian is bitwise identical to the one released and possibly signed by upstream), but that can be fixed with appropriate tooling.

This would not work, however, for upstreams where we exclude files: for this, we'd need to extend git to allow us to both create and import incomplete bundles. That is a lot harder, but would be required for this to be universally useful.

(there is also some correlation between "upstream's git does not contain any unredistributable files or vendored dependencies" and "upstream ships a usable source tarball", so precisely the cases where git is the only upstream we have are the cases where that is least useful to us)

   Simon

Reply via email to