X-Git-Url: https://git.deb.at/?p=deb%2Fpackages.git;a=blobdiff_plain;f=bin%2Fparse-packages;h=238a47b9ec9f5ffe50c751afe05e81c2e8d392fc;hp=ab5fbcef5b12e357fbfcce47cea2093e14356e8c;hb=bcfcaa38f5df98ccff82e7ec1b9473b92b850c17;hpb=422bc26cd78a51deceb45dbdc242e5fecf079e45;ds=sidebyside diff --git a/bin/parse-packages b/bin/parse-packages index ab5fbce..238a47b 100755 --- a/bin/parse-packages +++ b/bin/parse-packages @@ -27,6 +27,7 @@ my $what = $ARGV[0] ? "non-free" : "*"; my $MAX_PACKAGE_POSTFIXES = 100; use DB_File; +use Storable; use Packages::Config qw( $TOPDIR $DBDIR @ARCHIVES @SUITES ); &Packages::Config::init( './' ); my %packages_small = (); @@ -38,6 +39,10 @@ my @descriptions = ("we count lines one-based\000"); my %packages_descriptions = (); my %descriptions_packages = (); +my %sections = (); +my %subsections = (); +my %priorities = (); + $/ = ""; for my $archive (@ARCHIVES) { @@ -70,10 +75,10 @@ for my $archive (@ARCHIVES) { if ($data{'source'}) { $src = $data{'source'}; $src_version = $1 - if $src =~ s/\s+\(\s*=\s*(.*)\).*//; # strip version info + if $src =~ s/\s+\((.*)\).*//; # strip version info } $data{'source'} = $src; - $data{'source-version'} = $src_version; + $data{'source-version'} = $src_version if $src_version; my $descr = $data{'description'}; my $did = undef; if (exists($descriptions{$descr})) { @@ -94,10 +99,15 @@ for my $archive (@ARCHIVES) { my $subsection = $data{section} || '-'; if ($data{section} && ($data{section} =~ m=/=o)) { ($section, $subsection) = split m=/=o, $data{section}, 2; + ($subsection, $section) = split m=/=o, $data{section}, 2 + if $section eq 'non-US'; } $data{'section'} = $section; $data{'subsection'} = $subsection; $data{'priority'} ||= '-'; + $sections{$suite}{$archive}{$section}++; + $subsections{$suite}{$archive}{$subsection}++; + $priorities{$suite}{$archive}{$data{priority}}++; $packages_small{$data{'package'}} .= "$archive $suite $data{'architecture'} ". "$section $subsection $data{'priority'} $data{'version'} $sdescr\000"; $sources_packages{$src} .= @@ -197,6 +207,10 @@ while (my ($k, $v) = each(%package_postfixes)) { } untie %package_postfixes_db; +store \%sections, "$DBDIR/sections.info"; +store \%subsections, "$DBDIR/subsections.info"; +store \%priorities, "$DBDIR/priorities.info"; + rename("$DBDIR/packages_small.db.new", "$DBDIR/packages_small.db"); rename("$DBDIR/sources_packages.db.new", "$DBDIR/sources_packages.db"); for my $suite (@SUITES) {