rpm  5.4.15
rpmtag.h
Go to the documentation of this file.
1 #ifndef H_RPMTAG
2 #define H_RPMTAG
3 
8 #include <stdint.h> /* XXX unint32_t typedef */
9 #include <rpmiotypes.h>
10 #include <rpmsw.h>
11 
12 #ifdef __cplusplus
13 extern "C" {
14 #endif
15 
18 typedef const char * errmsg_t;
19 
22 typedef /*@abstract@*/ /*@refcounted@*/ struct headerToken_s * Header;
23 
28  /* RPM_NULL_TYPE = 0 - never been used. */
29  /* RPM_CHAR_TYPE = 1 - never been used, same as RPM_UINT8_TYPE. */
38  /* RPM_ASN1_TYPE = 10 - never been used. */
39  /* RPM_OPENPGP_TYPE= 11 - never been used. */
40 };
41 #define RPM_MIN_TYPE 2
42 #define RPM_MAX_TYPE 9
43 #define RPM_MASK_TYPE 0x0000ffff
44 
47 typedef enum rpmTagType_e rpmTagType;
51 typedef union rpmDataType_u rpmTagData;
59 typedef struct _HE_s * HE_t;
63 /*@-typeuse -fielduse@*/
64 #if !defined(SWIG)
66 /*@null@*/
67  void * ptr;
72 /*@relnull@*/
73  const char * str;
74  unsigned char * blob;
75  const char ** argv;
76  HE_t he;
77 };
78 #endif
79 /*@=typeuse =fielduse@*/
80 
81 /*@=typeuse =fielduse@*/
84 /*@-enummemuse -typeuse @*/
85 typedef enum rpmSubTagType_e {
90 /*@=enummemuse =typeuse @*/
91 
95 /*@-enummemuse -typeuse @*/
96 typedef enum rpmTagReturnType_e {
98  RPM_SCALAR_RETURN_TYPE = 0x00010000,
99  RPM_ARRAY_RETURN_TYPE = 0x00020000,
101  /* 0x00080000 */
102  RPM_PROBE_RETURN_TYPE = 0x00100000,
103  RPM_TREE_RETURN_TYPE = 0x00200000,
105  RPM_X509_RETURN_TYPE = 0x00800000,
106  RPM_ASN1_RETURN_TYPE = 0x01000000,
108  RPM_MASK_RETURN_TYPE = 0xffff0000
110 /*@=enummemuse =typeuse @*/
111 
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
123 
126 typedef /*@abstract@*/ struct headerIterator_s * HeaderIterator;
127 
130 typedef /*@abstract@*/ struct headerTagIndices_s * headerTagIndices;
131 
134 typedef /*@abstract@*/ const struct headerSprintfExtension_s * headerSprintfExtension;
135 
140 enum rpmTag_e {
141 
145 /*@-enummemuse@*/
149 /*@=enummemuse@*/
150 
151 /* Retrofit (and uniqify) signature tags for use by tagName() and rpmQuery. */
152 /* the md5 sum was broken *twice* on big endian machines */
153 /* XXX 2nd underscore prevents tagTable generation */
156  RPMTAG_SIGLEMD5_1 = RPMTAG_SIG_BASE+2, /* internal - obsolete */
158  RPMTAG_SIGLEMD5_2 = RPMTAG_SIG_BASE+4, /* x internal - obsolete */
160 #define RPMTAG_PKGID RPMTAG_SIGMD5 /* x */
162  RPMTAG_SIGPGP5 = RPMTAG_SIG_BASE+7, /* internal - obsolete */
163 
164  RPMTAG_BADSHA1_1 = RPMTAG_SIG_BASE+8, /* internal - obsolete */
165  RPMTAG_BADSHA1_2 = RPMTAG_SIG_BASE+9, /* internal - obsolete */
170 #define RPMTAG_HDRID RPMTAG_SHA1HEADER /* s */
172 
173  RPMTAG_NAME = 1000, /* s */
174 #define RPMTAG_N RPMTAG_NAME /* s */
175  RPMTAG_VERSION = 1001, /* s */
176 #define RPMTAG_V RPMTAG_VERSION /* s */
177  RPMTAG_RELEASE = 1002, /* s */
178 #define RPMTAG_R RPMTAG_RELEASE /* s */
179  RPMTAG_EPOCH = 1003, /* i */
180 #define RPMTAG_E RPMTAG_EPOCH /* i */
181  RPMTAG_SUMMARY = 1004, /* s */
182  RPMTAG_DESCRIPTION = 1005, /* s */
183  RPMTAG_BUILDTIME = 1006, /* i */
184  RPMTAG_BUILDHOST = 1007, /* s */
185  RPMTAG_INSTALLTIME = 1008, /* i[] */
186  RPMTAG_SIZE = 1009, /* i */
187  RPMTAG_DISTRIBUTION = 1010, /* s */
188  RPMTAG_VENDOR = 1011, /* s */
189  RPMTAG_GIF = 1012, /* x */
190  RPMTAG_XPM = 1013, /* x */
191  RPMTAG_LICENSE = 1014, /* s */
192  RPMTAG_PACKAGER = 1015, /* s */
193  RPMTAG_GROUP = 1016, /* s */
194 /*@-enummemuse@*/
195  RPMTAG_CHANGELOG = 1017, /* s[] internal */
196 /*@=enummemuse@*/
197  RPMTAG_SOURCE = 1018, /* s[] */
198  RPMTAG_PATCH = 1019, /* s[] */
199  RPMTAG_URL = 1020, /* s */
200  RPMTAG_OS = 1021, /* s legacy used int */
201  RPMTAG_ARCH = 1022, /* s legacy used int */
202  RPMTAG_PREIN = 1023, /* s */
203  RPMTAG_POSTIN = 1024, /* s */
204  RPMTAG_PREUN = 1025, /* s */
205  RPMTAG_POSTUN = 1026, /* s */
206  RPMTAG_OLDFILENAMES = 1027, /* s[] obsolete */
207  RPMTAG_FILESIZES = 1028, /* i[] */
208  RPMTAG_FILESTATES = 1029, /* c[] */
209  RPMTAG_FILEMODES = 1030, /* h[] */
210  RPMTAG_FILEUIDS = 1031, /* i[] internal */
211  RPMTAG_FILEGIDS = 1032, /* i[] internal */
212  RPMTAG_FILERDEVS = 1033, /* h[] */
213  RPMTAG_FILEMTIMES = 1034, /* i[] */
214  RPMTAG_FILEDIGESTS = 1035, /* s[] */
215 #define RPMTAG_FILEMD5S RPMTAG_FILEDIGESTS /* s[] */
216  RPMTAG_FILELINKTOS = 1036, /* s[] */
217  RPMTAG_FILEFLAGS = 1037, /* i[] */
218 /*@-enummemuse@*/
219  RPMTAG_ROOT = 1038, /* internal - obsolete */
220 /*@=enummemuse@*/
221  RPMTAG_FILEUSERNAME = 1039, /* s[] */
222  RPMTAG_FILEGROUPNAME = 1040, /* s[] */
223 /*@-enummemuse@*/
224  RPMTAG_EXCLUDE = 1041, /* internal - obsolete */
225  RPMTAG_EXCLUSIVE = 1042, /* internal - obsolete */
226 /*@=enummemuse@*/
227  RPMTAG_ICON = 1043, /* x */
228  RPMTAG_SOURCERPM = 1044, /* s */
229  RPMTAG_FILEVERIFYFLAGS = 1045, /* i[] */
230  RPMTAG_ARCHIVESIZE = 1046, /* i */
231  RPMTAG_PROVIDENAME = 1047, /* s[] */
232 #define RPMTAG_PROVIDES RPMTAG_PROVIDENAME /* s[] */
233 #define RPMTAG_P RPMTAG_PROVIDENAME /* s[] */
234  RPMTAG_REQUIREFLAGS = 1048, /* i[] */
235  RPMTAG_REQUIRENAME = 1049, /* s[] */
236 #define RPMTAG_REQUIRES RPMTAG_REQUIRENAME /* s[] */
237  RPMTAG_REQUIREVERSION = 1050, /* s[] */
238  RPMTAG_NOSOURCE = 1051, /* i[] internal */
239  RPMTAG_NOPATCH = 1052, /* i[] internal */
240  RPMTAG_CONFLICTFLAGS = 1053, /* i[] */
241  RPMTAG_CONFLICTNAME = 1054, /* s[] */
242 #define RPMTAG_CONFLICTS RPMTAG_CONFLICTNAME /* s[] */
243 #define RPMTAG_C RPMTAG_CONFLICTNAME /* s[] */
244  RPMTAG_CONFLICTVERSION = 1055, /* s[] */
245  RPMTAG_DEFAULTPREFIX = 1056, /* s internal - deprecated */
246  RPMTAG_BUILDROOT = 1057, /* s internal */
247  RPMTAG_INSTALLPREFIX = 1058, /* s internal - deprecated */
248  RPMTAG_EXCLUDEARCH = 1059, /* s[] */
249  RPMTAG_EXCLUDEOS = 1060, /* s[] */
250  RPMTAG_EXCLUSIVEARCH = 1061, /* s[] */
251  RPMTAG_EXCLUSIVEOS = 1062, /* s[] */
252  RPMTAG_AUTOREQPROV = 1063, /* s internal */
253  RPMTAG_RPMVERSION = 1064, /* s */
254  RPMTAG_TRIGGERSCRIPTS = 1065, /* s[] */
255  RPMTAG_TRIGGERNAME = 1066, /* s[] */
256  RPMTAG_TRIGGERVERSION = 1067, /* s[] */
257  RPMTAG_TRIGGERFLAGS = 1068, /* i[] */
258  RPMTAG_TRIGGERINDEX = 1069, /* i[] */
259  RPMTAG_VERIFYSCRIPT = 1079, /* s */
260  RPMTAG_CHANGELOGTIME = 1080, /* i[] */
261  RPMTAG_CHANGELOGNAME = 1081, /* s[] */
262  RPMTAG_CHANGELOGTEXT = 1082, /* s[] */
263 /*@-enummemuse@*/
264  RPMTAG_BROKENMD5 = 1083, /* internal - obsolete */
265 /*@=enummemuse@*/
266  RPMTAG_PREREQ = 1084, /* internal */
267  RPMTAG_PREINPROG = 1085, /* s */
268  RPMTAG_POSTINPROG = 1086, /* s */
269  RPMTAG_PREUNPROG = 1087, /* s */
270  RPMTAG_POSTUNPROG = 1088, /* s */
271  RPMTAG_BUILDARCHS = 1089, /* s[] */
272  RPMTAG_OBSOLETENAME = 1090, /* s[] */
273 #define RPMTAG_OBSOLETES RPMTAG_OBSOLETENAME /* s[] */
274 #define RPMTAG_O RPMTAG_OBSOLETENAME /* s[] */
275  RPMTAG_VERIFYSCRIPTPROG = 1091, /* s */
276  RPMTAG_TRIGGERSCRIPTPROG = 1092, /* s[] */
277  RPMTAG_DOCDIR = 1093, /* internal */
278  RPMTAG_COOKIE = 1094, /* s */
279  RPMTAG_FILEDEVICES = 1095, /* i[] */
280  RPMTAG_FILEINODES = 1096, /* i[] */
281  RPMTAG_FILELANGS = 1097, /* s[] */
282  RPMTAG_PREFIXES = 1098, /* s[] */
283  RPMTAG_INSTPREFIXES = 1099, /* s[] */
284  RPMTAG_TRIGGERIN = 1100, /* internal */
285  RPMTAG_TRIGGERUN = 1101, /* internal */
286  RPMTAG_TRIGGERPOSTUN = 1102, /* internal */
287  RPMTAG_AUTOREQ = 1103, /* internal */
288  RPMTAG_AUTOPROV = 1104, /* internal */
289 /*@-enummemuse@*/
290  RPMTAG_CAPABILITY = 1105, /* i legacy - obsolete */
291 /*@=enummemuse@*/
292  RPMTAG_SOURCEPACKAGE = 1106, /* i legacy - obsolete */
293 /*@-enummemuse@*/
294  RPMTAG_OLDORIGFILENAMES = 1107, /* internal - obsolete */
295 /*@=enummemuse@*/
296  RPMTAG_BUILDPREREQ = 1108, /* internal */
297  RPMTAG_BUILDREQUIRES = 1109, /* internal */
298  RPMTAG_BUILDCONFLICTS = 1110, /* internal */
299 /*@-enummemuse@*/
300  RPMTAG_BUILDMACROS = 1111, /* s[] srpms only */
301 /*@=enummemuse@*/
302  RPMTAG_PROVIDEFLAGS = 1112, /* i[] */
303  RPMTAG_PROVIDEVERSION = 1113, /* s[] */
304  RPMTAG_OBSOLETEFLAGS = 1114, /* i[] */
305  RPMTAG_OBSOLETEVERSION = 1115, /* s[] */
306  RPMTAG_DIRINDEXES = 1116, /* i[] */
307  RPMTAG_BASENAMES = 1117, /* s[] */
308  RPMTAG_DIRNAMES = 1118, /* s[] */
309  RPMTAG_ORIGDIRINDEXES = 1119, /* i[] relocation */
310  RPMTAG_ORIGBASENAMES = 1120, /* s[] relocation */
311  RPMTAG_ORIGDIRNAMES = 1121, /* s[] relocation */
312  RPMTAG_OPTFLAGS = 1122, /* s */
313  RPMTAG_DISTURL = 1123, /* s */
314  RPMTAG_PAYLOADFORMAT = 1124, /* s */
315  RPMTAG_PAYLOADCOMPRESSOR = 1125, /* s */
316  RPMTAG_PAYLOADFLAGS = 1126, /* s */
317  RPMTAG_INSTALLCOLOR = 1127, /* i transaction color when installed */
318  RPMTAG_INSTALLTID = 1128, /* i[] */
319  RPMTAG_REMOVETID = 1129, /* i[] */
320 /*@-enummemuse@*/
321  RPMTAG_SHA1RHN = 1130, /* internal - obsolete */
322 /*@=enummemuse@*/
323  RPMTAG_RHNPLATFORM = 1131, /* s deprecated */
324  RPMTAG_PLATFORM = 1132, /* s */
325  RPMTAG_PATCHESNAME = 1133, /* s[] deprecated placeholder (SuSE) */
326  RPMTAG_PATCHESFLAGS = 1134, /* i[] deprecated placeholder (SuSE) */
327  RPMTAG_PATCHESVERSION = 1135, /* s[] deprecated placeholder (SuSE) */
328  RPMTAG_CACHECTIME = 1136, /* i rpmcache(8) only */
329  RPMTAG_CACHEPKGPATH = 1137, /* s rpmcache(8) only */
330  RPMTAG_CACHEPKGSIZE = 1138, /* i rpmcache(8) only */
331  RPMTAG_CACHEPKGMTIME = 1139, /* i rpmcache(8) only */
332  RPMTAG_FILECOLORS = 1140, /* i[] */
333  RPMTAG_FILECLASS = 1141, /* i[] */
334  RPMTAG_CLASSDICT = 1142, /* s[] */
335  RPMTAG_FILEDEPENDSX = 1143, /* i[] */
336  RPMTAG_FILEDEPENDSN = 1144, /* i[] */
337  RPMTAG_DEPENDSDICT = 1145, /* i[] */
338  RPMTAG_SOURCEPKGID = 1146, /* x */
339  RPMTAG_FILECONTEXTS = 1147, /* s[] */
340  RPMTAG_FSCONTEXTS = 1148, /* s[] extension */
341  RPMTAG_RECONTEXTS = 1149, /* s[] extension */
342  RPMTAG_POLICIES = 1150, /* s[] selinux *.te policy file. */
343  RPMTAG_PRETRANS = 1151, /* s */
344  RPMTAG_POSTTRANS = 1152, /* s */
345  RPMTAG_PRETRANSPROG = 1153, /* s */
346  RPMTAG_POSTTRANSPROG = 1154, /* s */
347  RPMTAG_DISTTAG = 1155, /* s */
348  RPMTAG_SUGGESTSNAME = 1156, /* s[] extension */
349 #define RPMTAG_SUGGESTS RPMTAG_SUGGESTSNAME /* s[] */
350  RPMTAG_SUGGESTSVERSION = 1157, /* s[] extension */
351  RPMTAG_SUGGESTSFLAGS = 1158, /* i[] extension */
352  RPMTAG_ENHANCESNAME = 1159, /* s[] extension placeholder */
353 #define RPMTAG_ENHANCES RPMTAG_ENHANCESNAME /* s[] */
354  RPMTAG_ENHANCESVERSION = 1160, /* s[] extension placeholder */
355  RPMTAG_ENHANCESFLAGS = 1161, /* i[] extension placeholder */
356  RPMTAG_PRIORITY = 1162, /* i[] extension placeholder */
357  RPMTAG_CVSID = 1163, /* s */
358 #define RPMTAG_SVNID RPMTAG_CVSID /* s */
359  RPMTAG_BLINKPKGID = 1164, /* s[] */
360  RPMTAG_BLINKHDRID = 1165, /* s[] */
361  RPMTAG_BLINKNEVRA = 1166, /* s[] */
362  RPMTAG_FLINKPKGID = 1167, /* s[] */
363  RPMTAG_FLINKHDRID = 1168, /* s[] */
364  RPMTAG_FLINKNEVRA = 1169, /* s[] */
365  RPMTAG_PACKAGEORIGIN = 1170, /* s */
366  RPMTAG_TRIGGERPREIN = 1171, /* internal */
367  RPMTAG_BUILDSUGGESTS = 1172, /* internal */
368  RPMTAG_BUILDENHANCES = 1173, /* internal */
369  RPMTAG_SCRIPTSTATES = 1174, /* i[] scriptlet exit codes */
370  RPMTAG_SCRIPTMETRICS = 1175, /* i[] scriptlet execution times */
371  RPMTAG_BUILDCPUCLOCK = 1176, /* i */
372  RPMTAG_FILEDIGESTALGOS = 1177, /* i[] */
373  RPMTAG_VARIANTS = 1178, /* s[] */
374  RPMTAG_XMAJOR = 1179, /* i */
375  RPMTAG_XMINOR = 1180, /* i */
376  RPMTAG_REPOTAG = 1181, /* s */
377  RPMTAG_KEYWORDS = 1182, /* s[] */
378  RPMTAG_BUILDPLATFORMS = 1183, /* s[] */
379  RPMTAG_PACKAGECOLOR = 1184, /* i */
380  RPMTAG_PACKAGEPREFCOLOR = 1185, /* i (unimplemented) */
381  RPMTAG_XATTRSDICT = 1186, /* s[] (unimplemented) */
382  RPMTAG_FILEXATTRSX = 1187, /* i[] (unimplemented) */
383  RPMTAG_DEPATTRSDICT = 1188, /* s[] (unimplemented) */
384  RPMTAG_CONFLICTATTRSX = 1189, /* i[] (unimplemented) */
385  RPMTAG_OBSOLETEATTRSX = 1190, /* i[] (unimplemented) */
386  RPMTAG_PROVIDEATTRSX = 1191, /* i[] (unimplemented) */
387  RPMTAG_REQUIREATTRSX = 1192, /* i[] (unimplemented) */
388  RPMTAG_BUILDPROVIDES = 1193, /* internal */
389  RPMTAG_BUILDOBSOLETES = 1194, /* internal */
390  RPMTAG_DBINSTANCE = 1195, /* i */
391  RPMTAG_NVRA = 1196, /* s */
392  RPMTAG_FILEPATHS = 1197, /* s[] */
393  RPMTAG_ORIGPATHS = 1198, /* s[] */
394  RPMTAG_RPMLIBVERSION = 1199, /* i */
395  RPMTAG_RPMLIBTIMESTAMP = 1200, /* i */
396  RPMTAG_RPMLIBVENDOR = 1201, /* i */
397  RPMTAG_CLASS = 1202, /* s arbitrary */
398  RPMTAG_TRACK = 1203, /* s internal arbitrary */
399  RPMTAG_TRACKPROG = 1204, /* s internal arbitrary */
400  RPMTAG_SANITYCHECK = 1205, /* s */
401  RPMTAG_SANITYCHECKPROG = 1206, /* s */
402  RPMTAG_FILESTAT = 1207, /* s[] stat(2) from metadata extension*/
403  RPMTAG_STAT = 1208, /* s[] stat(2) from disk extension */
404  RPMTAG_ORIGINTID = 1209, /* i[] */
405  RPMTAG_ORIGINTIME = 1210, /* i[] */
406  RPMTAG_HEADERSTARTOFF = 1211, /* l */
407  RPMTAG_HEADERENDOFF = 1212, /* l */
408  RPMTAG_PACKAGETIME = 1213, /* l */
409  RPMTAG_PACKAGESIZE = 1214, /* l */
410  RPMTAG_PACKAGEDIGEST = 1215, /* s */
411  RPMTAG_PACKAGESTAT = 1216, /* x */
412  RPMTAG_PACKAGEBASEURL = 1217, /* s */
413  RPMTAG_DISTEPOCH = 1218, /* s */
414 #define RPMTAG_D RPMTAG_DISTEPOCH /* s */
415 
416  RPMTAG_CONFLICTYAMLENTRY = 1219, /* s[] */
417  RPMTAG_OBSOLETEYAMLENTRY = 1220, /* s[] */
418  RPMTAG_PROVIDEYAMLENTRY = 1221, /* s[] */
419  RPMTAG_REQUIREYAMLENTRY = 1222, /* s[] */
420 
421  RPMTAG_FILEDIGESTALGO = 5011, /* i file checksum algorithm */
422  RPMTAG_BUGURL = 5012, /* s */
423 
424 /*@-enummemuse@*/
426 /*@=enummemuse@*/
427 
428  RPMTAG_PACKAGETRANSFLAGS = 0x4efaafd9, /* s[] arbitrary */
429  RPMTAG_PACKAGEDEPFLAGS = 0x748a8314, /* s[] arbitrary */
430 
431  RPMTAG_BUILDPREPPROG = 0x4ba37c9e, /* s[] arbitrary */
432  RPMTAG_BUILDPREP = 0x799c0b4d, /* s[] arbitrary */
433  RPMTAG_BUILDBUILDPROG = 0x6fb46014, /* s[] arbitrary */
434  RPMTAG_BUILDBUILD = 0x5bae1a5a, /* s[] arbitrary */
435  RPMTAG_BUILDINSTALLPROG = 0x70d4ab6f, /* s[] arbitrary */
436  RPMTAG_BUILDINSTALL = 0x567f5983, /* s[] arbitrary */
437  RPMTAG_BUILDCHECKPROG = 0x488a60ce, /* s[] arbitrary */
438  RPMTAG_BUILDCHECK = 0x7f3b97b5, /* s[] arbitrary */
439  RPMTAG_BUILDCLEANPROG = 0x42c93d41, /* s[] arbitrary */
440  RPMTAG_BUILDCLEAN = 0x566042bf, /* s[] arbitrary */
441 
443 };
444 
445 #define RPMTAG_EXTERNAL_TAG 1000000
446 
451  RPMSIGTAG_SIZE = 1000,
453  RPMSIGTAG_PGP = 1002,
455  RPMSIGTAG_MD5 = 1004,
456  RPMSIGTAG_GPG = 1005,
457  RPMSIGTAG_PGP5 = 1006,
465  RPMSIGTAG_PADDING = 0x3fffffff
466 };
467 
470 typedef enum rpmTag_e rpmTag;
471 
474 typedef enum rpmSigTag_e rpmSigTag;
475 
479 #define RPMDBI_PACKAGES (rpmTag)0 /* Installed package headers. */
480 #define RPMDBI_DEPCACHE (rpmTag)1 /* Dependency resolution cache. */
481  /* (obsolete) RPMDBI_LABEL was 2 */
482 #define RPMDBI_ADDED (rpmTag)3 /* Added package headers. */
483 #define RPMDBI_REMOVED (rpmTag)4 /* Removed package headers. */
484 #define RPMDBI_AVAILABLE (rpmTag)5 /* Available package headers. */
485 #define RPMDBI_HDLIST (rpmTag)6 /* (rpmgi) Header list. */
486 #define RPMDBI_ARGLIST (rpmTag)7 /* (rpmgi) Argument list. */
487 #define RPMDBI_FTSWALK (rpmTag)8 /* (rpmgi) File tree walk. */
488 #define RPMDBI_SEQNO (rpmTag)9 /* Sequence numbers. */
489 #define RPMDBI_BTREE (rpmTag)10 /* (development) Generic DB_BTREE. */
490 #define RPMDBI_HASH (rpmTag)11 /* (development) Generic DB_HASH. */
491 #define RPMDBI_QUEUE (rpmTag)12 /* (development) Generic DB_QUEUE. */
492 #define RPMDBI_RECNO (rpmTag)13 /* (development) Generic DB_RECNO. */
493 #define RPMDBI_HEAP (rpmTag)14 /* (development) Generic DB_HEAP. */
494  /* 15 unused */
495 #define RPMDBI_REPACKAGES (rpmTag)16 /* Re-packaged package paths. */
496 #define RPMDBI_REPOSITORY (rpmTag)17 /* Repository URI's. */
497 
500 /*@-typeuse -fielduse@*/
501 #if !defined(SWIG)
502 struct _HE_s {
503  rpmTag tag;
504  rpmTagType t;
505 /*@owned@*/ /*@null@*/
507  rpmTagCount c;
508  int ix;
509  unsigned int freeData : 1;
510  unsigned int avail : 1;
511  unsigned int append : 1;
512 };
513 #endif
514 
517 typedef struct _HE_s HE_s;
518 
521 typedef struct tagStore_s * tagStore_t;
522 
525 typedef /*@abstract@*/ const struct headerTagTableEntry_s * headerTagTableEntry;
526 
527 #if defined(_RPMTAG_INTERNAL)
528 
533 #if !defined(SWIG)
534 struct headerTagTableEntry_s {
535 /*@observer@*/ /*@relnull@*/
536  const char * name;
537  rpmTag val;
538  rpmTagType type;
539 };
540 #endif
541 
544 struct tagStore_s {
545 /*@only@*/
546  const char * str;
547  rpmTag tag;
548  rpmiob iob;
549 };
550 #endif /* _RPMTAG_INTERNAL */
551 
555 /*@-redecl@*/
556 /*@observer@*/ /*@unchecked@*/
557 extern headerTagTableEntry rpmTagTable;
558 /*@=redecl@*/
559 
563 /*@-redecl@*/
564 /*@unchecked@*/
565 extern int rpmTagTableSize;
566 
567 /*@unchecked@*/
568 extern headerTagIndices rpmTags;
569 /*@=redecl@*/
570 
571 #if defined(_RPMTAG_INTERNAL)
572 
574 #if !defined(SWIG)
575 struct headerTagIndices_s {
576 /*@relnull@*/
577  int (*loadIndex) (headerTagTableEntry ** ipp, size_t * np,
578  int (*cmp) (const void * avp, const void * bvp))
579  /*@ modifies *ipp, *np */;
580 /*@relnull@*/
581  headerTagTableEntry * byName;
582  size_t byNameSize;
583  int (*byNameCmp) (const void * avp, const void * bvp)
584  /*@*/;
585  rpmTag (*tagValue) (const char * name)
586  /*@*/;
587 /*@relnull@*/
588  headerTagTableEntry * byValue;
589  size_t byValueSize;
590  int (*byValueCmp) (const void * avp, const void * bvp)
591  /*@*/;
592  const char * (*tagName) (rpmTag value)
593  /*@*/;
594  rpmTag (*tagType) (rpmTag value)
595  /*@*/;
596  size_t nameBufLen;
597 /*@relnull@*/
598  const char ** aTags;
599 /*@owned@*/ /*@null@*/
600  char * nameBuf; /* Name buffer. */
601 /*@only@*/
602  char * (*tagCanonicalize) (const char * s)
603  /*@*/;
604  rpmTag (*tagGenerate) (const char * s)
605  /*@*/;
606 };
607 #endif
608 #endif /* _RPMTAG_INTERNAL */
609 
615 /*@observer@*/
616 const char * tagName(rpmTag tag)
617  /*@*/;
618 
625 unsigned int tagType(rpmTag tag)
626  /*@*/;
627 
633 rpmTag tagValue(const char * tagstr)
634  /*@*/;
635 
641 /*@only@*/
642 char * tagCanonicalize(const char * s)
643  /*@*/;
644 
650 rpmTag tagGenerate(const char * s)
651  /*@*/;
652 
657 void tagClean(/*@null@*/ headerTagIndices _rpmTags)
658  /*@globals rpmTags @*/
659  /*@modifies _rpmTags, rpmTags @*/;
660 
667 /*@null@*/
668 tagStore_t tagStoreFree(/*@only@*//*@null@*/tagStore_t dbiTags, size_t dbiNTags)
669  /*@modifies dbiTags @*/;
670 
671 #if defined(_RPMTAG_INTERNAL)
672 
674 typedef enum headerSprintfExtensionType_e {
675  HEADER_EXT_LAST = 0,
676  HEADER_EXT_FORMAT,
677  HEADER_EXT_MORE,
678  HEADER_EXT_TAG
679 } headerSprintfExtensionType;
680 
688 typedef /*only@*/ char * (*headerTagFormatFunction) (HE_t he, /*@null@*/ const char ** av)
689  /*@modifies he @*/;
690 
699 typedef int (*headerTagTagFunction) (Header h, HE_t he)
700  /*@modifies he @*/;
701 
705 #if !defined(SWIG)
706 struct headerSprintfExtension_s {
707  headerSprintfExtensionType type;
708 /*@observer@*/ /*@null@*/
709  const char * name;
710  union {
711 /*@observer@*/ /*@null@*/
712  void * generic;
713  headerTagFormatFunction fmtFunction;
714  headerTagTagFunction tagFunction;
715  headerSprintfExtension * more;
716  } u;
717 };
718 #endif
719 #endif /* _RPMTAG_INTERNAL */
720 
724 /*@unchecked@*/ /*@observer@*/
725 extern headerSprintfExtension headerDefaultFormats;
726 
730 /*@unchecked@*/ /*@observer@*/
731 extern headerSprintfExtension headerCompoundFormats;
732 
739 void rpmDisplayQueryTags(/*@null@*/ FILE * fp,
740  /*@null@*/ headerTagTableEntry _rpmTagTable,
741  /*@null@*/ headerSprintfExtension _rpmHeaderFormats)
742  /*@globals fileSystem, internalState @*/
743  /*@modifies *fp, fileSystem, internalState @*/;
744 
756 /*@only@*/ /*@null@*/
757 char * headerSprintf(Header h, const char * fmt,
758  /*@null@*/ headerTagTableEntry tags,
759  /*@null@*/ headerSprintfExtension exts,
760  /*@null@*/ /*@out@*/ errmsg_t * errmsg)
761  /*@globals headerCompoundFormats, fileSystem, internalState @*/
762  /*@modifies h, *errmsg, fileSystem, internalState @*/;
763 
772 int headerGet(Header h, HE_t he, unsigned int flags)
773  /*@globals internalState @*/
774  /*@modifies he, internalState @*/;
775 #define HEADERGET_NOEXTENSION (1 << 0)
776 #define HEADERGET_NOI18NSTRING (1 << 1)
786 /*@mayexit@*/
787 int headerPut(Header h, HE_t he, /*@unused@*/ unsigned int flags)
788  /*@modifies h @*/;
789 
798 /*@mayexit@*/
799 int headerDel(Header h, HE_t he, /*@unused@*/ unsigned int flags)
800  /*@modifies h @*/;
801 
810 int headerMod(Header h, HE_t he, /*@unused@*/ unsigned int flags)
811  /*@modifies h @*/;
812 
818 /*@null@*/
819 HeaderIterator headerFini(/*@only@*/ HeaderIterator hi)
820  /*@globals fileSystem @*/
821  /*@modifies hi, fileSystem */;
822 
828 HeaderIterator headerInit(Header h)
829  /*@globals fileSystem @*/
830  /*@modifies h, fileSystem */;
831 
839 int headerNext(HeaderIterator hi, HE_t he, /*@unused@*/ unsigned int flags)
840  /*@globals internalState @*/
841  /*@modifies hi, he, internalState @*/;
842 
848 Header headerLink(Header h)
849  /*@modifies h @*/;
850 #define headerLink(_h) \
851  ((Header)rpmioLinkPoolItem((rpmioItem)(_h), __FUNCTION__, __FILE__, __LINE__))
852 
858 /*@null@*/
859 Header headerUnlink(/*@killref@*/ /*@null@*/ Header h)
860  /*@modifies h @*/;
861 #define headerUnlink(_h) \
862  ((Header)rpmioUnlinkPoolItem((rpmioItem)(_h), __FUNCTION__, __FILE__, __LINE__))
863 
869 /*@null@*/
870 Header headerFree(/*@killref@*/ /*@null@*/ Header h)
871  /*@modifies h @*/;
872 #define headerFree(_h) \
873  ((Header)rpmioFreePoolItem((rpmioItem)(_h), __FUNCTION__, __FILE__, __LINE__))
874 
879 Header headerNew(void)
880  /*@globals fileSystem @*/
881  /*@modifies fileSystem @*/;
882 
888 size_t headerSizeof(/*@null@*/ Header h)
889  /*@modifies h @*/;
890 
897 /*@only@*/ /*@null@*/
898 void * headerUnload(Header h, /*@out@*/ /*@null@*/ size_t * lenp)
899  /*@globals internalState @*/
900  /*@modifies h, *lenp, internalState @*/;
901 
910 /*@null@*/
911 Header headerReload(/*@only@*/ Header h, rpmTag tag)
912  /*@globals fileSystem, internalState @*/
913  /*@modifies h, fileSystem, internalState @*/;
914 
920 /*@null@*/
921 Header headerCopy(Header h)
922  /*@globals fileSystem, internalState @*/
923  /*@modifies h, fileSystem, internalState @*/;
924 
930 /*@null@*/
931 Header headerLoad(/*@kept@*/ void * uh)
932  /*@globals fileSystem, internalState @*/
933  /*@modifies uh, fileSystem, internalState @*/;
934 
940 /*@null@*/
941 Header headerCopyLoad(const void * uh)
942  /*@globals fileSystem, internalState @*/
943  /*@modifies fileSystem, internalState @*/;
944 
951 int headerIsEntry(/*@null@*/ Header h, rpmTag tag)
952  /*@*/;
953 
954 #if defined(SUPPORT_I18NSTRING_TYPE)
955 
975 int headerAddI18NString(Header h, rpmTag tag, const char * string,
976  const char * lang)
977  /*@modifies h @*/;
978 #endif
979 
986 void headerCopyTags(Header headerFrom, Header headerTo, rpmTag * tagstocopy)
987  /*@globals internalState @*/
988  /*@modifies headerTo, internalState @*/;
989 
997 int headerGetMagic(/*@null@*/ Header h, unsigned char **magicp, size_t *nmagicp)
998  /*@modifies *magicp, *nmagicp @*/;
999 
1007 int headerSetMagic(/*@null@*/ Header h, unsigned char * magic, size_t nmagic)
1008  /*@modifies h @*/;
1009 
1015 /*@observer@*/ /*@null@*/
1016 const char * headerGetOrigin(/*@null@*/ Header h)
1017  /*@*/;
1018 
1025 int headerSetOrigin(/*@null@*/ Header h, const char * origin)
1026  /*@modifies h @*/;
1027 
1033 /*@observer@*/ /*@null@*/
1034 const char * headerGetParent(/*@null@*/ Header h)
1035  /*@*/;
1036 
1043 int headerSetParent(/*@null@*/ Header h, const char * parent)
1044  /*@modifies h @*/;
1045 
1051 /*@observer@*/ /*@null@*/
1052 const char * headerGetBaseURL(/*@null@*/ Header h)
1053  /*@*/;
1054 
1061 int headerSetBaseURL(/*@null@*/ Header h, const char * baseurl)
1062  /*@modifies h @*/;
1063 
1069 struct stat * headerGetStatbuf(/*@null@*/ Header h)
1070  /*@*/;
1071 
1078 int headerSetStatbuf(/*@null@*/ Header h, struct stat * st)
1079  /*@modifies h @*/;
1080 
1086 /*@null@*/
1087 const char * headerGetDigest(/*@null@*/ Header h)
1088  /*@*/;
1089 
1096 int headerSetDigest(/*@null@*/ Header h, const char * digest)
1097  /*@modifies h @*/;
1098 
1104 /*@null@*/
1105 void * headerGetRpmdb(/*@null@*/ Header h)
1106  /*@*/;
1107 
1114 /*@null@*/
1115 void * headerSetRpmdb(/*@null@*/ Header h, /*@null@*/ void * rpmdb)
1116  /*@modifies h @*/;
1117 
1123 uint32_t headerGetInstance(/*@null@*/ Header h)
1124  /*@*/;
1125 
1132 uint32_t headerSetInstance(/*@null@*/ Header h, uint32_t instance)
1133  /*@modifies h @*/;
1134 
1140 rpmuint32_t headerGetStartOff(/*@null@*/ Header h)
1141  /*@*/;
1142 
1149 rpmuint32_t headerSetStartOff(/*@null@*/ Header h, rpmuint32_t startoff)
1150  /*@modifies h @*/;
1151 
1157 rpmuint32_t headerGetEndOff(/*@null@*/ Header h)
1158  /*@*/;
1159 
1166 rpmuint32_t headerSetEndOff(/*@null@*/ Header h, rpmuint32_t endoff)
1167  /*@modifies h @*/;
1168 
1175 /*@null@*/
1176 void * headerGetStats(Header h, int opx)
1177  /*@*/;
1178 
1184 int headerMacrosLoad(Header h)
1185  /*@globals internalState @*/
1186  /*@modifies internalState @*/;
1187 
1193 int headerMacrosUnload(Header h)
1194  /*@globals internalState @*/
1195  /*@modifies internalState @*/;
1196 
1207 int headerNEVRA(Header h,
1208  /*@null@*/ /*@out@*/ const char ** np,
1209  /*@null@*/ /*@out@*/ /*@unused@*/ const char ** ep,
1210  /*@null@*/ /*@out@*/ const char ** vp,
1211  /*@null@*/ /*@out@*/ const char ** rp,
1212  /*@null@*/ /*@out@*/ const char ** ap)
1213  /*@globals internalState @*/
1214  /*@modifies h, *np, *vp, *rp, *ap, internalState @*/;
1215 
1221 rpmuint32_t hGetColor(Header h)
1222  /*@globals internalState @*/
1223  /*@modifies h, internalState @*/;
1224 
1231 void headerMergeLegacySigs(Header h, const Header sigh)
1232  /*@globals fileSystem, internalState @*/
1233  /*@modifies h, sigh, fileSystem, internalState @*/;
1234 
1242 Header headerRegenSigHeader(const Header h, int noArchiveSize)
1243  /*@globals fileSystem, internalState @*/
1244  /*@modifies h, fileSystem, internalState @*/;
1245 
1246 #ifdef __cplusplus
1247 }
1248 #endif
1249 
1250 #endif /* H_RPMTAG */
int headerDel(Header h, HE_t he, unsigned int flags)
Remove tag container from header.
Definition: header.c:2313
void headerMergeLegacySigs(Header h, const Header sigh)
Translate and merge legacy signature tags into header.
Definition: hdrNVR.c:242
rpmTagType t
Definition: rpmtag.h:504
enum rpmTagReturnType_e rpmTagReturnType
Identify how to return the header data type.
const char * str
Definition: rpmtag.h:73
rpmTag tag
Definition: rpmtag.h:503
const char ** argv
Definition: rpmtag.h:75
headerTagTableEntry rpmTagTable
Automatically generated table of tag name/value pairs.
Definition: tagtbl.c:239
rpmuint32_t headerGetStartOff(Header h)
Return header starting byte offset.
Definition: header.c:1290
#define headerFree(_h)
Definition: rpmtag.h:872
Header headerRegenSigHeader(const Header h, int noArchiveSize)
Regenerate signature header.
Definition: hdrNVR.c:313
void tagClean(headerTagIndices _rpmTags)
Free memory in header tag indices.
Definition: tagname.c:461
#define HEADER_IMMUTABLE
Definition: rpmtag.h:118
void headerCopyTags(Header headerFrom, Header headerTo, rpmTag *tagstocopy)
Duplicate tag values from one header into another.
Definition: header.c:2211
rpmuint32_t hGetColor(Header h)
Return header color.
Definition: hdrNVR.c:223
Header headerLoad(void *uh)
Convert header to in-memory representation.
Definition: header.c:970
enum rpmSigTag_e rpmSigTag
Definition: rpmtag.h:474
rpmuint32_t * ui32p
Definition: rpmtag.h:70
int headerNext(HeaderIterator hi, HE_t he, unsigned int flags)
Return next tag from header.
Definition: header.c:2158
#define HEADER_SIGNATURES
Definition: rpmtag.h:117
struct headerToken_s * Header
Definition: rpmtag.h:22
#define HEADER_IMAGE
Header private tags.
Definition: rpmtag.h:116
The Header data structure.
const char * headerGetParent(Header h)
Return header parent identifier (e.g parent's NVRA).
Definition: header.c:1198
#define headerUnlink(_h)
Definition: rpmtag.h:861
rpmuint16_t * ui16p
Definition: rpmtag.h:69
rpmuint32_t headerGetEndOff(Header h)
Return header ending byte offset.
Definition: header.c:1302
rpmTagReturnType_e
Identify how to return the header data type.
Definition: rpmtag.h:96
#define headerLink(_h)
Definition: rpmtag.h:850
unsigned short rpmuint16_t
Definition: rpmiotypes.h:27
static struct headerSprintfExtension_s _rpmHeaderFormats[]
Definition: formats.c:274
rpmSigTag_e
Tags found in signature header from package.
Definition: rpmtag.h:450
void * headerGetStats(Header h, int opx)
Return header stats accumulator structure.
Definition: header.c:97
Header tag iterator data structure.
Definition: header.c:2129
int headerMacrosLoad(Header h)
Define per-header macros.
Definition: hdrNVR.c:36
int headerSetMagic(Header h, unsigned char *magic, size_t nmagic)
Store header magic.
Definition: header.c:1172
void * headerSetRpmdb(Header h, void *rpmdb)
Store rpmdb pointer.
Definition: header.c:1266
int ix
Definition: rpmtag.h:508
uint32_t headerSetInstance(Header h, uint32_t instance)
Store header instance (e.g path or URL).
Definition: header.c:1280
rpmTag tagValue(const char *tagstr)
Return tag value from name.
Definition: tagname.c:446
rpmTag tagGenerate(const char *s)
Generate a tag from arbitrary string.
Definition: tagname.c:456
rpmTag_e
Tags identify data in package headers.
Definition: rpmtag.h:140
enum rpmSubTagType_e rpmSubTagType
size_t headerSizeof(Header h)
Return size of on-disk header representation in bytes.
Definition: header.c:266
rpmuint32_t headerSetStartOff(Header h, rpmuint32_t startoff)
Store header starting byte offset.
Definition: header.c:1295
const char * str
Definition: bson.h:593
rpmTagType_e
The basic types of data in tags from headers.
Definition: rpmtag.h:27
const char * headerGetOrigin(Header h)
Return header origin (e.g path or URL).
Definition: header.c:1184
unsigned int rpmuint32_t
Definition: rpmiotypes.h:28
struct _HE_s * HE_t
Definition: rpmtag.h:59
void rpmDisplayQueryTags(FILE *fp, headerTagTableEntry _rpmTagTable, headerSprintfExtension _rpmHeaderFormats)
Display list of tags that can be used in –queryformat.
Definition: hdrfmt.c:5282
void * ptr
Definition: rpmtag.h:67
void * headerUnload(Header h, size_t *lenp)
headerUnload.
Definition: header.c:648
rpmuint32_t headerSetEndOff(Header h, rpmuint32_t endoff)
Store header ending byte offset.
Definition: header.c:1307
HE_t he
Definition: rpmtag.h:76
unsigned int avail
Definition: rpmtag.h:510
int headerGet(Header h, HE_t he, unsigned int flags)
Retrieve extension or tag value from a header.
Definition: header.c:2231
unsigned char rpmuint8_t
Private int typedefs to avoid C99 portability issues.
Definition: rpmiotypes.h:26
Header headerCopy(Header h)
Duplicate a header.
Definition: header.c:2194
unsigned int tagType(rpmTag tag)
Return tag data type from value.
Definition: tagname.c:441
const char * headerGetBaseURL(Header h)
Return header base URL (e.g path or URL).
Definition: header.c:1212
unsigned char * blob
Definition: rpmtag.h:74
rpmTagData p
Definition: rpmtag.h:506
static const struct headerTagTableEntry_s _rpmTagTable[]
Definition: tagtbl.c:9
unsigned long long rpmuint64_t
Definition: rpmiotypes.h:29
int headerPut(Header h, HE_t he, unsigned int flags)
Add or append tag container to header.
Definition: header.c:2294
const char * tagName(rpmTag tag)
Return tag name from value.
Definition: tagname.c:436
HeaderIterator headerFini(HeaderIterator hi)
Destroy header tag container iterator.
Definition: header.c:2134
struct stat * headerGetStatbuf(Header h)
Return header stat(2) buffer (of origin *.rpm file).
Definition: header.c:1228
int headerIsEntry(Header h, rpmTag tag)
Check if tag is in header.
Definition: header.c:1439
Header headerNew(void)
Create new (empty) header instance.
Definition: header.c:180
struct tagStore_s * tagStore_t
Definition: rpmtag.h:521
static struct headerTagIndices_s _rpmTags
Definition: tagname.c:175
#define HEADER_I18NTABLE
Definition: rpmtag.h:120
struct rpmdb_s * rpmdb
Database of headers and tag value indices.
Definition: rpmtypes.h:43
int headerSetBaseURL(Header h, const char *baseurl)
Store header base URL (e.g path or URL).
Definition: header.c:1219
const struct headerSprintfExtension_s * headerSprintfExtension
Definition: rpmtag.h:134
rpmTagCount c
Definition: rpmtag.h:507
static const char * lang
#define HEADER_REGIONS
Definition: rpmtag.h:119
rpmuint8_t * ui8p
Definition: rpmtag.h:68
enum rpmTagType_e rpmTagType
Definition: rpmtag.h:47
Header headerReload(Header h, rpmTag tag)
Convert header to on-disk representation, and then reload.
Definition: header.c:1314
HeaderIterator headerInit(Header h)
Create header tag iterator.
Definition: header.c:2144
const char const bson int mongo_write_concern int flags
Definition: mongo.h:485
headerSprintfExtension headerCompoundFormats
Supported default header extension/tag output formats.
Definition: hdrfmt.c:5278
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.
Definition: hdrNVR.c:162
char * headerSprintf(Header h, const char *fmt, headerTagTableEntry tags, headerSprintfExtension exts, errmsg_t *errmsg)
Return formatted output string from header tags.
Definition: hdrfmt.c:6730
const char * errmsg_t
Definition: rpmtag.h:18
#define HEADER_SIGBASE
Definition: rpmtag.h:121
Definition: rpmtag.h:502
int headerSetStatbuf(Header h, struct stat *st)
Copy into header stat(2) buffer (of origin *.rpm file).
Definition: header.c:1235
unsigned int freeData
Definition: rpmtag.h:509
static int cmp(const void *arg1, const void *arg2)
Definition: set.c:1363
int headerSetOrigin(Header h, const char *origin)
Store header origin (e.g path or URL).
Definition: header.c:1189
struct rpmiob_s * rpmiob
Definition: rpmiotypes.h:60
int rpmTagTableSize
Number of entries in rpmTagTable.
Definition: tagtbl.c:242
char * tagCanonicalize(const char *s)
Canonicalize a rpmTag string.
Definition: tagname.c:451
tagStore_t tagStoreFree(tagStore_t dbiTags, size_t dbiNTags)
Destroy tagStore array.
Definition: tagname.c:473
const struct headerTagTableEntry_s * headerTagTableEntry
Definition: rpmtag.h:525
int headerMacrosUnload(Header h)
Define per-header macros.
Definition: hdrNVR.c:111
headerTagIndices rpmTags
Definition: tagname.c:184
const char char type
Definition: bson.h:908
const char * headerGetDigest(Header h)
Return digest of origin *.rpm file.
Definition: header.c:1242
int headerSetDigest(Header h, const char *digest)
Store digest of origin *.rpm file.
Definition: header.c:1249
rpmSubTagType_e
Definition: rpmtag.h:85
static const char * name
headerSprintfExtension headerDefaultFormats
Supported default header tag output formats.
Definition: hdrfmt.c:328
struct headerTagIndices_s * headerTagIndices
Definition: rpmtag.h:130
int headerGetMagic(Header h, unsigned char **magicp, size_t *nmagicp)
Return header magic.
Definition: header.c:1162
enum rpmTag_e rpmTag
Definition: rpmtag.h:470
Header headerCopyLoad(const void *uh)
Make a copy and convert header to in-memory representation.
Definition: header.c:1433
uint32_t headerGetInstance(Header h)
Return header instance (if from rpmdb).
Definition: header.c:1275
rpmuint32_t rpmTagCount
Definition: rpmtag.h:55
int headerMod(Header h, HE_t he, unsigned int flags)
Modify tag container in header.
Definition: header.c:2319
void * headerGetRpmdb(Header h)
Return rpmdb pointer.
Definition: header.c:1259
struct headerIterator_s * HeaderIterator
Definition: rpmtag.h:126
int headerSetParent(Header h, const char *parent)
Store header parent (e.g parent's NVRA).
Definition: header.c:1203
rpmuint64_t * ui64p
Definition: rpmtag.h:71
unsigned int append
Definition: rpmtag.h:511