rpm  5.4.15
Data Structures | Macros | Typedefs | Enumerations | Functions | Variables
rpmtag.h File Reference
#include <stdint.h>
#include <rpmiotypes.h>
#include <rpmsw.h>
Include dependency graph for rpmtag.h:

Go to the source code of this file.

Data Structures

union  rpmDataType_u
 
struct  _HE_s
 

Macros

#define RPM_MIN_TYPE   2
 
#define RPM_MAX_TYPE   9
 
#define RPM_MASK_TYPE   0x0000ffff
 
#define HEADER_IMAGE   61
 Header private tags. More...
 
#define HEADER_SIGNATURES   62
 
#define HEADER_IMMUTABLE   63
 
#define HEADER_REGIONS   64
 
#define HEADER_I18NTABLE   100
 
#define HEADER_SIGBASE   256
 
#define HEADER_TAGBASE   1000
 
#define RPMTAG_PKGID   RPMTAG_SIGMD5 /* x */
 
#define RPMTAG_HDRID   RPMTAG_SHA1HEADER /* s */
 
#define RPMTAG_N   RPMTAG_NAME /* s */
 
#define RPMTAG_V   RPMTAG_VERSION /* s */
 
#define RPMTAG_R   RPMTAG_RELEASE /* s */
 
#define RPMTAG_E   RPMTAG_EPOCH /* i */
 
#define RPMTAG_FILEMD5S   RPMTAG_FILEDIGESTS /* s[] */
 
#define RPMTAG_PROVIDES   RPMTAG_PROVIDENAME /* s[] */
 
#define RPMTAG_P   RPMTAG_PROVIDENAME /* s[] */
 
#define RPMTAG_REQUIRES   RPMTAG_REQUIRENAME /* s[] */
 
#define RPMTAG_CONFLICTS   RPMTAG_CONFLICTNAME /* s[] */
 
#define RPMTAG_C   RPMTAG_CONFLICTNAME /* s[] */
 
#define RPMTAG_OBSOLETES   RPMTAG_OBSOLETENAME /* s[] */
 
#define RPMTAG_O   RPMTAG_OBSOLETENAME /* s[] */
 
#define RPMTAG_SUGGESTS   RPMTAG_SUGGESTSNAME /* s[] */
 
#define RPMTAG_ENHANCES   RPMTAG_ENHANCESNAME /* s[] */
 
#define RPMTAG_SVNID   RPMTAG_CVSID /* s */
 
#define RPMTAG_D   RPMTAG_DISTEPOCH /* s */
 
#define RPMTAG_EXTERNAL_TAG   1000000
 
#define RPMDBI_PACKAGES   (rpmTag)0 /* Installed package headers. */
 Pseudo-tags used by the rpmdb and rpmgi iterator API's. More...
 
#define RPMDBI_DEPCACHE   (rpmTag)1 /* Dependency resolution cache. */
 
#define RPMDBI_ADDED   (rpmTag)3 /* Added package headers. */
 
#define RPMDBI_REMOVED   (rpmTag)4 /* Removed package headers. */
 
#define RPMDBI_AVAILABLE   (rpmTag)5 /* Available package headers. */
 
#define RPMDBI_HDLIST   (rpmTag)6 /* (rpmgi) Header list. */
 
#define RPMDBI_ARGLIST   (rpmTag)7 /* (rpmgi) Argument list. */
 
#define RPMDBI_FTSWALK   (rpmTag)8 /* (rpmgi) File tree walk. */
 
#define RPMDBI_SEQNO   (rpmTag)9 /* Sequence numbers. */
 
#define RPMDBI_BTREE   (rpmTag)10 /* (development) Generic DB_BTREE. */
 
#define RPMDBI_HASH   (rpmTag)11 /* (development) Generic DB_HASH. */
 
#define RPMDBI_QUEUE   (rpmTag)12 /* (development) Generic DB_QUEUE. */
 
#define RPMDBI_RECNO   (rpmTag)13 /* (development) Generic DB_RECNO. */
 
#define RPMDBI_HEAP   (rpmTag)14 /* (development) Generic DB_HEAP. */
 
#define RPMDBI_REPACKAGES   (rpmTag)16 /* Re-packaged package paths. */
 
#define RPMDBI_REPOSITORY   (rpmTag)17 /* Repository URI's. */
 
#define HEADERGET_NOEXTENSION   (1 << 0)
 
#define HEADERGET_NOI18NSTRING   (1 << 1)
 
#define headerLink(_h)   ((Header)rpmioLinkPoolItem((rpmioItem)(_h), __FUNCTION__, __FILE__, __LINE__))
 
#define headerUnlink(_h)   ((Header)rpmioUnlinkPoolItem((rpmioItem)(_h), __FUNCTION__, __FILE__, __LINE__))
 
#define headerFree(_h)   ((Header)rpmioFreePoolItem((rpmioItem)(_h), __FUNCTION__, __FILE__, __LINE__))
 

Typedefs

typedef const char * errmsg_t
 
typedef struct headerToken_sHeader
 
typedef enum rpmTagType_e rpmTagType
 
typedef union rpmDataType_u rpmTagData
 
typedef rpmuint32_t rpmTagCount
 
typedef struct _HE_sHE_t
 
typedef enum rpmSubTagType_e rpmSubTagType
 
typedef enum rpmTagReturnType_e rpmTagReturnType
 Identify how to return the header data type. More...
 
typedef struct headerIterator_sHeaderIterator
 
typedef struct headerTagIndices_s * headerTagIndices
 
typedef const struct
headerSprintfExtension_s * 
headerSprintfExtension
 
typedef enum rpmTag_e rpmTag
 
typedef enum rpmSigTag_e rpmSigTag
 
typedef struct _HE_s HE_s
 
typedef struct tagStore_s * tagStore_t
 
typedef const struct
headerTagTableEntry_s * 
headerTagTableEntry
 

Enumerations

enum  rpmTagType_e {
  RPM_UINT8_TYPE = 2, RPM_UINT16_TYPE = 3, RPM_UINT32_TYPE = 4, RPM_UINT64_TYPE = 5,
  RPM_STRING_TYPE = 6, RPM_BIN_TYPE = 7, RPM_STRING_ARRAY_TYPE = 8, RPM_I18NSTRING_TYPE = 9
}
 The basic types of data in tags from headers. More...
 
enum  rpmSubTagType_e { RPM_REGION_TYPE = -10, RPM_BIN_ARRAY_TYPE = -11, RPM_XREF_TYPE = -12 }
 
enum  rpmTagReturnType_e {
  RPM_ANY_RETURN_TYPE = 0, RPM_SCALAR_RETURN_TYPE = 0x00010000, RPM_ARRAY_RETURN_TYPE = 0x00020000, RPM_MAPPING_RETURN_TYPE = 0x00040000,
  RPM_PROBE_RETURN_TYPE = 0x00100000, RPM_TREE_RETURN_TYPE = 0x00200000, RPM_OPENPGP_RETURN_TYPE = 0x00400000, RPM_X509_RETURN_TYPE = 0x00800000,
  RPM_ASN1_RETURN_TYPE = 0x01000000, RPM_OPAQUE_RETURN_TYPE = 0x10000000, RPM_MASK_RETURN_TYPE = 0xffff0000
}
 Identify how to return the header data type. 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_ECDSAHEADER = RPMTAG_SIG_BASE+14,
  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_FILEDIGESTS = 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_INSTALLCOLOR = 1127, RPMTAG_INSTALLTID = 1128,
  RPMTAG_REMOVETID = 1129, RPMTAG_SHA1RHN = 1130, RPMTAG_RHNPLATFORM = 1131, RPMTAG_PLATFORM = 1132,
  RPMTAG_PATCHESNAME = 1133, RPMTAG_PATCHESFLAGS = 1134, RPMTAG_PATCHESVERSION = 1135, RPMTAG_CACHECTIME = 1136,
  RPMTAG_CACHEPKGPATH = 1137, RPMTAG_CACHEPKGSIZE = 1138, RPMTAG_CACHEPKGMTIME = 1139, RPMTAG_FILECOLORS = 1140,
  RPMTAG_FILECLASS = 1141, RPMTAG_CLASSDICT = 1142, RPMTAG_FILEDEPENDSX = 1143, RPMTAG_FILEDEPENDSN = 1144,
  RPMTAG_DEPENDSDICT = 1145, RPMTAG_SOURCEPKGID = 1146, RPMTAG_FILECONTEXTS = 1147, RPMTAG_FSCONTEXTS = 1148,
  RPMTAG_RECONTEXTS = 1149, RPMTAG_POLICIES = 1150, RPMTAG_PRETRANS = 1151, RPMTAG_POSTTRANS = 1152,
  RPMTAG_PRETRANSPROG = 1153, RPMTAG_POSTTRANSPROG = 1154, RPMTAG_DISTTAG = 1155, RPMTAG_SUGGESTSNAME = 1156,
  RPMTAG_SUGGESTSVERSION = 1157, RPMTAG_SUGGESTSFLAGS = 1158, RPMTAG_ENHANCESNAME = 1159, RPMTAG_ENHANCESVERSION = 1160,
  RPMTAG_ENHANCESFLAGS = 1161, RPMTAG_PRIORITY = 1162, RPMTAG_CVSID = 1163, RPMTAG_BLINKPKGID = 1164,
  RPMTAG_BLINKHDRID = 1165, RPMTAG_BLINKNEVRA = 1166, RPMTAG_FLINKPKGID = 1167, RPMTAG_FLINKHDRID = 1168,
  RPMTAG_FLINKNEVRA = 1169, RPMTAG_PACKAGEORIGIN = 1170, RPMTAG_TRIGGERPREIN = 1171, RPMTAG_BUILDSUGGESTS = 1172,
  RPMTAG_BUILDENHANCES = 1173, RPMTAG_SCRIPTSTATES = 1174, RPMTAG_SCRIPTMETRICS = 1175, RPMTAG_BUILDCPUCLOCK = 1176,
  RPMTAG_FILEDIGESTALGOS = 1177, RPMTAG_VARIANTS = 1178, RPMTAG_XMAJOR = 1179, RPMTAG_XMINOR = 1180,
  RPMTAG_REPOTAG = 1181, RPMTAG_KEYWORDS = 1182, RPMTAG_BUILDPLATFORMS = 1183, RPMTAG_PACKAGECOLOR = 1184,
  RPMTAG_PACKAGEPREFCOLOR = 1185, RPMTAG_XATTRSDICT = 1186, RPMTAG_FILEXATTRSX = 1187, RPMTAG_DEPATTRSDICT = 1188,
  RPMTAG_CONFLICTATTRSX = 1189, RPMTAG_OBSOLETEATTRSX = 1190, RPMTAG_PROVIDEATTRSX = 1191, RPMTAG_REQUIREATTRSX = 1192,
  RPMTAG_BUILDPROVIDES = 1193, RPMTAG_BUILDOBSOLETES = 1194, RPMTAG_DBINSTANCE = 1195, RPMTAG_NVRA = 1196,
  RPMTAG_FILEPATHS = 1197, RPMTAG_ORIGPATHS = 1198, RPMTAG_RPMLIBVERSION = 1199, RPMTAG_RPMLIBTIMESTAMP = 1200,
  RPMTAG_RPMLIBVENDOR = 1201, RPMTAG_CLASS = 1202, RPMTAG_TRACK = 1203, RPMTAG_TRACKPROG = 1204,
  RPMTAG_SANITYCHECK = 1205, RPMTAG_SANITYCHECKPROG = 1206, RPMTAG_FILESTAT = 1207, RPMTAG_STAT = 1208,
  RPMTAG_ORIGINTID = 1209, RPMTAG_ORIGINTIME = 1210, RPMTAG_HEADERSTARTOFF = 1211, RPMTAG_HEADERENDOFF = 1212,
  RPMTAG_PACKAGETIME = 1213, RPMTAG_PACKAGESIZE = 1214, RPMTAG_PACKAGEDIGEST = 1215, RPMTAG_PACKAGESTAT = 1216,
  RPMTAG_PACKAGEBASEURL = 1217, RPMTAG_DISTEPOCH = 1218, RPMTAG_CONFLICTYAMLENTRY = 1219, RPMTAG_OBSOLETEYAMLENTRY = 1220,
  RPMTAG_PROVIDEYAMLENTRY = 1221, RPMTAG_REQUIREYAMLENTRY = 1222, RPMTAG_FILEDIGESTALGO = 5011, RPMTAG_BUGURL = 5012,
  RPMTAG_FIRSTFREE_TAG, RPMTAG_PACKAGETRANSFLAGS = 0x4efaafd9, RPMTAG_PACKAGEDEPFLAGS = 0x748a8314, RPMTAG_BUILDPREPPROG = 0x4ba37c9e,
  RPMTAG_BUILDPREP = 0x799c0b4d, RPMTAG_BUILDBUILDPROG = 0x6fb46014, RPMTAG_BUILDBUILD = 0x5bae1a5a, RPMTAG_BUILDINSTALLPROG = 0x70d4ab6f,
  RPMTAG_BUILDINSTALL = 0x567f5983, RPMTAG_BUILDCHECKPROG = 0x488a60ce, RPMTAG_BUILDCHECK = 0x7f3b97b5, RPMTAG_BUILDCLEANPROG = 0x42c93d41,
  RPMTAG_BUILDCLEAN = 0x566042bf, RPMTAG_LASTARBITRARY_TAG = 0x80000000
}
 Tags identify data in package headers. More...
 
enum  rpmSigTag_e {
  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, RPMSIGTAG_ECDSA = RPMTAG_ECDSAHEADER, RPMSIGTAG_PADDING = 0x3fffffff
}
 Tags found in signature header from package. More...
 

Functions

const char * tagName (rpmTag tag)
 Return tag name from value. More...
 
unsigned int tagType (rpmTag tag)
 Return tag data type from value. More...
 
rpmTag tagValue (const char *tagstr)
 Return tag value from name. More...
 
char * tagCanonicalize (const char *s)
 Canonicalize a rpmTag string. More...
 
rpmTag tagGenerate (const char *s)
 Generate a tag from arbitrary string. More...
 
void tagClean (headerTagIndices _rpmTags)
 Free memory in header tag indices. More...
 
tagStore_t tagStoreFree (tagStore_t dbiTags, size_t dbiNTags)
 Destroy tagStore array. More...
 
void rpmDisplayQueryTags (FILE *fp, headerTagTableEntry _rpmTagTable, headerSprintfExtension _rpmHeaderFormats)
 Display list of tags that can be used in –queryformat. More...
 
char * headerSprintf (Header h, const char *fmt, headerTagTableEntry tags, headerSprintfExtension exts, errmsg_t *errmsg)
 Return formatted output string from header tags. More...
 
int headerGet (Header h, HE_t he, unsigned int flags)
 Retrieve extension or tag value from a header. More...
 
int headerPut (Header h, HE_t he, unsigned int flags)
 Add or append tag container to header. More...
 
int headerDel (Header h, HE_t he, unsigned int flags)
 Remove tag container from header. More...
 
int headerMod (Header h, HE_t he, unsigned int flags)
 Modify tag container in header. More...
 
HeaderIterator headerFini (HeaderIterator hi)
 Destroy header tag container iterator. More...
 
HeaderIterator headerInit (Header h)
 Create header tag iterator. More...
 
int headerNext (HeaderIterator hi, HE_t he, unsigned int flags)
 Return next tag from header. More...
 
Header headerLink (Header h)
 Reference a header instance. More...
 
Header headerUnlink (Header h)
 Dereference a header instance. More...
 
Header headerFree (Header h)
 Dereference a header instance. More...
 
Header headerNew (void)
 Create new (empty) header instance. More...
 
size_t headerSizeof (Header h)
 Return size of on-disk header representation in bytes. More...
 
void * headerUnload (Header h, size_t *lenp)
 headerUnload. More...
 
Header headerReload (Header h, rpmTag tag)
 Convert header to on-disk representation, and then reload. More...
 
Header headerCopy (Header h)
 Duplicate a header. More...
 
Header headerLoad (void *uh)
 Convert header to in-memory representation. More...
 
Header headerCopyLoad (const void *uh)
 Make a copy and convert header to in-memory representation. More...
 
