# rpmlib.h File Reference

`#include "rpmio.h"`
`#include "rpmmessages.h"`
`#include "rpmerr.h"`
`#include "header.h"`
`#include "popt.h"`

Go to the source code of this file.

## RPMRC

#define | RPMVAR_OPTFLAGS 3
#define | RPMVAR_PROVIDES 38
#define | RPMVAR_INCLUDE 43
#define | RPMVAR_MACROFILES 49
#define | RPMVAR_NUM 55
#define | RPM_MACHTABLE_COUNT 4
enum | rpm_machtable_e { RPM_MACHTABLE_INSTARCH = 0, RPM_MACHTABLE_INSTOS = 1, RPM_MACHTABLE_BUILDARCH = 2, RPM_MACHTABLE_BUILDOS = 3 }
const char * | rpmGetVar (int var)
void | rpmSetVar (int var, const char *val)
int | rpmReadConfigFiles (const char *file, const char *target)
void | rpmGetArchInfo (const char **name, int *num)
void | rpmGetOsInfo (const char **name, int *num)
int | rpmMachineScore (int type, const char *name)
int | rpmShowRC (FILE *fp)
void | rpmSetTables (int archTable, int osTable)
void | rpmSetMachine (const char *arch, const char *os)
void | rpmGetMachine (const char **arch, const char **os)
void | rpmFreeRpmrc (void)
const char * | macrofiles

## RPMTS

#define | XFA_SKIPPING(_a) ((_a) == FA_SKIP || (_a) == FA_SKIPNSTATE || (_a) == FA_SKIPNETSHARED || (_a) == FA_SKIPMULTILIB)
#define | _noTransScripts
#define | _noTransTriggers
typedef void *(* | HFD_t )(const void *data, rpmTagType type)
| Prototype for headerFreeData() vector.
typedef int(* | HGE_t )(Header h, rpmTag tag, rpmTagType *type, void **p, int_32 *c)
| Prototype for headerGetEntry() vector.
typedef int(* | HAE_t )(Header h, rpmTag tag, rpmTagType type, const void *p, int_32 c)
| Prototype for headerAddEntry() vector.
typedef int(* | HME_t )(Header h, rpmTag tag, rpmTagType type, const void *p, int_32 c)
| Prototype for headerModifyEntry() vector.
typedef int(* | HRE_t )(Header h, int_32 tag)
| Prototype for headerRemoveEntry() vector.
typedef rpmRelocation_s | rpmRelocation
| We pass these around as an array with a sentinel.
typedef enum fileAction_e | fileAction
| File disposition(s) during package install/erase transaction.
typedef enum fileTypes_e | fileTypes
| File types.
typedef fsmIterator_s * | FSMI_t
typedef fsm_s * | FSM_t
typedef psm_s * | PSM_t
typedef transactionFileInfo_s * | TFI_t
typedef rpmTransactionSet_s * | rpmTransactionSet
typedef enum rpmtransFlags_e | rpmtransFlags
typedef enum rpmprobFilterFlags_e | rpmprobFilterFlags
enum | fileAction_e { FA_UNKNOWN = 0, FA_CREATE, FA_COPYIN, FA_COPYOUT, FA_BACKUP, FA_SAVE, FA_SKIP, FA_ALTNAME, FA_ERASE, FA_SKIPNSTATE, FA_SKIPNETSHARED, FA_SKIPMULTILIB }
| File disposition(s) during package install/erase transaction. More...
enum | fileTypes_e { PIPE = 1, CDEV = 2, XDIR = 4, BDEV = 6, REG = 8, LINK = 10, SOCK = 12 }
| File types. More...

enum

rpmtransFlags_e {
RPMTRANS_FLAG_NONE = 0, RPMTRANS_FLAG_TEST = (1 << 0), RPMTRANS_FLAG_BUILD_PROBS = (1 << 1), RPMTRANS_FLAG_NOSCRIPTS = (1 << 2),
RPMTRANS_FLAG_JUSTDB = (1 << 3), RPMTRANS_FLAG_NOTRIGGERS = (1 << 4), RPMTRANS_FLAG_NODOCS = (1 << 5), RPMTRANS_FLAG_ALLFILES = (1 << 6),
RPMTRANS_FLAG_KEEPOBSOLETE = (1 << 7), RPMTRANS_FLAG_MULTILIB = (1 << 8), RPMTRANS_FLAG_DIRSTASH = (1 << 9), RPMTRANS_FLAG_REPACKAGE = (1 << 10),
RPMTRANS_FLAG_PKGCOMMIT = (1 << 11), RPMTRANS_FLAG_PKGUNDO = (1 << 12), RPMTRANS_FLAG_COMMIT = (1 << 13), RPMTRANS_FLAG_UNDO = (1 << 14),
RPMTRANS_FLAG_REVERSE = (1 << 15), RPMTRANS_FLAG_NOTRIGGERPREIN = (1 << 16), RPMTRANS_FLAG_NOPRE = (1 << 17), RPMTRANS_FLAG_NOPOST = (1 << 18),
RPMTRANS_FLAG_NOTRIGGERIN = (1 << 19), RPMTRANS_FLAG_NOTRIGGERUN = (1 << 20), RPMTRANS_FLAG_NOPREUN = (1 << 21), RPMTRANS_FLAG_NOPOSTUN = (1 << 22),
RPMTRANS_FLAG_NOTRIGGERPOSTUN = (1 << 23), RPMTRANS_FLAG_NOPAYLOAD = (1 << 24), RPMTRANS_FLAG_APPLYONLY = (1 << 25), RPMTRANS_FLAG_CHAINSAW = (1 << 26),
RPMTRANS_FLAG_NOMD5 = (1 << 27)
}

enum

rpmprobFilterFlags_e {
RPMPROB_FILTER_NONE = 0, RPMPROB_FILTER_IGNOREOS = (1 << 0), RPMPROB_FILTER_IGNOREARCH = (1 << 1), RPMPROB_FILTER_REPLACEPKG = (1 << 2),
RPMPROB_FILTER_FORCERELOCATE = (1 << 3), RPMPROB_FILTER_REPLACENEWFILES = (1 << 4), RPMPROB_FILTER_REPLACEOLDFILES = (1 << 5), RPMPROB_FILTER_OLDPACKAGE = (1 << 6),
RPMPROB_FILTER_DISKSPACE = (1 << 7), RPMPROB_FILTER_DISKNODES = (1 << 8)
}

rpmRC | rpmInstallSourcePackage (const char *rootDir, FD_t fd, const char **specFilePtr, rpmCallbackFunction notify, rpmCallbackData notifyData, char **cookie)
| Install source package.
int | rpmVersionCompare (Header first, Header second)
| Compare headers to determine which header is "newer".
rpmTransactionSet | rpmtransCreateSet (rpmdb rpmdb, const char *rootDir)
int | rpmtransAddPackage (rpmTransactionSet ts, Header h, FD_t fd, const void *key, int upgrade, rpmRelocation *relocs)
void | rpmtransAvailablePackage (rpmTransactionSet ts, Header h, const void *key)
int | rpmtransRemovePackage (rpmTransactionSet ts, int dboffset)
rpmTransactionSet | rpmtransFree (rpmTransactionSet ts)
void | rpmtransSetScriptFd (rpmTransactionSet ts, FD_t fd)
int | rpmtransGetKeys (const rpmTransactionSet ts, const void ***ep, int *nep)
int | rpmdepCheck (rpmTransactionSet ts, rpmDependencyConflict *conflicts, int *numConflicts)
int | rpmdepOrder (rpmTransactionSet ts)
rpmDependencyConflict | rpmdepFreeConflicts (rpmDependencyConflict conflicts, int numConflicts)
int | rpmGetRpmlibProvides (const char ***provNames, int **provFlags, const char ***provVersions)
int | rpmvercmp (const char *a, const char *b)
int | rpmRangesOverlap (const char *AName, const char *AEVR, int AFlags, const char *BName, const char *BEVR, int BFlags)
int | rpmCheckRpmlibProvides (const char *keyName, const char *keyEVR, int keyFlags)
void | rpmShowRpmlibProvides (FILE *fp)
int | rpmRunTransactions (rpmTransactionSet ts, rpmCallbackFunction notify, rpmCallbackData notifyData, rpmProblemSet okProbs, rpmProblemSet *newProbs, rpmtransFlags transFlags, rpmprobFilterFlags ignoreSet)

## RPMQV

#define | RPMVERIFY_ALL ~(RPMVERIFY_NONE)
typedef rpmQVArguments_s * | QVA_t
typedef enum rpmQVSources_e | rpmQVSources
typedef enum rpmVerifyAttrs_e | rpmVerifyAttrs
enum | rpmQVSources_e { RPMQV_PACKAGE = 0, RPMQV_PATH, RPMQV_ALL, RPMQV_RPM, RPMQV_GROUP, RPMQV_WHATPROVIDES, RPMQV_WHATREQUIRES, RPMQV_TRIGGEREDBY, RPMQV_DBOFFSET, RPMQV_SPECFILE, RPMQV_PKGID, RPMQV_HDRID, RPMQV_FILEID, RPMQV_TID }
enum | rpmVerifyAttrs_e { RPMVERIFY_NONE = 0, RPMVERIFY_MD5 = (1 << 0), RPMVERIFY_FILESIZE = (1 << 1), RPMVERIFY_LINKTO = (1 << 2), RPMVERIFY_USER = (1 << 3), RPMVERIFY_GROUP = (1 << 4), RPMVERIFY_MTIME = (1 << 5), RPMVERIFY_MODE = (1 << 6), RPMVERIFY_RDEV = (1 << 7), RPMVERIFY_READLINKFAIL = (1 << 28), RPMVERIFY_READFAIL = (1 << 29), RPMVERIFY_LSTATFAIL = (1 << 30) }
int | rpmVerifyFile (const char *root, Header h, int filenum, rpmVerifyAttrs *result, rpmVerifyAttrs omitMask)
int | rpmVerifyScript (const char *rootDir, Header h, FD_t scriptFd)
| Return exit code from running verify script from header.

