12 #if defined(_RPMTS_INTERNAL) 98 #define _noTransScripts \ 99 ( RPMTRANS_FLAG_NOPRETRANS | \ 100 RPMTRANS_FLAG_NOPRE | \ 101 RPMTRANS_FLAG_NOPOST | \ 102 RPMTRANS_FLAG_NOPREUN | \ 103 RPMTRANS_FLAG_NOPOSTUN | \ 104 RPMTRANS_FLAG_NOPOSTTRANS \ 107 #define _noTransTriggers \ 108 ( RPMTRANS_FLAG_NOTRIGGERPREIN | \ 109 RPMTRANS_FLAG_NOTRIGGERIN | \ 110 RPMTRANS_FLAG_NOTRIGGERUN | \ 111 RPMTRANS_FLAG_NOTRIGGERPOSTUN \ 159 #if defined(_RPMTS_INTERNAL) 163 #include "rpmkeyring.h" 174 typedef struct diskspaceInfo_s * rpmDiskSpaceInfo;
179 struct diskspaceInfo_s {
180 unsigned long f_bsize;
181 unsigned long f_frsize;
182 unsigned long long f_blocks;
183 unsigned long long f_bfree;
184 signed long long f_bavail;
185 unsigned long long f_files;
186 unsigned long long f_ffree;
187 signed long long f_favail;
188 unsigned long f_fsid;
189 unsigned long f_flag;
190 unsigned long f_namemax;
192 signed long long bneeded;
193 signed long long ineeded;
194 signed long long obneeded;
195 signed long long oineeded;
202 #define adj_fs_blocks(_nb) (((_nb) * 21) / 20) 204 #define BLOCK_ROUND(size, block) (((size) + (block) - 1) / (block)) 219 int (*solve) (
rpmts ts,
rpmds key,
const void * data)
222 const void * solveData;
225 const void ** suggests;
244 rpmDiskSpaceInfo dsi;
257 uint32_t * removedPackages;
258 int numRemovedPackages;
259 int allocedRemovedPackages;
263 int numAddedPackages;
267 rpmal erasedPackages;
268 int numErasedPackages;
273 rpmal availablePackages;
274 int numAvailablePackages;
278 rpmte relocateElement;
284 int unorderedSuccessors;
296 const char * rootDir;
298 const char * currDir;
315 struct rpmop_s ops[RPMTS_OP_MAX];
325 #if defined(__LCLINT__) 412 int running,
rpmte rbte)
426 #define rpmtsUnlink(_ts, _msg) \ 427 ((rpmts) rpmioUnlinkPoolItem((rpmioItem)(_ts), _msg, __FILE__, __LINE__)) 438 #define rpmtsLink(_ts, _msg) \ 439 ((rpmts) rpmioLinkPoolItem((rpmioItem)(_ts), _msg, __FILE__, __LINE__)) 506 const void * keyp,
size_t keylen)
578 int (*solve) (
rpmts ts,
rpmds ds,
const void * data),
579 const void * solveData)
661 #define rpmtsFree(_ts) \ 662 ((rpmts) rpmioFreePoolItem((rpmioItem)(_ts), __FUNCTION__, __FILE__, __LINE__)) 742 #if defined(_RPMTS_INTERNAL) 1102 const fnpyKey key,
int upgrade,
1121 #if defined(_RPMTS_PRINT) 1129 int rpmtsPrint(
rpmts ts, FILE * fp)
1141 fprintf(fp,
_(
"=== Transaction at %-24.24s (0x%08x):\n"), ctime(&ttid),tid);
rpmdepFlags_e
Bit(s) to control rpmtsCheck() and rpmtsOrder() operation.
int _rpmtsRun(rpmts ts, rpmps okProbs, rpmprobFilterFlags ignoreSet)
int rpmtsSetDBMode(rpmts ts, int dbmode)
Set dbmode of transaction set.
int rpmtsAddEraseElement(rpmts ts, Header h, uint32_t hdrNum)
Add package to be erased to transaction set.
void *(* rpmCallbackFunction)(const void *h, const rpmCallbackType what, const rpmuint64_t amount, const rpmuint64_t total, fnpyKey key, rpmCallbackData data)
static struct fsinfo * filesystems
void rpmtsSetType(rpmts ts, rpmTSType type)
Set transaction type.
OpenPGP constants and structures from RFC-2440.
#define rpmtsUnlink(_ts, _msg)
rpmps rpmtsProblems(rpmts ts)
Return current transaction set problems.
struct pgpDigParams_s * pgpDigParams
int rpmtsInitDSI(const rpmts ts)
Initialize disk space info for each and every mounted file systems.
enum rpmprobFilterFlags_e rpmprobFilterFlags
int rpmtsCloseDB(rpmts ts)
Close the database used by the transaction.
rpmte rpmtsRelocateElement(rpmts ts)
Get current relocate transaction element.
rpmuint32_t rpmtsGetTid(rpmts ts)
Get transaction id, i.e.
tsmStage rpmtsSetGoal(rpmts ts, tsmStage goal)
Set goal of transaction set.
rpmuint32_t rpmtsSetColor(rpmts ts, rpmuint32_t color)
Set color bits of transaction set.
int(* rpmtsCheck)(rpmts ts)
Perform dependency resolution on the transaction set.
Spec rpmtsSetSpec(rpmts ts, Spec spec)
Set a spec control structure in transaction set.
static int rpmtsVerifyDB(rpmts ts)
Verify the database used by the transaction.
int(* rpmtsOrder)(rpmts ts)
Determine package order in a transaction set according to dependencies.
static rpmVSFlags vsflags
enum rpmCallbackType_e rpmCallbackType
Bit(s) to identify progress callbacks.
void * rpmtsNotify(rpmts ts, rpmte te, rpmCallbackType what, rpmuint64_t amount, rpmuint64_t total)
Perform transaction progress notify callback.
Hash table implemenation.
enum rpmTSType_e rpmTSType
Transaction Types.
int rpmtsOpenSDB(rpmts ts, int dbmode)
Open the database used by the transaction to solve dependencies.
rpmop rpmtsOp(rpmts ts, rpmtsOpX opx)
Retrieve operation timestamp from a transaction set.
int rpmtsAvailable(rpmts ts, const rpmds ds)
Attempt to solve a needed dependency using memory resident tables.
enum rpmtsOpX_e rpmtsOpX
Indices for timestamps.
int rpmtsCloseSDB(rpmts ts)
Close the database used by the transaction to solve dependencies.
int rpmtsUnorderedSuccessors(rpmts ts, int first)
Set index of 1st element of successors.
rpmtsi rpmtsiFree(rpmtsi tsi)
Destroy transaction element iterator.
struct rpmtsi_s * rpmtsi
Transaction element iterator.
int rpmtsSetSolveCallback(rpmts ts, int(*solve)(rpmts ts, rpmds ds, const void *data), const void *solveData)
Set dependency solver callback.
struct rpmps_s * rpmps
Transaction problems found while processing a transaction set/.
rpmElementType rpmteType(rpmte te)
Retrieve type of transaction element.
rpmRC rpmtsRollback(rpmts rbts, rpmprobFilterFlags ignoreSet, int running, rpmte rbte)
Rollback a failed transaction.
const char * rpmtsRootDir(rpmts ts)
Get transaction rootDir, i.e.
struct rpmds_s * rpmds
Dependency tag sets from a header, so that a header can be discarded early.
int rpmtsOpenDB(rpmts ts, int dbmode)
Open the database used by the transaction.
struct rpmPRCO_s * rpmPRCO
Container for commonly extracted dependency set(s).
struct rpmte_s * rpmte
An element of a transaction set, i.e.
int rpmtsSetChrootDone(rpmts ts, int chrootDone)
Set chrootDone flag, i.e.
rpmdepFlags rpmtsSetDFlags(rpmts ts, rpmdepFlags depFlags)
Set dependency flags, i.e.
rpmTSType rpmtsType(rpmts ts)
Return the type of a transaction.
enum rpmElementType_e rpmElementType
Transaction element type.
void rpmtsEmpty(rpmts ts)
Re-create an empty transaction set.
int rpmtsChrootDone(rpmts ts)
Get chrootDone flag, i.e.
int _rpmtsCheck(rpmts ts)
void rpmtsCleanDig(rpmts ts)
Free signature verification data.
Structures and prototypes used for an "rpmps" problem set.
const char * rpmtsCurrDir(rpmts ts)
Get transaction currDir, i.e.
rpmte rpmtsSetRelocateElement(rpmts ts, rpmte relocateElement)
Set current relocate transaction element.
rpmtransFlags rpmtsFlags(rpmts ts)
Get transaction flags, i.e.
static int rpmtsInitDB(rpmts ts, int dbmode)
Initialize the database used by the transaction.
enum rpmdepFlags_e rpmdepFlags
Bit(s) to control rpmtsCheck() and rpmtsOrder() operation.
unsigned long long rpmuint64_t
int rpmtsSetKeyring(rpmts ts, void *_keyring)
Set transaction keyring.
enum pgpVSFlags_e pgpVSFlags
Bit(s) to control digest and signature verification.
Set of available packages, items, and directories.
void * rpmtsGetKeyring(rpmts ts, int autoload)
Get transaction keyring.
rpmprobFilterFlags rpmtsFilterFlags(rpmts ts)
Get problem ignore bit mask, i.e.
The FD_t File Handle data structure.
struct rpmdb_s * rpmdb
Database of headers and tag value indices.
int _orgrpmtsOrder(rpmts ts)
const char * rpmteNEVRA(rpmte te)
Retrieve name-version-release.arch string from transaction element.
The structure used to store values parsed from a spec file.
pgpVSFlags rpmVSFlags
Bit(s) to control digest and signature verification.
int(* rpmtsRun)(rpmts ts, rpmps okProbs, rpmprobFilterFlags ignoreSet)
Process all package elements in a transaction set.
rpmte rpmtsElement(rpmts ts, int ix)
Return (ordered) transaction set element.
rpmuint32_t rpmtsPrefColor(rpmts ts)
Retrieve preferred file color.
rpmRC rpmtsFindPubkey(rpmts ts, void *_dig)
Retrieve pubkey from rpm database.
rpmuint32_t rpmtsSetTid(rpmts ts, rpmuint32_t tid)
Set transaction id, i.e.
rpmmi rpmtsInitIterator(const rpmts ts, rpmTag rpmtag, const void *keyp, size_t keylen)
Return transaction database iterator.
Cumulative statistics for an operation.
int rpmtsDBMode(rpmts ts)
Retrieve dbmode of transaction set.
rpmte rpmtsiNext(rpmtsi tsi, rpmElementType type)
Return next transaction element of type.
void rpmtsUpdateDSI(const rpmts ts, dev_t dev, rpmuint32_t fileSize, rpmuint32_t prevSize, rpmuint32_t fixupSize, int _action)
Update disk space info for a file.
rpmdb rpmtsGetRdb(rpmts ts)
Get transaction set database handle.
rpmuint32_t rpmtsARBGoal(rpmts ts)
Return the autorollback goal.
void rpmtsSetCurrDir(rpmts ts, const char *currDir)
Set transaction currDir, i.e.
enum rpmRC_e rpmRC
RPM return codes.
int rpmtsSolve(rpmts ts, rpmds ds, const void *data)
Attempt to solve a needed dependency using the solve database.
int rpmtsNElements(rpmts ts)
Return number of (ordered) transaction set elements.
enum rpmtransFlags_e rpmtransFlags
Bit(s) to control rpmtsRun() operation.
rpmVSFlags rpmtsSetVSFlags(rpmts ts, rpmVSFlags vsflags)
Set verify signatures flag(s).
void rpmtsSetRootDir(rpmts ts, const char *rootDir)
Set transaction rootDir, i.e.
struct rpmts_s * rpmts
The RPM Transaction Set.
rpmPRCO rpmtsPRCO(rpmts ts)
Get transaction set dependencies.
rpmtransFlags_e
Bit(s) to control rpmtsRun() operation.
Spec rpmtsSpec(rpmts ts)
Get spec control structure from transaction set.
rpmtsOpX_e
Indices for timestamps.
void rpmtsCheckDSIProblems(const rpmts ts, const rpmte te)
Check a transaction element for disk space problems.
rpmVSFlags rpmtsVSFlags(rpmts ts)
Get verify signatures flag(s).
Structures used for managing added/available package lists.
void rpmtsSetARBGoal(rpmts ts, rpmuint32_t goal)
Set autorollback goal.
int rpmtsRebuildDB(rpmts ts)
Rebuild the database used by the transaction.
int _rpmtsOrder(rpmts ts)
rpmTSType_e
Transaction Types.
void rpmtsClean(rpmts ts)
Free memory needed only for dependency checks and ordering.
rpmdepFlags rpmtsDFlags(rpmts ts)
Get dependency flags, i.e.
rpmtsi rpmtsiInit(rpmts ts)
Create transaction element iterator.
int rpmtsAddInstallElement(rpmts ts, Header h, const fnpyKey key, int upgrade, rpmRelocation relocs)
Add package to be installed to transaction set.
rpmtransFlags rpmtsSetFlags(rpmts ts, rpmtransFlags transFlags)
Set transaction flags, i.e.
rpmts rpmtsCreate(void)
Create an empty transaction set.
rpmuint32_t rpmtsColor(rpmts ts)
Retrieve color bits of transaction set.
pgpDig rpmtsDig(rpmts ts)
Get OpenPGP packet parameters, i.e.
pgpDigParams rpmtsPubkey(const rpmts ts)
Return OpenPGP pubkey constants.
int rpmtsSetNotifyCallback(rpmts ts, rpmCallbackFunction notify, rpmCallbackData notifyData)
Set transaction notify callback function and argument.
int rpmtsSELinuxEnabled(rpmts ts)
Get selinuxEnabled flag, i.e.
void rpmtsSetScriptFd(rpmts ts, FD_t scriptFd)
FD_t rpmtsScriptFd(rpmts ts)
tsmStage rpmtsGoal(rpmts ts)
Retrieve goal of transaction set.
#define rpmtsLink(_ts, _msg)