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

RPMTS

#define XFA_SKIPPING(_a)   ((_a) == FA_SKIP || (_a) == FA_SKIPNSTATE || (_a) == FA_SKIPNETSHARED || (_a) == FA_SKIPMULTILIB)
#define _noTransScripts
#define _noTransTriggers
typedef void *(* HFD_t )(const void *data, rpmTagType type)
 Prototype for headerFreeData() vector.

typedef int(* HGE_t )(Header h, rpmTag tag, rpmTagType *type, void **p, int_32 *c)
 Prototype for headerGetEntry() vector.

typedef int(* HAE_t )(Header h, rpmTag tag, rpmTagType type, const void *p, int_32 c)
 Prototype for headerAddEntry() vector.

typedef int(* HME_t )(Header h, rpmTag tag, rpmTagType type, const void *p, int_32 c)
 Prototype for headerModifyEntry() vector.

typedef int(* HRE_t )(Header h, int_32 tag)
 Prototype for headerRemoveEntry() vector.

typedef rpmRelocation_s rpmRelocation
 We pass these around as an array with a sentinel.

typedef enum fileAction_e fileAction
 File disposition(s) during package install/erase transaction.

typedef enum fileTypes_e fileTypes
 File types.

typedef fsmIterator_sFSMI_t
typedef fsm_sFSM_t
typedef psm_sPSM_t
typedef transactionFileInfo_sTFI_t
typedef 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.

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

rpmTransactionSet rpmtransCreateSet (rpmdb rpmdb, const char *rootDir)
int rpmtransAddPackage (rpmTransactionSet ts, Header h, FD_t fd, const void *key, int upgrade, rpmRelocation *relocs)
void rpmtransAvailablePackage (rpmTransactionSet ts, Header h, const void *key)
int rpmtransRemovePackage (rpmTransactionSet ts, int dboffset)
rpmTransactionSet rpmtransFree (rpmTransactionSet ts)
void rpmtransSetScriptFd (rpmTransactionSet ts, FD_t fd)
int rpmtransGetKeys (const rpmTransactionSet ts, const void ***ep, int *nep)
int rpmdepCheck (rpmTransactionSet ts, rpmDependencyConflict *conflicts, int *numConflicts)
int rpmdepOrder (rpmTransactionSet ts)
rpmDependencyConflict rpmdepFreeConflicts (rpmDependencyConflict conflicts, int numConflicts)
int rpmGetRpmlibProvides (const char ***provNames, int **provFlags, const char ***provVersions)
int rpmvercmp (const char *a, const char *b)
int rpmEVRcmp (const char *const aE, const char *const aV, const char *const aR, const char *const aDepend, const char *const bE, const char *const bV, const char *const bR, const char *const bDepend)
void parseEVR (char *evr, const char **ep, const char **vp, const char **rp)
 Split EVR into epoch, version, and release components.

int isChangeNameMoreFresh (const char *const head, const char *const tail[3])
int rpmRangesOverlap (const char *AName, const char *AEVR, int AFlags, const char *BName, const char *BEVR, int BFlags)
int rpmCheckRpmlibProvides (const char *keyName, const char *keyEVR, int keyFlags)
void rpmShowRpmlibProvides (FILE *fp)
int rpmRunTransactions (rpmTransactionSet ts, rpmCallbackFunction notify, rpmCallbackData notifyData, rpmProblemSet okProbs, rpmProblemSet *newProbs, rpmtransFlags transFlags, rpmprobFilterFlags ignoreSet)

RPMQV

#define RPMVERIFY_ALL   ~(RPMVERIFY_NONE)
typedef rpmQVArguments_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.


RPMDB

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

enum  rpmMireMode_e { RPMMIRE_DEFAULT = 0, RPMMIRE_STRCMP = 1, RPMMIRE_REGEX = 2, RPMMIRE_GLOB = 3 }
 Tag value pattern match mode. More...

int rpmdbOpen (const char *prefix, rpmdb *dbp, int mode, int perms)
int rpmdbInit (const char *prefix, int perms)
int rpmdbVerify (const char *prefix)
int rpmdbClose (rpmdb db)
int rpmdbSync (rpmdb db)
int rpmdbOpenAll (rpmdb db)
int rpmdbCountPackages (rpmdb db, const char *name)
rpmdbMatchIterator rpmdbFreeIterator (rpmdbMatchIterator mi)
rpmdb rpmdbGetIteratorRpmDB (rpmdbMatchIterator mi)
unsigned int rpmdbGetIteratorOffset (rpmdbMatchIterator mi)
int rpmdbGetIteratorCount (rpmdbMatchIterator mi)
int rpmdbAppendIterator (rpmdbMatchIterator mi, const int *hdrNums, int nHdrNums)
int rpmdbPruneIterator (rpmdbMatchIterator mi, int *hdrNums, int nHdrNums, int sorted)
int rpmdbSetIteratorRE (rpmdbMatchIterator mi, rpmTag tag, rpmMireMode mode, const char *pattern)
int rpmdbSetIteratorVersion (rpmdbMatchIterator mi, const char *version)
int rpmdbSetIteratorRelease (rpmdbMatchIterator mi, const char *release)
int rpmdbSetIteratorRewrite (rpmdbMatchIterator mi, int rewrite)
int rpmdbSetIteratorModified (rpmdbMatchIterator mi, int modified)
Header rpmdbNextIterator (rpmdbMatchIterator mi)
Header XrpmdbNextIterator (rpmdbMatchIterator mi, const char *f, unsigned int l)
rpmdbMatchIterator rpmdbInitIterator (rpmdb db, int rpmtag, const void *keyp, size_t keylen)
int rpmdbAdd (rpmdb db, int iid, Header h)
int rpmdbRemove (rpmdb db, int rid, unsigned int hdrNum)
int rpmdbRebuild (const char *prefix)
int * dbiTags
int dbiTagsMax

