Main Page Modules Data Structures File List Data Fields Globals Related Pages

# lib/rpmlib.h File Reference

More...

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

Go to the source code of this file.

## Data Structures

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

## 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 /*!< No. of arch/os tables. */
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)

## 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. More...
typedef int(* | HGE_t )(Header h, rpmTag tag, rpmTagType *type, void **p, int_32 *c)
| Prototype for headerGetEntry() vector. More...
typedef int(* | HAE_t )(Header h, rpmTag tag, rpmTagType type, const void *p, int_32 c)
| Prototype for headerAddEntry() vector. More...
typedef int(* | HME_t )(Header h, rpmTag tag, rpmTagType type, const void *p, int_32 c)
| Prototype for headerModifyEntry() vector. More...
typedef int(* | HRE_t )(Header h, int_32 tag)
| Prototype for headerRemoveEntry() vector. More...
typedef enum rpmprobFilterFlags_e | rpmprobFilterFlags
typedef rpmRelocation_s | rpmRelocation
| We pass these around as an array with a sentinel. More...
typedef enum fileAction_e | fileAction
| File disposition(s) during package install/erase transaction. More...
typedef enum fileTypes_e | fileTypes
| File types. More...
typedef fsmIterator_s * | FSMI_t
typedef fsm_s * | FSM_t
typedef rpmpsm_s * | rpmpsm
typedef enum rpmtransFlags_e | rpmtransFlags

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)
}

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), RPMTRANS_FLAG_NOSUGGEST = (1 << 28), RPMTRANS_FLAG_ADDINDEPS = (1 << 29)
}

int | rpmVersionCompare (Header first, Header second)
| Compare headers to determine which header is "newer". More...
int | headerVerifyInfo (int il, int dl, const void *pev, void *iv, int negate)
| Perform simple sanity and range checks on header tag(s). More...
rpmRC | headerCheck (rpmts ts, const void *uh, size_t uc, const char **msg)
| Check header consistency, performing headerGetEntry() the hard way. More...
rpmRC | rpmReadHeader (rpmts ts, FD_t fd, Header *hdrp, const char **msg)
| Return checked and loaded header. More...
int | rpmReadPackageFile (rpmts ts, FD_t fd, const char *fn, Header *hdrp)
| Return package header from file handle, verifying digests/signatures. More...
rpmRC | rpmInstallSourcePackage (rpmts ts, FD_t fd, const char **specFilePtr, const char **cookie)
| Install source package. More...
int | rpmGetRpmlibProvides (const char ***provNames, int **provFlags, const char ***provVersions)
int | rpmvercmp (const char *a, const char *b)
int | rpmCheckRpmlibProvides (const rpmds key)
void | rpmShowRpmlibProvides (FILE *fp)

## Defines

#define | RPMAL_NOMATCH ((alKey)-1L)
#define | RPMDBI_PACKAGES 0 /*!< Installed package headers. */
| Pseudo-tags used by the rpmdb iterator API. More...
#define | RPMDBI_DEPENDS 1 /*!< Dependency resolution cache. */
#define | RPMDBI_LABEL 2 /*!< Fingerprint search marker. */
#define | RPMDBI_ADDED 3 /*!< Added package headers. */
#define | RPMDBI_REMOVED 4 /*!< Removed package headers. */
#define | RPMDBI_AVAILABLE 5 /*!< Available package headers. */
#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_STATE_MISSING -1
#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

## Typedefs

typedef enum rpmRC_e | rpmRC
| Package read return codes. More...
typedef rpmts_s * | rpmts
typedef void * | alKey
typedef int | alNum
typedef rpmds_s * | rpmds
typedef rpmfi_s * | rpmfi
typedef rpmte_s * | rpmte
typedef rpmdb_s * | rpmdb
typedef _rpmdbMatchIterator * | rpmdbMatchIterator
typedef enum rpmTag_e | rpmTag
| Tags identify data in package headers. More...
typedef enum rpmfileState_e | rpmfileState
| File States (when installed). More...
typedef enum rpmfileAttrs_e | rpmfileAttrs
| File Attributes. More...
typedef enum rpmsenseFlags_e | rpmsenseFlags
| Dependency Attributes. More...

## Enumerations

enum | rpmRC_e { RPMRC_OK = 0, RPMRC_NOTFOUND = 1, RPMRC_FAIL = 2, RPMRC_NOTTRUSTED = 3, RPMRC_NOKEY = 4 }
| Package read return codes. More...

enum

