rpm  4.13.0
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/rpmpgp.h>
16 #include <rpm/rpmfi.h>
17 #include <rpm/rpmcallback.h>
18 
19 #ifdef __cplusplus
20 extern "C" {
21 #endif
22 
23 extern int _rpmts_stats;
24 
30  RPMTRANS_FLAG_TEST = (1 << 0),
33  RPMTRANS_FLAG_JUSTDB = (1 << 3),
35  RPMTRANS_FLAG_NODOCS = (1 << 5),
39  /* bits 9-15 unused */
41  RPMTRANS_FLAG_NOPRE = (1 << 17),
42  RPMTRANS_FLAG_NOPOST = (1 << 18),
45  RPMTRANS_FLAG_NOPREUN = (1 << 21),
46  RPMTRANS_FLAG_NOPOSTUN = (1 << 22),
50  /* bit 26 unused */
51  RPMTRANS_FLAG_NOMD5 = (1 << 27),
53  /* bits 28-29 unused */
56 };
57 
59 
60 #define _noTransScripts \
61  ( RPMTRANS_FLAG_NOPRE | \
62  RPMTRANS_FLAG_NOPOST | \
63  RPMTRANS_FLAG_NOPREUN | \
64  RPMTRANS_FLAG_NOPOSTUN | \
65  RPMTRANS_FLAG_NOPRETRANS | \
66  RPMTRANS_FLAG_NOPOSTTRANS \
67  )
68 
69 #define _noTransTriggers \
70  ( RPMTRANS_FLAG_NOTRIGGERPREIN | \
71  RPMTRANS_FLAG_NOTRIGGERIN | \
72  RPMTRANS_FLAG_NOTRIGGERUN | \
73  RPMTRANS_FLAG_NOTRIGGERPOSTUN \
74  )
75 
76 /* Avoid unnecessary breakage for stuff referring to these unused flags */
77 #define RPMTRANS_FLAG_NOPAYLOAD 0
78 #define RPMTRANS_FLAG_APPLYONLY 0
79 #define RPMTRANS_FLAG_KEEPOBSOLETE 0
80 #define RPMTRANS_FLAG_DIRSTASH 0
81 #define RPMTRANS_FLAG_REPACKAGE 0
82 #define RPMTRANS_FLAG_PKGCOMMIT 0
83 #define RPMTRANS_FLAG_PKGUNDO 0
84 #define RPMTRANS_FLAG_COMMIT 0
85 #define RPMTRANS_FLAG_UNDO 0
86 #define RPMTRANS_FLAG_REVERSE 0
87 #define RPMTRANS_FLAG_NOSUGGEST 0
88 #define RPMTRANS_FLAG_ADDINDEPS 0
89 
95  RPMVSF_NOHDRCHK = (1 << 0),
96  RPMVSF_NEEDPAYLOAD = (1 << 1),
97  /* bit(s) 2-7 unused */
98  RPMVSF_NOSHA1HEADER = (1 << 8),
99  RPMVSF_NOMD5HEADER = (1 << 9), /* unimplemented */
100  RPMVSF_NODSAHEADER = (1 << 10),
101  RPMVSF_NORSAHEADER = (1 << 11), /* unimplemented */
102  /* bit(s) 12-15 unused */
103  RPMVSF_NOSHA1 = (1 << 16), /* unimplemented */
104  RPMVSF_NOMD5 = (1 << 17),
105  RPMVSF_NODSA = (1 << 18),
106  RPMVSF_NORSA = (1 << 19)
107  /* bit(s) 16-31 unused */
108 };
109 
111 
112 #define _RPMVSF_NODIGESTS \
113  ( RPMVSF_NOSHA1HEADER | \
114  RPMVSF_NOMD5HEADER | \
115  RPMVSF_NOSHA1 | \
116  RPMVSF_NOMD5 )
117 
118 #define _RPMVSF_NOSIGNATURES \
119  ( RPMVSF_NODSAHEADER | \
120  RPMVSF_NORSAHEADER | \
121  RPMVSF_NODSA | \
122  RPMVSF_NORSA )
123 
124 #define _RPMVSF_NOHEADER \
125  ( RPMVSF_NOSHA1HEADER | \
126  RPMVSF_NOMD5HEADER | \
127  RPMVSF_NODSAHEADER | \
128  RPMVSF_NORSAHEADER )
129 
130 #define _RPMVSF_NOPAYLOAD \
131  ( RPMVSF_NOSHA1 | \
132  RPMVSF_NOMD5 | \
133  RPMVSF_NODSA | \
134  RPMVSF_NORSA )
135 
139 typedef enum rpmtsOpX_e {
157 } rpmtsOpX;
158 
160  RPMTXN_READ = (1 << 0),
161  RPMTXN_WRITE = (1 << 1),
162 };
164 
175 int rpmtsCheck(rpmts ts);
176 
193 int rpmtsOrder(rpmts ts);
194 
212 int rpmtsRun(rpmts ts, rpmps okProbs, rpmprobFilterFlags ignoreSet);
213 
219 rpmts rpmtsLink (rpmts ts);
220 
226 int rpmtsCloseDB(rpmts ts);
227 
234 int rpmtsOpenDB(rpmts ts, int dbmode);
235 
243 int rpmtsInitDB(rpmts ts, int dbmode);
244 
250 int rpmtsGetDBMode(rpmts ts);
251 
259 int rpmtsSetDBMode(rpmts ts, int dbmode);
260 
266 int rpmtsRebuildDB(rpmts ts);
267 
273 int rpmtsVerifyDB(rpmts ts);
274 
284  const void * keyp, size_t keylen);
285 
294 
303 rpmRC rpmtsImportPubkey(rpmts ts, const unsigned char * pkt, size_t pktlen);
304 
311 rpmKeyring rpmtsGetKeyring(rpmts ts, int autoload);
312 
321 int rpmtsSetKeyring(rpmts ts, rpmKeyring keyring);
322 
331  int (*solve) (rpmts ts, rpmds ds, const void * data),
332  const void * solveData);
333 
340 
345 void rpmtsCleanProblems(rpmts ts);
346 
351 void rpmtsClean(rpmts ts);
352 
357 void rpmtsEmpty(rpmts ts);
358 
364 rpmts rpmtsFree(rpmts ts);
365 
372 
380 
386 const char * rpmtsRootDir(rpmts ts);
387 
394 int rpmtsSetRootDir(rpmts ts, const char * rootDir);
395 
402 
408 void rpmtsSetScriptFd(rpmts ts, FD_t scriptFd);
409 
416 
424 
431 
441 void * rpmtsNotify(rpmts ts, rpmte te,
442  rpmCallbackType what, rpm_loff_t amount, rpm_loff_t total);
443 
449 int rpmtsNElements(rpmts ts);
450 
457 rpmte rpmtsElement(rpmts ts, int ix);
458 
465 
472 
480 
487 
494 
502 
510 
517 rpmop rpmtsOp(rpmts ts, rpmtsOpX opx);
518 
525 
538  rpmCallbackFunction notify,
539  rpmCallbackData notifyData);
540 
545 rpmts rpmtsCreate(void);
546 
561  const fnpyKey key, int upgrade,
562  rpmRelocation * relocs);
563 
572 int rpmtsAddReinstallElement(rpmts ts, Header h, const fnpyKey key);
573 
581 int rpmtsAddEraseElement(rpmts ts, Header h, int dboffset);
582 
590 
596 rpmtxn rpmtxnEnd(rpmtxn txn);
597 
604 
611 
619 
620 #ifdef __cplusplus
621 }
622 #endif
623 
624 
625 #endif /* H_RPMTS */
RPMVSF_NODSAHEADER
@ RPMVSF_NODSAHEADER
Definition: rpmts.h:100
rpmFlags
uint32_t rpmFlags
Definition: rpmtypes.h:42
RPMVSF_NEEDPAYLOAD
@ RPMVSF_NEEDPAYLOAD
Definition: rpmts.h:96
rpmtsVSFlags
rpmVSFlags rpmtsVSFlags(rpmts ts)
rpmtsOrder
int rpmtsOrder(rpmts ts)
RPMVSF_NOSHA1
@ RPMVSF_NOSHA1
Definition: rpmts.h:103
RPMTS_OP_DIGEST
@ RPMTS_OP_DIGEST
Definition: rpmts.h:149
rpmtsScriptFd
FD_t rpmtsScriptFd(rpmts ts)
RPMTRANS_FLAG_BUILD_PROBS
@ RPMTRANS_FLAG_BUILD_PROBS
Definition: rpmts.h:31
RPMTS_OP_DBPUT
@ RPMTS_OP_DBPUT
Definition: rpmts.h:154
RPMTS_OP_DBREMOVE
@ RPMTS_OP_DBREMOVE
Definition: rpmts.h:152
RPMTRANS_FLAG_NOPRE
@ RPMTRANS_FLAG_NOPRE
Definition: rpmts.h:41
RPMTRANS_FLAG_NOPREUN
@ RPMTRANS_FLAG_NOPREUN
Definition: rpmts.h:45
rpmtsImportHeader
rpmRC rpmtsImportHeader(rpmtxn txn, Header h, rpmFlags flags)
rpmCallbackFunction
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:52
RPMTRANS_FLAG_TEST
@ RPMTRANS_FLAG_TEST
Definition: rpmts.h:30
rpmtransFlags_e
rpmtransFlags_e
Definition: rpmts.h:28
rpm_tid_t
uint32_t rpm_tid_t
Definition: rpmtypes.h:40
rpmtsEmpty
void rpmtsEmpty(rpmts ts)
RPMTRANS_FLAG_NOPLUGINS
@ RPMTRANS_FLAG_NOPLUGINS
Definition: rpmts.h:37
RPMTRANS_FLAG_DEPLOOPS
@ RPMTRANS_FLAG_DEPLOOPS
Definition: rpmts.h:55
rpmtsGetRdb
rpmdb rpmtsGetRdb(rpmts ts)
RPMTS_OP_ORDER
@ RPMTS_OP_ORDER
Definition: rpmts.h:142
RPMTRANS_FLAG_NOTRIGGERPREIN
@ RPMTRANS_FLAG_NOTRIGGERPREIN
Definition: rpmts.h:40
RPMTRANS_FLAG_NOTRIGGERS
@ RPMTRANS_FLAG_NOTRIGGERS
Definition: rpmts.h:34
rpmtsInitDB
int rpmtsInitDB(rpmts ts, int dbmode)
rpmtsSetFlags
rpmtransFlags rpmtsSetFlags(rpmts ts, rpmtransFlags transFlags)
rpmtsGetTid
rpm_tid_t rpmtsGetTid(rpmts ts)
RPMTRANS_FLAG_NOFILEDIGEST
@ RPMTRANS_FLAG_NOFILEDIGEST
Definition: rpmts.h:52
rpmtsCloseDB
int rpmtsCloseDB(rpmts ts)
rpmtsVerifyDB
int rpmtsVerifyDB(rpmts ts)
rpmtsCreate
rpmts rpmtsCreate(void)
rpmtxnFlags
rpmFlags rpmtxnFlags
Definition: rpmts.h:163
rpmKeyring
struct rpmKeyring_s * rpmKeyring
Definition: rpmtypes.h:80
rpmtsiNext
rpmte rpmtsiNext(rpmtsi tsi, rpmElementTypes types)
RPMTS_OP_INSTALL
@ RPMTS_OP_INSTALL
Definition: rpmts.h:144
RPMTRANS_FLAG_JUSTDB
@ RPMTRANS_FLAG_JUSTDB
Definition: rpmts.h:33
RPMTS_OP_DBDEL
@ RPMTS_OP_DBDEL
Definition: rpmts.h:155
RPMVSF_NODSA
@ RPMVSF_NODSA
Definition: rpmts.h:105
RPMTRANS_FLAG_NOTRIGGERUN
@ RPMTRANS_FLAG_NOTRIGGERUN
Definition: rpmts.h:44
RPMTRANS_FLAG_NOPOSTUN
@ RPMTRANS_FLAG_NOPOSTUN
Definition: rpmts.h:46
rpmtsRootDir
const char * rpmtsRootDir(rpmts ts)
RPMTRANS_FLAG_NOMD5
@ RPMTRANS_FLAG_NOMD5
Definition: rpmts.h:51
RPMTRANS_FLAG_NOSCRIPTS
@ RPMTRANS_FLAG_NOSCRIPTS
Definition: rpmts.h:32
rpmtsRun
int rpmtsRun(rpmts ts, rpmps okProbs, rpmprobFilterFlags ignoreSet)
rpmtsGetDBMode
int rpmtsGetDBMode(rpmts ts)
rpmts
struct rpmts_s * rpmts
Definition: rpmtypes.h:63
rpmtsElement
rpmte rpmtsElement(rpmts ts, int ix)
rpmDbiTagVal
rpm_tag_t rpmDbiTagVal
Definition: rpmtypes.h:31
rpmtsAddEraseElement
int rpmtsAddEraseElement(rpmts ts, Header h, int dboffset)
RPMTRANS_FLAG_NONE
@ RPMTRANS_FLAG_NONE
Definition: rpmts.h:29
RPMTRANS_FLAG_NOPOST
@ RPMTRANS_FLAG_NOPOST
Definition: rpmts.h:42
RPMVSF_NOMD5HEADER
@ RPMVSF_NOMD5HEADER
Definition: rpmts.h:99
rpmtsImportPubkey
rpmRC rpmtsImportPubkey(rpmts ts, const unsigned char *pkt, size_t pktlen)
rpmprobFilterFlags
rpmFlags rpmprobFilterFlags
Definition: rpmprob.h:34
RPMTRANS_FLAG_NOTRIGGERPOSTUN
@ RPMTRANS_FLAG_NOTRIGGERPOSTUN
Definition: rpmts.h:47
rpmtsSetSolveCallback
int rpmtsSetSolveCallback(rpmts ts, int(*solve)(rpmts ts, rpmds ds, const void *data), const void *solveData)
rpmtxn
struct rpmtxn_s * rpmtxn
Definition: rpmtypes.h:72
rpmElementTypes
rpmFlags rpmElementTypes
Definition: rpmte.h:24
rpmCallbackData
void * rpmCallbackData
Definition: rpmtypes.h:76
rpmtsOpX_e
rpmtsOpX_e
Definition: rpmts.h:139
RPMTS_OP_TOTAL
@ RPMTS_OP_TOTAL
Definition: rpmts.h:140
rpmtransFlags
rpmFlags rpmtransFlags
Definition: rpmts.h:58
rpm_loff_t
uint64_t rpm_loff_t
Definition: rpmtypes.h:51
rpmtsProblems
rpmps rpmtsProblems(rpmts ts)
_rpmts_stats
int _rpmts_stats
RPMTRANS_FLAG_NOCONTEXTS
@ RPMTRANS_FLAG_NOCONTEXTS
Definition: rpmts.h:38
rpmtsLink
rpmts rpmtsLink(rpmts ts)
rpmtxnEnd
rpmtxn rpmtxnEnd(rpmtxn txn)
rpmtsiFree
rpmtsi rpmtsiFree(rpmtsi tsi)
rpmtsClean
void rpmtsClean(rpmts ts)
rpmdb
struct rpmdb_s * rpmdb
Definition: rpmtypes.h:68
RPMTS_OP_FINGERPRINT
@ RPMTS_OP_FINGERPRINT
Definition: rpmts.h:143
RPMTRANS_FLAG_ALLFILES
@ RPMTRANS_FLAG_ALLFILES
Definition: rpmts.h:36
rpmtsSetScriptFd
void rpmtsSetScriptFd(rpmts ts, FD_t scriptFd)
rpmtsSetKeyring
int rpmtsSetKeyring(rpmts ts, rpmKeyring keyring)
rpmtsGetKeyring
rpmKeyring rpmtsGetKeyring(rpmts ts, int autoload)
rpmtsPlugins
rpmPlugins rpmtsPlugins(rpmts ts)
rpmps
struct rpmps_s * rpmps
Definition: rpmtypes.h:71
RPMTRANS_FLAG_NOCONFIGS
@ RPMTRANS_FLAG_NOCONFIGS
Definition: rpmts.h:54
rpmCallbackType
enum rpmCallbackType_e rpmCallbackType
Bit(s) to identify progress callbacks.
rpmtsFlags
rpmtransFlags rpmtsFlags(rpmts ts)
rpmtsFilterFlags
rpmprobFilterFlags rpmtsFilterFlags(rpmts ts)
rpmtsOp
rpmop rpmtsOp(rpmts ts, rpmtsOpX opx)
RPMTS_OP_DBGET
@ RPMTS_OP_DBGET
Definition: rpmts.h:153
rpmtsPrefColor
rpm_color_t rpmtsPrefColor(rpmts ts)
rpmtsSetTid
rpm_tid_t rpmtsSetTid(rpmts ts, rpm_tid_t tid)
RPMTS_OP_ERASE
@ RPMTS_OP_ERASE
Definition: rpmts.h:145
RPMTS_OP_COMPRESS
@ RPMTS_OP_COMPRESS
Definition: rpmts.h:147
rpmtsiInit
rpmtsi rpmtsiInit(rpmts ts)
rpm_color_t
uint32_t rpm_color_t
Definition: rpmtypes.h:38
RPMTRANS_FLAG_NOPOSTTRANS
@ RPMTRANS_FLAG_NOPOSTTRANS
Definition: rpmts.h:49
RPMTS_OP_DBADD
@ RPMTS_OP_DBADD
Definition: rpmts.h:151
rpmtsi
struct rpmtsi_s * rpmtsi
Definition: rpmtypes.h:70
rpmRelocation_s
We pass these around as an array with a sentinel.
Definition: rpmfiles.h:94
RPMTS_OP_CHECK
@ RPMTS_OP_CHECK
Definition: rpmts.h:141
RPMVSF_NOHDRCHK
@ RPMVSF_NOHDRCHK
Definition: rpmts.h:95
rpmtsNotify
void * rpmtsNotify(rpmts ts, rpmte te, rpmCallbackType what, rpm_loff_t amount, rpm_loff_t total)
rpmte
struct rpmte_s * rpmte
Definition: rpmtypes.h:64
RPMTXN_READ
@ RPMTXN_READ
Definition: rpmts.h:160
rpmtsOpX
enum rpmtsOpX_e rpmtsOpX
rpmtxnBegin
rpmtxn rpmtxnBegin(rpmts ts, rpmtxnFlags flags)
RPMTRANS_FLAG_NOPRETRANS
@ RPMTRANS_FLAG_NOPRETRANS
Definition: rpmts.h:48
rpmtsSetPrefColor
rpm_color_t rpmtsSetPrefColor(rpmts ts, rpm_color_t color)
Header
struct headerToken_s * Header
Definition: rpmtypes.h:24
rpmtsAddReinstallElement
int rpmtsAddReinstallElement(rpmts ts, Header h, const fnpyKey key)
rpmtsSetVSFlags
rpmVSFlags rpmtsSetVSFlags(rpmts ts, rpmVSFlags vsflags)
rpmtsSetNotifyCallback
int rpmtsSetNotifyCallback(rpmts ts, rpmCallbackFunction notify, rpmCallbackData notifyData)
rpmtsOpenDB
int rpmtsOpenDB(rpmts ts, int dbmode)
rpmtsSetColor
rpm_color_t rpmtsSetColor(rpmts ts, rpm_color_t color)
RPMVSF_NORSA
@ RPMVSF_NORSA
Definition: rpmts.h:106
RPMTS_OP_MAX
@ RPMTS_OP_MAX
Definition: rpmts.h:156
rpmop_s
Definition: rpmsw.h:40
rpmtsSetDBMode
int rpmtsSetDBMode(rpmts ts, int dbmode)
rpmtsCheck
int rpmtsCheck(rpmts ts)
RPMTXN_WRITE
@ RPMTXN_WRITE
Definition: rpmts.h:161
RPMTS_OP_UNCOMPRESS
@ RPMTS_OP_UNCOMPRESS
Definition: rpmts.h:148
RPMTRANS_FLAG_NOTRIGGERIN
@ RPMTRANS_FLAG_NOTRIGGERIN
Definition: rpmts.h:43
RPMVSF_DEFAULT
@ RPMVSF_DEFAULT
Definition: rpmts.h:94
RPMTS_OP_SIGNATURE
@ RPMTS_OP_SIGNATURE
Definition: rpmts.h:150
rpmVSFlags
rpmFlags rpmVSFlags
Definition: rpmts.h:110
rpmtsAddInstallElement
int rpmtsAddInstallElement(rpmts ts, Header h, const fnpyKey key, int upgrade, rpmRelocation *relocs)
rpmRC
enum rpmRC_e rpmRC
RPMVSF_NORSAHEADER
@ RPMVSF_NORSAHEADER
Definition: rpmts.h:101
rpmtxnFlags_e
rpmtxnFlags_e
Definition: rpmts.h:159
RPMTS_OP_SCRIPTLETS
@ RPMTS_OP_SCRIPTLETS
Definition: rpmts.h:146
rpmtsSetRootDir
int rpmtsSetRootDir(rpmts ts, const char *rootDir)
RPMVSF_NOSHA1HEADER
@ RPMVSF_NOSHA1HEADER
Definition: rpmts.h:98
fnpyKey
const typedef void * fnpyKey
Definition: rpmtypes.h:75
rpmPlugins
struct rpmPlugins_s * rpmPlugins
Definition: rpmtypes.h:86
rpmtsInitIterator
rpmdbMatchIterator rpmtsInitIterator(const rpmts ts, rpmDbiTagVal rpmtag, const void *keyp, size_t keylen)
FD_t
struct _FD_s * FD_t
Definition: rpmtypes.h:98
rpmtsRebuildDB
int rpmtsRebuildDB(rpmts ts)
rpmtsFree
rpmts rpmtsFree(rpmts ts)
rpmds
struct rpmds_s * rpmds
Definition: rpmtypes.h:65
RPMTRANS_FLAG_NODOCS
@ RPMTRANS_FLAG_NODOCS
Definition: rpmts.h:35
rpmVSFlags_e
rpmVSFlags_e
Definition: rpmts.h:93
rpmdbMatchIterator
struct rpmdbMatchIterator_s * rpmdbMatchIterator
Definition: rpmtypes.h:69
RPMVSF_NOMD5
@ RPMVSF_NOMD5
Definition: rpmts.h:104
rpmtsNElements
int rpmtsNElements(rpmts ts)
rpmtsCleanProblems
void rpmtsCleanProblems(rpmts ts)
rpmtsColor
rpm_color_t rpmtsColor(rpmts ts)