#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.
Defines | |
#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 | |
static void * | freeFl (rpmTransactionSet ts, TFI_t flList) |
void | rpmtransSetScriptFd (rpmTransactionSet ts, FD_t fd) |
int | rpmtransGetKeys (const rpmTransactionSet ts, const void ***ep, int *nep) |
static rpmProblemSet | psCreate (void) |
static void | psAppend (rpmProblemSet probs, rpmProblemType type, const struct availablePackage *alp, const char *dn, const char *bn, Header altH, unsigned long ulong1) |
static int | archOkay (Header h) |
static int | osOkay (Header h) |
void | rpmProblemSetFree (rpmProblemSet probs) |
Destroy problem set. | |
static const char *const | ftstring (fileTypes ft) |
static fileTypes | whatis (uint_16 mode) |
static Header | relocateFileList (const rpmTransactionSet ts, TFI_t fi, struct availablePackage *alp, Header origH, fileAction *actions) |
Relocate files in header. | |
static int | psTrim (rpmProblemSet filter, rpmProblemSet target) |
static int | sharedCmp (const void *one, const void *two) |
static 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) |
static int | filecmp (short mode1, const char *md51, const char *link1, short mode2, const char *md52, const char *link2) |
static int | handleInstInstalledFiles (TFI_t fi, rpmdb db, struct sharedFileInfo *shared, int sharedCount, int reportConflicts, rpmProblemSet probs, rpmtransFlags transFlags) |
static int | handleRmvdInstalledFiles (TFI_t fi, rpmdb db, struct sharedFileInfo *shared, int sharedCount) |
static void | handleOverlappedFiles (TFI_t fi, hashTable ht, rpmProblemSet probs, struct diskspaceInfo *dsl) |
Update disk space needs on each partition for this package. | |
static int | ensureOlder (struct availablePackage *alp, Header old, rpmProblemSet probs) |
static void | skipFiles (const rpmTransactionSet ts, TFI_t fi) |
static int | tsGetOc (void *a) |
Return transaction element order count. | |
static struct availablePackage * | tsGetAlp (void *a) |
Return transaction element available package pointer. | |
static void * | tsFreeIterator (const void *a) |
Destroy transaction element iterator. | |
static void * | tsInitIterator (const void *a) |
Create transaction element iterator. | |
static 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) |
Definition in file transaction.c.
|
Definition at line 62 of file transaction.c. Referenced by rpmRunTransactions(). |
|
Definition at line 298 of file transaction.c. |
|
Definition at line 66 of file transaction.c. Referenced by handleOverlappedFiles(). |
|
Definition at line 1514 of file transaction.c. Referenced by rpmRunTransactions(). |
|
Definition at line 68 of file transaction.c. Referenced by psTrim(). |
|
Definition at line 200 of file transaction.c. References headerGetEntry(), RPM_INT8_TYPE, RPM_MACHTABLE_INSTARCH, rpmGetArchInfo(), rpmMachineScore(), and RPMTAG_ARCH. Referenced by rpmRunTransactions(). |
|
Definition at line 785 of file transaction.c. References _, alloca(), domd5(), FA_ALTNAME, FA_CREATE, FA_SAVE, FA_SKIP, LINK, REG, RPMFILE_MISSINGOK, RPMFILE_NOREPLACE, RPMMESS_DEBUG, rpmMessage, RPMTRANS_FLAG_ALLFILES, stpcpy(), whatis(), and XDIR. Referenced by handleInstInstalledFiles(). |
|
Definition at line 1231 of file transaction.c. References psAppend(), RPMPROB_OLDPACKAGE, and rpmVersionCompare(). Referenced by rpmRunTransactions(). |
|
Definition at line 878 of file transaction.c. References LINK, REG, and whatis(). Referenced by handleInstInstalledFiles(), and handleOverlappedFiles(). |
|
Definition at line 70 of file transaction.c. References _free(), and freeFi(). Referenced by rpmRunTransactions(). |
|
Definition at line 270 of file transaction.c. References BDEV, CDEV, LINK, PIPE, REG, SOCK, and XDIR. Referenced by relocateFileList(). |
|
|
|
Definition at line 991 of file transaction.c. References transactionFileInfo_s::actions, FA_SKIP, transactionFileInfo_s::hge, rpmdbFreeIterator(), RPMDBI_PACKAGES, rpmdbInitIterator(), rpmdbNextIterator(), RPMFILE_STATE_NORMAL, and RPMTAG_FILESTATES. Referenced by rpmRunTransactions(). |
|
Definition at line 231 of file transaction.c. References headerGetEntry(), RPM_INT8_TYPE, RPM_MACHTABLE_INSTOS, rpmMachineScore(), and RPMTAG_OS. Referenced by rpmRunTransactions(). |
|
Definition at line 136 of file transaction.c. References rpmProblem_s::altNEVR, rpmProblem_s::h, headerLink(), headerNVR(), rpmProblem_s::ignoreProblem, rpmProblem_s::key, rpmProblemSet_s::numProblems, rpmProblemSet_s::numProblemsAlloced, rpmProblem_s::pkgNEVR, rpmProblemSet_s::probs, stpcpy(), rpmProblem_s::str1, rpmProblem_s::type, rpmProblem_s::ulong1, xmalloc(), and xrealloc(). Referenced by ensureOlder(), handleInstInstalledFiles(), handleOverlappedFiles(), relocateFileList(), and rpmRunTransactions(). |
|
Definition at line 124 of file transaction.c. References rpmProblemSet_s::numProblems, rpmProblemSet_s::numProblemsAlloced, rpmProblemSet_s::probs, and xmalloc(). Referenced by rpmRunTransactions(). |
|
Definition at line 734 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 256 of file transaction.c. References _free(), rpmProblem_s::altNEVR, rpmProblem_s::h, headerFree(), rpmProblem_s::pkgNEVR, rpmProblemSet_s::probs, and rpmProblem_s::str1. Referenced by rpmInstall(), rpmRollback(), and rpmtransRun(). |
|
Definition at line 771 of file transaction.c. References sharedFileInfo::otherPkg. Referenced by rpmRunTransactions(). |
|
Definition at line 1250 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::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 1465 of file transaction.c. References _free(). Referenced by rpmRunTransactions(). |
|
Return transaction element available package pointer.
Definition at line 1444 of file transaction.c. References transactionElement_s::addedIndex, 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 1431 of file transaction.c. References tsIterator_s::ocsave. Referenced by rpmRunTransactions(). |
|
Create transaction element iterator.
Definition at line 1476 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 1495 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 286 of file transaction.c. References BDEV, CDEV, LINK, PIPE, REG, S_ISLNK, S_ISSOCK, SOCK, and XDIR. Referenced by decideFileFate(), filecmp(), relocateFileList(), and skipFiles(). |