rpmTag_e {
RPMTAG_HEADERIMAGE = HEADER_IMAGE, RPMTAG_HEADERSIGNATURES = HEADER_SIGNATURES, RPMTAG_HEADERIMMUTABLE = HEADER_IMMUTABLE, RPMTAG_HEADERREGIONS = HEADER_REGIONS,
RPMTAG_HEADERI18NTABLE = HEADER_I18NTABLE, RPMTAG_SIG_BASE = HEADER_SIGBASE, 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_BADSHA1_1 = RPMTAG_SIG_BASE+8, RPMTAG_BADSHA1_2 = RPMTAG_SIG_BASE+9, RPMTAG_PUBKEYS = RPMTAG_SIG_BASE+10,
RPMTAG_DSAHEADER = RPMTAG_SIG_BASE+11, RPMTAG_RSAHEADER = RPMTAG_SIG_BASE+12, RPMTAG_SHA1HEADER = RPMTAG_SIG_BASE+13, 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_PATCHESNAME = 1133,
RPMTAG_PATCHESFLAGS = 1134, RPMTAG_PATCHESVERSION = 1135, RPMTAG_CACHECTIME = 1136, RPMTAG_CACHEPKGPATH = 1137,
RPMTAG_CACHEPKGSIZE = 1138, RPMTAG_CACHEPKGMTIME = 1139, 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), RPMFILE_UNPATCHED = (1 << 10) }
| 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),
RPMSENSE_PATCHES = (1 << 27)
}

| Dependency Attributes. More...

## Functions

void * | _free (const void *p)
| Wrapper to free(3), hides const compilation noise, permit NULL, return NULL. More...
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, int noArchiveSize)
void | rpmBuildFileList (Header h, const char ***fileListPtr, int *fileCountPtr)
int | rpmHeaderGetEntry (Header h, int_32 tag, int_32 *type, void **p, int_32 *c)
const char *const | tagName (int tag)
| Return name of tag from value. More...
int | tagValue (const char *tagstr)
| Return value of tag from name. More...

## 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. More...
const int | rpmTagTableSize
| Number of entries in rpmTagTable. More...
const struct headerSprintfExtension_s | rpmHeaderFormats []
| Table of query format extensions. More...

## 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 492 of file rpmlib.h.

Referenced by addReqProv.

#define _ERASE_ONLY_MASK _notpre(RPMSENSE_SCRIPT_PREUN|RPMSENSE_SCRIPT_POSTUN)

| Definition at line 510 of file rpmlib.h.

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

| Definition at line 508 of file rpmlib.h.

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

| Definition at line 507 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 956 of file rpmlib.h.

Referenced by installArgCallback, and main.

#define _noTransTriggers

Value:

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

Definition at line 963 of file rpmlib.h.

Referenced by installArgCallback, and main.

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

| Definition at line 490 of file rpmlib.h. Referenced by addReqProv, checkPackageDeps, printDepMsg, and rpmalAddProvides.

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

| Definition at line 515 of file rpmlib.h. Referenced by rpmtsOrder.

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

| Definition at line 442 of file rpmlib.h. Referenced by rpmalAllFileSatisfiesDepend.

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

| Definition at line 514 of file rpmlib.h. Referenced by rpmdbAdd, and rpmtsOrder.

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

| Definition at line 513 of file rpmlib.h. Referenced by identifyDepend, and rpmtsOrder.

#define RPM_MACHTABLE_COUNT 4 /*!< No. of arch/os tables. */

| Definition at line 558 of file rpmlib.h.

#define RPMAL_NOMATCH ((alKey)-1L)

| Definition at line 74 of file rpmlib.h. Referenced by addRelation, initrpm, rpmalAdd, rpmalAllFileSatisfiesDepend, rpmalAllSatisfiesDepend, rpmteAddedKey, rpmteDependsOnKey, rpmteSetAddedKey, rpmtsAddAvailableElement, rpmtsAddEraseElement, rpmtsAddInstallElement, and rpmtsOrder.

#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, rpmtsCheck, 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 rpmts_AddErase.

#define RPMDBI_PACKAGES 0 /*!< Installed package headers. */

| Pseudo-tags used by the rpmdb iterator API. Definition at line 204 of file rpmlib.h. Referenced by addLostFiles, dbiFindMatches, dbiOpen, dbiTagsInit, main, openDatabase, rpmdb_length, rpmdb_Match, rpmdb_subscript, rpmdbAdd, rpmdbFindByFile, rpmdbFreeIterator, rpmdbInitIterator, rpmdbNextIterator, rpmdbRebuild, rpmdbRemove, rpmQueryVerify, rpmts_AddErase, rpmts_Match, 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 439 of file rpmlib.h.

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

| Definition at line 436 of file rpmlib.h. Referenced by processPackageFiles.

#define RPMFILE_MULTILIB_MASK RPMFILE_MULTILIB(7)

| Definition at line 437 of file rpmlib.h. Referenced by addFile, and genCpioListAndHeader.

