Go to the documentation of this file.
11 #include <rpm/rpmtypes.h>
12 #include <rpm/rpmps.h>
58 #define RPMSENSE_SENSEMASK 15
61 #define RPMSENSE_TRIGGER \
62 (RPMSENSE_TRIGGERPREIN | RPMSENSE_TRIGGERIN | RPMSENSE_TRIGGERUN | RPMSENSE_TRIGGERPOSTUN)
64 #define _ALL_REQUIRES_MASK (\
66 RPMSENSE_SCRIPT_PRE | \
67 RPMSENSE_SCRIPT_POST | \
68 RPMSENSE_SCRIPT_PREUN | \
69 RPMSENSE_SCRIPT_POSTUN | \
70 RPMSENSE_SCRIPT_VERIFY | \
71 RPMSENSE_FIND_REQUIRES | \
75 RPMSENSE_POSTTRANS | \
80 #define _notpre(_x) ((_x) & ~RPMSENSE_PREREQ)
81 #define _INSTALL_ONLY_MASK \
82 _notpre(RPMSENSE_SCRIPT_PRE|RPMSENSE_SCRIPT_POST|RPMSENSE_RPMLIB|RPMSENSE_KEYRING|RPMSENSE_PRETRANS|RPMSENSE_POSTTRANS)
83 #define _ERASE_ONLY_MASK \
84 _notpre(RPMSENSE_SCRIPT_PREUN|RPMSENSE_SCRIPT_POSTUN)
85 #define _UNORDERED_ONLY_MASK \
86 _notpre(RPMSENSE_RPMLIB|RPMSENSE_CONFIG|RPMSENSE_PRETRANS|RPMSENSE_POSTTRANS|RPMSENSE_SCRIPT_VERIFY|RPMSENSE_META)
87 #define _FORCE_ORDER_ONLY_MASK \
88 _notpre(RPMSENSE_SCRIPT_PRE|RPMSENSE_SCRIPT_POST|RPMSENSE_SCRIPT_PREUN|RPMSENSE_SCRIPT_POSTUN)
90 #define isLegacyPreReq(_x) (((_x) & _ALL_REQUIRES_MASK) == RPMSENSE_PREREQ)
91 #define isInstallPreReq(_x) ((_x) & _INSTALL_ONLY_MASK)
92 #define isErasePreReq(_x) ((_x) & _ERASE_ONLY_MASK)
93 #define isUnorderedReq(_x) ((_x) & _UNORDERED_ONLY_MASK && \
94 !((_x) & _FORCE_ORDER_ONLY_MASK))
95 #define isTransientReq(_x) (isInstallPreReq(_x) && \
96 !isErasePreReq(_x) && \
97 !((_x) & RPMSENSE_META))
459 const char * N,
const char * EVR,
491 const char *n,
int nl,
const char *e,
int el,
rpmsenseFlags sense,
rpmTagVal rpmdsTagN(const rpmds ds)
int rpmdsFind(rpmds ds, const rpmds ods)
rpmTagVal rpmdsTagTi(const rpmds ds)
int rpmdsSetNoPromote(rpmds ds, int nopromote)
rpmds rpmdsNewPool(rpmstrPool pool, Header h, rpmTagVal tagN, int flags)
int rpmdsNVRMatchesDep(const Header h, const rpmds req, int nopromote)
rpmRC(* rpmrichParseFunction)(void *cbdata, rpmrichParseType type, const char *n, int nl, const char *e, int el, rpmsenseFlags sense, rpmrichOp op, char **emsg)
int rpmdsMerge(rpmds *dsp, rpmds ods)
const char * rpmrichOpStr(rpmrichOp op)
Return a string representation of the rich dependency op.
struct rpmstrPool_s * rpmstrPool
rpmRC rpmdsParseRichDep(rpmds dep, rpmds *leftds, rpmds *rightds, rpmrichOp *op, char **emsg)
Parse a rich dependency string.
int rpmdsIx(const rpmds ds)
rpmds rpmdsLink(rpmds ds)
rpmTagVal rpmdsTagEVR(const rpmds ds)
const char * rpmdsN(const rpmds ds)
int rpmdsSetIx(rpmds ds, int ix)
int rpmdsIsWeak(rpmds ds)
int rpmdsSearch(rpmds ds, rpmds ods)
enum rpmrichOp_e rpmrichOp
enum rpmrichParseType_e rpmrichParseType
int rpmdsAnyMatchesDep(const Header h, const rpmds req, int nopromote)
int rpmdsIsRich(rpmds dep)
Return if current depenency is rich.
rpmds rpmdsSinglePoolTix(rpmstrPool pool, rpmTagVal tagN, const char *N, const char *EVR, rpmsenseFlags Flags, int triggerIndex)
rpmTagVal rpmdsDToTagN(char deptype)
rpmds rpmdsThisPool(rpmstrPool pool, Header h, rpmTagVal tagN, rpmsenseFlags Flags)
int rpmdsNoPromote(const rpmds ds)
rpmsenseFlags rpmdsFlags(const rpmds ds)
rpmds rpmdsFree(rpmds ds)
rpmRC rpmrichParse(const char **dstrp, char **emsg, rpmrichParseFunction cb, void *cbdata)
Parse a rich dependency string.
rpmds rpmdsThis(Header h, rpmTagVal tagN, rpmsenseFlags Flags)
int rpmdsCount(const rpmds ds)
rpmds rpmdsSingle(rpmTagVal tagN, const char *N, const char *EVR, rpmsenseFlags Flags)
rpmds rpmdsSinglePool(rpmstrPool pool, rpmTagVal tagN, const char *N, const char *EVR, rpmsenseFlags Flags)
int rpmdsRpmlib(rpmds *dsp, const void *tblp)
Load rpmlib provides into a dependency set.
int rpmdsCompare(const rpmds A, const rpmds B)
rpmds rpmdsInit(rpmds ds)
char rpmdsD(const rpmds ds)
rpmsenseFlags rpmParseDSFlags(const char *str, size_t len)
rpmds rpmdsNew(Header h, rpmTagVal tagN, int flags)
rpm_color_t rpmdsColor(const rpmds ds)
unsigned int rpmdsInstance(rpmds ds)
int rpmdsPutToHeader(rpmds ds, Header h)
const char * rpmdsEVR(const rpmds ds)
const char * rpmdsDNEVR(const rpmds ds)
rpmTagVal rpmdsTagF(const rpmds ds)
rpmRC rpmrichParseForTag(const char **dstrp, char **emsg, rpmrichParseFunction cb, void *cbdata, rpmTagVal tagN)
Parse a rich dependency string for a specific tag.
int rpmdsRpmlibPool(rpmstrPool pool, rpmds *dsp, const void *tblp)
Load rpmlib provides into a dependency set.
rpm_color_t rpmdsSetColor(const rpmds ds, rpm_color_t color)
rpmsenseFlags rpmSanitizeDSFlags(rpmTagVal tagN, rpmsenseFlags Flags)
struct headerToken_s * Header
int rpmdsIsReverse(rpmds ds)
int rpmdsTi(const rpmds ds)
int rpmdsMatchesDep(const Header h, int ix, const rpmds req, int nopromote)
rpmds rpmdsCurrent(rpmds ds)
char * rpmdsNewDNEVR(const char *dspfx, const rpmds ds)