Hi,

We basically have three cases:

1. upstream has an official .orig.tar.* file we can use

In my opinion, we'd want to use this because we don't need to explain how it was generated, and any signature from upstream can be used to verify that we are shipping exactly their release.

I'm aware that there is disagreement over this point, and there is a faction that would like us to rebuild upstream archives from git tags to avoid problems like we had with xz-utils, but without an easy way for users to verify that an archive corresponds to upstream git, we're mainly introducing an explanation why signatures do not match and should be disregarded.

In this case, I'd like a tag2upload service to have a mechanism to ensure the upload will use the correct file -- i.e. a mismatch in pristine-tar settings will not cause the file to be rebuilt differently and subsequently uploaded because there is no verification step between constructing the source package and uploading it.

2. upstream has no official release, but a git tag we can use

Here, it obviously makes sense to use git-archive.

3. upstream needs to be repacked for dfsg reasons

So far, I believe this has no good representation in git, and the packages that do this basically generate a dfsg orig.tar.* file and reimport this into git -- which is pretty much the least ideal situation, because we have no links to the upstream repo.

For 1. and 2., what I'd like to kind of see as part of the interface to a tag2upload service is a way to explicitly specify what kind of .orig archive should be constructed, and this needs to become a condition for actually uploading, so the magic tag containing maintainer intent would explicitly say "the .orig archive needs to have this sha256sum" for the pristine-tar case, and "the .orig archive needs to have a git extended pax header containing this sha1sum/sha256sum" for the second.

I have no good idea for dfsg repacks so far.

   Simon

Reply via email to