#define RPMFILE_MULTILIB_SHIFT 9

| Definition at line 435 of file rpmlib.h. Referenced by genCpioListAndHeader.

#define RPMFILE_STATE_MISSING -1

| Definition at line 412 of file rpmlib.h. Referenced by showQueryPackage.

#define RPMLEAD_BINARY 0

| Definition at line 1029 of file rpmlib.h. Referenced by packageBinaries, and writeRPM.

#define RPMLEAD_MAGIC0 0xed

| Definition at line 1032 of file rpmlib.h.

#define RPMLEAD_MAGIC1 0xab

| Definition at line 1033 of file rpmlib.h.

#define RPMLEAD_MAGIC2 0xee

| Definition at line 1034 of file rpmlib.h.

#define RPMLEAD_MAGIC3 0xdb

| Definition at line 1035 of file rpmlib.h.

#define RPMLEAD_SOURCE 1

| Definition at line 1030 of file rpmlib.h. Referenced by legacyRetrofit, packageSources, rewriteRPM, and writeRPM.

#define RPMSENSE_SENSEMASK 15

| Definition at line 484 of file rpmlib.h. Referenced by addReqProv, parseRCPOT, printDepMsg, rpmdsAnyMatchesDep, rpmdsCompare, rpmdsNewDNEVR, rpmdsNVRMatchesDep, triggercondsTag, and unsatisfiedDepend.

#define RPMSENSE_TRIGGER (RPMSENSE_TRIGGERIN | RPMSENSE_TRIGGERUN | RPMSENSE_TRIGGERPOSTUN)

| Definition at line 487 of file rpmlib.h. Referenced by addReqProv.

#define RPMTAG_COPYRIGHT RPMTAG_LICENSE

#define RPMTAG_EXTERNAL_TAG 1000000

| Definition at line 401 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 524 of file rpmlib.h. Referenced by doReadRC.

#define RPMVAR_MACROFILES 49

| Definition at line 525 of file rpmlib.h. Referenced by doReadRC, and rpmReadRC.

#define RPMVAR_NUM 55

| Definition at line 527 of file rpmlib.h.

#define RPMVAR_OPTFLAGS 3

| Definition at line 522 of file rpmlib.h. Referenced by rpmRebuildTargetVars, and setDefaults.

#define RPMVAR_PROVIDES 38

| Definition at line 523 of file rpmlib.h. Referenced by doReadRC, and unsatisfiedDepend.

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

| Definition at line 799 of file rpmlib.h.

## Typedef Documentation

typedef void* alKey

An added/available package retrieval key.

Definition at line 73 of file rpmlib.h.

Referenced by addRelation, alKey2Num, alNum2Key, removePackage, rpmal_Add, rpmal_AddProvides, rpmal_Del, rpmalAdd, rpmalAddProvides, rpmalAllFileSatisfiesDepend, rpmalAllSatisfiesDepend, rpmalDel, rpmalMakeIndex, rpmalSatisfiesDepend, rpmteAddedKey, rpmteDependsOnKey, rpmteFree, rpmteKey, rpmteNEVR, rpmteNew, rpmteSetAddedKey, rpmtsAddInstallElement, and rpmtsOrder.

typedef int alNum

| An added/available package retrieval index. Definition at line 80 of file rpmlib.h. Referenced by alKey2Num, alNum2Key, rpmalAdd, rpmalAddProvides, and rpmalDel.

typedef enum fileAction_e fileAction

| File disposition(s) during package install/erase transaction. Referenced by rpmtsFree, and rpmtsUpdateDSI.

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 714 of file rpmlib.h.

Referenced by compressFilelist, expandFilelist, and headerMergeLegacySigs.

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 676 of file rpmlib.h.

Referenced by addReqProv, compressFilelist, doBuildFileList, handlePreambleTag, headerMergeLegacySigs, headerRegenSigHeader, instprefixTag, isMemberInEntry, mireSkip, printDeps, providePackageNVR, rpmdbAdd, rpmdbFindByFile, rpmdbFindFpList, rpmdbRemove, rpmdsFree, timeCheck, triggercondsTag, and triggertypeTag.

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 693 of file rpmlib.h.

Referenced by addFileToTag, addReqProv, addTE, compressFilelist, doBuildFileList, fssizesTag, ftsCacheUpdate, handlePreambleTag, i18nTag, IDTXglob, IDTXload, instprefixTag, isMemberInEntry, mireSkip, printDeps, processPackageFiles, providePackageNVR, rpmdbAdd, rpmdbFindByFile, rpmdbFindFpList, rpmdbRemove, rpmdsNew, rpmdsNVRMatchesDep, rpmdsThis, rpmtsAddInstallElement, stashSt, timeCheck, triggercondsTag, triggertypeTag, and writeRPM.

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 729 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 743 of file rpmlib.h.

