[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: