X-Git-Url: http://git.ipfire.org/?a=blobdiff_plain;f=src%2Fpakfire%2Fpakfire;h=a9981fd8325f7f867d334d405b48a9895097237f;hb=3d28f4f5a4e2f7bb2e375d4a8859f6eb1db3e56e;hp=20344a0d955c46b723a258cbea0bdc3caa6b7970;hpb=70df830214c97a68fcb7e89ae0d7df58c35590be;p=people%2Fpmueller%2Fipfire-2.x.git diff --git a/src/pakfire/pakfire b/src/pakfire/pakfire index 20344a0d95..a9981fd832 100644 --- a/src/pakfire/pakfire +++ b/src/pakfire/pakfire @@ -19,6 +19,11 @@ # # ############################################################################### + ### Clean up our environment + # + delete @ENV{qw(IFS CDPATH ENV BASH_ENV PATH)}; + $< = $>; + require "/opt/pakfire/lib/functions.pl"; my $interactive = 1; @@ -45,10 +50,16 @@ # if ( $0 =~ /pakfire-update$/ ) { &Pakfire::message("CRON INFO: Running an update"); + my $random = int(rand(60)); + &Pakfire::logger("CRON INFO: Waiting for $random seconds."); + sleep($random); $ARGV[0] = "update"; $interactive = 0; } elsif ( $0 =~ /pakfire-upgrade$/ ) { &Pakfire::message("CRON INFO: Running an upgrade"); + my $random = int(rand(3600)); + &Pakfire::logger("CRON INFO: Waiting for $random seconds."); + sleep($random); $ARGV[0] = "upgrade"; $interactive = 0; } @@ -238,7 +249,7 @@ } elsif ("$ARGV[0]" eq "upgrade") { &Pakfire::upgradecore(); my @upgradepaks = &Pakfire::dblist("upgrade", "noweb"); - my @temp; + my @temp, $pak; foreach (@upgradepaks) { @temp = &Pakfire::resolvedeps("$_"); @@ -261,12 +272,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") { @@ -286,13 +300,13 @@ } elsif ("$ARGV[0]" eq "enable") { if ("$ARGV[1]" eq "updates") { system("ln -s ../../opt/pakfire/pakfire /etc/fcron.daily/pakfire-update"); - elsif ("$ARGV[1]" eq "upgrades") { + } elsif ("$ARGV[1]" eq "upgrades") { system("ln -s ../../opt/pakfire/pakfire /etc/fcron.daily/pakfire-upgrade"); } } elsif ("$ARGV[0]" eq "disable") { if ("$ARGV[1]" eq "updates") { system("rm -f /etc/fcron.daily/pakfire-update"); - elsif ("$ARGV[1]" eq "upgrades") { + } elsif ("$ARGV[1]" eq "upgrades") { system("rm -f /etc/fcron.daily/pakfire-upgrade"); } } else {