]> git.ipfire.org Git - people/pmueller/ipfire-2.x.git/blobdiff - src/pakfire/lib/functions.pl
Graph.pl gefixt, damit die CGIs sich trotz fehlender Mbmon Daten aufbauen
[people/pmueller/ipfire-2.x.git] / src / pakfire / lib / functions.pl
index 46297ccb3509e1e2f3e94ac737fff10ac8d3002a..8544e054f191765555bd07ab55a749e5e7d21ec6 100644 (file)
@@ -214,8 +214,8 @@ sub getmirrors {
 
        logger("MIRROR: Trying to get a mirror list.");
        
-       if ( -e "$Conf::dbdir/lists/server_list.db" ) {
-               my @stat = stat("$Conf::dbdir/lists/server_list.db");
+       if ( -e "$Conf::dbdir/lists/server-list.db" ) {
+               my @stat = stat("$Conf::dbdir/lists/server-list.db");
                my $time = time();
                $age = $time - $stat[9];
        } else {
@@ -229,6 +229,27 @@ sub getmirrors {
        }
 }
 
+sub getcoredb {
+       use File::Copy;
+
+       logger("CORE: Trying to get a core list.");
+       
+       if ( -e "$Conf::dbdir/lists/core-list.db" ) {
+               my @stat = stat("$Conf::dbdir/lists/core-list.db");
+               my $time = time();
+               $age = $time - $stat[9];
+       } else {
+               # Force an update.
+               $age = "3601";
+       }
+       
+       if ("$age" gt "3600") {
+               fetchfile("lists/core-list.db", "");
+               move("$Conf::cachedir/core-list.db", "$Conf::dbdir/lists/core-list.db");
+       }
+}
+
+
 sub selectmirror {
        ### Check if there is a current server list and read it.
        #   If there is no list try to get one.
@@ -296,10 +317,10 @@ sub dbgetlist {
                $age = $time - $stat[9];
        } else {
                # Force an update.
-               $age = "86401";
+               $age = "3601";
        }
        
-       if (("$age" gt "86400") || ("$force" eq "force")) {
+       if (("$age" gt "3600") || ("$force" eq "force")) {
                fetchfile("lists/packages_list.db", "");
                move("$Conf::cachedir/packages_list.db", "$Conf::dbdir/lists/packages_list.db");
        }
@@ -328,6 +349,21 @@ sub dblist {
        close(FILE);
 
        if ("$filter" eq "upgrade") {
+               getcoredb();
+               eval(`grep "core_" $Conf::dbdir/lists/core-list.db`);
+               if ("$core_release" gt "$Conf::core_mine") {
+                       if ("$forweb" eq "forweb") {
+                               print "<option value=\"core\">Core-Update -- $Conf::version -- Release: $Conf::core_mine -> $core_release</option>\n";
+                       } else {
+                               my $command = "Core-Update $Conf::version\nRelease: $Conf::core_mine -> $core_release\n";
+                               if ("$Pakfire::enable_colors" eq "1") {
+                                       print "$color{'lila'}$command$color{'normal'}\n";
+                               } else {
+                                       print "$command\n";
+                               }
+                       }
+               }
+       
                opendir(DIR,"$Conf::dbdir/meta");
                my @files = readdir(DIR);
                closedir(DIR);
@@ -594,6 +630,32 @@ sub setuppak {
        return $return;
 }
 
+sub upgradecore {
+       getcoredb();
+       eval(`grep "core_" $Conf::dbdir/lists/core-list.db`);
+       if ("$core_release" gt "$Conf::core_mine") {
+               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");
+               
+       } else {
+               message("CORE ERROR: No new upgrades available. You are on release $Conf::core_mine.");
+       }
+}
+
 sub isinstalled {
        my $pak = shift;
        if ( open(FILE,"<$Conf::dbdir/installed/meta-$pak") ) {
@@ -713,8 +775,9 @@ sub checkcryptodb {
        unless ( "$ret" eq "0" ) {
                message("CRYPTO WARN: The GnuPG isn't configured corectly. Trying now to fix this.");
                message("CRYPTO WARN: It's normal to see this on first execution.");
-               system("gpg --keyserver wwwkeys.de.pgp.net --always-trust --status-fd 2 --recv-key $myid >> $Conf::logdir/gnupg-database.log 2>&1");
-               system("gpg --keyserver wwwkeys.de.pgp.net --always-trust --status-fd 2 --recv-key $trustid >> $Conf::logdir/gnupg-database.log 2>&1");
+               my $command = "gpg --keyserver pgp.mit.edu --always-trust --status-fd 2";
+               system("$command --recv-key $myid >> $Conf::logdir/gnupg-database.log 2>&1");
+               system("$command --recv-key $trustid >> $Conf::logdir/gnupg-database.log 2>&1");
        } else {
                logger("CRYPTO INFO: Database is okay");
        }