summaryrefslogtreecommitdiff
path: root/cmdline
diff options
context:
space:
mode:
authorMichael Vogt <michael.vogt@ubuntu.com>2006-09-16 12:30:38 +0200
committerMichael Vogt <michael.vogt@ubuntu.com>2006-09-16 12:30:38 +0200
commit3772dc74d3e7767980a011e01302dd688b3764fc (patch)
tree7b044fa1dc21f038acb95f6c506e6bd4b12882f6 /cmdline
parent42142a6cf63458599c6a11c398a25b301df2df55 (diff)
* reverted otavios patch again because it breaks the following behaviour:
A depends on X|Y B depends on Y With the old code we get: "apt-get install A B": we get "A B X Y" "apt-get install B A": we get "A B Y" With the new code there is no way to get this right and we always end up with "A B X Y" because we just go over the packages in the order that they are in the cache and run MarkInstall(AutoInstall=true) on them then. When A comes before B we always end up with the unneeded X dependency.
Diffstat (limited to 'cmdline')
-rw-r--r--cmdline/apt-get.cc19
1 files changed, 4 insertions, 15 deletions
diff --git a/cmdline/apt-get.cc b/cmdline/apt-get.cc
index b33a324ea..64882e3e8 100644
--- a/cmdline/apt-get.cc
+++ b/cmdline/apt-get.cc
@@ -1144,7 +1144,10 @@ bool TryToInstall(pkgCache::PkgIterator Pkg,pkgDepCache &Cache,
}
else
ExpectedInst++;
-
+
+ // Install it with autoinstalling enabled.
+ if (State.InstBroken() == true && BrokenFix == false)
+ Cache.MarkInstall(Pkg,true);
return true;
}
/*}}}*/
@@ -1535,20 +1538,6 @@ bool DoInstall(CommandLine &CmdL)
}
}
- for (unsigned J = 0; J < Cache->Head().PackageCount; J++)
- {
- pkgCache::PkgIterator I(Cache,Cache.List[J]);
- if ((*Cache)[I].Install() == false)
- continue;
-
- pkgDepCache::StateCache &State = Cache[I];
- // Install it with autoinstalling enabled (if we not respect the minial
- // required deps or the policy)
- if (State.InstBroken() == true && BrokenFix == false)
- Cache->MarkInstall(I,true);
- }
-
-
/* If we are in the Broken fixing mode we do not attempt to fix the
problems. This is if the user invoked install without -f and gave
packages */