[buildd-tools-devel] Bug#672711: sbuild: --append-to-version should set source:Version substvar

Geoffrey Thomas geofft at MIT.EDU
Sun May 13 03:32:11 UTC 2012


Package: sbuild
Version: 0.62.6-1

Hi Roger,

As you saw on #debian-devel about a week ago, Paul Wise noticed (as a 
result of running the debian-derivatives analysis scripts on Debathena, 
which uses --append-to-version for all builds) that builds with 
--append-to-version do not correctly report the original/source package 
version number in the Source: field of the binary control file and binary 
.changes file. Namely, the field is expected to contain something of the 
form "package (1.0)", not just "package", if the resulting binary package 
is not version 1.0. This works fine for sbuild's --binNMU option -- the 
binary package will be version e.g. 1.0+b1, but contain a Source: field of 
"package (1.0)".

On tracking this down a little further (and noticing that 
--append-to-version=+b2 did not exhibit this bug), I found that when 
dpkg-source generates substvars (in Dpkg::Substvar), it uses the following 
logic:

sub set_version_substvars {
     my ($self, $version) = @_;

     $self->{'vars'}{'binary:Version'} = $version;
     $self->{'vars'}{'source:Version'} = $version;
     $self->{'vars'}{'source:Version'} =~ s/\+b[0-9]+$//;
     [...]
}

So the source:Version field is only correct when the binary version 
happens to end with a +bNNN (or when it is the same as the source version, 
of course). So sbuild did not need to specifically do anything about 
source:Version when --binNMU was the only option that changed the binary 
version from the source version, but this assumption is no longer true 
with --append-to-version.

I'm not sure what the right way to fix this is. Possibly sbuild itself 
should edit debian/substvars to change the source:Version field. I can't 
get --dpkg-source-opt=-Vsource:Version=1.0 to work, although maybe 
dpkg-source getting run before "Hack binNMU version" is relevant. Possibly 
dpkg-source gaining an option to be explicitly told the source package 
version is the most-right answer here, but would require changes in both 
sbuild and dpkg-dev.

-- 
Geoffrey Thomas
geofft at mit.edu





More information about the Buildd-tools-devel mailing list