X-Git-Url: https://git.deb.at/w?a=blobdiff_plain;f=bin%2Fparse-packages;h=e069024c7ab1e20a54fb9f17b96ddca62cba7d73;hb=9295c7e1a81128139af8694f447d247130cf041c;hp=6e27c3a2bae3802ccac3ba26b31df412980d194d;hpb=2ba8772e72ef20f2486e86194c5862212a99ccbf;p=deb%2Fpackages.git diff --git a/bin/parse-packages b/bin/parse-packages index 6e27c3a..e069024 100755 --- a/bin/parse-packages +++ b/bin/parse-packages @@ -68,11 +68,12 @@ for my $suite (@SUITES) { for my $archive (@ARCHIVES) { print "Reading $archive/$suite...\n"; - if (!-d "$TOPDIR/archive/$archive/$suite/") { + my $suite_dir = "$TOPDIR/archive/$archive/$suite"; + if (!-d $suite_dir) { print "\tseems not to exist, skipping...\n"; next; } - open PKG, "zcat $TOPDIR/archive/$archive/$suite/$what/{,debian-installer/}binary-*/Packages.gz|"; + open PKG, "zcat $suite_dir/$what/binary-*/Packages.gz $suite_dir/$what/debian-installer/binary-*/Packages.gz|"; while () { next if /^\s*$/; my $data = ""; @@ -87,9 +88,9 @@ for my $suite (@SUITES) { } # Skip double package next if exists($packages_all_db{"$data{'package'} $data{'architecture'} $data{'version'}"}); - # Skip arch:all for amd64 & gnuab, any non-redundancy is + # Skip arch:all for amd64 & debports, any non-redundancy is # usually a bug anyway - next if ($archive eq 'amd64' or $archive eq 'gnuab') + next if ($archive eq 'amd64' or $archive eq 'debports') and $data{architecture} eq 'all'; if ($data{'provides'}) { @@ -115,10 +116,12 @@ for my $suite (@SUITES) { foreach (@complete_tags) { my ($facet, $tag) = split( /::/, $_, 2); if ($tag =~ s/^\{(.+)\}$/$1/) { + warn "pkg=$data{package} tags=$data{tag}\n" unless $facet && $tag; foreach (split( /,/, $tag )) { push @tags, "${facet}::$_"; } } else { + warn "pkg=$data{package} tags=$data{tag}\n" unless $facet && $tag; push @tags, "${facet}::$tag"; } } @@ -157,7 +160,7 @@ for my $suite (@SUITES) { $subsections{$suite}{$subsection}++; $priorities{$suite}{$data{priority}}++; my $pkgitem = "$archive $suite $data{'architecture'} ". - "$section $subsection $data{'priority'} $data{'version'} $sdescr\0"; + "$section $subsection $data{'priority'} $data{'version'} $data{'description-md5'} $sdescr\0"; my $previtem = ($packages_small{$data{'package'}}{$suite}{$data{'architecture'}} ||= $pkgitem); $packages_small{$data{'package'}}{$suite}{$data{'architecture'}} = $pkgitem @@ -303,7 +306,7 @@ for (my $i=1; $i<= $#descriptions; $i++) { } } if ($tags) { - foreach my $t (split /, /, $tags) { + foreach my $t (split m/, /, $tags) { if ($doc->add_term($t)) { warn "can't add term $t: $!\n"; } @@ -336,11 +339,10 @@ tie %package_postfixes_db, "DB_File", "$DBDIR/package_postfixes.db.new", or die "Error creating DB: $!"; while (my ($k, $v) = each(%package_postfixes)) { $v =~ s/.$//s; - my $nr = $v; - $nr =~ s/[^\000]//g; - $nr = length($nr) + 1; # < number of hits + my $nr = ($v =~ tr/\000/\000/) + 1; if ($nr > $MAX_PACKAGE_POSTFIXES) { - $v = "\001" . $nr; + $v = ($v =~ /\^/) ? "^\001" . $nr + : "\001" . $nr; } $package_postfixes_db{$k} = $v; }