rpm 5.99.90
The RPM Package Manager
 
Loading...
Searching...
No Matches
rpmts.h
Go to the documentation of this file.
1#ifndef H_RPMTS
2#define H_RPMTS
3
8
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
20extern "C" {
21#endif
22
23extern int _rpmts_stats;
24
62
63typedef 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 /* bit(s) 12-15 unused */
111 RPMVSF_NOPAYLOAD = (1 << 16),
112 RPMVSF_NOMD5 = (1 << 17),
113 RPMVSF_NODSA = (1 << 18),
114 RPMVSF_NORSA = (1 << 19)
115 /* bit(s) 16-31 unused */
116};
117
118typedef rpmFlags rpmVSFlags;
119
120#define RPMVSF_MASK_NODIGESTS \
121 ( RPMVSF_NOSHA1HEADER | \
122 RPMVSF_NOSHA256HEADER | \
123 RPMVSF_NOPAYLOAD | \
124 RPMVSF_NOMD5 )
125#define _RPMVSF_NODIGESTS RPMVSF_MASK_NODIGESTS
126
127#define RPMVSF_MASK_NOSIGNATURES \
128 ( RPMVSF_NODSAHEADER | \
129 RPMVSF_NORSAHEADER | \
130 RPMVSF_NOOPENPGP | \
131 RPMVSF_NODSA | \
132 RPMVSF_NORSA )
133#define _RPMVSF_NOSIGNATURES RPMVSF_MASK_NOSIGNATURES
134
135#define RPMVSF_MASK_NOHEADER \
136 ( RPMVSF_NOSHA1HEADER | \
137 RPMVSF_NOSHA256HEADER | \
138 RPMVSF_NOOPENPGP | \
139 RPMVSF_NODSAHEADER | \
140 RPMVSF_NORSAHEADER )
141#define _RPMVSF_NOHEADER RPMVSF_MASK_NOHEADER
142
143#define RPMVSF_MASK_NOPAYLOAD \
144 ( RPMVSF_NOMD5 | \
145 RPMVSF_NOPAYLOAD | \
146 RPMVSF_NODSA | \
147 RPMVSF_NORSA )
148#define _RPMVSF_NOPAYLOAD RPMVSF_MASK_NOPAYLOAD
149
150enum {
151 RPMSIG_NONE_TYPE = 0,
152 RPMSIG_DIGEST_TYPE = (1 << 0),
153 RPMSIG_SIGNATURE_TYPE = (1 << 1),
154 RPMSIG_OTHER_TYPE = (1 << 2),
155};
156
157#define RPMSIG_VERIFIABLE_TYPE (RPMSIG_DIGEST_TYPE|RPMSIG_SIGNATURE_TYPE)
158#define RPMSIG_UNVERIFIED_TYPE (1 << 30)
159
163typedef enum rpmtsOpX_e {
164 RPMTS_OP_TOTAL = 0,
165 RPMTS_OP_CHECK = 1,
166 RPMTS_OP_ORDER = 2,
167 RPMTS_OP_FINGERPRINT = 3,
168 RPMTS_OP_INSTALL = 5,
169 RPMTS_OP_ERASE = 6,
170 RPMTS_OP_SCRIPTLETS = 7,
171 RPMTS_OP_COMPRESS = 8,
172 RPMTS_OP_UNCOMPRESS = 9,
173 RPMTS_OP_DIGEST = 10,
174 RPMTS_OP_SIGNATURE = 11,
175 RPMTS_OP_DBADD = 12,
176 RPMTS_OP_DBREMOVE = 13,
177 RPMTS_OP_DBGET = 14,
178 RPMTS_OP_DBPUT = 15,
179 RPMTS_OP_DBDEL = 16,
180 RPMTS_OP_VERIFY = 17,
181 RPMTS_OP_MAX = 18
183
184enum rpmtxnFlags_e {
185 RPMTXN_READ = (1 << 0),
186 RPMTXN_WRITE = (1 << 1),
187};
188typedef rpmFlags rpmtxnFlags;
189
190typedef enum rpmtsEvent_e {
191 RPMTS_EVENT_ADD = 1,
192 RPMTS_EVENT_DEL = 2,
193} rpmtsEvent;
194
208 (int event, rpmte te, rpmte other, void *data);
209
221
239
257int rpmtsRun(rpmts ts, rpmps okProbs, rpmprobFilterFlags ignoreSet);
258
265
272
279int rpmtsOpenDB(rpmts ts, int dbmode);
280
287int rpmtsInitDB(rpmts ts, int perms);
288
295
303int rpmtsSetDBMode(rpmts ts, int dbmode);
304
311
318
327rpmdbMatchIterator rpmtsInitIterator(const rpmts ts, rpmDbiTagVal rpmtag,
328 const void * keyp, size_t keylen);
329
337rpmRC rpmtsImportHeader(rpmtxn txn, Header h, rpmFlags flags);
338
346rpmRC rpmtsImportPubkey(rpmts ts, const unsigned char * pkt, size_t pktlen);
347
355rpmRC rpmtxnImportPubkey(rpmtxn txn, const unsigned char * pkt, size_t pktlen);
356
365rpmRC rpmtxnDeletePubkey(rpmtxn txn, rpmPubkey key);
366
373rpmRC rpmtxnRebuildKeystore(rpmtxn txn, const char * from);
374
381rpmKeyring rpmtsGetKeyring(rpmts ts, int autoload);
382
391int rpmtsSetKeyring(rpmts ts, rpmKeyring keyring);
392
401 int (*solve) (rpmts ts, rpmds ds, const void * data),
402 const void * solveData);
403
410
416
422
428
435
441rpmVSFlags rpmtsVSFlags(rpmts ts);
442
449rpmVSFlags rpmtsSetVSFlags(rpmts ts, rpmVSFlags vsflags);
450
456rpmVSFlags rpmtsVfyFlags(rpmts ts);
457
464rpmVSFlags rpmtsSetVfyFlags(rpmts ts, rpmVSFlags vfyflags);
465
472
479int rpmtsSetVfyLevel(rpmts ts, int vfylevel);
480
486const char * rpmtsRootDir(rpmts ts);
487
499int rpmtsSetRootDir(rpmts ts, const char * rootDir);
500
507
513void rpmtsSetScriptFd(rpmts ts, FD_t scriptFd);
514
520rpm_tid_t rpmtsGetTid(rpmts ts);
521
528rpm_tid_t rpmtsSetTid(rpmts ts, rpm_tid_t tid);
529
536
546void * rpmtsNotify(rpmts ts, rpmte te,
547 rpmCallbackType what, rpm_loff_t amount, rpm_loff_t total);
548
555
562rpmte rpmtsElement(rpmts ts, int ix);
563
569rpmprobFilterFlags rpmtsFilterFlags(rpmts ts);
570
576rpmtransFlags rpmtsFlags(rpmts ts);
577
584rpmtransFlags rpmtsSetFlags(rpmts ts, rpmtransFlags transFlags);
585
591rpm_color_t rpmtsColor(rpmts ts);
592
598rpm_color_t rpmtsPrefColor(rpmts ts);
599
606rpm_color_t rpmtsSetColor(rpmts ts, rpm_color_t color);
607
614rpm_color_t rpmtsSetPrefColor(rpmts ts, rpm_color_t color);
615
622rpmop rpmtsOp(rpmts ts, rpmtsOpX opx);
623
629rpmPlugins rpmtsPlugins(rpmts ts);
630
643 rpmCallbackFunction notify,
644 rpmCallbackData notifyData);
645
654int rpmtsSetNotifyStyle(rpmts ts, int style);
655
663
676
682
698 const fnpyKey key, int upgrade,
699 rpmRelocation * relocs);
700
709int rpmtsAddReinstallElement(rpmts ts, Header h, const fnpyKey key);
710
718
726int rpmtsAddEraseElement(rpmts ts, Header h, int dboffset);
727
734rpmtxn rpmtxnBegin(rpmts ts, rpmtxnFlags flags);
735
741rpmtxn rpmtxnEnd(rpmtxn txn);
742
748rpmtsi rpmtsiFree(rpmtsi tsi);
749
755rpmtsi rpmtsiInit(rpmts ts);
756
763rpmte rpmtsiNext(rpmtsi tsi, rpmElementTypes types);
764
765#ifdef __cplusplus
766}
767#endif
768
769
770#endif /* H_RPMTS */
rpmte rpmtsiNext(rpmtsi tsi, rpmElementTypes types)
rpmtsi rpmtsiInit(rpmts ts)
rpmtsi rpmtsiFree(rpmtsi tsi)
int rpmtsGetNotifyStyle(rpmts ts)
rpmtxn rpmtxnBegin(rpmts ts, rpmtxnFlags flags)
rpmVSFlags_e
Definition rpmts.h:100
int rpmtsSetNotifyCallback(rpmts ts, rpmCallbackFunction notify, rpmCallbackData notifyData)
rpm_color_t rpmtsSetPrefColor(rpmts ts, rpm_color_t color)
rpm_color_t rpmtsSetColor(rpmts ts, rpm_color_t color)
int rpmtsAddInstallElement(rpmts ts, Header h, const fnpyKey key, int upgrade, rpmRelocation *relocs)
rpmtransFlags rpmtsFlags(rpmts ts)
int rpmtsAddReinstallElement(rpmts ts, Header h, const fnpyKey key)
rpmps rpmtsProblems(rpmts ts)
rpmte rpmtsElement(rpmts ts, int ix)
int rpmtsSetRootDir(rpmts ts, const char *rootDir)
int rpmtsRun(rpmts ts, rpmps okProbs, rpmprobFilterFlags ignoreSet)
int rpmtsRebuildDB(rpmts ts)
rpmKeyring rpmtsGetKeyring(rpmts ts, int autoload)
void * rpmtsNotify(rpmts ts, rpmte te, rpmCallbackType what, rpm_loff_t amount, rpm_loff_t total)
rpmVSFlags rpmtsSetVfyFlags(rpmts ts, rpmVSFlags vfyflags)
rpmVSFlags rpmtsVSFlags(rpmts ts)
int rpmtsGetDBMode(rpmts ts)
rpmts rpmtsFree(rpmts ts)
int rpmtsSetKeyring(rpmts ts, rpmKeyring keyring)
rpmVSFlags rpmtsSetVSFlags(rpmts ts, rpmVSFlags vsflags)
rpm_tid_t rpmtsGetTid(rpmts ts)
rpmRC rpmtsImportHeader(rpmtxn txn, Header h, rpmFlags flags)
rpmVSFlags rpmtsVfyFlags(rpmts ts)
rpmts rpmtsLink(rpmts ts)
rpmtransFlags rpmtsSetFlags(rpmts ts, rpmtransFlags transFlags)
rpm_tid_t rpmtsSetTid(rpmts ts, rpm_tid_t tid)
void rpmtsSetScriptFd(rpmts ts, FD_t scriptFd)
int rpmtsAddEraseElement(rpmts ts, Header h, int dboffset)
void rpmtsEmpty(rpmts ts)
int rpmtsSetChangeCallback(rpmts ts, rpmtsChangeFunction notify, void *data)
int(* rpmtsChangeFunction)(int event, rpmte te, rpmte other, void *data)
Definition rpmts.h:208
rpmRC rpmtxnRebuildKeystore(rpmtxn txn, const char *from)
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
int rpmtsOpenDB(rpmts ts, int dbmode)
rpmtsOpX_e
Definition rpmts.h:163
int rpmtsSetSolveCallback(rpmts ts, int(*solve)(rpmts ts, rpmds ds, const void *data), const void *solveData)
rpmRC rpmtsImportPubkey(rpmts ts, const unsigned char *pkt, size_t pktlen)
void rpmtsCleanProblems(rpmts ts)
rpmRC rpmtxnImportPubkey(rpmtxn txn, const unsigned char *pkt, size_t pktlen)
const char * rpmtsRootDir(rpmts ts)
int rpmtsVerifyDB(rpmts ts)
rpmdbMatchIterator rpmtsInitIterator(const rpmts ts, rpmDbiTagVal rpmtag, const void *keyp, size_t keylen)
int rpmtsVfyLevel(rpmts ts)
rpm_color_t rpmtsPrefColor(rpmts ts)
rpmprobFilterFlags rpmtsFilterFlags(rpmts ts)
int rpmtsOrder(rpmts ts)
rpmop rpmtsOp(rpmts ts, rpmtsOpX opx)
int rpmtsSetVfyLevel(rpmts ts, int vfylevel)
rpmtxn rpmtxnEnd(rpmtxn txn)
rpmtransFlags_e
Definition rpmts.h:28
rpmts rpmtsCreate(void)
int rpmtsSetDBMode(rpmts ts, int dbmode)
rpm_color_t rpmtsColor(rpmts ts)
int rpmtsAddRestoreElement(rpmts ts, Header h)
void rpmtsClean(rpmts ts)
int rpmtsSetNotifyStyle(rpmts ts, int style)
int rpmtsNElements(rpmts ts)
int rpmtsCloseDB(rpmts ts)
rpmdb rpmtsGetRdb(rpmts ts)
int rpmtsCheck(rpmts ts)
rpmPlugins rpmtsPlugins(rpmts ts)
enum rpmtsOpX_e rpmtsOpX
FD_t rpmtsScriptFd(rpmts ts)
int rpmtsInitDB(rpmts ts, int perms)
rpmRC rpmtxnDeletePubkey(rpmtxn txn, rpmPubkey key)
@ RPMTRANS_FLAG_NOCONFIGS
Definition rpmts.h:59
@ RPMTRANS_FLAG_NOMD5
Definition rpmts.h:55
@ RPMTRANS_FLAG_NOCAPS
Definition rpmts.h:39
@ RPMTRANS_FLAG_NOPREUN
Definition rpmts.h:49
@ RPMTRANS_FLAG_NOPLUGINS
Definition rpmts.h:37
@ RPMTRANS_FLAG_NOFILEDIGEST
Definition rpmts.h:56
@ RPMTRANS_FLAG_NOARTIFACTS
Definition rpmts.h:58
@ RPMTRANS_FLAG_NOTRIGGERIN
Definition rpmts.h:47
@ RPMTRANS_FLAG_NOTRIGGERPREIN
Definition rpmts.h:44
@ RPMTRANS_FLAG_NOPOSTUNTRANS
Definition rpmts.h:43
@ RPMTRANS_FLAG_NOPRETRANS
Definition rpmts.h:52
@ RPMTRANS_FLAG_NOSCRIPTS
Definition rpmts.h:32
@ RPMTRANS_FLAG_NOPOSTUN
Definition rpmts.h:50
@ RPMTRANS_FLAG_NOPRE
Definition rpmts.h:45
@ RPMTRANS_FLAG_NOPREUNTRANS
Definition rpmts.h:42
@ RPMTRANS_FLAG_JUSTDB
Definition rpmts.h:33
@ RPMTRANS_FLAG_NOTRIGGERPOSTUN
Definition rpmts.h:51
@ RPMTRANS_FLAG_NOTRIGGERUN
Definition rpmts.h:48
@ RPMTRANS_FLAG_NOPOST
Definition rpmts.h:46
@ RPMTRANS_FLAG_NODOCS
Definition rpmts.h:35
@ RPMTRANS_FLAG_NOCONTEXTS
Definition rpmts.h:38
@ RPMTRANS_FLAG_NOTRIGGERS
Definition rpmts.h:34
@ RPMTRANS_FLAG_NODB
Definition rpmts.h:40
@ RPMTRANS_FLAG_ALLFILES
Definition rpmts.h:36
@ RPMTRANS_FLAG_TEST
Definition rpmts.h:30
@ RPMTRANS_FLAG_DEPLOOPS
Definition rpmts.h:60
@ RPMTRANS_FLAG_NOPOSTTRANS
Definition rpmts.h:53
@ RPMTRANS_FLAG_NOSYSUSERS
Definition rpmts.h:54
@ RPMTRANS_FLAG_BUILD_PROBS
Definition rpmts.h:31
struct rpmts_s * rpmts
Definition rpmtypes.h:63
enum rpmRC_e rpmRC
struct FD_s * FD_t
Definition rpmtypes.h:100
struct headerToken_s * Header
Definition rpmtypes.h:24
enum rpmCallbackType_e rpmCallbackType