just needs one */
if (D.IsNegative() == false)
{
+ // ignore provides by older versions of this package
+ if (((D.Reverse() == false && Pkg == D.ParentPkg()) ||
+ (D.Reverse() == true && Pkg == D.TargetPkg())) &&
+ Cache[Pkg].InstallVer != *I)
+ continue;
+
/* Try to find something that does not have the after flag set
if at all possible */
if (IsFlag(Pkg,After) == true)
}
bool pkgPackageManager::SmartUnPack(PkgIterator Pkg, bool const Immediate)
{
+ if (Debug == true)
+ clog << "SmartUnPack " << Pkg.Name() << endl;
+
// Check if it is already unpacked
if (Pkg.State() == pkgCache::PkgIterator::NeedsConfigure &&
Cache[Pkg].Keep() == true)
}
}
}
+
+ // Check for breaks
+ if (End->Type == pkgCache::Dep::DpkgBreaks) {
+ SPtrArray<Version *> VList = End.AllTargets();
+ for (Version **I = VList; *I != 0; I++)
+ {
+ VerIterator Ver(Cache,*I);
+ PkgIterator Pkg = Ver.ParentPkg();
+ // Found a break, so unpack the package
+ if (List->IsNow(Pkg)) {
+ SmartUnPack(Pkg, false);
+ }
+ }
+ }
}
// Check for reverse conflicts.