]> git.ipfire.org Git - people/pmueller/ipfire-2.x.git/commitdiff
pakfire: Optimize upgradecore function
authorRobin Roevens <robin.roevens@disroot.org>
Thu, 28 Jul 2022 11:21:31 +0000 (13:21 +0200)
committerPeter Müller <peter.mueller@ipfire.org>
Thu, 28 Jul 2022 13:44:29 +0000 (13:44 +0000)
upgradecore function should just upgrade the core:
Moved check if upgrade is necessary to pakfire upgrade code, removing
code from upgradecore function duplicating codedbinfo workings.
Also adding more vebosity to pakfire upgrade.

Signed-off-by: Robin Roevens <robin.roevens@disroot.org>
src/pakfire/lib/functions.pl
src/pakfire/pakfire

index 971aa2d5956c0d96182efaa1fb7246592e0d14c0..4f0515f62b048b2f197dfb25cc3d736ec436c339 100644 (file)
@@ -773,35 +773,28 @@ sub setuppak {
 }
 
 sub upgradecore {
-       getcoredb("noforce");
-       eval(`grep "core_" $Conf::dbdir/lists/core-list.db`);
-       if ("$core_release" > "$Conf::core_mine") {
-               # Safety check for lazy testers:
-               # Before we upgrade to the latest release, we re-install the previous release
-               # to make sure that the tester has always been on the latest version.
-               my $tree = &get_tree();
-               $Conf::core_mine-- if ($tree eq "testing" || $tree eq "unstable");
-
-               message("CORE UPGR: Upgrading from release $Conf::core_mine to $core_release");
-
-               my @seq = `seq $Conf::core_mine $core_release`;
-               shift @seq;
-               my $release;
-               foreach $release (@seq) {
-                       chomp($release);
-                       getpak("core-upgrade-$release");
-               }
-
-               foreach $release (@seq) {
-                       chomp($release);
-                       upgradepak("core-upgrade-$release");
-               }
-
-               system("echo $core_release > $Conf::coredir/mine");
+       # Safety check for lazy testers:
+       # Before we upgrade to the latest release, we re-install the previous release
+       # to make sure that the tester has always been on the latest version.
+       my $tree = &get_tree();
+       $Conf::core_mine-- if ($tree eq "testing" || $tree eq "unstable");
 
-       } else {
-               message("CORE INFO: No new upgrades available. You are on release $Conf::core_mine.");
+       message("CORE UPGR: Upgrading from release $Conf::core_mine to $core_release");
+       
+       my @seq = ($Conf::core_mine .. $core_release);
+       shift @seq;
+       my $release;
+       foreach $release (@seq) {
+               chomp($release);
+               getpak("core-upgrade-$release");
        }
+       
+       foreach $release (@seq) {
+               chomp($release);
+               upgradepak("core-upgrade-$release");
+       }
+       
+       system("echo $core_release > $Conf::coredir/mine");
 }
 
 sub isinstalled {
index f23110cf5da04198b81cd219e22330f4ce047933..351d712165a55c5d42d1a1a1f81410ab997055ab 100644 (file)
                        $use_color = "$Pakfire::color{'lightpurple'}";
                }
 
-               &Pakfire::upgradecore();
+               &Pakfire::message("CORE INFO: Checking for Core-Updates...");
+
+               ### Make sure that the core db is not outdated. 
+               &Pakfire::getcoredb("noforce");
+               my %coredb = &Pakfire::coredbinfo();
+
+               if (defined $coredb{'AvailableRelease'}) {
+                       &Pakfire::upgradecore();
+               } else {
+                       &Pakfire::message("CORE INFO: No new Core-Updates available. You are on release ".$coredb{'Release'});
+               }
+
+               &Pakfire::message("PAKFIRE INFO: Checking for package updates...");
+               ### Make sure that the package list is not outdated. 
+               &Pakfire::dbgetlist("noforce");
                
                my @deps = ();
                if (my %upgradepaks = &Pakfire::dblist("upgrade")) {