diff --git a/src/pakfire/lib/functions.pl b/src/pakfire/lib/functions.pl index f00d31b0f..dc38c00b1 100644 --- a/src/pakfire/lib/functions.pl +++ b/src/pakfire/lib/functions.pl @@ -710,7 +710,7 @@ sub upgradepak { if ($return == 0) { move("$Conf::tmpdir/ROOTFILES", "$Conf::dbdir/rootfiles/$pak"); cleanup("tmp"); - copy("$Conf::dbdir/meta/meta-$pak","$Conf::dbdir/installed/"); + copy("$Conf::dbdir/meta/meta-$pak", "$Conf::dbdir/installed/"); message("PAKFIRE UPGR: $pak: Finished."); message(""); } else { diff --git a/src/pakfire/pakfire b/src/pakfire/pakfire index b9cead196..19c090486 100644 --- a/src/pakfire/pakfire +++ b/src/pakfire/pakfire @@ -244,7 +244,7 @@ } elsif ("$ARGV[0]" eq "upgrade") { &Pakfire::upgradecore(); my @upgradepaks = &Pakfire::dblist("upgrade", "noweb"); - my @temp; + my @temp, $pak; foreach (@upgradepaks) { @temp = &Pakfire::resolvedeps("$_"); @@ -267,12 +267,15 @@ } ### Download first - foreach (sort @upgradepaks) { - &Pakfire::getpak("$_", ""); + foreach $pak (sort @upgradepaks) { + system("mv $Conf::dbdir/meta/meta-$pak $Conf::dbdir/meta/old-meta-$pak"); + &Pakfire::getpak("$pak", ""); } - foreach (sort @upgradepaks) { - &Pakfire::upgradepak("$_"); + foreach $pak (sort @upgradepaks) { + if (&Pakfire::upgradepak("$pak")) { + system("mv $Conf::dbdir/meta/old-meta-$pak $Conf::dbdir/meta/meta-$pak"); + } } } elsif ("$ARGV[0]" eq "list") {