41 #define RPM_MIN_TYPE 2
42 #define RPM_MAX_TYPE 9
43 #define RPM_MASK_TYPE 0x0000ffff
116 #define HEADER_IMAGE 61
117 #define HEADER_SIGNATURES 62
118 #define HEADER_IMMUTABLE 63
119 #define HEADER_REGIONS 64
120 #define HEADER_I18NTABLE 100
121 #define HEADER_SIGBASE 256
122 #define HEADER_TAGBASE 1000
160 #define RPMTAG_PKGID RPMTAG_SIGMD5
170 #define RPMTAG_HDRID RPMTAG_SHA1HEADER
173 #define RPMTAG_N RPMTAG_NAME
175 #define RPMTAG_V RPMTAG_VERSION
177 #define RPMTAG_R RPMTAG_RELEASE
179 #define RPMTAG_E RPMTAG_EPOCH
214 #define RPMTAG_FILEMD5S RPMTAG_FILEDIGESTS
231 #define RPMTAG_PROVIDES RPMTAG_PROVIDENAME
232 #define RPMTAG_P RPMTAG_PROVIDENAME
235 #define RPMTAG_REQUIRES RPMTAG_REQUIRENAME
241 #define RPMTAG_CONFLICTS RPMTAG_CONFLICTNAME
242 #define RPMTAG_C RPMTAG_CONFLICTNAME
272 #define RPMTAG_OBSOLETES RPMTAG_OBSOLETENAME
273 #define RPMTAG_O RPMTAG_OBSOLETENAME
348 #define RPMTAG_SUGGESTS RPMTAG_SUGGESTSNAME
352 #define RPMTAG_ENHANCES RPMTAG_ENHANCESNAME
357 #define RPMTAG_SVNID RPMTAG_CVSID
413 #define RPMTAG_D RPMTAG_DISTEPOCH
444 #define RPMTAG_EXTERNAL_TAG 1000000
477 #define RPMDBI_PACKAGES (rpmTag)0
478 #define RPMDBI_DEPCACHE (rpmTag)1
480 #define RPMDBI_ADDED (rpmTag)3
481 #define RPMDBI_REMOVED (rpmTag)4
482 #define RPMDBI_AVAILABLE (rpmTag)5
483 #define RPMDBI_HDLIST (rpmTag)6
484 #define RPMDBI_ARGLIST (rpmTag)7
485 #define RPMDBI_FTSWALK (rpmTag)8
486 #define RPMDBI_SEQNO (rpmTag)9
487 #define RPMDBI_BTREE (rpmTag)10
488 #define RPMDBI_HASH (rpmTag)11
489 #define RPMDBI_QUEUE (rpmTag)12
490 #define RPMDBI_RECNO (rpmTag)13
491 #define RPMDBI_HEAP (rpmTag)14
493 #define RPMDBI_REPACKAGES (rpmTag)16
494 #define RPMDBI_REPOSITORY (rpmTag)17
525 #if defined(_RPMTAG_INTERNAL)
532 struct headerTagTableEntry_s {
566 extern headerTagIndices
rpmTags;
569 #if defined(_RPMTAG_INTERNAL)
573 struct headerTagIndices_s {
575 int (*loadIndex) (headerTagTableEntry ** ipp,
size_t * np,
576 int (*cmp) (
const void * avp,
const void * bvp))
579 headerTagTableEntry * byName;
581 int (*byNameCmp) (
const void * avp,
const void * bvp)
586 headerTagTableEntry * byValue;
588 int (*byValueCmp) (
const void * avp,
const void * bvp)
590 const char * (*tagName) (rpmTag
value)
600 char * (*tagCanonicalize) (
const char *
s)
631 rpmTag
tagValue(
const char * tagstr)
666 tagStore_t
tagStoreFree(tagStore_t dbiTags,
size_t dbiNTags)
669 #if defined(_RPMTAG_INTERNAL)
672 typedef enum headerSprintfExtensionType_e {
677 } headerSprintfExtensionType;
686 typedef char * (*headerTagFormatFunction) (HE_t he,
const char **
av)
697 typedef int (*headerTagTagFunction) (Header
h, HE_t he)
704 struct headerSprintfExtension_s {
705 headerSprintfExtensionType
type;
711 headerTagFormatFunction fmtFunction;
712 headerTagTagFunction tagFunction;
713 headerSprintfExtension * more;
756 headerTagTableEntry tags,
757 headerSprintfExtension exts,
773 #define HEADERGET_NOEXTENSION (1 << 0)
774 #define HEADERGET_NOI18NSTRING (1 << 1)
848 #define headerLink(_h) \
849 ((Header)rpmioLinkPoolItem((rpmioItem)(_h), __FUNCTION__, __FILE__, __LINE__))
859 #define headerUnlink(_h) \
860 ((Header)rpmioUnlinkPoolItem((rpmioItem)(_h), __FUNCTION__, __FILE__, __LINE__))
870 #define headerFree(_h) \
871 ((Header)rpmioFreePoolItem((rpmioItem)(_h), __FUNCTION__, __FILE__, __LINE__))
952 #if defined(SUPPORT_I18NSTRING_TYPE)
973 int headerAddI18NString(Header h, rpmTag
tag,
const char *
string,
984 void headerCopyTags(Header headerFrom, Header headerTo, rpmTag * tagstocopy)
995 int headerGetMagic( Header h,
unsigned char **magicp,
size_t *nmagicp)
1005 int headerSetMagic( Header h,
unsigned char * magic,
size_t nmagic)
int headerMacrosUnload(Header h)
Define per-header macros.
headerTagTableEntry rpmTagTable
Automatically generated table of tag name/value pairs.
struct rpmdb_s * rpmdb
Database of headers and tag value indices.
static PyObject *int type
rpmuint32_t hGetColor(Header h)
Return header color.
#define HEADER_SIGNATURES
static struct headerTagTableEntry_s _rpmTagTable[]
#define HEADER_IMAGE
Header private tags.
unsigned short rpmuint16_t
rpmSigTag_e
Tags found in signature header from package.
unsigned char rpmuint8_t
Private int typedefs to avoid C99 portability issues.
rpmTag tagValue(const char *tagstr)
Return tag value from name.
rpmTag tagGenerate(const char *s)
Generate a tag from arbitrary string.
unsigned int tagType(rpmTag tag)
Return tag data type from value.
unsigned long long rpmuint64_t
const char * tagName(rpmTag tag)
Return tag name from value.
int headerMacrosLoad(Header h)
Define per-header macros.
static struct headerTagIndices_s _rpmTags
struct tagStore_s * tagStore_t
struct headerTagTableEntry_s * headerTagTableEntry
int rpmTagTableSize
Number of entries in rpmTagTable.
char * tagCanonicalize(const char *s)
Canonicalize a rpmTag string.
void rpmDisplayQueryTags(FILE *fp, headerTagTableEntry _rpmTagTable, headerSprintfExtension _rpmHeaderFormats)
Display list of tags that can be used in –queryformat.
tagStore_t tagStoreFree(tagStore_t dbiTags, size_t dbiNTags)
Destroy tagStore array.
int
Save source and expand field into target.
const unsigned char * digest