diff options
author | Michael Vogt <michael.vogt@ubuntu.com> | 2012-01-13 09:16:50 +0100 |
---|---|---|
committer | Michael Vogt <michael.vogt@ubuntu.com> | 2012-01-13 09:16:50 +0100 |
commit | 6bfb4a2b25b576220e0c8bad1ba9479637667e19 (patch) | |
tree | 7f73eb0849a74e8217051d956d47780d70eca9dd /apt-pkg | |
parent | d2fd8c8ff72f82db473d4431213032249eee41c3 (diff) | |
parent | 88a52816d7626326f94c17a3a8fcde08817b7f2b (diff) |
merged from lp:~donkult/apt/experimental
Diffstat (limited to 'apt-pkg')
-rw-r--r-- | apt-pkg/depcache.cc | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/apt-pkg/depcache.cc b/apt-pkg/depcache.cc index 0dbedf323..0f4715fad 100644 --- a/apt-pkg/depcache.cc +++ b/apt-pkg/depcache.cc @@ -374,11 +374,17 @@ bool pkgDepCache::CheckDep(DepIterator Dep,int Type,PkgIterator &Res) PkgIterator Pkg = Dep.ParentPkg(); for (; P.end() != true; ++P) { - /* Provides may never be applied against the same package (or group) - if it is a conflicts. See the comment above. */ - if (P.OwnerPkg()->Group == Pkg->Group && Dep.IsNegative() == true) - continue; - + if (Dep.IsNegative() == true) + { + /* Provides may never be applied against the same package (or group) + if it is a conflicts. See the comment above. */ + if (P.OwnerPkg()->Group == Pkg->Group) + continue; + // Implicit group-conflicts should not be applied on providers of other groups + if (Pkg->Group == Dep.TargetPkg()->Group && P.OwnerPkg()->Group != Pkg->Group) + continue; + } + // Check if the provides is a hit if (Type == NowVersion) { |