RPMPROBS

typedef enum rpmProblemType_e rpmProblemType
 Enumerate transaction set problem types.

typedef rpmProblem_srpmProblem
typedef rpmProblemSet_srpmProblemSet
typedef rpmDependencyConflict_srpmDependencyConflict
 Dependency problems found by rpmdepCheck().

enum  rpmProblemType_e {
  RPMPROB_BADARCH, RPMPROB_BADOS, RPMPROB_PKG_INSTALLED, RPMPROB_BADRELOCATE,
  RPMPROB_REQUIRES, RPMPROB_CONFLICT, RPMPROB_NEW_FILE_CONFLICT, RPMPROB_FILE_CONFLICT,
  RPMPROB_OLDPACKAGE, RPMPROB_DISKSPACE, RPMPROB_DISKNODES, RPMPROB_BADPRETRANS
}
 Enumerate transaction set problem types. More...

void printDepFlags (FILE *fp, const char *version, int flags)
void printDepProblems (FILE *fp, const rpmDependencyConflict conflicts, int numConflicts)
 Print results of rpmdepCheck() dependency check.

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

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

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

void rpmProblemSetFree (rpmProblemSet probs)
 Destroy problem set.


RPMEIU

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

RPMK

typedef enum rpmVerifySignatureReturn_e rpmVerifySignatureReturn
 Return codes from verifySignature().

enum  rpmtagSignature {
  RPMSIGTAG_SIZE = 1000, RPMSIGTAG_LEMD5_1 = 1001, RPMSIGTAG_PGP = 1002, RPMSIGTAG_LEMD5_2 = 1003,
  RPMSIGTAG_MD5 = 1004, RPMSIGTAG_GPG = 1005, RPMSIGTAG_PGP5 = 1006, RPMSIGTAG_PAYLOADSIZE = 1007,
  RPMSIGTAG_BADSHA1_1 = RPMTAG_BADSHA1_1, RPMSIGTAG_BADSHA1_2 = RPMTAG_BADSHA1_2, RPMSIGTAG_SHA1 = RPMTAG_SHA1HEADER, RPMSIGTAG_DSA = RPMTAG_DSAHEADER,
  RPMSIGTAG_RSA = RPMTAG_RSAHEADER
}
enum  rpmVerifySignatureReturn_e {
  RPMSIG_OK = 0, RPMSIG_UNKNOWN = 1, RPMSIG_BAD = 2, RPMSIG_NOKEY = 3,
  RPMSIG_NOTTRUSTED = 4
}
 Return codes from verifySignature(). More...

rpmVerifySignatureReturn rpmVerifySignature (const char *file, int_32 sigTag, const void *sig, int count, char *result)
Header rpmFreeSignature (Header h)

Defines

#define RPMDBI_PACKAGES   0
 Pseudo-tags used by the rpmdb iterator API.

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

Typedefs

typedef enum rpmRC_e rpmRC
 Package read return codes.

typedef enum rpmTag_e rpmTag
 Tags identify data in package headers.

typedef enum rpmfileState_e rpmfileState
 File States (when installed).

typedef enum rpmfileAttrs_e rpmfileAttrs
 File Attributes.

typedef enum rpmsenseFlags_e rpmsenseFlags
 Dependency Attributes.


Enumerations

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

