On Thu, Nov 10, 2016 at 10:34:33AM +0000, Holger Levsen wrote: > On Thu, Nov 10, 2016 at 08:24:38AM -0200, Johannes Schauer wrote: > > > I certainly hope it's part of the .buildinfo file as well, else, for > > > reproducing binNMUs we would also need to store the .changes files in an > > > easily accessable manner… (which we plan to do for .buildinfo files, but > > > not for .changes files atm…) > > > > for binary-only uploads, dpkg-genbuildinfo will add the Binary-Only-Changes > > field to the .buildinfo file which contains the text of the last changelog > > entry together with the maintainer name and date. > > can someone please point at a real life/archive example of such a file? > (a binNMU .changes file with Binary-Only-Changes field…)
That's in the .buildinfo file (not .changes), and I don't think they are stored in the archive yet? But just try building a binNMU with sbuild and look at the resulting .buildinfo. Something like sbuild --make-binNMU="test rebuild" -m"Niko Tyni <nt...@debian.org>" --binNMU=2 libxml-parser-perl_2.44-2 results in a .buildinfo file with Format: 0.1 Source: libxml-parser-perl (2.44-2) Binary: libxml-parser-perl Architecture: amd64 Version: 2.44-2+b2 Binary-Only-Changes: libxml-parser-perl (2.44-2+b2) unstable; urgency=low, binary-only=yes . * Binary-only non-maintainer upload for amd64; no source changes. * test rebuild . -- Niko Tyni <nt...@debian.org> Tue, 05 Jul 2016 21:55:41 +0200 Checksums-Md5: [...] > I'm still confused, thinking that this Binary-Only-Changes field needs > to be assembled into a file, called changelog.$arch, which is then put > into the debian directory of the unpacked source package. (And which is > then not included in the resulting binary packages…) When asked to make a binNMU, sbuild will append an entry to debian/changelog in the source, containing "binary-only=yes". During package build, dh_installchangelogs (so debhelper not dpkg!) will then extract that debian/changelog entry and install that in the binary package as /usr/share/doc/<package>/changelog.Debian.<arch>, separately from the rest of the changelog which goes to /usr/share/doc/<package>/changelog.Debian. (This is done to not break M-A:same coinstallability.) As Johannes wrote, dpkg-genbuildinfo will also read debian/changelog in the source and write out a corresponding Binary-Only-Changes field in the resulting .buildinfo if the changelog entry contains "binary-only=yes". To reproduce a binNMU from a .buildinfo file, one would need to parse the Binary-Only-Changes field and extract the parts that needs to be passed to sbuild. This currently seems rather fragile as noted by Ian in #843773: the binNMU version needs to be parsed from the +bX notation, and the message needs to be separated from the "Binary-only [...]" text that's hardcoded in sbuild and might even change in the future. And then there's the timestamp issue where I'll defer to others :) But all that seems fixable on the sbuild side, and I think Johannes is actively working on this stuff (thanks!) Hope this clarifies a bit, -- Niko Tyni nt...@debian.org