# lib/rpmfi.c File Reference

Routines to handle file info tag sets. More...

`#include "system.h"`
`#include <rpmio.h>`
`#include <rpmcb.h>`
`#include <rpmurl.h>`
`#include <rpmlib.h>`
`#include "cpio.h"`
`#include "fsm.h"`
`#include "legacy.h"`
`#include "rpmds.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 | _fdupestring(_h, _tag, _data)
#define | _fdupedata(_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.
int | rpmfiIsSource (rpmfi fi)
| Return source rpm marker from 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.
uint32_t | rpmfiFFlags (rpmfi fi)
| Return current file flags from file info set.
uint32_t | rpmfiSetFFlags (rpmfi fi, uint32_t FFlags)
| Set current file flags in file info set.
uint32_t | rpmfiVFlags (rpmfi fi)
| Return current file verify flags from file info set.
uint32_t | rpmfiSetVFlags (rpmfi fi, uint32_t VFlags)
| Set current file verify flags in file info set.
uint16_t | 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.
uint32_t | rpmfiFSize (rpmfi fi)
| Return current file size from file info set.
uint16_t | rpmfiFRdev (rpmfi fi)
| Return current file rdev from file info set.
uint32_t | rpmfiFInode (rpmfi fi)
| Return current file inode from file info set.
uint32_t | rpmfiColor (rpmfi fi)
| Return union of all file color bits from file info set.
uint32_t | 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.
uint32_t | rpmfiFDepends (rpmfi fi, const uint32_t **fddictp)
| Return current file depends dictionary from file info set.
uint32_t | rpmfiFNlink (rpmfi fi)
| Return (calculated) current file nlink count from file info set.
uint32_t | 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 * | rpmfiFtstring (rpmFileTypes ft)
| Identify a file type.
static rpmFileTypes | rpmfiWhatis (uint16_t 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, uint32_t *fcp)
| Retrieve file classes from header.
void | rpmfiBuildFContexts (Header h, const char ***fcontextp, uint32_t *fcp)
| Retrieve file security contexts from header.
void | rpmfiBuildFSContexts (Header h, const char ***fcontextp, uint32_t *fcp)
| Retrieve file security contexts from file system.
void | rpmfiBuildREContexts (Header h, const char ***fcontextp, uint32_t *fcp)
| Retrieve file security contexts from policy RE's.
void | rpmfiBuildFDeps (Header h, rpmTag tagN, const char ***fdepsp, uint32_t *fcp)
| Retrieve per-file dependencies from header.
## Variables
int | _rpmfi_debug = 0

## Detailed Description

Routines to handle file info tag sets.

Definition in file rpmfi.c.

## Define Documentation

#define _fdupedata | ( | _h,
|  | _tag,
|  | _data |  | ) |

Value:

    he->tag = _tag; \
        xx = headerGet((_h), he, 0); \
        _data = he->p.ptr;

Definition at line 1255 of file rpmfi.c.

Referenced by rpmfiNew().

#define _fdupestring | ( | _h,
|  | _tag,
|  | _data |  | ) |

Value:

    he->tag = _tag; \
        xx = headerGet((_h), he, 0); \
        _data = he->p.str;

Definition at line 1250 of file rpmfi.c.

Referenced by rpmfiNew().

#define _RPMFI_INTERNAL

Definition at line 14 of file rpmfi.c.

#define _RPMTE_INTERNAL

Definition at line 20 of file rpmfi.c.

#define alloca_strdup | ( | _s |  | ) | strcpy(alloca(strlen(_s)+1), (_s))

Definition at line 668 of file rpmfi.c.

## Function Documentation

static unsigned char nibble | ( | char | c | ) | `[inline, static]`

Convert hex to binary nibble.

Parameters:

  | c | hex character

Returns:
  binary nibble

Definition at line 1238 of file rpmfi.c.

static Header relocateFileList | ( | const rpmts | ts,
|  | rpmfi | fi,
|  | Header | origH,
|  | fileAction * | actions |
| ) |  |  | `[static]`

Relocate files in header.

Todo:
  multilib file dispositions need to be checked.

Parameters:

  | ts | transaction set
  | fi | transaction element file info
  | origH | package header
  | actions | file dispositions

Returns:
  header with relocated files

Definition at line 680 of file rpmfi.c.

References _free(), alloca(), alloca_strdup, rpmDataType_u::argv, _HE_s::c, D_, FA_SKIPNSTATE, headerGet(), headerIsEntry(), headerLink(), headerMod(), headerPut(), rpmRelocation_s::newPath, rpmRelocation_s::oldPath, _HE_s::p, rpmDataType_u::ptr, RPM_STRING_ARRAY_TYPE, RPM_UINT32_TYPE, rpmCleanPath(), rpmExpandNumeric(), rpmfiFtstring(), rpmfiWhatis(), rpmlog(), RPMLOG_DEBUG, RPMPROB_BADRELOCATE, RPMPROB_FILTER_FORCERELOCATE, rpmpsAppend(), rpmpsFree(), RPMTAG_BASENAMES, RPMTAG_DIRINDEXES, RPMTAG_DIRNAMES, RPMTAG_FILECOLORS, RPMTAG_FILEFLAGS, RPMTAG_FILEMODES, RPMTAG_INSTPREFIXES, RPMTAG_ORIGBASENAMES, RPMTAG_ORIGDIRINDEXES, RPMTAG_ORIGDIRNAMES, RPMTAG_PREFIXES, rpmteKey(), rpmteNEVR(), rpmtsFilterFlags(), rpmtsProblems(), rpmtsRelocateElement(), stpcpy(), stripTrailingChar(), _HE_s::t, _HE_s::tag, rpmDataType_u::ui16p, rpmDataType_u::ui32p, XDIR, xmalloc(), and xrealloc().

Referenced by rpmfiNew().

const char* rpmfiBN | ( | rpmfi | fi | ) |

Return current base name from file info set.

Parameters:

  | fi | file info set

Returns:
  current base name, NULL on invalid

Definition at line 111 of file rpmfi.c.

Referenced by handleInstInstalledFiles(), rpmalAdd(), rpmfi_BN(), and skipFiles().

void rpmfiBuildFClasses | ( | Header | h,
|  | const char *** | fclassp,
|  | uint32_t * | fcp |
| ) |  |  |

Retrieve file classes from header.

This function is used to retrieve file classes from the header.

Parameters:

  | h | header

Return values:

  | *fclassp | array of file classes
  | *fcp | number of files

Definition at line 1557 of file rpmfi.c.

References _free(), rpmfiFC(), rpmfiFClass(), rpmfiFree(), rpmfiInit(), rpmfiNew(), rpmfiNext(), RPMTAG_BASENAMES, stpcpy(), and xmalloc().

Referenced by fileclassTag().

void rpmfiBuildFContexts | ( | Header | h,
|  | const char *** | fcontextp,
|  | uint32_t * | fcp |
| ) |  |  |

Retrieve file security contexts from header.

This function is used to retrieve file contexts from the header.

Parameters:

  | h | header

Return values:

  | *fcontextp | array of file contexts
  | *fcp | number of files

Definition at line 1609 of file rpmfi.c.

References _free(), rpmfiFC(), rpmfiFContext(), rpmfiFree(), rpmfiInit(), rpmfiNew(), rpmfiNext(), RPMTAG_BASENAMES, stpcpy(), and xmalloc().

Referenced by filecontextsTag().

void rpmfiBuildFDeps | ( | Header | h,
|  | rpmTag | tagN,
|  | const char *** | fdepsp,
|  | uint32_t * | fcp |
| ) |  |  |

Retrieve per-file dependencies from header.

This function is used to retrieve per-file dependencies from the header.

Parameters:

  | h | header
  | tagN | RPMTAG_PROVIDENAME | RPMTAG_REQUIRENAME

Return values:

  | *fdepsp | array of file dependencies
  | *fcp | number of files

Definition at line 1814 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().

void rpmfiBuildFSContexts | ( | Header | h,
|  | const char *** | fcontextp,
|  | uint32_t * | fcp |
| ) |  |  |

Retrieve file security contexts from file system.

This function is used to retrieve file contexts from the file system.

Parameters:

  | h | header

Return values:

  | *fcontextp | array of file contexts
  | *fcp | number of files

Definition at line 1661 of file rpmfi.c.

References _free(), alloca(), freecon, lgetfilecon, rpmfiFC(), rpmfiFN(), rpmfiFree(), rpmfiInit(), rpmfiNew(), rpmfiNext(), RPMTAG_BASENAMES, xmalloc(), and xrealloc().

Referenced by fscontextsTag().

void rpmfiBuildREContexts | ( | Header | h,
|  | const char *** | fcontextp,
|  | uint32_t * | fcp |
| ) |  |  |

Retrieve file security contexts from policy RE's.

This function is used to retrieve file contexts from policy RE's.

Parameters:

  | h | header

Return values:

  | *fcontextp | array of file contexts
  | *fcp | number of files

Definition at line 1729 of file rpmfi.c.

References _free(), alloca(), freecon, matchpathcon, matchpathcon_fini, matchpathcon_init, rpmfiFC(), rpmfiFMode(), rpmfiFN(), rpmfiFree(), rpmfiInit(), rpmfiNew(), rpmfiNext(), rpmGetPath(), RPMTAG_BASENAMES, xmalloc(), and xrealloc().

Referenced by recontextsTag().

uint32_t rpmfiColor | ( | rpmfi | fi | ) |

Return union of all file color bits from file info set.

Parameters:

  | fi | file info set

Returns:
  current color

Definition at line 295 of file rpmfi.c.

int rpmfiCompare | ( | const rpmfi | afi,
|  | const rpmfi | bfi |
| ) |  |  |

Return file info comparison.

Parameters:

  | afi | 1st file info
  | bfi | 2nd file info

Returns:
  0 if identical

Definition at line 528 of file rpmfi.c.

References LINK, REG, rpmfiDigest(), rpmfiFLink(), rpmfiFMode(), and rpmfiWhatis().

Referenced by handleInstInstalledFiles(), and handleOverlappedFiles().

int rpmfiDC | ( | rpmfi | fi | ) |

Return directory count from file info set.

Parameters:

  | fi | file info set

Returns:
  current directory count

Definition at line 62 of file rpmfi.c.

Referenced by rpmalAdd(), rpmalDel(), rpmfi_DC(), and skipFiles().

fileAction rpmfiDecideFate | ( | const rpmfi | ofi,
|  | rpmfi | nfi,
|  | int | skipMissing |
| ) |  |  |

Return file disposition.

Parameters:

  | ofi | old file info
  | nfi | new file info
  | skipMissing | OK to skip missing files?

Returns:
  file dispostion

Definition at line 562 of file rpmfi.c.

References D_, dodigest(), FA_ALTNAME, FA_CREATE, FA_SAVE, FA_SKIP, LINK, Lstat(), REG, rpmfiDigest(), rpmfiFFlags(), rpmfiFLink(), rpmfiFMode(), rpmfiFN(), RPMFILE_MISSINGOK, RPMFILE_NOREPLACE, RPMFILE_SPARSE, rpmfiWhatis(), rpmlog(), RPMLOG_DEBUG, save(), and XDIR.

Referenced by handleInstInstalledFiles().

const unsigned char* rpmfiDigest | ( | rpmfi | fi,
|  | int * | algop,
|  | size_t * | lenp |
| ) |  |  |

Return current file (binary) digest from file info set.

Parameters:

  | fi | file info set

Return values:

  | *algop | digest algorithm
  | *lenp | digest length (in bytes)

Returns:
  current file digest, NULL on invalid

Definition at line 234 of file rpmfi.c.

Referenced by handleOverlappedFiles(), rpmfi_iternext(), rpmfi_MD5(), rpmfiCompare(), rpmfiDecideFate(), rpmVerifyFile(), and showQueryPackage().

const char* rpmfiDN | ( | rpmfi | fi | ) |

Return current directory name from file info set.

Parameters:

  | fi | file info set

Returns:
  current directory, NULL on invalid

Definition at line 122 of file rpmfi.c.

Referenced by handleInstInstalledFiles(), rpmalAdd(), rpmalDel(), rpmfi_DN(), and skipFiles().

int rpmfiDX | ( | rpmfi | fi | ) |

Return current directory index from file info set.

Parameters:

  | fi | file info set

Returns:
  current directory index

Definition at line 90 of file rpmfi.c.

Referenced by rpmalAdd(), rpmfi_DX(), and skipFiles().

int rpmfiFC | ( | rpmfi | fi | ) |

Return file count from file info set.

Parameters:

  | fi | file info set

Returns:
  current file count

Definition at line 57 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().

const char* rpmfiFClass | ( | rpmfi | fi | ) |

Return current file class from file info set.

Parameters:

  | fi | file info set

Returns:
  current file class, 0 on invalid

Definition at line 317 of file rpmfi.c.

Referenced by rpmfi_FClass(), and rpmfiBuildFClasses().

uint32_t rpmfiFColor | ( | rpmfi | fi | ) |

Return current file color bits from file info set.

Parameters:

  | fi | file info set

Returns:
  current file color

Definition at line 305 of file rpmfi.c.

Referenced by handleInstInstalledFiles(), handleOverlappedFiles(), rpmalAdd(), rpmfi_FColor(), rpmteColorDS(), and skipFiles().

const char* rpmfiFContext | ( | rpmfi | fi | ) |

Return current file security context from file info set.

Parameters:

  | fi | file info set

Returns:
  current file context, 0 on invalid

Definition at line 330 of file rpmfi.c.

Referenced by rpmfiBuildFContexts().

uint32_t rpmfiFDepends | ( | rpmfi | fi,
|  | const uint32_t ** | fddictp |
| ) |  |  |

Return current file depends dictionary from file info set.

Parameters:

  | fi | file info set

Return values:

  | *fddictp | file depends dictionary array (or NULL)

Returns:
  no. of file depends entries, 0 on invalid

Definition at line 341 of file rpmfi.c.

Referenced by rpmfiBuildFDeps(), and rpmteColorDS().

uint32_t rpmfiFFlags | ( | rpmfi | fi | ) |

Return current file flags from file info set.

Parameters:

  | fi | file info set

Returns:
  current file flags, 0 on invalid

Definition at line 151 of file rpmfi.c.

Referenced by handleInstInstalledFiles(), handleOverlappedFiles(), rpmfcGenerateDepends(), rpmfi_FFlags(), rpmfi_iternext(), rpmfiDecideFate(), rpmtsRun(), rpmVerifyFile(), showQueryPackage(), skipFiles(), and verifyHeader().

const char* rpmfiFGroup | ( | rpmfi | fi | ) |

Return current file group from file info set.

Parameters:

  | fi | file info set

Returns:
  current file group, NULL on invalid

Definition at line 405 of file rpmfi.c.

Referenced by rpmfi_FGroup(), rpmfi_iternext(), rpmVerifyFile(), and showQueryPackage().

uint32_t rpmfiFInode | ( | rpmfi | fi | ) |

Return current file inode from file info set.

Parameters:

  | fi | file info set

Returns:
  current file inode, 0 on invalid

Definition at line 284 of file rpmfi.c.

Referenced by rpmfi_iternext().

const char* rpmfiFLink | ( | rpmfi | fi | ) |

Return current file linkto (i.e.

symlink(2) target) from file info set.

Parameters:

  | fi | file info set

Returns:
  current file linkto, NULL on invalid

Definition at line 251 of file rpmfi.c.

Referenced by rpmfi_FLink(), rpmfiCompare(), rpmfiDecideFate(), rpmVerifyFile(), and showQueryPackage().

uint16_t rpmfiFMode | ( | rpmfi | fi | ) |

Return current file mode from file info set.

Parameters:

  | fi | file info set

Returns:
  current file mode, 0 on invalid

Definition at line 199 of file rpmfi.c.

Referenced by handleInstInstalledFiles(), handleOverlappedFiles(), rpmfcGenerateDepends(), rpmfi_FMode(), rpmfi_iternext(), rpmfiBuildREContexts(), rpmfiCompare(), rpmfiDecideFate(), rpmVerifyFile(), showQueryPackage(), and skipFiles().

uint32_t rpmfiFMtime | ( | rpmfi | fi | ) |

Return current file modify time from file info set.

Parameters:

  | fi | file info set

Returns:
  current file modify time, 0 on invalid

Definition at line 382 of file rpmfi.c.

Referenced by rpmfi_FMtime(), rpmfi_iternext(), rpmVerifyFile(), and showQueryPackage().

const char* rpmfiFN | ( | rpmfi | fi | ) |

Return current file name from file info set.

Parameters:

  | fi | file info set

Returns:
  current file name

Definition at line 133 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().

uint32_t rpmfiFNlink | ( | rpmfi | fi | ) |

Return (calculated) current file nlink count from file info set.

Parameters:

  | fi | file info set

Returns:
  current file nlink count, 0 on invalid

Definition at line 362 of file rpmfi.c.

Referenced by rpmfi_iternext(), and showQueryPackage().

uint16_t rpmfiFRdev | ( | rpmfi | fi | ) |

Return current file rdev from file info set.

Parameters:

  | fi | file info set

Returns:
  current file rdev, 0 on invalid

Definition at line 273 of file rpmfi.c.

Referenced by rpmfi_FRdev(), rpmfi_iternext(), rpmVerifyFile(), and showQueryPackage().

rpmfi rpmfiFree | ( | rpmfi | fi | ) |

Destroy a file info set.

Parameters:

  | fi | file info set

Returns:
  NULL always

Definition at line 1156 of file rpmfi.c.

References _free(), _rpmfi_debug, freeFSM(), headerFree(), and rpmfiUnlink.

Referenced by delTE(), freePackage(), freeSpec(), genCpioListAndHeader(), handleInstInstalledFiles(), packageBinaries(), packageSources(), rpmalDel(), rpmalFree(), rpmfi_dealloc(), rpmfi_free(), rpmfiBuildFClasses(), rpmfiBuildFContexts(), rpmfiBuildFDeps(), rpmfiBuildFSContexts(), rpmfiBuildREContexts(), rpmInstallSourcePackage(), rpmpsmFree(), rpmtsRun(), showQueryPackage(), and showVerifyPackage().

uint32_t rpmfiFSize | ( | rpmfi | fi | ) |

Return current file size from file info set.

Parameters:

  | fi | file info set

Returns:
  current file size, 0 on invalid

Definition at line 262 of file rpmfi.c.

Referenced by handleInstInstalledFiles(), handleOverlappedFiles(), rpmfi_FSize(), rpmfi_iternext(), rpmVerifyFile(), and showQueryPackage().

rpmfileState rpmfiFState | ( | rpmfi | fi | ) |

Return current file state from file info set.

Parameters:

  | fi | file info set

Returns:
  current file state, 0 on invalid

Definition at line 210 of file rpmfi.c.

References RPMFILE_STATE_MISSING.

Referenced by handleOverlappedFiles(), rpmfi_FState(), rpmfi_iternext(), rpmVerifyFile(), and showQueryPackage().

static const char* rpmfiFtstring | ( | rpmFileTypes | ft | ) | `[static]`

Identify a file type.

Parameters:

  | ft | file type

Returns:
  string to identify a file type

Definition at line 493 of file rpmfi.c.

References BDEV, CDEV, LINK, PIPE, REG, SOCK, and XDIR.

Referenced by relocateFileList().

const char* rpmfiFUser | ( | rpmfi | fi | ) |

Return current file owner from file info set.

Parameters:

  | fi | file info set

Returns:
  current file owner, NULL on invalid

Definition at line 393 of file rpmfi.c.

Referenced by rpmfi_FUser(), rpmfi_iternext(), rpmVerifyFile(), and showQueryPackage().

int rpmfiFX | ( | rpmfi | fi | ) |

Return current file index from file info set.

Parameters:

  | fi | file info set

Returns:
  current file index

Definition at line 73 of file rpmfi.c.

Referenced by rpmfi_FX().

rpmfi rpmfiInit | ( | rpmfi | fi,
|  | int | fx |
| ) |  |  |

Initialize file iterator index.

Parameters:

  | fi | file info set
  | fx | file iterator index

Returns:
  file info set

Definition at line 439 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().

rpmfi rpmfiInitD | ( | rpmfi | fi,
|  | int | dx |
| ) |  |  |

Initialize directory iterator index.

Parameters:

  | fi | file info set
  | dx | directory iterator index

Returns:
  file info set, NULL if dx is out of range

Definition at line 473 of file rpmfi.c.

Referenced by skipFiles().

int rpmfiIsSource | ( | rpmfi | fi | ) |

Return source rpm marker from file info set.

Parameters:

  | fi | file info set

Returns:
  source rpm?

Definition at line 106 of file rpmfi.c.

rpmfi rpmfiNew | ( | const rpmts | ts,
|  | Header | h,
|  | rpmTag | tagN,
|  | int | flags |
| ) |  |  |

Create and load a file info set.

Parameters:

  | ts | transaction set (NULL skips path relocation)
  | h | header
  | tagN | RPMTAG_BASENAMES
  | flags | scareMem(0x1), nofilter(0x2)

Returns:
  new file info set

Definition at line 1260 of file rpmfi.c.

References _fdupedata, _fdupestring, _free(), _rpmfi_debug, alloca(), rpmDataType_u::argv, argvFree(), _HE_s::c, CPIO_MAP_GID, CPIO_MAP_MODE, CPIO_MAP_PATH, CPIO_MAP_UID, FA_UNKNOWN, headerFree(), headerGet(), headerIsEntry(), headerLink(), headerMacrosLoad(), headerMacrosUnload(), headerSprintf(), newFSM(), rpmRelocation_s::newPath, nibble(), _HE_s::p, PGPHASHALGO_CRC32, PGPHASHALGO_MD5, PGPHASHALGO_RIPEMD128, PGPHASHALGO_RIPEMD160, PGPHASHALGO_SHA1, PGPHASHALGO_SHA256, PGPHASHALGO_SHA384, PGPHASHALGO_SHA512, rpmDataType_u::ptr, relocateFileList(), RPMFILE_ICON, RPMFILE_PATCH, RPMFILE_SOURCE, RPMFILE_SPECFILE, rpmfiLink, rpmGenPath(), rpmGetPath(), rpmHeaderFormats, RPMTAG_ARCH, 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, RPMTAG_VERIFYSCRIPT, RPMTAG_VERIFYSCRIPTPROG, rpmteType(), rpmtsRelocateElement(), rpmtsRootDir(), stpcpy(), _HE_s::tag, TR_ADDED, rpmDataType_u::ui32p, xcalloc(), xmalloc(), xrealloc(), and xstrdup().

Referenced by addTE(), genCpioListAndHeader(), handleInstInstalledFiles(), hdr_fiFromHeader(), rpmfi_init(), rpmfiBuildFClasses(), rpmfiBuildFContexts(), rpmfiBuildFDeps(), rpmfiBuildFSContexts(), rpmfiBuildREContexts(), rpmInstallSourcePackage(), rpmtsRun(), showQueryPackage(), and showVerifyPackage().

int rpmfiNext | ( | rpmfi | fi | ) |

Return next file iterator index.

Parameters:

  | fi | file info set

Returns:
  file iterator index, -1 on termination

Definition at line 417 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().

int rpmfiNextD | ( | rpmfi | fi | ) |

Return next directory iterator index.

Parameters:

  | fi | file info set

Returns:
  directory iterator index, -1 on termination

Definition at line 453 of file rpmfi.c.

References _rpmfi_debug.

Referenced by skipFiles().

int rpmfiSetDX | ( | rpmfi | fi,
|  | int | dx |
| ) |  |  |

Set current directory index in file info set.

Parameters:

  | fi | file info set
  | dx | new directory index

Returns:
  current directory index

Definition at line 95 of file rpmfi.c.

Referenced by rpmalAdd(), and rpmalDel().

uint32_t rpmfiSetFFlags | ( | rpmfi | fi,
|  | uint32_t | FFlags |
| ) |  |  |

Set current file flags in file info set.

Parameters:

  | fi | file info set
  | FFlags | new file flags

Returns:
  previous file flags, 0 on invalid

Definition at line 162 of file rpmfi.c.

Referenced by rpmtsRun().

rpmfileState rpmfiSetFState | ( | rpmfi | fi,
|  | rpmfileState | fstate |
| ) |  |  |

Set current file state in file info set.

Parameters:

  | fi | file info set
  | fstate | new file state

Returns:
  previous file state, 0 on invalid

Definition at line 221 of file rpmfi.c.

int rpmfiSetFX | ( | rpmfi | fi,
|  | int | fx |
| ) |  |  |

Set current file index in file info set.

Parameters:

  | fi | file info set
  | fx | new file index

Returns:
  current file index

Definition at line 78 of file rpmfi.c.

Referenced by handleInstInstalledFiles(), handleOverlappedFiles(), and rpmfi_subscript().

uint32_t rpmfiSetVFlags | ( | rpmfi | fi,
|  | uint32_t | VFlags |
| ) |  |  |

Set current file verify flags in file info set.

Parameters:

  | fi | file info set
  | VFlags | new file verify flags

Returns:
  previous file verify flags, 0 on invalid

Definition at line 186 of file rpmfi.c.

const char* rpmfiTypeString | ( | rpmfi | fi | ) |

Return formatted string representation of package disposition.

Parameters:

  | fi | file info set

Returns:
  formatted string

Definition at line 658 of file rpmfi.c.

References rpmteType(), TR_ADDED, and TR_REMOVED.

Referenced by fsmStage().

uint32_t rpmfiVFlags | ( | rpmfi | fi | ) |

Return current file verify flags from file info set.

Parameters:

  | fi | file info set

Returns:
  current file verify flags, 0 on invalid

Definition at line 175 of file rpmfi.c.

Referenced by rpmfi_iternext(), rpmfi_VFlags(), and rpmVerifyFile().

static rpmFileTypes rpmfiWhatis | ( | uint16_t | mode | ) | `[static]`

Return file type from mode_t.

Parameters:

  | mode | file mode bits (from header)

Returns:
  file type

Definition at line 514 of file rpmfi.c.

References BDEV, CDEV, LINK, PIPE, REG, S_ISLNK, S_ISSOCK, SOCK, and XDIR.

Referenced by relocateFileList(), rpmfiCompare(), and rpmfiDecideFate().

rpmfi XrpmfiLink | ( | rpmfi | fi,
|  | const char * | msg,
|  | const char * | fn,
|  | unsigned | ln |
| ) |  |  |

Todo:
  Remove debugging entry from the ABI.

Parameters:

  | fi | file info set
  | msg |
  | fn |
  | ln |

Returns:
  NULL always

Definition at line 46 of file rpmfi.c.

References _rpmfi_debug.

rpmfi XrpmfiUnlink | ( | rpmfi | fi,
|  | const char * | msg,
|  | const char * | fn,
|  | unsigned | ln |
| ) |  |  |

Todo:
  Remove debugging entry from the ABI.

Parameters:

  | fi | file info set
  | msg |
  | fn |
  | ln |

Returns:
  NULL always

Definition at line 35 of file rpmfi.c.

References _rpmfi_debug.

## Variable Documentation

int _rpmfi_debug = 0

Definition at line 33 of file rpmfi.c.

Referenced by rpmfi_alloc(), rpmfi_Debug(), rpmfi_free(), rpmfi_init(), rpmfi_new(), rpmfiFree(), rpmfiNew(), rpmfiNext(), rpmfiNextD(), XrpmfiLink(), and XrpmfiUnlink().