rpm  4.8.1
rpmfi.h
Go to the documentation of this file.
1 #ifndef H_RPMFI
2 #define H_RPMFI
3 
9 #include <rpm/rpmtypes.h>
10 #include <rpm/rpmvf.h>
11 #include <rpm/rpmpgp.h>
12 
13 #ifdef __cplusplus
14 extern "C" {
15 #endif
16 
17 extern int _rpmfi_debug;
18 
26 typedef enum rpmFileTypes_e {
27  PIPE = 1,
28  CDEV = 2,
29  XDIR = 4,
30  BDEV = 6,
31  REG = 8,
32  LINK = 10,
33  SOCK = 12
34 } rpmFileTypes;
35 
39 typedef enum rpmfileState_e {
45 } rpmfileState;
46 #define RPMFILE_STATE_MISSING -1 /* XXX used for unavailable data */
47 
51 typedef enum rpmfileAttrs_e {
53  RPMFILE_CONFIG = (1 << 0),
54  RPMFILE_DOC = (1 << 1),
55  RPMFILE_ICON = (1 << 2),
56  RPMFILE_MISSINGOK = (1 << 3),
57  RPMFILE_NOREPLACE = (1 << 4),
58  RPMFILE_SPECFILE = (1 << 5),
59  RPMFILE_GHOST = (1 << 6),
60  RPMFILE_LICENSE = (1 << 7),
61  RPMFILE_README = (1 << 8),
62  RPMFILE_EXCLUDE = (1 << 9),
63  RPMFILE_UNPATCHED = (1 << 10),
64  RPMFILE_PUBKEY = (1 << 11),
65  RPMFILE_POLICY = (1 << 12)
66 } rpmfileAttrs;
67 
68 #define RPMFILE_ALL ~(RPMFILE_NONE)
69 
73 typedef enum rpmFileAction_e {
74  FA_UNKNOWN = 0,
87 
88 #define XFA_SKIPPING(_a) \
89  ((_a) == FA_SKIP || (_a) == FA_SKIPNSTATE || (_a) == FA_SKIPNETSHARED || (_a) == FA_SKIPCOLOR)
90 
95  char * oldPath;
96  char * newPath;
97 };
98 
106  const char * msg);
107 
114 rpmfi rpmfiLink (rpmfi fi, const char * msg);
115 
122 
128 int rpmfiFX(rpmfi fi);
129 
136 int rpmfiSetFX(rpmfi fi, int fx);
137 
144 
150 int rpmfiDX(rpmfi fi);
151 
158 int rpmfiSetDX(rpmfi fi, int dx);
159 
165 const char * rpmfiBN(rpmfi fi);
166 
172 const char * rpmfiDN(rpmfi fi);
173 
179 const char * rpmfiFN(rpmfi fi);
180 
187 
194 
201 
208 
215 
223 const unsigned char * rpmfiFDigest(rpmfi fi, pgpHashAlgo *algo, size_t *diglen);
224 
234 char * rpmfiFDigestHex(rpmfi fi, pgpHashAlgo *algo);
235 
242 const unsigned char * rpmfiMD5(rpmfi fi) RPM_GNUC_DEPRECATED;
243 
249 const char * rpmfiFLink(rpmfi fi);
250 
257 
264 
271 
278 
285 
291 const char * rpmfiFClass(rpmfi fi);
292 
299 uint32_t rpmfiFDepends(rpmfi fi,
300  const uint32_t ** fddictp);
301 
307 uint32_t rpmfiFNlink(rpmfi fi);
308 
315 
321 const char * rpmfiFUser(rpmfi fi);
322 
328 const char * rpmfiFGroup(rpmfi fi);
329 
337 const char * rpmfiFCaps(rpmfi fi);
338 
344 const char * rpmfiFLangs(rpmfi fi);
345 
351 int rpmfiNext(rpmfi fi);
352 
359 rpmfi rpmfiInit(rpmfi fi, int fx);
360 
366 int rpmfiNextD(rpmfi fi);
367 
374 rpmfi rpmfiInitD(rpmfi fi, int dx);
375 
381 rpmfi rpmfiFree(rpmfi fi);
382 
383 typedef enum rpmfiFlags_e {
385  RPMFI_KEEPHEADER = (1 << 0),
386  RPMFI_NOFILECLASS = (1 << 1),
387  RPMFI_NOFILEDEPS = (1 << 2),
388  RPMFI_NOFILELANGS = (1 << 3),
389  RPMFI_NOFILEUSER = (1 << 4),
390  RPMFI_NOFILEGROUP = (1 << 5),
391  RPMFI_NOFILEMODES = (1 << 6),
392  RPMFI_NOFILESIZES = (1 << 7),
393  RPMFI_NOFILECAPS = (1 << 8),
395  RPMFI_NOFILEDIGESTS = (1 << 10),
396  RPMFI_NOFILEMTIMES = (1 << 11),
397  RPMFI_NOFILERDEVS = (1 << 12),
398  RPMFI_NOFILEINODES = (1 << 13),
399  RPMFI_NOFILESTATES = (1 << 14),
400  RPMFI_NOFILECOLORS = (1 << 15),
402  RPMFI_NOFILEFLAGS = (1 << 17),
403  RPMFI_ISBUILD = (1 << 30), /* internal */
404  RPMFI_ISSOURCE = (1 << 31), /* internal */
405 } rpmfiFlags;
406 
407 #define RPMFI_FLAGS_ERASE \
408  (RPMFI_NOFILECLASS | RPMFI_NOFILELANGS | \
409  RPMFI_NOFILEMTIMES | RPMFI_NOFILERDEVS | RPMFI_NOFILEINODES | \
410  RPMFI_NOFILEVERIFYFLAGS)
411 
412 #define RPMFI_FLAGS_INSTALL \
413  (RPMFI_NOFILECLASS | RPMFI_NOFILEVERIFYFLAGS)
414 
415 #define RPMFI_FLAGS_VERIFY \
416  (RPMFI_NOFILECLASS | RPMFI_NOFILEDEPS | RPMFI_NOFILELANGS | \
417  RPMFI_NOFILECOLORS)
418 
419 #define RPMFI_FLAGS_QUERY \
420  (RPMFI_NOFILECLASS | RPMFI_NOFILEDEPS | RPMFI_NOFILELANGS | \
421  RPMFI_NOFILECOLORS | RPMFI_NOFILEVERIFYFLAGS)
422 
431 rpmfi rpmfiNew(const rpmts ts, Header h, rpmTag tagN, rpmfiFlags flags);
432 
439 
446 int rpmfiCompare(const rpmfi afi, const rpmfi bfi);
447 
455 rpmFileAction rpmfiDecideFate(const rpmfi ofi, rpmfi nfi, int skipMissing);
456 
462 int rpmfiConfigConflict(const rpmfi fi);
463 
464 #ifdef __cplusplus
465 }
466 #endif
467 
468 #endif /* H_RPMDS */
const char * rpmfiFClass(rpmfi fi)
Return current file class from file info set.
rpmfiFlags_e
Definition: rpmfi.h:383
Definition: rpmfi.h:79
rpm_count_t rpmfiDC(rpmfi fi)
Return directory count from file info set.
rpmfi rpmfiNew(const rpmts ts, Header h, rpmTag tagN, rpmfiFlags flags)
Create and load a file info set.
char * rpmfiFDigestHex(rpmfi fi, pgpHashAlgo *algo)
Return current file (hex) digest of file info set.
enum pgpHashAlgo_e pgpHashAlgo
9.4.
int rpmfiDX(rpmfi fi)
Return current directory index from file info set.
rpmFileAction_e
File disposition(s) during package install/erase transaction.
Definition: rpmfi.h:73
char * oldPath
Definition: rpmfi.h:95
int rpmfiNextD(rpmfi fi)
Return next directory iterator index.
rpm_color_t rpmfiColor(rpmfi fi)
Return union of all file color bits from file info set.
uint32_t rpm_count_t
Definition: rpmtypes.h:29
const unsigned char * rpmfiFDigest(rpmfi fi, pgpHashAlgo *algo, size_t *diglen)
Return current file (binary) digest of file info set.
rpm_color_t rpmfiFColor(rpmfi fi)
Return current file color bits from file info set.
rpmfi rpmfiUnlink(rpmfi fi, const char *msg)
Unreference a file info set instance.
enum rpmTag_e rpmTag
Tags identify data in package headers.
enum rpmVerifyAttrs_e rpmVerifyAttrs
Bit(s) for rpmVerifyFile() attributes and result.
char * newPath
Definition: rpmfi.h:96
Definition: rpmfi.h:30
rpmfi rpmfiFree(rpmfi fi)
Destroy a file info set.
Definition: rpmfi.h:33
#define RPM_GNUC_DEPRECATED
Definition: rpmutil.h:80
rpm_count_t rpmfiFC(rpmfi fi)
Return file count from file info set.
rpmFileTypes_e
File types.
Definition: rpmfi.h:26
rpmVerifyAttrs rpmfiVFlags(rpmfi fi)
Return current file verify flags from file info set.
We pass these around as an array with a sentinel.
Definition: rpmfi.h:94
struct rpmfi_s * rpmfi
Definition: rpmtypes.h:62
rpm_time_t rpmfiFMtime(rpmfi fi)
Return current file modify time from file info set.
uint32_t rpm_ino_t
Definition: rpmtypes.h:52
Definition: rpmfi.h:28
rpm_ino_t rpmfiFInode(rpmfi fi)
Return current file inode from file info set.
int rpmfiFX(rpmfi fi)
Return current file index from file info set.
const char * rpmfiFN(rpmfi fi)
Return current file name from file info set.
pgpHashAlgo rpmfiDigestAlgo(rpmfi fi)
Return digest algorithm of a file info set.
rpmfileAttrs rpmfiFFlags(rpmfi fi)
Return current file flags from file info set.
rpmfileState rpmfiFState(rpmfi fi)
Return current file state from file info set.
uint64_t rpm_loff_t
Definition: rpmtypes.h:47
int rpmfiSetFX(rpmfi fi, int fx)
Set current file index in file info set.
Definition: rpmfi.h:32
int _rpmfi_debug
enum rpmfiFlags_e rpmfiFlags
uint32_t rpmfiFNlink(rpmfi fi)
Return (calculated) current file nlink count from file info set.
Definition: rpmfi.h:27
int rpmfiConfigConflict(const rpmfi fi)
Return whether file is conflicting config.
rpmfi rpmfiInitD(rpmfi fi, int dx)
Initialize directory iterator index.
int rpmfiSetDX(rpmfi fi, int dx)
Set current directory index in file info set.
const char * rpmfiFGroup(rpmfi fi)
Return current file group from file info set.
enum rpmfileAttrs_e rpmfileAttrs
File Attributes.
rpm_rdev_t rpmfiFRdev(rpmfi fi)
Return current file rdev from file info set.
int rpmfiNext(rpmfi fi)
Return next file iterator index.
const char * rpmfiFLangs(rpmfi fi)
Return current file language(s) from file info set.
rpmFileTypes rpmfiWhatis(rpm_mode_t mode)
Return file type from mode_t.
uint16_t rpm_rdev_t
Definition: rpmtypes.h:50
rpmfileAttrs_e
File Attributes.
Definition: rpmfi.h:51
rpmfileState_e
File States (when installed).
Definition: rpmfi.h:39
enum rpmfileState_e rpmfileState
File States (when installed).
const char * rpmfiFCaps(rpmfi fi)
Return textual representation of current file capabilities from file info set.
rpmfi rpmfiLink(rpmfi fi, const char *msg)
Reference a file info set instance.
int rpmfiCompare(const rpmfi afi, const rpmfi bfi)
Return file info comparison.
Definition: rpmfi.h:82
struct rpmts_s * rpmts
The main types involved in transaction manipulation.
Definition: rpmtypes.h:59
uint32_t rpm_color_t
Definition: rpmtypes.h:36
rpm_loff_t rpmfiFSize(rpmfi fi)
Return current file size from file info set.
rpmFileAction rpmfiDecideFate(const rpmfi ofi, rpmfi nfi, int skipMissing)
Return file disposition.
Definition: rpmfi.h:29
Definition: rpmfi.h:31
rpm_mode_t rpmfiFMode(rpmfi fi)
Return current file mode from file info set.
enum rpmFileAction_e rpmFileAction
File disposition(s) during package install/erase transaction.
const char * rpmfiFLink(rpmfi fi)
Return current file linkto (i.e.
rpmfi rpmfiInit(rpmfi fi, int fx)
Initialize file iterator index.
uint32_t rpm_time_t
Definition: rpmtypes.h:48
Definition: rpmfi.h:80
const unsigned char * rpmfiMD5(rpmfi fi) RPM_GNUC_DEPRECATED
Return current file (binary) md5 digest from file info set.
const char * rpmfiBN(rpmfi fi)
Return current base name from file info set.
const char * rpmfiDN(rpmfi fi)
Return current directory name from file info set.
const char * rpmfiFUser(rpmfi fi)
Return current file owner from file info set.
uint16_t rpm_mode_t
Definition: rpmtypes.h:49
struct headerToken_s * Header
RPM header and data retrieval types.
Definition: rpmtypes.h:24
enum rpmFileTypes_e rpmFileTypes
File types.
uint32_t rpmfiFDepends(rpmfi fi, const uint32_t **fddictp)
Return current file depends dictionary from file info set.