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.

Ian.

-- 
Ian Jackson <[email protected]>   These opinions are my own.  

Pronouns: they/he.  If I emailed you from @fyvzl.net or @evade.org.uk,
that is a private address which bypasses my fierce spamfilter.

Reply via email to