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  rpmDependencyConflict_s
 Dependency problems found by rpmdepCheck(). More...

struct  rpmlead
struct  rpmProblem_s
struct  rpmProblemSet_s
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
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 = MACROFILES

RPMTS

#define XFA_SKIPPING(_a)
#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 struct 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 struct fsmIterator_sFSMI_t
typedef struct fsm_sFSM_t
typedef struct psm_sPSM_t
typedef struct transactionFileInfo_sTFI_t
typedef struct rpmTransactionSet_srpmTransactionSet
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. More...

int rpmVersionCompare (Header first, Header second)
 Compare headers to determine which header is "newer". More...

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 struct rpmQVArguments_sQVA_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. More...


RPMDB

typedef struct rpmdb_srpmdb
typedef struct _dbiIndexSetdbiIndexSet
typedef struct _rpmdbMatchIteratorrpmdbMatchIterator
typedef enum rpmMireMode_e  rpmMireMode
 Tag value pattern match mode. More...

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 = NULL
int dbiTagsMax = 0

RPMPROBS

typedef enum rpmProblemType_e  rpmProblemType
 Enumerate transaction set problem types. More...

typedef struct rpmProblem_s *  rpmProblem
typedef struct rpmProblemSet_s *  rpmProblemSet
typedef struct rpmDependencyConflict_s *  rpmDependencyConflict
 Dependency problems found by rpmdepCheck(). More...

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. More...

const char* rpmProblemString (const rpmProblem prob)
 Return formatted string representation of problem. More...

void rpmProblemPrint (FILE *fp, rpmProblem prob)
 Output formatted string representation of problem to file handle. More...

void rpmProblemSetPrint (FILE *fp, rpmProblemSet probs)
 Print problems to file handle. More...

void rpmProblemSetFree (rpmProblemSet probs)
 Destroy problem set. More...


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

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. More...

#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
#define isDependsMULTILIB(_dflags)   ((_dflags) & RPMSENSE_MULTILIB)
#define _ALL_REQUIRES_MASK
#define _notpre(_x)   ((_x) & ~RPMSENSE_PREREQ)
#define _INSTALL_ONLY_MASK
#define _ERASE_ONLY_MASK
#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. More...

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

void* _free (const void *p)
 Wrapper to free(3), hides const compilation noise, permit NULL, return NULL. More...

rpmRC rpmReadPackageInfo (FD_t fd, Header *sigp, Header *hdrp)
 Return package signatures and header from file handle. More...

rpmRC rpmReadPackageHeader (FD_t fd, Header *hdrp, int *isSource, int *major, int *minor)
 Return package header and lead info from file handle. 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)
void rpmBuildFileList (Header h, const char ***fileListPtr, int *fileCountPtr)
 Retrieve file names from header. More...

int rpmHeaderGetEntry (Header h, int_32 tag, int_32 *type, void **p, int_32 *c)
 Retrieve tag info from header. More...

int rpmPackageGetEntry (void *leadp, Header sigs, Header h, int_32 tag, int_32 *type, void **p, int_32 *c)
 Retrieve tag info from header. More...

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

void freeFilesystems (void)
 Release storage used by file system usage cache. More...

int rpmGetFilesystemList (const char ***listptr, int *num)
 Return (cached) file system mount points. More...

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. More...


Variables

struct MacroContext_srpmGlobalMacroContext = &rpmGlobalMacroContext_s
struct MacroContext_srpmCLIMacroContext = &rpmCLIMacroContext_s
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 = sizeof(rpmTagTable) / sizeof(rpmTagTable[0]) - 1
 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 RPMDBI_ADDED   3
 

Added package headers.

Definition at line 207 of file rpmlib.h.

#define RPMDBI_AVAILABLE   5
 

Available package headers.

Definition at line 209 of file rpmlib.h.

#define RPMDBI_DEPENDS   1
 

Dependency resolution cache.

Definition at line 205 of file rpmlib.h.

#define RPMDBI_LABEL   2
 

Fingerprint search marker.

Definition at line 206 of file rpmlib.h.

#define RPMDBI_PACKAGES   0
 

Pseudo-tags used by the rpmdb iterator API.

Installed package headers.

Definition at line 204 of file rpmlib.h.

#define RPMDBI_REMOVED   4
 

Removed package headers.

Definition at line 208 of file rpmlib.h.

#define RPMFILE_ALL   ~(RPMFILE_NONE)
 

Definition at line 426 of file rpmlib.h.

