rpm: rpmds.h Source File

rpm 4.11.2-rc1

- Main Page
- Related Pages
- Modules
- Data Structures
- Files

- File List
- Globals

rpmds.h
Go to the documentation of this file.
1 #ifndef H_RPMDS
2 #define H_RPMDS
3
9 #include <time.h>
10
11 #include <rpm/rpmtypes.h>
12 #include <rpm/rpmps.h>
13
14 #ifdef __cplusplus
15 extern "C" {
16 #endif
17
20 extern int _rpmds_nopromote;
21
25 enum rpmsenseFlags_e {
26 RPMSENSE_ANY = 0,
27 RPMSENSE_LESS = (1 << 1),
28 RPMSENSE_GREATER = (1 << 2),
29 RPMSENSE_EQUAL = (1 << 3),
30 /* bit 4 unused */
31 RPMSENSE_POSTTRANS = (1 << 5),
32 RPMSENSE_PREREQ = (1 << 6), /* legacy prereq dependency */
33 RPMSENSE_PRETRANS = (1 << 7),
34 RPMSENSE_INTERP = (1 << 8),
35 RPMSENSE_SCRIPT_PRE = (1 << 9),
36 RPMSENSE_SCRIPT_POST = (1 << 10),
37 RPMSENSE_SCRIPT_PREUN = (1 << 11),
38 RPMSENSE_SCRIPT_POSTUN = (1 << 12),
39 RPMSENSE_SCRIPT_VERIFY = (1 << 13),
40 RPMSENSE_FIND_REQUIRES = (1 << 14),
41 RPMSENSE_FIND_PROVIDES = (1 << 15),
43 RPMSENSE_TRIGGERIN = (1 << 16),
44 RPMSENSE_TRIGGERUN = (1 << 17),
45 RPMSENSE_TRIGGERPOSTUN = (1 << 18),
46 RPMSENSE_MISSINGOK = (1 << 19),
47 /* bits 20-23 unused */
48 RPMSENSE_RPMLIB = (1 << 24),
49 RPMSENSE_TRIGGERPREIN = (1 << 25),
50 RPMSENSE_KEYRING = (1 << 26),
51 /* bit 27 unused */
52 RPMSENSE_CONFIG = (1 << 28)
53 };
54
55 typedef rpmFlags rpmsenseFlags;
56
57 #define RPMSENSE_SENSEMASK 15 /* Mask to get senses, ie serial, */
58 /* less, greater, equal. */
59
60 #define RPMSENSE_TRIGGER \
61 (RPMSENSE_TRIGGERPREIN | RPMSENSE_TRIGGERIN | RPMSENSE_TRIGGERUN | RPMSENSE_TRIGGERPOSTUN)
62
63 #define _ALL_REQUIRES_MASK (\
64 RPMSENSE_INTERP | \
65 RPMSENSE_SCRIPT_PRE | \
66 RPMSENSE_SCRIPT_POST | \
67 RPMSENSE_SCRIPT_PREUN | \
68 RPMSENSE_SCRIPT_POSTUN | \
69 RPMSENSE_SCRIPT_VERIFY | \
70 RPMSENSE_FIND_REQUIRES | \
71 RPMSENSE_RPMLIB | \
72 RPMSENSE_KEYRING | \
73 RPMSENSE_PRETRANS | \
74 RPMSENSE_POSTTRANS | \
75 RPMSENSE_PREREQ | \
76 RPMSENSE_MISSINGOK)
77
78 #define _notpre(_x) ((_x) & ~RPMSENSE_PREREQ)
79 #define _INSTALL_ONLY_MASK \
80 _notpre(RPMSENSE_SCRIPT_PRE|RPMSENSE_SCRIPT_POST|RPMSENSE_RPMLIB|RPMSENSE_KEYRING|RPMSENSE_PRETRANS|RPMSENSE_POSTTRANS)
81 #define _ERASE_ONLY_MASK \
82 _notpre(RPMSENSE_SCRIPT_PREUN|RPMSENSE_SCRIPT_POSTUN)
83
84 #define isLegacyPreReq(_x) (((_x) & _ALL_REQUIRES_MASK) == RPMSENSE_PREREQ)
85 #define isInstallPreReq(_x) ((_x) & _INSTALL_ONLY_MASK)
86 #define isErasePreReq(_x) ((_x) & _ERASE_ONLY_MASK)
87
93 rpmds rpmdsLink(rpmds ds);
94
100 rpmds rpmdsFree(rpmds ds);
101
109 rpmds rpmdsNew(Header h, rpmTagVal tagN, int flags);
110
117 char * rpmdsNewDNEVR(const char * dspfx, const rpmds ds);
118
126 rpmds rpmdsThis(Header h, rpmTagVal tagN, rpmsenseFlags Flags);
127
136 rpmds rpmdsSingle(rpmTagVal tagN, const char * N, const char * EVR, rpmsenseFlags Flags);
137
143 rpmds rpmdsCurrent(rpmds ds);
144
150 int rpmdsCount(const rpmds ds);
151
157 int rpmdsIx(const rpmds ds);
158
165 int rpmdsSetIx(rpmds ds, int ix);
166
172 const char * rpmdsDNEVR(const rpmds ds);
173
179 const char * rpmdsN(const rpmds ds);
180
186 const char * rpmdsEVR(const rpmds ds);
187
193 rpmsenseFlags rpmdsFlags(const rpmds ds);
194
200 rpmTagVal rpmdsTagN(const rpmds ds);
201
208 unsigned int rpmdsInstance(rpmds ds);
209
223 int rpmdsNoPromote(const rpmds ds);
224
231 int rpmdsSetNoPromote(rpmds ds, int nopromote);
232
238 rpm_color_t rpmdsColor(const rpmds ds);
239
246 rpm_color_t rpmdsSetColor(const rpmds ds, rpm_color_t color);
247
254 /* FIX: rpmMessage annotation is a lie */
255 void rpmdsNotify(rpmds ds, const char * where, int rc);
256
262 int rpmdsNext(rpmds ds);
263
269 rpmds rpmdsInit(rpmds ds);
270
277 int rpmdsFind(rpmds ds, const rpmds ods);
278
285 int rpmdsMerge(rpmds * dsp, rpmds ods);
286
295 int rpmdsSearch(rpmds ds, rpmds ods);
296
303 int rpmdsCompare(const rpmds A, const rpmds B);
304
312 int rpmdsAnyMatchesDep (const Header h, const rpmds req, int nopromote);
313
322 int rpmdsMatchesDep (const Header h, int ix, const rpmds req, int nopromote);
323
331 int rpmdsNVRMatchesDep(const Header h, const rpmds req, int nopromote);
332
339 int rpmdsRpmlib(rpmds * dsp, const void * tblp);
340
349 rpmds rpmdsNewPool(rpmstrPool pool, Header h, rpmTagVal tagN, int flags);
350
359 rpmds rpmdsThisPool(rpmstrPool pool,
360 Header h, rpmTagVal tagN, rpmsenseFlags Flags);
361
371 rpmds rpmdsSinglePool(rpmstrPool pool, rpmTagVal tagN,
372 const char * N, const char * EVR, rpmsenseFlags Flags);
373
381 int rpmdsRpmlibPool(rpmstrPool pool, rpmds * dsp, const void * tblp);
382
383 #ifdef __cplusplus
384 }
385 #endif
386
387 #endif /* H_RPMDS */
rpmdsCurrent
rpmds rpmdsCurrent(rpmds ds)
Return a new dependency set of size 1 from the current iteration index.
rpmdsNext
int rpmdsNext(rpmds ds)
Return next dependency set iterator index.
rpmdsMatchesDep
int rpmdsMatchesDep(const Header h, int ix, const rpmds req, int nopromote)
Compare package provides dependencies from header with a single dependency.
rpmdsNewPool
rpmds rpmdsNewPool(rpmstrPool pool, Header h, rpmTagVal tagN, int flags)
Create and load a dependency set.
RPMSENSE_TRIGGERPREIN
Definition: rpmds.h:49
rpmdsTagN
rpmTagVal rpmdsTagN(const rpmds ds)
Return current dependency type.
RPMSENSE_PREREQ
Definition: rpmds.h:32
RPMSENSE_FIND_PROVIDES
Definition: rpmds.h:41
rpmdsNewDNEVR
char * rpmdsNewDNEVR(const char *dspfx, const rpmds ds)
Return new formatted dependency string.
RPMSENSE_CONFIG
Definition: rpmds.h:52
rpmdsFind
int rpmdsFind(rpmds ds, const rpmds ods)
Find a dependency set element using binary search.
RPMSENSE_ANY
Definition: rpmds.h:26
rpmdsMerge
int rpmdsMerge(rpmds *dsp, rpmds ods)
Merge a dependency set maintaining (N,EVR,Flags) sorted order.
rpmdsIx
int rpmdsIx(const rpmds ds)
Return dependency set index.
RPMSENSE_SCRIPT_PRE
Definition: rpmds.h:35
rpmdsNVRMatchesDep
int rpmdsNVRMatchesDep(const Header h, const rpmds req, int nopromote)
Compare package name-version-release from header with a single dependency.
rpmdsLink
rpmds rpmdsLink(rpmds ds)
Reference a dependency set instance.
RPMSENSE_RPMLIB
Definition: rpmds.h:48
RPMSENSE_PRETRANS
Definition: rpmds.h:33
RPMSENSE_SCRIPT_PREUN
Definition: rpmds.h:37
RPMSENSE_GREATER
Definition: rpmds.h:28
RPMSENSE_TRIGGERIN
Definition: rpmds.h:43
rpmdsRpmlib
int rpmdsRpmlib(rpmds *dsp, const void *tblp)
Load rpmlib provides into a dependency set.
rpmdsRpmlibPool
int rpmdsRpmlibPool(rpmstrPool pool, rpmds *dsp, const void *tblp)
Load rpmlib provides into a dependency set.
rpmdsFlags
rpmsenseFlags rpmdsFlags(const rpmds ds)
Return current dependency flags.
rpmsenseFlags_e
rpmsenseFlags_e
Dependency Attributes.
Definition: rpmds.h:25
rpmdsNotify
void rpmdsNotify(rpmds ds, const char *where, int rc)
Notify of results of dependency match.
rpmdsSetIx
int rpmdsSetIx(rpmds ds, int ix)
Set dependency set index.
rpmFlags
uint32_t rpmFlags
Definition: rpmtypes.h:42
rpmdsN
const char * rpmdsN(const rpmds ds)
Return current dependency name.
rpmdsSearch
int rpmdsSearch(rpmds ds, rpmds ods)
Search a sorted dependency set for an element that overlaps.
rpmstrPool
struct rpmstrPool_s * rpmstrPool
Definition: rpmtypes.h:81
RPMSENSE_SCRIPT_POSTUN
Definition: rpmds.h:38
RPMSENSE_LESS
Definition: rpmds.h:27
rpmdsAnyMatchesDep
int rpmdsAnyMatchesDep(const Header h, const rpmds req, int nopromote)
Compare package provides dependencies from header with a single dependency.
RPMSENSE_FIND_REQUIRES
Definition: rpmds.h:40
RPMSENSE_MISSINGOK
Definition: rpmds.h:46
rpmdsThisPool
rpmds rpmdsThisPool(rpmstrPool pool, Header h, rpmTagVal tagN, rpmsenseFlags Flags)
Create, load and initialize a dependency for this header.
rpmdsNoPromote
int rpmdsNoPromote(const rpmds ds)
Return current "Don't promote Epoch:" flag.
rpm_color_t
uint32_t rpm_color_t
Definition: rpmtypes.h:38
RPMSENSE_TRIGGERPOSTUN
Definition: rpmds.h:45
rpmdsThis
rpmds rpmdsThis(Header h, rpmTagVal tagN, rpmsenseFlags Flags)
Create, load and initialize a dependency for this header.
Header
struct headerToken_s * Header
RPM header and data retrieval types.
Definition: rpmtypes.h:24
rpmdsCount
int rpmdsCount(const rpmds ds)
Return dependency set count.
rpmdsSinglePool
rpmds rpmdsSinglePool(rpmstrPool pool, rpmTagVal tagN, const char *N, const char *EVR, rpmsenseFlags Flags)
Create, load and initialize a dependency set of size 1.
rpmdsSingle
rpmds rpmdsSingle(rpmTagVal tagN, const char *N, const char *EVR, rpmsenseFlags Flags)
Create, load and initialize a dependency set of size 1.
rpmds
struct rpmds_s * rpmds
Definition: rpmtypes.h:65
rpmTagVal
rpm_tag_t rpmTagVal
Definition: rpmtypes.h:30
rpmdsFree
rpmds rpmdsFree(rpmds ds)
Destroy a dependency set.
_rpmds_nopromote
int _rpmds_nopromote
RPMSENSE_SCRIPT_POST
Definition: rpmds.h:36
rpmdsNew
rpmds rpmdsNew(Header h, rpmTagVal tagN, int flags)
Create and load a dependency set.
rpmdsColor
rpm_color_t rpmdsColor(const rpmds ds)
Return current dependency color.
RPMSENSE_EQUAL
Definition: rpmds.h:29
rpmdsCompare
int rpmdsCompare(const rpmds A, const rpmds B)
Compare two versioned dependency ranges, looking for overlap.
rpmdsInit
rpmds rpmdsInit(rpmds ds)
Initialize dependency set iterator.
RPMSENSE_SCRIPT_VERIFY
Definition: rpmds.h:39
rpmdsEVR
const char * rpmdsEVR(const rpmds ds)
Return current dependency epoch-version-release.
rpmdsDNEVR
const char * rpmdsDNEVR(const rpmds ds)
Return current formatted dependency string.
RPMSENSE_INTERP
Definition: rpmds.h:34
rpmdsInstance
unsigned int rpmdsInstance(rpmds ds)
Return dependency header instance, ie whether the dependency comes from an installed header or not...
RPMSENSE_TRIGGERUN
Definition: rpmds.h:44
rpmdsSetColor
rpm_color_t rpmdsSetColor(const rpmds ds, rpm_color_t color)
Return current dependency color.
RPMSENSE_POSTTRANS
Definition: rpmds.h:31
rpmsenseFlags
rpmFlags rpmsenseFlags
Definition: rpmds.h:55
rpmdsSetNoPromote
int rpmdsSetNoPromote(rpmds ds, int nopromote)
Set "Don't promote Epoch:" flag.
RPMSENSE_KEYRING
Definition: rpmds.h:50