Hi, I'm working on a service that compares the source packages in the archive to re-generated-from-git source packages. See https://debaudit-dev/git2dsc/ 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: --- /var/tmp/oc.7zuxkmuq/archive/deepin-icon-theme_2025.12.04-1_unsigned_stripped.dsc 2026-01-01 08:43:15.137814131 +0000 +++ /var/tmp/oc.7zuxkmuq/deepin-icon-theme_2025.12.04-1_stripped.dsc 2026-01-01 08:43:15.137814131 +0000 @@ -4,7 +4,7 @@ Architecture: all Version: 2025.12.04-1 Maintainer: Debian Deepin Packaging Team <pkg-deepin-devel@lists.alioth.debian.org> -Uploaders: Yangfl <mmyangfl@gmail.com>, Boyuan Yang <byang@debian.org>, Yanhao Mo <yanhaocs@gmail.com>, Hu Feng <hufeng@uniontech.com>, +Uploaders: Yangfl <mmyangfl@gmail.com>, Boyuan Yang <byang@debian.org>, Yanhao Mo <yanhaocs@gmail.com>, Hu Feng <hufeng@uniontech.com>, Homepage: https://github.com/linuxdeepin/deepin-icon-theme Standards-Version: 4.7.3 Vcs-Browser: https://salsa.debian.org/pkg-deepin-team/deepin-icon-theme The source package is rebuilt with 'dpkg-buildpackage -S -us -uc -d -nc' which translates to 'dpkg-source -b .' With dpkg-dev 1.22.21 (trixie, forky) I get the added space. 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, Lucas
Lucas Nussbaum writes ("Bug#1124669: git-debpush does something strange with the Uploaders field"):
...
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.
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.
Hi! I think the intention was to assign this specific cloned report to dgit, but perhaps the assumption at the time was that it was already assigned to dgit, and that's why the other one was reassigned to dpkg-dev. Reassigning it now. If that was not the intention, then please simply close it, as I've mentioned on #1124669 this should be fixed on the dpkg-dev side. Thanks, Guillem