enum  rpmTag_e {
  RPMTAG_HEADERIMAGE = 61, RPMTAG_HEADERSIGNATURES = 62, RPMTAG_HEADERIMMUTABLE = 63, RPMTAG_HEADERREGIONS = 64,
  RPMTAG_HEADERI18NTABLE = 100, RPMTAG_SIG_BASE = 256, RPMTAG_SIGSIZE = RPMTAG_SIG_BASE+1, RPMTAG_SIGLEMD5_1 = RPMTAG_SIG_BASE+2,
  RPMTAG_SIGPGP = RPMTAG_SIG_BASE+3, RPMTAG_SIGLEMD5_2 = RPMTAG_SIG_BASE+4, RPMTAG_SIGMD5 = RPMTAG_SIG_BASE+5, RPMTAG_SIGGPG = RPMTAG_SIG_BASE+6,
  RPMTAG_SIGPGP5 = RPMTAG_SIG_BASE+7, RPMTAG_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_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.

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

rpmRC rpmReadPackageHeader (FD_t fd, Header *hdrp, int *isSource, int *major, int *minor)
 Return package header and lead info from file handle.

int headerNVR (Header h, const char **np, const char **vp, const char **rp)
void headerMergeLegacySigs (Header h, const Header sig)
Header headerRegenSigHeader (const Header h)
void rpmBuildFileList (Header h, const char ***fileListPtr, int *fileCountPtr)
 Retrieve file names from header.

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

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

const char *const tagName (int tag)
 Return name of tag from value.

int tagValue (const char *tagstr)
 Return value of tag from name.

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

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

int rpmGetFilesystemUsage (const char **fileList, int_32 *fssizes, int numFiles, uint_32 **usagesPtr, int flags)
 Determine per-file system usage for a list of files.


Variables

MacroContext_srpmGlobalMacroContext
MacroContext_srpmCLIMacroContext
const char * RPMVERSION
const char * rpmNAME
const char * rpmEVR
int rpmFLAGS
const struct headerTagTableEntry_s rpmTagTable []
 Automatically generated table of tag name/value pairs.

const int rpmTagTableSize
 Number of entries in rpmTagTable.

const struct headerSprintfExtension_s rpmHeaderFormats []
 Table of query format extensions.


Detailed Description

Definition in file rpmlib.h.


Define Documentation

#define _ALL_REQUIRES_MASK
 

Value:

Definition at line 484 of file rpmlib.h.

Referenced by addReqProv().

#define _ERASE_ONLY_MASK   _notpre(RPMSENSE_SCRIPT_PREUN|RPMSENSE_SCRIPT_POSTUN)
 

Definition at line 502 of file rpmlib.h.

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

Definition at line 500 of file rpmlib.h.

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

Definition at line 499 of file rpmlib.h.

Referenced by identifyDepend().

#define _noTransScripts
 

Value:

Definition at line 1429 of file rpmlib.h.

Referenced by main(), and rpmRunTransactions().

#define _noTransTriggers
 

Value:

Definition at line 1436 of file rpmlib.h.

Referenced by main(), and rpmRunTransactions().

#define isDependsMULTILIB _dflags       ((_dflags) & RPMSENSE_MULTILIB)
 

Definition at line 482 of file rpmlib.h.

Referenced by addReqProv(), alMakeIndex(), checkPackageDeps(), mergeFiles(), and printDepMsg().

#define isErasePreReq _x       ((_x) & _ERASE_ONLY_MASK)
 

Definition at line 507 of file rpmlib.h.

Referenced by rpmdepOrder().

#define isFileMULTILIB _fflags       ((_fflags) & RPMFILE_MULTILIB_MASK)
 

Definition at line 432 of file rpmlib.h.

Referenced by alAllFileSatisfiesDepend(), and relocateFileList().

#define isInstallPreReq _x       ((_x) & _INSTALL_ONLY_MASK)
 

Definition at line 506 of file rpmlib.h.

Referenced by rpmdbAdd(), and rpmdepOrder().

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

Definition at line 505 of file rpmlib.h.

Referenced by identifyDepend(), and rpmdepOrder().

#define RPM_MACHTABLE_COUNT   4
 

No. of arch/os tables.

Definition at line 560 of file rpmlib.h.

#define RPMDBI_ADDED   3
 

Added package headers.

Definition at line 207 of file rpmlib.h.

Referenced by openDatabase(), rpmdbAdd(), rpmdbMoveDatabase(), rpmdbRemove(), tagName(), and tagValue().

#define RPMDBI_AVAILABLE   5
 

Available package headers.

Definition at line 209 of file rpmlib.h.

Referenced by openDatabase(), rpmdbAdd(), rpmdbMoveDatabase(), rpmdbRemove(), tagName(), and tagValue().

#define RPMDBI_DEPENDS   1
 

Dependency resolution cache.

Definition at line 205 of file rpmlib.h.

Referenced by openDatabase(), rpmdbAdd(), rpmdbMoveDatabase(), rpmdbRemove(), rpmdepCheck(), tagName(), tagValue(), and unsatisfiedDepend().

#define RPMDBI_LABEL   2
 

Fingerprint search marker.

Definition at line 206 of file rpmlib.h.

Referenced by rpmdbInitIterator(), rpmErase(), rpmQueryVerify(), and rpmtransRemove().

#define RPMDBI_PACKAGES   0
 

Pseudo-tags used by the rpmdb iterator API.

Installed package headers.

Definition at line 204 of file rpmlib.h.

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

#define RPMDBI_REMOVED   4
 

Removed package headers.

Definition at line 208 of file rpmlib.h.

Referenced by openDatabase(), rpmdbAdd(), rpmdbMoveDatabase(), rpmdbRemove(), tagName(), and tagValue().

#define RPMFILE_ALL   ~(RPMFILE_NONE)
 

Definition at line 429 of file rpmlib.h.

Referenced by main().

#define RPMFILE_MULTILIB      ((N) << RPMFILE_MULTILIB_SHIFT)
 

Definition at line 426 of file rpmlib.h.

Referenced by processPackageFiles().

#define RPMFILE_MULTILIB_MASK   RPMFILE_MULTILIB(7)
 

Definition at line 427 of file rpmlib.h.

Referenced by addFile(), and genCpioListAndHeader().

#define RPMFILE_MULTILIB_SHIFT   9
 

Definition at line 425 of file rpmlib.h.

Referenced by genCpioListAndHeader().

#define RPMLEAD_BINARY   0
 

Definition at line 1581 of file rpmlib.h.

Referenced by packageBinaries(), psmStage(), and writeRPM().

#define RPMLEAD_MAGIC0   0xed
 

Definition at line 1584 of file rpmlib.h.

Referenced by readPackageHeaders(), and writeLead().

#define RPMLEAD_MAGIC1   0xab
 

Definition at line 1585 of file rpmlib.h.

Referenced by readPackageHeaders(), and writeLead().

#define RPMLEAD_MAGIC2   0xee
 

Definition at line 1586 of file rpmlib.h.

Referenced by readPackageHeaders(), and writeLead().

#define RPMLEAD_MAGIC3   0xdb
 

Definition at line 1587 of file rpmlib.h.

Referenced by readPackageHeaders(), and writeLead().

#define RPMLEAD_SIZE   96
 

Don't rely on sizeof(struct)

Definition at line 1589 of file rpmlib.h.

#define RPMLEAD_SOURCE   1
 

Definition at line 1582 of file rpmlib.h.

Referenced by packageSources(), readPackageHeaders(), rewriteRPM(), rpmReadPackageHeader(), and writeRPM().

#define RPMSENSE_SENSEMASK   15
 

Definition at line 476 of file rpmlib.h.

Referenced by addReqProv(), headerMatchesDepFlags(), mergeFiles(), parseRCPOT(), printDepend(), printDepMsg(), rangeMatchesDepFlags(), rpmRangesOverlap(), triggercondsTag(), and unsatisfiedDepend().

#define RPMSENSE_TRIGGER   (RPMSENSE_TRIGGERIN | RPMSENSE_TRIGGERUN | RPMSENSE_TRIGGERPOSTUN)
 

Definition at line 479 of file rpmlib.h.

Referenced by addReqProv().

#define RPMTAG_COPYRIGHT   RPMTAG_LICENSE
 

#define RPMTAG_EXTERNAL_TAG   1000000
 

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

Referenced by doReadRC().

#define RPMVAR_MACROFILES   49
 

Definition at line 517 of file rpmlib.h.

Referenced by doReadRC(), and rpmReadRC().

#define RPMVAR_NUM   55
 

Definition at line 519 of file rpmlib.h.

#define RPMVAR_OPTFLAGS   3
 

Definition at line 514 of file rpmlib.h.

Referenced by rpmRebuildTargetVars(), and rpmSetDefaults().

#define RPMVAR_PROVIDES   38
 

Definition at line 515 of file rpmlib.h.

Referenced by doReadRC(), and unsatisfiedDepend().

#define RPMVERIFY_ALL   ~(RPMVERIFY_NONE)
 

Definition at line 1695 of file rpmlib.h.

Referenced by processPackageFiles(), processSourceFiles(), and rpmVerifyFile().

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

Definition at line 1202 of file rpmlib.h.

Referenced by dnlInitIterator(), fsmCommitLinks(), fsmMakeLinks(), fsmStage(), handleInstInstalledFiles(), handleOverlappedFiles(), rpmRunTransactions(), saveHardLink(), and skipFiles().


Typedef Documentation

typedef enum fileAction_e fileAction
 

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

Referenced by decideFileFate(), fileActionString(), mergeFiles(), psmStage(), and relocateFileList().

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.

Referenced by decideFileFate(), filecmp(), ftstring(), relocateFileList(), and whatis().

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

Referenced by compressFilelist(), expandFilelist(), headerMergeLegacySigs(), and relocateFileList().

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

Referenced by addReqProv(), alAddPackage(), alFree(), checkPackageDeps(), compressFilelist(), doBuildFileList(), fpLookupHeader(), freeFi(), handleInstInstalledFiles(), handleOneTrigger(), handlePreambleTag(), headerMergeLegacySigs(), headerRegenSigHeader(), instprefixTag(), isMemberInEntry(), loadFi(), mergeFiles(), mireSkip(), printDeps(), providePackageNVR(), psmStage(), rangeMatchesDepFlags(), relocateFileList(), rpmdbAdd(), rpmdbFindByFile(), rpmdbFindFpList(), rpmdbRemove(), rpmdepCheck(), rpmInstallSourcePackage(), rpmtransAddPackage(), rpmVerifyDigest(), rpmVerifyFile(), runImmedTriggers(), runInstScript(), runScript(), showQueryPackage(), 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 1097 of file rpmlib.h.

Referenced by addFileToTag(), addReqProv(), alAddPackage(), checkPackageDeps(), compressFilelist(), doBuildFileList(), fpLookupHeader(), fssizesTag(), handleInstInstalledFiles(), handleOneTrigger(), handlePreambleTag(), handleRmvdInstalledFiles(), headerMatchesDepFlags(), i18nTag(), IDTXglob(), IDTXload(), instprefixTag(), isMemberInEntry(), loadFi(), markReplacedFiles(), mergeFiles(), mireSkip(), printDeps(), processPackageFiles(), providePackageNVR(), psmStage(), rangeMatchesDepFlags(), relocateFileList(), rpmdbAdd(), rpmdbFindByFile(), rpmdbFindFpList(), rpmdbRemove(), rpmdepCheck(), rpmInstallLoadMacros(), rpmInstallSourcePackage(), rpmtransAddPackage(), rpmVerifyDigest(), rpmVerifyFile(), runImmedTriggers(), runInstScript(), runScript(), showQueryPackage(), stashSt(), timeCheck(), triggercondsTag(), triggertypeTag(), verifyHeader(), 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 1131 of file rpmlib.h.

Referenced by mergeFiles(), psmStage(), and relocateFileList().

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

Referenced by compressFilelist(), and expandFilelist().

typedef struct rpmDependencyConflict_s * rpmDependencyConflict
 

Dependency problems found by rpmdepCheck().

typedef enum rpmfileAttrs_e rpmfileAttrs
 

File Attributes.

Referenced by rpmVerifyFile(), and verifyHeader().

typedef enum rpmfileState_e rpmfileState
 

File States (when installed).

Referenced by rpmVerifyFile(), and showQueryPackage().

typedef enum rpmprobFilterFlags_e rpmprobFilterFlags
 

Todo:
Generalize filter mechanism.

Referenced by rpmInstall(), and rpmRunTransactions().

typedef struct rpmProblem_s * rpmProblem
 

typedef struct rpmProblemSet_s * rpmProblemSet
 

typedef enum rpmProblemType_e rpmProblemType
 

Enumerate transaction set problem types.

Referenced by psAppend().

typedef enum rpmRC_e rpmRC
 

Package read return codes.

Referenced by checkSize(), chkdir(), handleOneTrigger(), IDTXglob(), psmStage(), readPackageHeaders(), readRPM(), rpmCheckSig(), rpmInstallSource(), rpmInstallSourcePackage(), rpmQueryVerify(), rpmReadPackageHeader(), rpmReadPackageInfo(), rpmReadSignature(), rpmReSign(), rpmRunTransactions(), runImmedTriggers(), runInstScript(), runScript(), and runTriggers().

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(), 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(), doBuildFileList(), IDTXglob(), IDTXload(), isMemberInEntry(), mergeFiles(), mireDup(), and rpmdbSetIteratorRE().

typedef enum rpmVerifySignatureReturn_e rpmVerifySignatureReturn
 

Return codes from verifySignature().

Referenced by rpmVerifySignature(), and verifyGPGSignature().


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 1187 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 1212 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 408 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 398 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 1525 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 958 of file rpmlib.h.

enum rpmRC_e
 

Package read return codes.

Enumeration values:
RPMRC_OK 
RPMRC_BADMAGIC 
RPMRC_FAIL 
RPMRC_BADSIZE 
RPMRC_SHORTREAD 

Definition at line 17 of file rpmlib.h.

enum rpmsenseFlags_e
 

Dependency Attributes.

Enumeration values:
RPMSENSE_ANY 
RPMSENSE_SERIAL 
Todo:
Legacy.
RPMSENSE_LESS 
RPMSENSE_GREATER 
RPMSENSE_EQUAL 
RPMSENSE_PROVIDES 
RPMSENSE_CONFLICTS 
RPMSENSE_PREREQ 
Todo:
Legacy.
RPMSENSE_OBSOLETES 
RPMSENSE_INTERP  Interpreter used by scriptlet.
RPMSENSE_SCRIPT_PRE  pre dependency.
RPMSENSE_SCRIPT_POST  post dependency.
RPMSENSE_SCRIPT_PREUN  preun dependency.
RPMSENSE_SCRIPT_POSTUN  postun dependency.
RPMSENSE_SCRIPT_VERIFY  verify dependency.
RPMSENSE_FIND_REQUIRES  find-requires generated dependency.
RPMSENSE_FIND_PROVIDES  find-provides generated dependency.
RPMSENSE_TRIGGERIN  triggerin dependency.
RPMSENSE_TRIGGERUN  triggerun dependency.
RPMSENSE_TRIGGERPOSTUN  triggerpostun dependency.
RPMSENSE_MULTILIB 
RPMSENSE_SCRIPT_PREP  prep build dependency.
RPMSENSE_SCRIPT_BUILD  build build dependency.
RPMSENSE_SCRIPT_INSTALL  install build dependency.
RPMSENSE_SCRIPT_CLEAN  clean build dependency.
RPMSENSE_RPMLIB  rpmlib(feature) dependency.
RPMSENSE_TRIGGERPREIN 
Todo:
Implement triggerprein.
RPMSENSE_KEYRING 

Definition at line 437 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 - obsolate
RPMTAG_SIGPGP 
RPMTAG_SIGLEMD5_2  internal - obsolate
RPMTAG_SIGMD5 
RPMTAG_SIGGPG 
RPMTAG_SIGPGP5  internal - obsolate
RPMTAG_BADSHA1_1  internal - obsolate
RPMTAG_BADSHA1_2  internal - obsolate
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
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 1786 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 29 of file fs.c.

References _free(), fsnames, fsinfo::mntPoint, and numFilesystems.

Referenced by getFilesystemList(), and main().

void headerMergeLegacySigs Header    h,
const Header    sig
 

Translate and merge legacy signature tags into header.

Parameters:
h  header
sig  signature header

Definition at line 20 of file package.c.

References HAE_t, HEADER_SIGBASE, HEADER_TAGBASE, headerFreeIterator(), headerInitIterator(), headerIsEntry(), headerNextIterator(), HFD_t, int_32, RPMSIGTAG_DSA, RPMSIGTAG_GPG, RPMSIGTAG_LEMD5_1, RPMSIGTAG_LEMD5_2, RPMSIGTAG_MD5, RPMSIGTAG_PAYLOADSIZE, RPMSIGTAG_PGP, RPMSIGTAG_PGP5, RPMSIGTAG_RSA, RPMSIGTAG_SHA1, RPMSIGTAG_SIZE, RPMTAG_ARCHIVESIZE, RPMTAG_SIGGPG, RPMTAG_SIGLEMD5_1, RPMTAG_SIGLEMD5_2, RPMTAG_SIGMD5, RPMTAG_SIGPGP, RPMTAG_SIGPGP5, and RPMTAG_SIGSIZE.

Referenced by rpmReadPackageHeader(), rpmReadPackageInfo(), and writeRPM().

int headerNVR Header    h,
const char **    np,
const char **    vp,
const char **    rp
 

Return name, version, release strings from header.

Parameters:
h  header
Return values:
np  address of name pointer (or NULL)
vp  address of version pointer (or NULL)
rp  address of release pointer (or NULL)
Returns:
0 always

Definition at line 31 of file depends.c.

References headerGetEntry(), RPM_STRING_TYPE, RPMTAG_NAME, RPMTAG_RELEASE, and RPMTAG_VERSION.

Referenced by alAddPackage(), checkPackageDeps(), doSetupMacro(), generateDepends(), genSourceRpmName(), handleOneTrigger(), headerMatchesDepFlags(), i18nTag(), IDTXglob(), IDTXload(), lookupPackage(), packageBinaries(), parseForSimple(), parsePreamble(), parseSpec(), printNewSpecfile(), processBinaryFiles(), providePackageNVR(), psAppend(), rpmdbAdd(), rpmdbNextIterator(), rpmdbRebuild(), rpmdbRemove(), rpmdepCheck(), rpmInstall(), rpmtransAddPackage(), runScript(), showQueryPackage(), showVerifyPackage(), verifyDependencies(), and writeRPM().

Header headerRegenSigHeader const Header    h
 

Regenerate signature header.

Parameters:
h  header
Returns:
regenerated signature header

Definition at line 75 of file package.c.

References HEADER_SIGBASE, HEADER_TAGBASE, headerAddEntry(), headerFreeIterator(), headerInitIterator(), headerIsEntry(), headerNextIterator(), HFD_t, int_32, rpmNewSignature, RPMSIGTAG_GPG, RPMSIGTAG_LEMD5_1, RPMSIGTAG_LEMD5_2, RPMSIGTAG_MD5, RPMSIGTAG_PAYLOADSIZE, RPMSIGTAG_PGP, RPMSIGTAG_PGP5, RPMSIGTAG_SIZE, RPMTAG_ARCHIVESIZE, RPMTAG_DSAHEADER, RPMTAG_RSAHEADER, RPMTAG_SHA1HEADER, RPMTAG_SIGGPG, RPMTAG_SIGLEMD5_1, RPMTAG_SIGLEMD5_2, RPMTAG_SIGMD5, RPMTAG_SIGPGP, RPMTAG_SIGPGP5, and RPMTAG_SIGSIZE.

Referenced by psmStage().

int isChangeNameMoreFresh const char *const    head,
const char *const    tail[3]
 

Definition at line 188 of file rpmvercmp.c.

References _free(), parseEVR(), rpmEVRcmp(), RPMMESS_DEBUG, rpmMessage, xisspace(), and xstrdup().

void parseEVR char *    evr,
const char **    ep,
const char **    vp,
const char **    rp
 

Split EVR into epoch, version, and release components.

Parameters:
evr  [epoch:]version[-release] string
Return values:
ep  pointer to epoch
vp  pointer to version
rp  pointer to release

Definition at line 119 of file rpmvercmp.c.

References xisdigit().

Referenced by isChangeNameMoreFresh(), parseExpression(), and rpmRangesOverlap().

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

Definition at line 19 of file problems.c.

References RPMSENSE_EQUAL, RPMSENSE_GREATER, and RPMSENSE_LESS.

Referenced by printDepProblems(), and rpmShowRpmlibProvides().

void printDepProblems FILE *    fp,
const rpmDependencyConflict    conflicts,
int    numConflicts
 

Print results of rpmdepCheck() dependency check.

Parameters:
fp  output file
conflicts  dependency problems
numConflicts  no. of dependency problems

Definition at line 61 of file problems.c.

References _, rpmDependencyConflict_s::needsFlags, printDepFlags(), sameProblem(), and rpmDependencyConflict_s::sense.

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

void rpmBuildFileList Header    h,
const char ***    fileListPtr,
int *    fileCountPtr
 

Retrieve file names from header.

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

Parameters:
h  header
Return values:
fileListPtr  address of array of file names
fileCountPtr  address of number of files

Definition at line 459 of file misc.c.

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

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

int rpmdepCheck rpmTransactionSet    ts,
rpmDependencyConflict   conflicts,
int *    numConflicts
 

Check that all dependencies can be resolved.

Parameters:
ts  transaction set
Return values:
conflicts  dependency problems
numConflicts  no. of dependency problems
Returns:
0 on success

Definition at line 2198 of file depends.c.

References _free(), rpmTransactionSet_s::addedPackages, alMakeIndex(), rpmTransactionSet_s::availablePackages, checkDependentConflicts(), checkDependentPackages(), checkPackageDeps(), availablePackage::h, headerNVR(), HFD_t, HGE_t, int_32, availableList_s::list, availablePackage::multiLib, availablePackage::name, rpmTransactionSet_s::numRemovedPackages, availablePackage::provides, availablePackage::providesCount, availablePackage::release, rpmTransactionSet_s::removedPackages, rpmTransactionSet_s::rpmdb, rpmdbAppendIterator(), rpmdbCloseDBI(), rpmdbFreeIterator(), RPMDBI_DEPENDS, RPMDBI_PACKAGES, rpmdbInitIterator(), rpmdbNextIterator(), RPMMESS_DEBUG, rpmMessage, RPMTAG_BASENAMES, RPMTAG_DIRINDEXES, RPMTAG_DIRNAMES, RPMTAG_PROVIDENAME, rpmTagType, availableList_s::size, stpcpy(), availablePackage::version, xcalloc(), and xrealloc().

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

rpmDependencyConflict rpmdepFreeConflicts rpmDependencyConflict    conflicts,
int    numConflicts
 

Destroy dependency conflicts storage.

Parameters:
conflicts  dependency problems
numConflicts  no. of dependency problems @retrun NULL always

Definition at line 878 of file depends.c.

References _free(), rpmDependencyConflict_s::byHeader, rpmDependencyConflict_s::byName, rpmDependencyConflict_s::byRelease, rpmDependencyConflict_s::byVersion, headerFree(), rpmDependencyConflict_s::needsName, rpmDependencyConflict_s::needsVersion, and rpmDependencyConflict_s::suggestedPackages.

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

int rpmdepOrder rpmTransactionSet    ts
 

Determine package order in a transaction set according to dependencies.

Order packages, returning error if circular dependencies cannot be eliminated by removing PreReq's from the loop(s). Only dependencies from added or removed packages are used to determine ordering using a topological sort (Knuth vol. 1, p. 262). Use rpmdepCheck() to verify that all dependencies can be resolved.

The final order ends up as installed packages followed by removed packages, with packages removed for upgrades immediately following the new package to be installed.

The operation would be easier if we could sort the addedPackages array in the transaction set, but we store indexes into the array in various places.

Parameters:
ts  transaction set
Returns:
0 if packages are successfully ordered, 1 otherwise

Definition at line 1856 of file depends.c.

References _, _free(), rpmTransactionSet_s::addedPackages, addQ(), addRelation(), orderListIndex::alIndex, alloca(), alMakeIndex(), rpmTransactionSet_s::availablePackages, availablePackage::degree, availablePackage::depth, isErasePreReq, isInstallPreReq, isLegacyPreReq, availableList_s::list, markLoop(), availablePackage::name, availablePackage::npreds, rpmTransactionSet_s::order, rpmTransactionSet_s::orderAlloced, rpmTransactionSet_s::orderCount, orderListIndexCmp(), orderListIndex::orIndex, availablePackage::parent, availablePackage::release, availablePackage::requireFlags, availablePackage::requiresCount, RPMMESS_DEBUG, rpmMessage, RPMTRANS_FLAG_CHAINSAW, availableList_s::size, rpmTransactionSet_s::transFlags, availablePackage::tree, availablePackage::tsi, tsortInfo_s::tsi_next, tsortInfo_s::tsi_pkg, tsortInfo_s::tsi_qcnt, tsortInfo_s::tsi_reqx, transactionElement_s::type, transactionElement_s::u, availablePackage::version, xmalloc(), and zapRelation().

Referenced by rpmInstall(), rpmRollback(), and rpmtransOrder().

int rpmEVRcmp const char *const    aE,
const char *const    aV,
const char *const    aR,
const char *const    aDepend,
const char *const    bE,
const char *const    bV,
const char *const    bR,
const char *const    bDepend
 

Definition at line 157 of file rpmvercmp.c.

References _, RPMMESS_DEBUG, rpmMessage, and rpmvercmp().

Referenced by isChangeNameMoreFresh(), and rpmRangesOverlap().

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 241 of file fs.c.

References fsnames, getFilesystemList(), and numFilesystems.

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

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

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

Parameters:
fileList  array of absolute file names
fssizes  array of file sizes
numFiles  number of files in list
Return values:
usagesPtr  address of per-file system usage array (or NULL)
Parameters:
flags  (unused)
Returns:
0 on success, 1 on error

Definition at line 253 of file fs.c.

References _, _free(), alloca(), fsinfo::dev, errno, fsnames, getFilesystemList(), int_32, numFilesystems, RPMERR_BADDEV, RPMERR_STAT, rpmError, rpmGetPath(), uint_32, and xcalloc().

Referenced by fssizesTag().

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

Retrieve tag info from header.

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

Parameters:
h  header
tag  tag
Return values:
type  address of tag value data type
p  address of pointer to tag value(s)
c  address of number of values
Returns:
0 on success, 1 on bad magic, 2 on error

Definition at line 627 of file misc.c.

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

Referenced by rpmPackageGetEntry().

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

Install source package.

Parameters:
rootDir  path to top of install tree (or NULL)
fd  file handle
Return values:
specFilePtr  address of spec file name (or NULL)
Parameters:
notify  progress callback
notifyData  progress callback private data
Return values:
cookie  address of cookie pointer (or NULL)
Returns:
rpmRC return code

Definition at line 612 of file psm.c.

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

Referenced by rpmInstall(), and rpmInstallSource().

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

Retrieve tag info from header.

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

Deprecated:
Signature tags are now duplicated into header when installed.
Todo:
Eliminate from API.
Parameters:
leadp  rpm lead
h  header
sigs  signatures
tag  tag
Return values:
type  address of tag value data type
p  address of pointer to tag value(s)
c  address of number of values
Returns:
0 on success, 1 on bad magic, 2 on error

Definition at line 678 of file misc.c.

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

void rpmProblemPrint FILE *    fp,
rpmProblem    prob
 

Output formatted string representation of problem to file handle.

Deprecated:
API: prob used to be passed by value, now passed by reference.
Parameters:
fp  file handle
prob  rpm problem

Definition at line 202 of file problems.c.

References _free(), and rpmProblemString().

Referenced by rpmProblemSetPrint().

void rpmProblemSetFree rpmProblemSet    probs
 

Destroy problem set.

Parameters:
probs  problem set

Definition at line 259 of file transaction.c.

References _free(), rpmProblem_s::altNEVR, rpmProblem_s::h, headerFree(), rpmProblemSet_s::numProblems, rpmProblem_s::pkgNEVR, rpmProblemSet_s::probs, and rpmProblem_s::str1.

Referenced by rpmInstall(), rpmRollback(), and rpmtransRun().

void rpmProblemSetPrint FILE *    fp,
rpmProblemSet    probs
 

Print problems to file handle.

Parameters:
fp  file handle
probs  problem set

Definition at line 209 of file problems.c.

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

Referenced by rpmInstall(), and rpmRollback().

const char* rpmProblemString const rpmProblem    prob
 

Return formatted string representation of problem.

Deprecated:
API: prob used to be passed by value, now passed by reference.
Parameters:
prob  rpm problem
Returns:
formatted string (malloc'd)

Definition at line 114 of file problems.c.

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

Referenced by rpmProblemPrint(), and rpmtransRun().

int rpmRangesOverlap const char *    AName,
const char *    AEVR,
int    AFlags,
const char *    BName,
const char *    BEVR,
int    BFlags
 

Compare two versioned dependency ranges, looking for overlap.

Parameters:
AName  1st dependncy name string
AEVR  1st dependency [epoch:]version[-release] string
AFlags  1st dependency logical range qualifiers
BName  2nd dependncy name string
BEVR  2nd dependency [epoch:]version[-release] string
BFlags  2nd dependency logical range qualifiers
Returns:
1 if dependencies overlap, 0 otherwise

Definition at line 488 of file depends.c.

References _, _free(), parseEVR(), printDepend(), rpmEVRcmp(), RPMMESS_DEBUG, rpmMessage, RPMSENSE_EQUAL, RPMSENSE_GREATER, RPMSENSE_LESS, RPMSENSE_SENSEMASK, and xstrdup().

Referenced by alAllSatisfiesDepend(), headerMatchesDepFlags(), rangeMatchesDepFlags(), and rpmCheckRpmlibProvides().

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 261 of file package.c.

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

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

rpmRC rpmReadPackageInfo FD_t    fd,
Header   sigp,
Header   hdrp
 

Return package signatures and header from file handle.

Deprecated:
Signature tags are appended to header in rpm-4.0.2.
Todo:
Eliminate.
Parameters:
fd  file handle
Return values:
sigp  address of signature header (or NULL)
hdrp  address of header (or NULL)
Returns:
rpmRC return code

Definition at line 249 of file package.c.

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

Referenced by readRPM().

int rpmtransAddPackage rpmTransactionSet    ts,
Header    h,
FD_t    fd,
const void *    key,
int    upgrade,
rpmRelocation   relocs
 

Add package to be installed to unordered transaction set.

If fd is NULL, the callback specified in rpmtransCreateSet() is used to open and close the file descriptor. If Header is NULL, the fd is always used, otherwise fd is only needed (and only opened) for actual package installation.

Parameters:
ts  transaction set
h  package header
fd  package file handle
key  package private data
upgrade  is package being upgraded?
relocs  package file relocations
Returns:
0 on success, 1 on I/O error, 2 needs capabilities

Definition at line 739 of file depends.c.

References rpmTransactionSet_s::addedPackages, alAddPackage(), rpmTransactionSet_s::delta, headerIsEntry(), headerMatchesDepFlags(), headerNVR(), HFD_t, HGE_t, int_32, availableList_s::list, availablePackage::multiLib, rpmTransactionSet_s::numRemovedPackages, rpmTransactionSet_s::order, rpmTransactionSet_s::orderAlloced, rpmTransactionSet_s::orderCount, rpmTransactionSet_s::removedPackages, removePackage(), rpmTransactionSet_s::rpmdb, rpmdbFreeIterator(), rpmdbGetIteratorOffset(), rpmdbInitIterator(), rpmdbNextIterator(), rpmdbPruneIterator(), RPMTAG_MULTILIBS, RPMTAG_NAME, RPMTAG_OBSOLETEFLAGS, RPMTAG_OBSOLETENAME, RPMTAG_OBSOLETEVERSION, RPMTAG_SOURCEPACKAGE, rpmTagType, rpmVersionCompare(), uint_32, and xrealloc().

Referenced by checkSpec(), rpmInstall(), rpmInstallSourcePackage(), rpmRollback(), rpmtransAdd(), and verifyDependencies().

void rpmtransAvailablePackage rpmTransactionSet    ts,
Header    h,
const void *    key
 

Add package to universe of possible packages to install in transaction set.

Parameters:
ts  transaction set
h  header
key  package private data

Definition at line 848 of file depends.c.

References alAddPackage(), and rpmTransactionSet_s::availablePackages.

Referenced by rpmtransAdd().

rpmTransactionSet rpmtransCreateSet rpmdb    rpmdb,
const char *    rootDir
 

Create an empty transaction set.

Parameters:
rpmdb  rpm database (may be NULL if database is not accessed)
rootDir  path to top of install tree
Returns:
transaction set

Definition at line 634 of file depends.c.

References rpmTransactionSet_s::addedPackages, alCreate(), alloca(), rpmTransactionSet_s::allocedRemovedPackages, rpmTransactionSet_s::availablePackages, rpmTransactionSet_s::chrootDone, rpmTransactionSet_s::currDir, availableList_s::delta, rpmTransactionSet_s::delta, rpmTransactionSet_s::di, rpmTransactionSet_s::filesystemCount, rpmTransactionSet_s::filesystems, rpmTransactionSet_s::id, rpmTransactionSet_s::numRemovedPackages, rpmTransactionSet_s::order, rpmTransactionSet_s::orderAlloced, rpmTransactionSet_s::orderCount, rpmTransactionSet_s::removedPackages, rpmTransactionSet_s::rootDir, rpmTransactionSet_s::rpmdb, rpmTransactionSet_s::scriptFd, stpcpy(), xcalloc(), and xstrdup().

Referenced by checkSpec(), cpio_doio(), rpmErase(), rpmInstall(), rpmInstallSourcePackage(), rpmRollback(), rpmtransCreate(), rpmVerifyScript(), and verifyDependencies().

rpmTransactionSet rpmtransFree rpmTransactionSet    ts
 

Destroy transaction set.

Parameters:
ts  transaction set
Returns:
NULL always

Definition at line 859 of file depends.c.

References _free(), rpmTransactionSet_s::addedPackages, alFree(), rpmTransactionSet_s::availablePackages, rpmTransactionSet_s::currDir, rpmTransactionSet_s::di, fdFree, rpmTransactionSet_s::order, rpmTransactionSet_s::removedPackages, rpmTransactionSet_s::rootDir, and rpmTransactionSet_s::scriptFd.

Referenced by checkSpec(), cpio_doio(), rpmErase(), rpmInstall(), rpmInstallSourcePackage(), rpmRollback(), rpmtransDealloc(), rpmVerifyScript(), and verifyDependencies().

int rpmtransRemovePackage rpmTransactionSet    ts,
int    dboffset
 

Add package to be removed to unordered transaction set.

Parameters:
ts  transaction set
dboffset  rpm database instance
Returns:
0 on success

Definition at line 854 of file depends.c.

References removePackage().

Referenced by rpmErase(), rpmRollback(), and rpmtransRemove().

int rpmVerifyScript const char *    rootDir,
Header    h,
FD_t    scriptFd
 

Return exit code from running verify script from header.

Todo:
gnorpm/kpackage prevents static, should be using VERIFY_SCRIPT flag.
Parameters:
rootDir  path to top of install tree
h  header
scriptFd  file handle to use for stderr (or NULL)
Returns:
0 on success

Definition at line 279 of file verify.c.

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

Referenced by showVerifyPackage().

int rpmVersionCompare Header    first,
Header    second
 

Compare headers to determine which header is "newer".

Parameters:
first  1st header
second  2nd header
Returns:
result of comparison

Definition at line 36 of file psm.c.

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

Referenced by alAddPackage(), ensureOlder(), findUpgradePackages(), pkgCompareVer(), rpmInstall(), rpmtransAddPackage(), 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.

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

Referenced by checkForDuplicates(), checkForRequired(), db1basename(), db3close(), db3open(), dbiCclose(), dbiClose(), dbiCopen(), dbiCount(), dbiDel(), dbiGet(), dbiOpen(), dbiPut(), dbiSearch(), dbiSync(), dbiUpdateIndex(), dbiVerify(), i18nTag(), printNewSpecfile(), rpmdbAdd(), rpmdbInitIterator(), rpmdbMoveDatabase(), rpmdbRemove(), rpmdbRemoveDatabase(), rpmHeaderGetEntry(), and stashSt().

int tagValue const char *    tagstr
 

Return value of tag from name.

Parameters:
tagstr  name of tag
Returns:
tag value

Definition at line 53 of file tagName.c.

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

Referenced by dbiTagsInit().


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.


Generated on Sun Feb 2 23:32:09 2003 for rpm by doxygen1.2.18