Yeah, some more thinking would be good.  Another data point:

https://packages.debian.org/source/unstable/libntlm
https://packages.debian.org/source/experimental/libntlm

That is, instead of re-using the libntlm_1.8.orig.tar.gz (which is
identical to upstream's official tarball and carefully constructed to be
bit-by-bit reproducible from the git repository using git-archive) and
libntlm_1.8.orig.gz.asc, tag2upload created a different
libntlm_1.8.orig.tar.xz and lost the GPG signature.

I think I'm in a minority that cares about these things, and think that
a lot of people have given up on preserving identical tarballs and
retaining GPG signatures.  So fixing this may not be a big priority.
But if you can make this work, it would be nice.

I'm also not certain that there is any guarantee that an upload to
experimental has to use the same source tarball as an earlier upload to
unstable, for the same upstream version.  It may be conceivable that the
reason for the upload to experimental is to get another tarball into the
archive, because there were some problem with the sid orig.tar.  But
maybe this is mostly a theoretical concern, and using tag2upload may not
be relevant for this situation.

/Simon

Ian Jackson <[email protected]> writes:

> Simon Josefsson writes ("Bug#1105766: [tag2upload 207] failed, git2cl 1:3.0-3 
> [and 1 more messages]"):
>> Nice example!  It is just different in Sid vs experimental, I’m not sure 
>> there is any rule against this situation? But it is sub-optimal. I’m not 
>> sure other tools doesn’t have this issue too.
>
> I think tag2upload created this situation.  (It's not a very
> desirable one.)
>
> The t2u service ought to have found the existing .orig and reused it,
> when it processed your upload to experimental.  Instead, it didn't
> find it, and then it made a new .orig.tar.xz with git-deborig and
> uploaded that.
>
> I think the possibility that this situation can arise means I will
> have to implement the a complicated algorithm for orig finding.
> Something like this:
>
>  * Retain the existing dgit fetch.  We need the output of this anyway
>    because dgit push-source uses it.  Doing it separately at the
>    beginning only costs a 2nd ftpmaster API query dsc_in_suite and a
>    2nd no-op git fetch.
>
>    In a normal NMU targeting the same suite this should always work,
>    unless maybe the current thing in sid is very new.
>
>  * If we don't now have any origs, look to discover existing origs
>    with a file_in_archive query.  Hopefully we find precisely one
>    .orig.tar.* and possibly some .orig_foo.tar.* (only one of each).
>
>  * Thus having determined by API calls what origs we want, we attempt
>    to obtain them.  If this does not work I think we must fail.
>
>  * If we don't discover any matching origs then we know we need to
>    make a new orig and use git-deborig, using the upstream= from the
>    tag.
>
>  * If we discovered some matching origs but there were stems for which
>    there were several files with the same stem, we don't know which to
>    choose.  I don't see anything other to do but fail in this case.
>
> I will think about this some more and maybe implement it tomorrow.
>
> Ian.

Attachment: signature.asc
Description: PGP signature

Reply via email to