It wasn't noticeable before, but now with the (optional) logging it can
be observed that we decide in the internal path two times if an internal
or external solver should be used (and hence with logging, it is
attempted twice), so if we are in the internal path call the internal
resolver directly, which means those internal methods need to be public
– but we can hide them based on the symbol at least.
APT_HIDDEN void MakeScores();
APT_HIDDEN bool DoUpgrade(pkgCache::PkgIterator Pkg);
- APT_HIDDEN bool ResolveInternal(bool const BrokenFix = false);
- APT_HIDDEN bool ResolveByKeepInternal();
-
protected:
bool InstOrNewPolicyBroken(pkgCache::PkgIterator Pkg);
// Try to intelligently resolve problems by installing and removing packages
bool Resolve(bool BrokenFix = false, OpProgress * const Progress = NULL);
+ APT_HIDDEN bool ResolveInternal(bool const BrokenFix = false);
// Try to resolve problems only by using keep
bool ResolveByKeep(OpProgress * const Progress = NULL);
+ APT_HIDDEN bool ResolveByKeepInternal();
APT_DEPRECATED_MSG("NOOP as MarkInstall enforces not overriding FromUser markings") void InstallProtect();
}
}
- bool const success = Fix.Resolve(false, Progress);
+ bool const success = Fix.ResolveInternal(false);
if (Progress != NULL)
Progress->Done();
return success;
Progress->Progress(50);
// resolve remaining issues via keep
- bool const success = Fix.ResolveByKeep(Progress);
+ bool const success = Fix.ResolveByKeepInternal();
if (Progress != NULL)
Progress->Done();
return success;
Progress->Progress(60);
// resolve remaining issues via keep
- bool const success = Fix.ResolveByKeep(Progress);
+ bool const success = Fix.ResolveByKeepInternal();
if (Progress != NULL)
Progress->Done();
return success;