00001 #ifndef _RPMTAG_H
00002 #define _RPMTAG_H
00003
00004 #include <rpm/rpmtypes.h>
00005
00006 #ifdef __cplusplus
00007 extern "C" {
00008 #endif
00009
00014 #define HEADER_IMAGE 61
00015 #define HEADER_SIGNATURES 62
00016 #define HEADER_IMMUTABLE 63
00017 #define HEADER_REGIONS 64
00018 #define HEADER_I18NTABLE 100
00019 #define HEADER_SIGBASE 256
00020 #define HEADER_TAGBASE 1000
00021
00028 typedef enum rpmTag_e {
00029 RPMTAG_NOT_FOUND = -1,
00031 RPMTAG_HEADERIMAGE = HEADER_IMAGE,
00032 RPMTAG_HEADERSIGNATURES = HEADER_SIGNATURES,
00033 RPMTAG_HEADERIMMUTABLE = HEADER_IMMUTABLE,
00034 RPMTAG_HEADERREGIONS = HEADER_REGIONS,
00036 RPMTAG_HEADERI18NTABLE = HEADER_I18NTABLE,
00037
00038
00039
00040
00041 RPMTAG_SIG_BASE = HEADER_SIGBASE,
00042 RPMTAG_SIGSIZE = RPMTAG_SIG_BASE+1,
00043 RPMTAG_SIGLEMD5_1 = RPMTAG_SIG_BASE+2,
00044 RPMTAG_SIGPGP = RPMTAG_SIG_BASE+3,
00045 RPMTAG_SIGLEMD5_2 = RPMTAG_SIG_BASE+4,
00046 RPMTAG_SIGMD5 = RPMTAG_SIG_BASE+5,
00047 #define RPMTAG_PKGID RPMTAG_SIGMD5
00048 RPMTAG_SIGGPG = RPMTAG_SIG_BASE+6,
00049 RPMTAG_SIGPGP5 = RPMTAG_SIG_BASE+7,
00050
00051 RPMTAG_BADSHA1_1 = RPMTAG_SIG_BASE+8,
00052 RPMTAG_BADSHA1_2 = RPMTAG_SIG_BASE+9,
00053 RPMTAG_PUBKEYS = RPMTAG_SIG_BASE+10,
00054 RPMTAG_DSAHEADER = RPMTAG_SIG_BASE+11,
00055 RPMTAG_RSAHEADER = RPMTAG_SIG_BASE+12,
00056 RPMTAG_SHA1HEADER = RPMTAG_SIG_BASE+13,
00057 #define RPMTAG_HDRID RPMTAG_SHA1HEADER
00058 RPMTAG_LONGSIGSIZE = RPMTAG_SIG_BASE+14,
00059 RPMTAG_LONGARCHIVESIZE = RPMTAG_SIG_BASE+15,
00060
00061 RPMTAG_NAME = 1000,
00062 #define RPMTAG_N RPMTAG_NAME
00063 RPMTAG_VERSION = 1001,
00064 #define RPMTAG_V RPMTAG_VERSION
00065 RPMTAG_RELEASE = 1002,
00066 #define RPMTAG_R RPMTAG_RELEASE
00067 RPMTAG_EPOCH = 1003,
00068 #define RPMTAG_E RPMTAG_EPOCH
00069 RPMTAG_SUMMARY = 1004,
00070 RPMTAG_DESCRIPTION = 1005,
00071 RPMTAG_BUILDTIME = 1006,
00072 RPMTAG_BUILDHOST = 1007,
00073 RPMTAG_INSTALLTIME = 1008,
00074 RPMTAG_SIZE = 1009,
00075 RPMTAG_DISTRIBUTION = 1010,
00076 RPMTAG_VENDOR = 1011,
00077 RPMTAG_GIF = 1012,
00078 RPMTAG_XPM = 1013,
00079 RPMTAG_LICENSE = 1014,
00080 RPMTAG_PACKAGER = 1015,
00081 RPMTAG_GROUP = 1016,
00082 RPMTAG_CHANGELOG = 1017,
00083 RPMTAG_SOURCE = 1018,
00084 RPMTAG_PATCH = 1019,
00085 RPMTAG_URL = 1020,
00086 RPMTAG_OS = 1021,
00087 RPMTAG_ARCH = 1022,
00088 RPMTAG_PREIN = 1023,
00089 RPMTAG_POSTIN = 1024,
00090 RPMTAG_PREUN = 1025,
00091 RPMTAG_POSTUN = 1026,
00092 RPMTAG_OLDFILENAMES = 1027,
00093 RPMTAG_FILESIZES = 1028,
00094 RPMTAG_FILESTATES = 1029,
00095 RPMTAG_FILEMODES = 1030,
00096 RPMTAG_FILEUIDS = 1031,
00097 RPMTAG_FILEGIDS = 1032,
00098 RPMTAG_FILERDEVS = 1033,
00099 RPMTAG_FILEMTIMES = 1034,
00100 RPMTAG_FILEDIGESTS = 1035,
00101 #define RPMTAG_FILEMD5S RPMTAG_FILEDIGESTS
00102 RPMTAG_FILELINKTOS = 1036,
00103 RPMTAG_FILEFLAGS = 1037,
00104 RPMTAG_ROOT = 1038,
00105 RPMTAG_FILEUSERNAME = 1039,
00106 RPMTAG_FILEGROUPNAME = 1040,
00107 RPMTAG_EXCLUDE = 1041,
00108 RPMTAG_EXCLUSIVE = 1042,
00109 RPMTAG_ICON = 1043,
00110 RPMTAG_SOURCERPM = 1044,
00111 RPMTAG_FILEVERIFYFLAGS = 1045,
00112 RPMTAG_ARCHIVESIZE = 1046,
00113 RPMTAG_PROVIDENAME = 1047,
00114 #define RPMTAG_PROVIDES RPMTAG_PROVIDENAME
00115 #define RPMTAG_P RPMTAG_PROVIDENAME
00116 RPMTAG_REQUIREFLAGS = 1048,
00117 RPMTAG_REQUIRENAME = 1049,
00118 #define RPMTAG_REQUIRES RPMTAG_REQUIRENAME
00119 RPMTAG_REQUIREVERSION = 1050,
00120 RPMTAG_NOSOURCE = 1051,
00121 RPMTAG_NOPATCH = 1052,
00122 RPMTAG_CONFLICTFLAGS = 1053,
00123 RPMTAG_CONFLICTNAME = 1054,
00124 #define RPMTAG_CONFLICTS RPMTAG_CONFLICTNAME
00125 #define RPMTAG_C RPMTAG_CONFLICTNAME
00126 RPMTAG_CONFLICTVERSION = 1055,
00127 RPMTAG_DEFAULTPREFIX = 1056,
00128 RPMTAG_BUILDROOT = 1057,
00129 RPMTAG_INSTALLPREFIX = 1058,
00130 RPMTAG_EXCLUDEARCH = 1059,
00131 RPMTAG_EXCLUDEOS = 1060,
00132 RPMTAG_EXCLUSIVEARCH = 1061,
00133 RPMTAG_EXCLUSIVEOS = 1062,
00134 RPMTAG_AUTOREQPROV = 1063,
00135 RPMTAG_RPMVERSION = 1064,
00136 RPMTAG_TRIGGERSCRIPTS = 1065,
00137 RPMTAG_TRIGGERNAME = 1066,
00138 RPMTAG_TRIGGERVERSION = 1067,
00139 RPMTAG_TRIGGERFLAGS = 1068,
00140 RPMTAG_TRIGGERINDEX = 1069,
00141 RPMTAG_VERIFYSCRIPT = 1079,
00142 RPMTAG_CHANGELOGTIME = 1080,
00143 RPMTAG_CHANGELOGNAME = 1081,
00144 RPMTAG_CHANGELOGTEXT = 1082,
00145 RPMTAG_BROKENMD5 = 1083,
00146 RPMTAG_PREREQ = 1084,
00147 RPMTAG_PREINPROG = 1085,
00148 RPMTAG_POSTINPROG = 1086,
00149 RPMTAG_PREUNPROG = 1087,
00150 RPMTAG_POSTUNPROG = 1088,
00151 RPMTAG_BUILDARCHS = 1089,
00152 RPMTAG_OBSOLETENAME = 1090,
00153 #define RPMTAG_OBSOLETES RPMTAG_OBSOLETENAME
00154 #define RPMTAG_O RPMTAG_OBSOLETENAME
00155 RPMTAG_VERIFYSCRIPTPROG = 1091,
00156 RPMTAG_TRIGGERSCRIPTPROG = 1092,
00157 RPMTAG_DOCDIR = 1093,
00158 RPMTAG_COOKIE = 1094,
00159 RPMTAG_FILEDEVICES = 1095,
00160 RPMTAG_FILEINODES = 1096,
00161 RPMTAG_FILELANGS = 1097,
00162 RPMTAG_PREFIXES = 1098,
00163 RPMTAG_INSTPREFIXES = 1099,
00164 RPMTAG_TRIGGERIN = 1100,
00165 RPMTAG_TRIGGERUN = 1101,
00166 RPMTAG_TRIGGERPOSTUN = 1102,
00167 RPMTAG_AUTOREQ = 1103,
00168 RPMTAG_AUTOPROV = 1104,
00169 RPMTAG_CAPABILITY = 1105,
00170 RPMTAG_SOURCEPACKAGE = 1106,
00171 RPMTAG_OLDORIGFILENAMES = 1107,
00172 RPMTAG_BUILDPREREQ = 1108,
00173 RPMTAG_BUILDREQUIRES = 1109,
00174 RPMTAG_BUILDCONFLICTS = 1110,
00175 RPMTAG_BUILDMACROS = 1111,
00176 RPMTAG_PROVIDEFLAGS = 1112,
00177 RPMTAG_PROVIDEVERSION = 1113,
00178 RPMTAG_OBSOLETEFLAGS = 1114,
00179 RPMTAG_OBSOLETEVERSION = 1115,
00180 RPMTAG_DIRINDEXES = 1116,
00181 RPMTAG_BASENAMES = 1117,
00182 RPMTAG_DIRNAMES = 1118,
00183 RPMTAG_ORIGDIRINDEXES = 1119,
00184 RPMTAG_ORIGBASENAMES = 1120,
00185 RPMTAG_ORIGDIRNAMES = 1121,
00186 RPMTAG_OPTFLAGS = 1122,
00187 RPMTAG_DISTURL = 1123,
00188 RPMTAG_PAYLOADFORMAT = 1124,
00189 RPMTAG_PAYLOADCOMPRESSOR = 1125,
00190 RPMTAG_PAYLOADFLAGS = 1126,
00191 RPMTAG_INSTALLCOLOR = 1127,
00192 RPMTAG_INSTALLTID = 1128,
00193 RPMTAG_REMOVETID = 1129,
00194 RPMTAG_SHA1RHN = 1130,
00195 RPMTAG_RHNPLATFORM = 1131,
00196 RPMTAG_PLATFORM = 1132,
00197 RPMTAG_PATCHESNAME = 1133,
00198 RPMTAG_PATCHESFLAGS = 1134,
00199 RPMTAG_PATCHESVERSION = 1135,
00200 RPMTAG_CACHECTIME = 1136,
00201 RPMTAG_CACHEPKGPATH = 1137,
00202 RPMTAG_CACHEPKGSIZE = 1138,
00203 RPMTAG_CACHEPKGMTIME = 1139,
00204 RPMTAG_FILECOLORS = 1140,
00205 RPMTAG_FILECLASS = 1141,
00206 RPMTAG_CLASSDICT = 1142,
00207 RPMTAG_FILEDEPENDSX = 1143,
00208 RPMTAG_FILEDEPENDSN = 1144,
00209 RPMTAG_DEPENDSDICT = 1145,
00210 RPMTAG_SOURCEPKGID = 1146,
00211 RPMTAG_FILECONTEXTS = 1147,
00212 RPMTAG_FSCONTEXTS = 1148,
00213 RPMTAG_RECONTEXTS = 1149,
00214 RPMTAG_POLICIES = 1150,
00215 RPMTAG_PRETRANS = 1151,
00216 RPMTAG_POSTTRANS = 1152,
00217 RPMTAG_PRETRANSPROG = 1153,
00218 RPMTAG_POSTTRANSPROG = 1154,
00219 RPMTAG_DISTTAG = 1155,
00220 RPMTAG_SUGGESTSNAME = 1156,
00221 #define RPMTAG_SUGGESTS RPMTAG_SUGGESTSNAME
00222 RPMTAG_SUGGESTSVERSION = 1157,
00223 RPMTAG_SUGGESTSFLAGS = 1158,
00224 RPMTAG_ENHANCESNAME = 1159,
00225 #define RPMTAG_ENHANCES RPMTAG_ENHANCESNAME
00226 RPMTAG_ENHANCESVERSION = 1160,
00227 RPMTAG_ENHANCESFLAGS = 1161,
00228 RPMTAG_PRIORITY = 1162,
00229 RPMTAG_CVSID = 1163,
00230 #define RPMTAG_SVNID RPMTAG_CVSID
00231 RPMTAG_BLINKPKGID = 1164,
00232 RPMTAG_BLINKHDRID = 1165,
00233 RPMTAG_BLINKNEVRA = 1166,
00234 RPMTAG_FLINKPKGID = 1167,
00235 RPMTAG_FLINKHDRID = 1168,
00236 RPMTAG_FLINKNEVRA = 1169,
00237 RPMTAG_PACKAGEORIGIN = 1170,
00238 RPMTAG_TRIGGERPREIN = 1171,
00239 RPMTAG_BUILDSUGGESTS = 1172,
00240 RPMTAG_BUILDENHANCES = 1173,
00241 RPMTAG_SCRIPTSTATES = 1174,
00242 RPMTAG_SCRIPTMETRICS = 1175,
00243 RPMTAG_BUILDCPUCLOCK = 1176,
00244 RPMTAG_FILEDIGESTALGOS = 1177,
00245 RPMTAG_VARIANTS = 1178,
00246 RPMTAG_XMAJOR = 1179,
00247 RPMTAG_XMINOR = 1180,
00248 RPMTAG_REPOTAG = 1181,
00249 RPMTAG_KEYWORDS = 1182,
00250 RPMTAG_BUILDPLATFORMS = 1183,
00251 RPMTAG_PACKAGECOLOR = 1184,
00252 RPMTAG_PACKAGEPREFCOLOR = 1185,
00253 RPMTAG_XATTRSDICT = 1186,
00254 RPMTAG_FILEXATTRSX = 1187,
00255 RPMTAG_DEPATTRSDICT = 1188,
00256 RPMTAG_CONFLICTATTRSX = 1189,
00257 RPMTAG_OBSOLETEATTRSX = 1190,
00258 RPMTAG_PROVIDEATTRSX = 1191,
00259 RPMTAG_REQUIREATTRSX = 1192,
00260 RPMTAG_BUILDPROVIDES = 1193,
00261 RPMTAG_BUILDOBSOLETES = 1194,
00262 RPMTAG_DBINSTANCE = 1195,
00263 RPMTAG_NVRA = 1196,
00264
00265 RPMTAG_FILENAMES = 5000,
00266 RPMTAG_FILEPROVIDE = 5001,
00267 RPMTAG_FILEREQUIRE = 5002,
00268 RPMTAG_FSNAMES = 5003,
00269 RPMTAG_FSSIZES = 5004,
00270 RPMTAG_TRIGGERCONDS = 5005,
00271 RPMTAG_TRIGGERTYPE = 5006,
00272 RPMTAG_ORIGFILENAMES = 5007,
00273 RPMTAG_LONGFILESIZES = 5008,
00274 RPMTAG_LONGSIZE = 5009,
00275 RPMTAG_FILECAPS = 5010,
00276 RPMTAG_FILEDIGESTALGO = 5011,
00277 RPMTAG_BUGURL = 5012,
00278 RPMTAG_EVR = 5013,
00279 RPMTAG_NVR = 5014,
00280 RPMTAG_NEVR = 5015,
00281 RPMTAG_NEVRA = 5016,
00282 RPMTAG_HEADERCOLOR = 5017,
00283 RPMTAG_VERBOSE = 5018,
00284 RPMTAG_EPOCHNUM = 5019,
00285 RPMTAG_PREINFLAGS = 5020,
00286 RPMTAG_POSTINFLAGS = 5021,
00287 RPMTAG_PREUNFLAGS = 5022,
00288 RPMTAG_POSTUNFLAGS = 5023,
00289 RPMTAG_PRETRANSFLAGS = 5024,
00290 RPMTAG_POSTTRANSFLAGS = 5025,
00291 RPMTAG_VERIFYSCRIPTFLAGS = 5026,
00292 RPMTAG_TRIGGERSCRIPTFLAGS = 5027,
00293 RPMTAG_COLLECTIONS = 5029,
00294 RPMTAG_POLICYNAMES = 5030,
00295 RPMTAG_POLICYTYPES = 5031,
00296 RPMTAG_POLICYTYPESINDEXES = 5032,
00297 RPMTAG_POLICYFLAGS = 5033,
00298 RPMTAG_VCS = 5034,
00299 RPMTAG_ORDERNAME = 5035,
00300 RPMTAG_ORDERVERSION = 5036,
00301 RPMTAG_ORDERFLAGS = 5037,
00302
00303 RPMTAG_FIRSTFREE_TAG
00304 } rpmTag;
00305
00306 #define RPMTAG_EXTERNAL_TAG 1000000
00307
00311 typedef enum rpmDbiTag_e {
00312 RPMDBI_PACKAGES = 0,
00313 RPMDBI_LABEL = 2,
00314 RPMDBI_NAME = RPMTAG_NAME,
00315 RPMDBI_BASENAMES = RPMTAG_BASENAMES,
00316 RPMDBI_GROUP = RPMTAG_GROUP,
00317 RPMDBI_REQUIRENAME = RPMTAG_REQUIRENAME,
00318 RPMDBI_PROVIDENAME = RPMTAG_PROVIDENAME,
00319 RPMDBI_CONFLICTNAME = RPMTAG_CONFLICTNAME,
00320 RPMDBI_OBSOLETENAME = RPMTAG_OBSOLETENAME,
00321 RPMDBI_TRIGGERNAME = RPMTAG_TRIGGERNAME,
00322 RPMDBI_DIRNAMES = RPMTAG_DIRNAMES,
00323 RPMDBI_INSTALLTID = RPMTAG_INSTALLTID,
00324 RPMDBI_SIGMD5 = RPMTAG_SIGMD5,
00325 RPMDBI_SHA1HEADER = RPMTAG_SHA1HEADER,
00326 } rpmDbiTag;
00327
00331 typedef enum rpmSigTag_e {
00332 RPMSIGTAG_SIZE = 1000,
00333 RPMSIGTAG_LEMD5_1 = 1001,
00334 RPMSIGTAG_PGP = 1002,
00335 RPMSIGTAG_LEMD5_2 = 1003,
00336 RPMSIGTAG_MD5 = 1004,
00337 RPMSIGTAG_GPG = 1005,
00338 RPMSIGTAG_PGP5 = 1006,
00339 RPMSIGTAG_PAYLOADSIZE = 1007,
00340 RPMSIGTAG_BADSHA1_1 = RPMTAG_BADSHA1_1,
00341 RPMSIGTAG_BADSHA1_2 = RPMTAG_BADSHA1_2,
00342 RPMSIGTAG_SHA1 = RPMTAG_SHA1HEADER,
00343 RPMSIGTAG_DSA = RPMTAG_DSAHEADER,
00344 RPMSIGTAG_RSA = RPMTAG_RSAHEADER,
00345 RPMSIGTAG_LONGSIZE = RPMTAG_LONGSIGSIZE,
00346 RPMSIGTAG_LONGARCHIVESIZE = RPMTAG_LONGARCHIVESIZE,
00347 } rpmSigTag;
00348
00349
00353 typedef enum rpmTagType_e {
00354 #define RPM_MIN_TYPE 0
00355 RPM_NULL_TYPE = 0,
00356 RPM_CHAR_TYPE = 1,
00357 RPM_INT8_TYPE = 2,
00358 RPM_INT16_TYPE = 3,
00359 RPM_INT32_TYPE = 4,
00360 RPM_INT64_TYPE = 5,
00361 RPM_STRING_TYPE = 6,
00362 RPM_BIN_TYPE = 7,
00363 RPM_STRING_ARRAY_TYPE = 8,
00364 RPM_I18NSTRING_TYPE = 9,
00365 #define RPM_MAX_TYPE 9
00366 #define RPM_FORCEFREE_TYPE 0xff
00367 #define RPM_MASK_TYPE 0x0000ffff
00368 } rpmTagType;
00369
00373 typedef enum rpmTagClass_e {
00374 RPM_NULL_CLASS = 0,
00375 RPM_NUMERIC_CLASS = 1,
00376 RPM_STRING_CLASS = 2,
00377 RPM_BINARY_CLASS = 3,
00378 } rpmTagClass;
00379
00388 typedef enum rpmSubTagType_e {
00389 RPM_REGION_TYPE = -10,
00390 RPM_BIN_ARRAY_TYPE = -11,
00393 RPM_XREF_TYPE = -12
00396 } rpmSubTagType;
00397
00401 enum rpmTagReturnType_e {
00402 RPM_ANY_RETURN_TYPE = 0,
00403 RPM_SCALAR_RETURN_TYPE = 0x00010000,
00404 RPM_ARRAY_RETURN_TYPE = 0x00020000,
00405 RPM_MAPPING_RETURN_TYPE = 0x00040000,
00406 RPM_MASK_RETURN_TYPE = 0xffff0000
00407 };
00408
00409 typedef rpmFlags rpmTagReturnType;
00410
00416 const char * rpmTagGetName(rpmTagVal tag);
00417
00423 rpmTagType rpmTagGetType(rpmTagVal tag);
00424
00430 rpmTagType rpmTagGetTagType(rpmTagVal tag);
00431
00437 rpmTagReturnType rpmTagGetReturnType(rpmTagVal tag);
00438
00444 rpmTagClass rpmTagGetClass(rpmTagVal tag);
00445
00451 rpmTagVal rpmTagGetValue(const char * tagstr);
00452
00458 rpmTagClass rpmTagTypeGetClass(rpmTagType type);
00459
00466 int rpmTagGetNames(rpmtd tagnames, int fullname);
00467
00468 #ifdef __cplusplus
00469 }
00470 #endif
00471
00472 #endif