## RPMDB

typedef rpmdb_s * | rpmdb
typedef _dbiIndexSet * | dbiIndexSet
typedef _rpmdbMatchIterator * | rpmdbMatchIterator
typedef enum rpmMireMode_e | rpmMireMode
| Tag value pattern match mode.
enum | rpmMireMode_e { RPMMIRE_DEFAULT = 0, RPMMIRE_STRCMP = 1, RPMMIRE_REGEX = 2, RPMMIRE_GLOB = 3 }
| Tag value pattern match mode. More...
int | rpmdbOpen (const char *prefix, rpmdb *dbp, int mode, int perms)
int | rpmdbInit (const char *prefix, int perms)
int | rpmdbVerify (const char *prefix)
int | rpmdbClose (rpmdb db)
int | rpmdbSync (rpmdb db)
int | rpmdbOpenAll (rpmdb db)
int | rpmdbCountPackages (rpmdb db, const char *name)
rpmdbMatchIterator | rpmdbFreeIterator (rpmdbMatchIterator mi)
rpmdb | rpmdbGetIteratorRpmDB (rpmdbMatchIterator mi)
unsigned int | rpmdbGetIteratorOffset (rpmdbMatchIterator mi)
int | rpmdbGetIteratorCount (rpmdbMatchIterator mi)
int | rpmdbAppendIterator (rpmdbMatchIterator mi, const int *hdrNums, int nHdrNums)
int | rpmdbPruneIterator (rpmdbMatchIterator mi, int *hdrNums, int nHdrNums, int sorted)
int | rpmdbSetIteratorRE (rpmdbMatchIterator mi, rpmTag tag, rpmMireMode mode, const char *pattern)
int | rpmdbSetIteratorVersion (rpmdbMatchIterator mi, const char *version)
int | rpmdbSetIteratorRelease (rpmdbMatchIterator mi, const char *release)
int | rpmdbSetIteratorRewrite (rpmdbMatchIterator mi, int rewrite)
int | rpmdbSetIteratorModified (rpmdbMatchIterator mi, int modified)
Header | rpmdbNextIterator (rpmdbMatchIterator mi)
Header | XrpmdbNextIterator (rpmdbMatchIterator mi, const char *f, unsigned int l)
rpmdbMatchIterator | rpmdbInitIterator (rpmdb db, int rpmtag, const void *keyp, size_t keylen)
int | rpmdbAdd (rpmdb db, int iid, Header h)
int | rpmdbRemove (rpmdb db, int rid, unsigned int hdrNum)
int | rpmdbRebuild (const char *prefix)
int * | dbiTags
int | dbiTagsMax

## RPMPROBS

typedef enum rpmProblemType_e | rpmProblemType
| Enumerate transaction set problem types.
typedef rpmProblem_s * | rpmProblem
typedef rpmProblemSet_s * | rpmProblemSet
typedef rpmDependencyConflict_s * | rpmDependencyConflict
| Dependency problems found by rpmdepCheck().
enum | rpmProblemType_e { RPMPROB_BADARCH, RPMPROB_BADOS, RPMPROB_PKG_INSTALLED, RPMPROB_BADRELOCATE, RPMPROB_REQUIRES, RPMPROB_CONFLICT, RPMPROB_NEW_FILE_CONFLICT, RPMPROB_FILE_CONFLICT, RPMPROB_OLDPACKAGE, RPMPROB_DISKSPACE, RPMPROB_DISKNODES, RPMPROB_BADPRETRANS }
| Enumerate transaction set problem types. More...
void | printDepFlags (FILE *fp, const char *version, int flags)
void | printDepProblems (FILE *fp, const rpmDependencyConflict conflicts, int numConflicts)
| Print results of rpmdepCheck() dependency check.
const char * | rpmProblemString (const rpmProblem prob)
| Return formatted string representation of problem.
void | rpmProblemPrint (FILE *fp, rpmProblem prob)
| Output formatted string representation of problem to file handle.
void | rpmProblemSetPrint (FILE *fp, rpmProblemSet probs)
| Print problems to file handle.
void | rpmProblemSetFree (rpmProblemSet probs)
| Destroy problem set.

## RPMEIU

typedef enum rpmInstallInterfaceFlags_e | rpmInstallInterfaceFlags
typedef enum rpmEraseInterfaceFlags_e | rpmEraseInterfaceFlags
enum | rpmInstallInterfaceFlags_e { INSTALL_NONE = 0, INSTALL_PERCENT = (1 << 0), INSTALL_HASH = (1 << 1), INSTALL_NODEPS = (1 << 2), INSTALL_NOORDER = (1 << 3), INSTALL_LABEL = (1 << 4), INSTALL_UPGRADE = (1 << 5), INSTALL_FRESHEN = (1 << 6), INSTALL_INSTALL = (1 << 7), INSTALL_ERASE = (1 << 8) }
enum | rpmEraseInterfaceFlags_e { UNINSTALL_NONE = 0, UNINSTALL_NODEPS = (1 << 0), UNINSTALL_ALLMATCHES = (1 << 1) }

## RPMK

typedef enum rpmVerifySignatureReturn_e | rpmVerifySignatureReturn
| Return codes from verifySignature().
enum | rpmtagSignature { RPMSIGTAG_SIZE = 1000, RPMSIGTAG_LEMD5_1 = 1001, RPMSIGTAG_PGP = 1002, RPMSIGTAG_LEMD5_2 = 1003, RPMSIGTAG_MD5 = 1004, RPMSIGTAG_GPG = 1005, RPMSIGTAG_PGP5 = 1006 }
enum | rpmVerifySignatureReturn_e { RPMSIG_OK = 0, RPMSIG_UNKNOWN = 1, RPMSIG_BAD = 2, RPMSIG_NOKEY = 3, RPMSIG_NOTTRUSTED = 4 }
| Return codes from verifySignature(). More...
rpmVerifySignatureReturn | rpmVerifySignature (const char *file, int_32 sigTag, const void *sig, int count, char *result)
Header | rpmFreeSignature (Header h)

## Defines

#define | RPMDBI_PACKAGES 0
| Pseudo-tags used by the rpmdb iterator API.
#define | RPMDBI_DEPENDS 1
#define | RPMDBI_LABEL 2
#define | RPMDBI_ADDED 3
#define | RPMDBI_REMOVED 4
#define | RPMDBI_AVAILABLE 5
#define | RPMTAG_SERIAL RPMTAG_EPOCH
#define | RPMTAG_COPYRIGHT RPMTAG_LICENSE
#define | RPMTAG_PROVIDES RPMTAG_PROVIDENAME
#define | RPMTAG_OBSOLETES RPMTAG_OBSOLETENAME
#define | RPMTAG_EXTERNAL_TAG 1000000
#define | RPMFILE_MULTILIB_SHIFT 9
#define | RPMFILE_MULTILIB(N) ((N) << RPMFILE_MULTILIB_SHIFT)
#define | RPMFILE_MULTILIB_MASK RPMFILE_MULTILIB(7)
#define | RPMFILE_ALL ~(RPMFILE_NONE)
#define | isFileMULTILIB(_fflags) ((_fflags) & RPMFILE_MULTILIB_MASK)
#define | RPMSENSE_SENSEMASK 15
#define | RPMSENSE_TRIGGER (RPMSENSE_TRIGGERIN | RPMSENSE_TRIGGERUN | RPMSENSE_TRIGGERPOSTUN)
#define | isDependsMULTILIB(_dflags) ((_dflags) & RPMSENSE_MULTILIB)
#define | _ALL_REQUIRES_MASK
#define | _notpre(_x) ((_x) & ~RPMSENSE_PREREQ)
#define | _INSTALL_ONLY_MASK _notpre(RPMSENSE_SCRIPT_PRE|RPMSENSE_SCRIPT_POST|RPMSENSE_RPMLIB|RPMSENSE_KEYRING)
#define | _ERASE_ONLY_MASK _notpre(RPMSENSE_SCRIPT_PREUN|RPMSENSE_SCRIPT_POSTUN)
#define | isLegacyPreReq(_x) (((_x) & _ALL_REQUIRES_MASK) == RPMSENSE_PREREQ)
#define | isInstallPreReq(_x) ((_x) & _INSTALL_ONLY_MASK)
#define | isErasePreReq(_x) ((_x) & _ERASE_ONLY_MASK)
#define | RPMLEAD_BINARY 0
#define | RPMLEAD_SOURCE 1
#define | RPMLEAD_MAGIC0 0xed
#define | RPMLEAD_MAGIC1 0xab
#define | RPMLEAD_MAGIC2 0xee
#define | RPMLEAD_MAGIC3 0xdb
#define | RPMLEAD_SIZE 96

## Typedefs

