00001 #ifndef H_RPMTS
00002 #define H_RPMTS
00003
00009 #include <sys/types.h>
00010
00011 #include <rpm/rpmtypes.h>
00012 #include <rpm/rpmte.h>
00013 #include <rpm/rpmps.h>
00014 #include <rpm/rpmsw.h>
00015 #include <rpm/rpmpgp.h>
00016 #include <rpm/rpmfi.h>
00017 #include <rpm/rpmcallback.h>
00018
00019 #ifdef __cplusplus
00020 extern "C" {
00021 #endif
00022
00023 extern int _rpmts_stats;
00024
00028 enum rpmtransFlags_e {
00029 RPMTRANS_FLAG_NONE = 0,
00030 RPMTRANS_FLAG_TEST = (1 << 0),
00031 RPMTRANS_FLAG_BUILD_PROBS = (1 << 1),
00032 RPMTRANS_FLAG_NOSCRIPTS = (1 << 2),
00033 RPMTRANS_FLAG_JUSTDB = (1 << 3),
00034 RPMTRANS_FLAG_NOTRIGGERS = (1 << 4),
00035 RPMTRANS_FLAG_NODOCS = (1 << 5),
00036 RPMTRANS_FLAG_ALLFILES = (1 << 6),
00037 RPMTRANS_FLAG_KEEPOBSOLETE = (1 << 7),
00038 RPMTRANS_FLAG_NOCONTEXTS = (1 << 8),
00039 RPMTRANS_FLAG_DIRSTASH = (1 << 9),
00040 RPMTRANS_FLAG_REPACKAGE = (1 << 10),
00042 RPMTRANS_FLAG_PKGCOMMIT = (1 << 11),
00043 RPMTRANS_FLAG_PKGUNDO = (1 << 12),
00044 RPMTRANS_FLAG_COMMIT = (1 << 13),
00045 RPMTRANS_FLAG_UNDO = (1 << 14),
00046 RPMTRANS_FLAG_REVERSE = (1 << 15),
00048 RPMTRANS_FLAG_NOTRIGGERPREIN= (1 << 16),
00049 RPMTRANS_FLAG_NOPRE = (1 << 17),
00050 RPMTRANS_FLAG_NOPOST = (1 << 18),
00051 RPMTRANS_FLAG_NOTRIGGERIN = (1 << 19),
00052 RPMTRANS_FLAG_NOTRIGGERUN = (1 << 20),
00053 RPMTRANS_FLAG_NOPREUN = (1 << 21),
00054 RPMTRANS_FLAG_NOPOSTUN = (1 << 22),
00055 RPMTRANS_FLAG_NOTRIGGERPOSTUN = (1 << 23),
00056 RPMTRANS_FLAG_NOPAYLOAD = (1 << 24),
00057 RPMTRANS_FLAG_APPLYONLY = (1 << 25),
00058 RPMTRANS_FLAG_NOCOLLECTIONS = (1 << 26),
00060 RPMTRANS_FLAG_NOMD5 = (1 << 27),
00061 RPMTRANS_FLAG_NOFILEDIGEST = (1 << 27),
00062 RPMTRANS_FLAG_NOSUGGEST = (1 << 28),
00063 RPMTRANS_FLAG_ADDINDEPS = (1 << 29),
00064 RPMTRANS_FLAG_NOCONFIGS = (1 << 30),
00065 RPMTRANS_FLAG_DEPLOOPS = (1 << 31)
00066 };
00067
00068 typedef rpmFlags rpmtransFlags;
00069
00070 #define _noTransScripts \
00071 ( RPMTRANS_FLAG_NOPRE | \
00072 RPMTRANS_FLAG_NOPOST | \
00073 RPMTRANS_FLAG_NOPREUN | \
00074 RPMTRANS_FLAG_NOPOSTUN \
00075 )
00076
00077 #define _noTransTriggers \
00078 ( RPMTRANS_FLAG_NOTRIGGERPREIN | \
00079 RPMTRANS_FLAG_NOTRIGGERIN | \
00080 RPMTRANS_FLAG_NOTRIGGERUN | \
00081 RPMTRANS_FLAG_NOTRIGGERPOSTUN \
00082 )
00083
00087 enum rpmVSFlags_e {
00088 RPMVSF_DEFAULT = 0,
00089 RPMVSF_NOHDRCHK = (1 << 0),
00090 RPMVSF_NEEDPAYLOAD = (1 << 1),
00091
00092 RPMVSF_NOSHA1HEADER = (1 << 8),
00093 RPMVSF_NOMD5HEADER = (1 << 9),
00094 RPMVSF_NODSAHEADER = (1 << 10),
00095 RPMVSF_NORSAHEADER = (1 << 11),
00096
00097 RPMVSF_NOSHA1 = (1 << 16),
00098 RPMVSF_NOMD5 = (1 << 17),
00099 RPMVSF_NODSA = (1 << 18),
00100 RPMVSF_NORSA = (1 << 19)
00101
00102 };
00103
00104 typedef rpmFlags rpmVSFlags;
00105
00106 #define _RPMVSF_NODIGESTS \
00107 ( RPMVSF_NOSHA1HEADER | \
00108 RPMVSF_NOMD5HEADER | \
00109 RPMVSF_NOSHA1 | \
00110 RPMVSF_NOMD5 )
00111
00112 #define _RPMVSF_NOSIGNATURES \
00113 ( RPMVSF_NODSAHEADER | \
00114 RPMVSF_NORSAHEADER | \
00115 RPMVSF_NODSA | \
00116 RPMVSF_NORSA )
00117
00118 #define _RPMVSF_NOHEADER \
00119 ( RPMVSF_NOSHA1HEADER | \
00120 RPMVSF_NOMD5HEADER | \
00121 RPMVSF_NODSAHEADER | \
00122 RPMVSF_NORSAHEADER )
00123
00124 #define _RPMVSF_NOPAYLOAD \
00125 ( RPMVSF_NOSHA1 | \
00126 RPMVSF_NOMD5 | \
00127 RPMVSF_NODSA | \
00128 RPMVSF_NORSA )
00129
00133 typedef enum rpmtsOpX_e {
00134 RPMTS_OP_TOTAL = 0,
00135 RPMTS_OP_CHECK = 1,
00136 RPMTS_OP_ORDER = 2,
00137 RPMTS_OP_FINGERPRINT = 3,
00138 RPMTS_OP_INSTALL = 5,
00139 RPMTS_OP_ERASE = 6,
00140 RPMTS_OP_SCRIPTLETS = 7,
00141 RPMTS_OP_COMPRESS = 8,
00142 RPMTS_OP_UNCOMPRESS = 9,
00143 RPMTS_OP_DIGEST = 10,
00144 RPMTS_OP_SIGNATURE = 11,
00145 RPMTS_OP_DBADD = 12,
00146 RPMTS_OP_DBREMOVE = 13,
00147 RPMTS_OP_DBGET = 14,
00148 RPMTS_OP_DBPUT = 15,
00149 RPMTS_OP_DBDEL = 16,
00150 RPMTS_OP_MAX = 17
00151 } rpmtsOpX;
00152
00163 int rpmtsCheck(rpmts ts);
00164
00181 int rpmtsOrder(rpmts ts);
00182
00200 int rpmtsRun(rpmts ts, rpmps okProbs, rpmprobFilterFlags ignoreSet);
00201
00207 rpmts rpmtsLink (rpmts ts);
00208
00214 int rpmtsCloseDB(rpmts ts);
00215
00222 int rpmtsOpenDB(rpmts ts, int dbmode);
00223
00231 int rpmtsInitDB(rpmts ts, int dbmode);
00232
00238 int rpmtsGetDBMode(rpmts ts);
00239
00247 int rpmtsSetDBMode(rpmts ts, int dbmode);
00248
00254 int rpmtsRebuildDB(rpmts ts);
00255
00261 int rpmtsVerifyDB(rpmts ts);
00262
00271 rpmdbMatchIterator rpmtsInitIterator(const rpmts ts, rpmDbiTagVal rpmtag,
00272 const void * keyp, size_t keylen);
00273
00282 rpmRC rpmtsImportPubkey(rpmts ts, const unsigned char * pkt, size_t pktlen);
00283
00290 rpmKeyring rpmtsGetKeyring(rpmts ts, int autoload);
00291
00300 int rpmtsSetKeyring(rpmts ts, rpmKeyring keyring);
00301
00309 int rpmtsSetSolveCallback(rpmts ts,
00310 int (*solve) (rpmts ts, rpmds ds, const void * data),
00311 const void * solveData);
00312
00318 rpmps rpmtsProblems(rpmts ts);
00319
00324 void rpmtsCleanProblems(rpmts ts);
00325
00330 void rpmtsClean(rpmts ts);
00331
00336 void rpmtsEmpty(rpmts ts);
00337
00343 rpmts rpmtsFree(rpmts ts);
00344
00350 rpmVSFlags rpmtsVSFlags(rpmts ts);
00351
00358 rpmVSFlags rpmtsSetVSFlags(rpmts ts, rpmVSFlags vsflags);
00359
00365 const char * rpmtsRootDir(rpmts ts);
00366
00373 int rpmtsSetRootDir(rpmts ts, const char * rootDir);
00374
00380 FD_t rpmtsScriptFd(rpmts ts);
00381
00387 void rpmtsSetScriptFd(rpmts ts, FD_t scriptFd);
00388
00394 struct selabel_handle * rpmtsSELabelHandle(rpmts ts);
00395
00402 rpmRC rpmtsSELabelInit(rpmts ts, const char * path);
00403
00408 void rpmtsSELabelFini(rpmts ts);
00409
00415 rpm_tid_t rpmtsGetTid(rpmts ts);
00416
00423 rpm_tid_t rpmtsSetTid(rpmts ts, rpm_tid_t tid);
00424
00430 rpmdb rpmtsGetRdb(rpmts ts);
00431
00441 void * rpmtsNotify(rpmts ts, rpmte te,
00442 rpmCallbackType what, rpm_loff_t amount, rpm_loff_t total);
00443
00449 int rpmtsNElements(rpmts ts);
00450
00457 rpmte rpmtsElement(rpmts ts, int ix);
00458
00464 rpmprobFilterFlags rpmtsFilterFlags(rpmts ts);
00465
00471 rpmtransFlags rpmtsFlags(rpmts ts);
00472
00479 rpmtransFlags rpmtsSetFlags(rpmts ts, rpmtransFlags transFlags);
00480
00486 rpm_color_t rpmtsColor(rpmts ts);
00487
00493 rpm_color_t rpmtsPrefColor(rpmts ts);
00494
00501 rpm_color_t rpmtsSetColor(rpmts ts, rpm_color_t color);
00502
00509 rpm_color_t rpmtsSetPrefColor(rpmts ts, rpm_color_t color);
00510
00517 rpmop rpmtsOp(rpmts ts, rpmtsOpX opx);
00518
00524 rpmPlugins rpmtsPlugins(rpmts ts);
00525
00537 int rpmtsSetNotifyCallback(rpmts ts,
00538 rpmCallbackFunction notify,
00539 rpmCallbackData notifyData);
00540
00545 rpmts rpmtsCreate(void);
00546
00560 int rpmtsAddInstallElement(rpmts ts, Header h,
00561 const fnpyKey key, int upgrade,
00562 rpmRelocation * relocs);
00563
00571 int rpmtsAddEraseElement(rpmts ts, Header h, int dboffset);
00572
00578 rpmtsi rpmtsiFree(rpmtsi tsi);
00579
00585 rpmtsi rpmtsiInit(rpmts ts);
00586
00593 rpmte rpmtsiNext(rpmtsi tsi, rpmElementTypes types);
00594
00595 #ifdef __cplusplus
00596 }
00597 #endif
00598
00599
00600 #endif