#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.

#define RPMFILE_MULTILIB_SHIFT   9
 

Definition at line 422 of file rpmlib.h.

#define RPMLEAD_BINARY   0
 

Definition at line 1555 of file rpmlib.h.

#define RPMLEAD_MAGIC0   0xed
 

Definition at line 1558 of file rpmlib.h.

#define RPMLEAD_MAGIC1   0xab
 

Definition at line 1559 of file rpmlib.h.

#define RPMLEAD_MAGIC2   0xee
 

Definition at line 1560 of file rpmlib.h.

#define RPMLEAD_MAGIC3   0xdb
 

Definition at line 1561 of file rpmlib.h.

#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.

#define RPMSENSE_SENSEMASK   15
 

Definition at line 473 of file rpmlib.h.

#define RPMSENSE_TRIGGER
 

Value:

        (RPMSENSE_TRIGGERIN | RPMSENSE_TRIGGERUN | RPMSENSE_TRIGGERPOSTUN)

Definition at line 476 of file rpmlib.h.

#define RPMTAG_COPYRIGHT   RPMTAG_LICENSE
 

#define RPMTAG_EXTERNAL_TAG   1000000
 

Definition at line 390 of file rpmlib.h.

#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.

#define RPMVAR_MACROFILES   49
 

Definition at line 514 of file rpmlib.h.

#define RPMVAR_NUM   55
 

Definition at line 516 of file rpmlib.h.

#define RPMVAR_OPTFLAGS   3
 

Definition at line 511 of file rpmlib.h.

#define RPMVAR_PROVIDES   38
 

Definition at line 512 of file rpmlib.h.

#define RPMVERIFY_ALL   ~(RPMVERIFY_NONE)
 

Definition at line 1669 of file rpmlib.h.

#define RPM_MACHTABLE_COUNT   4
 

No. of arch/os tables.

Definition at line 557 of file rpmlib.h.

#define XFA_SKIPPING( _a )
 

Value:

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

#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.

#define _ERASE_ONLY_MASK
 

Value:

    _notpre(RPMSENSE_SCRIPT_PREUN|RPMSENSE_SCRIPT_POSTUN)

Definition at line 499 of file rpmlib.h.

#define _INSTALL_ONLY_MASK
 

Value:

    _notpre(RPMSENSE_SCRIPT_PRE|RPMSENSE_SCRIPT_POST|RPMSENSE_RPMLIB|RPMSENSE_KEYRING)

Definition at line 497 of file rpmlib.h.

#define _noTransScripts
 

Value:

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

Definition at line 1426 of file rpmlib.h.

#define _noTransTriggers
 

Value:

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

Definition at line 1433 of file rpmlib.h.

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

Definition at line 496 of file rpmlib.h.

Referenced by depMsgs(), and identifyDepend().

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


Typedef Documentation

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 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 struct rpmDependencyConflict_s * rpmDependencyConflict
 

Dependency problems found by rpmdepCheck().

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

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 enum rpmsenseFlags_e rpmsenseFlags
 

Dependency Attributes.


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

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


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.

void freeFilesystems ( void )
 

Release storage used by file system usage cache.

Definition at line 26 of file fs.c.

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

Definition at line 19 of file problems.c.

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.

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.

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.

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.

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.

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.

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.

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.

Referenced by rpmProblemSetPrint().

void rpmProblemSetFree ( rpmProblemSet probs )
 

Destroy problem set.

Parameters:
probs   problem set

Definition at line 256 of file transaction.c.

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.

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.

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.

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.

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.

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.

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.

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.


Variable Documentation

const char* RPMVERSION
 

Definition at line 33 of file rpmlib.h.

MacroContext rpmCLIMacroContext = &rpmCLIMacroContext_s
 

Definition at line 66 of file macro.c.

const char* rpmEVR
 

Definition at line 39 of file rpmlib.h.

int rpmFLAGS
 

Definition at line 42 of file rpmlib.h.

MacroContext rpmGlobalMacroContext = &rpmGlobalMacroContext_s
 

Definition at line 61 of file macro.c.

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 4 of file tagtable.c.

const int rpmTagTableSize = sizeof(rpmTagTable) / sizeof(rpmTagTable[0]) - 1
 

Number of entries in rpmTagTable.

Definition at line 115 of file tagtable.c.


Generated at Fri Feb 15 10:36:03 2002 for rpm by doxygen1.2.8.1 written by Dimitri van Heesch, © 1997-2001