Referenced by compressFilelist, and expandFilelist.

typedef struct rpmds_s* rpmds

Dependency tag sets from a header, so that a header can be discarded early.

Definition at line 86 of file rpmlib.h.

Referenced by addRelation, checkPackageDeps, checkPackageSet, dsFromDs, ftsStashLatest, rpmalAdd, rpmalAddProvides, rpmalAllFileSatisfiesDepend, rpmalAllSatisfiesDepend, rpmalSatisfiesDepend, rpmCheckRpmlibProvides, rpmds_Wrap, rpmdsAnyMatchesDep, rpmdsCompare, rpmdsCount, rpmdsDNEVR, rpmdsEVR, rpmdsFlags, rpmdsFree, rpmdsInit, rpmdsIx, rpmdsN, rpmdsNew, rpmdsNewDNEVR, rpmdsNext, rpmdsNoPromote, rpmdsNotify, rpmdsNVRMatchesDep, rpmdsProblem, rpmdsSetIx, rpmdsSetNoPromote, rpmdsSingle, rpmdsTagN, rpmdsThis, rpmInstall, rpmShowRpmlibProvides, rpmte_DS, rpmteDS, rpmts_SolveCallback, rpmtsAddAvailableElement, rpmtsAddInstallElement, rpmtsAvailable, rpmtsCheck, rpmtsCloseDB, rpmtsiOc, rpmtsOpenSDB, rpmtsOrder, rpmtsSetSolveCallback, rpmtsSolve, unsatisfiedDepend, XrpmdsLink, XrpmdsUnlink, and zapRelation.

typedef struct rpmfi_s* rpmfi

File info tag sets from a header, so that a header can be discarded early.

Definition at line 91 of file rpmlib.h.

Referenced by cpio_doio, fiFromFi, freePackage, freeSpec, genCpioListAndHeader, generateDepends, processPackageFiles, processSourceFiles, rpmalAdd, rpmalDel, rpmfi_Wrap, rpmte_FI, rpmteFI, rpmtsAddAvailableElement, rpmtsCheck, rpmtsiOc, rpmVerifyFile, rpmVerifyScript, showQueryPackage, showVerifyPackage, and verifyHeader.

typedef enum rpmfileAttrs_e rpmfileAttrs

| File Attributes. Referenced by rpmVerifyFile, showQueryPackage, and verifyHeader.

typedef enum rpmfileState_e rpmfileState

| File States (when installed). Referenced by showQueryPackage.

typedef enum rpmprobFilterFlags_e rpmprobFilterFlags

Todo:
  Generalize filter mechanism.

Referenced by rpmInstall, rpmts_SetProbFilter, rpmtsAddInstallElement, rpmtsFilterFlags, and rpmtsSetRootDir.

typedef struct rpmpsm_s* rpmpsm

| Package state machine data. Definition at line 832 of file rpmlib.h.

typedef enum rpmRC_e rpmRC

Package read return codes.

Referenced by dbiFindByLabel, dbiFindMatches, ftsStashLatest, headerCheck, IDTXglob, main, miFreeHeader, printSize, readLead, readRPM, rpmdbAdd, rpmdbNextIterator, rpmdbRebuild, rpmdbRemove, rpmdbSetHdrChk, rpmGraph, rpmInstallSource, rpmLookupSignatureType, rpmMkdirPath, rpmQueryVerify, rpmReadHeader, rpmReadPackageFile, rpmReadSignature, rpmReSign, rpmSigString, rpmts_HdrCheck, rpmts_HdrFromFdno, rpmtsFindPubkey, rpmtsOpenSDB, rpmtsSolve, rpmVerifySignature, rpmVerifySignatures, verifyGPGSignature, verifyMD5Signature, verifyPGPSignature, verifySHA1Signature, verifySizeSignature, writeLead, and XrpmdbUnlink.

typedef struct rpmRelocation_s rpmRelocation

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

typedef enum rpmsenseFlags_e rpmsenseFlags

| Dependency Attributes. Referenced by addReqProv, buildSpec, handlePreambleTag, parseBits, and parseRCPOT.

typedef enum rpmTag_e rpmTag

Tags identify data in package headers.

Note:
  tags should not have value 0!

Referenced by addReqProv, checkForRequired, db3open, dbiOpen, doBuildFileList, hdr_dsFromHeader, hdr_fiFromHeader, IDTXglob, IDTXload, isMemberInEntry, mireDup, rpmdbInitIterator, rpmdbSetIteratorRE, rpmdsFree, rpmdsNew, rpmdsSingle, rpmdsTagN, rpmdsThis, rpmmi_Pattern, rpmte_DS, rpmte_FI, rpmteDS, rpmteFI, rpmts_IDTXglob, rpmts_IDTXload, rpmtsInitIterator, rpmtsiOc, rpmtsOpenSDB, rpmtsSolve, and XrpmdsUnlink.

