On 05/01/26 at 13:48 +0000, Ian Jackson wrote:
> Control: retitle -1 dpkg-source -b can leave additional space when un-folding 
> headers
> Control: reassign -1 dpkg-dev
> Control: clone -1 -2
> Control: retitle -2 should dgit build normaalise .dsc with 
> Dpkg::Control::Hash?
> Control: severity -2 normal
> Control: block 932802 by -2
> 
> Lucas Nussbaum writes ("Bug#1124669: git-debpush does something strange with 
> the Uploaders field"):
> > I ran into several uploads where the re-generated-from-git source
> > package has a minor difference with the package in the archive regarding
> > the Uploaders field.
> > 
> > For example, take deepin-icon-theme 2025.12.04-1
> > https://debaudit.debian.net/git2dsc/result/1ddd74147e5eefd52543cc4902ce36685ca300702ab837fb49e92229d82a21ae
> > 
> > The diff between the archive dsc and the rebuilt dsc is:
> ...
> >  Maintainer: Debian Deepin Packaging Team 
> > <[email protected]>
> > -Uploaders: Yangfl <[email protected]>, Boyuan Yang <[email protected]>, 
> > Yanhao Mo <[email protected]>, Hu Feng <[email protected]>,
> > +Uploaders:  Yangfl <[email protected]>, Boyuan Yang <[email protected]>, 
> > Yanhao Mo <[email protected]>, Hu Feng <[email protected]>,
> 
> I investigated this.  This package was indeed uploaded via tag2upload.
> But, this will affect any package with a similar debian/control
> uploaded via either dgit or tag2upload.
> 
> The root causes are the following:
> 
>  0. This package's git tree's debian/control haas an Uploaders field
>     whose first line doesn't contain any Uploader.
> 
>  1. dpkg-source -b emits an additional space when building the source
>     package, presumably due to (0).
> 
>  2. dgit and tag2upload need to insert the Dgit: field into the .dsc,
>     to state precisely which git tree this came from.  They use
>     libdpkg-perl's Dpkg::Control::Hash for this.
> 
>  3. libdpkg-perl's Dpkg::Control::Hash normalises the syntax, removing
>     the additional space when the .dsc is re-output.
> 
> I think there is nothing wrong with the package, so (0) should be
> considered normal.  I think dgit is using a correct technique (indeed
> arguably the best technique) for its task, so (2) is correct.  That
> Dpkg::Control::Hash normalises (3) is documented, so also IMO correct.
> 
> I think (1) is suboptimal.  dpkg-source -b makes an effort to unfold
> the lines, but its algorithm produces an anomalous output out of input
> that should be considered sensible.  So I have reassigned this bug
> to dpkg-dev.
> 
> > Of course that difference is irrelevant (it looks like it's gone in the
> > Sources file generated by dak), but I would like to understand where it
> > comes from, in order to understand how to best treat it on the debaudit
> > side.
> 
> Thanks for the report.  Indeed, it makes sense to understand this.
> 
> >From my POV. it is rather unfortunate that this happens between "dgit
> build-source" and "dgit push-source".  We might consider changing
> "dgit build-sourcd" to also put the .dsc through Dpkg::Control::Hash.
> I've cloned this bug for that.

Thanks for the detailed investigation.
In debaudit's git2dsc checker, I added a pass through
Dpkg::Control::Hash to normalize both dscs, so this is no longer flagged
as a problem.

Lucas

Reply via email to