Browse Source

* apt-pkg/depcache.cc:

- handle "circular" conflicts for "all" packages correctly
tags/debian/0.8.0
David Kalnischkies 11 years ago
parent
commit
d3814b27a7
2 changed files with 12 additions and 4 deletions
  1. +4
    -4
      apt-pkg/depcache.cc
  2. +8
    -0
      debian/changelog

+ 4
- 4
apt-pkg/depcache.cc View 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;


+ 8
- 0
debian/changelog View 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 ]


Loading…
Cancel
Save