public inbox for ipfire-scm@lists.ipfire.org
 help / color / mirror / Atom feed
From: git@ipfire.org
To: ipfire-scm@lists.ipfire.org
Subject: [git.ipfire.org] IPFire 2.x development tree branch, master, updated. e35d81be8c6ddb797e329ad1ad3288267ba23d05
Date: Sat, 16 May 2015 13:04:41 +0200	[thread overview]
Message-ID: <20150516110442.113952237D@argus.ipfire.org> (raw)

[-- 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

                 reply	other threads:[~2015-05-16 11:04 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20150516110442.113952237D@argus.ipfire.org \
    --to=git@ipfire.org \
    --cc=ipfire-scm@lists.ipfire.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox