#include "system.h"
#include <rpmio_internal.h>
#include <rpmlib.h>
#include "cpio.h"
#include "fsm.h"
#include "rpmds.h"
#include "legacy.h"
#include "rpmfi.h"
#include "rpmte.h"
#include "rpmts.h"
#include "misc.h"
#include "rpmmacro.h"
#include "debug.h"
Include dependency graph for rpmfi.c:
Go to the source code of this file.
Defines | |
#define | _RPMFI_INTERNAL |
#define | _RPMTE_INTERNAL |
#define | alloca_strdup(_s) strcpy(alloca(strlen(_s)+1), (_s)) |
#define | _fdupe(_fi, _data) |
#define | _fdupestring(_h, _tag, _data) |
Functions | |
rpmfi | XrpmfiUnlink (rpmfi fi, const char *msg, const char *fn, unsigned ln) |
rpmfi | XrpmfiLink (rpmfi fi, const char *msg, const char *fn, unsigned ln) |
int | rpmfiFC (rpmfi fi) |
Return file count from file info set. | |
int | rpmfiDC (rpmfi fi) |
Return directory count from file info set. | |
int | rpmfiFX (rpmfi fi) |
Return current file index from file info set. | |
int | rpmfiSetFX (rpmfi fi, int fx) |
Set current file index in file info set. | |
int | rpmfiDX (rpmfi fi) |
Return current directory index from file info set. | |
int | rpmfiSetDX (rpmfi fi, int dx) |
Set current directory index in file info set. | |
const char * | rpmfiBN (rpmfi fi) |
Return current base name from file info set. | |
const char * | rpmfiDN (rpmfi fi) |
Return current directory name from file info set. | |
const char * | rpmfiFN (rpmfi fi) |
Return current file name from file info set. | |
uint_32 | rpmfiFFlags (rpmfi fi) |
Return current file flags from file info set. | |
uint_32 | rpmfiSetFFlags (rpmfi fi, uint_32 FFlags) |
Set current file flags in file info set. | |
uint_32 | rpmfiVFlags (rpmfi fi) |
Return current file verify flags from file info set. | |
uint_32 | rpmfiSetVFlags (rpmfi fi, uint_32 VFlags) |
Set current file verify flags in file info set. | |
int_16 | rpmfiFMode (rpmfi fi) |
Return current file mode from file info set. | |
rpmfileState | rpmfiFState (rpmfi fi) |
Return current file state from file info set. | |
rpmfileState | rpmfiSetFState (rpmfi fi, rpmfileState fstate) |
Set current file state in file info set. | |
const unsigned char * | rpmfiDigest (rpmfi fi, int *algop, size_t *lenp) |
Return current file (binary) digest from file info set. | |
const char * | rpmfiFLink (rpmfi fi) |
Return current file linkto (i.e. | |
int_32 | rpmfiFSize (rpmfi fi) |
Return current file size from file info set. | |
int_16 | rpmfiFRdev (rpmfi fi) |
Return current file rdev from file info set. | |
int_32 | rpmfiFInode (rpmfi fi) |
Return current file inode from file info set. | |
uint_32 | rpmfiColor (rpmfi fi) |
Return union of all file color bits from file info set. | |
uint_32 | rpmfiFColor (rpmfi fi) |
Return current file color bits from file info set. | |
const char * | rpmfiFClass (rpmfi fi) |
Return current file class from file info set. | |
const char * | rpmfiFContext (rpmfi fi) |
Return current file security context from file info set. | |
int_32 | rpmfiFDepends (rpmfi fi, const uint_32 **fddictp) |
Return current file depends dictionary from file info set. | |
int_32 | rpmfiFNlink (rpmfi fi) |
Return (calculated) current file nlink count from file info set. | |
int_32 | rpmfiFMtime (rpmfi fi) |
Return current file modify time from file info set. | |
const char * | rpmfiFUser (rpmfi fi) |
Return current file owner from file info set. | |
const char * | rpmfiFGroup (rpmfi fi) |
Return current file group from file info set. | |
int | rpmfiNext (rpmfi fi) |
Return next file iterator index. | |
rpmfi | rpmfiInit (rpmfi fi, int fx) |
Initialize file iterator index. | |
int | rpmfiNextD (rpmfi fi) |
Return next directory iterator index. | |
rpmfi | rpmfiInitD (rpmfi fi, int dx) |
Initialize directory iterator index. | |
static const char * | ftstring (fileTypes ft) |
Identify a file type. | |
fileTypes | whatis (uint_16 mode) |
Return file type from mode_t. | |
int | rpmfiCompare (const rpmfi afi, const rpmfi bfi) |
Return file info comparison. | |
fileAction | rpmfiDecideFate (const rpmfi ofi, rpmfi nfi, int skipMissing) |
Return file disposition. | |
const char * | rpmfiTypeString (rpmfi fi) |
Return formatted string representation of package disposition. | |
static Header | relocateFileList (const rpmts ts, rpmfi fi, Header origH, fileAction *actions) |
Relocate files in header. | |
rpmfi | rpmfiFree (rpmfi fi) |
Destroy a file info set. | |
static unsigned char | nibble (char c) |
Convert hex to binary nibble. | |
rpmfi | rpmfiNew (const rpmts ts, Header h, rpmTag tagN, int flags) |
Create and load a file info set. | |
void | rpmfiBuildFClasses (Header h, const char ***fclassp, int *fcp) |
Retrieve file classes from header. | |
void | rpmfiBuildFContexts (Header h, const char ***fcontextp, int *fcp) |
Retrieve file security contexts from header. | |
void | rpmfiBuildFSContexts (Header h, const char ***fcontextp, int *fcp) |
Retrieve file security contexts from file system. | |
void | rpmfiBuildREContexts (Header h, const char ***fcontextp, int *fcp) |
Retrieve file security contexts from policy RE's. | |
void | rpmfiBuildFDeps (Header h, rpmTag tagN, const char ***fdepsp, int *fcp) |
Retrieve per-file dependencies from header. | |
Variables | |
int | _rpmfi_debug = 0 |
Definition in file rpmfi.c.
|
Value: if ((_fi)->_data != NULL) \ (_fi)->_data = memcpy(xmalloc((_fi)->fc * sizeof(*(_fi)->_data)), \ (_fi)->_data, (_fi)->fc * sizeof(*(_fi)->_data)) Definition at line 1271 of file rpmfi.c. Referenced by rpmfiNew(). |
|
Value: if (hge((_h), (_tag), NULL, &(_data), NULL)) \ _data = xstrdup(_data) Definition at line 1277 of file rpmfi.c. Referenced by rpmfiNew(). |
|
|
|
|
|
|
|
Identify a file type.
Definition at line 541 of file rpmfi.c. References BDEV, CDEV, LINK, PIPE, REG, SOCK, and XDIR. Referenced by relocateFileList(). |
|
Convert hex to binary nibble.
|
|
|
Return current base name from file info set.
Definition at line 109 of file rpmfi.c. Referenced by handleInstInstalledFiles(), rpmalAdd(), rpmfi_BN(), and skipFiles(). |
|
Retrieve file classes from header. This function is used to retrieve file classes from the header.
Definition at line 1566 of file rpmfi.c. References _free(), rpmfiFC(), rpmfiFClass(), rpmfiFree(), rpmfiInit(), rpmfiNew(), rpmfiNext(), RPMTAG_BASENAMES, stpcpy(), and xmalloc(). Referenced by fileclassTag(). |
|
Retrieve file security contexts from header. This function is used to retrieve file contexts from the header.
Definition at line 1621 of file rpmfi.c. References _free(), rpmfiFC(), rpmfiFContext(), rpmfiFree(), rpmfiInit(), rpmfiNew(), rpmfiNext(), RPMTAG_BASENAMES, stpcpy(), and xmalloc(). Referenced by filecontextsTag(). |
|
Retrieve per-file dependencies from header. This function is used to retrieve per-file dependencies from the header.
Definition at line 1827 of file rpmfi.c. References _free(), rpmdsDNEVR(), rpmdsFree(), rpmdsNew(), rpmdsNext(), rpmdsSetIx(), rpmfiFC(), rpmfiFDepends(), rpmfiFree(), rpmfiInit(), rpmfiNew(), rpmfiNext(), RPMTAG_BASENAMES, RPMTAG_PROVIDENAME, RPMTAG_REQUIRENAME, stpcpy(), and xmalloc(). Referenced by fileprovideTag(), and filerequireTag(). |
|
Retrieve file security contexts from file system. This function is used to retrieve file contexts from the file system.
Definition at line 1676 of file rpmfi.c. References _free(), alloca(), freecon, lgetfilecon, rpmfiFC(), rpmfiFN(), rpmfiFree(), rpmfiInit(), rpmfiNew(), rpmfiNext(), RPMTAG_BASENAMES, xmalloc(), and xrealloc(). Referenced by fscontextsTag(). |
|
Retrieve file security contexts from policy RE's. This function is used to retrieve file contexts from policy RE's.
Definition at line 1747 of file rpmfi.c. References _free(), alloca(), freecon, matchpathcon, matchpathcon_init, rpmfiFC(), rpmfiFMode(), rpmfiFN(), rpmfiFree(), rpmfiInit(), rpmfiNew(), rpmfiNext(), rpmGetPath(), RPMTAG_BASENAMES, xmalloc(), and xrealloc(). Referenced by recontextsTag(). |
|
Return union of all file color bits from file info set.
|
|
Return file info comparison.
Definition at line 571 of file rpmfi.c. References LINK, REG, rpmfiDigest(), rpmfiFLink(), rpmfiFMode(), and whatis(). Referenced by handleInstInstalledFiles(), and handleOverlappedFiles(). |
|
Return directory count from file info set.
Definition at line 63 of file rpmfi.c. Referenced by rpmalAdd(), rpmalDel(), rpmfi_DC(), and skipFiles(). |
|
Return file disposition.
Definition at line 607 of file rpmfi.c. References D_, dodigest(), FA_ALTNAME, FA_CREATE, FA_SAVE, FA_SKIP, LINK, REG, rpmfiDigest(), rpmfiFFlags(), rpmfiFLink(), rpmfiFMode(), rpmfiFN(), RPMFILE_MISSINGOK, RPMFILE_NOREPLACE, RPMFILE_SPARSE, RPMMESS_DEBUG, rpmMessage, save, whatis(), and XDIR. Referenced by handleInstInstalledFiles(). |
|
Return current file (binary) digest from file info set.
Definition at line 254 of file rpmfi.c. Referenced by handleOverlappedFiles(), rpmfi_iternext(), rpmfi_MD5(), rpmfiCompare(), rpmfiDecideFate(), rpmVerifyFile(), and showQueryPackage(). |
|
Return current directory name from file info set.
Definition at line 122 of file rpmfi.c. Referenced by handleInstInstalledFiles(), rpmalAdd(), rpmalDel(), rpmfi_DN(), and skipFiles(). |
|
Return current directory index from file info set.
Definition at line 93 of file rpmfi.c. Referenced by rpmalAdd(), rpmfi_DX(), and skipFiles(). |
|
Return file count from file info set.
Definition at line 58 of file rpmfi.c. Referenced by handleOverlappedFiles(), markReplacedFiles(), populateInstallHeader(), postPopulateInstallHeader(), rpmalAdd(), rpmalDel(), rpmfcGenerateDepends(), rpmfi_FC(), rpmfi_length(), rpmfiBuildFClasses(), rpmfiBuildFContexts(), rpmfiBuildFDeps(), rpmfiBuildFSContexts(), rpmfiBuildREContexts(), rpmpsmStage(), rpmteColorDS(), rpmtsCheckDSIProblems(), rpmtsRun(), and showQueryPackage(). |
|
Return current file class from file info set.
Definition at line 349 of file rpmfi.c. Referenced by rpmfi_FClass(), and rpmfiBuildFClasses(). |
|
Return current file color bits from file info set.
Definition at line 335 of file rpmfi.c. Referenced by handleInstInstalledFiles(), handleOverlappedFiles(), rpmalAdd(), rpmfi_FColor(), rpmteColorDS(), and skipFiles(). |
|
Return current file security context from file info set.
Definition at line 364 of file rpmfi.c. Referenced by rpmfiBuildFContexts(). |
|
Return current file depends dictionary from file info set.
Definition at line 377 of file rpmfi.c. Referenced by rpmfiBuildFDeps(), and rpmteColorDS(). |
|
Return current file flags from file info set.
Definition at line 157 of file rpmfi.c. Referenced by handleInstInstalledFiles(), handleOverlappedFiles(), rpmfcGenerateDepends(), rpmfi_FFlags(), rpmfi_iternext(), rpmfiDecideFate(), rpmtsRun(), rpmVerifyFile(), showQueryPackage(), skipFiles(), and verifyHeader(). |
|
Return current file group from file info set.
Definition at line 449 of file rpmfi.c. Referenced by rpmfi_FGroup(), rpmfi_iternext(), rpmVerifyFile(), and showQueryPackage(). |
|
Return current file inode from file info set.
Definition at line 312 of file rpmfi.c. Referenced by rpmfi_iternext(). |
|
Return current file linkto (i.e. symlink(2) target) from file info set.
Definition at line 273 of file rpmfi.c. Referenced by rpmfi_FLink(), rpmfiCompare(), rpmfiDecideFate(), rpmVerifyFile(), and showQueryPackage(). |
|
Return current file mode from file info set.
Definition at line 213 of file rpmfi.c. Referenced by handleInstInstalledFiles(), handleOverlappedFiles(), rpmfcGenerateDepends(), rpmfi_FMode(), rpmfi_iternext(), rpmfiBuildREContexts(), rpmfiCompare(), rpmfiDecideFate(), rpmVerifyFile(), showQueryPackage(), and skipFiles(). |
|
Return current file modify time from file info set.
Definition at line 422 of file rpmfi.c. Referenced by rpmfi_FMtime(), rpmfi_iternext(), rpmVerifyFile(), and showQueryPackage(). |
|
Return current file name from file info set.
Definition at line 135 of file rpmfi.c. References stpcpy(), urlPath(), and xmalloc(). Referenced by handleOverlappedFiles(), rpmalAdd(), rpmfcGenerateDepends(), rpmfcGenerateDependsHelper(), rpmfi_FN(), rpmfi_iternext(), rpmfi_print(), rpmfi_subscript(), rpmfiBuildFSContexts(), rpmfiBuildREContexts(), rpmfiDecideFate(), rpmtsCheck(), rpmtsRun(), rpmVerifyFile(), showQueryPackage(), and verifyHeader(). |
|
Return (calculated) current file nlink count from file info set.
Definition at line 400 of file rpmfi.c. Referenced by rpmfi_iternext(), and showQueryPackage(). |
|
Return current file rdev from file info set.
Definition at line 299 of file rpmfi.c. Referenced by rpmfi_FRdev(), rpmfi_iternext(), rpmVerifyFile(), and showQueryPackage(). |
|
Destroy a file info set.
Definition at line 1169 of file rpmfi.c. References _free(), _rpmfi_debug, freeFSM(), headerFree(), headerFreeData(), and rpmfiUnlink. Referenced by delTE(), freePackage(), freeSpec(), genCpioListAndHeader(), handleInstInstalledFiles(), packageBinaries(), packageSources(), rpmalDel(), rpmalFree(), rpmfi_dealloc(), rpmfi_free(), rpmfiBuildFClasses(), rpmfiBuildFContexts(), rpmfiBuildFDeps(), rpmfiBuildFSContexts(), rpmfiBuildREContexts(), rpmInstallSourcePackage(), rpmpsmFree(), rpmtsAddAvailableElement(), rpmtsRun(), showQueryPackage(), and showVerifyPackage(). |
|
Return current file size from file info set.
Definition at line 286 of file rpmfi.c. Referenced by handleInstInstalledFiles(), handleOverlappedFiles(), rpmfi_FSize(), rpmfi_iternext(), rpmVerifyFile(), and showQueryPackage(). |
|
Return current file state from file info set.
Definition at line 226 of file rpmfi.c. References RPMFILE_STATE_MISSING. Referenced by handleOverlappedFiles(), rpmfi_FState(), rpmfi_iternext(), rpmVerifyFile(), and showQueryPackage(). |
|
Return current file owner from file info set.
Definition at line 435 of file rpmfi.c. Referenced by rpmfi_FUser(), rpmfi_iternext(), rpmVerifyFile(), and showQueryPackage(). |
|
Return current file index from file info set.
Definition at line 74 of file rpmfi.c. Referenced by rpmfi_FX(). |
|
Initialize file iterator index.
Definition at line 487 of file rpmfi.c. Referenced by handleInstInstalledFiles(), handleOverlappedFiles(), rpmalAdd(), rpmfcGenerateDepends(), rpmfcGenerateDependsHelper(), rpmfi_iternext(), rpmfi_print(), rpmfiBuildFClasses(), rpmfiBuildFContexts(), rpmfiBuildFDeps(), rpmfiBuildFSContexts(), rpmfiBuildREContexts(), rpmteColorDS(), rpmtsCheck(), rpmtsRun(), showQueryPackage(), skipFiles(), and verifyHeader(). |
|
Initialize directory iterator index.
Definition at line 521 of file rpmfi.c. Referenced by skipFiles(). |
|
Create and load a file info set.
Definition at line 1281 of file rpmfi.c. References _fdupe, _fdupestring, _free(), _rpmfi_debug, CPIO_MAP_GID, CPIO_MAP_MODE, CPIO_MAP_PATH, CPIO_MAP_UID, FA_UNKNOWN, headerAddEntry(), headerFree(), headerFreeData(), headerGetEntry(), headerGetEntryMinMemory(), headerIsEntry(), headerLink(), headerModifyEntry(), headerRemoveEntry(), headerSprintf(), newFSM(), rpmRelocation_s::newPath, nibble(), PGPHASHALGO_CRC32, PGPHASHALGO_MD5, PGPHASHALGO_RIPEMD128, PGPHASHALGO_RIPEMD160, PGPHASHALGO_SHA1, PGPHASHALGO_SHA256, PGPHASHALGO_SHA384, PGPHASHALGO_SHA512, relocateFileList(), rpmfiLink, rpmGetPath(), rpmHeaderFormats, RPMTAG_ARCHIVESIZE, RPMTAG_BASENAMES, RPMTAG_CLASSDICT, RPMTAG_DEPENDSDICT, RPMTAG_DIRINDEXES, RPMTAG_DIRNAMES, RPMTAG_FILECLASS, RPMTAG_FILECOLORS, RPMTAG_FILECONTEXTS, RPMTAG_FILEDEPENDSN, RPMTAG_FILEDEPENDSX, RPMTAG_FILEDIGESTALGOS, RPMTAG_FILEDIGESTS, RPMTAG_FILEFLAGS, RPMTAG_FILEGROUPNAME, RPMTAG_FILEINODES, RPMTAG_FILELANGS, RPMTAG_FILELINKTOS, RPMTAG_FILEMODES, RPMTAG_FILEMTIMES, RPMTAG_FILERDEVS, RPMTAG_FILESIZES, RPMTAG_FILESTATES, RPMTAG_FILEUSERNAME, RPMTAG_FILEVERIFYFLAGS, RPMTAG_ORIGBASENAMES, RPMTAG_POSTTRANS, RPMTAG_POSTTRANSPROG, RPMTAG_PRETRANS, RPMTAG_PRETRANSPROG, RPMTAG_REMOVETID, RPMTAG_SOURCERPM, rpmTagTable, rpmteType(), rpmtsRelocateElement(), TR_ADDED, xcalloc(), xmalloc(), xrealloc(), and xstrdup(). Referenced by addTE(), genCpioListAndHeader(), handleInstInstalledFiles(), hdr_fiFromHeader(), rpmfi_init(), rpmfiBuildFClasses(), rpmfiBuildFContexts(), rpmfiBuildFDeps(), rpmfiBuildFSContexts(), rpmfiBuildREContexts(), rpmInstallSourcePackage(), rpmtsAddAvailableElement(), rpmtsRun(), showQueryPackage(), and showVerifyPackage(). |
|
Return next file iterator index.
Definition at line 463 of file rpmfi.c. References _rpmfi_debug. Referenced by handleInstInstalledFiles(), handleOverlappedFiles(), rpmalAdd(), rpmfcGenerateDepends(), rpmfcGenerateDependsHelper(), rpmfi_iternext(), rpmfi_print(), rpmfiBuildFClasses(), rpmfiBuildFContexts(), rpmfiBuildFDeps(), rpmfiBuildFSContexts(), rpmfiBuildREContexts(), rpmteColorDS(), rpmtsCheck(), rpmtsRun(), showQueryPackage(), skipFiles(), and verifyHeader(). |
|
Return next directory iterator index.
Definition at line 501 of file rpmfi.c. References _rpmfi_debug. Referenced by skipFiles(). |
|
Set current directory index in file info set.
Definition at line 98 of file rpmfi.c. Referenced by rpmalAdd(), and rpmalDel(). |
|
Set current file flags in file info set.
Definition at line 170 of file rpmfi.c. Referenced by rpmtsRun(). |
|
Set current file state in file info set.
|
|
Set current file index in file info set.
Definition at line 79 of file rpmfi.c. Referenced by handleInstInstalledFiles(), handleOverlappedFiles(), and rpmfi_subscript(). |
|
Set current file verify flags in file info set.
|
|
Return formatted string representation of package disposition.
Definition at line 704 of file rpmfi.c. References rpmteType(), TR_ADDED, and TR_REMOVED. Referenced by fsmStage(). |
|
Return current file verify flags from file info set.
Definition at line 185 of file rpmfi.c. Referenced by rpmfi_iternext(), rpmfi_VFlags(), and rpmVerifyFile(). |
|
Return file type from mode_t.
Definition at line 557 of file rpmfi.c. References BDEV, CDEV, LINK, PIPE, REG, S_ISLNK, S_ISSOCK, SOCK, and XDIR. Referenced by relocateFileList(), rpmfiCompare(), rpmfiDecideFate(), and skipFiles(). |
|
Definition at line 47 of file rpmfi.c. References _rpmfi_debug. |
|
Definition at line 36 of file rpmfi.c. References _rpmfi_debug. |
|
|