00001 #ifndef H_RPMTS
00002 #define H_RPMTS
00003
00009 #include <sys/types.h>
00010
00011 #include <rpm/rpmtypes.h>
00012 #include <rpm/rpmps.h>
00013 #include <rpm/rpmsw.h>
00014 #include <rpm/rpmpgp.h>
00015 #include <rpm/rpmfi.h>
00016 #include <rpm/rpmcallback.h>
00017
00018 #ifdef __cplusplus
00019 extern "C" {
00020 #endif
00021
00022 extern int _rpmts_debug;
00023 extern int _rpmts_stats;
00024
00028 typedef 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),
00047
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
00059 RPMTRANS_FLAG_NOMD5 = (1 << 27),
00060 RPMTRANS_FLAG_NOSUGGEST = (1 << 28),
00061 RPMTRANS_FLAG_ADDINDEPS = (1 << 29),
00062 RPMTRANS_FLAG_NOCONFIGS = (1 << 30),
00063 RPMTRANS_FLAG_DEPLOOPS = (1 << 31)
00064 } rpmtransFlags;
00065
00066 #define _noTransScripts \
00067 ( RPMTRANS_FLAG_NOPRE | \
00068 RPMTRANS_FLAG_NOPOST | \
00069 RPMTRANS_FLAG_NOPREUN | \
00070 RPMTRANS_FLAG_NOPOSTUN \
00071 )
00072
00073 #define _noTransTriggers \
00074 ( RPMTRANS_FLAG_NOTRIGGERPREIN | \
00075 RPMTRANS_FLAG_NOTRIGGERIN | \
00076 RPMTRANS_FLAG_NOTRIGGERUN | \
00077 RPMTRANS_FLAG_NOTRIGGERPOSTUN \
00078 )
00079
00083 typedef enum rpmVSFlags_e {
00084 RPMVSF_DEFAULT = 0,
00085 RPMVSF_NOHDRCHK = (1 << 0),
00086 RPMVSF_NEEDPAYLOAD = (1 << 1),
00087
00088 RPMVSF_NOSHA1HEADER = (1 << 8),
00089 RPMVSF_NOMD5HEADER = (1 << 9),
00090 RPMVSF_NODSAHEADER = (1 << 10),
00091 RPMVSF_NORSAHEADER = (1 << 11),
00092
00093 RPMVSF_NOSHA1 = (1 << 16),
00094 RPMVSF_NOMD5 = (1 << 17),
00095 RPMVSF_NODSA = (1 << 18),
00096 RPMVSF_NORSA = (1 << 19)
00097
00098 } rpmVSFlags;
00099
00100 #define _RPMVSF_NODIGESTS \
00101 ( RPMVSF_NOSHA1HEADER | \
00102 RPMVSF_NOMD5HEADER | \
00103 RPMVSF_NOSHA1 | \
00104 RPMVSF_NOMD5 )
00105
00106 #define _RPMVSF_NOSIGNATURES \
00107 ( RPMVSF_NODSAHEADER | \
00108 RPMVSF_NORSAHEADER | \
00109 RPMVSF_NODSA | \
00110 RPMVSF_NORSA )
00111
00112 #define _RPMVSF_NOHEADER \
00113 ( RPMVSF_NOSHA1HEADER | \
00114 RPMVSF_NOMD5HEADER | \
00115 RPMVSF_NODSAHEADER | \
00116 RPMVSF_NORSAHEADER )
00117
00118 #define _RPMVSF_NOPAYLOAD \
00119 ( RPMVSF_NOSHA1 | \
00120 RPMVSF_NOMD5 | \
00121 RPMVSF_NODSA | \
00122 RPMVSF_NORSA )
00123
00127 typedef enum rpmtsOpX_e {
00128 RPMTS_OP_TOTAL = 0,
00129 RPMTS_OP_CHECK = 1,
00130 RPMTS_OP_ORDER = 2,
00131 RPMTS_OP_FINGERPRINT = 3,
00132 RPMTS_OP_INSTALL = 5,
00133 RPMTS_OP_ERASE = 6,
00134 RPMTS_OP_SCRIPTLETS = 7,
00135 RPMTS_OP_COMPRESS = 8,
00136 RPMTS_OP_UNCOMPRESS = 9,
00137 RPMTS_OP_DIGEST = 10,
00138 RPMTS_OP_SIGNATURE = 11,
00139 RPMTS_OP_DBADD = 12,
00140 RPMTS_OP_DBREMOVE = 13,
00141 RPMTS_OP_DBGET = 14,
00142 RPMTS_OP_DBPUT = 15,
00143 RPMTS_OP_DBDEL = 16,
00144 RPMTS_OP_MAX = 17
00145 } rpmtsOpX;
00146
00157 int rpmtsCheck(rpmts ts);
00158
00175 int rpmtsOrder(rpmts ts);
00176
00194 int rpmtsRun(rpmts ts, rpmps okProbs, rpmprobFilterFlags ignoreSet);
00195
00202 rpmts rpmtsUnlink (rpmts ts,
00203 const char * msg);
00204
00211 rpmts rpmtsLink (rpmts ts, const char * msg);
00212
00218 int rpmtsCloseDB(rpmts ts);
00219
00226 int rpmtsOpenDB(rpmts ts, int dbmode);
00227
00235 int rpmtsInitDB(rpmts ts, int dbmode);
00236
00242 int rpmtsGetDBMode(rpmts ts);
00243
00251 int rpmtsSetDBMode(rpmts ts, int dbmode);
00252
00258 int rpmtsRebuildDB(rpmts ts);
00259
00265 int rpmtsVerifyDB(rpmts ts);
00266
00275 rpmdbMatchIterator rpmtsInitIterator(const rpmts ts, rpmTag rpmtag,
00276 const void * keyp, size_t keylen);
00277
00284 rpmRC rpmtsFindPubkey(rpmts ts, pgpDig dig) RPM_GNUC_DEPRECATED;
00285
00294 rpmRC rpmtsImportPubkey(rpmts ts, const unsigned char * pkt, size_t pktlen);
00295
00302 rpmKeyring rpmtsGetKeyring(rpmts ts, int autoload);
00303
00312 int rpmtsSetKeyring(rpmts ts, rpmKeyring keyring);
00313
00321 int rpmtsSetSolveCallback(rpmts ts,
00322 int (*solve) (rpmts ts, rpmds ds, const void * data),
00323 const void * solveData);
00324
00330 rpmps rpmtsProblems(rpmts ts);
00331
00336 void rpmtsCleanProblems(rpmts ts);
00337
00342 void rpmtsClean(rpmts ts);
00343
00348 void rpmtsEmpty(rpmts ts);
00349
00355 rpmts rpmtsFree(rpmts ts);
00356
00362 rpmVSFlags rpmtsVSFlags(rpmts ts);
00363
00370 rpmVSFlags rpmtsSetVSFlags(rpmts ts, rpmVSFlags vsflags);
00371
00378 int rpmtsUnorderedSuccessors(rpmts ts, int first);
00379
00385 const char * rpmtsRootDir(rpmts ts);
00386
00393 int rpmtsSetRootDir(rpmts ts, const char * rootDir);
00394
00400 const char * rpmtsCurrDir(rpmts ts);
00401
00407 void rpmtsSetCurrDir(rpmts ts, const char * currDir);
00408
00414 FD_t rpmtsScriptFd(rpmts ts);
00415
00421 void rpmtsSetScriptFd(rpmts ts, FD_t scriptFd);
00422
00428 int rpmtsSELinuxEnabled(rpmts ts);
00429
00435 int rpmtsChrootDone(rpmts ts);
00436
00443 int rpmtsSetChrootDone(rpmts ts, int chrootDone);
00444
00450 rpm_tid_t rpmtsGetTid(rpmts ts);
00451
00458 rpm_tid_t rpmtsSetTid(rpmts ts, rpm_tid_t tid);
00459
00465 rpmdb rpmtsGetRdb(rpmts ts);
00466
00472 int rpmtsInitDSI(const rpmts ts);
00473
00483 void rpmtsUpdateDSI(const rpmts ts, dev_t dev,
00484 rpm_loff_t fileSize, rpm_loff_t prevSize, rpm_loff_t fixupSize,
00485 rpmFileAction action);
00486
00492 void rpmtsCheckDSIProblems(const rpmts ts, const rpmte te);
00493
00503 void * rpmtsNotify(rpmts ts, rpmte te,
00504 rpmCallbackType what, rpm_loff_t amount, rpm_loff_t total);
00505
00511 int rpmtsNElements(rpmts ts);
00512
00519 rpmte rpmtsElement(rpmts ts, int ix);
00520
00526 rpmprobFilterFlags rpmtsFilterFlags(rpmts ts);
00527
00533 rpmtransFlags rpmtsFlags(rpmts ts);
00534
00541 rpmtransFlags rpmtsSetFlags(rpmts ts, rpmtransFlags transFlags);
00542
00548 rpmSpec rpmtsSpec(rpmts ts);
00549
00556 rpmSpec rpmtsSetSpec(rpmts ts, rpmSpec spec);
00557
00563 rpm_color_t rpmtsColor(rpmts ts);
00564
00570 rpm_color_t rpmtsPrefColor(rpmts ts);
00571
00578 rpm_color_t rpmtsSetColor(rpmts ts, rpm_color_t color);
00579
00586 rpmop rpmtsOp(rpmts ts, rpmtsOpX opx);
00587
00599 int rpmtsSetNotifyCallback(rpmts ts,
00600 rpmCallbackFunction notify,
00601 rpmCallbackData notifyData);
00602
00607 rpmts rpmtsCreate(void);
00608
00622 int rpmtsAddInstallElement(rpmts ts, Header h,
00623 const fnpyKey key, int upgrade,
00624 rpmRelocation * relocs);
00625
00633 int rpmtsAddEraseElement(rpmts ts, Header h, int dboffset);
00634
00643 int rpmtsGetKeys(rpmts ts,
00644 fnpyKey ** ep,
00645 int * nep);
00646
00647 #ifdef __cplusplus
00648 }
00649 #endif
00650
00651
00652 #endif