- List->Flag(Pkg,pkgOrderList::Configured,pkgOrderList::States);
- }
-
- if (Cache[Pkg].InstVerIter(Cache)->MultiArch == pkgCache::Version::Same)
- for (PkgIterator P = Pkg.Group().PackageList();
- P.end() == false; P = Pkg.Group().NextPkg(P))
- {
- if (Pkg == P || List->IsFlag(P,pkgOrderList::Configured) == true ||
- Cache[P].InstallVer == 0 || (P.CurrentVer() == Cache[P].InstallVer &&
- (Cache[Pkg].iFlags & pkgDepCache::ReInstall) != pkgDepCache::ReInstall))
- continue;
- SmartConfigure(P);
- }
-
- // Sanity Check
- if (List->IsFlag(Pkg,pkgOrderList::Configured) == false)
- return _error->Error(_("Could not perform immediate configuration on '%s'. "
- "Please see man 5 apt.conf under APT::Immediate-Configure for details. (%d)"),Pkg.Name(),1);
-
- return true;
-}
-
-// PM::VerifyConfigure - Check configuration of dependancies /*{{{*/
-// ---------------------------------------------------------------------
-/* This routine checks that all a packages dependancies have been
- configured, before it is going to be configured. If this gives a warning
- on a virtual package, it means that the package thats providing it is not
- configured*/
-bool pkgPackageManager::VerifyConfigure(PkgIterator Pkg, pkgOrderList &OList)
-{
- // If this is true at the end, then the package should not be configured
- bool error=true;
- // This holds the the OR status of the previous dependancy
- bool previousOr=false;
-
- // First iterate through the dependancies of Pkg
- for (DepIterator D = Cache[Pkg].InstVerIter(Cache).DependsList(); D.end() == false; D++)
+ /* Because of the ordered list, most dependancies should be unpacked,
+ however if there is a loop (A depends on B, B depends on A) this will not
+ be the case, so check for dependancies before configuring. */
+ bool Bad = false;
+ for (DepIterator D = instVer.DependsList();
+ D.end() == false; )