mirror of
https://github.com/vincentmli/bpfire.git
synced 2026-04-13 12:32:59 +02:00
Pakfire: Update also the meta db at package list update.
This prevent using old dependencies at package update.
This commit is contained in:
@@ -1 +1,3 @@
|
||||
etc/system-release
|
||||
opt/pakfire/pakfire
|
||||
opt/pakfire/lib/functions.pl
|
||||
|
||||
@@ -369,6 +369,51 @@ sub dbgetlist {
|
||||
fetchfile("lists/packages_list.db", "");
|
||||
move("$Conf::cachedir/packages_list.db", "$Conf::dbdir/lists/packages_list.db");
|
||||
}
|
||||
|
||||
# Update the meta database if new packages was in the package list
|
||||
my @meta;
|
||||
my $file;
|
||||
my $line;
|
||||
my $prog;
|
||||
my ($name, $version, $release);
|
||||
my @templine;
|
||||
|
||||
open(FILE, "<$Conf::dbdir/lists/packages_list.db");
|
||||
my @db = <FILE>;
|
||||
close(FILE);
|
||||
|
||||
opendir(DIR,"$Conf::dbdir/meta");
|
||||
my @files = readdir(DIR);
|
||||
closedir(DIR);
|
||||
foreach $file (@files) {
|
||||
next if ( $file eq "." );
|
||||
next if ( $file eq ".." );
|
||||
next if ( $file =~ /^old/ );
|
||||
open(FILE, "<$Conf::dbdir/meta/$file");
|
||||
@meta = <FILE>;
|
||||
close(FILE);
|
||||
foreach $line (@meta) {
|
||||
@templine = split(/\: /,$line);
|
||||
if ("$templine[0]" eq "Name") {
|
||||
$name = $templine[1];
|
||||
chomp($name);
|
||||
} elsif ("$templine[0]" eq "ProgVersion") {
|
||||
$version = $templine[1];
|
||||
chomp($version);
|
||||
} elsif ("$templine[0]" eq "Release") {
|
||||
$release = $templine[1];
|
||||
chomp($release);
|
||||
}
|
||||
}
|
||||
foreach $prog (@db) {
|
||||
@templine = split(/\;/,$prog);
|
||||
if (("$name" eq "$templine[0]") && ("$release" ne "$templine[2]")) {
|
||||
move("$Conf::dbdir/meta/meta-$name","$Conf::dbdir/meta/old_meta-$name");
|
||||
fetchfile("meta/meta-$name", "");
|
||||
move("$Conf::cachedir/meta-$name", "$Conf::dbdir/meta/meta-$name");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
sub dblist {
|
||||
|
||||
@@ -279,13 +279,13 @@
|
||||
|
||||
### Download first
|
||||
foreach $pak (@upgradepaks) {
|
||||
system("mv $Conf::dbdir/meta/meta-$pak $Conf::dbdir/meta/old-meta-$pak");
|
||||
#system("mv $Conf::dbdir/meta/meta-$pak $Conf::dbdir/meta/old-meta-$pak");
|
||||
&Pakfire::getpak("$pak", "");
|
||||
}
|
||||
|
||||
foreach $pak (@upgradepaks) {
|
||||
if (&Pakfire::upgradepak("$pak")) {
|
||||
system("mv $Conf::dbdir/meta/old-meta-$pak $Conf::dbdir/meta/meta-$pak");
|
||||
#system("mv $Conf::dbdir/meta/old-meta-$pak $Conf::dbdir/meta/meta-$pak");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user