rpm
4.10.0
|
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 /* bit 7 unused */ 00038 RPMTRANS_FLAG_NOCONTEXTS = (1 << 8), 00039 /* bits 9-15 unused */ 00040 RPMTRANS_FLAG_NOTRIGGERPREIN= (1 << 16), 00041 RPMTRANS_FLAG_NOPRE = (1 << 17), 00042 RPMTRANS_FLAG_NOPOST = (1 << 18), 00043 RPMTRANS_FLAG_NOTRIGGERIN = (1 << 19), 00044 RPMTRANS_FLAG_NOTRIGGERUN = (1 << 20), 00045 RPMTRANS_FLAG_NOPREUN = (1 << 21), 00046 RPMTRANS_FLAG_NOPOSTUN = (1 << 22), 00047 RPMTRANS_FLAG_NOTRIGGERPOSTUN = (1 << 23), 00048 /* bits 24-25 unused */ 00049 RPMTRANS_FLAG_NOCOLLECTIONS = (1 << 26), 00050 RPMTRANS_FLAG_NOMD5 = (1 << 27), 00051 RPMTRANS_FLAG_NOFILEDIGEST = (1 << 27), 00052 /* bits 28-29 unused */ 00053 RPMTRANS_FLAG_NOCONFIGS = (1 << 30), 00054 RPMTRANS_FLAG_DEPLOOPS = (1 << 31) 00055 }; 00056 00057 typedef rpmFlags rpmtransFlags; 00058 00059 #define _noTransScripts \ 00060 ( RPMTRANS_FLAG_NOPRE | \ 00061 RPMTRANS_FLAG_NOPOST | \ 00062 RPMTRANS_FLAG_NOPREUN | \ 00063 RPMTRANS_FLAG_NOPOSTUN \ 00064 ) 00065 00066 #define _noTransTriggers \ 00067 ( RPMTRANS_FLAG_NOTRIGGERPREIN | \ 00068 RPMTRANS_FLAG_NOTRIGGERIN | \ 00069 RPMTRANS_FLAG_NOTRIGGERUN | \ 00070 RPMTRANS_FLAG_NOTRIGGERPOSTUN \ 00071 ) 00072 00073 /* Avoid unnecessary breakage for stuff referring to these unused flags */ 00074 #define RPMTRANS_FLAG_NOPAYLOAD 0 00075 #define RPMTRANS_FLAG_APPLYONLY 0 00076 #define RPMTRANS_FLAG_KEEPOBSOLETE 0 00077 #define RPMTRANS_FLAG_DIRSTASH 0 00078 #define RPMTRANS_FLAG_REPACKAGE 0 00079 #define RPMTRANS_FLAG_PKGCOMMIT 0 00080 #define RPMTRANS_FLAG_PKGUNDO 0 00081 #define RPMTRANS_FLAG_COMMIT 0 00082 #define RPMTRANS_FLAG_UNDO 0 00083 #define RPMTRANS_FLAG_REVERSE 0 00084 #define RPMTRANS_FLAG_NOSUGGEST 0 00085 #define RPMTRANS_FLAG_ADDINDEPS 0 00086 00090 enum rpmVSFlags_e { 00091 RPMVSF_DEFAULT = 0, 00092 RPMVSF_NOHDRCHK = (1 << 0), 00093 RPMVSF_NEEDPAYLOAD = (1 << 1), 00094 /* bit(s) 2-7 unused */ 00095 RPMVSF_NOSHA1HEADER = (1 << 8), 00096 RPMVSF_NOMD5HEADER = (1 << 9), /* unimplemented */ 00097 RPMVSF_NODSAHEADER = (1 << 10), 00098 RPMVSF_NORSAHEADER = (1 << 11), /* unimplemented */ 00099 /* bit(s) 12-15 unused */ 00100 RPMVSF_NOSHA1 = (1 << 16), /* unimplemented */ 00101 RPMVSF_NOMD5 = (1 << 17), 00102 RPMVSF_NODSA = (1 << 18), 00103 RPMVSF_NORSA = (1 << 19) 00104 /* bit(s) 16-31 unused */ 00105 }; 00106 00107 typedef rpmFlags rpmVSFlags; 00108 00109 #define _RPMVSF_NODIGESTS \ 00110 ( RPMVSF_NOSHA1HEADER | \ 00111 RPMVSF_NOMD5HEADER | \ 00112 RPMVSF_NOSHA1 | \ 00113 RPMVSF_NOMD5 ) 00114 00115 #define _RPMVSF_NOSIGNATURES \ 00116 ( RPMVSF_NODSAHEADER | \ 00117 RPMVSF_NORSAHEADER | \ 00118 RPMVSF_NODSA | \ 00119 RPMVSF_NORSA ) 00120 00121 #define _RPMVSF_NOHEADER \ 00122 ( RPMVSF_NOSHA1HEADER | \ 00123 RPMVSF_NOMD5HEADER | \ 00124 RPMVSF_NODSAHEADER | \ 00125 RPMVSF_NORSAHEADER ) 00126 00127 #define _RPMVSF_NOPAYLOAD \ 00128 ( RPMVSF_NOSHA1 | \ 00129 RPMVSF_NOMD5 | \ 00130 RPMVSF_NODSA | \ 00131 RPMVSF_NORSA ) 00132 00136 typedef enum rpmtsOpX_e { 00137 RPMTS_OP_TOTAL = 0, 00138 RPMTS_OP_CHECK = 1, 00139 RPMTS_OP_ORDER = 2, 00140 RPMTS_OP_FINGERPRINT = 3, 00141 RPMTS_OP_INSTALL = 5, 00142 RPMTS_OP_ERASE = 6, 00143 RPMTS_OP_SCRIPTLETS = 7, 00144 RPMTS_OP_COMPRESS = 8, 00145 RPMTS_OP_UNCOMPRESS = 9, 00146 RPMTS_OP_DIGEST = 10, 00147 RPMTS_OP_SIGNATURE = 11, 00148 RPMTS_OP_DBADD = 12, 00149 RPMTS_OP_DBREMOVE = 13, 00150 RPMTS_OP_DBGET = 14, 00151 RPMTS_OP_DBPUT = 15, 00152 RPMTS_OP_DBDEL = 16, 00153 RPMTS_OP_MAX = 17 00154 } rpmtsOpX; 00155 00166 int rpmtsCheck(rpmts ts); 00167 00184 int rpmtsOrder(rpmts ts); 00185 00203 int rpmtsRun(rpmts ts, rpmps okProbs, rpmprobFilterFlags ignoreSet); 00204 00210 rpmts rpmtsLink (rpmts ts); 00211 00217 int rpmtsCloseDB(rpmts ts); 00218 00225 int rpmtsOpenDB(rpmts ts, int dbmode); 00226 00234 int rpmtsInitDB(rpmts ts, int dbmode); 00235 00241 int rpmtsGetDBMode(rpmts ts); 00242 00250 int rpmtsSetDBMode(rpmts ts, int dbmode); 00251 00257 int rpmtsRebuildDB(rpmts ts); 00258 00264 int rpmtsVerifyDB(rpmts ts); 00265 00274 rpmdbMatchIterator rpmtsInitIterator(const rpmts ts, rpmDbiTagVal rpmtag, 00275 const void * keyp, size_t keylen); 00276 00285 rpmRC rpmtsImportPubkey(rpmts ts, const unsigned char * pkt, size_t pktlen); 00286 00293 rpmKeyring rpmtsGetKeyring(rpmts ts, int autoload); 00294 00303 int rpmtsSetKeyring(rpmts ts, rpmKeyring keyring); 00304 00312 int rpmtsSetSolveCallback(rpmts ts, 00313 int (*solve) (rpmts ts, rpmds ds, const void * data), 00314 const void * solveData); 00315 00321 rpmps rpmtsProblems(rpmts ts); 00322 00327 void rpmtsCleanProblems(rpmts ts); 00328 00333 void rpmtsClean(rpmts ts); 00334 00339 void rpmtsEmpty(rpmts ts); 00340 00346 rpmts rpmtsFree(rpmts ts); 00347 00353 rpmVSFlags rpmtsVSFlags(rpmts ts); 00354 00361 rpmVSFlags rpmtsSetVSFlags(rpmts ts, rpmVSFlags vsflags); 00362 00368 const char * rpmtsRootDir(rpmts ts); 00369 00376 int rpmtsSetRootDir(rpmts ts, const char * rootDir); 00377 00383 FD_t rpmtsScriptFd(rpmts ts); 00384 00390 void rpmtsSetScriptFd(rpmts ts, FD_t scriptFd); 00391 00397 rpm_tid_t rpmtsGetTid(rpmts ts); 00398 00405 rpm_tid_t rpmtsSetTid(rpmts ts, rpm_tid_t tid); 00406 00412 rpmdb rpmtsGetRdb(rpmts ts); 00413 00423 void * rpmtsNotify(rpmts ts, rpmte te, 00424 rpmCallbackType what, rpm_loff_t amount, rpm_loff_t total); 00425 00431 int rpmtsNElements(rpmts ts); 00432 00439 rpmte rpmtsElement(rpmts ts, int ix); 00440 00446 rpmprobFilterFlags rpmtsFilterFlags(rpmts ts); 00447 00453 rpmtransFlags rpmtsFlags(rpmts ts); 00454 00461 rpmtransFlags rpmtsSetFlags(rpmts ts, rpmtransFlags transFlags); 00462 00468 rpm_color_t rpmtsColor(rpmts ts); 00469 00475 rpm_color_t rpmtsPrefColor(rpmts ts); 00476 00483 rpm_color_t rpmtsSetColor(rpmts ts, rpm_color_t color); 00484 00491 rpm_color_t rpmtsSetPrefColor(rpmts ts, rpm_color_t color); 00492 00499 rpmop rpmtsOp(rpmts ts, rpmtsOpX opx); 00500 00506 rpmPlugins rpmtsPlugins(rpmts ts); 00507 00519 int rpmtsSetNotifyCallback(rpmts ts, 00520 rpmCallbackFunction notify, 00521 rpmCallbackData notifyData); 00522 00527 rpmts rpmtsCreate(void); 00528 00542 int rpmtsAddInstallElement(rpmts ts, Header h, 00543 const fnpyKey key, int upgrade, 00544 rpmRelocation * relocs); 00545 00553 int rpmtsAddEraseElement(rpmts ts, Header h, int dboffset); 00554 00560 rpmtsi rpmtsiFree(rpmtsi tsi); 00561 00567 rpmtsi rpmtsiInit(rpmts ts); 00568 00575 rpmte rpmtsiNext(rpmtsi tsi, rpmElementTypes types); 00576 00577 #ifdef __cplusplus 00578 } 00579 #endif 00580 00581 00582 #endif /* H_RPMTS */