Bug#507849: lintian.d.o run finished, source/binary mismatch not quite fixed
On Sun, Feb 01, 2009 at 01:43:05PM -0800, Russ Allbery wrote:
> I unfortunately can now confirm that this is still broken. I checked the
> binary-packages listing and it had the right value for the source version,
> but after a full run (with harness -f), the value in the binary-packages
> list is wrong again.
>
> gluck:/org/lintian.debian.org/laboratory/info> grep aufs-modules-2.6.26-1-486 binary-packages
> aufs-modules-2.6.26-1-486;2.6.26+0+20080719-6;linux-modules-extra-2.6;2.6.26+0+20080719-6;pool/main/l/linux-modules-extra-2.6/aufs-modules-2.6.26-1-486_2.6.26+0+20080719-6_i386.deb;1229775426
>
> This claims the binary package with version 2.6.26+0+20080719-6 was built
> from a source package with the same version. However, this is clearly
> wrong:
>
> gluck:/org/lintian.debian.org/laboratory/binary/aufs-modules-2.6.26-1-486> dpkg -I deb | grep Source
> Source: linux-modules-extra-2.6 (2.6.26-6)
>
> I don't understand what's failing in the code and I've looked at it a
> couple of times now. I think it needs more eyeballs.
OK. I think I have an idea of what's going on.
The first time list-binpkg is run the script gathers all the information
from the Packages file. But after setting up the laboratory,
info/binary-packages is used instead.
The only problem is that the structure of those files isn't exactly the same.
E.g. the first time list-binpkg is run, the "source" field contains both,
source package name and source version, but in subsequent runs it only has the
source package name (and a new "source-version" field is used to keep the
source version).
I want to make sure everything else is OK before committing, but see the
following patch for an idea of how to fix this issue.
--- a/unpack/list-binpkg
+++ b/unpack/list-binpkg
@@ -161,6 +161,9 @@ while (!eof(IN)) {
$source_version = $2;
}
+ $source_version = $data->{'source-version'}
+ if (exists $data->{'source-version'});
+
# write entry to output file
print OUT join(';',
$pkg,
Reply to: