Files | |
file | depends.c |
file | psm.c |
Package state machine to handle a package from a transaction set. | |
file | rpmlib.h |
In Memoriam: Steve Taylor <staylor@redhat.com> was here, now he's not. | |
file | rpmte.h |
Structures used for an "rpmte" transaction element. | |
file | rpmts.h |
Structures and prototypes used for an "rpmts" transaction set. | |
file | transaction.c |
RPMTS | |
enum | rpmdepFlags_e { RPMDEPS_FLAG_NONE = 0, RPMDEPS_FLAG_NOUPGRADE = (1 << 0), RPMDEPS_FLAG_NOREQUIRES = (1 << 1), RPMDEPS_FLAG_NOCONFLICTS = (1 << 2), RPMDEPS_FLAG_NOOBSOLETES = (1 << 3), RPMDEPS_FLAG_NOPARENTDIRS = (1 << 4), RPMDEPS_FLAG_NOLINKTOS = (1 << 5), RPMDEPS_FLAG_ANACONDA = (1 << 6), RPMDEPS_FLAG_NOSUGGEST = (1 << 7), RPMDEPS_FLAG_ADDINDEPS = (1 << 8), RPMDEPS_FLAG_DEPLOOPS = (1 << 9) } |
Bit(s) to control rpmtsCheck() and rpmtsOrder() operation. More... | |
enum | rpmtransFlags_e { RPMTRANS_FLAG_NONE = 0, RPMTRANS_FLAG_TEST = (1 << 0), RPMTRANS_FLAG_BUILD_PROBS = (1 << 1), RPMTRANS_FLAG_NOSCRIPTS = (1 << 2), RPMTRANS_FLAG_JUSTDB = (1 << 3), RPMTRANS_FLAG_NOTRIGGERS = (1 << 4), RPMTRANS_FLAG_NODOCS = (1 << 5), RPMTRANS_FLAG_ALLFILES = (1 << 6), RPMTRANS_FLAG_KEEPOBSOLETE = (1 << 7), RPMTRANS_FLAG_NOCONTEXTS = (1 << 8), RPMTRANS_FLAG_DIRSTASH = (1 << 9), RPMTRANS_FLAG_REPACKAGE = (1 << 10), RPMTRANS_FLAG_PKGCOMMIT = (1 << 11), RPMTRANS_FLAG_PKGUNDO = (1 << 12), RPMTRANS_FLAG_COMMIT = (1 << 13), RPMTRANS_FLAG_UNDO = (1 << 14), RPMTRANS_FLAG_NOTRIGGERPREIN = (1 << 16), RPMTRANS_FLAG_NOPRE = (1 << 17), RPMTRANS_FLAG_NOPOST = (1 << 18), RPMTRANS_FLAG_NOTRIGGERIN = (1 << 19), RPMTRANS_FLAG_NOTRIGGERUN = (1 << 20), RPMTRANS_FLAG_NOPREUN = (1 << 21), RPMTRANS_FLAG_NOPOSTUN = (1 << 22), RPMTRANS_FLAG_NOTRIGGERPOSTUN = (1 << 23), RPMTRANS_FLAG_NOPAYLOAD = (1 << 24), RPMTRANS_FLAG_APPLYONLY = (1 << 25), RPMTRANS_FLAG_NOFDIGESTS = (1 << 27), RPMTRANS_FLAG_NOCONFIGS = (1 << 30) } |
Bit(s) to control rpmtsRun() operation. More... | |
typedef rpmpsm_s * | rpmpsm |
Package state machine data. | |
typedef enum rpmdepFlags_e | rpmdepFlags |
Bit(s) to control rpmtsCheck() and rpmtsOrder() operation. | |
typedef enum rpmtransFlags_e | rpmtransFlags |
Bit(s) to control rpmtsRun() operation. | |
Typedefs | |
typedef rpmts_s * | rpmts |
The RPM Transaction Set. | |
typedef void * | alKey |
An added/available package retrieval key. | |
typedef int | alNum |
An added/available package retrieval index. | |
Functions | |
int | rpmtsCheck (rpmts ts) |
Check that all dependencies can be resolved. | |
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. | |
rpmRC | rpmtsRollback (rpmts rbts, rpmprobFilterFlags ignoreSet, int running, rpmte rbte) |
Rollback a failed transaction. | |
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. | |
rpmPRCO | rpmtsPRCO (rpmts ts) |
Get transaction set dependencies. | |
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. | |
rpmdepFlags | rpmtsDFlags (rpmts ts) |
Get dependency flags, i.e. | |
rpmdepFlags | rpmtsSetDFlags (rpmts ts, rpmdepFlags depFlags) |
Set dependency 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. |
typedef void* alKey |
typedef int alNum |
typedef enum rpmdepFlags_e rpmdepFlags |
typedef enum rpmtransFlags_e rpmtransFlags |
typedef struct rpmts_s* rpmts |
enum rpmdepFlags_e |
Bit(s) to control rpmtsCheck() and rpmtsOrder() operation.
enum rpmtransFlags_e |
Bit(s) to control rpmtsRun() operation.
RPMTRANS_FLAG_NONE | |
RPMTRANS_FLAG_TEST | from --test |
RPMTRANS_FLAG_BUILD_PROBS | don't process payload |
RPMTRANS_FLAG_NOSCRIPTS | from --noscripts |
RPMTRANS_FLAG_JUSTDB | from --justdb |
RPMTRANS_FLAG_NOTRIGGERS | from --notriggers |
RPMTRANS_FLAG_NODOCS | from --excludedocs |
RPMTRANS_FLAG_ALLFILES | from --allfiles |
RPMTRANS_FLAG_KEEPOBSOLETE |
|
RPMTRANS_FLAG_NOCONTEXTS | from --nocontexts |
RPMTRANS_FLAG_DIRSTASH | from --dirstash |
RPMTRANS_FLAG_REPACKAGE | from --repackage |
RPMTRANS_FLAG_PKGCOMMIT | |
RPMTRANS_FLAG_PKGUNDO | |
RPMTRANS_FLAG_COMMIT | |
RPMTRANS_FLAG_UNDO | |
RPMTRANS_FLAG_NOTRIGGERPREIN | from --notriggerprein |
RPMTRANS_FLAG_NOPRE | from --nopre |
RPMTRANS_FLAG_NOPOST | from --nopost |
RPMTRANS_FLAG_NOTRIGGERIN | from --notriggerin |
RPMTRANS_FLAG_NOTRIGGERUN | from --notriggerun |
RPMTRANS_FLAG_NOPREUN | from --nopreun |
RPMTRANS_FLAG_NOPOSTUN | from --nopostun |
RPMTRANS_FLAG_NOTRIGGERPOSTUN | from --notriggerpostun |
RPMTRANS_FLAG_NOPAYLOAD | |
RPMTRANS_FLAG_APPLYONLY | |
RPMTRANS_FLAG_NOFDIGESTS | from --nofdigests |
RPMTRANS_FLAG_NOCONFIGS | from --noconfigs |
Add package to be erased to transaction set.
ts | transaction set | |
h | header | |
dboffset | rpm database instance |
Definition at line 506 of file depends.c.
References removePackage(), and RPMAL_NOMATCH.
Referenced by findErases(), rpmErase(), rpmgiNext(), rpmts_AddErase(), and verifyDependencies().
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 177 of file depends.c.
References _, _free(), _rpmds_nopromote, headerGetEntryMinMemory(), headerIsEntry(), hGetColor(), hGetNEVRA(), nplatpat, platform, platpat, removePackage(), RPMAL_NOMATCH, rpmalAdd(), rpmcliPackagesTotal, rpmdbFreeIterator(), rpmdbGetIteratorOffset(), rpmdbNextIterator(), rpmdbPruneIterator(), RPMDEPS_FLAG_NOOBSOLETES, RPMDEPS_FLAG_NOUPGRADE, rpmdsAnyMatchesDep(), rpmdsColor(), rpmdsCompare(), rpmdsDNEVR(), rpmdsEVR(), rpmdsFree(), rpmdsInit(), rpmdsLink, rpmdsN(), rpmdsNext(), rpmdsThis(), rpmExpand(), rpmHeadersIdentical(), rpmIsVerbose, RPMMESS_DEBUG, RPMMESS_WARNING, rpmMessage, rpmPlatformScore(), RPMPROB_BADPLATFORM, rpmpsAppend(), rpmpsFree(), RPMSENSE_EQUAL, RPMSENSE_GREATER, RPMSENSE_LESS, RPMTAG_ARCH, RPMTAG_BASENAMES, RPMTAG_NAME, RPMTAG_OBSOLETENAME, RPMTAG_OS, RPMTAG_PLATFORM, RPMTAG_PROVIDENAME, RPMTAG_REQUIRENAME, RPMTAG_SOURCERPM, rpmteA(), rpmteAddedKey(), rpmteChain(), rpmteDS(), rpmteFI(), rpmteFree(), rpmteIsSource(), rpmteKey(), rpmteN(), rpmteNEVRA(), rpmteNew(), rpmteO(), rpmteSetAddedKey(), rpmteSetHeader(), rpmteType(), rpmtsColor(), rpmtsDFlags(), rpmtsGetRdb(), rpmtsiFree, rpmtsiInit, rpmtsiNext(), rpmtsInitIterator(), rpmtsOpenDB(), rpmtsProblems(), TR_ADDED, TR_REMOVED, xrealloc(), and xstrdup().
Referenced by checkSpec(), rpmgiNext(), rpmInstall(), rpmInstallSourcePackage(), rpmRollback(), rpmts_AddInstall(), rpmtsSolve(), and verifyDependencies().
int rpmtsCheck | ( | rpmts | ts | ) |
Check that all dependencies can be resolved.
ts | transaction set |
Definition at line 2297 of file depends.c.
References _cacheDependsRC, _free(), checkDependentConflicts(), checkDependentPackages(), checkPackageDeps(), rpmalMakeIndex(), rpmdbCloseDBI(), rpmdbFreeIterator(), RPMDBI_DEPENDS, RPMDEPS_FLAG_NOCONFLICTS, RPMDEPS_FLAG_NOLINKTOS, RPMDEPS_FLAG_NOPARENTDIRS, RPMDEPS_FLAG_NOREQUIRES, rpmdsEVR(), rpmdsFromPRCO(), rpmdsInit(), rpmdsN(), rpmdsNegateRC(), rpmdsNext(), rpmdsNSType(), rpmfiFN(), rpmfiInit(), rpmfiNext(), RPMMESS_DEBUG, rpmMessage, RPMNS_TYPE_ENVVAR, RPMPROB_FILTER_NONE, rpmpsCreate(), rpmpsFree(), rpmpsNumProblems(), rpmswEnter(), rpmswExit(), RPMTAG_BASENAMES, RPMTAG_CONFLICTNAME, RPMTAG_DIRNAMES, RPMTAG_FILELINKTOS, RPMTAG_PROVIDENAME, RPMTAG_REQUIRENAME, rpmteA(), rpmteColor(), rpmteDS(), rpmteFI(), rpmteNEVR(), rpmteNEVRA(), rpmteO(), RPMTS_OP_CHECK, rpmtsCloseDB(), rpmtsColor(), rpmtsDFlags(), rpmtsGetRdb(), rpmtsiFree, rpmtsiInit, rpmtsiNext(), rpmtsOp(), rpmtsOpenDB(), rpmtsProblems(), rpmtsRollback(), TR_ADDED, TR_REMOVED, and xstrdup().
Referenced by checkSpec(), rpmErase(), rpmgiNext(), rpmInstall(), rpmrbCheck(), rpmts_Check(), and verifyDependencies().
Check a transaction element for disk space problems.
ts | transaction set | |
te | current transaction element |
Definition at line 1291 of file rpmts.c.
References rpmfiFC(), RPMPROB_DISKNODES, RPMPROB_DISKSPACE, rpmpsAppend(), RPMTAG_BASENAMES, rpmteFI(), rpmteKey(), rpmteNEVR(), 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 989 of file rpmts.c.
Referenced by rpmpsmStage(), rpmtsRun(), and runScript().
void rpmtsClean | ( | rpmts | ts | ) |
Free memory needed only for dependency checks and ordering.
ts | transaction set |
Definition at line 671 of file rpmts.c.
References _free(), rpmalFree(), rpmpsFree(), rpmteCleanDS(), rpmtsCleanDig(), rpmtsiFree, rpmtsiInit, and rpmtsiNext().
Referenced by checkSpec(), rpmcliImportPubkeys(), rpmErase(), rpmInstall(), rpmRollback(), rpmts_Clean(), rpmtsEmpty(), and rpmtsOrder().
void rpmtsCleanDig | ( | rpmts | ts | ) |
Free signature verification data.
ts | transaction set |
Definition at line 665 of file rpmts.c.
References headerFreeData(), and pgpFreeDig().
Referenced by rpmReadPackageFile(), rpmtsClean(), and rpmVerifySignatures().
int rpmtsCloseDB | ( | rpmts | ts | ) |
Close the database used by the transaction.
ts | transaction set |
Definition at line 95 of file rpmts.c.
References rpmdbClose(), rpmswAdd(), RPMTS_OP_DBDEL, RPMTS_OP_DBGET, RPMTS_OP_DBPUT, and rpmtsOp().
Referenced by 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 388 of file rpmts.c.
References rpmdbClose(), rpmswAdd(), RPMTS_OP_DBDEL, RPMTS_OP_DBGET, RPMTS_OP_DBPUT, and rpmtsOp().
Referenced by rpmtsFree().
rpmts rpmtsCreate | ( | void | ) |
Create an empty transaction set.
Definition at line 1479 of file rpmts.c.
References _free(), is_selinux_enabled, R_OK, rpmdsNewPRCO(), rpmdsSysinfo(), rpmExpandNumeric(), rpmGetPath(), rpmioAccess(), rpmswEnter(), RPMTRANS_TYPE_NORMAL, RPMTS_OP_TOTAL, rpmtsLink, rpmtsOp(), rpmtsSolve(), and xcalloc().
Referenced by cpio_doio(), main(), readRPM(), rpmts_Create(), and rpmts_init().
const char* rpmtsCurrDir | ( | rpmts | ts | ) |
Get transaction currDir, i.e.
current directory before chroot(2).
ts | transaction set |
Definition at line 940 of file rpmts.c.
Referenced by rpmpsmStage(), and rpmtsRun().
rpmdepFlags rpmtsDFlags | ( | rpmts | ts | ) |
Get dependency flags, i.e.
bits that control rpmtsCheck() and rpmtsOrder().
ts | transaction set |
Definition at line 1391 of file rpmts.c.
Referenced by checkPackageSet(), ignoreDep(), rpmgiNext(), rpmtsAddInstallElement(), rpmtsCheck(), rpmtsOrder(), rpmtsRollback(), and unsatisfiedDepend().
Get OpenPGP packet parameters, i.e.
signature/pubkey constants.
ts | transaction set |
Definition at line 1090 of file rpmts.c.
References pgpNewDig().
Referenced by 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 698 of file rpmts.c.
References rpmteFree(), rpmtsClean(), rpmtsiFree, rpmtsiInit, and rpmtsiNext().
Referenced by rpmcliArgIter(), rpmcliVerify(), rpmErase(), rpmRollback(), rpmtsFree(), rpmtsRollback(), and verifyDependencies().
rpmprobFilterFlags rpmtsFilterFlags | ( | rpmts | ts | ) |
Get problem ignore bit mask, i.e.
bits to filter encountered problems.
ts | transaction set |
Definition at line 1371 of file rpmts.c.
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 1376 of file rpmts.c.
Referenced by fsmMapAttrs(), fsmMapFContext(), fsmMkdirs(), fsmStage(), handleInstInstalledFiles(), rpmInstall(), rpmpsmStage(), rpmtsRollback(), rpmtsRun(), and skipFiles().
Destroy transaction set, closing the database as well.
ts | transaction set |
Definition at line 765 of file rpmts.c.
References _free(), _rpmts_stats, fdFree, rpmalFree(), rpmdsFreePRCO(), rpmsxFree(), rpmtsCloseDB(), rpmtsCloseSDB(), rpmtsEmpty(), rpmtsPrintStats(), and rpmtsUnlink.
Referenced by cpio_doio(), main(), mapFreeIterator(), readRPM(), rpmgiFree(), rpmpsmFree(), rpmts_dealloc(), rpmts_free(), and XrpmtsiFree().
Get transaction set database handle.
ts | transaction set |
Definition at line 1119 of file rpmts.c.
Referenced by checkDependentConflicts(), checkDependentPackages(), handleOneTrigger(), rpmcliImportPubkey(), rpmpsmStage(), rpmtsAddInstallElement(), rpmtsCheck(), rpmtsRollback(), rpmtsRun(), runTriggers(), and unsatisfiedDepend().
Get transaction id, i.e.
transaction time stamp.
ts | transaction set |
Definition at line 1023 of file rpmts.c.
Referenced by fsmSetup(), rpmcliImportPubkey(), rpmpsmStage(), and rpmtsRollback().
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 132 of file rpmts.c.
References 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 1137 of file rpmts.c.
References _, _free(), rpmGetFilesystemList(), RPMMESS_DEBUG, rpmMessage, RPMPROB_FILTER_DISKSPACE, rpmtsFilterFlags(), ST_RDONLY, STATFS_IN_SYS_STATVFS, and xcalloc().
Referenced by rpmtsRun(), and unsatisfiedDepend().
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 158 of file rpmts.c.
References _, alloca(), headerCheck(), RPMDBI_LABEL, rpmdbInitIterator(), rpmdbSetHdrChk(), rpmdbSetIteratorRE(), RPMERR_QFMT, rpmError, rpmnsArch(), RPMTAG_ARCH, rpmtsOpenDB(), RPMVSF_NOHDRCHK, and xisdigit().
Referenced by checkDependentConflicts(), checkDependentPackages(), 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 109 of file rpmts.c.
References _, _free(), rpmdbOpen(), rpmGetPath(), RPMMESS_ERROR, rpmMessage, and rpmtsCloseDB().
Referenced by rpmcliImportPubkey(), rpmts_Match(), rpmts_OpenDB(), rpmtsAddInstallElement(), rpmtsCheck(), rpmtsInitIterator(), rpmtsRollback(), 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 402 of file rpmts.c.
References _, _free(), addMacro(), delMacro(), RMIL_DEFAULT, rpmdbOpen(), rpmExpandNumeric(), rpmGetPath(), RPMMESS_WARNING, and rpmMessage.
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 1821 of file depends.c.
References _, _autobits, _free(), addQ(), addRelation(), alloca(), freeBadDeps(), isAuto, markLoop(), orderListIndexCmp(), orderListIndex_s::orIndex, orderListIndex_s::pkgKey, RPMAL_NOMATCH, rpmalAdd(), rpmalMakeIndex(), RPMDEPS_FLAG_ANACONDA, RPMDEPS_FLAG_DEPLOOPS, rpmdsFlags(), rpmdsInit(), rpmdsNext(), RPMMESS_DEBUG, RPMMESS_ERROR, RPMMESS_WARNING, rpmMessage, RPMPROB_FILTER_NONE, rpmswEnter(), rpmswExit(), RPMTAG_BASENAMES, RPMTAG_DIRNAMES, RPMTAG_FILELINKTOS, RPMTAG_PROVIDENAME, RPMTAG_REQUIRENAME, rpmteAddedKey(), rpmteDegree(), rpmteDepth(), rpmteDS(), rpmteFI(), rpmteFreeTSI(), rpmteNEVRA(), rpmteNewTSI(), rpmteNpreds(), rpmtePkgFileSize(), rpmteSetAddedKey(), rpmteSetBreadth(), rpmteSetDegree(), rpmteSetDepth(), rpmteSetNpreds(), rpmteSetParent(), rpmteSetTree(), rpmteTree(), rpmteTSI(), rpmteType(), RPMTS_OP_ORDER, rpmtsClean(), rpmtsColor(), rpmtsDFlags(), rpmtsiFree, rpmtsiInit, rpmtsiNext(), rpmtsiOc(), rpmtsOp(), rpmtsPrefColor(), rpmtsRollback(), rpmtsUnorderedSuccessors(), stpcpy(), TR_ADDED, TR_REMOVED, xcalloc(), and zapRelation().
Referenced by rpmErase(), rpmgiNew(), rpmInstall(), rpmrbOrder(), and rpmts_Order().
pgpDigParams rpmtsPubkey | ( | const rpmts | ts | ) |
Get OpenPGP pubkey constants.
ts | transaction set |
Definition at line 1110 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 140 of file rpmts.c.
References headerCheck(), rpmdbRebuild(), and RPMVSF_NOHDRCHK.
Referenced by main(), and rpmts_RebuildDB().
Get file security context patterns.
ts | transaction set |
Definition at line 1006 of file rpmts.c.
References rpmsxLink.
Referenced by fsmMapFContext(), fsmMkdirs(), rpmInstall(), and rpmts_Run().
Get current relocate transaction element.
ts | transaction set |
Definition at line 1422 of file rpmts.c.
Referenced by relocateFileList().
rpmRC rpmtsRollback | ( | rpmts | rbts, | |
rpmprobFilterFlags | ignoreSet, | |||
int | running, | |||
rpmte | rbte | |||
) |
Rollback a failed transaction.
rbts | failed transaction set | |
ignoreSet | problems to ignore | |
running | partial transaction? | |
rbte | failed transaction element |
Definition at line 971 of file transaction.c.
References _, _free(), _processFailedPackage(), _RPMVSF_NODIGESTS, _RPMVSF_NOSIGNATURES, alloca(), Fclose(), Fopen(), INSTALL_HASH, INSTALL_UPGRADE, rpmdbRemove(), rpmExpand(), rpmExpandNumeric(), RPMMESS_ERROR, RPMMESS_NORMAL, rpmMessage, RPMRC_OK, rpmRollback(), rpmteNEVRA(), RPMTRANS_FLAG_DIRSTASH, RPMTRANS_FLAG_NOFDIGESTS, RPMTRANS_FLAG_REPACKAGE, RPMTRANS_TYPE_AUTOROLLBACK, RPMTRANS_TYPE_ROLLBACK, rpmtsARBGoal(), rpmtsDFlags(), rpmtsEmpty(), rpmtsFlags(), rpmtsGetRdb(), rpmtsGetTid(), rpmtsiFree, rpmtsiInit, rpmtsiNext(), rpmtsOpenDB(), rpmtsSetFlags(), rpmtsSetVSFlags(), rpmtsType(), RPMVSF_NEEDPAYLOAD, RPMVSF_NOHDRCHK, TR_REMOVED, and Unlink().
Referenced by rpmtsCheck(), rpmtsOrder(), and rpmtsRun().
const char* rpmtsRootDir | ( | rpmts | ts | ) |
Get transaction rootDir, i.e.
path to chroot(2).
ts | transaction set |
Definition at line 887 of file rpmts.c.
References 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(), rpmpsmStage(), rpmtsRun(), rpmVerifyFile(), 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 1154 of file transaction.c.
References _, _free(), _noTransScripts, _noTransTriggers, Chdir(), Chroot(), CPIO_ALL_HARDLINKS, CPIO_MAP_ABSOLUTE, CPIO_MAP_ADDDOT, CPIO_SBIT_CHECK, currentDirectory(), dbiFreeIndexSet(), dbiIndexRecordFileNumber(), dbiIndexRecordOffset(), dbiIndexSetCount(), ensureOlder(), rpmpsm_s::fi, fpCacheCreate(), fpCacheFree(), fpEqual(), fpHashFunction(), fpLookupList(), handleInstInstalledFiles(), handleOverlappedFiles(), handleRmvdInstalledFiles(), headerFree(), htAddEntry(), htCreate(), htFree(), markLinkedFailed(), NOTIFY, rpmpsm_s::progTag, PSM_PKGERASE, PSM_PKGINSTALL, PSM_PKGSAVE, PSM_SCRIPT, 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(), rpmdbFindFpList(), rpmdbFreeIterator(), rpmdbNextIterator(), rpmdbOpenAll(), rpmdbSetIteratorRE(), rpmdbSync(), rpmExpandNumeric(), rpmfiFC(), rpmfiFree(), rpmfiInit(), rpmfiLink, rpmfiNew(), rpmfiNext(), RPMMESS_DEBUG, RPMMESS_ERROR, rpmMessage, RPMPROB_FILTER_OLDPACKAGE, RPMPROB_FILTER_REPLACEOLDFILES, RPMPROB_FILTER_REPLACEPKG, RPMPROB_PKG_INSTALLED, rpmpsAppend(), rpmpsCreate(), rpmpsFree(), rpmpsmFree(), rpmpsmNew(), rpmpsmStage(), rpmpsNumProblems(), rpmpsTrim(), RPMRC_NOKEY, RPMRC_NOTTRUSTED, RPMRC_OK, rpmReadPackageFile(), rpmswEnter(), rpmswExit(), RPMTAG_ARCH, RPMTAG_BASENAMES, RPMTAG_EPOCH, RPMTAG_NAME, RPMTAG_OS, RPMTAG_POSTTRANS, RPMTAG_POSTTRANSPROG, RPMTAG_PRETRANS, RPMTAG_PRETRANSPROG, RPMTAG_RELEASE, RPMTAG_VERSION, rpmteA(), rpmteAddedKey(), rpmteColor(), rpmteDBOffset(), rpmteE(), rpmteFd(), rpmteKey(), rpmteN(), rpmteNEVR(), 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(), rpmtsCurrDir(), rpmtsFilterFlags(), rpmtsFlags(), rpmtsGetRdb(), rpmtsiFi(), rpmtsiFree, rpmtsiInit, rpmtsiNext(), rpmtsInitDSI(), rpmtsInitIterator(), rpmtsiOc(), rpmtsNElements(), rpmtsOp(), rpmtsOpenDB(), rpmtsProblems(), rpmtsRollback(), rpmtsRootDir(), rpmtsSetChrootDone(), rpmtsSetCurrDir(), rpmtsSetFlags(), rpmtsSetRelocateElement(), rpmtsSetTid(), rpmtsSetVSFlags(), rpmtsType(), rpmtsUnorderedSuccessors(), rpmtsVSFlags(), RPMVSF_NEEDPAYLOAD, rpmpsm_s::scriptTag, sharedCmp(), skipFiles(), rpmpsm_s::stepName, TR_ADDED, TR_REMOVED, rpmpsm_s::unorderedSuccessor, xcalloc(), XFA_SKIPPING, and xmalloc().
Referenced by rpmErase(), rpmInstall(), rpmrbRun(), and rpmts_Run().
Get transaction script file handle, i.e.
stdout/stderr on scriptlet execution
ts | transaction set |
Definition at line 958 of file rpmts.c.
Referenced by runScript().
int rpmtsSELinuxEnabled | ( | rpmts | ts | ) |
Get selinuxEnabled flag, i.e.
is SE linux enabled?
ts | transaction set |
Definition at line 984 of file rpmts.c.
Referenced by fsmMapFContext(), fsmMkdirs(), and runScript().
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 994 of file rpmts.c.
Referenced by rpmpsmStage(), and rpmtsRun().
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 949 of file rpmts.c.
References _free(), and xstrdup().
Referenced by rpmtsRun().
rpmdepFlags rpmtsSetDFlags | ( | rpmts | ts, | |
rpmdepFlags | depFlags | |||
) |
Set dependency flags, i.e.
bits that control rpmtsCheck() and rpmtsOrder().
ts | transaction set | |
depFlags | new dependency flags |
Definition at line 1396 of file rpmts.c.
Referenced by rpmcliQuery(), rpmcliVerify(), rpmErase(), rpmgiNext(), rpmInstall(), rpmRollback(), and rpmts_SetDFlags().
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 1381 of file rpmts.c.
Referenced by rpmcliQuery(), rpmcliVerify(), rpmErase(), rpmInstall(), rpmRollback(), rpmts_Rollback(), rpmts_SetFlags(), rpmtsRollback(), 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 1469 of file rpmts.c.
Referenced by rpmErase(), rpmInstall(), rpmRollback(), and rpmts_Run().
Get file security context patterns.
ts | transaction set | |
sx | security context patterns |
Definition at line 1011 of file rpmts.c.
References rpmsxFree(), and rpmsxLink.
Referenced by rpmInstall(), and rpmts_Run().
Set current relocate transaction element.
ts | transaction set | |
relocateElement | new relocate transaction element |
Definition at line 1429 of file rpmts.c.
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 912 of file rpmts.c.
References _free(), alloca(), stpcpy(), and xstrdup().
Referenced by main(), rpmts_Create(), and rpmts_init().
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 969 of file rpmts.c.
References fdFree, and fdLink.
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 1074 of file rpmts.c.
References headerFreeData().
Referenced by rpmReadPackageFile(), and rpmVerifySignatures().
Set a spec control structure in transaction set.
ts | transaction set | |
spec | new spec control structure |
Definition at line 1413 of file rpmts.c.
Referenced by _specQuery(), buildForTarget(), and parseSpec().
Set transaction id, i.e.
transaction time stamp.
ts | transaction set | |
tid | new transaction id |
Definition at line 1032 of file rpmts.c.
Referenced by rpmtsRun().
rpmVSFlags rpmtsSetVSFlags | ( | rpmts | ts, | |
rpmVSFlags | vsflags | |||
) |
Set verify signatures flag(s).
ts | transaction set | |
vsflags | new verify signatures flags |
Definition at line 829 of file rpmts.c.
Referenced by build(), main(), rpmcliQuery(), rpmcliVerify(), rpmErase(), rpmInstall(), rpmInstallSource(), rpmRollback(), rpmts_Create(), rpmts_init(), rpmts_SetVSFlags(), rpmtsRollback(), and rpmtsRun().
const void* rpmtsSig | ( | const rpmts | ts | ) |
Get signature tag data, i.e.
from header.
ts | transaction set |
Definition at line 1058 of file rpmts.c.
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 1066 of file rpmts.c.
Referenced by rpmVerifySignature(), verifyDSASignature(), verifyMD5Signature(), verifyRSASignature(), and verifySHA1Signature().
pgpDigParams rpmtsSignature | ( | const rpmts | ts | ) |
Get OpenPGP signature constants.
ts | transaction set |
Definition at line 1101 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 1042 of file rpmts.c.
Referenced by rpmVerifySignature(), verifyDSASignature(), and verifyRSASignature().
Get spec control structure from transaction set.
ts | transaction set |
Definition at line 1406 of file rpmts.c.
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 876 of file rpmts.c.
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 1241 of file rpmts.c.
References FA_ALTNAME, FA_BACKUP, FA_CREATE, FA_ERASE, and FA_SAVE.
Referenced by handleOverlappedFiles().
int rpmtsVerifyDB | ( | rpmts | ts | ) |
Verify the database used by the transaction.
ts | transaction set |
Definition at line 152 of file rpmts.c.
References rpmdbVerify().
Referenced by main(), and rpmts_VerifyDB().
rpmVSFlags rpmtsVSFlags | ( | rpmts | ts | ) |
Get verify signatures flag(s).
ts | transaction set |
Definition at line 821 of file rpmts.c.
Referenced by headerCheck(), rpmInstallSource(), rpmpsmStage(), rpmReadPackageFile(), and rpmtsRun().