rpm  4.13.0
rpmfiles.h
Go to the documentation of this file.
1 #ifndef _RPMFILES_H
2 #define _RPMFILES_H
3 
8 #include <sys/types.h>
9 #include <sys/stat.h>
10 #include <unistd.h>
11 
12 #include <rpm/rpmtypes.h>
13 #include <rpm/rpmvf.h>
14 #include <rpm/rpmpgp.h>
15 
23 typedef enum rpmFileTypes_e {
24  PIPE = 1,
25  CDEV = 2,
26  XDIR = 4,
27  BDEV = 6,
28  REG = 8,
29  LINK = 10,
30  SOCK = 12
31 } rpmFileTypes;
32 
36 typedef enum rpmfileState_e {
37  RPMFILE_STATE_MISSING = -1, /* used for unavailable data */
43 } rpmfileState;
44 
45 #define RPMFILE_IS_INSTALLED(_x) ((_x) == RPMFILE_STATE_NORMAL || (_x) == RPMFILE_STATE_NETSHARED)
46 
52  RPMFILE_CONFIG = (1 << 0),
53  RPMFILE_DOC = (1 << 1),
54  RPMFILE_ICON = (1 << 2),
55  RPMFILE_MISSINGOK = (1 << 3),
56  RPMFILE_NOREPLACE = (1 << 4),
57  RPMFILE_SPECFILE = (1 << 5),
58  RPMFILE_GHOST = (1 << 6),
59  RPMFILE_LICENSE = (1 << 7),
60  RPMFILE_README = (1 << 8),
61  /* bits 9-10 unused */
62  RPMFILE_PUBKEY = (1 << 11),
63 };
64 
66 
67 #define RPMFILE_ALL ~(RPMFILE_NONE)
68 
72 typedef enum rpmFileAction_e {
73  FA_UNKNOWN = 0,
74  FA_CREATE = 1,
75  FA_COPYIN = 2,
76  FA_COPYOUT = 3,
77  FA_BACKUP = 4,
78  FA_SAVE = 5,
79  FA_SKIP = 6,
80  FA_ALTNAME = 7,
81  FA_ERASE = 8,
84  FA_SKIPCOLOR = 11,
85  /* bits 16-31 reserved */
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 
101  RPMFI_KEEPHEADER = (1 << 0),
102  RPMFI_NOFILECLASS = (1 << 1),
103  RPMFI_NOFILEDEPS = (1 << 2),
104  RPMFI_NOFILELANGS = (1 << 3),
105  RPMFI_NOFILEUSER = (1 << 4),
106  RPMFI_NOFILEGROUP = (1 << 5),
107  RPMFI_NOFILEMODES = (1 << 6),
108  RPMFI_NOFILESIZES = (1 << 7),
109  RPMFI_NOFILECAPS = (1 << 8),
111  RPMFI_NOFILEDIGESTS = (1 << 10),
112  RPMFI_NOFILEMTIMES = (1 << 11),
113  RPMFI_NOFILERDEVS = (1 << 12),
114  RPMFI_NOFILEINODES = (1 << 13),
115  RPMFI_NOFILESTATES = (1 << 14),
116  RPMFI_NOFILECOLORS = (1 << 15),
118  RPMFI_NOFILEFLAGS = (1 << 17),
120 };
121 
123 
124 #define RPMFI_FLAGS_ERASE \
125  (RPMFI_NOFILECLASS | RPMFI_NOFILELANGS | \
126  RPMFI_NOFILEMTIMES | RPMFI_NOFILERDEVS | RPMFI_NOFILEINODES | \
127  RPMFI_NOFILEVERIFYFLAGS)
128 
129 #define RPMFI_FLAGS_INSTALL \
130  (RPMFI_NOFILECLASS | RPMFI_NOFILEVERIFYFLAGS)
131 
132 #define RPMFI_FLAGS_VERIFY \
133  (RPMFI_NOFILECLASS | RPMFI_NOFILEDEPS | RPMFI_NOFILELANGS | \
134  RPMFI_NOFILECOLORS)
135 
136 #define RPMFI_FLAGS_QUERY \
137  (RPMFI_NOFILECLASS | RPMFI_NOFILEDEPS | RPMFI_NOFILELANGS | \
138  RPMFI_NOFILECOLORS | RPMFI_NOFILEVERIFYFLAGS)
139 
140 #define RPMFI_FLAGS_ONLY_FILENAMES \
141  (RPMFI_NOFILECLASS | RPMFI_NOFILEDEPS | RPMFI_NOFILELANGS | \
142  RPMFI_NOFILEUSER | RPMFI_NOFILEGROUP | RPMFI_NOFILEMODES | \
143  RPMFI_NOFILESIZES | RPMFI_NOFILECAPS | RPMFI_NOFILELINKTOS | \
144  RPMFI_NOFILEDIGESTS | RPMFI_NOFILEMTIMES | RPMFI_NOFILERDEVS | \
145  RPMFI_NOFILEINODES | RPMFI_NOFILESTATES | RPMFI_NOFILECOLORS | \
146  RPMFI_NOFILEVERIFYFLAGS | RPMFI_NOFILEFLAGS)
147 
148 typedef enum rpmFileIter_e {
156 } rpmFileIter;
157 
158 #define RPMFILEITERMAX 6
159 
160 #ifdef __cplusplus
161 extern "C" {
162 #endif
163 
173 
180 
187 
194 
201 
210 int rpmfilesFindFN(rpmfiles files, const char * fn);
211 
220 int rpmfilesFindOFN(rpmfiles files, const char * fn);
221 
222 rpmfi rpmfilesIter(rpmfiles files, int itype);
223 
230 
237 
246 int rpmfilesCompare(rpmfiles afi, int aix, rpmfiles bfi, int bix);
247 
254 const char * rpmfilesBN(rpmfiles fi, int ix);
255 
267 const char * rpmfilesDN(rpmfiles fi, int jx);
268 
275 int rpmfilesDI(rpmfiles fi, int ix);
276 
283 char * rpmfilesFN(rpmfiles fi, int ix);
284 
291 int rpmfilesODI(rpmfiles fi, int ix);
292 
299 const char * rpmfilesOBN(rpmfiles fi, int ix);
300 
312 const char * rpmfilesODN(rpmfiles fi, int jx);
313 
320 char * rpmfilesOFN(rpmfiles fi, int ix);
321 
329 
337 
344 const char * rpmfilesFLink(rpmfiles fi, int ix);
345 
352 rpm_loff_t rpmfilesFSize(rpmfiles fi, int ix);
353 
361 
368 const char * rpmfilesFClass(rpmfiles fi, int ix);
369 
377 uint32_t rpmfilesFDepends(rpmfiles fi, int ix, const uint32_t ** fddictp);
378 
385 uint32_t rpmfilesFNlink(rpmfiles fi, int ix);
386 
395 uint32_t rpmfilesFLinks(rpmfiles fi, int ix, const int ** files);
396 
403 const char * rpmfilesFLangs(rpmfiles fi, int ix);
404 
412 
419 rpm_mode_t rpmfilesFMode(rpmfiles fi, int ix);
420 
429 const unsigned char * rpmfilesFDigest(rpmfiles fi, int ix, int *algo, size_t *len);
430 
438 const unsigned char * rpmfilesFSignature(rpmfiles fi, int ix, size_t *len);
439 
446 rpm_rdev_t rpmfilesFRdev(rpmfiles fi, int ix);
447 
454 rpm_ino_t rpmfilesFInode(rpmfiles fi, int ix);
455 
463 
470 const char * rpmfilesFUser(rpmfiles fi, int ix);
471 
478 const char * rpmfilesFGroup(rpmfiles fi, int ix);
479 
488 const char * rpmfilesFCaps(rpmfiles fi, int ix);
489 
498 int rpmfilesStat(rpmfiles fi, int ix, int flags, struct stat *sb);
499 #ifdef __cplusplus
500 }
501 #endif
502 
503 #endif /* _RPMFILES_H */
RPMFI_NOFILECLASS
@ RPMFI_NOFILECLASS
Definition: rpmfiles.h:102
FA_ERASE
@ FA_ERASE
Definition: rpmfiles.h:81
rpmFlags
uint32_t rpmFlags
Definition: rpmtypes.h:42
XDIR
@ XDIR
Definition: rpmfiles.h:26
rpm_count_t
uint32_t rpm_count_t
Definition: rpmtypes.h:29
rpmfilesFDigest
const unsigned char * rpmfilesFDigest(rpmfiles fi, int ix, int *algo, size_t *len)
BDEV
@ BDEV
Definition: rpmfiles.h:27
rpmVerifyAttrs
rpmFlags rpmVerifyAttrs
Definition: rpmvf.h:39
rpmFileAction
enum rpmFileAction_e rpmFileAction
RPMFI_NOFILEUSER
@ RPMFI_NOFILEUSER
Definition: rpmfiles.h:105
SOCK
@ SOCK
Definition: rpmfiles.h:30
RPMFILE_CONFIG
@ RPMFILE_CONFIG
Definition: rpmfiles.h:52
rpmfilesIter
rpmfi rpmfilesIter(rpmfiles files, int itype)
RPMFI_NOFILELINKTOS
@ RPMFI_NOFILELINKTOS
Definition: rpmfiles.h:110
RPMFILE_STATE_NETSHARED
@ RPMFILE_STATE_NETSHARED
Definition: rpmfiles.h:41
RPMFI_ITER_INTERVAL
@ RPMFI_ITER_INTERVAL
Definition: rpmfiles.h:155
RPMFILE_ICON
@ RPMFILE_ICON
Definition: rpmfiles.h:54
RPMFILE_STATE_WRONGCOLOR
@ RPMFILE_STATE_WRONGCOLOR
Definition: rpmfiles.h:42
rpmfiles
struct rpmfiles_s * rpmfiles
Definition: rpmtypes.h:67
RPMFI_NOFILEINODES
@ RPMFI_NOFILEINODES
Definition: rpmfiles.h:114
RPMFI_NOFILECAPS
@ RPMFI_NOFILECAPS
Definition: rpmfiles.h:109
RPMFILE_SPECFILE
@ RPMFILE_SPECFILE
Definition: rpmfiles.h:57
rpmstrPool
struct rpmstrPool_s * rpmstrPool
Definition: rpmtypes.h:83
PIPE
@ PIPE
Definition: rpmfiles.h:24
rpmfilesFindOFN
int rpmfilesFindOFN(rpmfiles files, const char *fn)
rpmfilesFNlink
uint32_t rpmfilesFNlink(rpmfiles fi, int ix)
rpmFileIter_e
rpmFileIter_e
Definition: rpmfiles.h:148
rpmfilesFSize
rpm_loff_t rpmfilesFSize(rpmfiles fi, int ix)
rpmRelocation_s::newPath
char * newPath
Definition: rpmfiles.h:96
rpmfilesStat
int rpmfilesStat(rpmfiles fi, int ix, int flags, struct stat *sb)
rpmfilesFMode
rpm_mode_t rpmfilesFMode(rpmfiles fi, int ix)
rpm_ino_t
uint32_t rpm_ino_t
Definition: rpmtypes.h:56
rpmFileTypes
enum rpmFileTypes_e rpmFileTypes
rpmfilesDN
const char * rpmfilesDN(rpmfiles fi, int jx)
RPMFI_NOFILEGROUP
@ RPMFI_NOFILEGROUP
Definition: rpmfiles.h:106
FA_UNKNOWN
@ FA_UNKNOWN
Definition: rpmfiles.h:73
RPMFI_NOFILEMODES
@ RPMFI_NOFILEMODES
Definition: rpmfiles.h:107
rpmfilesODN
const char * rpmfilesODN(rpmfiles fi, int jx)
rpmfilesFCaps
const char * rpmfilesFCaps(rpmfiles fi, int ix)
FA_SKIP
@ FA_SKIP
Definition: rpmfiles.h:79
rpmfiFlags_e
rpmfiFlags_e
Definition: rpmfiles.h:99
rpmfilesDC
rpm_count_t rpmfilesDC(rpmfiles fi)
rpmfilesFindFN
int rpmfilesFindFN(rpmfiles files, const char *fn)
LINK
@ LINK
Definition: rpmfiles.h:29
RPMFILE_STATE_NOTINSTALLED
@ RPMFILE_STATE_NOTINSTALLED
Definition: rpmfiles.h:40
rpmfileState
enum rpmfileState_e rpmfileState
File States (when installed).
REG
@ REG
Definition: rpmfiles.h:28
FA_SAVE
@ FA_SAVE
Definition: rpmfiles.h:78
RPMFI_ITER_READ_ARCHIVE
@ RPMFI_ITER_READ_ARCHIVE
Definition: rpmfiles.h:152
rpm_loff_t
uint64_t rpm_loff_t
Definition: rpmtypes.h:51
RPMFI_NOFILEVERIFYFLAGS
@ RPMFI_NOFILEVERIFYFLAGS
Definition: rpmfiles.h:117
FA_COPYIN
@ FA_COPYIN
Definition: rpmfiles.h:75
RPMFILE_LICENSE
@ RPMFILE_LICENSE
Definition: rpmfiles.h:59
rpm_mode_t
uint16_t rpm_mode_t
Definition: rpmtypes.h:53
RPMFILE_NOREPLACE
@ RPMFILE_NOREPLACE
Definition: rpmfiles.h:56
RPMFI_NOFILELANGS
@ RPMFI_NOFILELANGS
Definition: rpmfiles.h:104
RPMFILE_MISSINGOK
@ RPMFILE_MISSINGOK
Definition: rpmfiles.h:55
RPMFI_NOFILESIZES
@ RPMFI_NOFILESIZES
Definition: rpmfiles.h:108
RPMFI_NOFILESTATES
@ RPMFI_NOFILESTATES
Definition: rpmfiles.h:115
rpmfilesFSignature
const unsigned char * rpmfilesFSignature(rpmfiles fi, int ix, size_t *len)
rpmfilesCompare
int rpmfilesCompare(rpmfiles afi, int aix, rpmfiles bfi, int bix)
CDEV
@ CDEV
Definition: rpmfiles.h:25
rpmfilesFMtime
rpm_time_t rpmfilesFMtime(rpmfiles fi, int ix)
RPMFILE_README
@ RPMFILE_README
Definition: rpmfiles.h:60
RPMFI_NOHEADER
@ RPMFI_NOHEADER
Definition: rpmfiles.h:100
RPMFILE_DOC
@ RPMFILE_DOC
Definition: rpmfiles.h:53
FA_SKIPNSTATE
@ FA_SKIPNSTATE
Definition: rpmfiles.h:82
rpmfilesBN
const char * rpmfilesBN(rpmfiles fi, int ix)
RPMFI_NOFILEFLAGS
@ RPMFI_NOFILEFLAGS
Definition: rpmfiles.h:118
rpmfiFlags
rpmFlags rpmfiFlags
Definition: rpmfiles.h:122
rpmfilesOBN
const char * rpmfilesOBN(rpmfiles fi, int ix)
rpmfilesColor
rpm_color_t rpmfilesColor(rpmfiles files)
rpmfilesFLangs
const char * rpmfilesFLangs(rpmfiles fi, int ix)
rpmfilesFDepends
uint32_t rpmfilesFDepends(rpmfiles fi, int ix, const uint32_t **fddictp)
rpmFileIter
enum rpmFileIter_e rpmFileIter
rpm_color_t
uint32_t rpm_color_t
Definition: rpmtypes.h:38
RPMFI_ITER_READ_ARCHIVE_CONTENT_FIRST
@ RPMFI_ITER_READ_ARCHIVE_CONTENT_FIRST
Definition: rpmfiles.h:153
RPMFI_NOFILEDEPS
@ RPMFI_NOFILEDEPS
Definition: rpmfiles.h:103
rpmRelocation_s
We pass these around as an array with a sentinel.
Definition: rpmfiles.h:94
RPMFILE_STATE_NORMAL
@ RPMFILE_STATE_NORMAL
Definition: rpmfiles.h:38
RPMFILE_NONE
@ RPMFILE_NONE
Definition: rpmfiles.h:51
rpmfilesFN
char * rpmfilesFN(rpmfiles fi, int ix)
rpmfi
struct rpmfi_s * rpmfi
Definition: rpmtypes.h:66
rpmfilesFColor
rpm_color_t rpmfilesFColor(rpmfiles fi, int ix)
RPMFI_ITER_BACK
@ RPMFI_ITER_BACK
Definition: rpmfiles.h:150
rpmfilesFree
rpmfiles rpmfilesFree(rpmfiles fi)
rpmFileAction_e
rpmFileAction_e
Definition: rpmfiles.h:72
RPMFILE_STATE_MISSING
@ RPMFILE_STATE_MISSING
Definition: rpmfiles.h:37
rpmfilesVFlags
rpmVerifyAttrs rpmfilesVFlags(rpmfiles fi, int ix)
Header
struct headerToken_s * Header
Definition: rpmtypes.h:24
rpmfilesODI
int rpmfilesODI(rpmfiles fi, int ix)
RPMFI_ITER_WRITE_ARCHIVE
@ RPMFI_ITER_WRITE_ARCHIVE
Definition: rpmfiles.h:151
rpmTagVal
rpm_tag_t rpmTagVal
Definition: rpmtypes.h:30
rpmfilesLink
rpmfiles rpmfilesLink(rpmfiles fi)
rpmfilesFState
rpmfileState rpmfilesFState(rpmfiles fi, int ix)
RPMFILE_GHOST
@ RPMFILE_GHOST
Definition: rpmfiles.h:58
RPMFI_NOFILESIGNATURES
@ RPMFI_NOFILESIGNATURES
Definition: rpmfiles.h:119
RPMFILE_PUBKEY
@ RPMFILE_PUBKEY
Definition: rpmfiles.h:62
RPMFI_NOFILERDEVS
@ RPMFI_NOFILERDEVS
Definition: rpmfiles.h:113
rpmFileTypes_e
rpmFileTypes_e
Definition: rpmfiles.h:23
FA_COPYOUT
@ FA_COPYOUT
Definition: rpmfiles.h:76
rpmfilesFLink
const char * rpmfilesFLink(rpmfiles fi, int ix)
rpmfilesOFN
char * rpmfilesOFN(rpmfiles fi, int ix)
RPMFI_NOFILEMTIMES
@ RPMFI_NOFILEMTIMES
Definition: rpmfiles.h:112
RPMFI_ITER_READ_ARCHIVE_OMIT_HARDLINKS
@ RPMFI_ITER_READ_ARCHIVE_OMIT_HARDLINKS
Definition: rpmfiles.h:154
rpm_rdev_t
uint16_t rpm_rdev_t
Definition: rpmtypes.h:54
rpmfileState_e
rpmfileState_e
File States (when installed).
Definition: rpmfiles.h:36
rpmfilesFFlags
rpmfileAttrs rpmfilesFFlags(rpmfiles fi, int ix)
RPMFI_NOFILEDIGESTS
@ RPMFI_NOFILEDIGESTS
Definition: rpmfiles.h:111
rpmfilesFLinks
uint32_t rpmfilesFLinks(rpmfiles fi, int ix, const int **files)
rpmfilesNew
rpmfiles rpmfilesNew(rpmstrPool pool, Header h, rpmTagVal tagN, rpmfiFlags flags)
rpmfileAttrs
rpmFlags rpmfileAttrs
Definition: rpmfiles.h:65
RPMFI_NOFILECOLORS
@ RPMFI_NOFILECOLORS
Definition: rpmfiles.h:116
RPMFI_ITER_FWD
@ RPMFI_ITER_FWD
Definition: rpmfiles.h:149
FA_SKIPNETSHARED
@ FA_SKIPNETSHARED
Definition: rpmfiles.h:83
FA_ALTNAME
@ FA_ALTNAME
Definition: rpmfiles.h:80
rpmfilesFClass
const char * rpmfilesFClass(rpmfiles fi, int ix)
rpm_time_t
uint32_t rpm_time_t
Definition: rpmtypes.h:52
rpmfilesFInode
rpm_ino_t rpmfilesFInode(rpmfiles fi, int ix)
rpmfilesFUser
const char * rpmfilesFUser(rpmfiles fi, int ix)
rpmfilesFC
rpm_count_t rpmfilesFC(rpmfiles fi)
rpmRelocation_s::oldPath
char * oldPath
Definition: rpmfiles.h:95
rpmfilesFGroup
const char * rpmfilesFGroup(rpmfiles fi, int ix)
rpmfilesDI
int rpmfilesDI(rpmfiles fi, int ix)
FA_BACKUP
@ FA_BACKUP
Definition: rpmfiles.h:77
rpmfileAttrs_e
rpmfileAttrs_e
Exported File Attributes (ie RPMTAG_FILEFLAGS)
Definition: rpmfiles.h:50
rpmfilesDigestAlgo
int rpmfilesDigestAlgo(rpmfiles fi)
RPMFI_KEEPHEADER
@ RPMFI_KEEPHEADER
Definition: rpmfiles.h:101
rpmfilesFRdev
rpm_rdev_t rpmfilesFRdev(rpmfiles fi, int ix)
FA_CREATE
@ FA_CREATE
Definition: rpmfiles.h:74
FA_SKIPCOLOR
@ FA_SKIPCOLOR
Definition: rpmfiles.h:84
RPMFILE_STATE_REPLACED
@ RPMFILE_STATE_REPLACED
Definition: rpmfiles.h:39