diff options
author | Michael Vogt <michael.vogt@ubuntu.com> | 2006-09-16 12:30:38 +0200 |
---|---|---|
committer | Michael Vogt <michael.vogt@ubuntu.com> | 2006-09-16 12:30:38 +0200 |
commit | 3772dc74d3e7767980a011e01302dd688b3764fc (patch) | |
tree | 7b044fa1dc21f038acb95f6c506e6bd4b12882f6 /cmdline/apt-get.cc | |
parent | 42142a6cf63458599c6a11c398a25b301df2df55 (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/apt-get.cc')
-rw-r--r-- | cmdline/apt-get.cc | 19 |
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 */ |