$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
@$(PREBUILD)
@rm -rf $(DIR_APP)
- -mkdir -p /opt/pakfire/{db/{meta,lists,rootfiles,installed},etc,lib,tmp} \
+ -mkdir -p /opt/pakfire/{db/{meta,lists,rootfiles,installed,core},etc,lib,tmp} \
/var/log/pakfire /var/cache/pakfire
cp -fRv $(DIR_SRC)/src/pakfire/* $(DIR_APP)
mv -vf $(DIR_APP)/pakfire.conf $(DIR_APP)/etc/
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 {
}
}
+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.
$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");
}
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") ) {
$cachedir = "/opt/pakfire/cache";
$dbdir = "/opt/pakfire/db";
+$coredir = "/opt/pakfire/db/core";
$tmpdir = "/opt/pakfire/tmp";
$logdir = "/opt/pakfire/logs";
chomp($uuid);
}
+if ( -e "$coredir/mine" ) {
+ $core_mine = `cat $coredir/mine`;
+ chomp($core_mine);
+} else {
+ $core_mine = "0";
+}
+
1;