typedef enum rpmRC_e | rpmRC
| Package read return codes.
typedef enum rpmTag_e | rpmTag
| Tags identify data in package headers.
typedef enum rpmfileState_e | rpmfileState
| File States (when installed).
typedef enum rpmfileAttrs_e | rpmfileAttrs
| File Attributes.
typedef enum rpmsenseFlags_e | rpmsenseFlags
| Dependency Attributes.

## Enumerations

enum | rpmRC_e { RPMRC_OK = 0, RPMRC_BADMAGIC = 1, RPMRC_FAIL = 2, RPMRC_BADSIZE = 3, RPMRC_SHORTREAD = 4 }
| Package read return codes. More...

enum

rpmTag_e {
RPMTAG_HEADERIMAGE = 61, RPMTAG_HEADERSIGNATURES = 62, RPMTAG_HEADERIMMUTABLE = 63, RPMTAG_HEADERREGIONS = 64,
RPMTAG_HEADERI18NTABLE = 100, RPMTAG_SIG_BASE = 256, RPMTAG_SIGSIZE = RPMTAG_SIG_BASE+1, RPMTAG_SIGLEMD5_1 = RPMTAG_SIG_BASE+2,
RPMTAG_SIGPGP = RPMTAG_SIG_BASE+3, RPMTAG_SIGLEMD5_2 = RPMTAG_SIG_BASE+4, RPMTAG_SIGMD5 = RPMTAG_SIG_BASE+5, RPMTAG_SIGGPG = RPMTAG_SIG_BASE+6,
RPMTAG_SIGPGP5 = RPMTAG_SIG_BASE+7, RPMTAG_BADSHA1HEADER = RPMTAG_SIG_BASE+8, RPMTAG_SHA1HEADER = RPMTAG_SIG_BASE+9, RPMTAG_NAME = 1000,
RPMTAG_VERSION = 1001, RPMTAG_RELEASE = 1002, RPMTAG_EPOCH = 1003, RPMTAG_SUMMARY = 1004,
RPMTAG_DESCRIPTION = 1005, RPMTAG_BUILDTIME = 1006, RPMTAG_BUILDHOST = 1007, RPMTAG_INSTALLTIME = 1008,
RPMTAG_SIZE = 1009, RPMTAG_DISTRIBUTION = 1010, RPMTAG_VENDOR = 1011, RPMTAG_GIF = 1012,
RPMTAG_XPM = 1013, RPMTAG_LICENSE = 1014, RPMTAG_PACKAGER = 1015, RPMTAG_GROUP = 1016,
RPMTAG_CHANGELOG = 1017, RPMTAG_SOURCE = 1018, RPMTAG_PATCH = 1019, RPMTAG_URL = 1020,
RPMTAG_OS = 1021, RPMTAG_ARCH = 1022, RPMTAG_PREIN = 1023, RPMTAG_POSTIN = 1024,
RPMTAG_PREUN = 1025, RPMTAG_POSTUN = 1026, RPMTAG_OLDFILENAMES = 1027, RPMTAG_FILESIZES = 1028,
RPMTAG_FILESTATES = 1029, RPMTAG_FILEMODES = 1030, RPMTAG_FILEUIDS = 1031, RPMTAG_FILEGIDS = 1032,
RPMTAG_FILERDEVS = 1033, RPMTAG_FILEMTIMES = 1034, RPMTAG_FILEMD5S = 1035, RPMTAG_FILELINKTOS = 1036,
RPMTAG_FILEFLAGS = 1037, RPMTAG_ROOT = 1038, RPMTAG_FILEUSERNAME = 1039, RPMTAG_FILEGROUPNAME = 1040,
RPMTAG_EXCLUDE = 1041, RPMTAG_EXCLUSIVE = 1042, RPMTAG_ICON = 1043, RPMTAG_SOURCERPM = 1044,
RPMTAG_FILEVERIFYFLAGS = 1045, RPMTAG_ARCHIVESIZE = 1046, RPMTAG_PROVIDENAME = 1047, RPMTAG_REQUIREFLAGS = 1048,
RPMTAG_REQUIRENAME = 1049, RPMTAG_REQUIREVERSION = 1050, RPMTAG_NOSOURCE = 1051, RPMTAG_NOPATCH = 1052,
RPMTAG_CONFLICTFLAGS = 1053, RPMTAG_CONFLICTNAME = 1054, RPMTAG_CONFLICTVERSION = 1055, RPMTAG_DEFAULTPREFIX = 1056,
RPMTAG_BUILDROOT = 1057, RPMTAG_INSTALLPREFIX = 1058, RPMTAG_EXCLUDEARCH = 1059, RPMTAG_EXCLUDEOS = 1060,
RPMTAG_EXCLUSIVEARCH = 1061, RPMTAG_EXCLUSIVEOS = 1062, RPMTAG_AUTOREQPROV = 1063, RPMTAG_RPMVERSION = 1064,
RPMTAG_TRIGGERSCRIPTS = 1065, RPMTAG_TRIGGERNAME = 1066, RPMTAG_TRIGGERVERSION = 1067, RPMTAG_TRIGGERFLAGS = 1068,
RPMTAG_TRIGGERINDEX = 1069, RPMTAG_VERIFYSCRIPT = 1079, RPMTAG_CHANGELOGTIME = 1080, RPMTAG_CHANGELOGNAME = 1081,
RPMTAG_CHANGELOGTEXT = 1082, RPMTAG_BROKENMD5 = 1083, RPMTAG_PREREQ = 1084, RPMTAG_PREINPROG = 1085,
RPMTAG_POSTINPROG = 1086, RPMTAG_PREUNPROG = 1087, RPMTAG_POSTUNPROG = 1088, RPMTAG_BUILDARCHS = 1089,
RPMTAG_OBSOLETENAME = 1090, RPMTAG_VERIFYSCRIPTPROG = 1091, RPMTAG_TRIGGERSCRIPTPROG = 1092, RPMTAG_DOCDIR = 1093,
RPMTAG_COOKIE = 1094, RPMTAG_FILEDEVICES = 1095, RPMTAG_FILEINODES = 1096, RPMTAG_FILELANGS = 1097,
RPMTAG_PREFIXES = 1098, RPMTAG_INSTPREFIXES = 1099, RPMTAG_TRIGGERIN = 1100, RPMTAG_TRIGGERUN = 1101,
RPMTAG_TRIGGERPOSTUN = 1102, RPMTAG_AUTOREQ = 1103, RPMTAG_AUTOPROV = 1104, RPMTAG_CAPABILITY = 1105,
RPMTAG_SOURCEPACKAGE = 1106, RPMTAG_OLDORIGFILENAMES = 1107, RPMTAG_BUILDPREREQ = 1108, RPMTAG_BUILDREQUIRES = 1109,
RPMTAG_BUILDCONFLICTS = 1110, RPMTAG_BUILDMACROS = 1111, RPMTAG_PROVIDEFLAGS = 1112, RPMTAG_PROVIDEVERSION = 1113,
RPMTAG_OBSOLETEFLAGS = 1114, RPMTAG_OBSOLETEVERSION = 1115, RPMTAG_DIRINDEXES = 1116, RPMTAG_BASENAMES = 1117,
RPMTAG_DIRNAMES = 1118, RPMTAG_ORIGDIRINDEXES = 1119, RPMTAG_ORIGBASENAMES = 1120, RPMTAG_ORIGDIRNAMES = 1121,
RPMTAG_OPTFLAGS = 1122, RPMTAG_DISTURL = 1123, RPMTAG_PAYLOADFORMAT = 1124, RPMTAG_PAYLOADCOMPRESSOR = 1125,
RPMTAG_PAYLOADFLAGS = 1126, RPMTAG_MULTILIBS = 1127, RPMTAG_INSTALLTID = 1128, RPMTAG_REMOVETID = 1129,
RPMTAG_SHA1RHN = 1130, RPMTAG_RHNPLATFORM = 1131, RPMTAG_PLATFORM = 1132, RPMTAG_FIRSTFREE_TAG
}

| Tags identify data in package headers. More...
enum | rpmfileState_e { RPMFILE_STATE_NORMAL = 0, RPMFILE_STATE_REPLACED = 1, RPMFILE_STATE_NOTINSTALLED = 2, RPMFILE_STATE_NETSHARED = 3 }
| File States (when installed). More...
enum | rpmfileAttrs_e { RPMFILE_NONE = 0, RPMFILE_CONFIG = (1 << 0), RPMFILE_DOC = (1 << 1), RPMFILE_DONOTUSE = (1 << 2), RPMFILE_MISSINGOK = (1 << 3), RPMFILE_NOREPLACE = (1 << 4), RPMFILE_SPECFILE = (1 << 5), RPMFILE_GHOST = (1 << 6), RPMFILE_LICENSE = (1 << 7), RPMFILE_README = (1 << 8), RPMFILE_EXCLUDE = (1 << 9) }
| File Attributes. More...

enum