typedef struct rpmte_s* rpmte

An element of a transaction set, i.e. a TR_ADDED or TR_REMOVED package.

Definition at line 96 of file rpmlib.h.

Referenced by addQ, addRelation, addTE, delTE, ignoreDep, markLoop, removePackage, rpmGraph, rpmte_Wrap, rpmteA, rpmteAddedKey, rpmteCleanDS, rpmteDBOffset, rpmteDegree, rpmteDependsOnKey, rpmteDepth, rpmteDS, rpmteE, rpmteFd, rpmteFI, rpmteFree, rpmteFreeTSI, rpmteKey, rpmteMultiLib, rpmteN, rpmteNEVR, rpmteNew, rpmteNewTSI, rpmteNpreds, rpmteO, rpmteParent, rpmteR, rpmteSetAddedKey, rpmteSetDegree, rpmteSetDepth, rpmteSetMultiLib, rpmteSetNpreds, rpmteSetParent, rpmteSetTree, rpmteTree, rpmteTSI, rpmteType, rpmteV, rpmts_iternext, rpmtsAddInstallElement, rpmtsCheck, rpmtsCheckDSIProblems, rpmtsClean, rpmtsElement, rpmtsEmpty, rpmtsFree, rpmtsGetKeys, rpmtsiNext, rpmtsiNextElement, rpmtsiOc, rpmtsNotify, rpmtsOrder, rpmtsSetRootDir, rpmtsVerifyDB, and zapRelation.

typedef enum rpmtransFlags_e rpmtransFlags

| Bit(s) to control rpmtsRun() operation. Referenced by rpmRollback, rpmts_Rollback, rpmts_SetFlags, rpmtsCloseDB, rpmtsFlags, rpmtsSetFlags, and rpmtsSetRootDir.

typedef struct rpmts_s* rpmts

The RPM Transaction Set. Transaction sets are inherently unordered! RPM may reorder transaction sets to reduce errors. In general, installs/upgrades are done before strict removals, and prerequisite ordering is done on installs/upgrades.

Definition at line 68 of file rpmlib.h.

Referenced by addRelation, addTE, build, buildForTarget, checkDependentConflicts, checkDependentPackages, checkPackageDeps, checkPackageSet, checkSpec, cpio_doio, ftsCachePrint, ftsCacheUpdate, ftsPrint, ftsStashLatest, genCpioListAndHeader, hdr_fiFromHeader, headerCheck, IDTXglob, IDTXload, initGlobs, main, readRPM, removePackage, rpmcliImportPubkey, rpmcliImportPubkeys, rpmcliQuery, rpmcliShowMatches, rpmcliSign, rpmcliVerify, rpmdbAdd, rpmdbRebuild, rpmdbRemove, rpmdbSetHdrChk, rpmErase, rpmGraph, rpmInstall, rpmInstallSource, rpmQueryVerify, rpmReadHeader, rpmReadPackageFile, rpmReSign, rpmRollback, rpmteFree, rpmteNew, rpmts_SolveCallback, rpmtsAddAvailableElement, rpmtsAddEraseElement, rpmtsAddInstallElement, rpmtsAvailable, rpmtsCheck, rpmtsCheckDSIProblems, rpmtsChrootDone, rpmtsClean, rpmtsCleanDig, rpmtsCloseDB, rpmtsCloseSDB, rpmtsCreate, rpmtsCurrDir, rpmtsDig, rpmtsElement, rpmtsEmpty, rpmtsFilterFlags, rpmtsFindPubkey, rpmtsFlags, rpmtsFree, rpmtsGetKeys, rpmtsGetRdb, rpmtsGetTid, rpmtsInitDB, rpmtsInitDSI, rpmtsInitIterator, rpmtsNElements, rpmtsNotify, rpmtsOpenDB, rpmtsOpenSDB, rpmtsOrder, rpmtsProblems, rpmtsPubkey, rpmtsRebuildDB, rpmtsRootDir, rpmtsScriptFd, rpmtsSetChrootDone, rpmtsSetCurrDir, rpmtsSetFlags, rpmtsSetNotifyCallback, rpmtsSetRootDir, rpmtsSetScriptFd, rpmtsSetSig, rpmtsSetSolveCallback, rpmtsSetTid, rpmtsSetVSFlags, rpmtsSig, rpmtsSiglen, rpmtsSignature, rpmtsSigtag, rpmtsSigtype, rpmtsSolve, rpmtsStashKeyid, rpmtsUnorderedSuccessors, rpmtsUpdateDSI, rpmtsVerifyDB, rpmtsVSFlags, rpmVerifyFile, rpmVerifyScript, rpmVerifySignature, rpmVerifySignatures, showQueryPackage, showVerifyPackage, unsatisfiedDepend, verifyDependencies, verifyGPGSignature, verifyHeader, verifyMD5Signature, verifyPGPSignature, verifySHA1Signature, verifySizeSignature, XrpmdbUnlink, XrpmtsiInit, XrpmtsLink, and XrpmtsUnlink.

