24 RPMSENSE_LESS = (1 << 1),
25 RPMSENSE_GREATER = (1 << 2),
26 RPMSENSE_EQUAL = (1 << 3),
29 RPMSENSE_PREREQ = (1 << 6),
49 RPMSENSE_KEYRING = (1 << 26),
51 RPMSENSE_CONFIG = (1 << 28),
55typedef rpmFlags rpmsenseFlags;
57#define RPMSENSE_SENSEMASK 15
60#define RPMSENSE_TRIGGER \
61 (RPMSENSE_TRIGGERPREIN | RPMSENSE_TRIGGERIN | RPMSENSE_TRIGGERUN | RPMSENSE_TRIGGERPOSTUN)
63#define _ALL_REQUIRES_MASK (\
65 RPMSENSE_SCRIPT_PRE | \
66 RPMSENSE_SCRIPT_POST | \
67 RPMSENSE_SCRIPT_PREUN | \
68 RPMSENSE_SCRIPT_POSTUN | \
69 RPMSENSE_SCRIPT_VERIFY | \
70 RPMSENSE_FIND_REQUIRES | \
74 RPMSENSE_POSTTRANS | \
75 RPMSENSE_PREUNTRANS | \
76 RPMSENSE_POSTUNTRANS | \
81#define _notpre(_x) ((_x) & ~RPMSENSE_PREREQ)
82#define _INSTALL_ONLY_MASK \
83 _notpre(RPMSENSE_SCRIPT_PRE|RPMSENSE_SCRIPT_POST|RPMSENSE_RPMLIB|RPMSENSE_KEYRING|RPMSENSE_PRETRANS|RPMSENSE_POSTTRANS)
84#define _ERASE_ONLY_MASK \
85 _notpre(RPMSENSE_SCRIPT_PREUN|RPMSENSE_SCRIPT_POSTUN|RPMSENSE_PREUNTRANS|RPMSENSE_POSTUNTRANS)
86#define _UNORDERED_ONLY_MASK \
87 _notpre(RPMSENSE_RPMLIB|RPMSENSE_CONFIG|RPMSENSE_PRETRANS|RPMSENSE_POSTTRANS|RPMSENSE_PREUNTRANS|RPMSENSE_POSTUNTRANS|RPMSENSE_SCRIPT_VERIFY|RPMSENSE_META)
88#define _FORCE_ORDER_ONLY_MASK \
89 _notpre(RPMSENSE_SCRIPT_PRE|RPMSENSE_SCRIPT_POST|RPMSENSE_SCRIPT_PREUN|RPMSENSE_SCRIPT_POSTUN)
91#define isLegacyPreReq(_x) (((_x) & _ALL_REQUIRES_MASK) == RPMSENSE_PREREQ)
92#define isInstallPreReq(_x) ((_x) & _INSTALL_ONLY_MASK)
93#define isErasePreReq(_x) ((_x) & _ERASE_ONLY_MASK)
94#define isUnorderedReq(_x) ((_x) & _UNORDERED_ONLY_MASK && \
95 !((_x) & _FORCE_ORDER_ONLY_MASK))
96#define isTransientReq(_x) (isInstallPreReq(_x) && \
97 !isErasePreReq(_x) && \
98 !((_x) & RPMSENSE_META))
172rpmds
rpmdsSingle(rpmTagVal tagN,
const char * N,
const char * EVR, rpmsenseFlags Flags);
470 Header h, rpmTagVal tagN, rpmsenseFlags Flags);
483 const char * N,
const char * EVR, rpmsenseFlags Flags);
497 const char * N,
const char * EVR,
498 rpmsenseFlags Flags,
int triggerIndex);
511typedef enum rpmrichOp_e {
513 RPMRICHOP_SINGLE = 1,
519 RPMRICHOP_WITHOUT = 7,
523typedef enum rpmrichParseType_e {
524 RPMRICH_PARSE_SIMPLE = 1,
525 RPMRICH_PARSE_ENTER = 2,
526 RPMRICH_PARSE_LEAVE = 3,
530typedef rpmRC (*rpmrichParseFunction) (
void *cbdata, rpmrichParseType type,
531 const char *n,
int nl,
const char *e,
int el, rpmsenseFlags sense,
532 rpmrichOp op,
char **emsg);
RPM_PUBLIC_API int rpmdsSearch(rpmds ds, rpmds ods)
RPM_PUBLIC_API rpmds rpmdsSinglePool(rpmstrPool pool, rpmTagVal tagN, const char *N, const char *EVR, rpmsenseFlags Flags)
RPM_PUBLIC_API rpmds rpmdsSinglePoolTix(rpmstrPool pool, rpmTagVal tagN, const char *N, const char *EVR, rpmsenseFlags Flags, int triggerIndex)
RPM_PUBLIC_API rpmTagVal rpmdsTagEVR(const rpmds ds)
RPM_PUBLIC_API rpmsenseFlags rpmdsFlags(const rpmds ds)
RPM_PUBLIC_API int rpmdsSetIx(rpmds ds, int ix)
RPM_PUBLIC_API rpmds rpmdsSingle(rpmTagVal tagN, const char *N, const char *EVR, rpmsenseFlags Flags)
RPM_PUBLIC_API const char * rpmdsN(const rpmds ds)
RPM_PUBLIC_API rpmsenseFlags rpmSanitizeDSFlags(rpmTagVal tagN, rpmsenseFlags Flags)
RPM_PUBLIC_API unsigned int rpmdsInstance(rpmds ds)
RPM_PUBLIC_API char * rpmdsNewDNEVR(const char *dspfx, const rpmds ds)
RPM_PUBLIC_API rpmds rpmdsThisPool(rpmstrPool pool, Header h, rpmTagVal tagN, rpmsenseFlags Flags)
RPM_PUBLIC_API int rpmdsIsReverse(rpmds ds)
RPM_PUBLIC_API int rpmdsNext(rpmds ds)
RPM_PUBLIC_API int rpmdsMerge(rpmds *dsp, rpmds ods)
RPM_PUBLIC_API rpm_color_t rpmdsColor(const rpmds ds)
RPM_PUBLIC_API int rpmdsAnyMatchesDep(const Header h, const rpmds req, int nopromote)
RPM_PUBLIC_API int rpmdsFind(rpmds ds, const rpmds ods)
RPM_PUBLIC_API char rpmdsD(const rpmds ds)
RPM_PUBLIC_API rpmds rpmdsFree(rpmds ds)
RPM_PUBLIC_API rpmds rpmdsInit(rpmds ds)
RPM_PUBLIC_API rpm_color_t rpmdsSetColor(const rpmds ds, rpm_color_t color)
RPM_PUBLIC_API const char * rpmdsDNEVR(const rpmds ds)
RPM_PUBLIC_API int rpmdsIsSysuser(rpmds ds, char **sysuser)
RPM_PUBLIC_API rpmsenseFlags rpmParseDSFlags(const char *str, size_t len)
RPM_PUBLIC_API int rpmdsIx(const rpmds ds)
RPM_PUBLIC_API int rpmdsCompare(const rpmds A, const rpmds B)
RPM_PUBLIC_API rpmds rpmdsThis(Header h, rpmTagVal tagN, rpmsenseFlags Flags)
RPM_PUBLIC_API rpmTagVal rpmdsTagTi(const rpmds ds)
RPM_PUBLIC_API int rpmdsMatchesDep(const Header h, int ix, const rpmds req, int nopromote)
RPM_PUBLIC_API rpmTagVal rpmdsTagN(const rpmds ds)
RPM_PUBLIC_API int rpmdsIsWeak(rpmds ds)
RPM_PUBLIC_API int rpmdsCount(const rpmds ds)
RPM_PUBLIC_API int rpmdsTi(const rpmds ds)
RPM_PUBLIC_API const char * rpmdsEVR(const rpmds ds)
RPM_PUBLIC_API rpmTagVal rpmdsDToTagN(char deptype)
RPM_PUBLIC_API int rpmdsNVRMatchesDep(const Header h, const rpmds req, int nopromote)
RPM_PUBLIC_API rpmds rpmdsCurrent(rpmds ds)
rpmsenseFlags_e
Definition rpmds.h:22
RPM_PUBLIC_API rpmTagVal rpmdsTagF(const rpmds ds)
RPM_PUBLIC_API rpmds rpmdsNewPool(rpmstrPool pool, Header h, rpmTagVal tagN, int flags)
RPM_PUBLIC_API rpmds rpmdsLink(rpmds ds)
RPM_PUBLIC_API rpmds rpmdsNew(Header h, rpmTagVal tagN, int flags)
RPM_PUBLIC_API int rpmdsPutToHeader(rpmds ds, Header h)
@ RPMSENSE_POSTUNTRANS
Definition rpmds.h:45
@ RPMSENSE_FIND_PROVIDES
Definition rpmds.h:38
@ RPMSENSE_SCRIPT_POSTUN
Definition rpmds.h:35
@ RPMSENSE_TRIGGERPREIN
Definition rpmds.h:48
@ RPMSENSE_INTERP
Definition rpmds.h:31
@ RPMSENSE_TRIGGERUN
Definition rpmds.h:41
@ RPMSENSE_PREUNTRANS
Definition rpmds.h:44
@ RPMSENSE_FIND_REQUIRES
Definition rpmds.h:37
@ RPMSENSE_MISSINGOK
Definition rpmds.h:43
@ RPMSENSE_TRIGGERIN
Definition rpmds.h:40
@ RPMSENSE_TRIGGERPOSTUN
Definition rpmds.h:42
@ RPMSENSE_META
Definition rpmds.h:52
@ RPMSENSE_SCRIPT_PRE
Definition rpmds.h:32
@ RPMSENSE_SCRIPT_VERIFY
Definition rpmds.h:36
@ RPMSENSE_SCRIPT_PREUN
Definition rpmds.h:34
@ RPMSENSE_RPMLIB
Definition rpmds.h:47
@ RPMSENSE_SCRIPT_POST
Definition rpmds.h:33
@ RPMSENSE_POSTTRANS
Definition rpmds.h:28
@ RPMSENSE_PRETRANS
Definition rpmds.h:30
struct headerToken_s * Header
Definition rpmtypes.h:24
RPM_PUBLIC_API int rpmdsRpmlib(rpmds *dsp, const void *tblp)
RPM_PUBLIC_API int rpmdsIsRich(rpmds dep)
RPM_PUBLIC_API const char * rpmrichOpStr(rpmrichOp op)
RPM_PUBLIC_API rpmRC rpmdsParseRichDep(rpmds dep, rpmds *leftds, rpmds *rightds, rpmrichOp *op, char **emsg)
RPM_PUBLIC_API rpmRC rpmrichParse(const char **dstrp, char **emsg, rpmrichParseFunction cb, void *cbdata)
RPM_PUBLIC_API rpmRC rpmrichParseForTag(const char **dstrp, char **emsg, rpmrichParseFunction cb, void *cbdata, rpmTagVal tagN)
RPM_PUBLIC_API int rpmdsRpmlibPool(rpmstrPool pool, rpmds *dsp, const void *tblp)