rpm  6.0.91
The RPM Package Manager
rpmts.h
Go to the documentation of this file.
1 #ifndef H_RPMTS
2 #define H_RPMTS
3 
9 #include <sys/types.h>
10 
11 #include <rpm/rpmtypes.h>
12 #include <rpm/rpmte.h>
13 #include <rpm/rpmps.h>
14 #include <rpm/rpmsw.h>
15 #include <rpm/rpmfi.h>
16 #include <rpm/rpmcallback.h>
17 #include <rpm/rpmkeyring.h>
18 
19 #ifdef __cplusplus
20 extern "C" {
21 #endif
22 
23 extern int _rpmts_stats;
24 
29  RPMTRANS_FLAG_NONE = 0,
30  RPMTRANS_FLAG_TEST = (1 << 0),
33  RPMTRANS_FLAG_JUSTDB = (1 << 3),
35  RPMTRANS_FLAG_NODOCS = (1 << 5),
39  RPMTRANS_FLAG_NOCAPS = (1 << 9),
40  RPMTRANS_FLAG_NODB = (1 << 10),
41  /* bits 11-13 unused */
45  RPMTRANS_FLAG_NOPRE = (1 << 17),
46  RPMTRANS_FLAG_NOPOST = (1 << 18),
49  RPMTRANS_FLAG_NOPREUN = (1 << 21),
50  RPMTRANS_FLAG_NOPOSTUN = (1 << 22),
55  RPMTRANS_FLAG_NOMD5 = (1 << 27),
57  /* bit 28 unused */
61 };
62 
63 typedef rpmFlags rpmtransFlags;
64 
65 #define _noTransScripts \
66  ( RPMTRANS_FLAG_NOPRE | \
67  RPMTRANS_FLAG_NOPOST | \
68  RPMTRANS_FLAG_NOPREUN | \
69  RPMTRANS_FLAG_NOPOSTUN | \
70  RPMTRANS_FLAG_NOPRETRANS | \
71  RPMTRANS_FLAG_NOPOSTTRANS | \
72  RPMTRANS_FLAG_NOPREUNTRANS |\
73  RPMTRANS_FLAG_NOPOSTUNTRANS \
74  )
75 
76 #define _noTransTriggers \
77  ( RPMTRANS_FLAG_NOTRIGGERPREIN | \
78  RPMTRANS_FLAG_NOTRIGGERIN | \
79  RPMTRANS_FLAG_NOTRIGGERUN | \
80  RPMTRANS_FLAG_NOTRIGGERPOSTUN \
81  )
82 
83 /* Avoid unnecessary breakage for stuff referring to these unused flags */
84 #define RPMTRANS_FLAG_NOPAYLOAD 0
85 #define RPMTRANS_FLAG_APPLYONLY 0
86 #define RPMTRANS_FLAG_KEEPOBSOLETE 0
87 #define RPMTRANS_FLAG_DIRSTASH 0
88 #define RPMTRANS_FLAG_REPACKAGE 0
89 #define RPMTRANS_FLAG_PKGCOMMIT 0
90 #define RPMTRANS_FLAG_PKGUNDO 0
91 #define RPMTRANS_FLAG_COMMIT 0
92 #define RPMTRANS_FLAG_UNDO 0
93 #define RPMTRANS_FLAG_REVERSE 0
94 #define RPMTRANS_FLAG_NOSUGGEST 0
95 #define RPMTRANS_FLAG_ADDINDEPS 0
96 
101  RPMVSF_DEFAULT = 0,
102  RPMVSF_NOHDRCHK = (1 << 0),
103  RPMVSF_NEEDPAYLOAD = (1 << 1),
104  /* bit(s) 2-7 unused */
105  RPMVSF_NOSHA1HEADER = (1 << 8),
106  RPMVSF_NOSHA256HEADER = (1 << 9),
107  RPMVSF_NODSAHEADER = (1 << 10),
108  RPMVSF_NORSAHEADER = (1 << 11),
109  RPMVSF_NOOPENPGP = (1 << 12),
110  RPMVSF_NOSHA3_256HEADER = (1 << 13),
111  RPMVSF_NOSHA512PAYLOAD = (1 << 14),
112  RPMVSF_NOSHA3_256PAYLOAD = (1 << 15),
113  RPMVSF_NOSHA256PAYLOAD = (1 << 16),
114  RPMVSF_NOMD5 = (1 << 17),
115  RPMVSF_NODSA = (1 << 18),
116  RPMVSF_NORSA = (1 << 19)
117  /* bit(s) 16-31 unused */
118 };
119 
120 typedef rpmFlags rpmVSFlags;
121 
122 #define RPMVSF_NOPAYLOAD \
123  ( RPMVSF_NOSHA3_256PAYLOAD | \
124  RPMVSF_NOSHA512PAYLOAD | \
125  RPMVSF_NOSHA256PAYLOAD )
126 
127 #define RPMVSF_MASK_NODIGESTS \
128  ( RPMVSF_NOSHA1HEADER | \
129  RPMVSF_NOSHA256HEADER | \
130  RPMVSF_NOSHA256PAYLOAD | \
131  RPMVSF_NOSHA512PAYLOAD | \
132  RPMVSF_NOSHA3_256PAYLOAD | \
133  RPMVSF_NOSHA3_256HEADER | \
134  RPMVSF_NOMD5 )
135 #define _RPMVSF_NODIGESTS RPMVSF_MASK_NODIGESTS
136 
137 #define RPMVSF_MASK_NOSIGNATURES \
138  ( RPMVSF_NODSAHEADER | \
139  RPMVSF_NORSAHEADER | \
140  RPMVSF_NOOPENPGP | \
141  RPMVSF_NODSA | \
142  RPMVSF_NORSA )
143 #define _RPMVSF_NOSIGNATURES RPMVSF_MASK_NOSIGNATURES
144 
145 #define RPMVSF_MASK_NOHEADER \
146  ( RPMVSF_NOSHA1HEADER | \
147  RPMVSF_NOSHA256HEADER | \
148  RPMVSF_NOSHA3_256HEADER | \
149  RPMVSF_NOOPENPGP | \
150  RPMVSF_NODSAHEADER | \
151  RPMVSF_NORSAHEADER )
152 #define _RPMVSF_NOHEADER RPMVSF_MASK_NOHEADER
153 
154 #define RPMVSF_MASK_NOPAYLOAD \
155  ( RPMVSF_NOMD5 | \
156  RPMVSF_NOSHA256PAYLOAD | \
157  RPMVSF_NOSHA512PAYLOAD | \
158  RPMVSF_NOSHA3_256PAYLOAD | \
159  RPMVSF_NODSA | \
160  RPMVSF_NORSA )
161 #define _RPMVSF_NOPAYLOAD RPMVSF_MASK_NOPAYLOAD
162 
163 enum {
164  RPMSIG_NONE_TYPE = 0,
165  RPMSIG_DIGEST_TYPE = (1 << 0),
166  RPMSIG_SIGNATURE_TYPE = (1 << 1),
167  RPMSIG_OTHER_TYPE = (1 << 2),
168 };
169 
170 #define RPMSIG_VERIFIABLE_TYPE (RPMSIG_DIGEST_TYPE|RPMSIG_SIGNATURE_TYPE)
171 #define RPMSIG_UNVERIFIED_TYPE (1 << 30)
172 
176 typedef enum rpmtsOpX_e {
177  RPMTS_OP_TOTAL = 0,
178  RPMTS_OP_CHECK = 1,
179  RPMTS_OP_ORDER = 2,
180  RPMTS_OP_FINGERPRINT = 3,
181  RPMTS_OP_INSTALL = 5,
182  RPMTS_OP_ERASE = 6,
183  RPMTS_OP_SCRIPTLETS = 7,
184  RPMTS_OP_COMPRESS = 8,
185  RPMTS_OP_UNCOMPRESS = 9,
186  RPMTS_OP_DIGEST = 10,
187  RPMTS_OP_SIGNATURE = 11,
188  RPMTS_OP_DBADD = 12,
189  RPMTS_OP_DBREMOVE = 13,
190  RPMTS_OP_DBGET = 14,
191  RPMTS_OP_DBPUT = 15,
192  RPMTS_OP_DBDEL = 16,
193  RPMTS_OP_VERIFY = 17,
194  RPMTS_OP_MAX = 18
195 } rpmtsOpX;
196 
197 enum rpmtxnFlags_e {
198  RPMTXN_READ = (1 << 0),
199  RPMTXN_WRITE = (1 << 1),
200 };
201 typedef rpmFlags rpmtxnFlags;
202 
203 typedef enum rpmtsEvent_e {
204  RPMTS_EVENT_ADD = 1,
205  RPMTS_EVENT_DEL = 2,
206 } rpmtsEvent;
207 
220 typedef int (*rpmtsChangeFunction)
221  (int event, rpmte te, rpmte other, void *data);
222 
233 int rpmtsCheck(rpmts ts);
234 
254 int rpmtsOrder(rpmts ts);
255 
273 int rpmtsRun(rpmts ts, rpmps okProbs, rpmprobFilterFlags ignoreSet);
274 
280 rpmts rpmtsLink (rpmts ts);
281 
287 int rpmtsCloseDB(rpmts ts);
288 
295 int rpmtsOpenDB(rpmts ts, int dbmode);
296 
303 int rpmtsInitDB(rpmts ts, int perms);
304 
310 int rpmtsGetDBMode(rpmts ts);
311 
319 int rpmtsSetDBMode(rpmts ts, int dbmode);
320 
326 int rpmtsRebuildDB(rpmts ts);
327 
333 int rpmtsVerifyDB(rpmts ts);
334 
343 rpmdbMatchIterator rpmtsInitIterator(const rpmts ts, rpmDbiTagVal rpmtag,
344  const void * keyp, size_t keylen);
345 
353 rpmRC rpmtsImportHeader(rpmtxn txn, Header h, rpmFlags flags);
354 
362 rpmRC rpmtsImportPubkey(rpmts ts, const unsigned char * pkt, size_t pktlen);
363 
371 rpmRC rpmtxnImportPubkey(rpmtxn kxn, const unsigned char * pkt, size_t pktlen);
372 
381 rpmRC rpmtxnDeletePubkey(rpmtxn kxn, rpmPubkey key);
382 
389 rpmRC rpmtxnRebuildKeystore(rpmtxn kxn, const char * from);
390 
397 rpmKeyring rpmtsGetKeyring(rpmts ts, int autoload);
398 
407 int rpmtsSetKeyring(rpmts ts, rpmKeyring keyring);
408 
417  int (*solve) (rpmts ts, rpmds ds, const void * data),
418  const void * solveData);
419 
425 rpmps rpmtsProblems(rpmts ts);
426 
431 void rpmtsCleanProblems(rpmts ts);
432 
437 void rpmtsClean(rpmts ts);
438 
443 void rpmtsEmpty(rpmts ts);
444 
450 rpmts rpmtsFree(rpmts ts);
451 
457 rpmVSFlags rpmtsVSFlags(rpmts ts);
458 
465 rpmVSFlags rpmtsSetVSFlags(rpmts ts, rpmVSFlags vsflags);
466 
472 rpmVSFlags rpmtsVfyFlags(rpmts ts);
473 
480 rpmVSFlags rpmtsSetVfyFlags(rpmts ts, rpmVSFlags vfyflags);
481 
487 int rpmtsVfyLevel(rpmts ts);
488 
495 int rpmtsSetVfyLevel(rpmts ts, int vfylevel);
496 
502 const char * rpmtsRootDir(rpmts ts);
503 
515 int rpmtsSetRootDir(rpmts ts, const char * rootDir);
516 
523 
529 void rpmtsSetScriptFd(rpmts ts, FD_t scriptFd);
530 
536 rpm_tid_t rpmtsGetTid(rpmts ts);
537 
544 rpm_tid_t rpmtsSetTid(rpmts ts, rpm_tid_t tid);
545 
551 rpmdb rpmtsGetRdb(rpmts ts);
552 
562 void * rpmtsNotify(rpmts ts, rpmte te,
563  rpmCallbackType what, rpm_loff_t amount, rpm_loff_t total);
564 
570 int rpmtsNElements(rpmts ts);
571 
578 rpmte rpmtsElement(rpmts ts, int ix);
579 
585 rpmprobFilterFlags rpmtsFilterFlags(rpmts ts);
586 
592 rpmtransFlags rpmtsFlags(rpmts ts);
593 
600 rpmtransFlags rpmtsSetFlags(rpmts ts, rpmtransFlags transFlags);
601 
607 rpm_color_t rpmtsColor(rpmts ts);
608 
614 rpm_color_t rpmtsPrefColor(rpmts ts);
615 
622 rpm_color_t rpmtsSetColor(rpmts ts, rpm_color_t color);
623 
630 rpm_color_t rpmtsSetPrefColor(rpmts ts, rpm_color_t color);
631 
638 rpmop rpmtsOp(rpmts ts, rpmtsOpX opx);
639 
645 rpmPlugins rpmtsPlugins(rpmts ts);
646 
659  rpmCallbackFunction notify,
660  rpmCallbackData notifyData);
661 
670 int rpmtsSetNotifyStyle(rpmts ts, int style);
671 
678 int rpmtsGetNotifyStyle(rpmts ts);
679 
691 int rpmtsSetChangeCallback(rpmts ts, rpmtsChangeFunction notify, void *data);
692 
697 rpmts rpmtsCreate(void);
698 
714  const fnpyKey key, int upgrade,
715  rpmRelocation * relocs);
716 
725 int rpmtsAddReinstallElement(rpmts ts, Header h, const fnpyKey key);
726 
734 
742 int rpmtsAddEraseElement(rpmts ts, Header h, int dboffset);
743 
750 rpmtxn rpmkxnBegin(rpmts ts, rpmtxnFlags flags);
751 
758 rpmtxn rpmtxnBegin(rpmts ts, rpmtxnFlags flags);
759 
765 rpmtxn rpmtxnEnd(rpmtxn txn);
766 
772 rpmtsi rpmtsiFree(rpmtsi tsi);
773 
779 rpmtsi rpmtsiInit(rpmts ts);
780 
787 rpmte rpmtsiNext(rpmtsi tsi, rpmElementTypes types);
788 
789 #ifdef __cplusplus
790 }
791 #endif
792 
793 
794 #endif /* H_RPMTS */
int rpmtsSetNotifyCallback(rpmts ts, rpmCallbackFunction notify, rpmCallbackData notifyData)
Definition: rpmts.h:35
enum rpmCallbackType_e rpmCallbackType
Definition: rpmts.h:47
rpmRC rpmtsImportPubkey(rpmts ts, const unsigned char *pkt, size_t pktlen)
rpmop rpmtsOp(rpmts ts, rpmtsOpX opx)
rpmprobFilterFlags rpmtsFilterFlags(rpmts ts)
int rpmtsSetNotifyStyle(rpmts ts, int style)
Definition: rpmts.h:42
Definition: rpmts.h:54
rpmtxn rpmtxnEnd(rpmtxn txn)
rpm_color_t rpmtsSetColor(rpmts ts, rpm_color_t color)
rpmtransFlags rpmtsSetFlags(rpmts ts, rpmtransFlags transFlags)
rpmdb rpmtsGetRdb(rpmts ts)
rpmts rpmtsFree(rpmts ts)
rpmPlugins rpmtsPlugins(rpmts ts)
Definition: rpmts.h:49
rpmts rpmtsLink(rpmts ts)
int rpmtsSetChangeCallback(rpmts ts, rpmtsChangeFunction notify, void *data)
Definition: rpmts.h:48
int rpmtsRebuildDB(rpmts ts)
rpm_tid_t rpmtsGetTid(rpmts ts)
Definition: rpmts.h:55
void rpmtsEmpty(rpmts ts)
int rpmtsSetKeyring(rpmts ts, rpmKeyring keyring)
Definition: rpmts.h:32
void * rpmtsNotify(rpmts ts, rpmte te, rpmCallbackType what, rpm_loff_t amount, rpm_loff_t total)
struct rpmts_s * rpmts
Definition: rpmtypes.h:63
rpm_color_t rpmtsColor(rpmts ts)
rpm_color_t rpmtsPrefColor(rpmts ts)
int(* rpmtsChangeFunction)(int event, rpmte te, rpmte other, void *data)
Definition: rpmts.h:221
int rpmtsAddInstallElement(rpmts ts, Header h, const fnpyKey key, int upgrade, rpmRelocation *relocs)
Definition: rpmfiles.h:129
int rpmtsSetSolveCallback(rpmts ts, int(*solve)(rpmts ts, rpmds ds, const void *data), const void *solveData)
FD_t rpmtsScriptFd(rpmts ts)
int rpmtsAddRestoreElement(rpmts ts, Header h)
Definition: rpmts.h:44
rpmdbMatchIterator rpmtsInitIterator(const rpmts ts, rpmDbiTagVal rpmtag, const void *keyp, size_t keylen)
rpmRC rpmtxnRebuildKeystore(rpmtxn kxn, const char *from)
Definition: rpmts.h:39
void *(* rpmCallbackFunction)(const void *h, const rpmCallbackType what, const rpm_loff_t amount, const rpm_loff_t total, fnpyKey key, rpmCallbackData data)
Definition: rpmcallback.h:61
rpmts rpmtsCreate(void)
Definition: rpmts.h:51
int rpmtsAddReinstallElement(rpmts ts, Header h, const fnpyKey key)
rpmtransFlags_e
Definition: rpmts.h:28
enum rpmtsOpX_e rpmtsOpX
int rpmtsVerifyDB(rpmts ts)
rpmtxn rpmkxnBegin(rpmts ts, rpmtxnFlags flags)
Definition: rpmts.h:40
int rpmtsCloseDB(rpmts ts)
Definition: rpmts.h:60
rpmVSFlags rpmtsSetVfyFlags(rpmts ts, rpmVSFlags vfyflags)
struct headerToken_s * Header
Definition: rpmtypes.h:24
rpmVSFlags_e
Definition: rpmts.h:100
int rpmtsSetVfyLevel(rpmts ts, int vfylevel)
Definition: rpmts.h:58
const char * rpmtsRootDir(rpmts ts)
Definition: rpmts.h:38
int rpmtsOpenDB(rpmts ts, int dbmode)
Definition: rpmts.h:46
rpmtsi rpmtsiFree(rpmtsi tsi)
rpmte rpmtsElement(rpmts ts, int ix)
rpmte rpmtsiNext(rpmtsi tsi, rpmElementTypes types)
int rpmtsSetDBMode(rpmts ts, int dbmode)
Definition: rpmts.h:36
Definition: rpmts.h:50
Definition: rpmsw.h:42
Definition: rpmts.h:31
Definition: rpmts.h:34
rpmRC rpmtsImportHeader(rpmtxn txn, Header h, rpmFlags flags)
rpmVSFlags rpmtsSetVSFlags(rpmts ts, rpmVSFlags vsflags)
rpmKeyring rpmtsGetKeyring(rpmts ts, int autoload)
int rpmtsOrder(rpmts ts)
void rpmtsClean(rpmts ts)
int rpmtsAddEraseElement(rpmts ts, Header h, int dboffset)
int rpmtsRun(rpmts ts, rpmps okProbs, rpmprobFilterFlags ignoreSet)
Definition: rpmts.h:45
int rpmtsGetDBMode(rpmts ts)
int rpmtsNElements(rpmts ts)
rpmRC rpmtxnImportPubkey(rpmtxn kxn, const unsigned char *pkt, size_t pktlen)
rpmtransFlags rpmtsFlags(rpmts ts)
int rpmtsGetNotifyStyle(rpmts ts)
struct FD_s * FD_t
Definition: rpmtypes.h:100
rpmVSFlags rpmtsVfyFlags(rpmts ts)
Definition: rpmts.h:52
rpmVSFlags rpmtsVSFlags(rpmts ts)
Definition: rpmts.h:30
Definition: rpmts.h:53
rpm_color_t rpmtsSetPrefColor(rpmts ts, rpm_color_t color)
Definition: rpmts.h:56
Definition: rpmts.h:59
Definition: rpmts.h:43
int rpmtsSetRootDir(rpmts ts, const char *rootDir)
int rpmtsVfyLevel(rpmts ts)
Definition: rpmts.h:37
void rpmtsSetScriptFd(rpmts ts, FD_t scriptFd)
Definition: rpmts.h:33
rpmtsOpX_e
Definition: rpmts.h:176
int rpmtsCheck(rpmts ts)
void rpmtsCleanProblems(rpmts ts)
rpmRC rpmtxnDeletePubkey(rpmtxn kxn, rpmPubkey key)
rpmtsi rpmtsiInit(rpmts ts)
enum rpmRC_e rpmRC
rpmtxn rpmtxnBegin(rpmts ts, rpmtxnFlags flags)
rpmps rpmtsProblems(rpmts ts)
rpm_tid_t rpmtsSetTid(rpmts ts, rpm_tid_t tid)
int rpmtsInitDB(rpmts ts, int perms)