00001 #ifndef H_RPMLIB
00002 #define H_RPMLIB
00003
00011 #include "rpmio.h"
00012 #include "rpmmessages.h"
00013 #include "rpmerr.h"
00014 #include "header.h"
00015 #include "popt.h"
00016
00017 #define RPM_FORMAT_VERSION 4
00018 #define RPM_MAJOR_VERSION 4
00019 #define RPM_MINOR_VERSION 9
00020
00024 typedef enum rpmRC_e {
00025 RPMRC_OK = 0,
00026 RPMRC_NOTFOUND = 1,
00027 RPMRC_FAIL = 2,
00028 RPMRC_NOTTRUSTED = 3,
00029 RPMRC_NOKEY = 4
00030 } rpmRC;
00031
00032
00033
00034 extern struct MacroContext_s * rpmGlobalMacroContext;
00035
00036
00037 extern struct MacroContext_s * rpmCLIMacroContext;
00038
00039
00040 extern const char * RPMVERSION;
00041
00042
00043 extern const char * rpmNAME;
00044
00045
00046 extern const char * rpmEVR;
00047
00048
00049 extern int rpmFLAGS;
00050
00051
00052 #ifdef __cplusplus
00053 extern "C" {
00054 #endif
00055
00056 #if !defined(SWIG)
00057
00062 static inline
00063 void * _free( const void * p)
00064
00065 {
00066 if (p != NULL) free((void *)p);
00067 return NULL;
00068 }
00069 #endif
00070
00077 typedef struct rpmts_s * rpmts;
00078
00081 typedef struct Spec_s * Spec;
00082
00086 typedef void * alKey;
00087 #define RPMAL_NOMATCH ((alKey)-1L)
00088
00092
00093 typedef int alNum;
00094
00095
00099 typedef struct rpmds_s * rpmds;
00100
00104 typedef struct rpmPRCO_s * rpmPRCO;
00105
00109 typedef struct rpmfi_s * rpmfi;
00110
00114 typedef struct rpmte_s * rpmte;
00115
00119 typedef struct rpmdb_s * rpmdb;
00120
00124 typedef struct _rpmdbMatchIterator * rpmdbMatchIterator;
00125
00129 typedef struct rpmgi_s * rpmgi;
00130
00137 void headerMergeLegacySigs(Header h, const Header sigh)
00138 ;
00139
00147 Header headerRegenSigHeader(const Header h, int noArchiveSize)
00148 ;
00149
00153
00154
00155 extern const struct headerTagTableEntry_s * rpmTagTable;
00156
00157
00161
00162
00163 extern const int rpmTagTableSize;
00164
00165
00166
00167 extern headerTagIndices rpmTags;
00168
00173
00174
00175 extern const struct headerSprintfExtension_s rpmHeaderFormats[];
00176
00177
00181 #define RPMDBI_PACKAGES 0
00182 #define RPMDBI_DEPENDS 1
00183 #define RPMDBI_LABEL 2
00184 #define RPMDBI_ADDED 3
00185 #define RPMDBI_REMOVED 4
00186 #define RPMDBI_AVAILABLE 5
00187 #define RPMDBI_HDLIST 6
00188 #define RPMDBI_ARGLIST 7
00189 #define RPMDBI_FTSWALK 8
00190
00196 typedef enum rpmTag_e {
00197
00198 RPMTAG_HEADERIMAGE = HEADER_IMAGE,
00199 RPMTAG_HEADERSIGNATURES = HEADER_SIGNATURES,
00200 RPMTAG_HEADERIMMUTABLE = HEADER_IMMUTABLE,
00201
00202 RPMTAG_HEADERREGIONS = HEADER_REGIONS,
00204 RPMTAG_HEADERI18NTABLE = HEADER_I18NTABLE,
00205
00206
00207
00208
00209
00210 RPMTAG_SIG_BASE = HEADER_SIGBASE,
00211 RPMTAG_SIGSIZE = RPMTAG_SIG_BASE+1,
00212 RPMTAG_SIGLEMD5_1 = RPMTAG_SIG_BASE+2,
00213 RPMTAG_SIGPGP = RPMTAG_SIG_BASE+3,
00214 RPMTAG_SIGLEMD5_2 = RPMTAG_SIG_BASE+4,
00215 RPMTAG_SIGMD5 = RPMTAG_SIG_BASE+5,
00216 #define RPMTAG_PKGID RPMTAG_SIGMD5
00217 RPMTAG_SIGGPG = RPMTAG_SIG_BASE+6,
00218 RPMTAG_SIGPGP5 = RPMTAG_SIG_BASE+7,
00219
00220 RPMTAG_BADSHA1_1 = RPMTAG_SIG_BASE+8,
00221 RPMTAG_BADSHA1_2 = RPMTAG_SIG_BASE+9,
00222 RPMTAG_PUBKEYS = RPMTAG_SIG_BASE+10,
00223 RPMTAG_DSAHEADER = RPMTAG_SIG_BASE+11,
00224 RPMTAG_RSAHEADER = RPMTAG_SIG_BASE+12,
00225 RPMTAG_SHA1HEADER = RPMTAG_SIG_BASE+13,
00226 #define RPMTAG_HDRID RPMTAG_SHA1HEADER
00227
00228 RPMTAG_NAME = 1000,
00229 #define RPMTAG_N RPMTAG_NAME
00230 RPMTAG_VERSION = 1001,
00231 #define RPMTAG_V RPMTAG_VERSION
00232 RPMTAG_RELEASE = 1002,
00233 #define RPMTAG_R RPMTAG_RELEASE
00234 RPMTAG_EPOCH = 1003,
00235 #define RPMTAG_E RPMTAG_EPOCH
00236 RPMTAG_SUMMARY = 1004,
00237 RPMTAG_DESCRIPTION = 1005,
00238 RPMTAG_BUILDTIME = 1006,
00239 RPMTAG_BUILDHOST = 1007,
00240 RPMTAG_INSTALLTIME = 1008,
00241 RPMTAG_SIZE = 1009,
00242 RPMTAG_DISTRIBUTION = 1010,
00243 RPMTAG_VENDOR = 1011,
00244 RPMTAG_GIF = 1012,
00245 RPMTAG_XPM = 1013,
00246 RPMTAG_LICENSE = 1014,
00247 RPMTAG_PACKAGER = 1015,
00248 RPMTAG_GROUP = 1016,
00249
00250 RPMTAG_CHANGELOG = 1017,
00251
00252 RPMTAG_SOURCE = 1018,
00253 RPMTAG_PATCH = 1019,
00254 RPMTAG_URL = 1020,
00255 RPMTAG_OS = 1021,
00256 RPMTAG_ARCH = 1022,
00257 RPMTAG_PREIN = 1023,
00258 RPMTAG_POSTIN = 1024,
00259 RPMTAG_PREUN = 1025,
00260 RPMTAG_POSTUN = 1026,
00261 RPMTAG_OLDFILENAMES = 1027,
00262 RPMTAG_FILESIZES = 1028,
00263 RPMTAG_FILESTATES = 1029,
00264 RPMTAG_FILEMODES = 1030,
00265 RPMTAG_FILEUIDS = 1031,
00266 RPMTAG_FILEGIDS = 1032,
00267 RPMTAG_FILERDEVS = 1033,
00268 RPMTAG_FILEMTIMES = 1034,
00269 RPMTAG_FILEDIGESTS = 1035,
00270 #define RPMTAG_FILEMD5S RPMTAG_FILEDIGESTS
00271 RPMTAG_FILELINKTOS = 1036,
00272 RPMTAG_FILEFLAGS = 1037,
00273
00274 RPMTAG_ROOT = 1038,
00275
00276 RPMTAG_FILEUSERNAME = 1039,
00277 RPMTAG_FILEGROUPNAME = 1040,
00278
00279 RPMTAG_EXCLUDE = 1041,
00280 RPMTAG_EXCLUSIVE = 1042,
00281
00282 RPMTAG_ICON = 1043,
00283 RPMTAG_SOURCERPM = 1044,
00284 RPMTAG_FILEVERIFYFLAGS = 1045,
00285 RPMTAG_ARCHIVESIZE = 1046,
00286 RPMTAG_PROVIDENAME = 1047,
00287 #define RPMTAG_PROVIDES RPMTAG_PROVIDENAME
00288 #define RPMTAG_P RPMTAG_PROVIDENAME
00289 RPMTAG_REQUIREFLAGS = 1048,
00290 RPMTAG_REQUIRENAME = 1049,
00291 #define RPMTAG_REQUIRES RPMTAG_REQUIRENAME
00292 RPMTAG_REQUIREVERSION = 1050,
00293 RPMTAG_NOSOURCE = 1051,
00294 RPMTAG_NOPATCH = 1052,
00295 RPMTAG_CONFLICTFLAGS = 1053,
00296 RPMTAG_CONFLICTNAME = 1054,
00297 #define RPMTAG_CONFLICTS RPMTAG_CONFLICTNAME
00298 #define RPMTAG_C RPMTAG_CONFLICTNAME
00299 RPMTAG_CONFLICTVERSION = 1055,
00300 RPMTAG_DEFAULTPREFIX = 1056,
00301 RPMTAG_BUILDROOT = 1057,
00302 RPMTAG_INSTALLPREFIX = 1058,
00303 RPMTAG_EXCLUDEARCH = 1059,
00304 RPMTAG_EXCLUDEOS = 1060,
00305 RPMTAG_EXCLUSIVEARCH = 1061,
00306 RPMTAG_EXCLUSIVEOS = 1062,
00307 RPMTAG_AUTOREQPROV = 1063,
00308 RPMTAG_RPMVERSION = 1064,
00309 RPMTAG_TRIGGERSCRIPTS = 1065,
00310 RPMTAG_TRIGGERNAME = 1066,
00311 RPMTAG_TRIGGERVERSION = 1067,
00312 RPMTAG_TRIGGERFLAGS = 1068,
00313 RPMTAG_TRIGGERINDEX = 1069,
00314 RPMTAG_VERIFYSCRIPT = 1079,
00315 RPMTAG_CHANGELOGTIME = 1080,
00316 RPMTAG_CHANGELOGNAME = 1081,
00317 RPMTAG_CHANGELOGTEXT = 1082,
00318
00319 RPMTAG_BROKENMD5 = 1083,
00320
00321 RPMTAG_PREREQ = 1084,
00322 RPMTAG_PREINPROG = 1085,
00323 RPMTAG_POSTINPROG = 1086,
00324 RPMTAG_PREUNPROG = 1087,
00325 RPMTAG_POSTUNPROG = 1088,
00326 RPMTAG_BUILDARCHS = 1089,
00327 RPMTAG_OBSOLETENAME = 1090,
00328 #define RPMTAG_OBSOLETES RPMTAG_OBSOLETENAME
00329 #define RPMTAG_O RPMTAG_OBSOLETENAME
00330 RPMTAG_VERIFYSCRIPTPROG = 1091,
00331 RPMTAG_TRIGGERSCRIPTPROG = 1092,
00332 RPMTAG_DOCDIR = 1093,
00333 RPMTAG_COOKIE = 1094,
00334 RPMTAG_FILEDEVICES = 1095,
00335 RPMTAG_FILEINODES = 1096,
00336 RPMTAG_FILELANGS = 1097,
00337 RPMTAG_PREFIXES = 1098,
00338 RPMTAG_INSTPREFIXES = 1099,
00339 RPMTAG_TRIGGERIN = 1100,
00340 RPMTAG_TRIGGERUN = 1101,
00341 RPMTAG_TRIGGERPOSTUN = 1102,
00342 RPMTAG_AUTOREQ = 1103,
00343 RPMTAG_AUTOPROV = 1104,
00344
00345 RPMTAG_CAPABILITY = 1105,
00346
00347 RPMTAG_SOURCEPACKAGE = 1106,
00348
00349 RPMTAG_OLDORIGFILENAMES = 1107,
00350
00351 RPMTAG_BUILDPREREQ = 1108,
00352 RPMTAG_BUILDREQUIRES = 1109,
00353 RPMTAG_BUILDCONFLICTS = 1110,
00354
00355 RPMTAG_BUILDMACROS = 1111,
00356
00357 RPMTAG_PROVIDEFLAGS = 1112,
00358 RPMTAG_PROVIDEVERSION = 1113,
00359 RPMTAG_OBSOLETEFLAGS = 1114,
00360 RPMTAG_OBSOLETEVERSION = 1115,
00361 RPMTAG_DIRINDEXES = 1116,
00362 RPMTAG_BASENAMES = 1117,
00363 RPMTAG_DIRNAMES = 1118,
00364 RPMTAG_ORIGDIRINDEXES = 1119,
00365 RPMTAG_ORIGBASENAMES = 1120,
00366 RPMTAG_ORIGDIRNAMES = 1121,
00367 RPMTAG_OPTFLAGS = 1122,
00368 RPMTAG_DISTURL = 1123,
00369 RPMTAG_PAYLOADFORMAT = 1124,
00370 RPMTAG_PAYLOADCOMPRESSOR = 1125,
00371 RPMTAG_PAYLOADFLAGS = 1126,
00372 RPMTAG_INSTALLCOLOR = 1127,
00373 RPMTAG_INSTALLTID = 1128,
00374 RPMTAG_REMOVETID = 1129,
00375
00376 RPMTAG_SHA1RHN = 1130,
00377
00378 RPMTAG_RHNPLATFORM = 1131,
00379 RPMTAG_PLATFORM = 1132,
00380 RPMTAG_PATCHESNAME = 1133,
00381 RPMTAG_PATCHESFLAGS = 1134,
00382 RPMTAG_PATCHESVERSION = 1135,
00383 RPMTAG_CACHECTIME = 1136,
00384 RPMTAG_CACHEPKGPATH = 1137,
00385 RPMTAG_CACHEPKGSIZE = 1138,
00386 RPMTAG_CACHEPKGMTIME = 1139,
00387 RPMTAG_FILECOLORS = 1140,
00388 RPMTAG_FILECLASS = 1141,
00389 RPMTAG_CLASSDICT = 1142,
00390 RPMTAG_FILEDEPENDSX = 1143,
00391 RPMTAG_FILEDEPENDSN = 1144,
00392 RPMTAG_DEPENDSDICT = 1145,
00393 RPMTAG_SOURCEPKGID = 1146,
00394 RPMTAG_FILECONTEXTS = 1147,
00395 RPMTAG_FSCONTEXTS = 1148,
00396 RPMTAG_RECONTEXTS = 1149,
00397 RPMTAG_POLICIES = 1150,
00398 RPMTAG_PRETRANS = 1151,
00399 RPMTAG_POSTTRANS = 1152,
00400 RPMTAG_PRETRANSPROG = 1153,
00401 RPMTAG_POSTTRANSPROG = 1154,
00402 RPMTAG_DISTTAG = 1155,
00403 RPMTAG_SUGGESTSNAME = 1156,
00404 #define RPMTAG_SUGGESTS RPMTAG_SUGGESTSNAME
00405 RPMTAG_SUGGESTSVERSION = 1157,
00406 RPMTAG_SUGGESTSFLAGS = 1158,
00407 RPMTAG_ENHANCESNAME = 1159,
00408 #define RPMTAG_ENHANCES RPMTAG_ENHANCESNAME
00409 RPMTAG_ENHANCESVERSION = 1160,
00410 RPMTAG_ENHANCESFLAGS = 1161,
00411 RPMTAG_PRIORITY = 1162,
00412 RPMTAG_CVSID = 1163,
00413 #define RPMTAG_SVNID RPMTAG_CVSID
00414 RPMTAG_BLINKPKGID = 1164,
00415 RPMTAG_BLINKHDRID = 1165,
00416 RPMTAG_BLINKNEVRA = 1166,
00417 RPMTAG_FLINKPKGID = 1167,
00418 RPMTAG_FLINKHDRID = 1168,
00419 RPMTAG_FLINKNEVRA = 1169,
00420 RPMTAG_PACKAGEORIGIN = 1170,
00421 RPMTAG_TRIGGERPREIN = 1171,
00422 RPMTAG_BUILDSUGGESTS = 1172,
00423 RPMTAG_BUILDENHANCES = 1173,
00424 RPMTAG_SCRIPTSTATES = 1174,
00425 RPMTAG_SCRIPTMETRICS = 1175,
00426 RPMTAG_BUILDCPUCLOCK = 1176,
00427 RPMTAG_FILEDIGESTALGOS = 1177,
00428 RPMTAG_VARIANTS = 1178,
00429 RPMTAG_XMAJOR = 1179,
00430 RPMTAG_XMINOR = 1180,
00431 RPMTAG_REPOTAG = 1181,
00432 RPMTAG_KEYWORDS = 1182,
00433 RPMTAG_BUILDPLATFORMS = 1183,
00434 RPMTAG_PACKAGECOLOR = 1184,
00435 RPMTAG_PACKAGEPREFCOLOR = 1185,
00436 RPMTAG_XATTRSDICT = 1186,
00437 RPMTAG_FILEXATTRSX = 1187,
00438 RPMTAG_DEPATTRSDICT = 1188,
00439 RPMTAG_CONFLICTATTRSX = 1189,
00440 RPMTAG_OBSOLETEATTRSX = 1190,
00441 RPMTAG_PROVIDEATTRSX = 1191,
00442 RPMTAG_REQUIREATTRSX = 1192,
00443 RPMTAG_BUILDPROVIDES = 1193,
00444 RPMTAG_BUILDOBSOLETES = 1194,
00445
00446
00447 RPMTAG_FIRSTFREE_TAG
00448
00449 } rpmTag;
00450
00451 #define RPMTAG_EXTERNAL_TAG 1000000
00452
00456 typedef enum rpmScriptID_e {
00457 RPMSCRIPT_UNKNOWN = 0,
00458 RPMSCRIPT_PRETRANS = 1,
00459 RPMSCRIPT_TRIGGERPREIN = 2,
00460 RPMSCRIPT_PREIN = 3,
00461 RPMSCRIPT_POSTIN = 4,
00462 RPMSCRIPT_TRIGGERIN = 5,
00463 RPMSCRIPT_TRIGGERUN = 6,
00464 RPMSCRIPT_PREUN = 7,
00465 RPMSCRIPT_POSTUN = 8,
00466 RPMSCRIPT_TRIGGERPOSTUN = 9,
00467 RPMSCRIPT_POSTTRANS = 10,
00468
00469 RPMSCRIPT_VERIFY = 16,
00470 RPMSCRIPT_MAX = 32
00471 } rpmScriptID;
00472
00476 typedef enum rpmScriptState_e {
00477 RPMSCRIPT_STATE_UNKNOWN = 0,
00478
00479 RPMSCRIPT_STATE_EXEC = (1 << 16),
00480 RPMSCRIPT_STATE_REAPED = (1 << 17),
00481
00482 RPMSCRIPT_STATE_SELINUX = (1 << 24),
00483 RPMSCRIPT_STATE_EMULATOR = (1 << 25),
00484 RPMSCRIPT_STATE_LUA = (1 << 26)
00485 } rpmScriptState;
00486
00490 typedef enum rpmfileState_e {
00491 RPMFILE_STATE_NORMAL = 0,
00492 RPMFILE_STATE_REPLACED = 1,
00493 RPMFILE_STATE_NOTINSTALLED = 2,
00494 RPMFILE_STATE_NETSHARED = 3,
00495 RPMFILE_STATE_WRONGCOLOR = 4
00496 } rpmfileState;
00497 #define RPMFILE_STATE_MISSING -1
00498
00502 typedef enum rpmfileAttrs_e {
00503
00504 RPMFILE_NONE = 0,
00505
00506 RPMFILE_CONFIG = (1 << 0),
00507 RPMFILE_DOC = (1 << 1),
00508 RPMFILE_ICON = (1 << 2),
00509 RPMFILE_MISSINGOK = (1 << 3),
00510 RPMFILE_NOREPLACE = (1 << 4),
00511 RPMFILE_SPECFILE = (1 << 5),
00512 RPMFILE_GHOST = (1 << 6),
00513 RPMFILE_LICENSE = (1 << 7),
00514 RPMFILE_README = (1 << 8),
00515 RPMFILE_EXCLUDE = (1 << 9),
00516 RPMFILE_UNPATCHED = (1 << 10),
00517 RPMFILE_PUBKEY = (1 << 11),
00518 RPMFILE_POLICY = (1 << 12),
00519 RPMFILE_EXISTS = (1 << 13),
00520 RPMFILE_SPARSE = (1 << 14),
00521 RPMFILE_TYPED = (1 << 15),
00522 RPMFILE_SOURCE = (1 << 16),
00523 RPMFILE_PATCH = (1 << 17)
00524 } rpmfileAttrs;
00525
00526 #define RPMFILE_SPOOK (RPMFILE_GHOST|RPMFILE_TYPED)
00527 #define RPMFILE_ALL ~(RPMFILE_NONE)
00528
00529
00532
00537 enum rpm_machtable_e {
00538 RPM_MACHTABLE_INSTARCH = 0,
00539 RPM_MACHTABLE_INSTOS = 1,
00540 RPM_MACHTABLE_BUILDARCH = 2,
00541 RPM_MACHTABLE_BUILDOS = 3
00542 };
00543 #define RPM_MACHTABLE_COUNT 4
00549
00550 extern const char *rpmRcfiles;
00551
00558 int rpmReadConfigFiles( const char * file,
00559 const char * target)
00560
00561
00562
00563
00564 ;
00565
00573 void rpmGetArchInfo( const char ** name,
00574 int * num)
00575 ;
00576
00584 void rpmGetOsInfo( const char ** name,
00585 int * num)
00586 ;
00587
00601 int rpmMachineScore(int type, const char * name)
00602 ;
00603
00604
00605 extern void * platpat;
00606
00607 extern int nplatpat;
00608
00620 int rpmPlatformScore(const char * platform, void * mi_re, int mi_nre)
00621 ;
00622
00628 int rpmShowRC(FILE * fp)
00629
00630 ;
00631
00639 void rpmSetTables(int archTable, int osTable)
00640
00641 ;
00642
00653 void rpmSetMachine( const char * arch, const char * os)
00654
00655 ;
00656
00661 void rpmFreeRpmrc(void)
00662
00663 ;
00664
00666
00676 typedef
00677 void * (*HFD_t) ( const void * data, rpmTagType type)
00678 ;
00679
00694 typedef int (*HGE_t) (Header h, rpmTag tag,
00695 rpmTagType * type,
00696 void ** p,
00697 int_32 * c)
00698 ;
00699
00715 typedef int (*HAE_t) (Header h, rpmTag tag, rpmTagType type,
00716 const void * p, int_32 c)
00717 ;
00718
00730 typedef int (*HME_t) (Header h, rpmTag tag, rpmTagType type,
00731 const void * p, int_32 c)
00732 ;
00733
00744 typedef int (*HRE_t) (Header h, int_32 tag)
00745 ;
00746
00750 typedef enum rpmprobFilterFlags_e {
00751 RPMPROB_FILTER_NONE = 0,
00752 RPMPROB_FILTER_IGNOREOS = (1 << 0),
00753 RPMPROB_FILTER_IGNOREARCH = (1 << 1),
00754 RPMPROB_FILTER_REPLACEPKG = (1 << 2),
00755 RPMPROB_FILTER_FORCERELOCATE= (1 << 3),
00756 RPMPROB_FILTER_REPLACENEWFILES= (1 << 4),
00757 RPMPROB_FILTER_REPLACEOLDFILES= (1 << 5),
00758 RPMPROB_FILTER_OLDPACKAGE = (1 << 6),
00759 RPMPROB_FILTER_DISKSPACE = (1 << 7),
00760 RPMPROB_FILTER_DISKNODES = (1 << 8)
00761 } rpmprobFilterFlags;
00762
00766 typedef struct rpmRelocation_s * rpmRelocation;
00767 #if !defined(SWIG)
00768 struct rpmRelocation_s {
00769
00770 const char * oldPath;
00771
00772 const char * newPath;
00773 };
00774 #endif
00775
00783 int rpmVersionCompare(Header first, Header second)
00784 ;
00785
00789 typedef enum fileAction_e {
00790 FA_UNKNOWN = 0,
00791 FA_CREATE,
00792 FA_COPYIN,
00793 FA_COPYOUT,
00794 FA_BACKUP,
00795 FA_SAVE,
00796 FA_SKIP,
00797 FA_ALTNAME,
00798 FA_ERASE,
00799 FA_SKIPNSTATE,
00800 FA_SKIPNETSHARED,
00801 FA_SKIPCOLOR
00802 } fileAction;
00803
00804 #define XFA_SKIPPING(_a) \
00805 ((_a) == FA_SKIP || (_a) == FA_SKIPNSTATE || (_a) == FA_SKIPNETSHARED || (_a) == FA_SKIPCOLOR)
00806
00814 typedef enum fileTypes_e {
00815 PIPE = 1,
00816 CDEV = 2,
00817 XDIR = 4,
00818 BDEV = 6,
00819 REG = 8,
00820 LINK = 10,
00821 SOCK = 12
00822 } fileTypes;
00823
00827 typedef struct fsmIterator_s * FSMI_t;
00828
00832 typedef struct fsm_s * FSM_t;
00833
00837 typedef struct rpmpsm_s * rpmpsm;
00838
00848 int headerVerifyInfo(int il, int dl, const void * pev, void * iv, int negate)
00849 ;
00850
00864 rpmRC headerCheck(rpmts ts, const void * uh, size_t uc,
00865 const char ** msg)
00866
00867
00868 ;
00869
00878 rpmRC rpmReadHeader(rpmts ts, FD_t fd, Header *hdrp,
00879 const char ** msg)
00880
00881
00882 ;
00883
00892 rpmRC rpmReadPackageFile(rpmts ts, FD_t fd,
00893 const char * fn, Header * hdrp)
00894
00895
00896 ;
00897
00906 rpmRC rpmInstallSourcePackage(rpmts ts, FD_t fd,
00907 const char ** specFilePtr,
00908 const char ** cookie)
00909
00910
00911 ;
00912
00917 typedef enum rpmdepFlags_e {
00918 RPMDEPS_FLAG_NONE = 0,
00919 RPMDEPS_FLAG_NOUPGRADE = (1 << 0),
00920 RPMDEPS_FLAG_NOREQUIRES = (1 << 1),
00921 RPMDEPS_FLAG_NOCONFLICTS = (1 << 2),
00922 RPMDEPS_FLAG_NOOBSOLETES = (1 << 3),
00923 RPMDEPS_FLAG_NOPARENTDIRS = (1 << 4),
00924 RPMDEPS_FLAG_NOLINKTOS = (1 << 5),
00925 RPMDEPS_FLAG_ANACONDA = (1 << 6),
00926 RPMDEPS_FLAG_NOSUGGEST = (1 << 7),
00927 RPMDEPS_FLAG_ADDINDEPS = (1 << 8),
00928 RPMDEPS_FLAG_DEPLOOPS = (1 << 9)
00929 } rpmdepFlags;
00930
00935 typedef enum rpmtransFlags_e {
00936 RPMTRANS_FLAG_NONE = 0,
00937 RPMTRANS_FLAG_TEST = (1 << 0),
00938 RPMTRANS_FLAG_BUILD_PROBS = (1 << 1),
00939 RPMTRANS_FLAG_NOSCRIPTS = (1 << 2),
00940 RPMTRANS_FLAG_JUSTDB = (1 << 3),
00941 RPMTRANS_FLAG_NOTRIGGERS = (1 << 4),
00942 RPMTRANS_FLAG_NODOCS = (1 << 5),
00943 RPMTRANS_FLAG_ALLFILES = (1 << 6),
00944
00945 RPMTRANS_FLAG_KEEPOBSOLETE = (1 << 7),
00946
00947 RPMTRANS_FLAG_NOCONTEXTS = (1 << 8),
00948 RPMTRANS_FLAG_DIRSTASH = (1 << 9),
00949 RPMTRANS_FLAG_REPACKAGE = (1 << 10),
00951 RPMTRANS_FLAG_PKGCOMMIT = (1 << 11),
00952
00953 RPMTRANS_FLAG_PKGUNDO = (1 << 12),
00954
00955 RPMTRANS_FLAG_COMMIT = (1 << 13),
00956
00957 RPMTRANS_FLAG_UNDO = (1 << 14),
00958
00959
00960
00961 RPMTRANS_FLAG_NOTRIGGERPREIN= (1 << 16),
00962 RPMTRANS_FLAG_NOPRE = (1 << 17),
00963 RPMTRANS_FLAG_NOPOST = (1 << 18),
00964 RPMTRANS_FLAG_NOTRIGGERIN = (1 << 19),
00965 RPMTRANS_FLAG_NOTRIGGERUN = (1 << 20),
00966 RPMTRANS_FLAG_NOPREUN = (1 << 21),
00967 RPMTRANS_FLAG_NOPOSTUN = (1 << 22),
00968 RPMTRANS_FLAG_NOTRIGGERPOSTUN = (1 << 23),
00969
00970 RPMTRANS_FLAG_NOPAYLOAD = (1 << 24),
00971
00972 RPMTRANS_FLAG_APPLYONLY = (1 << 25),
00973
00974
00975 RPMTRANS_FLAG_NOFDIGESTS = (1 << 27),
00976
00977 RPMTRANS_FLAG_NOCONFIGS = (1 << 30),
00978
00979 } rpmtransFlags;
00980
00981 #define _noTransScripts \
00982 ( RPMTRANS_FLAG_NOPRE | \
00983 RPMTRANS_FLAG_NOPOST | \
00984 RPMTRANS_FLAG_NOPREUN | \
00985 RPMTRANS_FLAG_NOPOSTUN \
00986 )
00987
00988 #define _noTransTriggers \
00989 ( RPMTRANS_FLAG_NOTRIGGERPREIN | \
00990 RPMTRANS_FLAG_NOTRIGGERIN | \
00991 RPMTRANS_FLAG_NOTRIGGERUN | \
00992 RPMTRANS_FLAG_NOTRIGGERPOSTUN \
00993 )
00994
00997 #if !defined(SWIG)
00998
01003
01004 static inline
01005 const char * tagName(int tag)
01006
01007 {
01008
01009 return ((*rpmTags->tagName)(tag));
01010
01011 }
01012
01013
01019 static inline
01020 int tagType(int tag)
01021
01022 {
01023
01024 return ((*rpmTags->tagType)(tag));
01025
01026 }
01027
01033 static inline
01034 int tagValue(const char * tagstr)
01035
01036 {
01037
01038 return ((*rpmTags->tagValue)(tagstr));
01039
01040 }
01041 #endif
01042
01043 #define RPMLEAD_BINARY 0
01044 #define RPMLEAD_SOURCE 1
01045
01046 #define RPMLEAD_MAGIC0 0xed
01047 #define RPMLEAD_MAGIC1 0xab
01048 #define RPMLEAD_MAGIC2 0xee
01049 #define RPMLEAD_MAGIC3 0xdb
01050
01051 #define RPMLEAD_SIZE 96
01059 struct rpmlead {
01060 unsigned char magic[4];
01061 unsigned char major;
01062 unsigned char minor;
01063 short type;
01064 short archnum;
01065 char name[66];
01066 short osnum;
01067 short signature_type;
01068 char reserved[16];
01069 } ;
01070
01071
01074
01078 enum rpmtagSignature {
01079 RPMSIGTAG_SIZE = 1000,
01080 RPMSIGTAG_LEMD5_1 = 1001,
01081 RPMSIGTAG_PGP = 1002,
01082 RPMSIGTAG_LEMD5_2 = 1003,
01083 RPMSIGTAG_MD5 = 1004,
01084 RPMSIGTAG_GPG = 1005,
01085 RPMSIGTAG_PGP5 = 1006,
01086 RPMSIGTAG_PAYLOADSIZE = 1007,
01087 RPMSIGTAG_BADSHA1_1 = RPMTAG_BADSHA1_1,
01088 RPMSIGTAG_BADSHA1_2 = RPMTAG_BADSHA1_2,
01089 RPMSIGTAG_SHA1 = RPMTAG_SHA1HEADER,
01090 RPMSIGTAG_DSA = RPMTAG_DSAHEADER,
01091 RPMSIGTAG_RSA = RPMTAG_RSAHEADER
01092 };
01093
01107 rpmRC rpmVerifySignature(const rpmts ts,
01108 char * result)
01109
01110
01111 ;
01112
01118 Header rpmFreeSignature( Header sigh)
01119 ;
01120
01123 #ifdef __cplusplus
01124 }
01125 #endif
01126
01127 #endif