public inbox for ipfire-scm@lists.ipfire.org
 help / color / mirror / Atom feed
* [git.ipfire.org] IPFire 2.x development tree branch, master, updated. e35d81be8c6ddb797e329ad1ad3288267ba23d05
@ 2015-05-16 11:04 git
  0 siblings, 0 replies; only message in thread
From: git @ 2015-05-16 11:04 UTC (permalink / raw)
  To: ipfire-scm

[-- Attachment #1: Type: text/plain, Size: 7234 bytes --]

This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "IPFire 2.x development tree".

The branch, master has been updated
       via  e35d81be8c6ddb797e329ad1ad3288267ba23d05 (commit)
       via  be131623add2c819e6433e8d593ddcfc5c5b0441 (commit)
       via  1af34aa810cc86fb182635cca0bb6ac783ab584d (commit)
       via  9f1f68f17ade67dbd52a58837f7a47a8458055e4 (commit)
      from  b47472c1865f1777251a43376286ce884b8a4ba8 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit e35d81be8c6ddb797e329ad1ad3288267ba23d05
Author: Arne Fitzenreiter <arne_f(a)ipfire.org>
Date:   Sat May 16 13:03:34 2015 +0200

    core90: don't remove meta-linux-pae.

commit be131623add2c819e6433e8d593ddcfc5c5b0441
Author: Arne Fitzenreiter <arne_f(a)ipfire.org>
Date:   Sat May 16 13:02:42 2015 +0200

    core90: add updated pakfire file to update.

commit 1af34aa810cc86fb182635cca0bb6ac783ab584d
Author: Arne Fitzenreiter <arne_f(a)ipfire.org>
Date:   Sat May 16 13:00:12 2015 +0200

    pakfire: skip corrupt "meta-" file.
    
    This was created by a bug in dep resolve at upgrade.

commit 9f1f68f17ade67dbd52a58837f7a47a8458055e4
Author: Michael Tremer <michael.tremer(a)ipfire.org>
Date:   Sat May 16 12:57:28 2015 +0200

    pakfire: fix dep resolve at upgrade.

-----------------------------------------------------------------------

Summary of changes:
 config/rootfiles/core/90/filelists/files |  2 ++
 config/rootfiles/core/90/update.sh       |  2 +-
 src/pakfire/lib/functions.pl             | 24 +++++++++++++++++++++--
 src/pakfire/pakfire                      | 33 ++++++++++++++++++--------------
 4 files changed, 44 insertions(+), 17 deletions(-)

Difference in files:
diff --git a/config/rootfiles/core/90/filelists/files b/config/rootfiles/core/90/filelists/files
index 431dcd6..ee596a0 100644
--- a/config/rootfiles/core/90/filelists/files
+++ b/config/rootfiles/core/90/filelists/files
@@ -5,6 +5,8 @@ etc/rc.d/init.d/network-trigger
 etc/rc.d/init.d/networking/functions.network
 etc/rc.d/init.d/networking/red.up/99-geoip-database
 etc/rc.d/rcsysinit.d/S90network-trigger
+opt/pakfire/pakfire
+opt/pakfire/lib/functions.pl
 srv/web/ipfire/cgi-bin/country.cgi
 srv/web/ipfire/cgi-bin/ddns.cgi
 srv/web/ipfire/cgi-bin/firewall.cgi
diff --git a/config/rootfiles/core/90/update.sh b/config/rootfiles/core/90/update.sh
index e57bc17..facefc8 100644
--- a/config/rootfiles/core/90/update.sh
+++ b/config/rootfiles/core/90/update.sh
@@ -265,7 +265,7 @@ if [ ! "$(grep "^flags.* pae " /proc/cpuinfo)" == "" ]; then
 		echo "Name: linux-pae" > /opt/pakfire/db/installed/meta-linux-pae
 		echo "ProgVersion: 0" >> /opt/pakfire/db/installed/meta-linux-pae
 		echo "Release: 0"     >> /opt/pakfire/db/installed/meta-linux-pae
-		rm -f /opt/pakfire/db/meta/meta-linux-pae 2>&1 > /dev/null
+#		rm -f /opt/pakfire/db/meta/meta-linux-pae 2>&1 > /dev/null
 	fi
 fi
 
diff --git a/src/pakfire/lib/functions.pl b/src/pakfire/lib/functions.pl
index d14e031..6bf85af 100644
--- a/src/pakfire/lib/functions.pl
+++ b/src/pakfire/lib/functions.pl
@@ -2,7 +2,7 @@
 ###############################################################################
 #                                                                             #
 # IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2007  Michael Tremer & Christian Schmidt                      #
+# Copyright (C) 2007-2015   IPFire Team   <info(a)ipfire.org>                   #
 #                                                                             #
 # This program is free software: you can redistribute it and/or modify        #
 # it under the terms of the GNU General Public License as published by        #
@@ -393,6 +393,7 @@ sub dbgetlist {
 	foreach $file (@files) {
 		next if ( $file eq "." );
 		next if ( $file eq ".." );
+		next if ( $file eq "meta-" );
 		next if ( $file =~ /^old/ );
 		open(FILE, "<$Conf::dbdir/meta/$file");
 		@meta = <FILE>;
@@ -589,6 +590,25 @@ sub resolvedeps {
 	return @all;
 }
 
+sub resolvedeps_recursive {
+	my @packages = shift;
+	my @result = ();
+
+	foreach my $pkg (@packages) {
+		my @deps = &Pakfire::resolvedeps($pkg);
+
+		foreach my $dep (@deps) {
+			push(@result, $dep);
+		}
+	}
+
+	# Sort the result array and remove dupes
+	my %sort = map{ $_, 1 } @result;
+	@result = keys %sort;
+
+	return @result;
+}
+
 sub cleanup {
 	my $dir = shift;
 	my $path;
@@ -695,7 +715,7 @@ sub getpak {
 	}
 	
 	unless ($file) {
-		message("No filename given in meta-file. Please phone the developers.");
+		message("No filename given in meta-file.");
 		exit 1;
 	}
 	
diff --git a/src/pakfire/pakfire b/src/pakfire/pakfire
index 3d0270a..8bca061 100644
--- a/src/pakfire/pakfire
+++ b/src/pakfire/pakfire
@@ -2,7 +2,7 @@
 ###############################################################################
 #                                                                             #
 # IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2007  Michael Tremer & Christian Schmidt                      #
+# Copyright (C) 2007-2015   IPFire Team   <info(a)ipfire.org>                   #
 #                                                                             #
 # This program is free software: you can redistribute it and/or modify        #
 # it under the terms of the GNU General Public License as published by        #
@@ -255,14 +255,11 @@
 	} elsif ("$ARGV[0]" eq "upgrade") {
 		&Pakfire::upgradecore();
 		my @upgradepaks = &Pakfire::dblist("upgrade", "noweb");
-		my @temp, $pak;
-		
-		foreach (@upgradepaks) {
-			@temp = &Pakfire::resolvedeps("$_");
-			foreach (@temp) { push(@upgradepaks,$_) if $_; }
-		}
-		
+
 		if (@upgradepaks) {
+			# Resolve the dependencies of the to be upgraded packages
+			my @deps = &Pakfire::resolvedeps_recursive(@upgradepaks);
+
 			&Pakfire::message("");
 			&Pakfire::message("PAKFIRE UPGR: We are going to install all packages listed above.");
 			if ($interactive) {
@@ -277,16 +274,24 @@
 			}
 		}
 		
-		### Download first
+		# Download packages
 		foreach $pak (@upgradepaks) {
-			#system("mv $Conf::dbdir/meta/meta-$pak $Conf::dbdir/meta/old-meta-$pak");
 			&Pakfire::getpak("$pak", "");
 		}
-		
+
+		# Download dependencies
+		foreach $pak (@deps) {
+			&Pakfire::getpak("$pak", "");
+		}
+
+		# Install dependencies first
+		foreach $pak (@deps) {
+			&Pakfire::setuppak("$pak");
+		}
+
+		# Install all upgrades
 		foreach $pak (@upgradepaks) {
-			if (&Pakfire::upgradepak("$pak")) {
-				#system("mv $Conf::dbdir/meta/old-meta-$pak $Conf::dbdir/meta/meta-$pak");
-			}
+			&Pakfire::upgradepak("$pak");
 		}
 		
 	} elsif ("$ARGV[0]" eq "list") {


hooks/post-receive
--
IPFire 2.x development tree

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2015-05-16 11:04 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-05-16 11:04 [git.ipfire.org] IPFire 2.x development tree branch, master, updated. e35d81be8c6ddb797e329ad1ad3288267ba23d05 git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox