1 #ifndef _RPMTAG_H 2 #define _RPMTAG_H 3 4 /** \ingroup rpmtag 5 * \file lib/rpmtag.h 6 * 7 * Accessing RPM tags: values, types, ... 8 */ 9 10 #include <rpm/rpmtypes.h> 11 12 #ifdef __cplusplus 13 extern "C" { 14 #endif 15 16 /** 17 * Header private tags. 18 * @note General use tags should start at 1000 (RPM's tag space starts there). 19 */ 20 #define HEADER_IMAGE 61 21 #define HEADER_SIGNATURES 62 22 #define HEADER_IMMUTABLE 63 23 #define HEADER_REGIONS 64 24 #define HEADER_I18NTABLE 100 25 #define HEADER_SIGBASE 256 26 #define HEADER_TAGBASE 1000 27 28 /** \ingroup rpmtag 29 * Tags identify data in package headers. 30 * @note tags should not have value 0! 31 * @note all new tags should be added above 5000 32 */ 33 /** @todo: Somehow supply type **/ 34 typedef enum rpmTag_e { 35 RPMTAG_NOT_FOUND = -1, /*!< Unknown tag */ 36 37 RPMTAG_HEADERIMAGE = HEADER_IMAGE, /*!< Current image. */ 38 RPMTAG_HEADERSIGNATURES = HEADER_SIGNATURES, /*!< Signatures. */ 39 RPMTAG_HEADERIMMUTABLE = HEADER_IMMUTABLE, /*!< Original image. */ 40 RPMTAG_HEADERREGIONS = HEADER_REGIONS, /*!< Regions. */ 41 42 RPMTAG_HEADERI18NTABLE = HEADER_I18NTABLE, /* s[] !< I18N string locales. */ 43 44 /* Retrofit (and uniqify) signature tags for use by rpmTagGetName() and rpmQuery. */ 45 /* the md5 sum was broken *twice* on big endian machines */ 46 /* XXX 2nd underscore prevents tagTable generation */ 47 RPMTAG_SIG_BASE = HEADER_SIGBASE, 48 RPMTAG_SIGSIZE = RPMTAG_SIG_BASE+1, /* i */ 49 RPMTAG_SIGLEMD5_1 = RPMTAG_SIG_BASE+2, /* internal - obsolete */ 50 RPMTAG_SIGPGP = RPMTAG_SIG_BASE+3, /* x */ 51 RPMTAG_SIGLEMD5_2 = RPMTAG_SIG_BASE+4, /* x internal - obsolete */ 52 RPMTAG_SIGMD5 = RPMTAG_SIG_BASE+5, /* x */ 53 #define RPMTAG_PKGID RPMTAG_SIGMD5 /* x */ 54 RPMTAG_SIGGPG = RPMTAG_SIG_BASE+6, /* x */ 55 RPMTAG_SIGPGP5 = RPMTAG_SIG_BASE+7, /* internal - obsolete */ 56 57 RPMTAG_BADSHA1_1 = RPMTAG_SIG_BASE+8, /* internal - obsolete */ 58 RPMTAG_BADSHA1_2 = RPMTAG_SIG_BASE+9, /* internal - obsolete */ 59 RPMTAG_PUBKEYS = RPMTAG_SIG_BASE+10, /* s[] */ 60 RPMTAG_DSAHEADER = RPMTAG_SIG_BASE+11, /* x */ 61 RPMTAG_RSAHEADER = RPMTAG_SIG_BASE+12, /* x */ 62 RPMTAG_SHA1HEADER = RPMTAG_SIG_BASE+13, /* s */ 63 #define RPMTAG_HDRID RPMTAG_SHA1HEADER /* s */ 64 RPMTAG_LONGSIGSIZE = RPMTAG_SIG_BASE+14, /* l */ 65 RPMTAG_LONGARCHIVESIZE = RPMTAG_SIG_BASE+15, /* l */ 66 /* RPMTAG_SIG_BASE+16 reserved */ 67 RPMTAG_SHA256HEADER = RPMTAG_SIG_BASE+17, /* s */ 68 /* RPMTAG_SIG_BASE+18 reserved for RPMSIGTAG_FILESIGNATURES */ 69 /* RPMTAG_SIG_BASE+19 reserved for RPMSIGTAG_FILESIGNATURELENGTH */ 70 71 RPMTAG_NAME = 1000, /* s */ 72 #define RPMTAG_N RPMTAG_NAME /* s */ 73 RPMTAG_VERSION = 1001, /* s */ 74 #define RPMTAG_V RPMTAG_VERSION /* s */ 75 RPMTAG_RELEASE = 1002, /* s */ 76 #define RPMTAG_R RPMTAG_RELEASE /* s */ 77 RPMTAG_EPOCH = 1003, /* i */ 78 #define RPMTAG_E RPMTAG_EPOCH /* i */ 79 RPMTAG_SUMMARY = 1004, /* s{} */ 80 RPMTAG_DESCRIPTION = 1005, /* s{} */ 81 RPMTAG_BUILDTIME = 1006, /* i */ 82 RPMTAG_BUILDHOST = 1007, /* s */ 83 RPMTAG_INSTALLTIME = 1008, /* i */ 84 RPMTAG_SIZE = 1009, /* i */ 85 RPMTAG_DISTRIBUTION = 1010, /* s */ 86 RPMTAG_VENDOR = 1011, /* s */ 87 RPMTAG_GIF = 1012, /* x */ 88 RPMTAG_XPM = 1013, /* x */ 89 RPMTAG_LICENSE = 1014, /* s */ 90 RPMTAG_PACKAGER = 1015, /* s */ 91 RPMTAG_GROUP = 1016, /* s{} */ 92 RPMTAG_CHANGELOG = 1017, /* s[] internal */ 93 RPMTAG_SOURCE = 1018, /* s[] */ 94 RPMTAG_PATCH = 1019, /* s[] */ 95 RPMTAG_URL = 1020, /* s */ 96 RPMTAG_OS = 1021, /* s legacy used int */ 97 RPMTAG_ARCH = 1022, /* s legacy used int */ 98 RPMTAG_PREIN = 1023, /* s */ 99 RPMTAG_POSTIN = 1024, /* s */ 100 RPMTAG_PREUN = 1025, /* s */ 101 RPMTAG_POSTUN = 1026, /* s */ 102 RPMTAG_OLDFILENAMES = 1027, /* s[] obsolete */ 103 RPMTAG_FILESIZES = 1028, /* i[] */ 104 RPMTAG_FILESTATES = 1029, /* c[] */ 105 RPMTAG_FILEMODES = 1030, /* h[] */ 106 RPMTAG_FILEUIDS = 1031, /* i[] internal - obsolete */ 107 RPMTAG_FILEGIDS = 1032, /* i[] internal - obsolete */ 108 RPMTAG_FILERDEVS = 1033, /* h[] */ 109 RPMTAG_FILEMTIMES = 1034, /* i[] */ 110 RPMTAG_FILEDIGESTS = 1035, /* s[] */ 111 #define RPMTAG_FILEMD5S RPMTAG_FILEDIGESTS /* s[] */ 112 RPMTAG_FILELINKTOS = 1036, /* s[] */ 113 RPMTAG_FILEFLAGS = 1037, /* i[] */ 114 RPMTAG_ROOT = 1038, /* internal - obsolete */ 115 RPMTAG_FILEUSERNAME = 1039, /* s[] */ 116 RPMTAG_FILEGROUPNAME = 1040, /* s[] */ 117 RPMTAG_EXCLUDE = 1041, /* internal - obsolete */ 118 RPMTAG_EXCLUSIVE = 1042, /* internal - obsolete */ 119 RPMTAG_ICON = 1043, /* x */ 120 RPMTAG_SOURCERPM = 1044, /* s */ 121 RPMTAG_FILEVERIFYFLAGS = 1045, /* i[] */ 122 RPMTAG_ARCHIVESIZE = 1046, /* i */ 123 RPMTAG_PROVIDENAME = 1047, /* s[] */ 124 #define RPMTAG_PROVIDES RPMTAG_PROVIDENAME /* s[] */ 125 #define RPMTAG_P RPMTAG_PROVIDENAME /* s[] */ 126 RPMTAG_REQUIREFLAGS = 1048, /* i[] */ 127 RPMTAG_REQUIRENAME = 1049, /* s[] */ 128 #define RPMTAG_REQUIRES RPMTAG_REQUIRENAME /* s[] */ 129 RPMTAG_REQUIREVERSION = 1050, /* s[] */ 130 RPMTAG_NOSOURCE = 1051, /* i[] */ 131 RPMTAG_NOPATCH = 1052, /* i[] */ 132 RPMTAG_CONFLICTFLAGS = 1053, /* i[] */ 133 RPMTAG_CONFLICTNAME = 1054, /* s[] */ 134 #define RPMTAG_CONFLICTS RPMTAG_CONFLICTNAME /* s[] */ 135 #define RPMTAG_C RPMTAG_CONFLICTNAME /* s[] */ 136 RPMTAG_CONFLICTVERSION = 1055, /* s[] */ 137 RPMTAG_DEFAULTPREFIX = 1056, /* s internal - deprecated */ 138 RPMTAG_BUILDROOT = 1057, /* s internal - obsolete */ 139 RPMTAG_INSTALLPREFIX = 1058, /* s internal - deprecated */ 140 RPMTAG_EXCLUDEARCH = 1059, /* s[] */ 141 RPMTAG_EXCLUDEOS = 1060, /* s[] */ 142 RPMTAG_EXCLUSIVEARCH = 1061, /* s[] */ 143 RPMTAG_EXCLUSIVEOS = 1062, /* s[] */ 144 RPMTAG_AUTOREQPROV = 1063, /* s internal */ 145 RPMTAG_RPMVERSION = 1064, /* s */ 146 RPMTAG_TRIGGERSCRIPTS = 1065, /* s[] */ 147 RPMTAG_TRIGGERNAME = 1066, /* s[] */ 148 RPMTAG_TRIGGERVERSION = 1067, /* s[] */ 149 RPMTAG_TRIGGERFLAGS = 1068, /* i[] */ 150 RPMTAG_TRIGGERINDEX = 1069, /* i[] */ 151 RPMTAG_VERIFYSCRIPT = 1079, /* s */ 152 RPMTAG_CHANGELOGTIME = 1080, /* i[] */ 153 RPMTAG_CHANGELOGNAME = 1081, /* s[] */ 154 RPMTAG_CHANGELOGTEXT = 1082, /* s[] */ 155 RPMTAG_BROKENMD5 = 1083, /* internal - obsolete */ 156 RPMTAG_PREREQ = 1084, /* internal */ 157 RPMTAG_PREINPROG = 1085, /* s[] */ 158 RPMTAG_POSTINPROG = 1086, /* s[] */ 159 RPMTAG_PREUNPROG = 1087, /* s[] */ 160 RPMTAG_POSTUNPROG = 1088, /* s[] */ 161 RPMTAG_BUILDARCHS = 1089, /* s[] */ 162 RPMTAG_OBSOLETENAME = 1090, /* s[] */ 163 #define RPMTAG_OBSOLETES RPMTAG_OBSOLETENAME /* s[] */ 164 #define RPMTAG_O RPMTAG_OBSOLETENAME /* s[] */ 165 RPMTAG_VERIFYSCRIPTPROG = 1091, /* s[] */ 166 RPMTAG_TRIGGERSCRIPTPROG = 1092, /* s[] */ 167 RPMTAG_DOCDIR = 1093, /* internal */ 168 RPMTAG_COOKIE = 1094, /* s */ 169 RPMTAG_FILEDEVICES = 1095, /* i[] */ 170 RPMTAG_FILEINODES = 1096, /* i[] */ 171 RPMTAG_FILELANGS = 1097, /* s[] */ 172 RPMTAG_PREFIXES = 1098, /* s[] */ 173 RPMTAG_INSTPREFIXES = 1099, /* s[] */ 174 RPMTAG_TRIGGERIN = 1100, /* internal */ 175 RPMTAG_TRIGGERUN = 1101, /* internal */ 176 RPMTAG_TRIGGERPOSTUN = 1102, /* internal */ 177 RPMTAG_AUTOREQ = 1103, /* internal */ 178 RPMTAG_AUTOPROV = 1104, /* internal */ 179 RPMTAG_CAPABILITY = 1105, /* i internal - obsolete */ 180 RPMTAG_SOURCEPACKAGE = 1106, /* i */ 181 RPMTAG_OLDORIGFILENAMES = 1107, /* internal - obsolete */ 182 RPMTAG_BUILDPREREQ = 1108, /* internal */ 183 RPMTAG_BUILDREQUIRES = 1109, /* internal */ 184 RPMTAG_BUILDCONFLICTS = 1110, /* internal */ 185 RPMTAG_BUILDMACROS = 1111, /* internal - unused */ 186 RPMTAG_PROVIDEFLAGS = 1112, /* i[] */ 187 RPMTAG_PROVIDEVERSION = 1113, /* s[] */ 188 RPMTAG_OBSOLETEFLAGS = 1114, /* i[] */ 189 RPMTAG_OBSOLETEVERSION = 1115, /* s[] */ 190 RPMTAG_DIRINDEXES = 1116, /* i[] */ 191 RPMTAG_BASENAMES = 1117, /* s[] */ 192 RPMTAG_DIRNAMES = 1118, /* s[] */ 193 RPMTAG_ORIGDIRINDEXES = 1119, /* i[] relocation */ 194 RPMTAG_ORIGBASENAMES = 1120, /* s[] relocation */ 195 RPMTAG_ORIGDIRNAMES = 1121, /* s[] relocation */ 196 RPMTAG_OPTFLAGS = 1122, /* s */ 197 RPMTAG_DISTURL = 1123, /* s */ 198 RPMTAG_PAYLOADFORMAT = 1124, /* s */ 199 RPMTAG_PAYLOADCOMPRESSOR = 1125, /* s */ 200 RPMTAG_PAYLOADFLAGS = 1126, /* s */ 201 RPMTAG_INSTALLCOLOR = 1127, /* i transaction color when installed */ 202 RPMTAG_INSTALLTID = 1128, /* i */ 203 RPMTAG_REMOVETID = 1129, /* i */ 204 RPMTAG_SHA1RHN = 1130, /* internal - obsolete */ 205 RPMTAG_RHNPLATFORM = 1131, /* s internal - obsolete */ 206 RPMTAG_PLATFORM = 1132, /* s */ 207 RPMTAG_PATCHESNAME = 1133, /* s[] deprecated placeholder (SuSE) */ 208 RPMTAG_PATCHESFLAGS = 1134, /* i[] deprecated placeholder (SuSE) */ 209 RPMTAG_PATCHESVERSION = 1135, /* s[] deprecated placeholder (SuSE) */ 210 RPMTAG_CACHECTIME = 1136, /* i internal - obsolete */ 211 RPMTAG_CACHEPKGPATH = 1137, /* s internal - obsolete */ 212 RPMTAG_CACHEPKGSIZE = 1138, /* i internal - obsolete */ 213 RPMTAG_CACHEPKGMTIME = 1139, /* i internal - obsolete */ 214 RPMTAG_FILECOLORS = 1140, /* i[] */ 215 RPMTAG_FILECLASS = 1141, /* i[] */ 216 RPMTAG_CLASSDICT = 1142, /* s[] */ 217 RPMTAG_FILEDEPENDSX = 1143, /* i[] */ 218 RPMTAG_FILEDEPENDSN = 1144, /* i[] */ 219 RPMTAG_DEPENDSDICT = 1145, /* i[] */ 220 RPMTAG_SOURCEPKGID = 1146, /* x */ 221 RPMTAG_FILECONTEXTS = 1147, /* s[] - obsolete */ 222 RPMTAG_FSCONTEXTS = 1148, /* s[] extension */ 223 RPMTAG_RECONTEXTS = 1149, /* s[] extension */ 224 RPMTAG_POLICIES = 1150, /* s[] selinux *.te policy file. */ 225 RPMTAG_PRETRANS = 1151, /* s */ 226 RPMTAG_POSTTRANS = 1152, /* s */ 227 RPMTAG_PRETRANSPROG = 1153, /* s[] */ 228 RPMTAG_POSTTRANSPROG = 1154, /* s[] */ 229 RPMTAG_DISTTAG = 1155, /* s */ 230 RPMTAG_OLDSUGGESTSNAME = 1156, /* s[] - obsolete */ 231 #define RPMTAG_OLDSUGGESTS RPMTAG_OLDSUGGESTSNAME /* s[] - obsolete */ 232 RPMTAG_OLDSUGGESTSVERSION = 1157, /* s[] - obsolete */ 233 RPMTAG_OLDSUGGESTSFLAGS = 1158, /* i[] - obsolete */ 234 RPMTAG_OLDENHANCESNAME = 1159, /* s[] - obsolete */ 235 #define RPMTAG_OLDENHANCES RPMTAG_OLDENHANCESNAME /* s[] - obsolete */ 236 RPMTAG_OLDENHANCESVERSION = 1160, /* s[] - obsolete */ 237 RPMTAG_OLDENHANCESFLAGS = 1161, /* i[] - obsolete */ 238 RPMTAG_PRIORITY = 1162, /* i[] extension placeholder (unimplemented) */ 239 RPMTAG_CVSID = 1163, /* s (unimplemented) */ 240 #define RPMTAG_SVNID RPMTAG_CVSID /* s (unimplemented) */ 241 RPMTAG_BLINKPKGID = 1164, /* s[] (unimplemented) */ 242 RPMTAG_BLINKHDRID = 1165, /* s[] (unimplemented) */ 243 RPMTAG_BLINKNEVRA = 1166, /* s[] (unimplemented) */ 244 RPMTAG_FLINKPKGID = 1167, /* s[] (unimplemented) */ 245 RPMTAG_FLINKHDRID = 1168, /* s[] (unimplemented) */ 246 RPMTAG_FLINKNEVRA = 1169, /* s[] (unimplemented) */ 247 RPMTAG_PACKAGEORIGIN = 1170, /* s (unimplemented) */ 248 RPMTAG_TRIGGERPREIN = 1171, /* internal */ 249 RPMTAG_BUILDSUGGESTS = 1172, /* internal (unimplemented) */ 250 RPMTAG_BUILDENHANCES = 1173, /* internal (unimplemented) */ 251 RPMTAG_SCRIPTSTATES = 1174, /* i[] scriptlet exit codes (unimplemented) */ 252 RPMTAG_SCRIPTMETRICS = 1175, /* i[] scriptlet execution times (unimplemented) */ 253 RPMTAG_BUILDCPUCLOCK = 1176, /* i (unimplemented) */ 254 RPMTAG_FILEDIGESTALGOS = 1177, /* i[] (unimplemented) */ 255 RPMTAG_VARIANTS = 1178, /* s[] (unimplemented) */ 256 RPMTAG_XMAJOR = 1179, /* i (unimplemented) */ 257 RPMTAG_XMINOR = 1180, /* i (unimplemented) */ 258 RPMTAG_REPOTAG = 1181, /* s (unimplemented) */ 259 RPMTAG_KEYWORDS = 1182, /* s[] (unimplemented) */ 260 RPMTAG_BUILDPLATFORMS = 1183, /* s[] (unimplemented) */ 261 RPMTAG_PACKAGECOLOR = 1184, /* i (unimplemented) */ 262 RPMTAG_PACKAGEPREFCOLOR = 1185, /* i (unimplemented) */ 263 RPMTAG_XATTRSDICT = 1186, /* s[] (unimplemented) */ 264 RPMTAG_FILEXATTRSX = 1187, /* i[] (unimplemented) */ 265 RPMTAG_DEPATTRSDICT = 1188, /* s[] (unimplemented) */ 266 RPMTAG_CONFLICTATTRSX = 1189, /* i[] (unimplemented) */ 267 RPMTAG_OBSOLETEATTRSX = 1190, /* i[] (unimplemented) */ 268 RPMTAG_PROVIDEATTRSX = 1191, /* i[] (unimplemented) */ 269 RPMTAG_REQUIREATTRSX = 1192, /* i[] (unimplemented) */ 270 RPMTAG_BUILDPROVIDES = 1193, /* internal (unimplemented) */ 271 RPMTAG_BUILDOBSOLETES = 1194, /* internal (unimplemented) */ 272 RPMTAG_DBINSTANCE = 1195, /* i extension */ 273 RPMTAG_NVRA = 1196, /* s extension */ 274 275 /* tags 1997-4999 reserved */ 276 RPMTAG_FILENAMES = 5000, /* s[] extension */ 277 RPMTAG_FILEPROVIDE = 5001, /* s[] extension */ 278 RPMTAG_FILEREQUIRE = 5002, /* s[] extension */ 279 RPMTAG_FSNAMES = 5003, /* s[] (unimplemented) */ 280 RPMTAG_FSSIZES = 5004, /* l[] (unimplemented) */ 281 RPMTAG_TRIGGERCONDS = 5005, /* s[] extension */ 282 RPMTAG_TRIGGERTYPE = 5006, /* s[] extension */ 283 RPMTAG_ORIGFILENAMES = 5007, /* s[] extension */ 284 RPMTAG_LONGFILESIZES = 5008, /* l[] */ 285 RPMTAG_LONGSIZE = 5009, /* l */ 286 RPMTAG_FILECAPS = 5010, /* s[] */ 287 RPMTAG_FILEDIGESTALGO = 5011, /* i file digest algorithm */ 288 RPMTAG_BUGURL = 5012, /* s */ 289 RPMTAG_EVR = 5013, /* s extension */ 290 RPMTAG_NVR = 5014, /* s extension */ 291 RPMTAG_NEVR = 5015, /* s extension */ 292 RPMTAG_NEVRA = 5016, /* s extension */ 293 RPMTAG_HEADERCOLOR = 5017, /* i extension */ 294 RPMTAG_VERBOSE = 5018, /* i extension */ 295 RPMTAG_EPOCHNUM = 5019, /* i extension */ 296 RPMTAG_PREINFLAGS = 5020, /* i */ 297 RPMTAG_POSTINFLAGS = 5021, /* i */ 298 RPMTAG_PREUNFLAGS = 5022, /* i */ 299 RPMTAG_POSTUNFLAGS = 5023, /* i */ 300 RPMTAG_PRETRANSFLAGS = 5024, /* i */ 301 RPMTAG_POSTTRANSFLAGS = 5025, /* i */ 302 RPMTAG_VERIFYSCRIPTFLAGS = 5026, /* i */ 303 RPMTAG_TRIGGERSCRIPTFLAGS = 5027, /* i[] */ 304 RPMTAG_COLLECTIONS = 5029, /* s[] list of collections (unimplemented) */ 305 RPMTAG_POLICYNAMES = 5030, /* s[] */ 306 RPMTAG_POLICYTYPES = 5031, /* s[] */ 307 RPMTAG_POLICYTYPESINDEXES = 5032, /* i[] */ 308 RPMTAG_POLICYFLAGS = 5033, /* i[] */ 309 RPMTAG_VCS = 5034, /* s */ 310 RPMTAG_ORDERNAME = 5035, /* s[] */ 311 RPMTAG_ORDERVERSION = 5036, /* s[] */ 312 RPMTAG_ORDERFLAGS = 5037, /* i[] */ 313 RPMTAG_MSSFMANIFEST = 5038, /* s[] reservation (unimplemented) */ 314 RPMTAG_MSSFDOMAIN = 5039, /* s[] reservation (unimplemented) */ 315 RPMTAG_INSTFILENAMES = 5040, /* s[] extension */ 316 RPMTAG_REQUIRENEVRS = 5041, /* s[] extension */ 317 RPMTAG_PROVIDENEVRS = 5042, /* s[] extension */ 318 RPMTAG_OBSOLETENEVRS = 5043, /* s[] extension */ 319 RPMTAG_CONFLICTNEVRS = 5044, /* s[] extension */ 320 RPMTAG_FILENLINKS = 5045, /* i[] extension */ 321 RPMTAG_RECOMMENDNAME = 5046, /* s[] */ 322 #define RPMTAG_RECOMMENDS RPMTAG_RECOMMENDNAME /* s[] */ 323 RPMTAG_RECOMMENDVERSION = 5047, /* s[] */ 324 RPMTAG_RECOMMENDFLAGS = 5048, /* i[] */ 325 RPMTAG_SUGGESTNAME = 5049, /* s[] */ 326 #define RPMTAG_SUGGESTS RPMTAG_SUGGESTNAME /* s[] */ 327 RPMTAG_SUGGESTVERSION = 5050, /* s[] */ 328 RPMTAG_SUGGESTFLAGS = 5051, /* i[] */ 329 RPMTAG_SUPPLEMENTNAME = 5052, /* s[] */ 330 #define RPMTAG_SUPPLEMENTS RPMTAG_SUPPLEMENTNAME /* s[] */ 331 RPMTAG_SUPPLEMENTVERSION = 5053, /* s[] */ 332 RPMTAG_SUPPLEMENTFLAGS = 5054, /* i[] */ 333 RPMTAG_ENHANCENAME = 5055, /* s[] */ 334 #define RPMTAG_ENHANCES RPMTAG_ENHANCENAME /* s[] */ 335 RPMTAG_ENHANCEVERSION = 5056, /* s[] */ 336 RPMTAG_ENHANCEFLAGS = 5057, /* i[] */ 337 RPMTAG_RECOMMENDNEVRS = 5058, /* s[] extension */ 338 RPMTAG_SUGGESTNEVRS = 5059, /* s[] extension */ 339 RPMTAG_SUPPLEMENTNEVRS = 5060, /* s[] extension */ 340 RPMTAG_ENHANCENEVRS = 5061, /* s[] extension */ 341 RPMTAG_ENCODING = 5062, /* s */ 342 RPMTAG_FILETRIGGERIN = 5063, /* internal */ 343 RPMTAG_FILETRIGGERUN = 5064, /* internal */ 344 RPMTAG_FILETRIGGERPOSTUN = 5065, /* internal */ 345 RPMTAG_FILETRIGGERSCRIPTS = 5066, /* s[] */ 346 RPMTAG_FILETRIGGERSCRIPTPROG = 5067, /* s[] */ 347 RPMTAG_FILETRIGGERSCRIPTFLAGS = 5068, /* i[] */ 348 RPMTAG_FILETRIGGERNAME = 5069, /* s[] */ 349 RPMTAG_FILETRIGGERINDEX = 5070, /* i[] */ 350 RPMTAG_FILETRIGGERVERSION = 5071, /* s[] */ 351 RPMTAG_FILETRIGGERFLAGS = 5072, /* i[] */ 352 RPMTAG_TRANSFILETRIGGERIN = 5073, /* internal */ 353 RPMTAG_TRANSFILETRIGGERUN = 5074, /* internal */ 354 RPMTAG_TRANSFILETRIGGERPOSTUN = 5075, /* internal */ 355 RPMTAG_TRANSFILETRIGGERSCRIPTS = 5076, /* s[] */ 356 RPMTAG_TRANSFILETRIGGERSCRIPTPROG = 5077, /* s[] */ 357 RPMTAG_TRANSFILETRIGGERSCRIPTFLAGS = 5078, /* i[] */ 358 RPMTAG_TRANSFILETRIGGERNAME = 5079, /* s[] */ 359 RPMTAG_TRANSFILETRIGGERINDEX = 5080, /* i[] */ 360 RPMTAG_TRANSFILETRIGGERVERSION = 5081, /* s[] */ 361 RPMTAG_TRANSFILETRIGGERFLAGS = 5082, /* i[] */ 362 RPMTAG_REMOVEPATHPOSTFIXES = 5083, /* s internal */ 363 RPMTAG_FILETRIGGERPRIORITIES = 5084, /* i[] */ 364 RPMTAG_TRANSFILETRIGGERPRIORITIES = 5085, /* i[] */ 365 RPMTAG_FILETRIGGERCONDS = 5086, /* s[] extension */ 366 RPMTAG_FILETRIGGERTYPE = 5087, /* s[] extension */ 367 RPMTAG_TRANSFILETRIGGERCONDS = 5088, /* s[] extension */ 368 RPMTAG_TRANSFILETRIGGERTYPE = 5089, /* s[] extension */ 369 RPMTAG_FILESIGNATURES = 5090, /* s[] */ 370 RPMTAG_FILESIGNATURELENGTH = 5091, /* i */ 371 RPMTAG_PAYLOADDIGEST = 5092, /* s[] */ 372 RPMTAG_PAYLOADDIGESTALGO = 5093, /* i */ 373 RPMTAG_AUTOINSTALLED = 5094, /* i reservation (unimplemented) */ 374 RPMTAG_IDENTITY = 5095, /* s reservation (unimplemented) */ 375 RPMTAG_MODULARITYLABEL = 5096, /* s */ 376 RPMTAG_PAYLOADDIGESTALT = 5097, /* s[] */ 377 378 RPMTAG_FIRSTFREE_TAG /*!< internal */ 379 } rpmTag; 380 381 #define RPMTAG_EXTERNAL_TAG 1000000 382 383 /** \ingroup rpmtag 384 * Rpm database index tags. 385 */ 386 typedef enum rpmDbiTag_e { 387 RPMDBI_PACKAGES = 0, /* Installed package headers. */ 388 RPMDBI_LABEL = 2, /* NEVRA label pseudo index */ 389 RPMDBI_NAME = RPMTAG_NAME, 390 RPMDBI_BASENAMES = RPMTAG_BASENAMES, 391 RPMDBI_GROUP = RPMTAG_GROUP, 392 RPMDBI_REQUIRENAME = RPMTAG_REQUIRENAME, 393 RPMDBI_PROVIDENAME = RPMTAG_PROVIDENAME, 394 RPMDBI_CONFLICTNAME = RPMTAG_CONFLICTNAME, 395 RPMDBI_OBSOLETENAME = RPMTAG_OBSOLETENAME, 396 RPMDBI_TRIGGERNAME = RPMTAG_TRIGGERNAME, 397 RPMDBI_DIRNAMES = RPMTAG_DIRNAMES, 398 RPMDBI_INSTALLTID = RPMTAG_INSTALLTID, 399 RPMDBI_SIGMD5 = RPMTAG_SIGMD5, 400 RPMDBI_SHA1HEADER = RPMTAG_SHA1HEADER, 401 RPMDBI_INSTFILENAMES = RPMTAG_INSTFILENAMES, 402 RPMDBI_FILETRIGGERNAME = RPMTAG_FILETRIGGERNAME, 403 RPMDBI_TRANSFILETRIGGERNAME = RPMTAG_TRANSFILETRIGGERNAME, 404 RPMDBI_RECOMMENDNAME = RPMTAG_RECOMMENDNAME, 405 RPMDBI_SUGGESTNAME = RPMTAG_SUGGESTNAME, 406 RPMDBI_SUPPLEMENTNAME = RPMTAG_SUPPLEMENTNAME, 407 RPMDBI_ENHANCENAME = RPMTAG_ENHANCENAME, 408 } rpmDbiTag; 409 410 /** \ingroup signature 411 * Tags found in signature header from package. 412 */ 413 typedef enum rpmSigTag_e { 414 RPMSIGTAG_SIZE = 1000, /*!< internal Header+Payload size (32bit) in bytes. */ 415 RPMSIGTAG_LEMD5_1 = 1001, /*!< internal Broken MD5, take 1 @deprecated legacy. */ 416 RPMSIGTAG_PGP = 1002, /*!< internal PGP 2.6.3 signature. */ 417 RPMSIGTAG_LEMD5_2 = 1003, /*!< internal Broken MD5, take 2 @deprecated legacy. */ 418 RPMSIGTAG_MD5 = 1004, /*!< internal MD5 signature. */ 419 RPMSIGTAG_GPG = 1005, /*!< internal GnuPG signature. */ 420 RPMSIGTAG_PGP5 = 1006, /*!< internal PGP5 signature @deprecated legacy. */ 421 RPMSIGTAG_PAYLOADSIZE = 1007,/*!< internal uncompressed payload size (32bit) in bytes. */ 422 RPMSIGTAG_RESERVEDSPACE = 1008,/*!< internal space reserved for signatures */ 423 RPMSIGTAG_BADSHA1_1 = RPMTAG_BADSHA1_1, /*!< internal Broken SHA1, take 1. */ 424 RPMSIGTAG_BADSHA1_2 = RPMTAG_BADSHA1_2, /*!< internal Broken SHA1, take 2. */ 425 RPMSIGTAG_DSA = RPMTAG_DSAHEADER, /*!< internal DSA header signature. */ 426 RPMSIGTAG_RSA = RPMTAG_RSAHEADER, /*!< internal RSA header signature. */ 427 RPMSIGTAG_SHA1 = RPMTAG_SHA1HEADER, /*!< internal sha1 header digest. */ 428 RPMSIGTAG_LONGSIZE = RPMTAG_LONGSIGSIZE, /*!< internal Header+Payload size (64bit) in bytes. */ 429 RPMSIGTAG_LONGARCHIVESIZE = RPMTAG_LONGARCHIVESIZE, /*!< internal uncompressed payload size (64bit) in bytes. */ 430 RPMSIGTAG_SHA256 = RPMTAG_SHA256HEADER, 431 RPMSIGTAG_FILESIGNATURES = RPMTAG_SIG_BASE + 18, 432 RPMSIGTAG_FILESIGNATURELENGTH = RPMTAG_SIG_BASE + 19, 433 } rpmSigTag; 434 435 436 /** \ingroup header 437 * The basic types of data in tags from headers. 438 */ 439 typedef enum rpmTagType_e { 440 #define RPM_MIN_TYPE 0 441 RPM_NULL_TYPE = 0, 442 RPM_CHAR_TYPE = 1, 443 RPM_INT8_TYPE = 2, 444 RPM_INT16_TYPE = 3, 445 RPM_INT32_TYPE = 4, 446 RPM_INT64_TYPE = 5, 447 RPM_STRING_TYPE = 6, 448 RPM_BIN_TYPE = 7, 449 RPM_STRING_ARRAY_TYPE = 8, 450 RPM_I18NSTRING_TYPE = 9, 451 #define RPM_MAX_TYPE 9 452 #define RPM_FORCEFREE_TYPE 0xff 453 #define RPM_MASK_TYPE 0x0000ffff 454 } rpmTagType; 455 456 /** \ingroup rpmtag 457 * The classes of data in tags from headers. 458 */ 459 typedef enum rpmTagClass_e { 460 RPM_NULL_CLASS = 0, 461 RPM_NUMERIC_CLASS = 1, 462 RPM_STRING_CLASS = 2, 463 RPM_BINARY_CLASS = 3, 464 } rpmTagClass; 465 466 /** \ingroup header 467 * * Identify how to return the header data type. 468 * */ 469 enum rpmTagReturnType_e { 470 RPM_ANY_RETURN_TYPE = 0, 471 RPM_SCALAR_RETURN_TYPE = 0x00010000, 472 RPM_ARRAY_RETURN_TYPE = 0x00020000, 473 RPM_MAPPING_RETURN_TYPE = 0x00040000, 474 RPM_MASK_RETURN_TYPE = 0xffff0000 475 }; 476 477 typedef rpmFlags rpmTagReturnType; 478 479 /** \ingroup rpmtag 480 * Return tag name from value. 481 * @param tag tag value 482 * @return tag name, "(unknown)" on not found 483 */ 484 const char * rpmTagGetName(rpmTagVal tag); 485 486 /** \ingroup rpmtag 487 * Return tag data type from value. 488 * @param tag tag value 489 * @return tag data type + return type, RPM_NULL_TYPE on not found. 490 */ 491 rpmTagType rpmTagGetType(rpmTagVal tag); 492 493 /** \ingroup rpmtag 494 * Return tag data type from value. 495 * @param tag tag value 496 * @return tag data type, RPM_NULL_TYPE on not found. 497 */ 498 rpmTagType rpmTagGetTagType(rpmTagVal tag); 499 500 /** \ingroup rpmtag 501 * Return tag data type from value. 502 * @param tag tag value 503 * @return tag data return type, RPM_NULL_TYPE on not found. 504 */ 505 rpmTagReturnType rpmTagGetReturnType(rpmTagVal tag); 506 507 /** \ingroup rpmtag 508 * Return tag data class from value. 509 * @param tag tag value 510 * @return tag data class, RPM_NULL_CLASS on not found. 511 */ 512 rpmTagClass rpmTagGetClass(rpmTagVal tag); 513 514 /** \ingroup rpmtag 515 * Return tag value from name. 516 * @param tagstr name of tag 517 * @return tag value, -1 on not found 518 */ 519 rpmTagVal rpmTagGetValue(const char * tagstr); 520 521 /** \ingroup rpmtag 522 * Return data class of type 523 * @param type tag type 524 * @return data class, RPM_NULL_CLASS on unknown. 525 */ 526 rpmTagClass rpmTagTypeGetClass(rpmTagType type); 527 528 /** \ingroup rpmtag 529 * Return known rpm tag names, sorted by name. 530 * @retval tagnames tag container of string array type 531 * @param fullname return short or full name 532 * @return number of tag names, 0 on error 533 */ 534 int rpmTagGetNames(rpmtd tagnames, int fullname); 535 536 #ifdef __cplusplus 537 } 538 #endif 539 540 #endif /* _RPMTAG_H */ 541