On Fri, 2011-05-13 at 09:21 -0700, Russ Allbery wrote: > Margarita Manterola <ma...@debian.org> writes: > > If I try to find the lintian page for one of my packages, for example, > > uisp, I get to: > > > http://lintian.debian.org/full/unsorted.html#uisp > > > Which shows it belonging to "unknown", with many other packages that > > actually belong to real maintainers. This is happening to several other > > people as well (I guess all the people listed in that page with packages > > from unknown)
As far as lintian.d.o is concerned, there is no "uisp" source package; hence, it has no maintainer. adsb@bellini:/srv/lintian.debian.org$ grep uisp laboratory/info/source-packages adsb@bellini:/srv/lintian.debian.org$ grep uisp logs/html_reports.log source package uisp not listed! source package uisp not listed! source package uisp not listed! source package uisp not listed! source package uisp not listed! source package uisp not listed! > > I don't understand what's going on, but there's something weird there. I > > hope you can fix it. > > I haven't yet looked at this at all, but just off the top of my head, I > bet the web reporting stuff relied on the order of fields in the Packages > or Sources files. I saw an announcement go by saying that the ordering > may have changed, and I vaguely remember looking at that code a while back > and thinking it was making bad assumptions. Yeah, unpack/list-srcpkg was very tied to the field ordering; list-binpkg is much saner. I've pushed the attached patch, which seems to work: adsb@bellini:~/lintian$ cp /srv/lintian.debian.org/laboratory/info/source-packages . adsb@bellini:~/lintian$ wc -l source-packages 1038 source-packages adsb@bellini:~/lintian$ LINTIAN_DIST=unstable LINTIAN_ARCHIVEDIR=/org/ftp.debian.org/ftp/ LINTIAN_AREA=main LINTIAN_ROOT=. unpack/list-srcpkg source-packages adsb@bellini:~/lintian$ wc -l source-packages 15920 source-packages adsb@bellini:~/lintian$ zegrep "^Package:" /org/ftp.debian.org/ftp/dists/unstable/main/source/Sources.gz | sort | uniq | wc -l 15919 Regards, Adam
commit aefd5f0e4842a46b399b5b25c72bd97c33d7543e Author: Adam D. Barratt <a...@adam-barratt.org.uk> Date: Fri May 13 20:24:40 2011 +0100 Stop making assumptions about the order of fields in Sources.gz * unpack/list-srcpkg: + [ADB] Don't rely on the order of fields in the Sources file. The files produced by the Debian archive no longer follow the order which the code previously assumed, and we shouldn't assume that the order won't change again in the future. (Closes: #626597) diff --git a/debian/changelog b/debian/changelog index 69744fd..1e9e50d 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,13 @@ +lintian (2.5.1) unstable; urgency=low + + * unpack/list-srcpkg: + + [ADB] Don't rely on the order of fields in the Sources file. The files + produced by the Debian archive no longer follow the order which the code + previously assumed, and we shouldn't assume that the order won't change + again in the future. (Closes: #626597) + + -- Adam D. Barratt <a...@adam-barratt.org.uk> Fri, 13 May 2011 20:20:51 +0100 + lintian (2.5.0) unstable; urgency=low * Summary of tag changes: diff --git a/unpack/list-srcpkg b/unpack/list-srcpkg index 738963d..e437e9b 100755 --- a/unpack/list-srcpkg +++ b/unpack/list-srcpkg @@ -107,11 +107,18 @@ foreach my $sources (@sources) { my $line; while (!eof(IN)) { - do { $line = <IN> } until ($line =~ m/^Directory: (.*)$/m); - my $pkg_dir = $1; - do { $line = <IN> } until ($line =~ m/^ [0-9a-f]{32} [0-9]+ (.+\.dsc)$/m); - my $dsc_file = "$pkg_dir/$1"; - do { $line = <IN> } until ($line =~ m/^\s*$/m); + my $pkg_dir; + my $dsc_file; + + do { + $line = <IN>; + if ($line =~ m/^Directory: (.*)$/) { + $pkg_dir = $1; + } elsif ($line =~ m/^ [0-9a-f]{32} [0-9]+ (.+\.dsc)$/) { + $dsc_file = $1; + } + } until (not defined($line) or $line =~ /^\s*$/); + $dsc_file = "$pkg_dir/$dsc_file"; my @stat; # get timestamp...