return _resolvable->isSatisfied();
}
+ bool isRelevant() const
+ {
+ return _resolvable->isRelevant();
+ }
+
private:
mutable ResStatus _status;
ResObject::constPtr _resolvable;
bool isBroken() const
{ return ! isSatisfied(); }
+ /** Returns true if the solvable is relevant which means e.G. for patches
+ * that at least one package of the patch is installed.
+ */
+ bool isRelevant() const;
+
public:
/** Return the \ref ResPool the item belongs to. */
ResPool pool() const;
public:
/** Returns true if the solvable is satisfied */
using sat::Solvable::isSatisfied;
+
/** Returns true if the solvable is satisfied */
- using sat::Solvable::isBroken;
+ using sat::Solvable::isBroken;
+
+ /** Returns true if the solvable is relevant which means e.G. for patches
+ * that at least one package of the patch is installed.
+ */
+ using sat::Solvable::isRelevant;
public:
const sat::Solvable & satSolvable() const { return *this; }
return false;
}
+ bool Solvable::isRelevant() const
+ {
+ NO_SOLVABLE_RETURN( false );
+ if (isKind (ResKind::package))
+ return true; // packages are always relevant
+ if (solvable_trivial_installable (_solvable, Pool::instance().systemRepo().get()) == -1)
+ return false;
+ else
+ return true;
+ }
+
+
///////////////////////////////////////////////////////////////////
namespace
{ /////////////////////////////////////////////////////////////////
bool isSatisfied() const;
/** Returns true if the solvable is satisfied */
bool isBroken() const { return !isSatisfied(); }
+ /** Returns true if the solvable is relevant which means e.G. for patches
+ * that at least one package of the patch is installed.
+ */
+ bool isRelevant() const;
public:
/** \name Locale support. */