rpmsenseFlags_e {
RPMSENSE_ANY = 0, RPMSENSE_SERIAL = (1 << 0), RPMSENSE_LESS = (1 << 1), RPMSENSE_GREATER = (1 << 2),
RPMSENSE_EQUAL = (1 << 3), RPMSENSE_PROVIDES = (1 << 4), RPMSENSE_CONFLICTS = (1 << 5), RPMSENSE_PREREQ = (1 << 6),
RPMSENSE_OBSOLETES = (1 << 7), RPMSENSE_INTERP = (1 << 8), RPMSENSE_SCRIPT_PRE = ((1 << 9)|RPMSENSE_PREREQ), RPMSENSE_SCRIPT_POST = ((1 << 10)|RPMSENSE_PREREQ),
RPMSENSE_SCRIPT_PREUN = ((1 << 11)|RPMSENSE_PREREQ), RPMSENSE_SCRIPT_POSTUN = ((1 << 12)|RPMSENSE_PREREQ), RPMSENSE_SCRIPT_VERIFY = (1 << 13), RPMSENSE_FIND_REQUIRES = (1 << 14),
RPMSENSE_FIND_PROVIDES = (1 << 15), RPMSENSE_TRIGGERIN = (1 << 16), RPMSENSE_TRIGGERUN = (1 << 17), RPMSENSE_TRIGGERPOSTUN = (1 << 18),
RPMSENSE_MULTILIB = (1 << 19), RPMSENSE_SCRIPT_PREP = (1 << 20), RPMSENSE_SCRIPT_BUILD = (1 << 21), RPMSENSE_SCRIPT_INSTALL = (1 << 22),
RPMSENSE_SCRIPT_CLEAN = (1 << 23), RPMSENSE_RPMLIB = ((1 << 24) | RPMSENSE_PREREQ), RPMSENSE_TRIGGERPREIN = (1 << 25), RPMSENSE_KEYRING = (1 << 26)
}

| Dependency Attributes. More...

## Functions

static void * | _free (const void *p)
| Wrapper to free(3), hides const compilation noise, permit NULL, return NULL.
rpmRC | rpmReadPackageInfo (FD_t fd, Header *sigp, Header *hdrp)
| Return package signatures and header from file handle.
rpmRC | rpmReadPackageHeader (FD_t fd, Header *hdrp, int *isSource, int *major, int *minor)
| Return package header and lead info from file handle.
int | headerNVR (Header h, const char **np, const char **vp, const char **rp)
void | headerMergeLegacySigs (Header h, const Header sig)
Header | headerRegenSigHeader (const Header h)
void | rpmBuildFileList (Header h, const char ***fileListPtr, int *fileCountPtr)
| Retrieve file names from header.
int | rpmHeaderGetEntry (Header h, int_32 tag, int_32 *type, void **p, int_32 *c)
| Retrieve tag info from header.
int | rpmPackageGetEntry (void *leadp, Header sigs, Header h, int_32 tag, int_32 *type, void **p, int_32 *c)
| Retrieve tag info from header.
const char *const | tagName (int tag)
| Return name of tag from value.
int | tagValue (const char *tagstr)
| Return value of tag from name.
void | freeFilesystems (void)
| Release storage used by file system usage cache.
int | rpmGetFilesystemList (const char ***listptr, int *num)
| Return (cached) file system mount points.
int | rpmGetFilesystemUsage (const char **fileList, int_32 *fssizes, int numFiles, uint_32 **usagesPtr, int flags)
| Determine per-file system usage for a list of files.

## Variables

MacroContext_s * | rpmGlobalMacroContext
MacroContext_s * | rpmCLIMacroContext
const char * | RPMVERSION
const char * | rpmNAME
const char * | rpmEVR
int | rpmFLAGS
const struct headerTagTableEntry_s | rpmTagTable []
| Automatically generated table of tag name/value pairs.
const int | rpmTagTableSize
| Number of entries in rpmTagTable.
const struct headerSprintfExtension_s | rpmHeaderFormats []
| Table of query format extensions.

## Detailed Description

Definition in file rpmlib.h.

## Define Documentation

#define _ALL_REQUIRES_MASK

Value:

    (\
        RPMSENSE_INTERP | \
        RPMSENSE_SCRIPT_PRE | \
        RPMSENSE_SCRIPT_POST | \
        RPMSENSE_SCRIPT_PREUN | \
        RPMSENSE_SCRIPT_POSTUN | \
        RPMSENSE_SCRIPT_VERIFY | \
        RPMSENSE_FIND_REQUIRES | \
        RPMSENSE_SCRIPT_PREP | \
        RPMSENSE_SCRIPT_BUILD | \
        RPMSENSE_SCRIPT_INSTALL | \
        RPMSENSE_SCRIPT_CLEAN | \
        RPMSENSE_RPMLIB | \
        RPMSENSE_KEYRING )

Definition at line 481 of file rpmlib.h.

Referenced by addReqProv().

#define _ERASE_ONLY_MASK _notpre(RPMSENSE_SCRIPT_PREUN|RPMSENSE_SCRIPT_POSTUN)

| Definition at line 499 of file rpmlib.h.

#define _INSTALL_ONLY_MASK _notpre(RPMSENSE_SCRIPT_PRE|RPMSENSE_SCRIPT_POST|RPMSENSE_RPMLIB|RPMSENSE_KEYRING)

| Definition at line 497 of file rpmlib.h.

#define _notpre | ( | _x |  | ) | ((_x) & ~RPMSENSE_PREREQ)

| Definition at line 496 of file rpmlib.h. Referenced by identifyDepend().

#define _noTransScripts

Value:

    ( RPMTRANS_FLAG_NOPRE | \
        RPMTRANS_FLAG_NOPOST |      \
        RPMTRANS_FLAG_NOPREUN |     \
        RPMTRANS_FLAG_NOPOSTUN      \
      )

Definition at line 1426 of file rpmlib.h.

Referenced by main(), and rpmRunTransactions().

#define _noTransTriggers

Value:

    ( RPMTRANS_FLAG_NOTRIGGERPREIN | \
        RPMTRANS_FLAG_NOTRIGGERIN | \
        RPMTRANS_FLAG_NOTRIGGERUN | \
        RPMTRANS_FLAG_NOTRIGGERPOSTUN \
      )

Definition at line 1433 of file rpmlib.h.

Referenced by main(), and rpmRunTransactions().

#define isDependsMULTILIB | ( | _dflags |  | ) | ((_dflags) & RPMSENSE_MULTILIB)

| Definition at line 479 of file rpmlib.h. Referenced by addReqProv(), alMakeIndex(), checkPackageDeps(), mergeFiles(), and printDepMsg().

#define isErasePreReq | ( | _x |  | ) | ((_x) & _ERASE_ONLY_MASK)

| Definition at line 504 of file rpmlib.h. Referenced by rpmdepOrder().

#define isFileMULTILIB | ( | _fflags |  | ) | ((_fflags) & RPMFILE_MULTILIB_MASK)

| Definition at line 429 of file rpmlib.h. Referenced by alAllFileSatisfiesDepend(), and relocateFileList().

#define isInstallPreReq | ( | _x |  | ) | ((_x) & _INSTALL_ONLY_MASK)

| Definition at line 503 of file rpmlib.h. Referenced by rpmdbAdd(), and rpmdepOrder().

#define isLegacyPreReq | ( | _x |  | ) | (((_x) & _ALL_REQUIRES_MASK) == RPMSENSE_PREREQ)

| Definition at line 502 of file rpmlib.h. Referenced by identifyDepend(), and rpmdepOrder().

#define RPM_MACHTABLE_COUNT 4

| No. of arch/os tables. Definition at line 557 of file rpmlib.h. Referenced by doReadRC(), and rpmFreeRpmrc().

#define RPMDBI_ADDED 3

| Added package headers. Definition at line 207 of file rpmlib.h. Referenced by openDatabase(), rpmdbAdd(), rpmdbMoveDatabase(), rpmdbRemove(), tagName(), and tagValue().

#define RPMDBI_AVAILABLE 5

| Available package headers. Definition at line 209 of file rpmlib.h. Referenced by openDatabase(), rpmdbAdd(), rpmdbMoveDatabase(), rpmdbRemove(), tagName(), and tagValue().

#define RPMDBI_DEPENDS 1

| Dependency resolution cache. Definition at line 205 of file rpmlib.h. Referenced by openDatabase(), rpmdbAdd(), rpmdbMoveDatabase(), rpmdbRemove(), rpmdepCheck(), tagName(), tagValue(), and unsatisfiedDepend().

#define RPMDBI_LABEL 2

| Fingerprint search marker. Definition at line 206 of file rpmlib.h. Referenced by rpmdbInitIterator(), rpmErase(), rpmQueryVerify(), and rpmtransRemove().

#define RPMDBI_PACKAGES 0

Pseudo-tags used by the rpmdb iterator API.

Installed package headers.

Definition at line 204 of file rpmlib.h.

Referenced by addLostFiles(), db1basename(), db1cdel(), db1cget(), db1close(), db1cput(), db1open(), db1sync(), dbiDel(), dbiFindMatches(), dbiTagsInit(), handleInstInstalledFiles(), handleRmvdInstalledFiles(), main(), markReplacedFiles(), openDatabase(), psmStage(), rpmdbAdd(), rpmdbFindByFile(), rpmdbFirst(), rpmdbFreeIterator(), rpmdbInitIterator(), rpmdbLength(), rpmdbNextIterator(), rpmdbRebuild(), rpmdbRemove(), rpmdbSubscript(), rpmdepCheck(), rpmQueryVerify(), rpmRunTransactions(), tagName(), and tagValue().

#define RPMDBI_REMOVED 4

| Removed package headers. Definition at line 208 of file rpmlib.h. Referenced by openDatabase(), rpmdbAdd(), rpmdbMoveDatabase(), rpmdbRemove(), tagName(), and tagValue().

#define RPMFILE_ALL ~(RPMFILE_NONE)

| Definition at line 426 of file rpmlib.h. Referenced by main().

#define RPMFILE_MULTILIB | ( | N |  | ) | ((N) << RPMFILE_MULTILIB_SHIFT)

