X-Git-Url: https://git.deb.at/?a=blobdiff_plain;f=bin%2Fparse-packages;h=edc97a106f3446abdfd910d9f3f036c6d15e46d6;hb=892f09b6213c97863a80657f15b7ceb13962a776;hp=b3aab25fff2ee63b7e779edb86a2928023cba511;hpb=49f6fa5b401d8bba7abc2bafde675841a8729a15;p=deb%2Fpackages.git diff --git a/bin/parse-packages b/bin/parse-packages index b3aab25..edc97a1 100755 --- a/bin/parse-packages +++ b/bin/parse-packages @@ -20,6 +20,7 @@ # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA use strict; +use warnings; use lib './lib'; $| = 1; @@ -49,14 +50,15 @@ my %priorities = (); $/ = ""; -for my $archive (@ARCHIVES) { - for my $suite (@SUITES) { +for my $suite (@SUITES) { + my %package_names_suite = (); + my %packages_all_db; + tie %packages_all_db, "DB_File", "$DBDIR/packages_all_$suite.db.new", + O_RDWR|O_CREAT, 0666, $DB_BTREE + or die "Error creating DB: $!"; + for my $archive (@ARCHIVES) { print "Reading $archive/$suite...\n"; - my %packages_all_db; - tie %packages_all_db, "DB_File", "$DBDIR/packages_all_$suite.db.new", - O_RDWR|O_CREAT, 0666, $DB_BTREE - or die "Error creating DB: $!"; open PKG, "zcat $TOPDIR/archive/$archive/$suite/$what/{,debian-installer/}binary-*/Packages.gz|"; while () { next if /^\s*$/; @@ -76,9 +78,11 @@ for my $archive (@ARCHIVES) { if ($data{'provides'}) { foreach (split /\s*,\s*/, $data{'provides'}) { $virtual_packages{$_}{$suite}{$data{'package'}}++; + $packages_small{$_} ||= {}; } } $package_names{$data{'package'}} = 1; + $package_names_suite{$data{'package'}} = 1; my $src = $data{'package'}; my $src_version = ''; if ($data{'source'}) { @@ -138,9 +142,16 @@ for my $archive (@ARCHIVES) { $packages_all_db{"$data{'package'} $data{'architecture'} $data{'version'}"} = $data; } + } - untie %packages_all_db; + open NAMES, '>', "$DBDIR/package_names_$suite.txt.new" + or die "Error creating package names list: $!"; + foreach (sort keys %package_names_suite) { + print NAMES "$_\n"; } + close NAMES; + + untie %packages_all_db; } print "Writing databases...\n"; @@ -256,6 +267,8 @@ rename("$DBDIR/sources_packages.db.new", "$DBDIR/sources_packages.db"); for my $suite (@SUITES) { rename("$DBDIR/packages_all_$suite.db.new", "$DBDIR/packages_all_$suite.db"); + rename("$DBDIR/package_names_$suite.txt.new", + "$DBDIR/package_names_$suite.txt"); } rename("$DBDIR/packages_descriptions.db.new", "$DBDIR/packages_descriptions.db");