+ clog << "Package " << I.Name() << " has broken dep on " << Start.TargetPkg().Name() << endl;
+
+ /* Look across the version list. If there are no possible
+ targets then we keep the package and bail. This is necessary
+ if a package has a dep on another package that cant be found */
+ pkgCache::Version **VList = Start.AllTargets();
+ if (*VList == 0 && (Flags[I->ID] & Protected) != Protected &&
+ Start->Type != pkgCache::Dep::Conflicts &&
+ Cache[I].NowBroken() == false)
+ {
+ if (InOr == true)
+ {
+ /* No keep choice because the keep being OK could be the
+ result of another element in the OR group! */
+ continue;
+ }
+
+ Change = true;
+ Cache.MarkKeep(I);
+ break;
+ }