| Definition at line 423 of file rpmlib.h. Referenced by processPackageFiles().

#define RPMFILE_MULTILIB_MASK RPMFILE_MULTILIB(7)

| Definition at line 424 of file rpmlib.h. Referenced by addFile(), and genCpioListAndHeader().

#define RPMFILE_MULTILIB_SHIFT 9

| Definition at line 422 of file rpmlib.h. Referenced by genCpioListAndHeader().

#define RPMLEAD_BINARY 0

| Definition at line 1555 of file rpmlib.h. Referenced by packageBinaries(), psmStage(), and writeRPM().

#define RPMLEAD_MAGIC0 0xed

| Definition at line 1558 of file rpmlib.h. Referenced by readPackageHeaders(), and writeLead().

#define RPMLEAD_MAGIC1 0xab

| Definition at line 1559 of file rpmlib.h. Referenced by readPackageHeaders(), and writeLead().

#define RPMLEAD_MAGIC2 0xee

| Definition at line 1560 of file rpmlib.h. Referenced by readPackageHeaders(), and writeLead().

#define RPMLEAD_MAGIC3 0xdb

| Definition at line 1561 of file rpmlib.h. Referenced by readPackageHeaders(), and writeLead().

#define RPMLEAD_SIZE 96

| Don't rely on sizeof(struct) Definition at line 1563 of file rpmlib.h.

#define RPMLEAD_SOURCE 1

| Definition at line 1556 of file rpmlib.h. Referenced by packageSources(), readPackageHeaders(), rewriteRPM(), rpmReadPackageHeader(), and writeRPM().

#define RPMSENSE_SENSEMASK 15

| Definition at line 473 of file rpmlib.h. Referenced by addReqProv(), headerMatchesDepFlags(), mergeFiles(), parseRCPOT(), printDepend(), printDepMsg(), rangeMatchesDepFlags(), rpmRangesOverlap(), triggercondsTag(), and unsatisfiedDepend().

#define RPMSENSE_TRIGGER (RPMSENSE_TRIGGERIN | RPMSENSE_TRIGGERUN | RPMSENSE_TRIGGERPOSTUN)

| Definition at line 476 of file rpmlib.h. Referenced by addReqProv().

#define RPMTAG_COPYRIGHT RPMTAG_LICENSE

#define RPMTAG_EXTERNAL_TAG 1000000

| Definition at line 390 of file rpmlib.h. Referenced by convertExistingAMD(), and main().

#define RPMTAG_OBSOLETES RPMTAG_OBSOLETENAME

#define RPMTAG_PROVIDES RPMTAG_PROVIDENAME

#define RPMTAG_SERIAL RPMTAG_EPOCH

#define RPMVAR_INCLUDE 43

| Definition at line 513 of file rpmlib.h. Referenced by doReadRC().

#define RPMVAR_MACROFILES 49

| Definition at line 514 of file rpmlib.h. Referenced by doReadRC(), and rpmReadRC().

#define RPMVAR_NUM 55

| Definition at line 516 of file rpmlib.h. Referenced by rpmFreeRpmrc().

#define RPMVAR_OPTFLAGS 3

| Definition at line 511 of file rpmlib.h. Referenced by rpmRebuildTargetVars(), and setDefaults().

#define RPMVAR_PROVIDES 38

| Definition at line 512 of file rpmlib.h. Referenced by doReadRC(), and unsatisfiedDepend().

#define RPMVERIFY_ALL ~(RPMVERIFY_NONE)

| Definition at line 1669 of file rpmlib.h. Referenced by processPackageFiles(), processSourceFiles(), and rpmVerifyFile().

#define XFA_SKIPPING | ( | _a |  | ) | ((_a) == FA_SKIP || (_a) == FA_SKIPNSTATE || (_a) == FA_SKIPNETSHARED || (_a) == FA_SKIPMULTILIB)

| Definition at line 1199 of file rpmlib.h. Referenced by dnlInitIterator(), fsmCommitLinks(), fsmMakeLinks(), fsmStage(), handleInstInstalledFiles(), handleOverlappedFiles(), rpmRunTransactions(), and skipFiles().

## Typedef Documentation

typedef enum fileAction_e fileAction

| File disposition(s) during package install/erase transaction.

typedef enum fileTypes_e fileTypes

| File types. These are the file types used internally by rpm. The file type is determined by applying stat(2) macros like S_ISDIR to the file mode tag from a header. The values are arbitrary, but are identical to the linux stat(2) file types.

typedef int(* HAE_t)(Header h, rpmTag tag, rpmTagType type, const void *p, int_32 c)

Prototype for headerAddEntry() vector.

Duplicate tags are okay, but only defined for iteration (with the exceptions noted below). While you are allowed to add i18n string arrays through this function, you probably don't mean to. See headerAddI18NString() instead.

Parameters:

  | h | header
  | tag | tag
  | type | tag value data type
  | p | pointer to tag value(s)
  | c | number of values

Returns:
  1 on success, 0 on failure

Definition at line 1114 of file rpmlib.h.

typedef void*(* HFD_t)(const void *data, rpmTagType type)

Prototype for headerFreeData() vector.

Parameters:

  | data | address of data (or NULL)
  | type | type of data (or -1 to force free)

Returns:
  NULL always

Definition at line 1078 of file rpmlib.h.

typedef int(* HGE_t)(Header h, rpmTag tag,rpmTagType *type,void **p,int_32 *c)

Prototype for headerGetEntry() vector.

Will never return RPM_I18NSTRING_TYPE! RPM_STRING_TYPE elements with RPM_I18NSTRING_TYPE equivalent entries are translated (if HEADER_I18NTABLE entry is present).

Parameters:

  | h | header
  | tag | tag

Return values:

  | type | address of tag value data type (or NULL)
  | p | address of pointer to tag value(s) (or NULL)
  | c | address of number of values (or NULL)

Returns:
  1 on success, 0 on failure

Definition at line 1094 of file rpmlib.h.

typedef int(* HME_t)(Header h, rpmTag tag, rpmTagType type, const void *p, int_32 c)

Prototype for headerModifyEntry() vector.

If there are multiple entries with this tag, the first one gets replaced.

Parameters:

  | h | header
  | tag | tag
  | type | tag value data type
  | p | pointer to tag value(s)
  | c | number of values

Returns:
  1 on success, 0 on failure

Definition at line 1128 of file rpmlib.h.

typedef int(* HRE_t)(Header h, int_32 tag)

Prototype for headerRemoveEntry() vector.

Delete tag in header. Removes all entries of type tag from the header, returns 1 if none were found.

Parameters:

  | h | header
  | tag | tag

Returns:
  0 on success, 1 on failure (INCONSISTENT)

Definition at line 1142 of file rpmlib.h.

typedef struct rpmDependencyConflict_s * rpmDependencyConflict

| Dependency problems found by rpmdepCheck().

typedef enum rpmfileAttrs_e rpmfileAttrs

| File Attributes.

typedef enum rpmfileState_e rpmfileState

| File States (when installed).

typedef enum rpmprobFilterFlags_e rpmprobFilterFlags

Todo:
  Generalize filter mechanism.

typedef struct rpmProblem_s * rpmProblem

typedef struct rpmProblemSet_s * rpmProblemSet

typedef enum rpmProblemType_e rpmProblemType

| Enumerate transaction set problem types.

typedef enum rpmRC_e rpmRC

| Package read return codes.

typedef struct rpmRelocation_s rpmRelocation

| We pass these around as an array with a sentinel.

typedef enum rpmsenseFlags_e rpmsenseFlags

| Dependency Attributes.

typedef enum rpmTag_e rpmTag

Tags identify data in package headers.

Note:
  tags should not have value 0!

typedef enum rpmVerifySignatureReturn_e rpmVerifySignatureReturn

| Return codes from verifySignature().

## Enumeration Type Documentation

enum fileAction_e

File disposition(s) during package install/erase transaction.

Enumeration values:

  FA_UNKNOWN | initial action for file ...
  FA_CREATE | ... copy in from payload.
  FA_COPYIN | ... copy in from payload.
  FA_COPYOUT | ... copy out to payload.
  FA_BACKUP | ... renamed with ".rpmorig" extension.
  FA_SAVE | ... renamed with ".rpmsave" extension.
  FA_SKIP | ... already replaced, don't remove.
  FA_ALTNAME | ... create with ".rpmnew" extension.
  FA_ERASE | ... to be removed.
  FA_SKIPNSTATE | ... untouched, state "not installed".
  FA_SKIPNETSHARED | ... untouched, state "netshared".

  FA_SKIPMULTILIB

  ... untouched.
  Todo:
    state "multilib" ???.

Definition at line 1184 of file rpmlib.h.

enum fileTypes_e

File types.

These are the file types used internally by rpm. The file type is determined by applying stat(2) macros like S_ISDIR to the file mode tag from a header. The values are arbitrary, but are identical to the linux stat(2) file types.

Enumeration values:

  PIPE | pipe/fifo
  CDEV | character device
  XDIR | directory
  BDEV | block device
  REG | regular file
  LINK | hard link
  SOCK | socket

Definition at line 1209 of file rpmlib.h.

enum rpmfileAttrs_e

File Attributes.

