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