X-Git-Url: https://git.deb.at/w?p=deb%2Fpackages.git;a=blobdiff_plain;f=lib%2FPackages%2FDB.pm;h=e6d1b3f26b434270d083c3acde7445e7594dee96;hp=7d4f55f0e650e63f0f717fd6fc1c6bbff6c713c0;hb=eefec1d45b4122c94629ab55d39d4bdf5f7dec43;hpb=41ab743eae0a7875cf03a8b50a060da06af30b39 diff --git a/lib/Packages/DB.pm b/lib/Packages/DB.pm index 7d4f55f..e6d1b3f 100644 --- a/lib/Packages/DB.pm +++ b/lib/Packages/DB.pm @@ -10,37 +10,53 @@ use Packages::Config qw( $TOPDIR $DBDIR ); our @ISA = qw( Exporter ); our ( %packages, %sources, %src2bin, %did2pkg, %descriptions, - %postf, %spostf, %debtags, + %postf, %spostf, %debtags, %desctrans, $obj, $s_obj, $p_obj, $sp_obj ); our @EXPORT = qw( %packages %sources %src2bin %did2pkg %descriptions - %postf %spostf %debtags + %postf %spostf %debtags %desctrans $obj $s_obj $p_obj $sp_obj ); our $db_read_time ||= 0; sub init { my $dbmodtime = (stat("$DBDIR/packages_small.db"))[9] || 0; - if ($dbmodtime >= $db_read_time) { + if ($dbmodtime > $db_read_time) { + undef $obj; + untie %packages; $obj = tie %packages, 'DB_File', "$DBDIR/packages_small.db", O_RDONLY, 0666, $DB_BTREE or die "couldn't tie DB $DBDIR/packages_small.db: $!"; + undef $s_obj; + untie %sources; $s_obj = tie %sources, 'DB_File', "$DBDIR/sources_small.db", O_RDONLY, 0666, $DB_BTREE or die "couldn't tie DB $DBDIR/sources_small.db: $!"; + untie %src2bin; tie %src2bin, 'DB_File', "$DBDIR/sources_packages.db", O_RDONLY, 0666, $DB_BTREE or die "couldn't open $DBDIR/sources_packages.db: $!"; + untie %descriptions; tie %descriptions, 'DB_File', "$DBDIR/descriptions.db", O_RDONLY, 0666, $DB_BTREE or die "couldn't tie DB $DBDIR/descriptions.db: $!"; + untie %desctrans; + tie %desctrans, 'DB_File', "$DBDIR/descriptions_translated.db", + O_RDONLY, 0666, $DB_BTREE + or die "couldn't tie DB $DBDIR/descriptions_translated.db: $!"; + untie %did2pkg; tie %did2pkg, 'DB_File', "$DBDIR/descriptions_packages.db", O_RDONLY, 0666, $DB_BTREE or die "couldn't tie DB $DBDIR/descriptions_packages.db: $!"; + untie %debtags; tie %debtags, 'DB_File', "$TOPDIR/files/debtags/vocabulary.db", O_RDONLY, 0666, $DB_BTREE or die "couldn't tie DB $TOPDIR/files/debtags/vocabulary.db: $!"; + undef $p_obj; + untie %postf; $p_obj = tie %postf, 'DB_File', "$DBDIR/package_postfixes.db", O_RDONLY, 0666, $DB_BTREE or die "couldn't tie postfix db $DBDIR/package_postfixes.db: $!"; + undef $sp_obj; + untie %spostf; $sp_obj = tie %spostf, 'DB_File', "$DBDIR/source_postfixes.db", O_RDONLY, 0666, $DB_BTREE or die "couldn't tie postfix db $DBDIR/source_postfixes.db: $!";