rpm  6.0.91
The RPM Package Manager
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 
21 typedef enum rpmFileTypes_e {
22  PIPE = 1,
23  CDEV = 2,
24  XDIR = 4,
25  BDEV = 6,
26  REG = 8,
27  LINK = 10,
28  SOCK = 12
29 } rpmFileTypes;
30 
34 typedef enum rpmfileState_e {
35  RPMFILE_STATE_MISSING = -1, /* used for unavailable data */
36  RPMFILE_STATE_NORMAL = 0,
37  RPMFILE_STATE_REPLACED = 1,
38  RPMFILE_STATE_NOTINSTALLED = 2,
39  RPMFILE_STATE_NETSHARED = 3,
40  RPMFILE_STATE_WRONGCOLOR = 4
41 } rpmfileState;
42 
43 #define RPMFILE_IS_INSTALLED(_x) ((_x) == RPMFILE_STATE_NORMAL || (_x) == RPMFILE_STATE_NETSHARED)
44 
49  RPMFILE_NONE = 0,
50  RPMFILE_CONFIG = (1 << 0),
51  RPMFILE_DOC = (1 << 1),
52  RPMFILE_ICON = (1 << 2),
53  RPMFILE_MISSINGOK = (1 << 3),
54  RPMFILE_NOREPLACE = (1 << 4),
55  RPMFILE_SPECFILE = (1 << 5),
56  RPMFILE_GHOST = (1 << 6),
57  RPMFILE_LICENSE = (1 << 7),
58  RPMFILE_README = (1 << 8),
59  /* bits 9-10 unused */
60  RPMFILE_PUBKEY = (1 << 11),
61  RPMFILE_ARTIFACT = (1 << 12),
62 };
63 
64 typedef rpmFlags rpmfileAttrs;
65 
66 #define RPMFILE_ALL ~(RPMFILE_NONE)
67 
73  RPMVERIFY_NONE = 0,
74  RPMVERIFY_MD5 = (1 << 0),
76  RPMVERIFY_FILESIZE = (1 << 1),
77  RPMVERIFY_LINKTO = (1 << 2),
78  RPMVERIFY_USER = (1 << 3),
79  RPMVERIFY_GROUP = (1 << 4),
80  RPMVERIFY_MTIME = (1 << 5),
81  RPMVERIFY_MODE = (1 << 6),
82  RPMVERIFY_RDEV = (1 << 7),
83  RPMVERIFY_CAPS = (1 << 8),
84  /* bits 9-14 unused, reserved for rpmVerifyAttrs */
85  RPMVERIFY_CONTEXTS = (1 << 15),
86  /* bits 16-22 used in rpmVerifyFlags */
87  /* bits 23-27 used in rpmQueryFlags */
89  RPMVERIFY_READFAIL = (1 << 29),
90  RPMVERIFY_LSTATFAIL = (1 << 30),
92 };
93 
94 typedef rpmFlags rpmVerifyAttrs;
95 
96 #define RPMVERIFY_ALL ~(RPMVERIFY_NONE)
97 #define RPMVERIFY_FAILURES \
98  (RPMVERIFY_LSTATFAIL|RPMVERIFY_READFAIL|RPMVERIFY_READLINKFAIL|RPMVERIFY_LGETFILECONFAIL)
99 
103 typedef enum rpmFileAction_e {
105  FA_CREATE = 1,
106  FA_COPYIN = 2,
108  FA_BACKUP = 4,
109  FA_SAVE = 5,
110  FA_SKIP = 6,
112  FA_ERASE = 8,
116  FA_TOUCH = 12,
117  /* bits 16-31 reserved */
118 } rpmFileAction;
119 
120 #define XFA_SKIPPING(_a) \
121  ((_a) == FA_SKIP || (_a) == FA_SKIPNSTATE || (_a) == FA_SKIPNETSHARED || (_a) == FA_SKIPCOLOR)
122 
123 #define XFA_CREATING(_a) \
124  ((_a) == FA_CREATE || (_a) == FA_BACKUP || (_a) == FA_SAVE || (_a) == FA_ALTNAME)
125 
130  char * oldPath;
131  char * newPath;
132 };
133 
134 enum rpmfiFlags_e {
135  RPMFI_NOHEADER = 0,
136  RPMFI_KEEPHEADER = (1 << 0),
137  RPMFI_NOFILECLASS = (1 << 1),
138  RPMFI_NOFILEDEPS = (1 << 2),
139  RPMFI_NOFILELANGS = (1 << 3),
140  RPMFI_NOFILEUSER = (1 << 4),
141  RPMFI_NOFILEGROUP = (1 << 5),
142  RPMFI_NOFILEMODES = (1 << 6),
143  RPMFI_NOFILESIZES = (1 << 7),
144  RPMFI_NOFILECAPS = (1 << 8),
145  RPMFI_NOFILELINKTOS = (1 << 9),
146  RPMFI_NOFILEDIGESTS = (1 << 10),
147  RPMFI_NOFILEMTIMES = (1 << 11),
148  RPMFI_NOFILERDEVS = (1 << 12),
149  RPMFI_NOFILEINODES = (1 << 13),
150  RPMFI_NOFILESTATES = (1 << 14),
151  RPMFI_NOFILECOLORS = (1 << 15),
152  RPMFI_NOFILEVERIFYFLAGS = (1 << 16),
153  RPMFI_NOFILEFLAGS = (1 << 17),
154  RPMFI_NOFILESIGNATURES = (1 << 18),
155  RPMFI_NOVERITYSIGNATURES = (1 << 19),
156  RPMFI_NOFILEMIME = (1 << 20),
157 };
158 
159 typedef rpmFlags rpmfiFlags;
160 
161 #define RPMFI_FLAGS_ERASE \
162  (RPMFI_NOFILECLASS | RPMFI_NOFILELANGS | \
163  RPMFI_NOFILEMTIMES | RPMFI_NOFILERDEVS | \
164  RPMFI_NOFILESIGNATURES | RPMFI_NOVERITYSIGNATURES | \
165  RPMFI_NOFILEVERIFYFLAGS | RPMFI_NOFILEMIME)
166 
167 #define RPMFI_FLAGS_INSTALL \
168  (RPMFI_NOFILECLASS | RPMFI_NOFILEVERIFYFLAGS | RPMFI_NOFILEMIME)
169 
170 #define RPMFI_FLAGS_VERIFY \
171  (RPMFI_NOFILECLASS | RPMFI_NOFILEDEPS | RPMFI_NOFILELANGS | \
172  RPMFI_NOFILECOLORS | RPMFI_NOFILEMIME)
173 
174 #define RPMFI_FLAGS_QUERY \
175  (RPMFI_NOFILECLASS | RPMFI_NOFILEDEPS | RPMFI_NOFILELANGS | \
176  RPMFI_NOFILECOLORS | RPMFI_NOFILEVERIFYFLAGS)
177 
178 #define RPMFI_FLAGS_FILETRIGGER \
179  (RPMFI_NOFILECLASS | RPMFI_NOFILEDEPS | RPMFI_NOFILELANGS | \
180  RPMFI_NOFILEUSER | RPMFI_NOFILEGROUP | RPMFI_NOFILEMODES | \
181  RPMFI_NOFILESIZES | RPMFI_NOFILECAPS | RPMFI_NOFILELINKTOS | \
182  RPMFI_NOFILEDIGESTS | RPMFI_NOFILEMTIMES | RPMFI_NOFILERDEVS | \
183  RPMFI_NOFILEINODES | RPMFI_NOFILECOLORS | \
184  RPMFI_NOFILESIGNATURES | RPMFI_NOVERITYSIGNATURES | \
185  RPMFI_NOFILEVERIFYFLAGS | RPMFI_NOFILEFLAGS | RPMFI_NOFILEMIME)
186 
187 #define RPMFI_FLAGS_ONLY_FILENAMES \
188  (RPMFI_FLAGS_FILETRIGGER | RPMFI_NOFILESTATES)
189 
190 typedef enum rpmFileIter_e {
191  RPMFI_ITER_FWD = 0,
192  RPMFI_ITER_BACK = 1,
193  RPMFI_ITER_WRITE_ARCHIVE = 2,
194  RPMFI_ITER_READ_ARCHIVE = 3,
195  RPMFI_ITER_READ_ARCHIVE_CONTENT_FIRST = 4,
196  RPMFI_ITER_READ_ARCHIVE_OMIT_HARDLINKS = 5,
197  RPMFI_ITER_INTERVAL = 6,
198 } rpmFileIter;
199 
200 #define RPMFILEITERMAX 6
201 
202 #ifdef __cplusplus
203 extern "C" {
204 #endif
205 
214 rpmfiles rpmfilesNew(rpmstrPool pool, Header h, rpmTagVal tagN, rpmfiFlags flags);
215 
221 rpmfiles rpmfilesLink(rpmfiles fi);
222 
228 rpmfiles rpmfilesFree(rpmfiles fi);
229 
235 rpm_count_t rpmfilesFC(rpmfiles fi);
236 
242 rpm_count_t rpmfilesDC(rpmfiles fi);
243 
252 int rpmfilesFindFN(rpmfiles files, const char * fn);
253 
262 int rpmfilesFindOFN(rpmfiles files, const char * fn);
263 
264 rpmfi rpmfilesIter(rpmfiles files, int itype);
265 
271 int rpmfilesDigestAlgo(rpmfiles fi);
272 
278 rpm_color_t rpmfilesColor(rpmfiles files);
279 
288 int rpmfilesCompare(rpmfiles afi, int aix, rpmfiles bfi, int bix);
289 
296 const char * rpmfilesBN(rpmfiles fi, int ix);
297 
309 const char * rpmfilesDN(rpmfiles fi, int jx);
310 
317 int rpmfilesDI(rpmfiles fi, int ix);
318 
325 char * rpmfilesFN(rpmfiles fi, int ix);
326 
333 int rpmfilesODI(rpmfiles fi, int ix);
334 
341 const char * rpmfilesOBN(rpmfiles fi, int ix);
342 
354 const char * rpmfilesODN(rpmfiles fi, int jx);
355 
362 char * rpmfilesOFN(rpmfiles fi, int ix);
363 
370 rpmVerifyAttrs rpmfilesVFlags(rpmfiles fi, int ix);
371 
378 rpmfileState rpmfilesFState(rpmfiles fi, int ix);
379 
386 const char * rpmfilesFLink(rpmfiles fi, int ix);
387 
394 rpm_loff_t rpmfilesFSize(rpmfiles fi, int ix);
395 
402 rpm_color_t rpmfilesFColor(rpmfiles fi, int ix);
403 
410 const char * rpmfilesFClass(rpmfiles fi, int ix);
411 
418 const char * rpmfilesFMime(rpmfiles fi, int ix);
419 
427 uint32_t rpmfilesFDepends(rpmfiles fi, int ix, const uint32_t ** fddictp);
428 
435 uint32_t rpmfilesFNlink(rpmfiles fi, int ix);
436 
445 uint32_t rpmfilesFLinks(rpmfiles fi, int ix, const int ** files);
446 
453 const char * rpmfilesFLangs(rpmfiles fi, int ix);
454 
461 rpmfileAttrs rpmfilesFFlags(rpmfiles fi, int ix);
462 
469 rpm_mode_t rpmfilesFMode(rpmfiles fi, int ix);
470 
479 const unsigned char * rpmfilesFDigest(rpmfiles fi, int ix, int *algo, size_t *len);
480 
488 const unsigned char * rpmfilesFSignature(rpmfiles fi, int ix, size_t *len);
489 
498 const unsigned char * rpmfilesVSignature(rpmfiles fi, int ix, size_t *len,
499  uint16_t *algo);
500 
507 rpm_rdev_t rpmfilesFRdev(rpmfiles fi, int ix);
508 
515 rpm_ino_t rpmfilesFInode(rpmfiles fi, int ix);
516 
523 rpm_time_t rpmfilesFMtime(rpmfiles fi, int ix);
524 
531 const char * rpmfilesFUser(rpmfiles fi, int ix);
532 
539 const char * rpmfilesFGroup(rpmfiles fi, int ix);
540 
549 const char * rpmfilesFCaps(rpmfiles fi, int ix);
550 
559 int rpmfilesStat(rpmfiles fi, int ix, int flags, struct stat *sb);
560 
568 rpmVerifyAttrs rpmfilesVerify(rpmfiles fi, int ix, rpmVerifyAttrs omitMask);
569 
570 #ifdef __cplusplus
571 }
572 #endif
573 
574 #endif /* _RPMFILES_H */
Definition: rpmfiles.h:22
rpm_color_t rpmfilesFColor(rpmfiles fi, int ix)
const char * rpmfilesFGroup(rpmfiles fi, int ix)
Definition: rpmfiles.h:50
rpm_count_t rpmfilesDC(rpmfiles fi)
const char * rpmfilesODN(rpmfiles fi, int jx)
rpmVerifyAttrs_e
Definition: rpmfiles.h:72
char * oldPath
Definition: rpmfiles.h:130
rpm_time_t rpmfilesFMtime(rpmfiles fi, int ix)
rpm_ino_t rpmfilesFInode(rpmfiles fi, int ix)
Definition: rpmfiles.h:25
const char * rpmfilesFCaps(rpmfiles fi, int ix)
rpm_rdev_t rpmfilesFRdev(rpmfiles fi, int ix)
Definition: rpmfiles.h:61
enum rpmFileAction_e rpmFileAction
char * newPath
Definition: rpmfiles.h:131
Definition: rpmfiles.h:24
Definition: rpmfiles.h:26
enum rpmFileTypes_e rpmFileTypes
Definition: rpmfiles.h:89
Definition: rpmfiles.h:113
rpmFileTypes_e
Definition: rpmfiles.h:21
Definition: rpmfiles.h:28
const char * rpmfilesFLink(rpmfiles fi, int ix)
Definition: rpmfiles.h:55
Definition: rpmfiles.h:129
Definition: rpmfiles.h:90
Definition: rpmfiles.h:88
Definition: rpmfiles.h:78
Definition: rpmfiles.h:27
rpmfileState rpmfilesFState(rpmfiles fi, int ix)
Definition: rpmfiles.h:110
int rpmfilesODI(rpmfiles fi, int ix)
int rpmfilesDI(rpmfiles fi, int ix)
Definition: rpmfiles.h:75
const char * rpmfilesFMime(rpmfiles fi, int ix)
rpm_mode_t rpmfilesFMode(rpmfiles fi, int ix)
Definition: rpmfiles.h:116
Definition: rpmfiles.h:85
Definition: rpmfiles.h:109
uint32_t rpmfilesFLinks(rpmfiles fi, int ix, const int **files)
int rpmfilesStat(rpmfiles fi, int ix, int flags, struct stat *sb)
Definition: rpmfiles.h:105
struct headerToken_s * Header
Definition: rpmtypes.h:24
Definition: rpmfiles.h:74
enum rpmfileState_e rpmfileState
int rpmfilesDigestAlgo(rpmfiles fi)
const unsigned char * rpmfilesVSignature(rpmfiles fi, int ix, size_t *len, uint16_t *algo)
Definition: rpmfiles.h:58
rpmfileAttrs_e
Definition: rpmfiles.h:48
Definition: rpmfiles.h:115
int rpmfilesFindFN(rpmfiles files, const char *fn)
Definition: rpmfiles.h:56
Definition: rpmfiles.h:54
Definition: rpmfiles.h:111
Definition: rpmfiles.h:52
const char * rpmfilesDN(rpmfiles fi, int jx)
Definition: rpmfiles.h:82
Definition: rpmfiles.h:81
const unsigned char * rpmfilesFSignature(rpmfiles fi, int ix, size_t *len)
rpmfiles rpmfilesFree(rpmfiles fi)
const char * rpmfilesFUser(rpmfiles fi, int ix)
Definition: rpmfiles.h:114
char * rpmfilesFN(rpmfiles fi, int ix)
const char * rpmfilesBN(rpmfiles fi, int ix)
rpmFileAction_e
Definition: rpmfiles.h:103
Definition: rpmfiles.h:112
rpmfileState_e
Definition: rpmfiles.h:34
Definition: rpmfiles.h:107
const char * rpmfilesFLangs(rpmfiles fi, int ix)
rpmfileAttrs rpmfilesFFlags(rpmfiles fi, int ix)
rpmVerifyAttrs rpmfilesVFlags(rpmfiles fi, int ix)
uint32_t rpmfilesFNlink(rpmfiles fi, int ix)
const char * rpmfilesOBN(rpmfiles fi, int ix)
Definition: rpmfiles.h:108
int rpmfilesFindOFN(rpmfiles files, const char *fn)
rpmfiles rpmfilesNew(rpmstrPool pool, Header h, rpmTagVal tagN, rpmfiFlags flags)
rpmVerifyAttrs rpmfilesVerify(rpmfiles fi, int ix, rpmVerifyAttrs omitMask)
Definition: rpmfiles.h:83
Definition: rpmfiles.h:80
Definition: rpmfiles.h:57
Definition: rpmfiles.h:23
Definition: rpmfiles.h:91
rpm_color_t rpmfilesColor(rpmfiles files)
rpm_count_t rpmfilesFC(rpmfiles fi)
Definition: rpmfiles.h:51
Definition: rpmfiles.h:79
Definition: rpmfiles.h:106
Definition: rpmfiles.h:76
uint32_t rpmfilesFDepends(rpmfiles fi, int ix, const uint32_t **fddictp)
char * rpmfilesOFN(rpmfiles fi, int ix)
Definition: rpmfiles.h:77
const unsigned char * rpmfilesFDigest(rpmfiles fi, int ix, int *algo, size_t *len)
rpm_loff_t rpmfilesFSize(rpmfiles fi, int ix)
rpmfiles rpmfilesLink(rpmfiles fi)
int rpmfilesCompare(rpmfiles afi, int aix, rpmfiles bfi, int bix)
Definition: rpmfiles.h:104
Definition: rpmfiles.h:53
Definition: rpmfiles.h:60
const char * rpmfilesFClass(rpmfiles fi, int ix)