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
00020 typedef enum rpmRC_e {
00021 RPMRC_OK = 0,
00022 RPMRC_NOTFOUND = 1,
00023 RPMRC_FAIL = 2,
00024 RPMRC_NOTTRUSTED = 3,
00025 RPMRC_NOKEY = 4
00026 } rpmRC;
00027
00028
00029
00030 extern struct MacroContext_s * rpmGlobalMacroContext;
00031
00032
00033 extern struct MacroContext_s * rpmCLIMacroContext;
00034
00035
00036 extern const char * RPMVERSION;
00037
00038
00039 extern const char * rpmNAME;
00040
00041
00042 extern const char * rpmEVR;
00043
00044
00045 extern int rpmFLAGS;
00046
00047
00048 #ifdef __cplusplus
00049 extern "C" {
00050 #endif
00051
00057 static inline
00058 void * _free( const void * p)
00059
00060 {
00061 if (p != NULL) free((void *)p);
00062 return NULL;
00063 }
00064
00071 typedef struct rpmts_s * rpmts;
00072
00075 typedef struct Spec_s * Spec;
00076
00080 typedef void * alKey;
00081 #define RPMAL_NOMATCH ((alKey)-1L)
00082
00086
00087 typedef int alNum;
00088
00089
00093 typedef struct rpmds_s * rpmds;
00094
00098 typedef struct rpmfi_s * rpmfi;
00099
00103 typedef struct rpmte_s * rpmte;
00104
00108 typedef struct rpmdb_s * rpmdb;
00109
00113 typedef struct _rpmdbMatchIterator * rpmdbMatchIterator;
00114
00123 int headerNVR(Header h,
00124 const char ** np,
00125 const char ** vp,
00126 const char ** rp)
00127 ;
00128
00139 int headerNEVRA(Header h,
00140 const char ** np,
00141 const char ** ep,
00142 const char ** vp,
00143 const char ** rp,
00144 const char ** ap)
00145 ;
00146
00153 void headerMergeLegacySigs(Header h, const Header sigh)
00154 ;
00155
00163 Header headerRegenSigHeader(const Header h, int noArchiveSize)
00164 ;
00165
00179
00180 int rpmHeaderGetEntry(Header h, int_32 tag, int_32 *type,
00181 void **p, int_32 *c)
00182 ;
00183
00187
00188
00189 extern const struct headerTagTableEntry_s * rpmTagTable;
00190
00191
00195
00196
00197 extern const int rpmTagTableSize;
00198
00199
00204
00205
00206 extern const struct headerSprintfExtension_s rpmHeaderFormats[];
00207
00208
00212 #define RPMDBI_PACKAGES 0
00213 #define RPMDBI_DEPENDS 1
00214 #define RPMDBI_LABEL 2
00215 #define RPMDBI_ADDED 3
00216 #define RPMDBI_REMOVED 4
00217 #define RPMDBI_AVAILABLE 5
00223 typedef enum rpmTag_e {
00224
00225 RPMTAG_HEADERIMAGE = HEADER_IMAGE,
00226 RPMTAG_HEADERSIGNATURES = HEADER_SIGNATURES,
00227 RPMTAG_HEADERIMMUTABLE = HEADER_IMMUTABLE,
00228
00229 RPMTAG_HEADERREGIONS = HEADER_REGIONS,
00231 RPMTAG_HEADERI18NTABLE = HEADER_I18NTABLE,
00232
00233
00234
00235
00236
00237 RPMTAG_SIG_BASE = HEADER_SIGBASE,
00238 RPMTAG_SIGSIZE = RPMTAG_SIG_BASE+1,
00239 RPMTAG_SIGLEMD5_1 = RPMTAG_SIG_BASE+2,
00240 RPMTAG_SIGPGP = RPMTAG_SIG_BASE+3,
00241 RPMTAG_SIGLEMD5_2 = RPMTAG_SIG_BASE+4,
00242 RPMTAG_SIGMD5 = RPMTAG_SIG_BASE+5,
00243 #define RPMTAG_PKGID RPMTAG_SIGMD5
00244 RPMTAG_SIGGPG = RPMTAG_SIG_BASE+6,
00245 RPMTAG_SIGPGP5 = RPMTAG_SIG_BASE+7,
00247 RPMTAG_BADSHA1_1 = RPMTAG_SIG_BASE+8,
00248 RPMTAG_BADSHA1_2 = RPMTAG_SIG_BASE+9,
00249 RPMTAG_PUBKEYS = RPMTAG_SIG_BASE+10,
00250 RPMTAG_DSAHEADER = RPMTAG_SIG_BASE+11,
00251 RPMTAG_RSAHEADER = RPMTAG_SIG_BASE+12,
00252 RPMTAG_SHA1HEADER = RPMTAG_SIG_BASE+13,
00253 #define RPMTAG_HDRID RPMTAG_SHA1HEADER
00254
00255 RPMTAG_NAME = 1000,
00256 #define RPMTAG_N RPMTAG_NAME
00257 RPMTAG_VERSION = 1001,
00258 #define RPMTAG_V RPMTAG_VERSION
00259 RPMTAG_RELEASE = 1002,
00260 #define RPMTAG_R RPMTAG_RELEASE
00261 RPMTAG_EPOCH = 1003,
00262 #define RPMTAG_E RPMTAG_EPOCH
00263 #define RPMTAG_SERIAL RPMTAG_EPOCH
00264 RPMTAG_SUMMARY = 1004,
00265 RPMTAG_DESCRIPTION = 1005,
00266 RPMTAG_BUILDTIME = 1006,
00267 RPMTAG_BUILDHOST = 1007,
00268 RPMTAG_INSTALLTIME = 1008,
00269 RPMTAG_SIZE = 1009,
00270 RPMTAG_DISTRIBUTION = 1010,
00271 RPMTAG_VENDOR = 1011,
00272 RPMTAG_GIF = 1012,
00273 RPMTAG_XPM = 1013,
00274 RPMTAG_LICENSE = 1014,
00275 #define RPMTAG_COPYRIGHT RPMTAG_LICENSE
00276 RPMTAG_PACKAGER = 1015,
00277 RPMTAG_GROUP = 1016,
00278
00279 RPMTAG_CHANGELOG = 1017,
00280
00281 RPMTAG_SOURCE = 1018,
00282 RPMTAG_PATCH = 1019,
00283 RPMTAG_URL = 1020,
00284 RPMTAG_OS = 1021,
00285 RPMTAG_ARCH = 1022,
00286 RPMTAG_PREIN = 1023,
00287 RPMTAG_POSTIN = 1024,
00288 RPMTAG_PREUN = 1025,
00289 RPMTAG_POSTUN = 1026,
00290 RPMTAG_OLDFILENAMES = 1027,
00291 RPMTAG_FILESIZES = 1028,
00292 RPMTAG_FILESTATES = 1029,
00293 RPMTAG_FILEMODES = 1030,
00294 RPMTAG_FILEUIDS = 1031,
00295 RPMTAG_FILEGIDS = 1032,
00296 RPMTAG_FILERDEVS = 1033,
00297 RPMTAG_FILEMTIMES = 1034,
00298 RPMTAG_FILEMD5S = 1035,
00299 RPMTAG_FILELINKTOS = 1036,
00300 RPMTAG_FILEFLAGS = 1037,
00301
00302 RPMTAG_ROOT = 1038,
00303
00304 RPMTAG_FILEUSERNAME = 1039,
00305 RPMTAG_FILEGROUPNAME = 1040,
00306
00307 RPMTAG_EXCLUDE = 1041,
00308 RPMTAG_EXCLUSIVE = 1042,
00309
00310 RPMTAG_ICON = 1043,
00311 RPMTAG_SOURCERPM = 1044,
00312 RPMTAG_FILEVERIFYFLAGS = 1045,
00313 RPMTAG_ARCHIVESIZE = 1046,
00314 RPMTAG_PROVIDENAME = 1047,
00315 #define RPMTAG_PROVIDES RPMTAG_PROVIDENAME
00316 RPMTAG_REQUIREFLAGS = 1048,
00317 RPMTAG_REQUIRENAME = 1049,
00318 RPMTAG_REQUIREVERSION = 1050,
00319 RPMTAG_NOSOURCE = 1051,
00320 RPMTAG_NOPATCH = 1052,
00321 RPMTAG_CONFLICTFLAGS = 1053,
00322 RPMTAG_CONFLICTNAME = 1054,
00323 RPMTAG_CONFLICTVERSION = 1055,
00324 RPMTAG_DEFAULTPREFIX = 1056,
00325 RPMTAG_BUILDROOT = 1057,
00326 RPMTAG_INSTALLPREFIX = 1058,
00327 RPMTAG_EXCLUDEARCH = 1059,
00328 RPMTAG_EXCLUDEOS = 1060,
00329 RPMTAG_EXCLUSIVEARCH = 1061,
00330 RPMTAG_EXCLUSIVEOS = 1062,
00331 RPMTAG_AUTOREQPROV = 1063,
00332 RPMTAG_RPMVERSION = 1064,
00333 RPMTAG_TRIGGERSCRIPTS = 1065,
00334 RPMTAG_TRIGGERNAME = 1066,
00335 RPMTAG_TRIGGERVERSION = 1067,
00336 RPMTAG_TRIGGERFLAGS = 1068,
00337 RPMTAG_TRIGGERINDEX = 1069,
00338 RPMTAG_VERIFYSCRIPT = 1079,
00339 RPMTAG_CHANGELOGTIME = 1080,
00340 RPMTAG_CHANGELOGNAME = 1081,
00341 RPMTAG_CHANGELOGTEXT = 1082,
00342
00343 RPMTAG_BROKENMD5 = 1083,
00344
00345 RPMTAG_PREREQ = 1084,
00346 RPMTAG_PREINPROG = 1085,
00347 RPMTAG_POSTINPROG = 1086,
00348 RPMTAG_PREUNPROG = 1087,
00349 RPMTAG_POSTUNPROG = 1088,
00350 RPMTAG_BUILDARCHS = 1089,
00351 RPMTAG_OBSOLETENAME = 1090,
00352 #define RPMTAG_OBSOLETES RPMTAG_OBSOLETENAME
00353 RPMTAG_VERIFYSCRIPTPROG = 1091,
00354 RPMTAG_TRIGGERSCRIPTPROG = 1092,
00355 RPMTAG_DOCDIR = 1093,
00356 RPMTAG_COOKIE = 1094,
00357 RPMTAG_FILEDEVICES = 1095,
00358 RPMTAG_FILEINODES = 1096,
00359 RPMTAG_FILELANGS = 1097,
00360 RPMTAG_PREFIXES = 1098,
00361 RPMTAG_INSTPREFIXES = 1099,
00362 RPMTAG_TRIGGERIN = 1100,
00363 RPMTAG_TRIGGERUN = 1101,
00364 RPMTAG_TRIGGERPOSTUN = 1102,
00365 RPMTAG_AUTOREQ = 1103,
00366 RPMTAG_AUTOPROV = 1104,
00367
00368 RPMTAG_CAPABILITY = 1105,
00369
00370 RPMTAG_SOURCEPACKAGE = 1106,
00371
00372 RPMTAG_OLDORIGFILENAMES = 1107,
00373
00374 RPMTAG_BUILDPREREQ = 1108,
00375 RPMTAG_BUILDREQUIRES = 1109,
00376 RPMTAG_BUILDCONFLICTS = 1110,
00377
00378 RPMTAG_BUILDMACROS = 1111,
00379
00380 RPMTAG_PROVIDEFLAGS = 1112,
00381 RPMTAG_PROVIDEVERSION = 1113,
00382 RPMTAG_OBSOLETEFLAGS = 1114,
00383 RPMTAG_OBSOLETEVERSION = 1115,
00384 RPMTAG_DIRINDEXES = 1116,
00385 RPMTAG_BASENAMES = 1117,
00386 RPMTAG_DIRNAMES = 1118,
00387 RPMTAG_ORIGDIRINDEXES = 1119,
00388 RPMTAG_ORIGBASENAMES = 1120,
00389 RPMTAG_ORIGDIRNAMES = 1121,
00390 RPMTAG_OPTFLAGS = 1122,
00391 RPMTAG_DISTURL = 1123,
00392 RPMTAG_PAYLOADFORMAT = 1124,
00393 RPMTAG_PAYLOADCOMPRESSOR = 1125,
00394 RPMTAG_PAYLOADFLAGS = 1126,
00395 RPMTAG_INSTALLCOLOR = 1127,
00396 RPMTAG_INSTALLTID = 1128,
00397 RPMTAG_REMOVETID = 1129,
00398
00399 RPMTAG_SHA1RHN = 1130,
00400
00401 RPMTAG_RHNPLATFORM = 1131,
00402 RPMTAG_PLATFORM = 1132,
00403 RPMTAG_PATCHESNAME = 1133,
00404 RPMTAG_PATCHESFLAGS = 1134,
00405 RPMTAG_PATCHESVERSION = 1135,
00406 RPMTAG_CACHECTIME = 1136,
00407 RPMTAG_CACHEPKGPATH = 1137,
00408 RPMTAG_CACHEPKGSIZE = 1138,
00409 RPMTAG_CACHEPKGMTIME = 1139,
00410 RPMTAG_FILECOLORS = 1140,
00411 RPMTAG_FILECLASS = 1141,
00412 RPMTAG_CLASSDICT = 1142,
00413 RPMTAG_FILEDEPENDSX = 1143,
00414 RPMTAG_FILEDEPENDSN = 1144,
00415 RPMTAG_DEPENDSDICT = 1145,
00416 RPMTAG_SOURCEPKGID = 1146,
00417 RPMTAG_FILECONTEXTS = 1147,
00418 RPMTAG_FSCONTEXTS = 1148,
00419 RPMTAG_RECONTEXTS = 1149,
00420 RPMTAG_POLICIES = 1150,
00421
00422 RPMTAG_FIRSTFREE_TAG
00423
00424 } rpmTag;
00425
00426 #define RPMTAG_EXTERNAL_TAG 1000000
00427
00431 typedef enum rpmfileState_e {
00432 RPMFILE_STATE_NORMAL = 0,
00433 RPMFILE_STATE_REPLACED = 1,
00434 RPMFILE_STATE_NOTINSTALLED = 2,
00435 RPMFILE_STATE_NETSHARED = 3,
00436 RPMFILE_STATE_WRONGCOLOR = 4
00437 } rpmfileState;
00438 #define RPMFILE_STATE_MISSING -1
00439
00443 typedef enum rpmfileAttrs_e {
00444
00445 RPMFILE_NONE = 0,
00446
00447 RPMFILE_CONFIG = (1 << 0),
00448 RPMFILE_DOC = (1 << 1),
00449 RPMFILE_ICON = (1 << 2),
00450 RPMFILE_MISSINGOK = (1 << 3),
00451 RPMFILE_NOREPLACE = (1 << 4),
00452 RPMFILE_SPECFILE = (1 << 5),
00453 RPMFILE_GHOST = (1 << 6),
00454 RPMFILE_LICENSE = (1 << 7),
00455 RPMFILE_README = (1 << 8),
00456 RPMFILE_EXCLUDE = (1 << 9),
00457 RPMFILE_UNPATCHED = (1 << 10),
00458 RPMFILE_PUBKEY = (1 << 11),
00459 RPMFILE_POLICY = (1 << 12)
00460 } rpmfileAttrs;
00461
00462 #define RPMFILE_ALL ~(RPMFILE_NONE)
00463
00467 typedef enum rpmsenseFlags_e {
00468 RPMSENSE_ANY = 0,
00469
00470 RPMSENSE_SERIAL = (1 << 0),
00471
00472 RPMSENSE_LESS = (1 << 1),
00473 RPMSENSE_GREATER = (1 << 2),
00474 RPMSENSE_EQUAL = (1 << 3),
00475 RPMSENSE_PROVIDES = (1 << 4),
00476 RPMSENSE_CONFLICTS = (1 << 5),
00477 RPMSENSE_PREREQ = (1 << 6),
00478 RPMSENSE_OBSOLETES = (1 << 7),
00479 RPMSENSE_INTERP = (1 << 8),
00480 RPMSENSE_SCRIPT_PRE = ((1 << 9)|RPMSENSE_PREREQ),
00481 RPMSENSE_SCRIPT_POST = ((1 << 10)|RPMSENSE_PREREQ),
00482 RPMSENSE_SCRIPT_PREUN = ((1 << 11)|RPMSENSE_PREREQ),
00483 RPMSENSE_SCRIPT_POSTUN = ((1 << 12)|RPMSENSE_PREREQ),
00484 RPMSENSE_SCRIPT_VERIFY = (1 << 13),
00485 RPMSENSE_FIND_REQUIRES = (1 << 14),
00486 RPMSENSE_FIND_PROVIDES = (1 << 15),
00488 RPMSENSE_TRIGGERIN = (1 << 16),
00489 RPMSENSE_TRIGGERUN = (1 << 17),
00490 RPMSENSE_TRIGGERPOSTUN = (1 << 18),
00491 RPMSENSE_MISSINGOK = (1 << 19),
00492 RPMSENSE_SCRIPT_PREP = (1 << 20),
00493 RPMSENSE_SCRIPT_BUILD = (1 << 21),
00494 RPMSENSE_SCRIPT_INSTALL = (1 << 22),
00495 RPMSENSE_SCRIPT_CLEAN = (1 << 23),
00496 RPMSENSE_RPMLIB = ((1 << 24) | RPMSENSE_PREREQ),
00497
00498 RPMSENSE_TRIGGERPREIN = (1 << 25),
00499
00500 RPMSENSE_KEYRING = (1 << 26),
00501 RPMSENSE_PATCHES = (1 << 27),
00502 RPMSENSE_CONFIG = (1 << 28)
00503 } rpmsenseFlags;
00504
00505 #define RPMSENSE_SENSEMASK 15
00506
00507
00508 #define RPMSENSE_TRIGGER \
00509 (RPMSENSE_TRIGGERIN | RPMSENSE_TRIGGERUN | RPMSENSE_TRIGGERPOSTUN)
00510
00511 #define _ALL_REQUIRES_MASK (\
00512 RPMSENSE_INTERP | \
00513 RPMSENSE_SCRIPT_PRE | \
00514 RPMSENSE_SCRIPT_POST | \
00515 RPMSENSE_SCRIPT_PREUN | \
00516 RPMSENSE_SCRIPT_POSTUN | \
00517 RPMSENSE_SCRIPT_VERIFY | \
00518 RPMSENSE_FIND_REQUIRES | \
00519 RPMSENSE_SCRIPT_PREP | \
00520 RPMSENSE_SCRIPT_BUILD | \
00521 RPMSENSE_SCRIPT_INSTALL | \
00522 RPMSENSE_SCRIPT_CLEAN | \
00523 RPMSENSE_RPMLIB | \
00524 RPMSENSE_KEYRING )
00525
00526 #define _notpre(_x) ((_x) & ~RPMSENSE_PREREQ)
00527 #define _INSTALL_ONLY_MASK \
00528 _notpre(RPMSENSE_SCRIPT_PRE|RPMSENSE_SCRIPT_POST|RPMSENSE_RPMLIB|RPMSENSE_KEYRING)
00529 #define _ERASE_ONLY_MASK \
00530 _notpre(RPMSENSE_SCRIPT_PREUN|RPMSENSE_SCRIPT_POSTUN)
00531
00532 #define isLegacyPreReq(_x) (((_x) & _ALL_REQUIRES_MASK) == RPMSENSE_PREREQ)
00533 #define isInstallPreReq(_x) ((_x) & _INSTALL_ONLY_MASK)
00534 #define isErasePreReq(_x) ((_x) & _ERASE_ONLY_MASK)
00535
00536
00539
00540
00541 #define RPMVAR_OPTFLAGS 3
00542 #define RPMVAR_PROVIDES 38
00543 #define RPMVAR_INCLUDE 43
00544 #define RPMVAR_MACROFILES 49
00545
00546 #define RPMVAR_NUM 55
00547
00553
00554 extern const char * rpmGetVar(int var)
00555 ;
00556
00557
00563 void rpmSetVar(int var, const char * val)
00564
00565 ;
00566
00571 enum rpm_machtable_e {
00572 RPM_MACHTABLE_INSTARCH = 0,
00573 RPM_MACHTABLE_INSTOS = 1,
00574 RPM_MACHTABLE_BUILDARCH = 2,
00575 RPM_MACHTABLE_BUILDOS = 3
00576 };
00577 #define RPM_MACHTABLE_COUNT 4
00585 int rpmReadConfigFiles( const char * file,
00586 const char * target)
00587
00588
00589
00590 ;
00591
00598 void rpmGetArchInfo( const char ** name,
00599 int * num)
00600 ;
00601
00608 void rpmGetOsInfo( const char ** name,
00609 int * num)
00610 ;
00611
00625 int rpmMachineScore(int type, const char * name)
00626 ;
00627
00633 int rpmShowRC(FILE * fp)
00634
00635 ;
00636
00644 void rpmSetTables(int archTable, int osTable)
00645
00646 ;
00647
00658 void rpmSetMachine( const char * arch, const char * os)
00659
00660 ;
00661
00670
00671 void rpmGetMachine( const char **arch,
00672 const char **os)
00673 ;
00674
00679 void rpmFreeRpmrc(void)
00680
00681 ;
00682
00684
00694 typedef
00695 void * (*HFD_t) ( const void * data, rpmTagType type)
00696 ;
00697
00712 typedef int (*HGE_t) (Header h, rpmTag tag,
00713 rpmTagType * type,
00714 void ** p,
00715 int_32 * c)
00716 ;
00717
00733 typedef int (*HAE_t) (Header h, rpmTag tag, rpmTagType type,
00734 const void * p, int_32 c)
00735 ;
00736
00748 typedef int (*HME_t) (Header h, rpmTag tag, rpmTagType type,
00749 const void * p, int_32 c)
00750 ;
00751
00762 typedef int (*HRE_t) (Header h, int_32 tag)
00763 ;
00764
00768 typedef enum rpmprobFilterFlags_e {
00769 RPMPROB_FILTER_NONE = 0,
00770 RPMPROB_FILTER_IGNOREOS = (1 << 0),
00771 RPMPROB_FILTER_IGNOREARCH = (1 << 1),
00772 RPMPROB_FILTER_REPLACEPKG = (1 << 2),
00773 RPMPROB_FILTER_FORCERELOCATE= (1 << 3),
00774 RPMPROB_FILTER_REPLACENEWFILES= (1 << 4),
00775 RPMPROB_FILTER_REPLACEOLDFILES= (1 << 5),
00776 RPMPROB_FILTER_OLDPACKAGE = (1 << 6),
00777 RPMPROB_FILTER_DISKSPACE = (1 << 7),
00778 RPMPROB_FILTER_DISKNODES = (1 << 8)
00779 } rpmprobFilterFlags;
00780
00784 typedef struct rpmRelocation_s {
00785
00786 const char * oldPath;
00787
00788 const char * newPath;
00789 } rpmRelocation;
00790
00797 int rpmVersionCompare(Header first, Header second)
00798 ;
00799
00803 typedef enum fileAction_e {
00804 FA_UNKNOWN = 0,
00805 FA_CREATE,
00806 FA_COPYIN,
00807 FA_COPYOUT,
00808 FA_BACKUP,
00809 FA_SAVE,
00810 FA_SKIP,
00811 FA_ALTNAME,
00812 FA_ERASE,
00813 FA_SKIPNSTATE,
00814 FA_SKIPNETSHARED,
00815 FA_SKIPCOLOR
00816 } fileAction;
00817
00818 #define XFA_SKIPPING(_a) \
00819 ((_a) == FA_SKIP || (_a) == FA_SKIPNSTATE || (_a) == FA_SKIPNETSHARED || (_a) == FA_SKIPCOLOR)
00820
00828 typedef enum fileTypes_e {
00829 PIPE = 1,
00830 CDEV = 2,
00831 XDIR = 4,
00832 BDEV = 6,
00833 REG = 8,
00834 LINK = 10,
00835 SOCK = 12
00836 } fileTypes;
00837
00841 typedef struct fsmIterator_s * FSMI_t;
00842
00846 typedef struct fsm_s * FSM_t;
00847
00851 typedef struct rpmpsm_s * rpmpsm;
00852
00862 int headerVerifyInfo(int il, int dl, const void * pev, void * iv, int negate)
00863 ;
00864
00878 rpmRC headerCheck(rpmts ts, const void * uh, size_t uc,
00879 const char ** msg)
00880
00881
00882 ;
00883
00892 rpmRC rpmReadHeader(rpmts ts, FD_t fd, Header *hdrp,
00893 const char ** msg)
00894
00895
00896 ;
00897
00906 rpmRC rpmReadPackageFile(rpmts ts, FD_t fd,
00907 const char * fn, Header * hdrp)
00908
00909
00910 ;
00911
00920 rpmRC rpmInstallSourcePackage(rpmts ts, FD_t fd,
00921 const char ** specFilePtr,
00922 const char ** cookie)
00923
00924
00925 ;
00926
00930 typedef enum rpmtransFlags_e {
00931 RPMTRANS_FLAG_NONE = 0,
00932 RPMTRANS_FLAG_TEST = (1 << 0),
00933 RPMTRANS_FLAG_BUILD_PROBS = (1 << 1),
00934 RPMTRANS_FLAG_NOSCRIPTS = (1 << 2),
00935 RPMTRANS_FLAG_JUSTDB = (1 << 3),
00936 RPMTRANS_FLAG_NOTRIGGERS = (1 << 4),
00937 RPMTRANS_FLAG_NODOCS = (1 << 5),
00938 RPMTRANS_FLAG_ALLFILES = (1 << 6),
00939
00940 RPMTRANS_FLAG_KEEPOBSOLETE = (1 << 7),
00941
00942 RPMTRANS_FLAG_NOCONTEXTS = (1 << 8),
00943 RPMTRANS_FLAG_DIRSTASH = (1 << 9),
00944 RPMTRANS_FLAG_REPACKAGE = (1 << 10),
00946 RPMTRANS_FLAG_PKGCOMMIT = (1 << 11),
00947
00948 RPMTRANS_FLAG_PKGUNDO = (1 << 12),
00949
00950 RPMTRANS_FLAG_COMMIT = (1 << 13),
00951
00952 RPMTRANS_FLAG_UNDO = (1 << 14),
00953
00954 RPMTRANS_FLAG_REVERSE = (1 << 15),
00955
00956 RPMTRANS_FLAG_NOTRIGGERPREIN= (1 << 16),
00957 RPMTRANS_FLAG_NOPRE = (1 << 17),
00958 RPMTRANS_FLAG_NOPOST = (1 << 18),
00959 RPMTRANS_FLAG_NOTRIGGERIN = (1 << 19),
00960 RPMTRANS_FLAG_NOTRIGGERUN = (1 << 20),
00961 RPMTRANS_FLAG_NOPREUN = (1 << 21),
00962 RPMTRANS_FLAG_NOPOSTUN = (1 << 22),
00963 RPMTRANS_FLAG_NOTRIGGERPOSTUN = (1 << 23),
00964
00965 RPMTRANS_FLAG_NOPAYLOAD = (1 << 24),
00966
00967 RPMTRANS_FLAG_APPLYONLY = (1 << 25),
00968
00969 RPMTRANS_FLAG_ANACONDA = (1 << 26),
00970 RPMTRANS_FLAG_NOMD5 = (1 << 27),
00971 RPMTRANS_FLAG_NOSUGGEST = (1 << 28),
00972 RPMTRANS_FLAG_ADDINDEPS = (1 << 29),
00973 RPMTRANS_FLAG_NOCONFIGS = (1 << 30)
00974 } rpmtransFlags;
00975
00976 #define _noTransScripts \
00977 ( RPMTRANS_FLAG_NOPRE | \
00978 RPMTRANS_FLAG_NOPOST | \
00979 RPMTRANS_FLAG_NOPREUN | \
00980 RPMTRANS_FLAG_NOPOSTUN \
00981 )
00982
00983 #define _noTransTriggers \
00984 ( RPMTRANS_FLAG_NOTRIGGERPREIN | \
00985 RPMTRANS_FLAG_NOTRIGGERIN | \
00986 RPMTRANS_FLAG_NOTRIGGERUN | \
00987 RPMTRANS_FLAG_NOTRIGGERPOSTUN \
00988 )
00989
00997
00998 int rpmGetRpmlibProvides( const char *** provNames,
00999 int ** provFlags,
01000 const char *** provVersions)
01001 ;
01002
01010 int rpmvercmp(const char * a, const char * b)
01011 ;
01012
01018 int rpmCheckRpmlibProvides(const rpmds key)
01019 ;
01020
01025 void rpmShowRpmlibProvides(FILE * fp)
01026
01027 ;
01028
01036
01037 extern const char *const tagName(int tag)
01038 ;
01039
01040
01046 int tagValue(const char * tagstr)
01047 ;
01048
01049 #define RPMLEAD_BINARY 0
01050 #define RPMLEAD_SOURCE 1
01051
01052 #define RPMLEAD_MAGIC0 0xed
01053 #define RPMLEAD_MAGIC1 0xab
01054 #define RPMLEAD_MAGIC2 0xee
01055 #define RPMLEAD_MAGIC3 0xdb
01056
01057 #define RPMLEAD_SIZE 96
01065 struct rpmlead {
01066 unsigned char magic[4];
01067 unsigned char major;
01068 unsigned char minor;
01069 short type;
01070 short archnum;
01071 char name[66];
01072 short osnum;
01073 short signature_type;
01074 char reserved[16];
01075 } ;
01076
01080 void freeFilesystems(void)
01081
01082 ;
01083
01090
01091 int rpmGetFilesystemList( const char *** listptr,
01092 int * num)
01093
01094
01095
01096 ;
01097
01098
01108
01109 int rpmGetFilesystemUsage(const char ** fileList, int_32 * fssizes,
01110 int numFiles, uint_32 ** usagesPtr,
01111 int flags)
01112
01113
01114
01115
01116
01117
01118 ;
01119
01120
01121
01124
01125
01130 typedef enum rpmInstallInterfaceFlags_e {
01131 INSTALL_NONE = 0,
01132 INSTALL_PERCENT = (1 << 0),
01133 INSTALL_HASH = (1 << 1),
01134 INSTALL_NODEPS = (1 << 2),
01135 INSTALL_NOORDER = (1 << 3),
01136 INSTALL_LABEL = (1 << 4),
01137 INSTALL_UPGRADE = (1 << 5),
01138 INSTALL_FRESHEN = (1 << 6),
01139 INSTALL_INSTALL = (1 << 7),
01140 INSTALL_ERASE = (1 << 8)
01141 } rpmInstallInterfaceFlags;
01142
01146 typedef enum rpmEraseInterfaceFlags_e {
01147 UNINSTALL_NONE = 0,
01148 UNINSTALL_NODEPS = (1 << 0),
01149 UNINSTALL_ALLMATCHES= (1 << 1)
01150 } rpmEraseInterfaceFlags;
01151
01153
01156
01160 enum rpmtagSignature {
01161 RPMSIGTAG_SIZE = 1000,
01162 RPMSIGTAG_LEMD5_1 = 1001,
01163 RPMSIGTAG_PGP = 1002,
01164 RPMSIGTAG_LEMD5_2 = 1003,
01165 RPMSIGTAG_MD5 = 1004,
01166 RPMSIGTAG_GPG = 1005,
01167 RPMSIGTAG_PGP5 = 1006,
01168 RPMSIGTAG_PAYLOADSIZE = 1007,
01169 RPMSIGTAG_BADSHA1_1 = RPMTAG_BADSHA1_1,
01170 RPMSIGTAG_BADSHA1_2 = RPMTAG_BADSHA1_2,
01171 RPMSIGTAG_SHA1 = RPMTAG_SHA1HEADER,
01172 RPMSIGTAG_DSA = RPMTAG_DSAHEADER,
01173 RPMSIGTAG_RSA = RPMTAG_RSAHEADER
01174 };
01175
01189 rpmRC rpmVerifySignature(const rpmts ts,
01190 char * result)
01191
01192
01193 ;
01194
01200 Header rpmFreeSignature( Header h)
01201 ;
01202
01205 #ifdef __cplusplus
01206 }
01207 #endif
01208
01209 #endif