14#define ZYPP_USE_RESOLVER_INTERNALS
27 using namespace solver;
54 {
return _pimpl->setDefaultSolverFlags( all_r ); }
60 {
return _pimpl->verifySystem(); }
63 {
return _pimpl->resolvePool(); }
66 {
return _pimpl->resolveQueue(queue); }
72 {
return _pimpl->problems (); }
75 {
_pimpl->applySolutions (solutions); }
78 {
return _pimpl->getTransaction(); }
81 {
return _pimpl->doUpgrade(); }
123#define ZOLV_FLAG_BOOL( ZSETTER, ZGETTER ) \
124 void Resolver::ZSETTER( bool yesno_r ){ _pimpl->ZSETTER( yesno_r ); } \
125 bool Resolver::ZGETTER() const { return _pimpl->ZGETTER(); } \
127#define ZOLV_FLAG_TRIBOOL( ZSETTER, ZDEFAULT, ZGETTER ) \
128 ZOLV_FLAG_BOOL( ZSETTER , ZGETTER ) \
129 void Resolver::ZDEFAULT() { _pimpl->ZSETTER( indeterminate ); } \
132 ZOLV_FLAG_TRIBOOL( setAllowNameChange, setDefaultAllowNameChange, allowNameChange )
133 ZOLV_FLAG_TRIBOOL( setAllowArchChange, setDefaultAllowArchChange, allowArchChange )
134 ZOLV_FLAG_TRIBOOL( setAllowVendorChange, setDefaultAllowVendorChange, allowVendorChange )
136 ZOLV_FLAG_TRIBOOL( dupSetAllowDowngrade, dupSetDefaultAllowDowngrade, dupAllowDowngrade )
137 ZOLV_FLAG_TRIBOOL( dupSetAllowNameChange, dupSetDefaultAllowNameChange, dupAllowNameChange )
138 ZOLV_FLAG_TRIBOOL( dupSetAllowArchChange, dupSetDefaultAllowArchChange, dupAllowArchChange )
139 ZOLV_FLAG_TRIBOOL( dupSetAllowVendorChange, dupSetDefaultAllowVendorChange, dupAllowVendorChange )
142#undef ZOLV_FLAG_TRIBOOL
159 {
return _pimpl->problematicUpdateItems(); }
163 solver::detail::Testcase testcase (dumpPath);
164 return testcase.createTestcase(*
_pimpl,
true, runSolver);
168 {
return _pimpl->isInstalledBy (item); }
171 {
return _pimpl->installs (item); }
174 {
return _pimpl->satifiedByInstalled (item); }
177 {
return _pimpl->installedSatisfied (item); }
180 {
_pimpl->reset(
false ); }
#define ZOLV_FLAG_TRIBOOL(ZSETTER, ZDEFAULT, ZGETTER)
Combining sat::Solvable and ResStatus.
Dependency resolver interface.
void setDefaultCleandepsOnRemove()
void setSolveSrcPackages(bool yesno_r)
Set whether to solve source packages build dependencies per default.
bool cleandepsOnRemove() const
bool resolveQueue(solver::detail::SolverQueueItemList &queue)
Resolve package dependencies:
sat::detail::CSolver * get() const
Expert backdoor.
void setCleandepsOnRemove(bool yesno_r)
Cleanup when deleting packages.
void setRemoveOrphaned(bool yesno_r)
Set whether to remove unused orphans in 'upgrade' mode.
void setDefaultSolverFlags(bool all_r=true)
Reset all solver flags to the systems default (e.g.
ResolverProblemList problems()
Return the dependency problems found by the last call to resolveDependencies().
bool forceResolve() const
void setOnlyRequires(bool yesno_r)
Setting whether required packages are installed ONLY So recommended packages, language packages and p...
sat::Transaction getTransaction()
Return the Transaction computed by the last solver run.
void addRequire(const Capability &capability)
Adding additional requirement.
void doUpdate()
Update to newest package.
void addUpgradeRepo(Repository repo_r)
Adding request to perform a dist upgrade restricted to this repository.
std::list< PoolItem > problematicUpdateItems() const
Unmaintained packages which does not fit to the updated system (broken dependencies) will be deleted.
bool upgradingRepo(Repository repo_r) const
Whether there is an UpgradeRepo request pending for this repo.
void applySolutions(const ProblemSolutionList &solutions)
Apply problem solutions.
Resolver(const ResPool &pool)
Ctor.
solver::detail::ItemCapKindList isInstalledBy(const PoolItem &item)
Gives information about WHO has pused an installation of an given item.
bool ignoreAlreadyRecommended() const
solver::detail::ItemCapKindList installs(const PoolItem &item)
Gives information about WHICH additional items will be installed due the installation of an item.
bool resolvePool()
Resolve package dependencies:
void setFocus(ResolverFocus focus_r)
Define the resolver's general attitude when resolving jobs.
void removeUpgradeRepos()
Remove all upgrade repo requests.
void setRemoveUnneeded(bool yesno_r)
File weak remove jobs for unneeded installed packages.
bool removeOrphaned() const
bool systemVerification() const
bool verifySystem()
Resolve package dependencies:
CapabilitySet getConflict() const
Get all the additional conflicts set by addConflict(Capability).
void removeUpgradeRepo(Repository repo_r)
Remove an upgrade request for this repo.
~Resolver() override
Dtor.
void setIgnoreAlreadyRecommended(bool yesno_r)
Ignore recommended packages that were already recommended by the installed packages.
bool solveSrcPackages() const
bool createSolverTestcase(const std::string &dumpPath="/var/log/YaST2/solverTestcase", bool runSolver=true)
Generates a solver Testcase of the current state.
void addConflict(const Capability &capability)
Adding additional conflict.
bool doUpgrade()
Do an distribution upgrade (DUP)
void setForceResolve(bool force)
Remove resolvables which are conflicts with others or have unfulfilled requirements.
void removeRequire(const Capability &capability)
Remove the additional requirement set by addRequire(Capability).
void removeConflict(const Capability &capability)
Remove the additional conflict set by addConflict(Capability).
bool upgradingRepos() const
Whether there is at least one UpgradeRepo request pending.
ResolverFocus focus() const
bool removeUnneeded() const
solver::detail::ItemCapKindList installedSatisfied(const PoolItem &item)
Gives information about WHICH items require an already installed item.
void setDefaultSolveSrcPackages()
zypp::RW_pointer< solver::detail::ResolverInternal > _pimpl
void setUpgradeMode(bool yesno_r)
Setting whether the solver should perform in 'upgrade' mode or not.
CapabilitySet getRequire() const
Get all the additional requirements set by addRequire(Capability).
void setDefaultSystemVerification()
void setUpdateMode(bool yesno_r)
Setting whether the solver should perform in 'update' mode or not.
solver::detail::ItemCapKindList satifiedByInstalled(const PoolItem &item)
Gives information about WHICH installed items are requested by the installation of an item.
bool onlyRequires() const
void setSystemVerification(bool yesno_r)
System verification mode also monitors and repairs dependencies of already installed packages.
Libsolv transaction wrapper.
String related utilities and Regular expression matching.
::s_Solver CSolver
Wrapped libsolv C data type exposed as backdoor.
std::list< SolverQueueItem_Ptr > SolverQueueItemList
std::list< ItemCapKind > ItemCapKindList
Easy-to use interface to the ZYPP dependency resolver.
std::list< ProblemSolution_Ptr > ProblemSolutionList
ResolverFocus
The resolver's general attitude.
std::list< ResolverProblem_Ptr > ResolverProblemList
std::ostream & operator<<(std::ostream &str, const SerialNumber &obj)
std::unordered_set< Capability > CapabilitySet
#define IMPL_PTR_TYPE(NAME)