#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 | 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) |
Save file handle to be used as stderr when running package scripts. | |
int | rpmtransGetKeys (const rpmTransactionSet ts, const void ***ep, int *nep) |
Retrieve keys from ordered transaction set. | |
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) |
Process all packages in transaction set. |
Definition in file transaction.c.
|
Definition at line 62 of file transaction.c. |
|
Definition at line 298 of file transaction.c. |
|
Definition at line 66 of file transaction.c. |
|
Definition at line 1514 of file transaction.c. |
|
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. |
|
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, rpmMessage, RPMTRANS_FLAG_ALLFILES, stpcpy(), whatis(), and XDIR. |
|
Definition at line 1231 of file transaction.c. References availablePackage::h, psAppend(), RPMPROB_OLDPACKAGE, and rpmVersionCompare(). |
|
Definition at line 878 of file transaction.c. References LINK, REG, and whatis(). Referenced by handleInstInstalledFiles(). |
|
Definition at line 70 of file transaction.c. References _free(), freeFi(), and rpmTransactionSet_s::orderCount. |
|
Definition at line 270 of file transaction.c. |
|
|
Update disk space needs on each partition for this package.
Definition at line 1032 of file transaction.c. References transactionFileInfo_s::actions, transactionFileInfo_s::bnl, transactionFileInfo_s::dil, transactionFileInfo_s::dnl, transactionFileInfo_s::fc, recs, XFA_SKIPPING, and xrealloc(). |
|
Definition at line 991 of file transaction.c. References transactionFileInfo_s::actions, FA_SKIP, transactionFileInfo_s::hge, sharedFileInfo::otherFileNum, sharedFileInfo::otherPkg, sharedFileInfo::pkgFileNum, rpmdbFreeIterator(), RPMDBI_PACKAGES, rpmdbInitIterator(), rpmdbNextIterator(), RPMFILE_STATE_NORMAL, and RPMTAG_FILESTATES. |
|
Definition at line 231 of file transaction.c. References headerGetEntry(), RPM_INT8_TYPE, RPM_MACHTABLE_INSTOS, rpmMachineScore(), and RPMTAG_OS. |
|
|
Definition at line 124 of file transaction.c. References 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. |
|
Relocate files in header.
Definition at line 310 of file transaction.c. References alloca(), alloca_strdup, transactionFileInfo_s::hae, headerCopy(), headerFreeData(), headerIsEntry(), headerLink(), transactionFileInfo_s::hfd, transactionFileInfo_s::hge, transactionFileInfo_s::hme, rpmTransactionSet_s::ignoreSet, rpmTransactionSet_s::probs, psAppend(), availablePackage::relocs, RPMPROB_BADRELOCATE, RPMPROB_FILTER_FORCERELOCATE, RPMTAG_INSTPREFIXES, RPMTAG_PREFIXES, and stripTrailingChar(). |
|
Destroy problem set.
Definition at line 256 of file transaction.c. References _free(), rpmProblem_s::h, headerFree(), rpmProblemSet_s::numProblems, and rpmProblemSet_s::probs. Referenced by rpmRollback(), and rpmtransRun(). |
|
Definition at line 771 of file transaction.c. References sharedFileInfo::otherPkg. |
|
|
Destroy transaction element iterator.
Definition at line 1465 of file transaction.c. References _free(). |
|
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. |
|
Return transaction element order count.
Definition at line 1431 of file transaction.c. References tsIterator_s::oc, and tsIterator_s::ocsave. |
|
Create transaction element iterator.
Definition at line 1476 of file transaction.c. References rpmTransactionSet_s::orderCount, RPMTRANS_FLAG_REVERSE, rpmTransactionSet_s::transFlags, tsIterator_s::ts, and xcalloc(). |
|
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. |
|
Definition at line 286 of file transaction.c. References BDEV, CDEV, LINK, PIPE, REG, S_ISLNK, S_ISSOCK, SOCK, and XDIR. Referenced by decideFileFate(), and filecmp(). |