## 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 784 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 809 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
  RPMFILE_UNPATCHED | placeholder (SuSE)

Definition at line 417 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 406 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 749 of file rpmlib.h.

enum rpmRC_e

Package read return codes.

Enumeration values:

  RPMRC_OK | Generic success code
  RPMRC_NOTFOUND | Generic not found code.
  RPMRC_FAIL | Generic failure code.
  RPMRC_NOTTRUSTED | Signature is OK, but key is not trusted.
  RPMRC_NOKEY | Public key is unavailable.

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 |
  RPMSENSE_PATCHES |

Definition at line 447 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 - obsolete
  RPMTAG_SIGPGP |
  RPMTAG_SIGLEMD5_2 | internal - obsolete
  RPMTAG_SIGMD5 |
  RPMTAG_SIGGPG |
  RPMTAG_SIGPGP5 | internal - obsolete
  RPMTAG_BADSHA1_1 | internal - obsolete
  RPMTAG_BADSHA1_2 | internal - obsolete
  RPMTAG_PUBKEYS |
  RPMTAG_DSAHEADER |
  RPMTAG_RSAHEADER |
  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 - obsolete
  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 | src.rpm header marker
  RPMTAG_OLDORIGFILENAMES | internal - obsolete
  RPMTAG_BUILDPREREQ | internal
  RPMTAG_BUILDREQUIRES | internal
  RPMTAG_BUILDCONFLICTS | internal
  RPMTAG_BUILDMACROS | internal - unused
  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 - obsolete
  RPMTAG_RHNPLATFORM |
  RPMTAG_PLATFORM |
  RPMTAG_PATCHESNAME | placeholder (SuSE)
  RPMTAG_PATCHESFLAGS | placeholder (SuSE)
  RPMTAG_PATCHESVERSION | placeholder (SuSE)
  RPMTAG_CACHECTIME |
  RPMTAG_CACHEPKGPATH |
  RPMTAG_CACHEPKGSIZE |
  RPMTAG_CACHEPKGMTIME |
  RPMTAG_FIRSTFREE_TAG | internal

Definition at line 215 of file rpmlib.h.

enum rpmtransFlags_e

Bit(s) to control rpmtsRun() operation.

Enumeration values:

  RPMTRANS_FLAG_NONE |
  RPMTRANS_FLAG_TEST | from --test
  RPMTRANS_FLAG_BUILD_PROBS | don't process payload
  RPMTRANS_FLAG_NOSCRIPTS | from --noscripts
  RPMTRANS_FLAG_JUSTDB | from --justdb
  RPMTRANS_FLAG_NOTRIGGERS | from --notriggers
  RPMTRANS_FLAG_NODOCS | from --excludedocs
  RPMTRANS_FLAG_ALLFILES | from --allfiles

  RPMTRANS_FLAG_KEEPOBSOLETE

  Todo:
    Document.

  RPMTRANS_FLAG_MULTILIB

  Todo:
    Document.

  RPMTRANS_FLAG_DIRSTASH | from --dirstash
  RPMTRANS_FLAG_REPACKAGE | from --repackage
  RPMTRANS_FLAG_PKGCOMMIT |
  RPMTRANS_FLAG_PKGUNDO |
  RPMTRANS_FLAG_COMMIT |
  RPMTRANS_FLAG_UNDO |
  RPMTRANS_FLAG_REVERSE |
  RPMTRANS_FLAG_NOTRIGGERPREIN | from --notriggerprein
  RPMTRANS_FLAG_NOPRE | from --nopre
  RPMTRANS_FLAG_NOPOST | from --nopost
  RPMTRANS_FLAG_NOTRIGGERIN | from --notriggerin
  RPMTRANS_FLAG_NOTRIGGERUN | from --notriggerun
  RPMTRANS_FLAG_NOPREUN | from --nopreun
  RPMTRANS_FLAG_NOPOSTUN | from --nopostun
  RPMTRANS_FLAG_NOTRIGGERPOSTUN | from --notriggerpostun
  RPMTRANS_FLAG_NOPAYLOAD |
  RPMTRANS_FLAG_APPLYONLY |
  RPMTRANS_FLAG_CHAINSAW |
  RPMTRANS_FLAG_NOMD5 | from --nomd5
  RPMTRANS_FLAG_NOSUGGEST | from --nosuggest
  RPMTRANS_FLAG_ADDINDEPS |

