]> git.saurik.com Git - apt.git/commitdiff
* apt-pkg/depcache.cc:
authorDavid Kalnischkies <kalnischkies@gmail.com>
Wed, 14 Jul 2010 20:59:43 +0000 (22:59 +0200)
committerDavid Kalnischkies <kalnischkies@gmail.com>
Wed, 14 Jul 2010 20:59:43 +0000 (22:59 +0200)
  - handle "circular" conflicts for "all" packages correctly

apt-pkg/depcache.cc
debian/changelog

index 05127fe18f06eed64ce637547eaf3754c18d4aff..bc663a8e954cfe811fea2efb92e1325b65719789 100644 (file)
@@ -338,7 +338,7 @@ bool pkgDepCache::CheckDep(DepIterator Dep,int Type,PkgIterator &Res)
    /* Check simple depends. A depends -should- never self match but 
       we allow it anyhow because dpkg does. Technically it is a packaging
       bug. Conflicts may never self match */
-   if (Dep.TargetPkg() != Dep.ParentPkg() || 
+   if (Dep.TargetPkg()->Group != Dep.ParentPkg()->Group ||
        (Dep->Type != Dep::Conflicts && Dep->Type != Dep::DpkgBreaks && Dep->Type != Dep::Obsoletes))
    {
       PkgIterator Pkg = Dep.TargetPkg();
@@ -367,9 +367,9 @@ 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 if it is
-         a conflicts. See the comment above. */
-      if (P.OwnerPkg() == Pkg &&
+      /* 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->Type == Dep::Conflicts || Dep->Type == Dep::DpkgBreaks))
         continue;
       
index 0f87ce60fd8163efae6da8bb6196ce75ae64c6a6..76354aad7b85881426c1d02821b0c1e0a0af9f38 100644 (file)
@@ -1,3 +1,11 @@
+apt (0.7.26~exp11) experimental; urgency=low
+
+  [ David Kalnischkies ]
+  * apt-pkg/depcache.cc:
+    - handle "circular" conflicts for "all" packages correctly
+
+ -- David Kalnischkies <kalnischkies@gmail.com>  Wed, 14 Jul 2010 22:58:08 +0200
+
 apt (0.7.26~exp10) experimental; urgency=low
 
   [ David Kalnischkies ]