they have no effect anyway (thanks Daniel Burrows for noticing)
* improve documentation of the Is{Delete,Install}Ok methods a bit
* add the FromUser boolean to the debug output of the markers
#endif
if (DebugMarker == true)
#endif
if (DebugMarker == true)
- std::clog << OutputInDepth(Depth) << "MarkKeep " << Pkg << std::endl;
+ std::clog << OutputInDepth(Depth) << "MarkKeep " << Pkg << " FU=" << FromUser << std::endl;
RemoveSizes(Pkg);
RemoveStates(Pkg);
RemoveSizes(Pkg);
RemoveStates(Pkg);
// check if we are allowed to install the package
if (IsDeleteOk(Pkg,rPurge,Depth,FromUser) == false)
// check if we are allowed to install the package
if (IsDeleteOk(Pkg,rPurge,Depth,FromUser) == false)
- {
- MarkKeep(Pkg,false,FromUser,Depth+1);
- std::clog << OutputInDepth(Depth) << "MarkDelete " << Pkg << std::endl;
+ std::clog << OutputInDepth(Depth) << "MarkDelete " << Pkg << " FU=" << FromUser << std::endl;
RemoveSizes(Pkg);
RemoveStates(Pkg);
RemoveSizes(Pkg);
RemoveStates(Pkg);
if (FromUser == false && Pkg->SelectedState == pkgCache::State::Hold)
{
if (DebugMarker == true)
if (FromUser == false && Pkg->SelectedState == pkgCache::State::Hold)
{
if (DebugMarker == true)
- std::clog << OutputInDepth(Depth) << "Hold prevents MarkDelete of " << Pkg << std::endl;
+ std::clog << OutputInDepth(Depth) << "Hold prevents MarkDelete of " << Pkg << " FU=" << FromUser << std::endl;
return false;
}
return true;
return false;
}
return true;
// check if we are allowed to install the package
if (IsInstallOk(Pkg,AutoInst,Depth,FromUser) == false)
// check if we are allowed to install the package
if (IsInstallOk(Pkg,AutoInst,Depth,FromUser) == false)
- {
- MarkKeep(Pkg,false,FromUser,Depth+1);
/* Target the candidate version and remove the autoflag. We reset the
autoflag below if this was called recursively. Otherwise the user
/* Target the candidate version and remove the autoflag. We reset the
autoflag below if this was called recursively. Otherwise the user
return;
if (DebugMarker == true)
return;
if (DebugMarker == true)
- std::clog << OutputInDepth(Depth) << "MarkInstall " << Pkg << std::endl;
+ std::clog << OutputInDepth(Depth) << "MarkInstall " << Pkg << " FU=" << FromUser << std::endl;
DepIterator Dep = P.InstVerIter(*this).DependsList();
for (; Dep.end() != true;)
DepIterator Dep = P.InstVerIter(*this).DependsList();
for (; Dep.end() != true;)
if (FromUser == false && Pkg->SelectedState == pkgCache::State::Hold)
{
if (DebugMarker == true)
if (FromUser == false && Pkg->SelectedState == pkgCache::State::Hold)
{
if (DebugMarker == true)
- std::clog << OutputInDepth(Depth) << "Hold prevents MarkInstall of " << Pkg << std::endl;
+ std::clog << OutputInDepth(Depth) << "Hold prevents MarkInstall of " << Pkg << " FU=" << FromUser << std::endl;
return false;
}
return true;
return false;
}
return true;
/** \return \b true if it's OK for MarkInstall to install
* the given package.
*
/** \return \b true if it's OK for MarkInstall to install
* the given package.
*
+ * See the default implementation for a simple example how this
+ * method can be used.
+ * Overriding implementations should use the hold-state-flag to cache
+ * results from previous checks of this package - also it should
+ * be used if the default resolver implementation is also used to
+ * ensure that these packages are handled like "normal" dpkg holds.
+ *
+ * The parameters are the same as in the calling MarkInstall:
* \param Pkg the package that MarkInstall wants to install.
* \param AutoInst needs a previous MarkInstall this package?
* \param Depth recursive deep of this Marker call
* \param Pkg the package that MarkInstall wants to install.
* \param AutoInst needs a previous MarkInstall this package?
* \param Depth recursive deep of this Marker call
/** \return \b true if it's OK for MarkDelete to remove
* the given package.
*
/** \return \b true if it's OK for MarkDelete to remove
* the given package.
*
+ * See the default implementation for a simple example how this
+ * method can be used.
+ * Overriding implementations should use the hold-state-flag to cache
+ * results from previous checks of this package - also it should
+ * be used if the default resolver implementation is also used to
+ * ensure that these packages are handled like "normal" dpkg holds.
+ *
+ * The parameters are the same as in the calling MarkDelete:
* \param Pkg the package that MarkDelete wants to remove.
* \param Purge should we purge instead of "only" remove?
* \param Depth recursive deep of this Marker call
* \param Pkg the package that MarkDelete wants to remove.
* \param Purge should we purge instead of "only" remove?
* \param Depth recursive deep of this Marker call