Definition at line 909 of file rpmlib.h.

## Function Documentation

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.

rpmRC headerCheck | ( | rpmts | ts,
|  | const void * | uh,
|  | size_t | uc,
|  | const char ** | msg
| ) |

Check header consistency, performing headerGetEntry() the hard way.

Sanity checks on the header are performed while looking for a header-only digest or signature to verify the blob. If found, the digest or signature is verified.

Parameters:

  ts | transaction set
  uh | unloaded header blob
  uc | no. of bytes in blob (or 0 to disable)

Return values:

  msg | signature verification msg

Returns:
  RPMRC_OK/RPMRC_NOTFOUND/RPMRC_FAIL

Definition at line 323 of file package.c.

References RPMTAG_AUTOPROV, RPMTAG_AUTOREQ, RPMTAG_BASENAMES, RPMTAG_BROKENMD5, RPMTAG_BUILDARCHS, RPMTAG_BUILDCONFLICTS, RPMTAG_BUILDMACROS, RPMTAG_BUILDPREREQ, RPMTAG_BUILDREQUIRES, RPMTAG_CACHECTIME, RPMTAG_CACHEPKGMTIME, RPMTAG_CACHEPKGPATH, RPMTAG_CACHEPKGSIZE, RPMTAG_CAPABILITY, RPMTAG_CHANGELOGNAME, RPMTAG_CHANGELOGTEXT, RPMTAG_CHANGELOGTIME, RPMTAG_COOKIE, RPMTAG_DIRINDEXES, RPMTAG_DIRNAMES, RPMTAG_DISTURL, RPMTAG_DOCDIR, RPMTAG_FILEDEVICES, RPMTAG_FILEINODES, RPMTAG_FILELANGS, RPMTAG_FIRSTFREE_TAG, RPMTAG_INSTALLTID, RPMTAG_INSTPREFIXES, RPMTAG_MULTILIBS, RPMTAG_OBSOLETEFLAGS, RPMTAG_OBSOLETENAME, RPMTAG_OBSOLETEVERSION, RPMTAG_OLDORIGFILENAMES, RPMTAG_OPTFLAGS, RPMTAG_ORIGBASENAMES, RPMTAG_ORIGDIRINDEXES, RPMTAG_ORIGDIRNAMES, RPMTAG_PATCHESFLAGS, RPMTAG_PATCHESNAME, RPMTAG_PATCHESVERSION, RPMTAG_PAYLOADCOMPRESSOR, RPMTAG_PAYLOADFLAGS, RPMTAG_PAYLOADFORMAT, RPMTAG_PLATFORM, RPMTAG_POSTINPROG, RPMTAG_POSTUNPROG, RPMTAG_PREFIXES, RPMTAG_PREINPROG, RPMTAG_PREREQ, RPMTAG_PREUNPROG, RPMTAG_PROVIDEFLAGS, RPMTAG_PROVIDEVERSION, RPMTAG_REMOVETID, RPMTAG_RHNPLATFORM, RPMTAG_SHA1RHN, RPMTAG_SOURCEPACKAGE, RPMTAG_TRIGGERIN, RPMTAG_TRIGGERINDEX, RPMTAG_TRIGGERPOSTUN, RPMTAG_TRIGGERSCRIPTPROG, RPMTAG_TRIGGERUN, RPMTAG_VERIFYSCRIPT, and RPMTAG_VERIFYSCRIPTPROG.

Referenced by rpmReadHeader, and rpmts_HdrCheck.

int headerVerifyInfo | ( | int | il,
|  | int | dl,
|  | const void * | pev,
|  | void * | iv,
|  | int | negate
| ) |

Perform simple sanity and range checks on header tag(s).

Parameters:

  il | no. of tags in header
  dl | no. of bytes in header data.
  pev | 1st element in tag array, big-endian
  iv | failing (or last) tag element, host-endian
  negate | negative offset expected?

Returns:
  -1 on success, otherwise failing tag element index

Definition at line 281 of file package.c.

