rpm
4.8.1
|
00001 #ifndef H_RPMFI 00002 #define H_RPMFI 00003 00009 #include <rpm/rpmtypes.h> 00010 #include <rpm/rpmvf.h> 00011 #include <rpm/rpmpgp.h> 00012 00013 #ifdef __cplusplus 00014 extern "C" { 00015 #endif 00016 00017 extern int _rpmfi_debug; 00018 00026 typedef enum rpmFileTypes_e { 00027 PIPE = 1, 00028 CDEV = 2, 00029 XDIR = 4, 00030 BDEV = 6, 00031 REG = 8, 00032 LINK = 10, 00033 SOCK = 12 00034 } rpmFileTypes; 00035 00039 typedef enum rpmfileState_e { 00040 RPMFILE_STATE_NORMAL = 0, 00041 RPMFILE_STATE_REPLACED = 1, 00042 RPMFILE_STATE_NOTINSTALLED = 2, 00043 RPMFILE_STATE_NETSHARED = 3, 00044 RPMFILE_STATE_WRONGCOLOR = 4 00045 } rpmfileState; 00046 #define RPMFILE_STATE_MISSING -1 /* XXX used for unavailable data */ 00047 00051 typedef enum rpmfileAttrs_e { 00052 RPMFILE_NONE = 0, 00053 RPMFILE_CONFIG = (1 << 0), 00054 RPMFILE_DOC = (1 << 1), 00055 RPMFILE_ICON = (1 << 2), 00056 RPMFILE_MISSINGOK = (1 << 3), 00057 RPMFILE_NOREPLACE = (1 << 4), 00058 RPMFILE_SPECFILE = (1 << 5), 00059 RPMFILE_GHOST = (1 << 6), 00060 RPMFILE_LICENSE = (1 << 7), 00061 RPMFILE_README = (1 << 8), 00062 RPMFILE_EXCLUDE = (1 << 9), 00063 RPMFILE_UNPATCHED = (1 << 10), 00064 RPMFILE_PUBKEY = (1 << 11), 00065 RPMFILE_POLICY = (1 << 12) 00066 } rpmfileAttrs; 00067 00068 #define RPMFILE_ALL ~(RPMFILE_NONE) 00069 00073 typedef enum rpmFileAction_e { 00074 FA_UNKNOWN = 0, 00075 FA_CREATE, 00076 FA_COPYIN, 00077 FA_COPYOUT, 00078 FA_BACKUP, 00079 FA_SAVE, 00080 FA_SKIP, 00081 FA_ALTNAME, 00082 FA_ERASE, 00083 FA_SKIPNSTATE, 00084 FA_SKIPNETSHARED, 00085 FA_SKIPCOLOR 00086 } rpmFileAction; 00087 00088 #define XFA_SKIPPING(_a) \ 00089 ((_a) == FA_SKIP || (_a) == FA_SKIPNSTATE || (_a) == FA_SKIPNETSHARED || (_a) == FA_SKIPCOLOR) 00090 00094 struct rpmRelocation_s { 00095 char * oldPath; 00096 char * newPath; 00097 }; 00098 00105 rpmfi rpmfiUnlink (rpmfi fi, 00106 const char * msg); 00107 00114 rpmfi rpmfiLink (rpmfi fi, const char * msg); 00115 00121 rpm_count_t rpmfiFC(rpmfi fi); 00122 00128 int rpmfiFX(rpmfi fi); 00129 00136 int rpmfiSetFX(rpmfi fi, int fx); 00137 00143 rpm_count_t rpmfiDC(rpmfi fi); 00144 00150 int rpmfiDX(rpmfi fi); 00151 00158 int rpmfiSetDX(rpmfi fi, int dx); 00159 00165 const char * rpmfiBN(rpmfi fi); 00166 00172 const char * rpmfiDN(rpmfi fi); 00173 00179 const char * rpmfiFN(rpmfi fi); 00180 00186 rpmfileAttrs rpmfiFFlags(rpmfi fi); 00187 00193 rpmVerifyAttrs rpmfiVFlags(rpmfi fi); 00194 00200 rpm_mode_t rpmfiFMode(rpmfi fi); 00201 00207 rpmfileState rpmfiFState(rpmfi fi); 00208 00214 pgpHashAlgo rpmfiDigestAlgo(rpmfi fi); 00215 00223 const unsigned char * rpmfiFDigest(rpmfi fi, pgpHashAlgo *algo, size_t *diglen); 00224 00234 char * rpmfiFDigestHex(rpmfi fi, pgpHashAlgo *algo); 00235 00242 const unsigned char * rpmfiMD5(rpmfi fi) RPM_GNUC_DEPRECATED; 00243 00249 const char * rpmfiFLink(rpmfi fi); 00250 00256 rpm_loff_t rpmfiFSize(rpmfi fi); 00257 00263 rpm_rdev_t rpmfiFRdev(rpmfi fi); 00264 00270 rpm_ino_t rpmfiFInode(rpmfi fi); 00271 00277 rpm_color_t rpmfiColor(rpmfi fi); 00278 00284 rpm_color_t rpmfiFColor(rpmfi fi); 00285 00291 const char * rpmfiFClass(rpmfi fi); 00292 00299 uint32_t rpmfiFDepends(rpmfi fi, 00300 const uint32_t ** fddictp); 00301 00307 uint32_t rpmfiFNlink(rpmfi fi); 00308 00314 rpm_time_t rpmfiFMtime(rpmfi fi); 00315 00321 const char * rpmfiFUser(rpmfi fi); 00322 00328 const char * rpmfiFGroup(rpmfi fi); 00329 00337 const char * rpmfiFCaps(rpmfi fi); 00338 00344 const char * rpmfiFLangs(rpmfi fi); 00345 00351 int rpmfiNext(rpmfi fi); 00352 00359 rpmfi rpmfiInit(rpmfi fi, int fx); 00360 00366 int rpmfiNextD(rpmfi fi); 00367 00374 rpmfi rpmfiInitD(rpmfi fi, int dx); 00375 00381 rpmfi rpmfiFree(rpmfi fi); 00382 00383 typedef enum rpmfiFlags_e { 00384 RPMFI_NOHEADER = 0, 00385 RPMFI_KEEPHEADER = (1 << 0), 00386 RPMFI_NOFILECLASS = (1 << 1), 00387 RPMFI_NOFILEDEPS = (1 << 2), 00388 RPMFI_NOFILELANGS = (1 << 3), 00389 RPMFI_NOFILEUSER = (1 << 4), 00390 RPMFI_NOFILEGROUP = (1 << 5), 00391 RPMFI_NOFILEMODES = (1 << 6), 00392 RPMFI_NOFILESIZES = (1 << 7), 00393 RPMFI_NOFILECAPS = (1 << 8), 00394 RPMFI_NOFILELINKTOS = (1 << 9), 00395 RPMFI_NOFILEDIGESTS = (1 << 10), 00396 RPMFI_NOFILEMTIMES = (1 << 11), 00397 RPMFI_NOFILERDEVS = (1 << 12), 00398 RPMFI_NOFILEINODES = (1 << 13), 00399 RPMFI_NOFILESTATES = (1 << 14), 00400 RPMFI_NOFILECOLORS = (1 << 15), 00401 RPMFI_NOFILEVERIFYFLAGS = (1 << 16), 00402 RPMFI_NOFILEFLAGS = (1 << 17), 00403 RPMFI_ISBUILD = (1 << 30), /* internal */ 00404 RPMFI_ISSOURCE = (1 << 31), /* internal */ 00405 } rpmfiFlags; 00406 00407 #define RPMFI_FLAGS_ERASE \ 00408 (RPMFI_NOFILECLASS | RPMFI_NOFILELANGS | \ 00409 RPMFI_NOFILEMTIMES | RPMFI_NOFILERDEVS | RPMFI_NOFILEINODES | \ 00410 RPMFI_NOFILEVERIFYFLAGS) 00411 00412 #define RPMFI_FLAGS_INSTALL \ 00413 (RPMFI_NOFILECLASS | RPMFI_NOFILEVERIFYFLAGS) 00414 00415 #define RPMFI_FLAGS_VERIFY \ 00416 (RPMFI_NOFILECLASS | RPMFI_NOFILEDEPS | RPMFI_NOFILELANGS | \ 00417 RPMFI_NOFILECOLORS) 00418 00419 #define RPMFI_FLAGS_QUERY \ 00420 (RPMFI_NOFILECLASS | RPMFI_NOFILEDEPS | RPMFI_NOFILELANGS | \ 00421 RPMFI_NOFILECOLORS | RPMFI_NOFILEVERIFYFLAGS) 00422 00431 rpmfi rpmfiNew(const rpmts ts, Header h, rpmTag tagN, rpmfiFlags flags); 00432 00438 rpmFileTypes rpmfiWhatis(rpm_mode_t mode); 00439 00446 int rpmfiCompare(const rpmfi afi, const rpmfi bfi); 00447 00455 rpmFileAction rpmfiDecideFate(const rpmfi ofi, rpmfi nfi, int skipMissing); 00456 00462 int rpmfiConfigConflict(const rpmfi fi); 00463 00464 #ifdef __cplusplus 00465 } 00466 #endif 00467 00468 #endif /* H_RPMDS */