rpm 6.1.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 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
120typedef 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
163enum {
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
176typedef 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
196
197enum rpmtxnFlags_e {
198 RPMTXN_READ = (1 << 0),
199 RPMTXN_WRITE = (1 << 1),
200};
201typedef rpmFlags rpmtxnFlags;
202
203typedef enum rpmtsEvent_e {
204 RPMTS_EVENT_ADD = 1,
205 RPMTS_EVENT_DEL = 2,
206} rpmtsEvent;
207
221 (int event, rpmte te, rpmte other, void *data);
222
234
255
273int rpmtsRun(rpmts ts, rpmps okProbs, rpmprobFilterFlags ignoreSet);
274
281
288
295int rpmtsOpenDB(rpmts ts, int dbmode);
296
303int rpmtsInitDB(rpmts ts, int perms);
304
311
319int rpmtsSetDBMode(rpmts ts, int dbmode);
320
327
334
341
350rpmdbMatchIterator rpmtsInitIterator(const rpmts ts, rpmDbiTagVal rpmtag,
351 const void * keyp, size_t keylen);
352
360rpmRC rpmtsImportHeader(rpmtxn txn, Header h, rpmFlags flags);
361
369rpmRC rpmtsImportPubkey(rpmts ts, const unsigned char * pkt, size_t pktlen);
370
378rpmRC rpmtxnImportPubkey(rpmtxn kxn, const unsigned char * pkt, size_t pktlen);
379
388rpmRC rpmtxnDeletePubkey(rpmtxn kxn, rpmPubkey key);
389
396rpmRC rpmtxnRebuildKeystore(rpmtxn kxn, const char * from);
397
404rpmKeyring rpmtsGetKeyring(rpmts ts, int autoload);
405
414int rpmtsSetKeyring(rpmts ts, rpmKeyring keyring);
415
424 int (*solve) (rpmts ts, rpmds ds, const void * data),
425 const void * solveData);
426
433
439
445
451
458
464rpmVSFlags rpmtsVSFlags(rpmts ts);
465
472rpmVSFlags rpmtsSetVSFlags(rpmts ts, rpmVSFlags vsflags);
473
479rpmVSFlags rpmtsVfyFlags(rpmts ts);
480
487rpmVSFlags rpmtsSetVfyFlags(rpmts ts, rpmVSFlags vfyflags);
488
495
502int rpmtsSetVfyLevel(rpmts ts, int vfylevel);
503
509const char * rpmtsRootDir(rpmts ts);
510
522int rpmtsSetRootDir(rpmts ts, const char * rootDir);
523
530
536void rpmtsSetScriptFd(rpmts ts, FD_t scriptFd);
537
543rpm_tid_t rpmtsGetTid(rpmts ts);
544
551rpm_tid_t rpmtsSetTid(rpmts ts, rpm_tid_t tid);
552
559
569void * rpmtsNotify(rpmts ts, rpmte te,
570 rpmCallbackType what, rpm_loff_t amount, rpm_loff_t total);
571
578
585rpmte rpmtsElement(rpmts ts, int ix);
586
592rpmprobFilterFlags rpmtsFilterFlags(rpmts ts);
593
599rpmtransFlags rpmtsFlags(rpmts ts);
600
607rpmtransFlags rpmtsSetFlags(rpmts ts, rpmtransFlags transFlags);
608
614rpm_color_t rpmtsColor(rpmts ts);
615
621rpm_color_t rpmtsPrefColor(rpmts ts);
622
629rpm_color_t rpmtsSetColor(rpmts ts, rpm_color_t color);
630
637rpm_color_t rpmtsSetPrefColor(rpmts ts, rpm_color_t color);
638
645rpmop rpmtsOp(rpmts ts, rpmtsOpX opx);
646
652rpmPlugins rpmtsPlugins(rpmts ts);
653
666 rpmCallbackFunction notify,
667 rpmCallbackData notifyData);
668
677int rpmtsSetNotifyStyle(rpmts ts, int style);
678
686
699
705
721 const fnpyKey key, int upgrade,
722 rpmRelocation * relocs);
723
732int rpmtsAddReinstallElement(rpmts ts, Header h, const fnpyKey key);
733
741
749int rpmtsAddEraseElement(rpmts ts, Header h, int dboffset);
750
757rpmtxn rpmkxnBegin(rpmts ts, rpmtxnFlags flags);
758
765rpmtxn rpmtxnBegin(rpmts ts, rpmtxnFlags flags);
766
772rpmtxn rpmtxnEnd(rpmtxn txn);
773
779rpmtsi rpmtsiFree(rpmtsi tsi);
780
786rpmtsi rpmtsiInit(rpmts ts);
787
794rpmte rpmtsiNext(rpmtsi tsi, rpmElementTypes types);
795
796#ifdef __cplusplus
797}
798#endif
799
800
801#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)
rpmRC rpmtxnDeletePubkey(rpmtxn kxn, rpmPubkey key)
rpmKeyring rpmtsGetKeyring(rpmts ts, int autoload)
void * rpmtsNotify(rpmts ts, rpmte te, rpmCallbackType what, rpm_loff_t amount, rpm_loff_t total)
rpmtxn rpmkxnBegin(rpmts ts, rpmtxnFlags flags)
rpmVSFlags rpmtsSetVfyFlags(rpmts ts, rpmVSFlags vfyflags)
rpmRC rpmtxnImportPubkey(rpmtxn kxn, const unsigned char *pkt, size_t pktlen)
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 rpmtxnRebuildKeystore(rpmtxn kxn, const char *from)
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:221
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:176
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)
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 rpmtsParkDB(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)
@ 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