Enumeration values:

  RPMFILE_NONE |
  RPMFILE_CONFIG | from %config
  RPMFILE_DOC | from %doc

  RPMFILE_DONOTUSE

  Todo:
    (unimplemented) from donotuse.

  RPMFILE_MISSINGOK | from %config(missingok)
  RPMFILE_NOREPLACE | from %config(noreplace)

  RPMFILE_SPECFILE

  Todo:
    (unnecessary) marks 1st file in srpm.

  RPMFILE_GHOST | from %ghost
  RPMFILE_LICENSE | from %license
  RPMFILE_README | from %readme
  RPMFILE_EXCLUDE | from %exclude

Definition at line 405 of file rpmlib.h.

enum rpmfileState_e

File States (when installed).

Enumeration values:

  RPMFILE_STATE_NORMAL |
  RPMFILE_STATE_REPLACED |
  RPMFILE_STATE_NOTINSTALLED |
  RPMFILE_STATE_NETSHARED |

Definition at line 395 of file rpmlib.h.

enum rpmprobFilterFlags_e

Todo:
  Generalize filter mechanism.

Enumeration values:

  RPMPROB_FILTER_NONE |
  RPMPROB_FILTER_IGNOREOS | from --ignoreos
  RPMPROB_FILTER_IGNOREARCH | from --ignorearch
  RPMPROB_FILTER_REPLACEPKG | from --replacepkgs
  RPMPROB_FILTER_FORCERELOCATE | from --badreloc
  RPMPROB_FILTER_REPLACENEWFILES | from --replacefiles
  RPMPROB_FILTER_REPLACEOLDFILES | from --replacefiles
  RPMPROB_FILTER_OLDPACKAGE | from --oldpackage
  RPMPROB_FILTER_DISKSPACE | from --ignoresize
  RPMPROB_FILTER_DISKNODES | from --ignoresize

Definition at line 1499 of file rpmlib.h.

enum rpmProblemType_e

Enumerate transaction set problem types.

Enumeration values:

  RPMPROB_BADARCH | package ... is for a different architecture
  RPMPROB_BADOS | package ... is for a different operating system
  RPMPROB_PKG_INSTALLED | package ... is already installed
  RPMPROB_BADRELOCATE | path ... is not relocateable for package ...
  RPMPROB_REQUIRES | package ... has unsatisfied Requires: ...
  RPMPROB_CONFLICT | package ... has unsatisfied Conflicts: ...
  RPMPROB_NEW_FILE_CONFLICT | file ... conflicts between attemped installs of ...
  RPMPROB_FILE_CONFLICT | file ... from install of ... conflicts with file from package ...
  RPMPROB_OLDPACKAGE | package ... (which is newer than ...) is already installed
  RPMPROB_DISKSPACE | installing package ... needs ... on the ... filesystem
  RPMPROB_DISKNODES | installing package ... needs ... on the ... filesystem
  RPMPROB_BADPRETRANS | (unimplemented)

Definition at line 955 of file rpmlib.h.

enum rpmRC_e

Package read return codes.

Enumeration values:

  RPMRC_OK |
  RPMRC_BADMAGIC |
  RPMRC_FAIL |
  RPMRC_BADSIZE |
  RPMRC_SHORTREAD |

Definition at line 17 of file rpmlib.h.

enum rpmsenseFlags_e

Dependency Attributes.

Enumeration values:

  RPMSENSE_ANY |

  RPMSENSE_SERIAL

  Todo:
    Legacy.

  RPMSENSE_LESS |
  RPMSENSE_GREATER |
  RPMSENSE_EQUAL |
  RPMSENSE_PROVIDES |
  RPMSENSE_CONFLICTS |

  RPMSENSE_PREREQ

  Todo:
    Legacy.

  RPMSENSE_OBSOLETES |
  RPMSENSE_INTERP | Interpreter used by scriptlet.
  RPMSENSE_SCRIPT_PRE | pre dependency.
  RPMSENSE_SCRIPT_POST | post dependency.
  RPMSENSE_SCRIPT_PREUN | preun dependency.
  RPMSENSE_SCRIPT_POSTUN | postun dependency.
  RPMSENSE_SCRIPT_VERIFY | verify dependency.
  RPMSENSE_FIND_REQUIRES | find-requires generated dependency.
  RPMSENSE_FIND_PROVIDES | find-provides generated dependency.
  RPMSENSE_TRIGGERIN | triggerin dependency.
  RPMSENSE_TRIGGERUN | triggerun dependency.
  RPMSENSE_TRIGGERPOSTUN | triggerpostun dependency.
  RPMSENSE_MULTILIB |
  RPMSENSE_SCRIPT_PREP | prep build dependency.
  RPMSENSE_SCRIPT_BUILD | build build dependency.
  RPMSENSE_SCRIPT_INSTALL | install build dependency.
  RPMSENSE_SCRIPT_CLEAN | clean build dependency.
  RPMSENSE_RPMLIB | rpmlib(feature) dependency.

  RPMSENSE_TRIGGERPREIN

  Todo:
    Implement triggerprein.

  RPMSENSE_KEYRING |

Definition at line 434 of file rpmlib.h.

enum rpmTag_e

Tags identify data in package headers.

Note:
  tags should not have value 0!

Enumeration values:

  RPMTAG_HEADERIMAGE | Current image.
  RPMTAG_HEADERSIGNATURES | Signatures.
  RPMTAG_HEADERIMMUTABLE | Original image.
  RPMTAG_HEADERREGIONS | Regions.
  RPMTAG_HEADERI18NTABLE | I18N string locales.
  RPMTAG_SIG_BASE |
  RPMTAG_SIGSIZE |
  RPMTAG_SIGLEMD5_1 | internal
  RPMTAG_SIGPGP |
  RPMTAG_SIGLEMD5_2 | internal
  RPMTAG_SIGMD5 |
  RPMTAG_SIGGPG |
  RPMTAG_SIGPGP5 | internal
  RPMTAG_BADSHA1HEADER | internal
  RPMTAG_SHA1HEADER |
  RPMTAG_NAME |
  RPMTAG_VERSION |
  RPMTAG_RELEASE |
  RPMTAG_EPOCH |
  RPMTAG_SUMMARY |
  RPMTAG_DESCRIPTION |
  RPMTAG_BUILDTIME |
  RPMTAG_BUILDHOST |
  RPMTAG_INSTALLTIME |
  RPMTAG_SIZE |
  RPMTAG_DISTRIBUTION |
  RPMTAG_VENDOR |
  RPMTAG_GIF |
  RPMTAG_XPM |
  RPMTAG_LICENSE |
  RPMTAG_PACKAGER |
  RPMTAG_GROUP |
  RPMTAG_CHANGELOG | internal
  RPMTAG_SOURCE |
  RPMTAG_PATCH |
  RPMTAG_URL |
  RPMTAG_OS |
  RPMTAG_ARCH |
  RPMTAG_PREIN |
  RPMTAG_POSTIN |
  RPMTAG_PREUN |
  RPMTAG_POSTUN |
  RPMTAG_OLDFILENAMES |
  RPMTAG_FILESIZES |
  RPMTAG_FILESTATES |
  RPMTAG_FILEMODES |
  RPMTAG_FILEUIDS | internal
  RPMTAG_FILEGIDS | internal
  RPMTAG_FILERDEVS |
  RPMTAG_FILEMTIMES |
  RPMTAG_FILEMD5S |
  RPMTAG_FILELINKTOS |
  RPMTAG_FILEFLAGS |
  RPMTAG_ROOT | internal - obsolete
  RPMTAG_FILEUSERNAME |
  RPMTAG_FILEGROUPNAME |
  RPMTAG_EXCLUDE | internal - obsolete
  RPMTAG_EXCLUSIVE | internal - obsolete
  RPMTAG_ICON |
  RPMTAG_SOURCERPM |
  RPMTAG_FILEVERIFYFLAGS |
  RPMTAG_ARCHIVESIZE |
  RPMTAG_PROVIDENAME |
  RPMTAG_REQUIREFLAGS |
  RPMTAG_REQUIRENAME |
  RPMTAG_REQUIREVERSION |
  RPMTAG_NOSOURCE | internal
  RPMTAG_NOPATCH | internal
  RPMTAG_CONFLICTFLAGS |
  RPMTAG_CONFLICTNAME |
  RPMTAG_CONFLICTVERSION |
  RPMTAG_DEFAULTPREFIX | internal - deprecated
  RPMTAG_BUILDROOT | internal
  RPMTAG_INSTALLPREFIX | internal - deprecated
  RPMTAG_EXCLUDEARCH |
  RPMTAG_EXCLUDEOS |
  RPMTAG_EXCLUSIVEARCH |
  RPMTAG_EXCLUSIVEOS |
  RPMTAG_AUTOREQPROV | internal
  RPMTAG_RPMVERSION |
  RPMTAG_TRIGGERSCRIPTS |
  RPMTAG_TRIGGERNAME |
  RPMTAG_TRIGGERVERSION |
  RPMTAG_TRIGGERFLAGS |
  RPMTAG_TRIGGERINDEX |
  RPMTAG_VERIFYSCRIPT |
  RPMTAG_CHANGELOGTIME |
  RPMTAG_CHANGELOGNAME |
  RPMTAG_CHANGELOGTEXT |
  RPMTAG_BROKENMD5 | internal
  RPMTAG_PREREQ | internal
  RPMTAG_PREINPROG |
  RPMTAG_POSTINPROG |
  RPMTAG_PREUNPROG |
  RPMTAG_POSTUNPROG |
  RPMTAG_BUILDARCHS |
  RPMTAG_OBSOLETENAME |
  RPMTAG_VERIFYSCRIPTPROG |
  RPMTAG_TRIGGERSCRIPTPROG |
  RPMTAG_DOCDIR | internal
  RPMTAG_COOKIE |
  RPMTAG_FILEDEVICES |
  RPMTAG_FILEINODES |
  RPMTAG_FILELANGS |
  RPMTAG_PREFIXES |
  RPMTAG_INSTPREFIXES |
  RPMTAG_TRIGGERIN | internal
  RPMTAG_TRIGGERUN | internal
  RPMTAG_TRIGGERPOSTUN | internal
  RPMTAG_AUTOREQ | internal
  RPMTAG_AUTOPROV | internal
  RPMTAG_CAPABILITY | internal - obsolete
  RPMTAG_SOURCEPACKAGE | internal
  RPMTAG_OLDORIGFILENAMES | internal - obsolete
  RPMTAG_BUILDPREREQ | internal
  RPMTAG_BUILDREQUIRES | internal
  RPMTAG_BUILDCONFLICTS | internal
  RPMTAG_BUILDMACROS | internal
  RPMTAG_PROVIDEFLAGS |
  RPMTAG_PROVIDEVERSION |
  RPMTAG_OBSOLETEFLAGS |
  RPMTAG_OBSOLETEVERSION |
  RPMTAG_DIRINDEXES |
  RPMTAG_BASENAMES |
  RPMTAG_DIRNAMES |
  RPMTAG_ORIGDIRINDEXES | internal
  RPMTAG_ORIGBASENAMES | internal
  RPMTAG_ORIGDIRNAMES | internal
  RPMTAG_OPTFLAGS |
  RPMTAG_DISTURL |
  RPMTAG_PAYLOADFORMAT |
  RPMTAG_PAYLOADCOMPRESSOR |
  RPMTAG_PAYLOADFLAGS |
  RPMTAG_MULTILIBS |
  RPMTAG_INSTALLTID |
  RPMTAG_REMOVETID |
  RPMTAG_SHA1RHN | internal
  RPMTAG_RHNPLATFORM |
  RPMTAG_PLATFORM |
  RPMTAG_FIRSTFREE_TAG | internal