int headerIsEntry (Header h, rpmTag tag)
 Check if tag is in header. More...
 
void headerCopyTags (Header headerFrom, Header headerTo, rpmTag *tagstocopy)
 Duplicate tag values from one header into another. More...
 
int headerGetMagic (Header h, unsigned char **magicp, size_t *nmagicp)
 Return header magic. More...
 
int headerSetMagic (Header h, unsigned char *magic, size_t nmagic)
 Store header magic. More...
 
const char * headerGetOrigin (Header h)
 Return header origin (e.g path or URL). More...
 
int headerSetOrigin (Header h, const char *origin)
 Store header origin (e.g path or URL). More...
 
const char * headerGetParent (Header h)
 Return header parent identifier (e.g parent's NVRA). More...
 
int headerSetParent (Header h, const char *parent)
 Store header parent (e.g parent's NVRA). More...
 
const char * headerGetBaseURL (Header h)
 Return header base URL (e.g path or URL). More...
 
int headerSetBaseURL (Header h, const char *baseurl)
 Store header base URL (e.g path or URL). More...
 
struct stat * headerGetStatbuf (Header h)
 Return header stat(2) buffer (of origin *.rpm file). More...
 
int headerSetStatbuf (Header h, struct stat *st)
 Copy into header stat(2) buffer (of origin *.rpm file). More...
 
const char * headerGetDigest (Header h)
 Return digest of origin *.rpm file. More...
 
int headerSetDigest (Header h, const char *digest)
 Store digest of origin *.rpm file. More...
 
void * headerGetRpmdb (Header h)
 Return rpmdb pointer. More...
 
void * headerSetRpmdb (Header h, void *rpmdb)
 Store rpmdb pointer. More...
 
uint32_t headerGetInstance (Header h)
 Return header instance (if from rpmdb). More...
 
uint32_t headerSetInstance (Header h, uint32_t instance)
 Store header instance (e.g path or URL). More...
 
rpmuint32_t headerGetStartOff (Header h)
 Return header starting byte offset. More...
 
rpmuint32_t headerSetStartOff (Header h, rpmuint32_t startoff)
 Store header starting byte offset. More...
 
rpmuint32_t headerGetEndOff (Header h)
 Return header ending byte offset. More...
 
rpmuint32_t headerSetEndOff (Header h, rpmuint32_t endoff)
 Store header ending byte offset. More...
 
void * headerGetStats (Header h, int opx)
 Return header stats accumulator structure. More...
 
int headerMacrosLoad (Header h)
 Define per-header macros. More...
 
int headerMacrosUnload (Header h)
 Define per-header macros. More...
 
int headerNEVRA (Header h, const char **np, const char **ep, const char **vp, const char **rp, const char **ap)
 Return name, epoch, version, release, arch strings from header. More...
 
rpmuint32_t hGetColor (Header h)
 Return header color. More...
 
void headerMergeLegacySigs (Header h, const Header sigh)
 Translate and merge legacy signature tags into header. More...
 
Header headerRegenSigHeader (const Header h, int noArchiveSize)
 Regenerate signature header. More...
 

Variables

headerTagTableEntry rpmTagTable
 Automatically generated table of tag name/value pairs. More...
 
int rpmTagTableSize
 Number of entries in rpmTagTable. More...
 
headerTagIndices rpmTags
 
headerSprintfExtension headerDefaultFormats
 Supported default header tag output formats. More...
 
headerSprintfExtension headerCompoundFormats
 Supported default header extension/tag output formats. More...
 

Macro Definition Documentation

#define HEADER_I18NTABLE   100

Definition at line 120 of file rpmtag.h.

Referenced by hdrKeyList(), headerLoad(), initSourceHeader(), and regionSwab().

#define HEADER_IMAGE   61

Header private tags.

Note
General use tags should start at 1000 (RPM's tag space starts there).

Definition at line 116 of file rpmtag.h.

Referenced by copyEntry(), headerCopy(), headerLoad(), and regionSwab().

#define HEADER_IMMUTABLE   63

Definition at line 118 of file rpmtag.h.

Referenced by headerReload().

#define HEADER_REGIONS   64

Definition at line 119 of file rpmtag.h.

#define HEADER_SIGBASE   256

Definition at line 121 of file rpmtag.h.

Referenced by headerMergeLegacySigs(), and headerRegenSigHeader().

#define HEADER_SIGNATURES   62

Definition at line 117 of file rpmtag.h.

Referenced by headerReload().

#define HEADER_TAGBASE   1000

Definition at line 122 of file rpmtag.h.

Referenced by headerMergeLegacySigs(), and headerRegenSigHeader().

#define headerFree (   _h)    ((Header)rpmioFreePoolItem((rpmioItem)(_h), __FUNCTION__, __FILE__, __LINE__))

Definition at line 872 of file rpmtag.h.

#define HEADERGET_NOEXTENSION   (1 << 0)

Extension search disabler.

Definition at line 775 of file rpmtag.h.

Referenced by headerCopyTags(), headerGet(), i18nTag(), localeTag(), pkgbaseurlTag(), and pkgoriginTag().

#define HEADERGET_NOI18NSTRING   (1 << 1)

Return i18n strings as argv.

Definition at line 776 of file rpmtag.h.

Referenced by intGetEntry().

#define headerLink (   _h)    ((Header)rpmioLinkPoolItem((rpmioItem)(_h), __FUNCTION__, __FILE__, __LINE__))

Definition at line 850 of file rpmtag.h.

#define headerUnlink (   _h)    ((Header)rpmioUnlinkPoolItem((rpmioItem)(_h), __FUNCTION__, __FILE__, __LINE__))

Definition at line 861 of file rpmtag.h.

#define RPM_MASK_TYPE   0x0000ffff

Definition at line 43 of file rpmtag.h.

Referenced by rpmDisplayQueryTags(), sql_bind_key(), sql_copen(), sql_initDB(), and tagLoadArgv().

#define RPM_MAX_TYPE   9

Definition at line 42 of file rpmtag.h.

Referenced by rpmDisplayQueryTags(), and tagLoadArgv().

#define RPM_MIN_TYPE   2

Definition at line 41 of file rpmtag.h.

Referenced by tagLoadArgv().

#define RPMDBI_ADDED   (rpmTag)3 /* Added package headers. */
#define RPMDBI_ARGLIST   (rpmTag)7 /* (rpmgi) Argument list. */
#define RPMDBI_AVAILABLE   (rpmTag)5 /* Available package headers. */
#define RPMDBI_BTREE   (rpmTag)10 /* (development) Generic DB_BTREE. */

Definition at line 489 of file rpmtag.h.

Referenced by _tagName(), _tagType(), _tagValue(), rpmdbOpenAll(), and rpmtsRebuildDB().

#define RPMDBI_DEPCACHE   (rpmTag)1 /* Dependency resolution cache. */
#define RPMDBI_FTSWALK   (rpmTag)8 /* (rpmgi) File tree walk. */
#define RPMDBI_HASH   (rpmTag)11 /* (development) Generic DB_HASH. */

Definition at line 490 of file rpmtag.h.

Referenced by _tagName(), _tagType(), _tagValue(), rpmdbOpenAll(), and rpmtsRebuildDB().

#define RPMDBI_HDLIST   (rpmTag)6 /* (rpmgi) Header list. */

Definition at line 485 of file rpmtag.h.

Referenced by _tagName(), _tagType(), _tagValue(), rpmcliArgIter(), rpmgiGlobArgv(), and rpmgiNext().

#define RPMDBI_HEAP   (rpmTag)14 /* (development) Generic DB_HEAP. */

Definition at line 493 of file rpmtag.h.

Referenced by _tagName(), _tagType(), _tagValue(), and rpmdbOpenAll().

#define RPMDBI_PACKAGES   (rpmTag)0 /* Installed package headers. */
#define RPMDBI_QUEUE   (rpmTag)12 /* (development) Generic DB_QUEUE. */

Definition at line 491 of file rpmtag.h.

Referenced by _tagName(), _tagType(), _tagValue(), rpmdbOpenAll(), and rpmtsRebuildDB().

#define RPMDBI_RECNO   (rpmTag)13 /* (development) Generic DB_RECNO. */

Definition at line 492 of file rpmtag.h.

Referenced by _tagName(), _tagType(), _tagValue(), rpmdbOpenAll(), and rpmtsRebuildDB().

#define RPMDBI_REMOVED   (rpmTag)4 /* Removed package headers. */
#define RPMDBI_REPACKAGES   (rpmTag)16 /* Re-packaged package paths. */

Definition at line 495 of file rpmtag.h.

#define RPMDBI_REPOSITORY   (rpmTag)17 /* Repository URI's. */

Definition at line 496 of file rpmtag.h.

#define RPMDBI_SEQNO   (rpmTag)9 /* Sequence numbers. */

Definition at line 488 of file rpmtag.h.

Referenced by _tagName(), _tagType(), _tagValue(), rpmdbAdd(), rpmdbRemove(), rpmtsRebuildDB(), and sql_initDB().

#define RPMTAG_C   RPMTAG_CONFLICTNAME /* s[] */

Definition at line 243 of file rpmtag.h.

#define RPMTAG_CONFLICTS   RPMTAG_CONFLICTNAME /* s[] */

Definition at line 242 of file rpmtag.h.

Referenced by _tagName().

#define RPMTAG_D   RPMTAG_DISTEPOCH /* s */

Definition at line 414 of file rpmtag.h.

#define RPMTAG_E   RPMTAG_EPOCH /* i */

Definition at line 180 of file rpmtag.h.

#define RPMTAG_ENHANCES   RPMTAG_ENHANCESNAME /* s[] */

Definition at line 353 of file rpmtag.h.

#define RPMTAG_EXTERNAL_TAG   1000000

Definition at line 445 of file rpmtag.h.

#define RPMTAG_FILEMD5S   RPMTAG_FILEDIGESTS /* s[] */

Definition at line 215 of file rpmtag.h.

Referenced by hdr_subscript().

#define RPMTAG_HDRID   RPMTAG_SHA1HEADER /* s */

Definition at line 170 of file rpmtag.h.

Referenced by _tagName(), addTE(), hdruuidTag(), rpmHeadersIdentical(), rpmteChain(), and singleSprintf().

#define RPMTAG_N   RPMTAG_NAME /* s */

Definition at line 174 of file rpmtag.h.

#define RPMTAG_O   RPMTAG_OBSOLETENAME /* s[] */

Definition at line 274 of file rpmtag.h.

#define RPMTAG_OBSOLETES   RPMTAG_OBSOLETENAME /* s[] */

Definition at line 273 of file rpmtag.h.

#define RPMTAG_P   RPMTAG_PROVIDENAME /* s[] */

Definition at line 233 of file rpmtag.h.

#define RPMTAG_PKGID   RPMTAG_SIGMD5 /* x */

Definition at line 160 of file rpmtag.h.

Referenced by addTE(), pkguuidTag(), rpmQueryVerify(), rpmteChain(), and uuidFormat().

#define RPMTAG_PROVIDES   RPMTAG_PROVIDENAME /* s[] */

Definition at line 232 of file rpmtag.h.

Referenced by rpmdsELF().

#define RPMTAG_R   RPMTAG_RELEASE /* s */

Definition at line 178 of file rpmtag.h.

#define RPMTAG_REQUIRES   RPMTAG_REQUIRENAME /* s[] */

Definition at line 236 of file rpmtag.h.

#define RPMTAG_SUGGESTS   RPMTAG_SUGGESTSNAME /* s[] */

Definition at line 349 of file rpmtag.h.

#define RPMTAG_SVNID   RPMTAG_CVSID /* s */

Definition at line 358 of file rpmtag.h.

#define RPMTAG_V   RPMTAG_VERSION /* s */

Definition at line 176 of file rpmtag.h.

Typedef Documentation

typedef const char* errmsg_t

Definition at line 18 of file rpmtag.h.

typedef struct _HE_s HE_s

Definition at line 517 of file rpmtag.h.

typedef struct _HE_s* HE_t

tag container.

Definition at line 59 of file rpmtag.h.

typedef struct headerToken_s* Header

Definition at line 22 of file rpmtag.h.

Definition at line 126 of file rpmtag.h.

typedef const struct headerSprintfExtension_s* headerSprintfExtension

Definition at line 134 of file rpmtag.h.

typedef struct headerTagIndices_s* headerTagIndices

Definition at line 130 of file rpmtag.h.

typedef const struct headerTagTableEntry_s* headerTagTableEntry

Definition at line 525 of file rpmtag.h.

typedef enum rpmSigTag_e rpmSigTag

Definition at line 474 of file rpmtag.h.

typedef enum rpmTag_e rpmTag

Definition at line 470 of file rpmtag.h.

tag data element count.

Definition at line 55 of file rpmtag.h.

typedef union rpmDataType_u rpmTagData

tag data.

Definition at line 51 of file rpmtag.h.

Identify how to return the header data type.

typedef enum rpmTagType_e rpmTagType

tag data type.

Definition at line 47 of file rpmtag.h.

typedef struct tagStore_s* tagStore_t

Definition at line 521 of file rpmtag.h.

Enumeration Type Documentation

Tags found in signature header from package.

Enumerator
RPMSIGTAG_SIZE 

internal Header+Payload size in bytes.

RPMSIGTAG_LEMD5_1 

internal Broken MD5, take 1

Deprecated:
legacy.
RPMSIGTAG_PGP 

internal PGP 2.6.3 signature.

RPMSIGTAG_LEMD5_2 

internal Broken MD5, take 2

Deprecated:
legacy.
RPMSIGTAG_MD5 

internal MD5 signature.

RPMSIGTAG_GPG 

internal GnuPG signature.

RPMSIGTAG_PGP5 

internal PGP5 signature

Deprecated:
legacy.
RPMSIGTAG_PAYLOADSIZE 

internal uncompressed payload size in bytes.

RPMSIGTAG_BADSHA1_1 

internal Broken SHA1, take 1.

RPMSIGTAG_BADSHA1_2 

internal Broken SHA1, take 2.

RPMSIGTAG_SHA1 

internal sha1 header digest.

RPMSIGTAG_DSA 

internal DSA header signature.

RPMSIGTAG_RSA 

internal RSA header signature.

RPMSIGTAG_ECDSA 

internal ECDSA header signature.

RPMSIGTAG_PADDING 

signature header padding

Definition at line 450 of file rpmtag.h.

Enumerator
RPM_REGION_TYPE 
RPM_BIN_ARRAY_TYPE 
RPM_XREF_TYPE 

Definition at line 85 of file rpmtag.h.

enum rpmTag_e

Tags identify data in package headers.

Note
tags should not have value 0!
Enumerator
RPMTAG_HEADERIMAGE 

internal Current image.

RPMTAG_HEADERSIGNATURES 

internal Signatures.

RPMTAG_HEADERIMMUTABLE 

x Original image.

RPMTAG_HEADERREGIONS 

internal Regions.

RPMTAG_HEADERI18NTABLE 

s[] I18N string locales.

RPMTAG_SIG_BASE 
RPMTAG_SIGSIZE 
RPMTAG_SIGLEMD5_1 
RPMTAG_SIGPGP 
RPMTAG_SIGLEMD5_2 
RPMTAG_SIGMD5 
RPMTAG_SIGGPG 
RPMTAG_SIGPGP5 
RPMTAG_BADSHA1_1 
RPMTAG_BADSHA1_2 
RPMTAG_PUBKEYS 
RPMTAG_DSAHEADER 
RPMTAG_RSAHEADER 
RPMTAG_SHA1HEADER 
RPMTAG_ECDSAHEADER 
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 
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 
RPMTAG_FILEGIDS 
RPMTAG_FILERDEVS 
RPMTAG_FILEMTIMES 
RPMTAG_FILEDIGESTS 
RPMTAG_FILELINKTOS 
RPMTAG_FILEFLAGS 
RPMTAG_ROOT 
RPMTAG_FILEUSERNAME 
RPMTAG_FILEGROUPNAME 
RPMTAG_EXCLUDE 
RPMTAG_EXCLUSIVE 
RPMTAG_ICON 
RPMTAG_SOURCERPM 
RPMTAG_FILEVERIFYFLAGS 
RPMTAG_ARCHIVESIZE 
RPMTAG_PROVIDENAME 
RPMTAG_REQUIREFLAGS 
RPMTAG_REQUIRENAME 
RPMTAG_REQUIREVERSION 
RPMTAG_NOSOURCE 
RPMTAG_NOPATCH 
RPMTAG_CONFLICTFLAGS 
RPMTAG_CONFLICTNAME 
RPMTAG_CONFLICTVERSION 
RPMTAG_DEFAULTPREFIX 
RPMTAG_BUILDROOT 
RPMTAG_INSTALLPREFIX 
RPMTAG_EXCLUDEARCH 
RPMTAG_EXCLUDEOS 
RPMTAG_EXCLUSIVEARCH 
RPMTAG_EXCLUSIVEOS 
RPMTAG_AUTOREQPROV 
RPMTAG_RPMVERSION 
RPMTAG_TRIGGERSCRIPTS 
RPMTAG_TRIGGERNAME 
RPMTAG_TRIGGERVERSION 
RPMTAG_TRIGGERFLAGS 
RPMTAG_TRIGGERINDEX 
RPMTAG_VERIFYSCRIPT 
RPMTAG_CHANGELOGTIME 
RPMTAG_CHANGELOGNAME 
RPMTAG_CHANGELOGTEXT 
RPMTAG_BROKENMD5 
RPMTAG_PREREQ 
RPMTAG_PREINPROG 
RPMTAG_POSTINPROG 
RPMTAG_PREUNPROG 
RPMTAG_POSTUNPROG 
RPMTAG_BUILDARCHS 
RPMTAG_OBSOLETENAME 
RPMTAG_VERIFYSCRIPTPROG 
RPMTAG_TRIGGERSCRIPTPROG 
RPMTAG_DOCDIR 
RPMTAG_COOKIE 
RPMTAG_FILEDEVICES 
RPMTAG_FILEINODES 
RPMTAG_FILELANGS 
RPMTAG_PREFIXES 
RPMTAG_INSTPREFIXES 
RPMTAG_TRIGGERIN 
RPMTAG_TRIGGERUN 
RPMTAG_TRIGGERPOSTUN 
RPMTAG_AUTOREQ 
RPMTAG_AUTOPROV 
RPMTAG_CAPABILITY 
RPMTAG_SOURCEPACKAGE 
RPMTAG_OLDORIGFILENAMES 
RPMTAG_BUILDPREREQ 
RPMTAG_BUILDREQUIRES 
RPMTAG_BUILDCONFLICTS 
RPMTAG_BUILDMACROS 
RPMTAG_PROVIDEFLAGS 
RPMTAG_PROVIDEVERSION 
RPMTAG_OBSOLETEFLAGS 
RPMTAG_OBSOLETEVERSION 
RPMTAG_DIRINDEXES 
RPMTAG_BASENAMES 
RPMTAG_DIRNAMES 
RPMTAG_ORIGDIRINDEXES 
RPMTAG_ORIGBASENAMES 
RPMTAG_ORIGDIRNAMES 
RPMTAG_OPTFLAGS 
RPMTAG_DISTURL 
RPMTAG_PAYLOADFORMAT 
RPMTAG_PAYLOADCOMPRESSOR 
RPMTAG_PAYLOADFLAGS 
RPMTAG_INSTALLCOLOR 
RPMTAG_INSTALLTID 
RPMTAG_REMOVETID 
RPMTAG_SHA1RHN 
RPMTAG_RHNPLATFORM 
RPMTAG_PLATFORM 
RPMTAG_PATCHESNAME 
RPMTAG_PATCHESFLAGS 
RPMTAG_PATCHESVERSION 
RPMTAG_CACHECTIME 
RPMTAG_CACHEPKGPATH 
RPMTAG_CACHEPKGSIZE 
RPMTAG_CACHEPKGMTIME 
RPMTAG_FILECOLORS 
RPMTAG_FILECLASS 
RPMTAG_CLASSDICT 
RPMTAG_FILEDEPENDSX 
RPMTAG_FILEDEPENDSN 
RPMTAG_DEPENDSDICT 
RPMTAG_SOURCEPKGID 
RPMTAG_FILECONTEXTS 
RPMTAG_FSCONTEXTS 
RPMTAG_RECONTEXTS 
RPMTAG_POLICIES 
RPMTAG_PRETRANS 
RPMTAG_POSTTRANS 
RPMTAG_PRETRANSPROG 
RPMTAG_POSTTRANSPROG 
RPMTAG_DISTTAG 
RPMTAG_SUGGESTSNAME 
RPMTAG_SUGGESTSVERSION 
RPMTAG_SUGGESTSFLAGS 
RPMTAG_ENHANCESNAME 
RPMTAG_ENHANCESVERSION 
RPMTAG_ENHANCESFLAGS 
RPMTAG_PRIORITY 
RPMTAG_CVSID 
RPMTAG_BLINKPKGID 
RPMTAG_BLINKHDRID 
RPMTAG_BLINKNEVRA 
RPMTAG_FLINKPKGID 
RPMTAG_FLINKHDRID 
RPMTAG_FLINKNEVRA 
RPMTAG_PACKAGEORIGIN 
RPMTAG_TRIGGERPREIN 
RPMTAG_BUILDSUGGESTS 
RPMTAG_BUILDENHANCES 
RPMTAG_SCRIPTSTATES 
RPMTAG_SCRIPTMETRICS 
RPMTAG_BUILDCPUCLOCK 
RPMTAG_FILEDIGESTALGOS 
RPMTAG_VARIANTS 
RPMTAG_XMAJOR 
RPMTAG_XMINOR 
RPMTAG_REPOTAG 
RPMTAG_KEYWORDS 
RPMTAG_BUILDPLATFORMS 
RPMTAG_PACKAGECOLOR 
RPMTAG_PACKAGEPREFCOLOR 
RPMTAG_XATTRSDICT 
RPMTAG_FILEXATTRSX 
RPMTAG_DEPATTRSDICT 
RPMTAG_CONFLICTATTRSX 
RPMTAG_OBSOLETEATTRSX 
RPMTAG_PROVIDEATTRSX 
RPMTAG_REQUIREATTRSX 
RPMTAG_BUILDPROVIDES 
RPMTAG_BUILDOBSOLETES 
RPMTAG_DBINSTANCE 
RPMTAG_NVRA 
RPMTAG_FILEPATHS 
RPMTAG_ORIGPATHS 
RPMTAG_RPMLIBVERSION 
RPMTAG_RPMLIBTIMESTAMP 
RPMTAG_RPMLIBVENDOR 
RPMTAG_CLASS 
RPMTAG_TRACK 
RPMTAG_TRACKPROG 
RPMTAG_SANITYCHECK 
RPMTAG_SANITYCHECKPROG 
RPMTAG_FILESTAT 
RPMTAG_STAT 
RPMTAG_ORIGINTID 
RPMTAG_ORIGINTIME 
RPMTAG_HEADERSTARTOFF 
RPMTAG_HEADERENDOFF 
RPMTAG_PACKAGETIME 
RPMTAG_PACKAGESIZE 
RPMTAG_PACKAGEDIGEST 
RPMTAG_PACKAGESTAT 
RPMTAG_PACKAGEBASEURL 
RPMTAG_DISTEPOCH 
RPMTAG_CONFLICTYAMLENTRY 
RPMTAG_OBSOLETEYAMLENTRY 
RPMTAG_PROVIDEYAMLENTRY 
RPMTAG_REQUIREYAMLENTRY 
RPMTAG_FILEDIGESTALGO 
RPMTAG_BUGURL 
RPMTAG_FIRSTFREE_TAG 

internal

RPMTAG_PACKAGETRANSFLAGS 
RPMTAG_PACKAGEDEPFLAGS 
RPMTAG_BUILDPREPPROG 
RPMTAG_BUILDPREP 
RPMTAG_BUILDBUILDPROG 
RPMTAG_BUILDBUILD 
RPMTAG_BUILDINSTALLPROG 
RPMTAG_BUILDINSTALL 
RPMTAG_BUILDCHECKPROG 
RPMTAG_BUILDCHECK 
RPMTAG_BUILDCLEANPROG 
RPMTAG_BUILDCLEAN 
RPMTAG_LASTARBITRARY_TAG 

internal

Definition at line 140 of file rpmtag.h.

Identify how to return the header data type.

Enumerator
RPM_ANY_RETURN_TYPE 
RPM_SCALAR_RETURN_TYPE 
RPM_ARRAY_RETURN_TYPE 
RPM_MAPPING_RETURN_TYPE 
RPM_PROBE_RETURN_TYPE 
RPM_TREE_RETURN_TYPE 
RPM_OPENPGP_RETURN_TYPE 
RPM_X509_RETURN_TYPE 
RPM_ASN1_RETURN_TYPE 
RPM_OPAQUE_RETURN_TYPE 
RPM_MASK_RETURN_TYPE 

Definition at line 96 of file rpmtag.h.

The basic types of data in tags from headers.

Enumerator
RPM_UINT8_TYPE 
RPM_UINT16_TYPE 
RPM_UINT32_TYPE 
RPM_UINT64_TYPE 
RPM_STRING_TYPE 
RPM_BIN_TYPE 
RPM_STRING_ARRAY_TYPE 
RPM_I18NSTRING_TYPE 

Definition at line 27 of file rpmtag.h.

Function Documentation

Header headerCopy ( Header  h)

Duplicate a header.

Parameters
hheader
Returns
new header instance

Definition at line 2194 of file header.c.

References _free(), alloca(), HEADER_IMAGE, headerAddEntry(), headerFini(), headerInit(), headerNew(), headerNext(), headerReload(), _HE_s::p, and rpmDataType_u::ptr.

Referenced by hdrUnload().

Header headerCopyLoad ( const void *  uh)

Make a copy and convert header to in-memory representation.

Parameters
uhon-disk header blob (i.e. with offsets)
Returns
header

Definition at line 1433 of file header.c.

References headerMap().

Referenced by rpmmiNext(), rpmpsmStage(), and rpmReSign().

void headerCopyTags ( Header  headerFrom,
Header  headerTo,
rpmTag tagstocopy 
)

Duplicate tag values from one header into another.

Parameters
headerFromsource header
headerTodestination header
tagstocopyarray of tags that are copied

Definition at line 2211 of file header.c.

References _free(), alloca(), headerGet(), HEADERGET_NOEXTENSION, headerIsEntry(), headerPut(), _HE_s::p, rpmDataType_u::ptr, and _HE_s::tag.

Referenced by packageBinaries(), and parsePreamble().

int headerDel ( Header  h,
HE_t  he,
unsigned int  flags 
)

Remove tag container from header.

Parameters
hheader
hetag container
flags(unused)
Returns
1 on success, 0 on failure

Definition at line 2313 of file header.c.

References headerRemoveEntry(), and _HE_s::tag.

Referenced by addFileToTag(), compressFilelist(), parseDescription(), rpmfcGenerateDepends(), and rpmReSign().

HeaderIterator headerFini ( HeaderIterator  hi)

Destroy header tag container iterator.

Parameters
hiheader tag container iterator
Returns
NULL always

Definition at line 2134 of file header.c.

References _free(), headerIterator_s::h, and headerFree().

Referenced by checkForDuplicates(), hdrKeyList(), headerCopy(), headerMergeLegacySigs(), headerRegenSigHeader(), hsaFini(), initSourceHeader(), rpmpsmStage(), rpmReSign(), and rpmVerifySignatures().

Header headerFree ( Header  h)
int headerGet ( Header  h,
HE_t  he,
unsigned int  flags 
)

Retrieve extension or tag value from a header.

Parameters
hheader
hetag container
flagstag retrieval flags
Returns
1 on success, 0 on failure

Definition at line 2231 of file header.c.

References _HE_s::c, _HE_s::freeData, headerCompoundFormats, HEADERGET_NOEXTENSION, headerGetStats(), intGetEntry(), name, _HE_s::p, rpmDataType_u::ptr, rpmheRealloc(), rpmswEnter(), rpmswExit(), _HE_s::t, _HE_s::tag, tagName(), and xstrcasecmp().

Referenced by addFileToTag(), addReqProv(), addTE(), checkPackageSet(), compressFilelist(), db3Acallback(), debevrTag(), debmd5sumsTag(), ensureOlder(), FDGsqlTag(), FDGxmlTag(), FDGyamlTag(), fiIntersect(), findErases(), formatValue(), fssizesTag(), ftsCacheUpdate(), getSignid(), handleInstInstalledFile(), handleOneTrigger(), handlePreambleTag(), hBlobDigest(), hCopyTag(), hdr_subscript(), hdrColumn(), headerCopyTags(), headerMacrosLoad(), headerMacrosUnload(), headerNEVRA(), hGetColor(), hLoadTID(), i18nTag(), IDTXglob(), IDTXload(), instprefixTag(), isMemberInEntry(), localeTag(), lookupPackage(), main(), makeHDRSignature(), mireSkip(), needswhatTag(), nwlookupTag(), packageBinaries(), parseDescription(), parsePreamble(), parseSpec(), pkgbaseurlTag(), pkgoriginTag(), pkgUnpackagedSubdirs(), PRCOsqlTag(), PRCOxmlTag(), PRCOyamlTag(), printNewSpecfile(), processBinaryFiles(), processPackageFiles(), providePackageNVR(), rdSignature(), readFile(), relocateFileList(), removeSillyDeps(), rpmcliInstall(), rpmdbAdd(), rpmdbExportHR_MIB(), rpmdbRemove(), rpmdsNew(), rpmdsNVRMatchesDep(), rpmdsThis(), rpmfcGenerateScriptletDeps(), rpmfiBuildFNames(), rpmfiNew(), rpmhdrLoadTag(), rpmHeadersIdentical(), rpmInstallSourcePackage(), rpmmiInit(), rpmpsmStage(), rpmReadPackageFile(), rpmReSign(), rpmteChain(), rpmteNew(), rpmtsAddInstallElement(), rpmtsAddUpgrades(), rpmtsCallback(), rpmtsCheckInstalledFiles(), rpmtsEraseDebuginfo(), rpmtsFindPubkey(), rpmtsSanityCheck(), rpmtsSolve(), rpmVerifySignatures(), rpmVersionCompare(), runImmedTriggers(), runInstScript(), runScript(), singleSprintf(), stashSt(), tag2uuidv1(), tag2uuidv5(), timeCheck(), triggercondsTag(), triggertypeTag(), whatneedsTag(), wnlookupTag(), and writeRPM().

const char* headerGetBaseURL ( Header  h)

Return header base URL (e.g path or URL).

Parameters
hheader
Returns
header origin

Definition at line 1212 of file header.c.

References headerToken_s::baseurl.

Referenced by pkgbaseurlTag().

const char* headerGetDigest ( Header  h)

Return digest of origin *.rpm file.

Parameters
hheader
Returns
header digest

Definition at line 1242 of file header.c.

References headerToken_s::digest.

Referenced by pkgdigestTag(), and populateInstallHeader().

rpmuint32_t headerGetEndOff ( Header  h)

Return header ending byte offset.

Parameters
hheader
Returns
header ending byte offset

Definition at line 1302 of file header.c.

References headerToken_s::endoff.

Referenced by headerendoffTag().

uint32_t headerGetInstance ( Header  h)

Return header instance (if from rpmdb).

Parameters
hheader
Returns
header instance

Definition at line 1275 of file header.c.

References headerToken_s::instance.

Referenced by dbinstanceTag(), FDGsqlTag(), handleInstInstalledFile(), headerReload(), PRCOsqlTag(), rpmdbAdd(), rpmgiNext(), rpmpsmStage(), and verifyDependencies().

int headerGetMagic ( Header  h,
unsigned char **  magicp,
size_t *  nmagicp 
)

Return header magic.

Parameters
hheader
*magicpmagic array
*nmagicpno. bytes of magic
Returns
0 always

Definition at line 1162 of file header.c.

References header_magic, and headerToken_s::magic.

Referenced by hBlobDigest(), makeHDRSignature(), rdSignature(), readFile(), rpmcliImportPubkey(), rpmReadHeader(), and rpmWriteHeader().

const char* headerGetOrigin ( Header  h)

Return header origin (e.g path or URL).

Parameters
hheader
Returns
header origin

Definition at line 1184 of file header.c.

References headerToken_s::origin.

Referenced by hdrGetOrigin(), IDTXglob(), pkgoriginTag(), populateInstallHeader(), rpmhdr_getorigin(), rpmhdr_setorigin(), showVerifyPackage(), and verifyDependencies().

const char* headerGetParent ( Header  h)

Return header parent identifier (e.g parent's NVRA).

Parameters
hheader
Returns
header parent

Definition at line 1198 of file header.c.

References headerToken_s::parent.

void* headerGetRpmdb ( Header  h)

Return rpmdb pointer.

Parameters
hheader
Returns
rpmdb pointer

Definition at line 1259 of file header.c.

References headerToken_s::rpmdb.

Referenced by nwlookupTag(), and wnlookupTag().

rpmuint32_t headerGetStartOff ( Header  h)

Return header starting byte offset.

Parameters
hheader
Returns
header starting byte offset

Definition at line 1290 of file header.c.

References headerToken_s::startoff.

Referenced by headerstartoffTag().

struct stat* headerGetStatbuf ( Header  h)

Return header stat(2) buffer (of origin *.rpm file).

Parameters
hheader
Returns
header stat(2) buffer

Definition at line 1228 of file header.c.

References headerToken_s::sb.

Referenced by pkgmtimeTag(), pkgsizeTag(), populateInstallHeader(), and rpmReadHeader().

void* headerGetStats ( Header  h,
int  opx 
)

Return header stats accumulator structure.

Parameters
hheader
opxper-header accumulator index (aka rpmtsOpX)
Returns
per-header accumulator pointer

Definition at line 97 of file header.c.

References headerToken_s::h_getops, headerToken_s::h_loadops, and op.

Referenced by headerGet(), headerLoad(), headerNext(), headerScrub(), and headerUnload().

HeaderIterator headerInit ( Header  h)

Create header tag iterator.

Parameters
hheader
Returns
header tag iterator

Definition at line 2144 of file header.c.

References headerIterator_s::h, headerLink(), headerSort(), headerIterator_s::next_index, and xmalloc.

Referenced by checkForDuplicates(), hdrKeyList(), headerCopy(), headerMergeLegacySigs(), headerRegenSigHeader(), hsaInit(), initSourceHeader(), rpmpsmStage(), rpmReSign(), and rpmVerifySignatures().

int headerIsEntry ( Header  h,
rpmTag  tag 
)
Header headerLink ( Header  h)
Header headerLoad ( void *  uh)
int headerMacrosLoad ( Header  h)
int headerMacrosUnload ( Header  h)
void headerMergeLegacySigs ( Header  h,
const Header  sigh 
)
int headerMod ( Header  h,
HE_t  he,
unsigned int  flags 
)

Modify tag container in header.

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

Parameters
hheader
hetag container
flags(unused)
Returns
1 on success, 0 on failure

Definition at line 2319 of file header.c.

References headerModifyEntry().

Referenced by addReqProv(), relocateFileList(), and removeSillyDeps().

int headerNEVRA ( Header  h,
const char **  np,
const char **  ep,
const char **  vp,
const char **  rp,
const char **  ap 
)

Return name, epoch, version, release, arch strings from header.

Parameters
hheader
Return values
*npname pointer (or NULL)
*epepoch pointer (or NULL)
*vpversion pointer (or NULL)
*rprelease pointer (or NULL)
*aparch pointer (or NULL)
Returns
0 always

Definition at line 162 of file hdrNVR.c.

References _free(), alloca(), _HE_s::c, headerGet(), headerIsEntry(), _HE_s::p, rpmDataType_u::ptr, RPM_STRING_TYPE, RPMTAG_ARCH, RPMTAG_NAME, RPMTAG_RELEASE, RPMTAG_SOURCERPM, RPMTAG_VERSION, rpmDataType_u::str, _HE_s::t, _HE_s::tag, and xstrdup().

Referenced by doSetupMacro(), genSourceRpmName(), hGetNVRA(), providePackageNVR(), rpmdsNVRMatchesDep(), rpmdsThis(), and writeRPM().

Header headerNew ( void  )
int headerNext ( HeaderIterator  hi,
HE_t  he,
unsigned int  flags 
)
int headerPut ( Header  h,
HE_t  he,
unsigned int  flags 
)
Header headerRegenSigHeader ( const Header  h,
int  noArchiveSize 
)

Regenerate signature header.

Todo:
Remove headerSort() through headerInitIterator() modifies h.
Parameters
hheader
noArchiveSizedon't copy archive size tag (pre rpm-4.1)
Returns
regenerated signature header

Definition at line 313 of file hdrNVR.c.

References _free(), alloca(), HEADER_SIGBASE, HEADER_TAGBASE, headerFini(), headerInit(), headerIsEntry(), headerNew(), headerNext(), headerPut(), _HE_s::p, rpmDataType_u::ptr, RPMSIGTAG_MD5, RPMSIGTAG_PAYLOADSIZE, RPMSIGTAG_SIZE, RPMTAG_ARCHIVESIZE, RPMTAG_DSAHEADER, RPMTAG_ECDSAHEADER, RPMTAG_RSAHEADER, RPMTAG_SHA1HEADER, RPMTAG_SIGMD5, RPMTAG_SIGSIZE, and _HE_s::tag.

Referenced by rpmpsmStage().

Header headerReload ( Header  h,
rpmTag  tag 
)

Convert header to on-disk representation, and then reload.

This is used to insure that all header data is in a single contiguous memory allocation.

Parameters
hheader (with pointers)
tagregion tag
Returns
on-disk header (with offsets)

< Is 1st header region mmap'd?

< Is 1st header region rdonly?

< Is 1st header region allocated?

Definition at line 1314 of file header.c.

References _free(), headerToken_s::baseurl, headerToken_s::blob, headerToken_s::bloblen, headerToken_s::digest, ENTRY_IS_REGION, headerToken_s::flags, HEADER_IMMUTABLE, HEADER_SIGNATURES, HEADERFLAG_ALLOCATED, HEADERFLAG_MAPPED, HEADERFLAG_RDONLY, headerFree(), headerGetInstance(), headerLoad(), headerSetBaseURL(), headerSetDigest(), headerSetInstance(), headerSetOrigin(), headerSetParent(), headerSetRpmdb(), headerUnload(), headerToken_s::index, indexEntry_s::info, headerToken_s::origin, headerToken_s::parent, headerToken_s::rpmdb, headerToken_s::sb, entryInfo_s::tag, and xstrdup().

Referenced by headerCopy(), rpmcliImportPubkey(), rpmpsmStage(), rpmReSign(), and writeRPM().

int headerSetBaseURL ( Header  h,
const char *  baseurl 
)

Store header base URL (e.g path or URL).

Parameters
hheader
baseurlnew header baseurl
Returns
0 always

Definition at line 1219 of file header.c.

References _free(), headerToken_s::baseurl, and xstrdup().

Referenced by headerReload(), and rpmrepoReadHeader().

int headerSetDigest ( Header  h,
const char *  digest 
)

Store digest of origin *.rpm file.

Parameters
hheader
digestnew header digest
Returns
0 always

Definition at line 1249 of file header.c.

References _free(), headerToken_s::digest, and xstrdup().

Referenced by headerReload(), and rpmrepoReadHeader().

rpmuint32_t headerSetEndOff ( Header  h,
rpmuint32_t  endoff 
)

Store header ending byte offset.

Parameters
hheader
endoffnew header ending byte offset
Returns
0 always

Definition at line 1307 of file header.c.

References headerToken_s::endoff.

Referenced by rdSignature(), and rpmReadHeader().

uint32_t headerSetInstance ( Header  h,
uint32_t  instance 
)

Store header instance (e.g path or URL).

Parameters
hheader
instancenew header instance
Returns
0 always

Definition at line 1280 of file header.c.

References headerToken_s::instance.

Referenced by headerReload(), rpmdbAdd(), rpmmiNext(), rpmpsmStage(), and rpmrepoReadHeader().

int headerSetMagic ( Header  h,
unsigned char *  magic,
size_t  nmagic 
)

Store header magic.

Parameters
hheader
magicmagic array
nmagicno. bytes of magic
Returns
0 always

Definition at line 1172 of file header.c.

References headerToken_s::magic.

int headerSetOrigin ( Header  h,
const char *  origin 
)

Store header origin (e.g path or URL).

Parameters
hheader
originnew header origin
Returns
0 always

Definition at line 1189 of file header.c.

References _free(), headerToken_s::origin, and xstrdup().

Referenced by hdrSetOrigin(), headerReload(), rpmhdr_setorigin(), rpmmiNext(), and rpmReadHeader().

int headerSetParent ( Header  h,
const char *  parent 
)

Store header parent (e.g parent's NVRA).

Parameters
hheader
parentnew header parent
Returns
0 always

Definition at line 1203 of file header.c.

References _free(), headerToken_s::parent, and xstrdup().

Referenced by headerReload().

void* headerSetRpmdb ( Header  h,
void *  rpmdb 
)

Store rpmdb pointer.

Parameters
hheader
rpmdbnew rpmdb pointer (or NULL to unset)
Returns
NULL always

Definition at line 1266 of file header.c.

References headerToken_s::rpmdb.

Referenced by headerReload(), and showQueryPackage().

rpmuint32_t headerSetStartOff ( Header  h,
rpmuint32_t  startoff 
)

Store header starting byte offset.

Parameters
hheader
startoffnew header starting byte offset
Returns
0 always

Definition at line 1295 of file header.c.

References headerToken_s::startoff.

Referenced by rdSignature(), and rpmReadHeader().

int headerSetStatbuf ( Header  h,
struct stat *  st 
)

Copy into header stat(2) buffer (of origin *.rpm file).

Parameters
hheader
stnew header stat(2) buffer
Returns
0 always

Definition at line 1235 of file header.c.

References headerToken_s::sb.

size_t headerSizeof ( Header  h)

Return size of on-disk header representation in bytes.

Parameters
hheader
Returns
size of on-disk header

< Header came from legacy source?

Definition at line 266 of file header.c.

References entryInfo_s::count, ENTRY_IS_REGION, headerToken_s::flags, header_magic, HEADERFLAG_LEGACY, headerSort(), i, headerToken_s::index, indexEntry_s::info, indexEntry_s::length, entryInfo_s::offset, size, entryInfo_s::type, and type.

Referenced by rdSignature(), readFile(), and wrSignature().

char* headerSprintf ( Header  h,
const char *  fmt,
headerTagTableEntry  tags,
headerSprintfExtension  exts,
errmsg_t errmsg 
)
Header headerUnlink ( Header  h)

Dereference a header instance.

Parameters
hheader
Returns
NULL on last dereference
void* headerUnload ( Header  h,
size_t *  lenp 
)

headerUnload.

Parameters
hheader
Return values
*lenpno. bytes in unloaded header blob
Returns
unloaded header blob (NULL on error)

< Header came from legacy source?

< Header came from legacy source?

< Are header entries sorted?

Definition at line 648 of file header.c.

References _free(), entryInfo_s::count, indexEntry_s::data, ENTRY_IS_REGION, headerToken_s::flags, hdrchkData, hdrchkTags, HEADERFLAG_LEGACY, HEADERFLAG_SORTED, headerGetStats(), headerSort(), headerUnsort(), i, headerToken_s::index, headerToken_s::indexUsed, indexEntry_s::info, len, indexEntry_s::length, entryInfo_s::offset, indexEntry_s::rdlen, rpmswEnter(), rpmswExit(), entryInfo_s::tag, entryInfo_s::type, type, and xmalloc.

Referenced by hdrUnload(), headerReload(), miFreeHeader(), rpmcliImportPubkey(), rpmdbAdd(), rpmWriteHeader(), showVerifyPackage(), and writeRPM().

rpmuint32_t hGetColor ( Header  h)

Return header color.

Parameters
hheader
Returns
header color

Definition at line 223 of file hdrNVR.c.

References _free(), alloca(), _HE_s::c, headerGet(), i, _HE_s::p, rpmDataType_u::ptr, RPMTAG_FILECOLORS, _HE_s::tag, and rpmDataType_u::ui32p.

Referenced by rpmtsAddInstallElement(), rpmtsAddObsoletes(), and rpmtsAddUpgrades().

void rpmDisplayQueryTags ( FILE *  fp,
headerTagTableEntry  _rpmTagTable,
headerSprintfExtension  _rpmHeaderFormats 
)

Display list of tags that can be used in –queryformat.

Parameters
fpfile handle to use for display (NULL uses stdout)
_rpmTagTablerpm tag table (NULL uses rpmTagTable)
_rpmHeaderFormatsrpm tag extensions & formats (NULL uses headerCompoundFormats)

Definition at line 5282 of file hdrfmt.c.

References _rpmHeaderFormats, headerCompoundFormats, RPM_ARRAY_RETURN_TYPE, RPM_ASN1_RETURN_TYPE, RPM_MAPPING_RETURN_TYPE, RPM_MASK_TYPE, RPM_MAX_TYPE, RPM_OPAQUE_RETURN_TYPE, RPM_OPENPGP_RETURN_TYPE, RPM_PROBE_RETURN_TYPE, RPM_TREE_RETURN_TYPE, RPM_X509_RETURN_TYPE, rpmIsVerbose, rpmTagTable, and tagValue().

Referenced by rpmcliAllArgCallback().

char* tagCanonicalize ( const char *  s)

Canonicalize a rpmTag string.

Parameters
sstring
Returns
canonicalized string

Definition at line 451 of file tagname.c.

Referenced by fillOutMainPackage(), findPreambleTag(), and isPart().

void tagClean ( headerTagIndices  _rpmTags)

Free memory in header tag indices.

Parameters
_rpmTagsheader tag indices (NULL uses rpmTags)

Definition at line 461 of file tagname.c.

References _free(), argvFree(), and rpmTags.

Referenced by main(), and rpmcliFini().

rpmTag tagGenerate ( const char *  s)

Generate a tag from arbitrary string.

Parameters
sstring
Returns
generated tag value

Definition at line 456 of file tagname.c.

Referenced by fillOutMainPackage(), findPreambleTag(), and isPart().

const char* tagName ( rpmTag  tag)
tagStore_t tagStoreFree ( tagStore_t  dbiTags,
size_t  dbiNTags 
)

Destroy tagStore array.

Parameters
dbiTagsdbi tag storage
dbiNTagsno. of dbi tags
Returns
NULL always

Definition at line 473 of file tagname.c.

References _free(), i, rpmiobFree(), and str.

Referenced by dbiTagsInit(), rpmdbClose(), and specFini().

unsigned int tagType ( rpmTag  tag)

Return tag data type from value.

Todo:
Return rpmTagType-like, not unsigned int. There's no clear typedef yet.
Parameters
tagtag value
Returns
tag data type, 0 on not found.

Definition at line 441 of file tagname.c.

Referenced by formatValue(), myTagName(), rpmmiInit(), sql_bind_key(), sql_copen(), and sql_initDB().

rpmTag tagValue ( const char *  tagstr)

Variable Documentation

headerSprintfExtension headerCompoundFormats

Supported default header extension/tag output formats.

Definition at line 5278 of file hdrfmt.c.

Referenced by headerGet(), headerSprintf(), queryHeader(), rpmDisplayQueryTags(), and tagLoadArgv().

headerSprintfExtension headerDefaultFormats

Supported default header tag output formats.

Definition at line 328 of file hdrfmt.c.

Definition at line 184 of file tagname.c.

Referenced by findPreambleTag(), isPart(), and tagClean().

headerTagTableEntry rpmTagTable

Automatically generated table of tag name/value pairs.

Definition at line 239 of file tagtbl.c.

Referenced by addRpmTags(), headerSprintf(), myTagName(), myTagValue(), rpmDisplayQueryTags(), rpmpsmStage(), tagLoadArgv(), and tagLoadIndex().

int rpmTagTableSize

Number of entries in rpmTagTable.

Definition at line 242 of file tagtbl.c.

Referenced by tagLoadIndex().