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)