Definition at line 215 of file rpmlib.h.

enum rpmVerifySignatureReturn_e

Return codes from verifySignature().

Enumeration values:

  RPMSIG_OK | Signature is OK.
  RPMSIG_UNKNOWN | Signature is unknown.
  RPMSIG_BAD | Signature does not verify.
  RPMSIG_NOKEY | Key is unavailable.
  RPMSIG_NOTTRUSTED | Signature is OK, but key is not trusted.

Definition at line 1753 of file rpmlib.h.

## Function Documentation

static void* _free | ( | const void * | p | ) | `[inline, static]`

Wrapper to free(3), hides const compilation noise, permit NULL, return NULL.

Parameters:

  | p | memory to free

Returns:
  NULL always

Definition at line 55 of file rpmlib.h.

void freeFilesystems | ( | void |  | ) |

| Release storage used by file system usage cache. Definition at line 26 of file fs.c. References _free(), filesystems, fsnames, fsinfo::mntPoint, and numFilesystems. Referenced by getFilesystemList(), and main().

void printDepFlags | ( | FILE * | fp,
|  | const char * | version,
|  | int | flags
| ) |

| Definition at line 19 of file problems.c. References RPMSENSE_EQUAL, RPMSENSE_GREATER, and RPMSENSE_LESS. Referenced by printDepProblems(), and rpmShowRpmlibProvides().

void printDepProblems | ( | FILE * | fp,
|  | const rpmDependencyConflict | conflicts,
|  | int | numConflicts
| ) |

Print results of rpmdepCheck() dependency check.

Parameters:

  | fp | output file
  | conflicts | dependency problems
  | numConflicts | no. of dependency problems

Definition at line 61 of file problems.c.

References _, printDepFlags(), and sameProblem().

Referenced by checkSpec(), rpmErase(), rpmInstall(), and rpmRollback().

void rpmBuildFileList | ( | Header | h,
|  | const char *** | fileListPtr,
|  | int * | fileCountPtr
| ) |

Retrieve file names from header.

The representation of file names in package headers changed in rpm-4.0. Originally, file names were stored as an array of paths. In rpm-4.0, file names are stored as separate arrays of dirname's and basename's, with a dirname index to associate the correct dirname with each basname. This function is used to retrieve file names independent of how the file names are represented in the package header.

Parameters:

  | h | header

Return values:

  | fileListPtr | address of array of file names
  | fileCountPtr | address of number of files

Definition at line 459 of file misc.c.

References doBuildFileList(), RPMTAG_BASENAMES, RPMTAG_DIRINDEXES, and RPMTAG_DIRNAMES.

Referenced by filenamesTag(), fssizesTag(), mungeFilelist(), psmStage(), rpmHeaderGetEntry(), rpmInstallSourcePackage(), and verifyHeader().

int rpmGetFilesystemList | ( | const char *** | listptr,
|  | int * | num
| ) |

Return (cached) file system mount points.

Return values:

  | listptr | addess of file system names (or NULL)
  | num | address of number of file systems (or NULL)

Returns:
  0 on success, 1 on error

Definition at line 231 of file fs.c.

References fsnames, getFilesystemList(), and numFilesystems.

Referenced by fsnamesTag(), fssizesTag(), and rpmRunTransactions().

int rpmGetFilesystemUsage | ( | const char ** | fileList,
|  | int_32 * | fssizes,
|  | int | numFiles,
|  | uint_32 ** | usagesPtr,
|  | int | flags
| ) |

Determine per-file system usage for a list of files.

Parameters:

  | fileList | array of absolute file names
  | fssizes | array of file sizes
  | numFiles | number of files in list

Return values:

  | usagesPtr | address of per-file system usage array (or NULL)

Parameters:

  | flags | (unused)

Returns:
  0 on success, 1 on error

Definition at line 243 of file fs.c.

References _, _free(), alloca(), errno, filesystems, fsnames, getFilesystemList(), numFilesystems, RPMERR_BADDEV, RPMERR_STAT, rpmError, rpmGetPath(), strerror(), and xcalloc().

Referenced by fssizesTag().

int rpmHeaderGetEntry | ( | Header | h,
|  | int_32 | tag,
|  | int_32 * | type,
|  | void ** | p,
|  | int_32 * | c
| ) |

Retrieve tag info from header.

This is a "dressed" entry to headerGetEntry to do: 1) DIRNAME/BASENAME/DIRINDICES -> FILENAMES tag conversions. 2) i18n lookaside (if enabled).

Parameters:

  | h | header
  | tag | tag

Return values:

  | type | address of tag value data type
  | p | address of pointer to tag value(s)
  | c | address of number of values

Returns:
  0 on success, 1 on bad magic, 2 on error

Definition at line 627 of file misc.c.

References headerGetEntry(), headerSprintf(), RPM_STRING_ARRAY_TYPE, RPM_STRING_TYPE, rpmBuildFileList(), rpmHeaderFormats, RPMTAG_DESCRIPTION, RPMTAG_GROUP, RPMTAG_OLDFILENAMES, RPMTAG_SUMMARY, rpmTagTable, stpcpy(), and tagName().

Referenced by rpmPackageGetEntry().

rpmRC rpmInstallSourcePackage | ( | const char * | rootDir,
|  | FD_t | fd,
|  | const char ** | specFilePtr,
|  | rpmCallbackFunction | notify,
|  | rpmCallbackData | notifyData,
|  | char ** | cookie
| ) |

Install source package.

Parameters:

  | rootDir | path to top of install tree (or NULL)
  | fd | file handle

Return values:

  | specFilePtr | address of spec file name (or NULL)

Parameters:

  | notify | progress callback
  | notifyData | progress callback private data

Return values:

  | cooke | address of cookie pointer (or NULL)

Returns:
  rpmRC return code

Definition at line 612 of file psm.c.

References _, _free(), transactionFileInfo_s::actions, rpmTransactionSet_s::addedPackages, transactionFileInfo_s::ap, transactionFileInfo_s::apath, transactionFileInfo_s::astriplen, transactionFileInfo_s::bnl, chkdir(), CPIO_MAP_GID, CPIO_MAP_MODE, CPIO_MAP_PATH, CPIO_MAP_UID, transactionFileInfo_s::dc, transactionFileInfo_s::dil, transactionFileInfo_s::dnl, FA_CREATE, transactionFileInfo_s::fc, transactionFileInfo_s::fflags, transactionFileInfo_s::fgids, transactionFileInfo_s::fmapflags, transactionFileInfo_s::fmd5s, freeFi(), transactionFileInfo_s::fuids, transactionFileInfo_s::gid, transactionFileInfo_s::h, headerFree(), headerIsEntry(), transactionFileInfo_s::hfd, transactionFileInfo_s::hge, availableList_s::list, loadFi(), transactionFileInfo_s::mapflags, rpmTransactionSet_s::notify, rpmTransactionSet_s::notifyData, PSM_FINI, PSM_PKGINSTALL, PSM_PROCESS, psmStage(), rpmTransactionSet_s::rootDir, rpmBuildFileList(), RPMERR_NOSPEC, RPMERR_NOTSRPM, rpmError, RPMFILE_SPECFILE, rpmGenPath(), rpmInstallLoadMacros(), RPMRC_FAIL, RPMRC_OK, rpmReadPackageHeader(), RPMTAG_COOKIE, rpmtransAddPackage(), rpmtransCreateSet(), rpmtransFree(), stpcpy(), transactionFileInfo_s::striplen, transactionFileInfo_s::type, transactionFileInfo_s::uid, xcalloc(), xmalloc(), and xstrdup().