References RPMTAG_ARCHIVESIZE, RPMTAG_AUTOREQPROV, RPMTAG_BUILDROOT, RPMTAG_CONFLICTFLAGS, RPMTAG_CONFLICTNAME, RPMTAG_CONFLICTVERSION, RPMTAG_DEFAULTPREFIX, RPMTAG_EXCLUDE, RPMTAG_EXCLUDEARCH, RPMTAG_EXCLUDEOS, RPMTAG_EXCLUSIVE, RPMTAG_EXCLUSIVEARCH, RPMTAG_EXCLUSIVEOS, RPMTAG_FILEFLAGS, RPMTAG_FILEGIDS, RPMTAG_FILEGROUPNAME, RPMTAG_FILELINKTOS, RPMTAG_FILEMD5S, RPMTAG_FILEMTIMES, RPMTAG_FILERDEVS, RPMTAG_FILEUSERNAME, RPMTAG_FILEVERIFYFLAGS, RPMTAG_ICON, RPMTAG_INSTALLPREFIX, RPMTAG_NOPATCH, RPMTAG_NOSOURCE, RPMTAG_PROVIDENAME, RPMTAG_REQUIREFLAGS, RPMTAG_REQUIRENAME, RPMTAG_REQUIREVERSION, RPMTAG_ROOT, RPMTAG_RPMVERSION, RPMTAG_SOURCERPM, RPMTAG_TRIGGERFLAGS, RPMTAG_TRIGGERNAME, RPMTAG_TRIGGERSCRIPTS, and RPMTAG_TRIGGERVERSION.

Referenced by headerCheck, and rpmReadSignature.

int rpmCheckRpmlibProvides | ( | const rpmds | key | ) |

Check dependency against internal rpmlib feature provides.

Parameters:

  key | dependency

Returns:
  1 if dependency overlaps, 0 otherwise

Definition at line 74 of file rpmlibprov.c.

int rpmGetRpmlibProvides | ( | const char *** | provNames,
|  | int ** | provFlags,
|  | const char *** | provVersions
| ) |

Return copy of rpmlib internal provides.

Return values:

  provNames | address of array of rpmlib internal provide names
  provFlags | address of array of rpmlib internal provide flags
  provVersions | address of array of rpmlib internal provide versions

Returns:
  no. of entries

Definition at line 93 of file rpmlibprov.c.

rpmRC rpmInstallSourcePackage | ( | rpmts | ts,
|  | FD_t | fd,
|  | const char ** | specFilePtr,
|  | const char ** | cookie
| ) |

Install source package.

Parameters:

  ts | transaction set
  fd | file handle

Return values:

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

Returns:
  rpmRC return code

Referenced by rpmInstall, and rpmInstallSource.

rpmRC rpmReadHeader | ( | rpmts | ts,
|  | FD_t | fd,
|  | Header * | hdrp,
|  | const char ** | msg
| ) |

Return checked and loaded header.

Parameters:

  ts | transaction set
  fd | file handle

Return values:

  hdrp | address of header (or NULL)
  msg | verification error message

Returns:
  RPMRC_OK on success

Definition at line 600 of file package.c.

Referenced by rpmReadPackageFile.

int rpmReadPackageFile | ( | rpmts | ts,
|  | FD_t | fd,
|  | const char * | fn,
|  | Header * | hdrp
| ) |

Return package header from file handle, verifying digests/signatures.

Parameters:

  ts | transaction set
  fd | file handle
  fn | file name

Return values:

  hdrp | address of header (or NULL)

Returns:
  0 on success

Definition at line 653 of file package.c.

Referenced by ftsStashLatest, IDTXglob, main, readRPM, rpmGraph, rpmInstall, rpmQueryVerify, rpmts_HdrFromFdno, and rpmtsSolve.

int rpmvercmp | ( | const char * | a,
|  | const char * | b
| ) |

Segmented string compare for version and/or release.

Parameters:

  a | 1st string
  b | 2nd string

Returns:
  +1 if a is "newer", 0 if equal, -1 if b is "newer"

Definition at line 15 of file rpmvercmp.c.

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

Referenced by findUpgradePackages, hdr_compare, pkgCompareVer, rpmInstall, rpmtsAddInstallElement, and unmarkPackagesAlreadyInstalled.

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.

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

Return value of tag from name.

Parameters:

  tagstr | name of tag

Returns:
  tag value

Definition at line 55 of file tagname.c.

## Variable Documentation

struct MacroContext_s* rpmCLIMacroContext

| Definition at line 30 of file rpmlib.h.

const char* rpmEVR

| Definition at line 39 of file rpmlib.h.

int rpmFLAGS

| Definition at line 42 of file rpmlib.h.

struct MacroContext_s* rpmGlobalMacroContext

| Definition at line 27 of file rpmlib.h.

const struct headerSprintfExtension_s rpmHeaderFormats[]

Table of query format extensions.

Note:
  Chains to headerDefaultFormats[].

Definition at line 198 of file rpmlib.h.

const char* rpmNAME

| Definition at line 36 of file rpmlib.h.

const struct headerTagTableEntry_s* rpmTagTable

| Automatically generated table of tag name/value pairs. Definition at line 181 of file rpmlib.h.

const int rpmTagTableSize

| Number of entries in rpmTagTable. Definition at line 189 of file rpmlib.h.

const char* RPMVERSION

| Definition at line 33 of file rpmlib.h.