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.