Referenced by rpmInstall(), and rpmInstallSource().

int rpmPackageGetEntry | ( | void * | leadp,
|  | Header | sigs,
|  | Header | h,
|  | int_32 | tag,
|  | int_32 * | type,
|  | void ** | p,
|  | int_32 * | c
| ) |

Retrieve tag info from header.

Yet Another "dressed" entry to headerGetEntry in order to unify signature/header tag retrieval.

Deprecated:
  Signature tags are now duplicated into header when installed.

Todo:
  Eliminate from API.

Parameters:

  | leadp | rpm lead
  | h | header
  | sigs | signatures
  | tag | tag

Return values:

  | type | address of tag value data type
  | p | address of pointer to tag value(s)
  | c | address of number of values

Returns:
  0 on success, 1 on bad magic, 2 on error

Definition at line 678 of file misc.c.

References headerGetEntry(), headerIsEntry(), rpmHeaderGetEntry(), RPMSIGTAG_GPG, RPMSIGTAG_LEMD5_1, RPMSIGTAG_LEMD5_2, RPMSIGTAG_MD5, RPMSIGTAG_PGP, RPMSIGTAG_SIZE, RPMTAG_SIGGPG, RPMTAG_SIGLEMD5_1, RPMTAG_SIGLEMD5_2, RPMTAG_SIGMD5, RPMTAG_SIGPGP, RPMTAG_SIGPGP5, and RPMTAG_SIGSIZE.

Referenced by hdrSubscript().

void rpmProblemPrint | ( | FILE * | fp,
|  | rpmProblem | prob
| ) |

Output formatted string representation of problem to file handle.

Deprecated:
  API: prob used to be passed by value, now passed by reference.

Parameters:

  | fp | file handle
  | prob | rpm problem

Definition at line 202 of file problems.c.

References _free(), and rpmProblemString().

Referenced by rpmProblemSetPrint().

void rpmProblemSetFree | ( | rpmProblemSet | probs | ) |

Destroy problem set.

Parameters:

  | probs | 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().

void rpmProblemSetPrint | ( | FILE * | fp,
|  | rpmProblemSet | probs
| ) |

Print problems to file handle.

Parameters:

  | fp | file handle
  | probs | problem set

Definition at line 209 of file problems.c.

References rpmProblem_s::ignoreProblem, rpmProblemSet_s::probs, and rpmProblemPrint().

Referenced by rpmInstall(), and rpmRollback().

const char* rpmProblemString | ( | const rpmProblem | prob | ) |

Return formatted string representation of problem.

Deprecated:
  API: prob used to be passed by value, now passed by reference.

Parameters:

  | prob | rpm problem

Returns:
  formatted string (malloc'd)

Definition at line 114 of file problems.c.

References _, rpmProblem_s::altNEVR, rpmProblem_s::pkgNEVR, RPMPROB_BADARCH, RPMPROB_BADOS, RPMPROB_BADPRETRANS, RPMPROB_BADRELOCATE, RPMPROB_CONFLICT, RPMPROB_DISKNODES, RPMPROB_DISKSPACE, RPMPROB_FILE_CONFLICT, RPMPROB_NEW_FILE_CONFLICT, RPMPROB_OLDPACKAGE, RPMPROB_PKG_INSTALLED, RPMPROB_REQUIRES, snprintf(), rpmProblem_s::str1, strerror(), rpmProblem_s::type, rpmProblem_s::ulong1, and xmalloc().

Referenced by rpmProblemPrint(), and rpmtransRun().

rpmRC rpmReadPackageHeader | ( | FD_t | fd,
|  | Header * | hdrp,
|  | int * | isSource,
|  | int * | major,
|  | int * | minor
| ) |

Return package header and lead info from file handle.

Parameters:

  | fd | file handle

Return values:

  | hdrp | address of header (or NULL)
  | isSource | address to return lead source flag (or NULL)
  | major | address to return lead major (or NULL)
  | minor | address to return lead minor (or NULL)

Returns:
  rpmRC return code

Definition at line 249 of file package.c.

References headerMergeLegacySigs(), rpmlead::major, major, rpmlead::minor, minor, readPackageHeaders(), rpmFreeSignature(), RPMLEAD_SOURCE, RPMRC_OK, and rpmlead::type.

Referenced by IDTXglob(), main(), rpmInstall(), rpmInstallSourcePackage(), rpmQueryVerify(), and rpmRunTransactions().

rpmRC rpmReadPackageInfo | ( | FD_t | fd,
|  | Header * | sigp,
|  | Header * | hdrp
| ) |

Return package signatures and header from file handle.

Deprecated:
  Signature tags are appended to header in rpm-4.0.2.

Todo:
  Eliminate.

Parameters:

  | fd | file handle

Return values:

  | sigp | address of signature header (or NULL)
  | hdrp | address of header (or NULL)

Returns:
  rpmRC return code

Definition at line 237 of file package.c.

References headerMergeLegacySigs(), readPackageHeaders(), and RPMRC_OK.

Referenced by readRPM(), and rpmHeaderFromPackage().

int rpmVerifyScript | ( | const char * | rootDir,
|  | Header | h,
|  | FD_t | scriptFd
| ) |

Return exit code from running verify script from header.

Todo:
  gnorpm/kpackage prevents static, should be using VERIFY_SCRIPT flag.

Parameters:

  | rootDir | path to top of install tree
  | h | header
  | scriptFd | file handle to use for stderr (or NULL)

Returns:
  0 on success

Definition at line 279 of file verify.c.

References _free(), fdLink, freeFi(), loadFi(), transactionFileInfo_s::magic, PSM_SCRIPT, psmStage(), RPMTAG_VERIFYSCRIPT, RPMTAG_VERIFYSCRIPTPROG, rpmtransCreateSet(), rpmtransFree(), rpmTransactionSet_s::scriptFd, TFIMAGIC, and xcalloc().

Referenced by showVerifyPackage().

int rpmVersionCompare | ( | Header | first,
|  | Header | second
| ) |

Compare headers to determine which header is "newer".

Parameters:

  | first | 1st header
  | second | 2nd header

Returns:
  result of comparison

Definition at line 36 of file psm.c.

References headerGetEntry(), RPMTAG_EPOCH, RPMTAG_RELEASE, RPMTAG_VERSION, and rpmvercmp().

Referenced by alAddPackage(), ensureOlder(), findUpgradePackages(), pkgCompareVer(), rpmInstall(), rpmtransAddPackage(), unmarkPackagesAlreadyInstalled(), and versionCompare().

const char* const tagName | ( | int | tag | ) |

Return name of tag from value.

Parameters:

  | tag | tag value

Returns:
  name of tag

Definition at line 10 of file tagName.c.

References RPMDBI_ADDED, RPMDBI_AVAILABLE, RPMDBI_DEPENDS, RPMDBI_PACKAGES, RPMDBI_REMOVED, rpmTagTable, rpmTagTableSize, and xtolower().

int tagValue | ( | const char * | tagstr | ) |

Return value of tag from name.

Parameters:

  | targstr | name of tag

Returns:
  tag value

Definition at line 53 of file tagName.c.

References headerTagTableEntry_s::name, RPMDBI_ADDED, RPMDBI_AVAILABLE, RPMDBI_DEPENDS, RPMDBI_PACKAGES, RPMDBI_REMOVED, rpmTagTable, headerTagTableEntry_s::val, and xstrcasecmp().

Referenced by dbiTagsInit().

## Variable Documentation

struct MacroContext_s* rpmCLIMacroContext

| Definition at line 66 of file macro.c. Referenced by main(), and rpmInitMacros().

const char* rpmEVR

| Definition at line 526 of file depends.c. Referenced by printVersion().

int rpmFLAGS

| Definition at line 527 of file depends.c.

struct MacroContext_s* rpmGlobalMacroContext

| Definition at line 61 of file macro.c. Referenced by addMacro(), delMacro(), expandMacros(), findEntry(), newSpec(), rpmDefineMacro(), rpmDumpMacroTable(), rpmFreeMacros(), rpmInitMacros(), and rpmLoadMacros().

const struct headerSprintfExtension_s rpmHeaderFormats[]

Table of query format extensions.

Note:
  Chains to headerDefaultFormats[].

Definition at line 719 of file formats.c.

Referenced by hdrSprintf(), hdrSubscript(), initrpm(), packageBinaries(), printNewSpecfile(), psmStage(), queryHeader(), rpmDisplayQueryTags(), rpmHeaderGetEntry(), and rpmShowProgress().

const char* rpmNAME

| Definition at line 525 of file depends.c.

const struct headerTagTableEntry_s rpmTagTable[]

| Automatically generated table of tag name/value pairs. Definition at line 4 of file tagtable.c. Referenced by getTagString(), getTagVal(), hdrSprintf(), initrpm(), main(), packageBinaries(), printNewSpecfile(), psmStage(), queryHeader(), rpmDisplayQueryTags(), rpmHeaderGetEntry(), rpmShowProgress(), tagName(), tagNumFromPyObject(), and tagValue().

const int rpmTagTableSize

| Number of entries in rpmTagTable. Definition at line 115 of file tagtable.c. Referenced by initrpm(), rpmDisplayQueryTags(), tagName(), and tagNumFromPyObject().

const char* RPMVERSION

| Definition at line 10 of file misc.c. Referenced by armorFormat().