summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Vogt <michael.vogt@ubuntu.com>2008-03-13 23:42:43 +0100
committerMichael Vogt <michael.vogt@ubuntu.com>2008-03-13 23:42:43 +0100
commitc22356d86150dfee4903ff146a64cd5ad63be827 (patch)
treeecb38366897f1d6aa0fce00ce0062d2e13046166
parentbf8324550d44031fdad32de172634c971bd26596 (diff)
* cmdline/apt-get.cc:
- do two passes when installing tasks, first ignoring dependencies, then resolving them and run the problemResolver at the end so that it can correct any missing dependencies. This should fix livecd building for kubuntu (thanks to Jonathan Riddell for reporting the problem)
-rw-r--r--cmdline/apt-get.cc29
-rw-r--r--configure.in2
-rw-r--r--debian/changelog11
3 files changed, 29 insertions, 13 deletions
diff --git a/cmdline/apt-get.cc b/cmdline/apt-get.cc
index c8671447e..cabbde5cb 100644
--- a/cmdline/apt-get.cc
+++ b/cmdline/apt-get.cc
@@ -1495,19 +1495,24 @@ bool TryInstallTask(pkgDepCache &Cache, pkgProblemResolver &Fix,
bool found = false;
bool res = true;
- for (Pkg = Cache.PkgBegin(); Pkg.end() == false; Pkg++)
+
+ // two runs, first ignore dependencies, second install any missing
+ for(int IgnoreBroken=1; IgnoreBroken >= 0; IgnoreBroken--)
{
- pkgCache::VerIterator ver = Cache[Pkg].CandidateVerIter(Cache);
- if(ver.end())
- continue;
- pkgRecords::Parser &parser = Recs.Lookup(ver.FileList());
- parser.GetRec(start,end);
- strncpy(buf, start, end-start);
- buf[end-start] = 0x0;
- if (regexec(&Pattern,buf,0,0,0) != 0)
- continue;
- res &= TryToInstall(Pkg,Cache,Fix,Remove,true,ExpectedInst);
- found = true;
+ for (Pkg = Cache.PkgBegin(); Pkg.end() == false; Pkg++)
+ {
+ pkgCache::VerIterator ver = Cache[Pkg].CandidateVerIter(Cache);
+ if(ver.end())
+ continue;
+ pkgRecords::Parser &parser = Recs.Lookup(ver.FileList());
+ parser.GetRec(start,end);
+ strncpy(buf, start, end-start);
+ buf[end-start] = 0x0;
+ if (regexec(&Pattern,buf,0,0,0) != 0)
+ continue;
+ res &= TryToInstall(Pkg,Cache,Fix,Remove,IgnoreBroken,ExpectedInst);
+ found = true;
+ }
}
// now let the problem resolver deal with any issues
diff --git a/configure.in b/configure.in
index 7a0f131db..f89333d42 100644
--- a/configure.in
+++ b/configure.in
@@ -18,7 +18,7 @@ AC_CONFIG_AUX_DIR(buildlib)
AC_CONFIG_HEADER(include/config.h:buildlib/config.h.in include/apti18n.h:buildlib/apti18n.h.in)
dnl -- SET THIS TO THE RELEASE VERSION --
-AC_DEFINE_UNQUOTED(VERSION,"0.7.9ubuntu14")
+AC_DEFINE_UNQUOTED(VERSION,"0.7.9ubuntu15")
PACKAGE="apt"
AC_DEFINE_UNQUOTED(PACKAGE,"$PACKAGE")
AC_SUBST(PACKAGE)
diff --git a/debian/changelog b/debian/changelog
index 01ad9511f..6bc4d01ae 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,14 @@
+apt (0.7.9ubuntu15) hardy; urgency=low
+
+ * cmdline/apt-get.cc:
+ - do two passes when installing tasks, first ignoring dependencies,
+ then resolving them and run the problemResolver at the end
+ so that it can correct any missing dependencies. This should
+ fix livecd building for kubuntu (thanks to Jonathan Riddell
+ for reporting the problem)
+
+ -- Michael Vogt <michael.vogt@ubuntu.com> Thu, 13 Mar 2008 23:25:45 +0100
+
apt (0.7.9ubuntu14) hardy; urgency=low
* cmdline/apt-get.cc: