Data Structures | |
| struct | diskspaceInfo_s |
| struct | rpmts_s |
| The set of packages to be installed/removed atomically. More... | |
Files | |
| file | depends.c |
| file | psm.c |
Package state machine to handle a package from a transaction set. | |
| file | rpmte.h |
Structures used for an "rpmte" transaction element. | |
| file | rpmts.h |
Structures and prototypes used for an "rpmts" transaction set. | |
| file | rpmts.h |
Structures and prototypes used for an "rpmts" transaction set. | |
| file | rpmvercmp.c |
| file | transaction.c |
Defines | |
| #define | adj_fs_blocks(_nb) (((_nb) * 21) / 20) |
| Adjust for root only reserved space. | |
Typedefs | |
| typedef struct diskspaceInfo_s * | rpmDiskSpaceInfo |
| typedef enum tsStage_e | tsmStage |
Enumerations | |
| enum | tsStage_e { TSM_UNKNOWN = 0, TSM_INSTALL = 7, TSM_ERASE = 8 } |
Functions | |
| rpmRC | rpmtsScoreInit (rpmts runningTS, rpmts rollbackTS) |
| initialize rpmtsScore for running transaction and autorollback transaction. | |
| rpmtsScore | rpmtsScoreFree (rpmtsScore score) |
| Free rpmtsScore provided no more references exist against it. | |
| rpmtsScore | rpmtsGetScore (rpmts ts) |
| Get rpmtsScore from transaction. | |
| rpmtsScoreEntry | rpmtsScoreGetEntry (rpmtsScore score, const char *N) |
| Get rpmtsScoreEntry from rpmtsScore. | |
| int | rpmtsCheck (rpmts ts) |
| Perform dependency resolution on the transaction set. | |
| int | rpmtsOrder (rpmts ts) |
| Determine package order in a transaction set according to dependencies. | |
| int | rpmtsRun (rpmts ts, rpmps okProbs, rpmprobFilterFlags ignoreSet) |
| Process all package elements in a transaction set. | |
| rpmts | rpmtsUnlink (rpmts ts, const char *msg) |
| Unreference a transaction instance. | |
| rpmts | rpmtsLink (rpmts ts, const char *msg) |
| Reference a transaction set instance. | |
| int | rpmtsCloseDB (rpmts ts) |
| Close the database used by the transaction. | |
| int | rpmtsOpenDB (rpmts ts, int dbmode) |
| Open the database used by the transaction. | |
| int | rpmtsInitDB (rpmts ts, int dbmode) |
| Initialize the database used by the transaction. | |
| int | rpmtsRebuildDB (rpmts ts) |
| Rebuild the database used by the transaction. | |
| int | rpmtsVerifyDB (rpmts ts) |
| Verify the database used by the transaction. | |
| rpmdbMatchIterator | rpmtsInitIterator (const rpmts ts, rpmTag rpmtag, const void *keyp, size_t keylen) |
| Return transaction database iterator. | |
| int | rpmtsCloseSDB (rpmts ts) |
| Close the database used by the transaction to solve dependencies. | |
| int | rpmtsOpenSDB (rpmts ts, int dbmode) |
| Open the database used by the transaction to solve dependencies. | |
| void | rpmtsCleanDig (rpmts ts) |
| Free signature verification data. | |
| void | rpmtsClean (rpmts ts) |
| Free memory needed only for dependency checks and ordering. | |
| void | rpmtsEmpty (rpmts ts) |
| Re-create an empty transaction set. | |
| rpmts | rpmtsFree (rpmts ts) |
| Destroy transaction set, closing the database as well. | |
| rpmVSFlags | rpmtsVSFlags (rpmts ts) |
| Get verify signatures flag(s). | |
| rpmVSFlags | rpmtsSetVSFlags (rpmts ts, rpmVSFlags vsflags) |
| Set verify signatures flag(s). | |
| int | rpmtsUnorderedSuccessors (rpmts ts, int first) |
| Set index of 1st element of successors. | |
| const char * | rpmtsRootDir (rpmts ts) |
| Get transaction rootDir, i.e. | |
| void | rpmtsSetRootDir (rpmts ts, const char *rootDir) |
| Set transaction rootDir, i.e. | |
| const char * | rpmtsCurrDir (rpmts ts) |
| Get transaction currDir, i.e. | |
| void | rpmtsSetCurrDir (rpmts ts, const char *currDir) |
| Set transaction currDir, i.e. | |
| FD_t | rpmtsScriptFd (rpmts ts) |
| Get transaction script file handle, i.e. | |
| void | rpmtsSetScriptFd (rpmts ts, FD_t scriptFd) |
| Set transaction script file handle, i.e. | |
| int | rpmtsSELinuxEnabled (rpmts ts) |
| Get selinuxEnabled flag, i.e. | |
| int | rpmtsChrootDone (rpmts ts) |
| Get chrootDone flag, i.e. | |
| int | rpmtsSetChrootDone (rpmts ts, int chrootDone) |
| Set chrootDone flag, i.e. | |
| rpmsx | rpmtsREContext (const rpmts ts) |
| Get file security context patterns. | |
| int | rpmtsSetREContext (rpmts ts, rpmsx sx) |
| Get file security context patterns. | |
| int_32 | rpmtsGetTid (rpmts ts) |
| Get transaction id, i.e. | |
| int_32 | rpmtsSetTid (rpmts ts, int_32 tid) |
| Set transaction id, i.e. | |
| int_32 | rpmtsSigtag (const rpmts ts) |
| Get signature tag. | |
| int_32 | rpmtsSigtype (const rpmts ts) |
| Get signature tag type. | |
| const void * | rpmtsSig (const rpmts ts) |
| Get signature tag data, i.e. | |
| int_32 | rpmtsSiglen (const rpmts ts) |
| Get signature tag data length, i.e. | |
| int | rpmtsSetSig (rpmts ts, int_32 sigtag, int_32 sigtype, const void *sig, int_32 siglen) |
| Set signature tag info, i.e. | |
| pgpDig | rpmtsDig (rpmts ts) |
| Get OpenPGP packet parameters, i.e. | |
| pgpDigParams | rpmtsSignature (const rpmts ts) |
| Get OpenPGP signature constants. | |
| pgpDigParams | rpmtsPubkey (const rpmts ts) |
| Get OpenPGP pubkey constants. | |
| rpmdb | rpmtsGetRdb (rpmts ts) |
| Get transaction set database handle. | |
| int | rpmtsInitDSI (const rpmts ts) |
| Initialize disk space info for each and every mounted file systems. | |
| void | rpmtsUpdateDSI (const rpmts ts, dev_t dev, uint_32 fileSize, uint_32 prevSize, uint_32 fixupSize, fileAction action) |
| Update disk space info for a file. | |
| void | rpmtsCheckDSIProblems (const rpmts ts, const rpmte te) |
| Check a transaction element for disk space problems. | |
| rpmprobFilterFlags | rpmtsFilterFlags (rpmts ts) |
| Get problem ignore bit mask, i.e. | |
| rpmtransFlags | rpmtsFlags (rpmts ts) |
| Get transaction flags, i.e. | |
| rpmtransFlags | rpmtsSetFlags (rpmts ts, rpmtransFlags transFlags) |
| Set transaction flags, i.e. | |
| Spec | rpmtsSpec (rpmts ts) |
| Get spec control structure from transaction set. | |
| Spec | rpmtsSetSpec (rpmts ts, Spec spec) |
| Set a spec control structure in transaction set. | |
| rpmte | rpmtsRelocateElement (rpmts ts) |
| Get current relocate transaction element. | |
| rpmte | rpmtsSetRelocateElement (rpmts ts, rpmte relocateElement) |
| Set current relocate transaction element. | |
| int | rpmtsSetNotifyCallback (rpmts ts, rpmCallbackFunction notify, rpmCallbackData notifyData) |
| Set transaction notify callback function and argument. | |
| rpmts | rpmtsCreate (void) |
| Create an empty transaction set. | |
| int | rpmtsAddInstallElement (rpmts ts, Header h, const fnpyKey key, int upgrade, rpmRelocation *relocs) |
| Add package to be installed to transaction set. | |
| int | rpmtsAddEraseElement (rpmts ts, Header h, int dboffset) |
| Add package to be erased to transaction set. | |
| int | rpmtsGetKeys (rpmts ts, fnpyKey **ep, int *nep) |
| Retrieve keys from ordered transaction set. | |
| #define adj_fs_blocks | ( | _nb | ) | (((_nb) * 21) / 20) |
Adjust for root only reserved space.
On linux e2fs, this is 5%.
Definition at line 215 of file rpmts.h.
Referenced by rpmtsCheckDSIProblems().
| typedef struct diskspaceInfo_s* rpmDiskSpaceInfo |
| enum tsStage_e |
Add package to be erased to transaction set.
| ts | transaction set | |
| h | header | |
| dboffset | rpm database instance |
Definition at line 393 of file depends.c.
References removePackage(), and RPMAL_NOMATCH.
Referenced by _rpmtsAddRollbackElement(), rpmErase(), rpmRollback(), and rpmts_AddErase().
| int rpmtsAddInstallElement | ( | rpmts | ts, | |
| Header | h, | |||
| const fnpyKey | key, | |||
| int | upgrade, | |||
| rpmRelocation * | relocs | |||
| ) |
Add package to be installed to transaction set.
The transaction set is checked for duplicate package names. If found, the package with the "newest" EVR will be replaced.
| ts | transaction set | |
| h | header | |
| key | package retrieval key (e.g. file name) | |
| upgrade | is package being upgraded? | |
| relocs | package file relocations |
Definition at line 127 of file depends.c.
References _, _free(), _rpmds_nopromote, rpmts_s::addedPackages, rpmts_s::dbmode, rpmts_s::delta, headerCheckPayloadFormat(), headerGetEntryMinMemory(), headerIsEntry(), hGetColor(), hGetNEVRA(), rpmts_s::numAddedPackages, rpmts_s::numRemovedPackages, rpmts_s::order, rpmts_s::orderAlloced, rpmts_s::orderCount, rpmts_s::removedPackages, removePackage(), RPMAL_NOMATCH, rpmalAdd(), rpmcliPackagesTotal, rpmdbFreeIterator(), rpmdbGetIteratorOffset(), rpmdbNextIterator(), rpmdbPruneIterator(), rpmdsAnyMatchesDep(), rpmdsColor(), rpmdsCompare(), rpmdsDNEVR(), rpmdsEVR(), rpmdsFree(), rpmdsInit(), rpmdsLink, rpmdsN(), rpmdsNext(), rpmdsThis(), rpmIsVerbose, RPMMESS_DEBUG, RPMMESS_WARNING, rpmMessage, RPMRC_OK, RPMSENSE_EQUAL, RPMSENSE_GREATER, RPMSENSE_LESS, rpmteA(), rpmteAddedKey(), rpmteDS(), rpmteFI(), rpmteFree(), rpmteIsSource(), rpmteKey(), rpmteN(), rpmteNew(), rpmteO(), rpmteSetAddedKey(), rpmteSetHeader(), rpmteType(), rpmtsColor(), rpmtsGetRdb(), rpmtsiFree, rpmtsiInit, rpmtsiNext(), rpmtsInitIterator(), rpmtsOpenDB(), rpmVersionCompare(), TR_ADDED, TR_REMOVED, and xrealloc().
Referenced by _rpmtsAddRollbackElement(), checkSpec(), rpmgiNext(), rpmGraph(), rpmInstall(), rpmInstallSourcePackage(), rpmRollback(), rpmts_AddInstall(), rpmtsSolve(), and verifyDependencies().
| int rpmtsCheck | ( | rpmts | ts | ) |
Perform dependency resolution on the transaction set.
Any problems found by rpmtsCheck() can be examined by retrieving the problem set with rpmtsProblems(), success here only means that the resolution was successfully attempted for all packages in the set.
| ts | transaction set |
Definition at line 1672 of file depends.c.
References _cacheDependsRC, rpmts_s::addedPackages, checkDependentConflicts(), checkDependentPackages(), checkPackageDeps(), rpmts_s::dbmode, rpmts_s::probs, rpmalMakeIndex(), rpmdbCloseDBI(), rpmdbFreeIterator(), RPMDBI_DEPENDS, rpmdsInit(), rpmdsN(), rpmdsNext(), rpmfiFN(), rpmfiInit(), rpmfiNext(), RPMMESS_DEBUG, rpmMessage, rpmpsCreate(), rpmpsFree(), rpmswEnter(), rpmswExit(), rpmteA(), rpmteColor(), rpmteDS(), rpmteFI(), rpmteN(), rpmteNEVR(), rpmteNEVRA(), rpmteO(), RPMTS_OP_CHECK, rpmtsCloseDB(), rpmtsColor(), rpmtsGetRdb(), rpmtsiFree, rpmtsiInit, rpmtsiNext(), rpmtsOp(), rpmtsOpenDB(), TR_ADDED, and TR_REMOVED.
Referenced by _rpmtsRollback(), checkSpec(), rpmErase(), rpmgiNext(), rpmGraph(), rpmInstall(), rpmRollback(), rpmts_Check(), and verifyDependencies().
Check a transaction element for disk space problems.
| ts | transaction set | |
| te | current transaction element |
Definition at line 1337 of file rpmts.c.
References adj_fs_blocks, diskspaceInfo_s::bavail, diskspaceInfo_s::bneeded, diskspaceInfo_s::bsize, rpmts_s::dsi, rpmts_s::filesystemCount, rpmts_s::filesystems, diskspaceInfo_s::iavail, diskspaceInfo_s::ineeded, rpmfiFC(), RPMPROB_DISKNODES, RPMPROB_DISKSPACE, rpmpsAppend(), rpmpsFree(), rpmteFI(), rpmteKey(), rpmteNEVRA(), and rpmtsProblems().
Referenced by rpmtsRun().
| int rpmtsChrootDone | ( | rpmts | ts | ) |
Get chrootDone flag, i.e.
has chroot(2) been performed?
| ts | transaction set |
Definition at line 1070 of file rpmts.c.
References rpmts_s::chrootDone.
Referenced by rpmpsmStage(), rpmtsRun(), runLuaScript(), and runScript().
| void rpmtsClean | ( | rpmts | ts | ) |
Free memory needed only for dependency checks and ordering.
| ts | transaction set |
Definition at line 760 of file rpmts.c.
References _free(), rpmts_s::addedPackages, rpmts_s::nsuggests, rpmts_s::numAddedPackages, rpmts_s::probs, rpmalFree(), rpmpsFree(), rpmteCleanDS(), rpmtsCleanDig(), rpmtsiFree, rpmtsiInit, rpmtsiNext(), and rpmts_s::suggests.
Referenced by checkSpec(), rpmcliImportPubkeys(), rpmErase(), rpmInstall(), rpmInstallSourcePackage(), rpmRollback(), rpmts_Clean(), rpmtsEmpty(), and rpmtsOrder().
| void rpmtsCleanDig | ( | rpmts | ts | ) |
Free signature verification data.
| ts | transaction set |
Definition at line 754 of file rpmts.c.
References rpmts_s::dig, headerFreeData(), pgpFreeDig(), rpmts_s::sig, and rpmts_s::sigtype.
Referenced by headerCheck(), rpmReadPackageFile(), rpmtsClean(), and rpmVerifySignatures().
| int rpmtsCloseDB | ( | rpmts | ts | ) |
Close the database used by the transaction.
| ts | transaction set |
Definition at line 156 of file rpmts.c.
References rpmdb_s::db_delops, rpmdb_s::db_getops, rpmdb_s::db_putops, rpmts_s::rdb, rpmdbClose(), rpmswAdd(), RPMTS_OP_DBDEL, RPMTS_OP_DBGET, RPMTS_OP_DBPUT, and rpmtsOp().
Referenced by ftsCacheUpdate(), rpmgiNext(), rpmts_CloseDB(), rpmts_InitDB(), rpmtsCheck(), rpmtsFree(), and rpmtsOpenDB().
| int rpmtsCloseSDB | ( | rpmts | ts | ) |
Close the database used by the transaction to solve dependencies.
| ts | transaction set |
Definition at line 486 of file rpmts.c.
References rpmdb_s::db_delops, rpmdb_s::db_getops, rpmdb_s::db_putops, rpmdbClose(), rpmswAdd(), RPMTS_OP_DBDEL, RPMTS_OP_DBGET, RPMTS_OP_DBPUT, rpmtsOp(), and rpmts_s::sdb.
Referenced by rpmtsFree().
| rpmts rpmtsCreate | ( | void | ) |
Create an empty transaction set.
Definition at line 1534 of file rpmts.c.
References rpmts_s::addedPackages, rpmts_s::allocedRemovedPackages, rpmts_s::availablePackages, rpmts_s::chrootDone, rpmts_s::color, rpmts_s::currDir, rpmts_s::dbmode, rpmts_s::delta, rpmts_s::dig, rpmts_s::dsi, rpmts_s::filesystemCount, rpmts_s::filesystems, rpmts_s::goal, is_selinux_enabled, rpmts_s::maxDepth, rpmts_s::nrefs, rpmts_s::nsuggests, rpmts_s::ntrees, rpmts_s::numAddedPackages, rpmts_s::numAvailablePackages, rpmts_s::numRemovedPackages, rpmts_s::ops, rpmts_s::order, rpmts_s::orderAlloced, rpmts_s::orderCount, rpmts_s::pkpkt, rpmts_s::pkpktlen, rpmts_s::pksignid, rpmts_s::prefcolor, rpmts_s::probs, rpmts_s::rdb, rpmts_s::removedPackages, rpmts_s::rootDir, rpmExpandNumeric(), rpmswEnter(), RPMTRANS_TYPE_NORMAL, RPMTS_OP_TOTAL, rpmtsLink, rpmtsOp(), rpmtsSolve(), rpmts_s::score, rpmts_s::scriptFd, rpmts_s::sdb, rpmts_s::sdbmode, rpmts_s::selinuxEnabled, rpmts_s::sig, rpmts_s::solve, rpmts_s::solveData, rpmts_s::suggests, rpmts_s::tid, TSM_UNKNOWN, rpmts_s::type, and xcalloc().
Referenced by cpio_doio(), main(), readRPM(), rpmts_Create(), rpmts_init(), and rpmtsRun().
| const char* rpmtsCurrDir | ( | rpmts | ts | ) |
Get transaction currDir, i.e.
current directory before chroot(2).
| ts | transaction set |
Definition at line 1021 of file rpmts.c.
References rpmts_s::currDir.
Referenced by rpmpsmStage(), and rpmtsRun().
Get OpenPGP packet parameters, i.e.
signature/pubkey constants.
| ts | transaction set |
Definition at line 1171 of file rpmts.c.
References rpmts_s::dig, and pgpNewDig().
Referenced by headerCheck(), rpmReadPackageFile(), rpmtsFindPubkey(), rpmtsPubkey(), rpmtsSignature(), rpmtsStashKeyid(), rpmVerifySignature(), rpmVerifySignatures(), verifyDSASignature(), verifyMD5Signature(), verifyRSASignature(), verifySHA1Signature(), and verifySizeSignature().
| void rpmtsEmpty | ( | rpmts | ts | ) |
Re-create an empty transaction set.
| ts | transaction set |
Definition at line 784 of file rpmts.c.
References rpmts_s::maxDepth, rpmts_s::ntrees, rpmts_s::numRemovedPackages, rpmts_s::order, rpmts_s::orderCount, rpmteFree(), rpmtsClean(), rpmtsiFree, rpmtsiInit, and rpmtsiNext().
Referenced by rpmcliArgIter(), rpmcliVerify(), rpmErase(), rpmInstall(), rpmRollback(), rpmtsFree(), and verifyDependencies().
| rpmprobFilterFlags rpmtsFilterFlags | ( | rpmts | ts | ) |
Get problem ignore bit mask, i.e.
bits to filter encountered problems.
| ts | transaction set |
Definition at line 1411 of file rpmts.c.
References rpmts_s::ignoreSet.
Referenced by handleOverlappedFiles(), relocateFileList(), rpmtsInitDSI(), and rpmtsRun().
| rpmtransFlags rpmtsFlags | ( | rpmts | ts | ) |
Get transaction flags, i.e.
bits that control rpmtsRun().
| ts | transaction set |
Definition at line 1416 of file rpmts.c.
References rpmts_s::transFlags.
Referenced by fsmMapAttrs(), fsmMapFContext(), fsmStage(), handleInstInstalledFiles(), ignoreDep(), rpmErase(), rpmInstall(), rpmpsmStage(), rpmtsOrder(), rpmtsRun(), skipFiles(), unsatisfiedDepend(), and XrpmtsiInit().
Destroy transaction set, closing the database as well.
| ts | transaction set |
Definition at line 850 of file rpmts.c.
References _free(), _rpmts_stats, rpmts_s::availablePackages, rpmts_s::currDir, rpmts_s::dsi, fdFree, rpmts_s::nrefs, rpmts_s::numAvailablePackages, rpmts_s::order, rpmts_s::orderAlloced, rpmts_s::pkpkt, rpmts_s::pkpktlen, rpmts_s::pksignid, rpmts_s::removedPackages, rpmts_s::rootDir, rpmalFree(), rpmsxFree(), rpmtsCloseDB(), rpmtsCloseSDB(), rpmtsEmpty(), rpmtsPrintStats(), rpmtsScoreFree(), rpmtsUnlink, rpmts_s::score, rpmts_s::scriptFd, and rpmts_s::sx.
Referenced by _rpmtsRollback(), cpio_doio(), main(), mapFreeIterator(), readRPM(), rpmgiFree(), rpmInstallSourcePackage(), rpmpsmFree(), rpmts_dealloc(), rpmts_free(), rpmtsRun(), and XrpmtsiFree().
Retrieve keys from ordered transaction set.
| ts | transaction set |
| ep | address of returned element array pointer (or NULL) | |
| nep | address of no. of returned elements (or NULL) |
Definition at line 1504 of file rpmts.c.
References rpmts_s::orderCount, rpmteKey(), rpmteType(), rpmtsiFree, rpmtsiInit, rpmtsiNext(), TR_ADDED, TR_REMOVED, and xmalloc().
Referenced by rpmts_GetKeys().
Get transaction set database handle.
| ts | transaction set |
Definition at line 1200 of file rpmts.c.
References rpmts_s::rdb.
Referenced by checkDependentConflicts(), ftsCacheUpdate(), handleOneTrigger(), rpmcliImportPubkey(), rpmpsmStage(), rpmtsAddInstallElement(), rpmtsCheck(), rpmtsRun(), runTriggers(), and unsatisfiedDepend().
| rpmtsScore rpmtsGetScore | ( | rpmts | ts | ) |
Get rpmtsScore from transaction.
| ts | RPM Transaction. |
Definition at line 1749 of file rpmts.c.
References rpmts_s::score.
Referenced by rpmpsmStage().
Get transaction id, i.e.
transaction time stamp.
| ts | transaction set |
Definition at line 1104 of file rpmts.c.
References rpmts_s::tid.
Referenced by _rpmtsRollback(), fsmSetup(), ftsCacheUpdate(), getRepackageHeaderFromTE(), rpmcliImportPubkey(), and rpmpsmStage().
| int rpmtsInitDB | ( | rpmts | ts, | |
| int | dbmode | |||
| ) |
Initialize the database used by the transaction.
| ts | transaction set | |
| dbmode | O_RDONLY or O_RDWR |
Definition at line 193 of file rpmts.c.
References rpmts_s::rootDir, and rpmdbInit().
Referenced by main(), and rpmts_InitDB().
| int rpmtsInitDSI | ( | const rpmts | ts | ) |
Initialize disk space info for each and every mounted file systems.
| ts | transaction set |
Definition at line 1211 of file rpmts.c.
References _, _free(), diskspaceInfo_s::bavail, diskspaceInfo_s::bneeded, diskspaceInfo_s::bsize, diskspaceInfo_s::dev, rpmts_s::dsi, rpmts_s::filesystemCount, rpmts_s::filesystems, diskspaceInfo_s::iavail, diskspaceInfo_s::ineeded, rpmGetFilesystemList(), RPMMESS_DEBUG, rpmMessage, RPMPROB_FILTER_DISKSPACE, rpmtsFilterFlags(), and xcalloc().
Referenced by rpmtsRun().
| rpmdbMatchIterator rpmtsInitIterator | ( | const rpmts | ts, | |
| rpmTag | rpmtag, | |||
| const void * | keyp, | |||
| size_t | keylen | |||
| ) |
Return transaction database iterator.
| ts | transaction set | |
| rpmtag | rpm tag | |
| keyp | key data (NULL for sequential access) | |
| keylen | key data length (0 will use strlen(keyp)) |
Definition at line 256 of file rpmts.c.
References _, rpmts_s::dbmode, headerCheck(), isArch(), rpmts_s::rdb, RPMDBI_LABEL, rpmdbInitIterator(), rpmdbSetHdrChk(), rpmdbSetIteratorRE(), RPMERR_QFMT, rpmError, RPMMIRE_DEFAULT, rpmtsOpenDB(), RPMVSF_NOHDRCHK, rpmts_s::vsflags, and xisdigit().
Referenced by _rpmtsAddRollbackElement(), checkDependentConflicts(), checkDependentPackages(), ftsCacheUpdate(), handleInstInstalledFiles(), handleRmvdInstalledFiles(), IDTXload(), markReplacedFiles(), rpmErase(), rpmgiInitFilter(), rpmInstall(), rpmpsmStage(), rpmQueryVerify(), rpmts_AddErase(), rpmts_Match(), rpmtsAddInstallElement(), rpmtsFindPubkey(), rpmtsRun(), runImmedTriggers(), runTriggers(), and unsatisfiedDepend().
Reference a transaction set instance.
| ts | transaction set | |
| msg |
| int rpmtsOpenDB | ( | rpmts | ts, | |
| int | dbmode | |||
| ) |
Open the database used by the transaction.
| ts | transaction set | |
| dbmode | O_RDONLY or O_RDWR |
Definition at line 170 of file rpmts.c.
References _, _free(), rpmts_s::dbmode, rpmts_s::rdb, rpmts_s::rootDir, rpmdbOpen(), rpmGetPath(), RPMMESS_ERROR, rpmMessage, and rpmtsCloseDB().
Referenced by ftsCacheUpdate(), rpmcliImportPubkey(), rpmts_Match(), rpmts_OpenDB(), rpmtsAddInstallElement(), rpmtsCheck(), rpmtsInitIterator(), and rpmtsRun().
| int rpmtsOpenSDB | ( | rpmts | ts, | |
| int | dbmode | |||
| ) |
Open the database used by the transaction to solve dependencies.
| ts | transaction set | |
| dbmode | O_RDONLY or O_RDWR |
Definition at line 500 of file rpmts.c.
References _, _free(), addMacro(), delMacro(), RMIL_DEFAULT, rpmts_s::rootDir, rpmdbOpen(), rpmExpandNumeric(), rpmGetPath(), RPMMESS_WARNING, rpmMessage, rpmts_s::sdb, and rpmts_s::sdbmode.
Referenced by rpmtsSolve().
| int rpmtsOrder | ( | rpmts | ts | ) |
Determine package order in a transaction set according to dependencies.
Order packages, returning error if circular dependencies cannot be eliminated by removing Requires's from the loop(s). Only dependencies from added or removed packages are used to determine ordering using a topological sort (Knuth vol. 1, p. 262). Use rpmtsCheck() to verify that all dependencies can be resolved.
The final order ends up as installed packages followed by removed packages, with packages removed for upgrades immediately following the new package to be installed.
| ts | transaction set |
Definition at line 1209 of file depends.c.
References _, _free(), rpmts_s::addedPackages, addQ(), addRelation(), freeBadDeps(), isErasePreReq, isInstallPreReq, isLegacyPreReq, markLoop(), rpmts_s::ntrees, rpmts_s::numAddedPackages, rpmts_s::numRemovedPackages, rpmts_s::order, rpmts_s::orderAlloced, rpmts_s::orderCount, orderListIndexCmp(), orderListIndex_s::orIndex, orderListIndex_s::pkgKey, RPMAL_NOMATCH, rpmalMakeIndex(), rpmdsFlags(), rpmdsInit(), rpmdsNext(), RPMMESS_DEBUG, RPMMESS_ERROR, RPMMESS_WARNING, rpmMessage, rpmswEnter(), rpmswExit(), rpmteAddedKey(), rpmteDegree(), rpmteDependsOnKey(), rpmteDepth(), rpmteDS(), rpmteFreeTSI(), rpmteNEVRA(), rpmteNewTSI(), rpmteNpreds(), rpmtePkgFileSize(), rpmteSetBreadth(), rpmteSetDegree(), rpmteSetDepth(), rpmteSetNpreds(), rpmteSetParent(), rpmteSetTree(), rpmteTree(), rpmteTSI(), rpmteType(), RPMTRANS_FLAG_ANACONDA, RPMTRANS_FLAG_DEPLOOPS, RPMTS_OP_ORDER, rpmtsClean(), rpmtsFlags(), rpmtsiFree, rpmtsiInit, rpmtsiNext(), rpmtsiOc(), rpmtsOp(), rpmtsPrefColor(), rpmtsUnorderedSuccessors(), TR_ADDED, TR_REMOVED, tsortInfo_s::tsi_chain, tsi_count, tsortInfo_s::tsi_next, tsortInfo_s::tsi_qcnt, tsortInfo_s::tsi_reqx, tsi_suc, xcalloc(), and zapRelation().
Referenced by _rpmtsRollback(), rpmErase(), rpmgiNext(), rpmGraph(), rpmInstall(), rpmRollback(), and rpmts_Order().
| pgpDigParams rpmtsPubkey | ( | const rpmts | ts | ) |
Get OpenPGP pubkey constants.
| ts | transaction set |
Definition at line 1191 of file rpmts.c.
References pgpDig_s::pubkey, and rpmtsDig().
Referenced by rpmtsFindPubkey().
| int rpmtsRebuildDB | ( | rpmts | ts | ) |
Rebuild the database used by the transaction.
| ts | transaction set |
Definition at line 203 of file rpmts.c.
References headerCheck(), rpmts_s::rootDir, rpmdbRebuild(), RPMVSF_NOHDRCHK, and rpmts_s::vsflags.
Referenced by main(), and rpmts_RebuildDB().
Get file security context patterns.
| ts | transaction set |
Definition at line 1087 of file rpmts.c.
References rpmsxLink, and rpmts_s::sx.
Referenced by fsmMapFContext(), fsmMkdirs(), rpmInstall(), and rpmts_Run().
Get current relocate transaction element.
| ts | transaction set |
Definition at line 1447 of file rpmts.c.
References rpmts_s::relocateElement.
Referenced by relocateFileList(), and rpmfiNew().
| const char* rpmtsRootDir | ( | rpmts | ts | ) |
Get transaction rootDir, i.e.
path to chroot(2).
| ts | transaction set |
Definition at line 968 of file rpmts.c.
References rpmts_s::rootDir, URL_IS_DASH, URL_IS_FTP, URL_IS_HKP, URL_IS_HTTP, URL_IS_HTTPS, URL_IS_PATH, URL_IS_UNKNOWN, and urlPath().
Referenced by rpmInstall(), rpmInstallSourcePackage(), rpmpsmStage(), rpmtsRun(), rpmVerifyFile(), runLuaScript(), and runScript().
| int rpmtsRun | ( | rpmts | ts, | |
| rpmps | okProbs, | |||
| rpmprobFilterFlags | ignoreSet | |||
| ) |
Process all package elements in a transaction set.
Before calling rpmtsRun be sure to have:
Additionally, though not required you may want to:
| ts | transaction set | |
| okProbs | previously known problems (or NULL) | |
| ignoreSet | bits to filter problem types |
Definition at line 1406 of file transaction.c.
References _, _free(), _noTransScripts, _noTransTriggers, _rpmtsAddRollbackElement(), _rpmtsRollback(), _RPMVSF_NODIGESTS, _RPMVSF_NOSIGNATURES, rpmfi_s::actions, archOkay(), rpmfi_s::bnl, CPIO_ALL_HARDLINKS, CPIO_MAP_ABSOLUTE, CPIO_MAP_ADDDOT, CPIO_SBIT_CHECK, currentDirectory(), dbiFreeIndexSet(), dbiIndexRecordFileNumber(), dbiIndexRecordOffset(), dbiIndexSetCount(), rpmfi_s::dil, rpmfi_s::dnl, ensureOlder(), rpmte_s::fd, rpmpsm_s::fi, rpmte_s::fi, fpCacheCreate(), fpCacheFree(), fpEqual(), fpHashFunction(), fpLookupList(), rpmfi_s::fps, rpmfi_s::fstates, rpmte_s::h, handleInstInstalledFiles(), handleOverlappedFiles(), handleRmvdInstalledFiles(), headerFree(), rpmts_s::ht, htAddEntry(), htCreate(), htFree(), rpmts_s::ignoreSet, sharedFileInfo_s::isRemoved, rpmfi_s::mapflags, NOTIFY, rpmts_s::notify, rpmts_s::notifyData, rpmps_s::numProblems, rpmts_s::numRemovedPackages, rpmts_s::orderCount, osOkay(), sharedFileInfo_s::otherFileNum, sharedFileInfo_s::otherPkg, sharedFileInfo_s::pkgFileNum, rpmfi_s::posttrans, rpmfi_s::pretrans, rpmts_s::probs, rpmpsm_s::progTag, PSM_PKGERASE, PSM_PKGINSTALL, PSM_PKGSAVE, PSM_SCRIPT, rpmts_s::rdb, rpmfi_s::record, rpmts_s::removedPackages, rpmfi_s::replaced, RPMCALLBACK_INST_CLOSE_FILE, RPMCALLBACK_INST_OPEN_FILE, RPMCALLBACK_REPACKAGE_PROGRESS, RPMCALLBACK_REPACKAGE_START, RPMCALLBACK_REPACKAGE_STOP, RPMCALLBACK_TRANS_PROGRESS, RPMCALLBACK_TRANS_START, RPMCALLBACK_TRANS_STOP, rpmdbCheckSignals(), rpmdbFindFpListExclude(), rpmdbFreeIterator(), rpmdbNextIterator(), rpmdbOpenAll(), rpmdbSetIteratorRE(), rpmdbSync(), rpmExpandNumeric(), rpmfiFC(), rpmfiFMode(), rpmfiFree(), rpmfiInit(), rpmfiLink, rpmfiNew(), rpmfiNext(), rpmfiSetFX(), RPMMESS_DEBUG, RPMMESS_ERROR, rpmMessage, RPMMIRE_STRCMP, RPMPROB_BADARCH, RPMPROB_BADOS, RPMPROB_FILTER_IGNOREARCH, RPMPROB_FILTER_IGNOREOS, RPMPROB_FILTER_OLDPACKAGE, RPMPROB_FILTER_REPLACEOLDFILES, RPMPROB_FILTER_REPLACEPKG, RPMPROB_PKG_INSTALLED, rpmpsAppend(), rpmpsCreate(), rpmpsFree(), rpmpsmFree(), rpmpsmNew(), rpmpsmStage(), rpmpsTrim(), RPMRC_NOKEY, RPMRC_NOTTRUSTED, RPMRC_OK, rpmReadPackageFile(), rpmswEnter(), rpmswExit(), rpmteA(), rpmteAddedKey(), rpmteColor(), rpmteDBOffset(), rpmteDependsOnKey(), rpmteE(), rpmteFd(), rpmteKey(), rpmteN(), rpmteNEVR(), rpmteNEVRA(), rpmteO(), rpmteR(), rpmteType(), rpmteV(), RPMTRANS_FLAG_BUILD_PROBS, RPMTRANS_FLAG_DIRSTASH, RPMTRANS_FLAG_JUSTDB, RPMTRANS_FLAG_NOSCRIPTS, RPMTRANS_FLAG_NOTRIGGERS, RPMTRANS_FLAG_REPACKAGE, RPMTRANS_FLAG_TEST, RPMTRANS_TYPE_AUTOROLLBACK, RPMTRANS_TYPE_ROLLBACK, RPMTS_OP_ERASE, RPMTS_OP_FINGERPRINT, RPMTS_OP_INSTALL, RPMTS_OP_REPACKAGE, rpmtsCheckDSIProblems(), rpmtsChrootDone(), rpmtsColor(), rpmtsCreate(), rpmtsCurrDir(), rpmtsFilterFlags(), rpmtsFlags(), rpmtsFree(), rpmtsGetRdb(), rpmtsGetType(), rpmtsiFi(), rpmtsiFree, rpmtsiInit, rpmtsiNext(), rpmtsInitDSI(), rpmtsInitIterator(), rpmtsiOc(), rpmtsNElements(), rpmtsOp(), rpmtsOpenDB(), rpmtsProblems(), rpmtsRootDir(), rpmtsScoreInit(), rpmtsSetChrootDone(), rpmtsSetCurrDir(), rpmtsSetFlags(), rpmtsSetNotifyCallback(), rpmtsSetRelocateElement(), rpmtsSetRootDir(), rpmtsSetTid(), rpmtsSetType(), rpmtsSetVSFlags(), rpmtsUnorderedSuccessors(), rpmtsVSFlags(), RPMVSF_NEEDPAYLOAD, RPMVSF_NOHDRCHK, rpmpsm_s::scriptTag, sharedCmp(), skipFiles(), rpmfi_s::te, TR_ADDED, TR_REMOVED, rpmpsm_s::unorderedSuccessor, vsflags, xcalloc(), XFA_SKIPPING, and xmalloc().
Referenced by _rpmtsRollback(), rpmErase(), rpmInstall(), rpmRollback(), and rpmts_Run().
| rpmtsScore rpmtsScoreFree | ( | rpmtsScore | score | ) |
Free rpmtsScore provided no more references exist against it.
| score | rpmtsScore to free |
Definition at line 1699 of file rpmts.c.
References _, _free(), rpmtsScore_s::entries, rpmtsScoreEntry_s::N, rpmtsScore_s::nrefs, RPMMESS_DEBUG, rpmMessage, and rpmtsScore_s::scores.
Referenced by rpmtsFree().
| rpmtsScoreEntry rpmtsScoreGetEntry | ( | rpmtsScore | score, | |
| const char * | N | |||
| ) |
Get rpmtsScoreEntry from rpmtsScore.
| score | RPM Transaction Score. |
Definition at line 1763 of file rpmts.c.
References _, rpmtsScore_s::entries, rpmtsScoreEntry_s::N, RPMMESS_DEBUG, rpmMessage, and rpmtsScore_s::scores.
Referenced by rpmpsmStage().
initialize rpmtsScore for running transaction and autorollback transaction.
| runningTS | Running Transaction. | |
| rollbackTS | Rollback Transaction. |
Definition at line 1611 of file rpmts.c.
References _, rpmtsScore_s::entries, rpmtsScoreEntry_s::erased, rpmtsScoreEntry_s::installed, rpmtsScoreEntry_s::N, rpmtsScore_s::nrefs, RPMMESS_DEBUG, rpmMessage, RPMRC_OK, rpmteN(), rpmteType(), rpmtsiFree, rpmtsiInit, rpmtsiNext(), rpmtsNElements(), rpmts_s::score, rpmtsScore_s::scores, rpmtsScoreEntry_s::te_types, TR_ADDED, TR_REMOVED, xcalloc(), and xstrdup().
Referenced by rpmtsRun().
Get transaction script file handle, i.e.
stdout/stderr on scriptlet execution
| ts | transaction set |
Definition at line 1039 of file rpmts.c.
References rpmts_s::scriptFd.
Referenced by runScript().
| int rpmtsSELinuxEnabled | ( | rpmts | ts | ) |
Get selinuxEnabled flag, i.e.
is SE linux enabled?
| ts | transaction set |
Definition at line 1065 of file rpmts.c.
References rpmts_s::selinuxEnabled.
Referenced by fsmMapFContext(), rpmVerifyFile(), runScript(), and verifyHeader().
| int rpmtsSetChrootDone | ( | rpmts | ts, | |
| int | chrootDone | |||
| ) |
Set chrootDone flag, i.e.
has chroot(2) been performed?
| ts | transaction set | |
| chrootDone | new chrootDone flag |
Definition at line 1075 of file rpmts.c.
References rpmts_s::chrootDone, rpmdb_s::db_chrootDone, and rpmts_s::rdb.
Referenced by rpmpsmStage(), rpmtsRun(), and runLuaScript().
| void rpmtsSetCurrDir | ( | rpmts | ts, | |
| const char * | currDir | |||
| ) |
Set transaction currDir, i.e.
current directory before chroot(2).
| ts | transaction set | |
| currDir | new transaction currDir (or NULL) |
Definition at line 1030 of file rpmts.c.
References _free(), rpmts_s::currDir, and xstrdup().
Referenced by rpmtsRun().
| rpmtransFlags rpmtsSetFlags | ( | rpmts | ts, | |
| rpmtransFlags | transFlags | |||
| ) |
Set transaction flags, i.e.
bits that control rpmtsRun().
| ts | transaction set | |
| transFlags | new transaction flags |
Definition at line 1421 of file rpmts.c.
References rpmts_s::transFlags.
Referenced by rpmErase(), rpmInstall(), rpmRollback(), rpmts_Rollback(), rpmts_SetFlags(), and rpmtsRun().
| int rpmtsSetNotifyCallback | ( | rpmts | ts, | |
| rpmCallbackFunction | notify, | |||
| rpmCallbackData | notifyData | |||
| ) |
Set transaction notify callback function and argument.
| ts | transaction set | |
| notify | progress callback | |
| notifyData | progress callback private data |
Definition at line 1494 of file rpmts.c.
References rpmts_s::notify, and rpmts_s::notifyData.
Referenced by rpmErase(), rpmInstall(), rpmRollback(), rpmts_Run(), and rpmtsRun().
Get file security context patterns.
| ts | transaction set | |
| sx | security context patterns |
Definition at line 1092 of file rpmts.c.
References rpmsxFree(), rpmsxLink, and rpmts_s::sx.
Referenced by rpmInstall(), and rpmts_Run().
Set current relocate transaction element.
| ts | transaction set | |
| relocateElement | new relocate transaction element |
Definition at line 1454 of file rpmts.c.
References rpmts_s::relocateElement.
Referenced by addTE(), and rpmtsRun().
| void rpmtsSetRootDir | ( | rpmts | ts, | |
| const char * | rootDir | |||
| ) |
Set transaction rootDir, i.e.
path to chroot(2).
| ts | transaction set | |
| rootDir | new transaction rootDir (or NULL) |
Definition at line 993 of file rpmts.c.
References _free(), rpmts_s::rootDir, and xstrdup().
Referenced by main(), rpmts_Create(), rpmts_init(), and rpmtsRun().
Set transaction script file handle, i.e.
stdout/stderr on scriptlet execution
| ts | transaction set | |
| scriptFd | new script file handle (or NULL) |
Definition at line 1050 of file rpmts.c.
References fdFree, fdLink, and rpmts_s::scriptFd.
Referenced by rpmts_setattro(), and rpmVerifyScript().
Set signature tag info, i.e.
from header.
| ts | transaction set | |
| sigtag | signature tag | |
| sigtype | signature tag type | |
| sig | signature tag data | |
| siglen | signature tag data length |
Definition at line 1155 of file rpmts.c.
References headerFreeData(), rpmts_s::sig, rpmts_s::siglen, rpmts_s::sigtag, and rpmts_s::sigtype.
Referenced by headerCheck(), rpmReadPackageFile(), and rpmVerifySignatures().
Set a spec control structure in transaction set.
| ts | transaction set | |
| spec | new spec control structure |
Definition at line 1438 of file rpmts.c.
References rpmts_s::spec.
Referenced by buildForTarget(), parseSpec(), and rpmspecQuery().
Set transaction id, i.e.
transaction time stamp.
| ts | transaction set | |
| tid | new transaction id |
Definition at line 1113 of file rpmts.c.
References rpmts_s::tid.
Referenced by main(), and rpmtsRun().
| rpmVSFlags rpmtsSetVSFlags | ( | rpmts | ts, | |
| rpmVSFlags | vsflags | |||
| ) |
Set verify signatures flag(s).
| ts | transaction set | |
| vsflags | new verify signatures flags |
Definition at line 917 of file rpmts.c.
References rpmts_s::vsflags.
Referenced by build(), main(), rpmcliQuery(), rpmcliVerify(), rpmErase(), rpmGraph(), rpmInstall(), rpmInstallSource(), rpmRollback(), rpmts_Create(), rpmts_init(), rpmts_SetVSFlags(), and rpmtsRun().
| const void* rpmtsSig | ( | const rpmts | ts | ) |
Get signature tag data, i.e.
from header.
| ts | transaction set |
Definition at line 1139 of file rpmts.c.
References rpmts_s::sig.
Referenced by rpmtsFindPubkey(), rpmtsStashKeyid(), rpmVerifySignature(), verifyDSASignature(), verifyMD5Signature(), verifyRSASignature(), verifySHA1Signature(), and verifySizeSignature().
Get signature tag data length, i.e.
no. of bytes of data.
| ts | transaction set |
Definition at line 1147 of file rpmts.c.
References rpmts_s::siglen.
Referenced by rpmVerifySignature(), verifyDSASignature(), verifyMD5Signature(), verifyRSASignature(), and verifySHA1Signature().
| pgpDigParams rpmtsSignature | ( | const rpmts | ts | ) |
Get OpenPGP signature constants.
| ts | transaction set |
Definition at line 1182 of file rpmts.c.
References rpmtsDig(), and pgpDig_s::signature.
Referenced by rpmtsFindPubkey(), rpmtsStashKeyid(), rpmVerifySignatures(), verifyDSASignature(), and verifyRSASignature().
Get signature tag.
| ts | transaction set |
Definition at line 1123 of file rpmts.c.
References rpmts_s::sigtag.
Referenced by rpmVerifySignature(), verifyDSASignature(), and verifyRSASignature().
Get signature tag type.
| ts | transaction set |
Definition at line 1131 of file rpmts.c.
References rpmts_s::sigtype.
Get spec control structure from transaction set.
| ts | transaction set |
Definition at line 1431 of file rpmts.c.
References rpmts_s::spec.
Referenced by spec_Parse().
Unreference a transaction instance.
| ts | transaction set | |
| msg |
| int rpmtsUnorderedSuccessors | ( | rpmts | ts, | |
| int | first | |||
| ) |
Set index of 1st element of successors.
| ts | transaction set | |
| first | new index of 1st element of successors |
Definition at line 957 of file rpmts.c.
References rpmts_s::unorderedSuccessors.
Referenced by rpmtsOrder(), and rpmtsRun().
| void rpmtsUpdateDSI | ( | const rpmts | ts, | |
| dev_t | dev, | |||
| uint_32 | fileSize, | |||
| uint_32 | prevSize, | |||
| uint_32 | fixupSize, | |||
| fileAction | action | |||
| ) |
Update disk space info for a file.
| ts | transaction set | |
| dev | mount point device | |
| fileSize | file size | |
| prevSize | previous file size (if upgrading) | |
| fixupSize | size difference (if | |
| action | file disposition |
Definition at line 1287 of file rpmts.c.
References BLOCK_ROUND, diskspaceInfo_s::bneeded, diskspaceInfo_s::bsize, diskspaceInfo_s::dev, rpmts_s::dsi, FA_ALTNAME, FA_BACKUP, FA_CREATE, FA_ERASE, FA_SAVE, and diskspaceInfo_s::ineeded.
Referenced by handleOverlappedFiles().
| int rpmtsVerifyDB | ( | rpmts | ts | ) |
Verify the database used by the transaction.
| ts | transaction set |
Definition at line 216 of file rpmts.c.
References rpmts_s::rootDir, and rpmdbVerify().
Referenced by main(), and rpmts_VerifyDB().
| rpmVSFlags rpmtsVSFlags | ( | rpmts | ts | ) |
Get verify signatures flag(s).
| ts | transaction set |
Definition at line 909 of file rpmts.c.
References rpmts_s::vsflags, and vsflags.
Referenced by headerCheck(), rpmInstallSource(), rpmpsmStage(), rpmReadPackageFile(), rpmts_GetVSFlags(), and rpmtsRun().
1.6.1