#include "system.h"
#include "rpmmacro.h"
#include "psm.h"
#include "rpmdb.h"
#include "fprint.h"
#include "rpmhash.h"
#include "misc.h"
#include "debug.h"
Go to the source code of this file.
Data Structures | |
| struct | diskspaceInfo |
| struct | tsIterator_s |
| Iterator across transaction elements, forward on install, backward on erase. More... | |
Defines | |
| #define | MNT_DEV_PREFIX "/mnt/" |
| #define | MNT_DEV_PREFIX_LENGTH (sizeof(MNT_DEV_PREFIX)-1) |
| #define | adj_fs_blocks(_nb) (((_nb) * 21) / 20) |
| #define | BLOCK_ROUND(size, block) (((size) + (block) - 1) / (block)) |
| #define | XSTRCMP(a, b) ((!(a) && !(b)) || ((a) && (b) && !strcmp((a), (b)))) |
| #define | alloca_strdup(_s) strcpy(alloca(strlen(_s)+1), (_s)) |
| #define | NOTIFY(_ts, _al) if ((_ts)->notify) (void) (_ts)->notify _al |
Functions | |
| void * | freeFl (rpmTransactionSet ts, TFI_t flList) |
| void | rpmtransSetScriptFd (rpmTransactionSet ts, FD_t fd) |
| int | rpmtransGetKeys (const rpmTransactionSet ts, const void ***ep, int *nep) |
| void | psAppend (rpmProblemSet probs, rpmProblemType type, const struct availablePackage *alp, const char *dn, const char *bn, Header altH, unsigned long ulong1) |
| int | archOkay (Header h) |
| int | osOkay (Header h) |
| void | rpmProblemSetFree (rpmProblemSet probs) |
| Destroy problem set. | |
| const char *const | ftstring (fileTypes ft) |
| fileTypes | whatis (uint_16 mode) |
| Header | relocateFileList (const rpmTransactionSet ts, TFI_t fi, struct availablePackage *alp, Header origH, fileAction *actions) |
| Relocate files in header. | |
| int | psTrim (rpmProblemSet filter, rpmProblemSet target) |
| int | sharedCmp (const void *one, const void *two) |
| fileAction | decideFileFate (const char *dirName, const char *baseName, short dbMode, const char *dbMd5, const char *dbLink, short newMode, const char *newMd5, const char *newLink, int newFlags, rpmtransFlags transFlags) |
| int | filecmp (short mode1, const char *md51, const char *link1, short mode2, const char *md52, const char *link2) |
| int | handleInstInstalledFiles (TFI_t fi, rpmdb db, struct sharedFileInfo *shared, int sharedCount, int reportConflicts, rpmProblemSet probs, rpmtransFlags transFlags) |
| int | handleRmvdInstalledFiles (TFI_t fi, rpmdb db, struct sharedFileInfo *shared, int sharedCount) |
| void | handleOverlappedFiles (TFI_t fi, hashTable ht, rpmProblemSet probs, struct diskspaceInfo *dsl) |
| Update disk space needs on each partition for this package. | |
| int | ensureOlder (struct availablePackage *alp, Header old, rpmProblemSet probs) |
| void | skipFiles (const rpmTransactionSet ts, TFI_t fi) |
| int | tsGetOc (void *a) |
| Return transaction element order count. | |
| availablePackage * | tsGetAlp (void *a) |
| Return transaction element available package pointer. | |
| void * | tsFreeIterator (const void *a) |
| Destroy transaction element iterator. | |
| void * | tsInitIterator (const void *a) |
| Create transaction element iterator. | |
| TFI_t | tsNextIterator (void *a) |
| Return next transaction element's file info. | |
| int | rpmRunTransactions (rpmTransactionSet ts, rpmCallbackFunction notify, rpmCallbackData notifyData, rpmProblemSet okProbs, rpmProblemSet *newProbs, rpmtransFlags transFlags, rpmprobFilterFlags ignoreSet) |
Variables | |
| rpmProblemSet | psCreate (void) |
Definition in file transaction.c.
|
|
Definition at line 65 of file transaction.c. Referenced by rpmRunTransactions(). |
|
|
Definition at line 301 of file transaction.c. |
|
|
Definition at line 69 of file transaction.c. Referenced by handleOverlappedFiles(). |
|
|
Definition at line 42 of file transaction.c. Referenced by rpmRunTransactions(). |
|
|
Definition at line 43 of file transaction.c. Referenced by rpmRunTransactions(). |
|
|
Definition at line 1517 of file transaction.c. Referenced by rpmRunTransactions(). |
|
|
Definition at line 71 of file transaction.c. Referenced by psTrim(). |
|
|
Definition at line 203 of file transaction.c. References headerGetEntry(), int_8, RPM_INT8_TYPE, RPM_MACHTABLE_INSTARCH, rpmGetArchInfo(), rpmMachineScore(), and RPMTAG_ARCH. Referenced by rpmRunTransactions(). |
|
||||||||||||||||||||||||||||||||||||||||||||
|
Definition at line 788 of file transaction.c. References _, alloca(), domd5(), FA_ALTNAME, FA_CREATE, FA_SAVE, FA_SKIP, fileAction, fileTypes, LINK, REG, RPMFILE_MISSINGOK, RPMFILE_NOREPLACE, RPMMESS_DEBUG, rpmMessage, RPMTRANS_FLAG_ALLFILES, rpmtransFlags, stpcpy(), whatis(), and XDIR. Referenced by handleInstInstalledFiles(). |
|
||||||||||||||||
|
Definition at line 1234 of file transaction.c. References availablePackage::h, psAppend(), RPMPROB_OLDPACKAGE, and rpmVersionCompare(). Referenced by rpmRunTransactions(). |
|
||||||||||||||||||||||||||||
|
Definition at line 881 of file transaction.c. References fileTypes, LINK, REG, and whatis(). Referenced by handleInstInstalledFiles(), and handleOverlappedFiles(). |
|
||||||||||||
|
Definition at line 73 of file transaction.c. References _free(), freeFi(), and rpmTransactionSet_s::orderCount. Referenced by rpmRunTransactions(). |
|
|
Definition at line 273 of file transaction.c. References BDEV, CDEV, fileTypes, LINK, PIPE, REG, SOCK, and XDIR. Referenced by relocateFileList(). |
|
||||||||||||||||||||||||||||||||
|
||||||||||||||||||||
|
||||||||||||||||||||
|
Definition at line 994 of file transaction.c. References transactionFileInfo_s::actions, FA_SKIP, transactionFileInfo_s::hge, HGE_t, sharedFileInfo::otherFileNum, sharedFileInfo::otherPkg, sharedFileInfo::pkgFileNum, rpmdbFreeIterator(), RPMDBI_PACKAGES, rpmdbInitIterator(), rpmdbNextIterator(), RPMFILE_STATE_NORMAL, and RPMTAG_FILESTATES. Referenced by rpmRunTransactions(). |
|
|
Definition at line 234 of file transaction.c. References headerGetEntry(), RPM_INT8_TYPE, RPM_MACHTABLE_INSTOS, rpmMachineScore(), and RPMTAG_OS. Referenced by rpmRunTransactions(). |
|
||||||||||||||||||||||||||||||||
|
||||||||||||
|
Definition at line 737 of file transaction.c. References rpmProblem_s::h, rpmProblem_s::ignoreProblem, rpmProblem_s::key, rpmProblemSet_s::numProblems, rpmProblemSet_s::probs, rpmProblem_s::str1, rpmProblem_s::type, and XSTRCMP. Referenced by rpmRunTransactions(). |
|
||||||||||||||||||||||||
|
|
Destroy problem set.
Definition at line 259 of file transaction.c. References _free(), rpmProblem_s::altNEVR, rpmProblem_s::h, headerFree(), rpmProblemSet_s::numProblems, rpmProblem_s::pkgNEVR, rpmProblemSet_s::probs, and rpmProblem_s::str1. Referenced by rpmInstall(), rpmRollback(), and rpmtransRun(). |
|
||||||||||||||||||||||||||||||||
|
Process all packages in transaction set.
Definition at line 1519 of file transaction.c. References _free(), _noTransScripts, _noTransTriggers, transactionFileInfo_s::actions, rpmTransactionSet_s::addedPackages, adj_fs_blocks, transactionFileInfo_s::ap, archOkay(), diskspaceInfo::bavail, diskspaceInfo::bneeded, transactionFileInfo_s::bnl, diskspaceInfo::bsize, rpmTransactionSet_s::chrootDone, rpmTransactionSet_s::currDir, currentDirectory(), rpmdb_s::db_chrootDone, dbiFreeIndexSet(), dbiIndexRecordFileNumber(), dbiIndexRecordOffset(), dbiIndexSetCount(), diskspaceInfo::dev, rpmTransactionSet_s::di, transactionFileInfo_s::dil, transactionFileInfo_s::dnl, ensureOlder(), transactionFileInfo_s::fc, availablePackage::fd, availablePackage::filesCount, rpmTransactionSet_s::filesystemCount, rpmTransactionSet_s::filesystems, rpmTransactionSet_s::flEntries, rpmTransactionSet_s::flList, fpCacheCreate(), fpCacheFree(), fpLookupList(), transactionFileInfo_s::fps, freeFl(), transactionFileInfo_s::h, availablePackage::h, handleInstInstalledFiles(), handleOverlappedFiles(), handleRmvdInstalledFiles(), headerFree(), headerGetEntry(), headerLink(), htAddEntry(), htCreate(), htFree(), diskspaceInfo::iavail, rpmTransactionSet_s::id, rpmTransactionSet_s::ignoreSet, diskspaceInfo::ineeded, sharedFileInfo::isRemoved, availablePackage::key, availableList_s::list, loadFi(), transactionFileInfo_s::magic, MNT_DEV_PREFIX, MNT_DEV_PREFIX_LENGTH, availablePackage::multiLib, availablePackage::name, NOTIFY, rpmTransactionSet_s::notify, rpmTransactionSet_s::notifyData, rpmProblemSet_s::numProblems, rpmTransactionSet_s::numRemovedPackages, rpmTransactionSet_s::order, rpmTransactionSet_s::orderCount, osOkay(), sharedFileInfo::otherFileNum, sharedFileInfo::otherPkg, sharedFileInfo::pkgFileNum, rpmTransactionSet_s::probs, psAppend(), psCreate, PSM_PKGERASE, PSM_PKGINSTALL, PSM_PKGSAVE, psmStage(), psTrim(), transactionFileInfo_s::record, availablePackage::release, relocateFileList(), rpmTransactionSet_s::removedPackages, rpmTransactionSet_s::rootDir, RPMCALLBACK_INST_CLOSE_FILE, RPMCALLBACK_INST_OPEN_FILE, RPMCALLBACK_TRANS_PROGRESS, RPMCALLBACK_TRANS_START, RPMCALLBACK_TRANS_STOP, rpmCallbackData, rpmCallbackFunction, rpmTransactionSet_s::rpmdb, rpmdbAppendIterator(), rpmdbFindFpList(), rpmdbFreeIterator(), RPMDBI_PACKAGES, rpmdbInitIterator(), rpmdbNextIterator(), rpmdbSetIteratorRE(), rpmdbSync(), rpmGetFilesystemList(), RPMMIRE_DEFAULT, RPMPROB_BADARCH, RPMPROB_BADOS, RPMPROB_DISKNODES, RPMPROB_DISKSPACE, RPMPROB_FILTER_DISKSPACE, RPMPROB_FILTER_IGNOREARCH, RPMPROB_FILTER_IGNOREOS, RPMPROB_FILTER_OLDPACKAGE, RPMPROB_FILTER_REPLACENEWFILES, RPMPROB_FILTER_REPLACEOLDFILES, RPMPROB_FILTER_REPLACEPKG, RPMPROB_PKG_INSTALLED, rpmprobFilterFlags, rpmRC, RPMRC_BADSIZE, RPMRC_OK, rpmReadPackageHeader(), RPMTAG_BASENAMES, RPMTAG_NAME, RPMTAG_RELEASE, RPMTAG_VERSION, RPMTRANS_FLAG_BUILD_PROBS, RPMTRANS_FLAG_DIRSTASH, RPMTRANS_FLAG_JUSTDB, RPMTRANS_FLAG_MULTILIB, RPMTRANS_FLAG_NOSCRIPTS, RPMTRANS_FLAG_NOTRIGGERS, RPMTRANS_FLAG_REPACKAGE, rpmtransFlags, sharedCmp(), availableList_s::size, skipFiles(), TFIMAGIC, rpmTransactionSet_s::transFlags, tsFreeIterator(), tsGetAlp(), tsGetOc(), tsInitIterator(), tsNextIterator(), transactionElement_s::type, transactionFileInfo_s::type, transactionElement_s::u, availablePackage::version, xcalloc(), XFA_SKIPPING, and xmalloc(). Referenced by rpmErase(), rpmInstall(), rpmRollback(), and rpmtransRun(). |
|
||||||||||||||||
|
Retrieve keys from ordered transaction set.
Definition at line 95 of file transaction.c. References rpmTransactionSet_s::addedPackages, availablePackage::key, availableList_s::list, rpmTransactionSet_s::order, rpmTransactionSet_s::orderCount, transactionElement_s::type, transactionElement_s::u, and xmalloc(). Referenced by py_rpmtransGetKeys(). |
|
||||||||||||
|
Save file handle to be used as stderr when running package scripts.
Definition at line 90 of file transaction.c. References fdLink, and rpmTransactionSet_s::scriptFd. Referenced by rpmtransSetAttr(). |
|
||||||||||||
|
Definition at line 774 of file transaction.c. References sharedFileInfo::otherPkg. Referenced by rpmRunTransactions(). |
|
||||||||||||
|
Definition at line 1253 of file transaction.c. References _, _free(), transactionFileInfo_s::actions, alloca(), transactionFileInfo_s::bnl, transactionFileInfo_s::dc, transactionFileInfo_s::dil, transactionFileInfo_s::dnl, FA_SKIPNETSHARED, FA_SKIPNSTATE, transactionFileInfo_s::fc, transactionFileInfo_s::fflags, transactionFileInfo_s::flangs, transactionFileInfo_s::fmodes, freeSplitString(), rpmExpand(), rpmExpandNumeric(), RPMFILE_DOC, RPMMESS_DEBUG, rpmMessage, RPMTRANS_FLAG_NODOCS, splitString(), rpmTransactionSet_s::transFlags, whatis(), XDIR, and XFA_SKIPPING. Referenced by rpmRunTransactions(). |
|
|
Destroy transaction element iterator.
Definition at line 1468 of file transaction.c. References _free(). Referenced by rpmRunTransactions(). |
|
|
Return transaction element available package pointer.
Definition at line 1447 of file transaction.c. References rpmTransactionSet_s::addedPackages, rpmTransactionSet_s::flList, availableList_s::list, tsIterator_s::ocsave, rpmTransactionSet_s::order, tsIterator_s::ts, transactionFileInfo_s::type, and transactionElement_s::u. Referenced by rpmRunTransactions(). |
|
|
Return transaction element order count.
Definition at line 1434 of file transaction.c. References tsIterator_s::ocsave. Referenced by rpmRunTransactions(). |
|
|
Create transaction element iterator.
Definition at line 1479 of file transaction.c. References tsIterator_s::oc, tsIterator_s::ocsave, rpmTransactionSet_s::orderCount, tsIterator_s::reverse, RPMTRANS_FLAG_REVERSE, rpmTransactionSet_s::transFlags, tsIterator_s::ts, and xcalloc(). Referenced by rpmRunTransactions(). |
|
|
Return next transaction element's file info.
Definition at line 1498 of file transaction.c. References rpmTransactionSet_s::flList, tsIterator_s::oc, tsIterator_s::ocsave, rpmTransactionSet_s::orderCount, tsIterator_s::reverse, and tsIterator_s::ts. Referenced by rpmRunTransactions(). |
|
|
Definition at line 289 of file transaction.c. References BDEV, CDEV, fileTypes, LINK, PIPE, REG, S_ISLNK, S_ISSOCK, SOCK, uint_16, and XDIR. Referenced by decideFileFate(), filecmp(), relocateFileList(), and skipFiles(). |
|
|
Definition at line 127 of file transaction.c. Referenced by rpmRunTransactions(). |
1.2.18