rpm  4.8.1
rpmtag.h
Go to the documentation of this file.
1 #ifndef _RPMTAG_H
2 #define _RPMTAG_H
3 
4 #include <rpm/rpmtypes.h>
5 
6 #ifdef __cplusplus
7 extern "C" {
8 #endif
9 
13 #define RPMDBI_PACKAGES 0 /* Installed package headers. */
14 #define RPMDBI_DEPENDS 1 /* Dependency resolution cache. */
15 #define RPMDBI_LABEL 2 /* Fingerprint search marker. */
16 #define RPMDBI_ADDED 3 /* Added package headers. */
17 #define RPMDBI_REMOVED 4 /* Removed package headers. */
18 #define RPMDBI_AVAILABLE 5 /* Available package headers. */
19 #define RPMDBI_HDLIST 6 /* (rpmgi) Header list. */
20 #define RPMDBI_ARGLIST 7 /* (rpmgi) Argument list. */
21 #define RPMDBI_FTSWALK 8 /* (rpmgi) File tree walk. */
22 
27 #define HEADER_IMAGE 61
28 #define HEADER_SIGNATURES 62
29 #define HEADER_IMMUTABLE 63
30 #define HEADER_REGIONS 64
31 #define HEADER_I18NTABLE 100
32 #define HEADER_SIGBASE 256
33 #define HEADER_TAGBASE 1000
34 
40 typedef enum rpmTag_e {
41 
47  RPMTAG_HEADERI18NTABLE = HEADER_I18NTABLE, /* s[] !< I18N string locales. */
48 
49 /* Retrofit (and uniqify) signature tags for use by rpmTagGetName() and rpmQuery. */
50 /* the md5 sum was broken *twice* on big endian machines */
51 /* XXX 2nd underscore prevents tagTable generation */
54  RPMTAG_SIGLEMD5_1 = RPMTAG_SIG_BASE+2, /* internal - obsolete */
56  RPMTAG_SIGLEMD5_2 = RPMTAG_SIG_BASE+4, /* x internal - obsolete */
58 #define RPMTAG_PKGID RPMTAG_SIGMD5 /* x */
60  RPMTAG_SIGPGP5 = RPMTAG_SIG_BASE+7, /* internal - obsolete */
61 
62  RPMTAG_BADSHA1_1 = RPMTAG_SIG_BASE+8, /* internal - obsolete */
63  RPMTAG_BADSHA1_2 = RPMTAG_SIG_BASE+9, /* internal - obsolete */
68 #define RPMTAG_HDRID RPMTAG_SHA1HEADER /* s */
71 
72  RPMTAG_NAME = 1000, /* s */
73 #define RPMTAG_N RPMTAG_NAME /* s */
74  RPMTAG_VERSION = 1001, /* s */
75 #define RPMTAG_V RPMTAG_VERSION /* s */
76  RPMTAG_RELEASE = 1002, /* s */
77 #define RPMTAG_R RPMTAG_RELEASE /* s */
78  RPMTAG_EPOCH = 1003, /* i */
79 #define RPMTAG_E RPMTAG_EPOCH /* i */
80  RPMTAG_SUMMARY = 1004, /* s{} */
81  RPMTAG_DESCRIPTION = 1005, /* s{} */
82  RPMTAG_BUILDTIME = 1006, /* i */
83  RPMTAG_BUILDHOST = 1007, /* s */
84  RPMTAG_INSTALLTIME = 1008, /* i */
85  RPMTAG_SIZE = 1009, /* i */
86  RPMTAG_DISTRIBUTION = 1010, /* s */
87  RPMTAG_VENDOR = 1011, /* s */
88  RPMTAG_GIF = 1012, /* x */
89  RPMTAG_XPM = 1013, /* x */
90  RPMTAG_LICENSE = 1014, /* s */
91  RPMTAG_PACKAGER = 1015, /* s */
92  RPMTAG_GROUP = 1016, /* s{} */
93  RPMTAG_CHANGELOG = 1017, /* s[] internal */
94  RPMTAG_SOURCE = 1018, /* s[] */
95  RPMTAG_PATCH = 1019, /* s[] */
96  RPMTAG_URL = 1020, /* s */
97  RPMTAG_OS = 1021, /* s legacy used int */
98  RPMTAG_ARCH = 1022, /* s legacy used int */
99  RPMTAG_PREIN = 1023, /* s */
100  RPMTAG_POSTIN = 1024, /* s */
101  RPMTAG_PREUN = 1025, /* s */
102  RPMTAG_POSTUN = 1026, /* s */
103  RPMTAG_OLDFILENAMES = 1027, /* s[] obsolete */
104  RPMTAG_FILESIZES = 1028, /* i[] */
105  RPMTAG_FILESTATES = 1029, /* c[] */
106  RPMTAG_FILEMODES = 1030, /* h[] */
107  RPMTAG_FILEUIDS = 1031, /* i[] internal */
108  RPMTAG_FILEGIDS = 1032, /* i[] internal */
109  RPMTAG_FILERDEVS = 1033, /* h[] */
110  RPMTAG_FILEMTIMES = 1034, /* i[] */
111  RPMTAG_FILEDIGESTS = 1035, /* s[] */
112 #define RPMTAG_FILEMD5S RPMTAG_FILEDIGESTS /* s[] */
113  RPMTAG_FILELINKTOS = 1036, /* s[] */
114  RPMTAG_FILEFLAGS = 1037, /* i[] */
115  RPMTAG_ROOT = 1038, /* internal - obsolete */
116  RPMTAG_FILEUSERNAME = 1039, /* s[] */
117  RPMTAG_FILEGROUPNAME = 1040, /* s[] */
118  RPMTAG_EXCLUDE = 1041, /* internal - obsolete */
119  RPMTAG_EXCLUSIVE = 1042, /* internal - obsolete */
120  RPMTAG_ICON = 1043, /* x */
121  RPMTAG_SOURCERPM = 1044, /* s */
122  RPMTAG_FILEVERIFYFLAGS = 1045, /* i[] */
123  RPMTAG_ARCHIVESIZE = 1046, /* i */
124  RPMTAG_PROVIDENAME = 1047, /* s[] */
125 #define RPMTAG_PROVIDES RPMTAG_PROVIDENAME /* s[] */
126 #define RPMTAG_P RPMTAG_PROVIDENAME /* s[] */
127  RPMTAG_REQUIREFLAGS = 1048, /* i[] */
128  RPMTAG_REQUIRENAME = 1049, /* s[] */
129 #define RPMTAG_REQUIRES RPMTAG_REQUIRENAME /* s[] */
130  RPMTAG_REQUIREVERSION = 1050, /* s[] */
131  RPMTAG_NOSOURCE = 1051, /* i */
132  RPMTAG_NOPATCH = 1052, /* i */
133  RPMTAG_CONFLICTFLAGS = 1053, /* i[] */
134  RPMTAG_CONFLICTNAME = 1054, /* s[] */
135 #define RPMTAG_CONFLICTS RPMTAG_CONFLICTNAME /* s[] */
136 #define RPMTAG_C RPMTAG_CONFLICTNAME /* s[] */
137  RPMTAG_CONFLICTVERSION = 1055, /* s[] */
138  RPMTAG_DEFAULTPREFIX = 1056, /* s internal - deprecated */
139  RPMTAG_BUILDROOT = 1057, /* s internal */
140  RPMTAG_INSTALLPREFIX = 1058, /* s internal - deprecated */
141  RPMTAG_EXCLUDEARCH = 1059, /* s[] */
142  RPMTAG_EXCLUDEOS = 1060, /* s[] */
143  RPMTAG_EXCLUSIVEARCH = 1061, /* s[] */
144  RPMTAG_EXCLUSIVEOS = 1062, /* s[] */
145  RPMTAG_AUTOREQPROV = 1063, /* s internal */
146  RPMTAG_RPMVERSION = 1064, /* s */
147  RPMTAG_TRIGGERSCRIPTS = 1065, /* s[] */
148  RPMTAG_TRIGGERNAME = 1066, /* s[] */
149  RPMTAG_TRIGGERVERSION = 1067, /* s[] */
150  RPMTAG_TRIGGERFLAGS = 1068, /* i[] */
151  RPMTAG_TRIGGERINDEX = 1069, /* i[] */
152  RPMTAG_VERIFYSCRIPT = 1079, /* s */
153  RPMTAG_CHANGELOGTIME = 1080, /* i[] */
154  RPMTAG_CHANGELOGNAME = 1081, /* s[] */
155  RPMTAG_CHANGELOGTEXT = 1082, /* s[] */
156  RPMTAG_BROKENMD5 = 1083, /* internal - obsolete */
157  RPMTAG_PREREQ = 1084, /* internal */
158  RPMTAG_PREINPROG = 1085, /* s */
159  RPMTAG_POSTINPROG = 1086, /* s */
160  RPMTAG_PREUNPROG = 1087, /* s */
161  RPMTAG_POSTUNPROG = 1088, /* s */
162  RPMTAG_BUILDARCHS = 1089, /* s[] */
163  RPMTAG_OBSOLETENAME = 1090, /* s[] */
164 #define RPMTAG_OBSOLETES RPMTAG_OBSOLETENAME /* s[] */
165 #define RPMTAG_O RPMTAG_OBSOLETENAME /* s[] */
166  RPMTAG_VERIFYSCRIPTPROG = 1091, /* s */
167  RPMTAG_TRIGGERSCRIPTPROG = 1092, /* s[] */
168  RPMTAG_DOCDIR = 1093, /* internal */
169  RPMTAG_COOKIE = 1094, /* s */
170  RPMTAG_FILEDEVICES = 1095, /* i[] */
171  RPMTAG_FILEINODES = 1096, /* i[] */
172  RPMTAG_FILELANGS = 1097, /* s[] */
173  RPMTAG_PREFIXES = 1098, /* s[] */
174  RPMTAG_INSTPREFIXES = 1099, /* s[] */
175  RPMTAG_TRIGGERIN = 1100, /* internal */
176  RPMTAG_TRIGGERUN = 1101, /* internal */
177  RPMTAG_TRIGGERPOSTUN = 1102, /* internal */
178  RPMTAG_AUTOREQ = 1103, /* internal */
179  RPMTAG_AUTOPROV = 1104, /* internal */
180  RPMTAG_CAPABILITY = 1105, /* i legacy - obsolete */
181  RPMTAG_SOURCEPACKAGE = 1106, /* i legacy - obsolete */
182  RPMTAG_OLDORIGFILENAMES = 1107, /* internal - obsolete */
183  RPMTAG_BUILDPREREQ = 1108, /* internal */
184  RPMTAG_BUILDREQUIRES = 1109, /* internal */
185  RPMTAG_BUILDCONFLICTS = 1110, /* internal */
186  RPMTAG_BUILDMACROS = 1111, /* internal - unused */
187  RPMTAG_PROVIDEFLAGS = 1112, /* i[] */
188  RPMTAG_PROVIDEVERSION = 1113, /* s[] */
189  RPMTAG_OBSOLETEFLAGS = 1114, /* i[] */
190  RPMTAG_OBSOLETEVERSION = 1115, /* s[] */
191  RPMTAG_DIRINDEXES = 1116, /* i[] */
192  RPMTAG_BASENAMES = 1117, /* s[] */
193  RPMTAG_DIRNAMES = 1118, /* s[] */
194  RPMTAG_ORIGDIRINDEXES = 1119, /* i[] relocation */
195  RPMTAG_ORIGBASENAMES = 1120, /* s[] relocation */
196  RPMTAG_ORIGDIRNAMES = 1121, /* s[] relocation */
197  RPMTAG_OPTFLAGS = 1122, /* s */
198  RPMTAG_DISTURL = 1123, /* s */
199  RPMTAG_PAYLOADFORMAT = 1124, /* s */
200  RPMTAG_PAYLOADCOMPRESSOR = 1125, /* s */
201  RPMTAG_PAYLOADFLAGS = 1126, /* s */
202  RPMTAG_INSTALLCOLOR = 1127, /* i transaction color when installed */
203  RPMTAG_INSTALLTID = 1128, /* i */
204  RPMTAG_REMOVETID = 1129, /* i */
205  RPMTAG_SHA1RHN = 1130, /* internal - obsolete */
206  RPMTAG_RHNPLATFORM = 1131, /* s deprecated */
207  RPMTAG_PLATFORM = 1132, /* s */
208  RPMTAG_PATCHESNAME = 1133, /* s[] deprecated placeholder (SuSE) */
209  RPMTAG_PATCHESFLAGS = 1134, /* i[] deprecated placeholder (SuSE) */
210  RPMTAG_PATCHESVERSION = 1135, /* s[] deprecated placeholder (SuSE) */
211  RPMTAG_CACHECTIME = 1136, /* i internal - obsolete */
212  RPMTAG_CACHEPKGPATH = 1137, /* s internal - obsolete */
213  RPMTAG_CACHEPKGSIZE = 1138, /* i internal - obsolete */
214  RPMTAG_CACHEPKGMTIME = 1139, /* i internal - obsolete */
215  RPMTAG_FILECOLORS = 1140, /* i[] */
216  RPMTAG_FILECLASS = 1141, /* i[] */
217  RPMTAG_CLASSDICT = 1142, /* s[] */
218  RPMTAG_FILEDEPENDSX = 1143, /* i[] */
219  RPMTAG_FILEDEPENDSN = 1144, /* i[] */
220  RPMTAG_DEPENDSDICT = 1145, /* i[] */
221  RPMTAG_SOURCEPKGID = 1146, /* x */
222  RPMTAG_FILECONTEXTS = 1147, /* s[] - obsolete */
223  RPMTAG_FSCONTEXTS = 1148, /* s[] extension */
224  RPMTAG_RECONTEXTS = 1149, /* s[] extension */
225  RPMTAG_POLICIES = 1150, /* s[] selinux *.te policy file. */
226  RPMTAG_PRETRANS = 1151, /* s */
227  RPMTAG_POSTTRANS = 1152, /* s */
228  RPMTAG_PRETRANSPROG = 1153, /* s */
229  RPMTAG_POSTTRANSPROG = 1154, /* s */
230  RPMTAG_DISTTAG = 1155, /* s */
231  RPMTAG_SUGGESTSNAME = 1156, /* s[] extension (unimplemented) */
232 #define RPMTAG_SUGGESTS RPMTAG_SUGGESTSNAME /* s[] (unimplemented) */
233  RPMTAG_SUGGESTSVERSION = 1157, /* s[] extension (unimplemented) */
234  RPMTAG_SUGGESTSFLAGS = 1158, /* i[] extension (unimplemented) */
235  RPMTAG_ENHANCESNAME = 1159, /* s[] extension placeholder (unimplemented) */
236 #define RPMTAG_ENHANCES RPMTAG_ENHANCESNAME /* s[] (unimplemented) */
237  RPMTAG_ENHANCESVERSION = 1160, /* s[] extension placeholder (unimplemented) */
238  RPMTAG_ENHANCESFLAGS = 1161, /* i[] extension placeholder (unimplemented) */
239  RPMTAG_PRIORITY = 1162, /* i[] extension placeholder (unimplemented) */
240  RPMTAG_CVSID = 1163, /* s (unimplemented) */
241 #define RPMTAG_SVNID RPMTAG_CVSID /* s (unimplemented) */
242  RPMTAG_BLINKPKGID = 1164, /* s[] (unimplemented) */
243  RPMTAG_BLINKHDRID = 1165, /* s[] (unimplemented) */
244  RPMTAG_BLINKNEVRA = 1166, /* s[] (unimplemented) */
245  RPMTAG_FLINKPKGID = 1167, /* s[] (unimplemented) */
246  RPMTAG_FLINKHDRID = 1168, /* s[] (unimplemented) */
247  RPMTAG_FLINKNEVRA = 1169, /* s[] (unimplemented) */
248  RPMTAG_PACKAGEORIGIN = 1170, /* s (unimplemented) */
249  RPMTAG_TRIGGERPREIN = 1171, /* internal */
250  RPMTAG_BUILDSUGGESTS = 1172, /* internal (unimplemented) */
251  RPMTAG_BUILDENHANCES = 1173, /* internal (unimplemented) */
252  RPMTAG_SCRIPTSTATES = 1174, /* i[] scriptlet exit codes (unimplemented) */
253  RPMTAG_SCRIPTMETRICS = 1175, /* i[] scriptlet execution times (unimplemented) */
254  RPMTAG_BUILDCPUCLOCK = 1176, /* i (unimplemented) */
255  RPMTAG_FILEDIGESTALGOS = 1177, /* i[] (unimplemented) */
256  RPMTAG_VARIANTS = 1178, /* s[] (unimplemented) */
257  RPMTAG_XMAJOR = 1179, /* i (unimplemented) */
258  RPMTAG_XMINOR = 1180, /* i (unimplemented) */
259  RPMTAG_REPOTAG = 1181, /* s (unimplemented) */
260  RPMTAG_KEYWORDS = 1182, /* s[] (unimplemented) */
261  RPMTAG_BUILDPLATFORMS = 1183, /* s[] (unimplemented) */
262  RPMTAG_PACKAGECOLOR = 1184, /* i (unimplemented) */
263  RPMTAG_PACKAGEPREFCOLOR = 1185, /* i (unimplemented) */
264  RPMTAG_XATTRSDICT = 1186, /* s[] (unimplemented) */
265  RPMTAG_FILEXATTRSX = 1187, /* i[] (unimplemented) */
266  RPMTAG_DEPATTRSDICT = 1188, /* s[] (unimplemented) */
267  RPMTAG_CONFLICTATTRSX = 1189, /* i[] (unimplemented) */
268  RPMTAG_OBSOLETEATTRSX = 1190, /* i[] (unimplemented) */
269  RPMTAG_PROVIDEATTRSX = 1191, /* i[] (unimplemented) */
270  RPMTAG_REQUIREATTRSX = 1192, /* i[] (unimplemented) */
271  RPMTAG_BUILDPROVIDES = 1193, /* internal */
272  RPMTAG_BUILDOBSOLETES = 1194, /* internal */
273  RPMTAG_DBINSTANCE = 1195, /* i extension */
274  RPMTAG_NVRA = 1196, /* s extension */
275  RPMTAG_FILENAMES = 5000, /* s[] extension */
276  RPMTAG_FILEPROVIDE = 5001, /* s[] extension */
277  RPMTAG_FILEREQUIRE = 5002, /* s[] extension */
278  RPMTAG_FSNAMES = 5003, /* s[] extension */
279  RPMTAG_FSSIZES = 5004, /* l[] extension */
280  RPMTAG_TRIGGERCONDS = 5005, /* s[] extension */
281  RPMTAG_TRIGGERTYPE = 5006, /* s[] extension */
282  RPMTAG_ORIGFILENAMES = 5007, /* s[] extension */
283  RPMTAG_LONGFILESIZES = 5008, /* l[] */
284  RPMTAG_LONGSIZE = 5009, /* l */
285  RPMTAG_FILECAPS = 5010, /* s[] */
286  RPMTAG_FILEDIGESTALGO = 5011, /* i file digest algorithm */
287  RPMTAG_BUGURL = 5012, /* s */
288  RPMTAG_EVR = 5013, /* s extension */
289  RPMTAG_NVR = 5014, /* s extension */
290  RPMTAG_NEVR = 5015, /* s extension */
291  RPMTAG_NEVRA = 5016, /* s extension */
292  RPMTAG_HEADERCOLOR = 5017, /* i extension */
293  RPMTAG_VERBOSE = 5018, /* i extension */
294  RPMTAG_EPOCHNUM = 5019, /* i extension */
295  RPMTAG_ORDERNAME = 5035, /* s[] */
296  RPMTAG_ORDERVERSION = 5036, /* s[] */
297  RPMTAG_ORDERFLAGS = 5037, /* i[] */
298 
300 } rpmTag;
301 
302 #define RPMTAG_EXTERNAL_TAG 1000000
303 #define RPMTAG_NOT_FOUND -1
304 
308 typedef enum rpmSigTag_e {
309  RPMSIGTAG_SIZE = 1000,
311  RPMSIGTAG_PGP = 1002,
313  RPMSIGTAG_MD5 = 1004,
314  RPMSIGTAG_GPG = 1005,
315  RPMSIGTAG_PGP5 = 1006,
324 } rpmSigTag;
325 
326 
330 typedef enum rpmTagType_e {
331 #define RPM_MIN_TYPE 0
342 #define RPM_MAX_TYPE 9
343 #define RPM_FORCEFREE_TYPE 0xff
344 #define RPM_MASK_TYPE 0x0000ffff
345 } rpmTagType;
346 
350 typedef enum rpmTagClass_e {
355 } rpmTagClass;
356 
365 typedef enum rpmSubTagType_e {
373 } rpmSubTagType;
374 
378 typedef enum rpmTagReturnType_e {
381  RPM_ARRAY_RETURN_TYPE = 0x00020000,
383  RPM_MASK_RETURN_TYPE = 0xffff0000
385 
391 const char * rpmTagGetName(rpmTag tag);
392 
398 rpmTagType rpmTagGetType(rpmTag tag);
399 
405 rpmTagClass rpmTagGetClass(rpmTag tag);
406 
412 rpmTag rpmTagGetValue(const char * tagstr);
413 
420 
427 int rpmTagGetNames(rpmtd tagnames, int fullname);
428 
429 #ifdef __cplusplus
430 }
431 #endif
432 
433 #endif /* _RPMTAG_H */
enum rpmTagReturnType_e rpmTagReturnType
rpmTagType rpmTagGetType(rpmTag tag)
Return tag data type from value.
#define HEADER_IMMUTABLE
Definition: rpmtag.h:29
#define HEADER_SIGNATURES
Definition: rpmtag.h:28
#define HEADER_IMAGE
Header private tags.
Definition: rpmtag.h:27
rpmTag rpmTagGetValue(const char *tagstr)
Return tag value from name.
enum rpmTag_e rpmTag
Tags identify data in package headers.
rpmTagClass_e
The classes of data in tags from headers.
Definition: rpmtag.h:350
rpmTagReturnType_e
Definition: rpmtag.h:378
rpmSigTag_e
Tags found in signature header from package.
Definition: rpmtag.h:308
rpmTag_e
Tags identify data in package headers.
Definition: rpmtag.h:40
enum rpmSubTagType_e rpmSubTagType
New rpm data types under consideration/development.
rpmTagType_e
The basic types of data in tags from headers.
Definition: rpmtag.h:330
enum rpmTagType_e rpmTagType
The basic types of data in tags from headers.
enum rpmSigTag_e rpmSigTag
Tags found in signature header from package.
#define HEADER_I18NTABLE
Definition: rpmtag.h:31
const char * rpmTagGetName(rpmTag tag)
Return tag name from value.
#define HEADER_REGIONS
Definition: rpmtag.h:30
#define HEADER_SIGBASE
Definition: rpmtag.h:32
enum rpmTagClass_e rpmTagClass
The classes of data in tags from headers.
Container for rpm tag data (from headers or extensions).
Definition: rpmtd.h:23
int rpmTagGetNames(rpmtd tagnames, int fullname)
Return known rpm tag names, sorted by name.
rpmSubTagType_e
New rpm data types under consideration/development.
Definition: rpmtag.h:365
rpmTagClass rpmTagTypeGetClass(rpmTagType type)
Return data class of type.
rpmTagClass rpmTagGetClass(rpmTag tag)
Return tag data class from value.