1use std::fmt::Display;
6
7use bitflags::bitflags;
8
9pub const HEADER_IMAGE: u32 = 61;
10pub const HEADER_SIGNATURES: u32 = 62;
11pub const HEADER_IMMUTABLE: u32 = 63;
12pub const HEADER_REGIONS: u32 = 64;
13pub const HEADER_I18NTABLE: u32 = 100;
14pub const HEADER_SIGBASE: u32 = 256;
15pub const HEADER_TAGBASE: u32 = 1000;
16pub const RPMTAG_SIG_BASE: u32 = HEADER_SIGBASE;
17
18#[repr(u32)]
19#[derive(
20 num_derive::FromPrimitive,
21 num_derive::ToPrimitive,
22 Debug,
23 PartialEq,
24 Eq,
25 Copy,
26 Clone,
27 enum_display_derive::Display,
28)]
29#[allow(non_camel_case_types)]
30pub enum IndexTag {
31 RPMTAG_HEADERIMAGE = HEADER_IMAGE,
32 RPMTAG_HEADERSIGNATURES = HEADER_SIGNATURES,
33 RPMTAG_HEADERIMMUTABLE = HEADER_IMMUTABLE,
34 RPMTAG_HEADERREGIONS = HEADER_REGIONS,
35
36 RPMTAG_HEADERI18NTABLE = HEADER_I18NTABLE,
37
38 RPMTAG_SIGSIZE = RPMTAG_SIG_BASE,
39 RPMTAG_SIGLEMD5_1 = RPMTAG_SIG_BASE + 2,
40 RPMTAG_SIGPGP = RPMTAG_SIG_BASE + 3,
41 RPMTAG_SIGLEMD5_2 = RPMTAG_SIG_BASE + 4,
42 RPMTAG_SIGMD5 = RPMTAG_SIG_BASE + 5,
43
44 RPMTAG_SIGGPG = RPMTAG_SIG_BASE + 6,
45 RPMTAG_SIGPGP5 = RPMTAG_SIG_BASE + 7,
46
47 RPMTAG_BADSHA1_1 = RPMTAG_SIG_BASE + 8,
48 RPMTAG_BADSHA1_2 = RPMTAG_SIG_BASE + 9,
49 RPMTAG_PUBKEYS = RPMTAG_SIG_BASE + 10,
50 RPMTAG_DSAHEADER = RPMTAG_SIG_BASE + 11,
51 RPMTAG_RSAHEADER = RPMTAG_SIG_BASE + 12,
52 RPMTAG_SHA1HEADER = RPMTAG_SIG_BASE + 13,
53
54 RPMTAG_LONGSIGSIZE = RPMTAG_SIG_BASE + 14,
55 RPMTAG_LONGARCHIVESIZE = RPMTAG_SIG_BASE + 15,
56
57 RPMTAG_SHA256HEADER = RPMTAG_SIG_BASE + 17,
58 RPMTAG_VERITYSIGNATURES = RPMTAG_SIG_BASE + 20,
59 RPMTAG_VERITYSIGNATUREALGO = RPMTAG_SIG_BASE + 21,
60
61 RPMTAG_NAME = 1000,
62 RPMTAG_VERSION = 1001,
63 RPMTAG_RELEASE = 1002,
64 RPMTAG_EPOCH = 1003,
65 RPMTAG_SUMMARY = 1004,
66 RPMTAG_DESCRIPTION = 1005,
67 RPMTAG_BUILDTIME = 1006,
68 RPMTAG_BUILDHOST = 1007,
69 RPMTAG_INSTALLTIME = 1008,
70 RPMTAG_SIZE = 1009,
71 RPMTAG_DISTRIBUTION = 1010,
72 RPMTAG_VENDOR = 1011,
73 RPMTAG_GIF = 1012,
74 RPMTAG_XPM = 1013,
75 RPMTAG_LICENSE = 1014,
76 RPMTAG_PACKAGER = 1015,
77 RPMTAG_GROUP = 1016,
78 RPMTAG_CHANGELOG = 1017,
79 RPMTAG_SOURCE = 1018,
80 RPMTAG_PATCH = 1019,
81 RPMTAG_URL = 1020,
82 RPMTAG_OS = 1021,
83 RPMTAG_ARCH = 1022,
84 RPMTAG_PREIN = 1023,
85 RPMTAG_POSTIN = 1024,
86 RPMTAG_PREUN = 1025,
87 RPMTAG_POSTUN = 1026,
88 RPMTAG_OLDFILENAMES = 1027,
89 RPMTAG_FILESIZES = 1028,
90 RPMTAG_FILESTATES = 1029,
91 RPMTAG_FILEMODES = 1030,
92 RPMTAG_FILEUIDS = 1031,
93 RPMTAG_FILEGIDS = 1032,
94 RPMTAG_FILERDEVS = 1033,
95 RPMTAG_FILEMTIMES = 1034,
96 RPMTAG_FILEDIGESTS = 1035,
97 RPMTAG_FILELINKTOS = 1036,
98 RPMTAG_FILEFLAGS = 1037,
99 RPMTAG_ROOT = 1038,
100 RPMTAG_FILEUSERNAME = 1039,
101 RPMTAG_FILEGROUPNAME = 1040,
102 RPMTAG_EXCLUDE = 1041,
103 RPMTAG_EXCLUSIVE = 1042,
104 RPMTAG_ICON = 1043,
105 RPMTAG_SOURCERPM = 1044,
106 RPMTAG_FILEVERIFYFLAGS = 1045,
107 RPMTAG_ARCHIVESIZE = 1046,
108 RPMTAG_PROVIDENAME = 1047,
109 RPMTAG_REQUIREFLAGS = 1048,
110 RPMTAG_REQUIRENAME = 1049,
111 RPMTAG_REQUIREVERSION = 1050,
112 RPMTAG_NOSOURCE = 1051,
113 RPMTAG_NOPATCH = 1052,
114 RPMTAG_CONFLICTFLAGS = 1053,
115 RPMTAG_CONFLICTNAME = 1054,
116 RPMTAG_CONFLICTVERSION = 1055,
117 RPMTAG_DEFAULTPREFIX = 1056,
118 RPMTAG_BUILDROOT = 1057,
119 RPMTAG_INSTALLPREFIX = 1058,
120 RPMTAG_EXCLUDEARCH = 1059,
121 RPMTAG_EXCLUDEOS = 1060,
122 RPMTAG_EXCLUSIVEARCH = 1061,
123 RPMTAG_EXCLUSIVEOS = 1062,
124 RPMTAG_AUTOREQPROV = 1063,
125 RPMTAG_RPMVERSION = 1064,
126 RPMTAG_TRIGGERSCRIPTS = 1065,
127 RPMTAG_TRIGGERNAME = 1066,
128 RPMTAG_TRIGGERVERSION = 1067,
129 RPMTAG_TRIGGERFLAGS = 1068,
130 RPMTAG_TRIGGERINDEX = 1069,
131 RPMTAG_VERIFYSCRIPT = 1079,
132 RPMTAG_CHANGELOGTIME = 1080,
133 RPMTAG_CHANGELOGNAME = 1081,
134 RPMTAG_CHANGELOGTEXT = 1082,
135 RPMTAG_BROKENMD5 = 1083,
136 RPMTAG_PREREQ = 1084,
137 RPMTAG_PREINPROG = 1085,
138 RPMTAG_POSTINPROG = 1086,
139 RPMTAG_PREUNPROG = 1087,
140 RPMTAG_POSTUNPROG = 1088,
141 RPMTAG_BUILDARCHS = 1089,
142 RPMTAG_OBSOLETENAME = 1090,
143 RPMTAG_VERIFYSCRIPTPROG = 1091,
144 RPMTAG_TRIGGERSCRIPTPROG = 1092,
145 RPMTAG_DOCDIR = 1093,
146 RPMTAG_COOKIE = 1094,
147 RPMTAG_FILEDEVICES = 1095,
148 RPMTAG_FILEINODES = 1096,
149 RPMTAG_FILELANGS = 1097,
150 RPMTAG_PREFIXES = 1098,
151 RPMTAG_INSTPREFIXES = 1099,
152 RPMTAG_TRIGGERIN = 1100,
153 RPMTAG_TRIGGERUN = 1101,
154 RPMTAG_TRIGGERPOSTUN = 1102,
155 RPMTAG_AUTOREQ = 1103,
156 RPMTAG_AUTOPROV = 1104,
157 RPMTAG_CAPABILITY = 1105,
158 RPMTAG_SOURCEPACKAGE = 1106,
159 RPMTAG_OLDORIGFILENAMES = 1107,
160 RPMTAG_BUILDPREREQ = 1108,
161 RPMTAG_BUILDREQUIRES = 1109,
162 RPMTAG_BUILDCONFLICTS = 1110,
163 RPMTAG_BUILDMACROS = 1111,
164 RPMTAG_PROVIDEFLAGS = 1112,
165 RPMTAG_PROVIDEVERSION = 1113,
166 RPMTAG_OBSOLETEFLAGS = 1114,
167 RPMTAG_OBSOLETEVERSION = 1115,
168 RPMTAG_DIRINDEXES = 1116,
169 RPMTAG_BASENAMES = 1117,
170 RPMTAG_DIRNAMES = 1118,
171 RPMTAG_ORIGDIRINDEXES = 1119,
172 RPMTAG_ORIGBASENAMES = 1120,
173 RPMTAG_ORIGDIRNAMES = 1121,
174 RPMTAG_OPTFLAGS = 1122,
175 RPMTAG_DISTURL = 1123,
176 RPMTAG_PAYLOADFORMAT = 1124,
177 RPMTAG_PAYLOADCOMPRESSOR = 1125,
178 RPMTAG_PAYLOADFLAGS = 1126,
179 RPMTAG_INSTALLCOLOR = 1127,
180 RPMTAG_INSTALLTID = 1128,
181 RPMTAG_REMOVETID = 1129,
182 RPMTAG_SHA1RHN = 1130,
183 RPMTAG_RHNPLATFORM = 1131,
184 RPMTAG_PLATFORM = 1132,
185 RPMTAG_PATCHESNAME = 1133,
186 RPMTAG_PATCHESFLAGS = 1134,
187 RPMTAG_PATCHESVERSION = 1135,
188 RPMTAG_CACHECTIME = 1136,
189 RPMTAG_CACHEPKGPATH = 1137,
190 RPMTAG_CACHEPKGSIZE = 1138,
191 RPMTAG_CACHEPKGMTIME = 1139,
192 RPMTAG_FILECOLORS = 1140,
193 RPMTAG_FILECLASS = 1141,
194 RPMTAG_CLASSDICT = 1142,
195 RPMTAG_FILEDEPENDSX = 1143,
196 RPMTAG_FILEDEPENDSN = 1144,
197 RPMTAG_DEPENDSDICT = 1145,
198 RPMTAG_SOURCEPKGID = 1146,
199 RPMTAG_FILECONTEXTS = 1147,
200 RPMTAG_FSCONTEXTS = 1148,
201 RPMTAG_RECONTEXTS = 1149,
202 RPMTAG_POLICIES = 1150,
203 RPMTAG_PRETRANS = 1151,
204 RPMTAG_POSTTRANS = 1152,
205 RPMTAG_PRETRANSPROG = 1153,
206 RPMTAG_POSTTRANSPROG = 1154,
207 RPMTAG_DISTTAG = 1155,
208 RPMTAG_OLDSUGGESTSNAME = 1156,
209 RPMTAG_OLDSUGGESTSVERSION = 1157,
210 RPMTAG_OLDSUGGESTSFLAGS = 1158,
211 RPMTAG_OLDENHANCESNAME = 1159,
212 RPMTAG_OLDENHANCESVERSION = 1160,
213 RPMTAG_OLDENHANCESFLAGS = 1161,
214 RPMTAG_PRIORITY = 1162,
215 RPMTAG_CVSID = 1163,
216 RPMTAG_BLINKPKGID = 1164,
217 RPMTAG_BLINKHDRID = 1165,
218 RPMTAG_BLINKNEVRA = 1166,
219 RPMTAG_FLINKPKGID = 1167,
220 RPMTAG_FLINKHDRID = 1168,
221 RPMTAG_FLINKNEVRA = 1169,
222 RPMTAG_PACKAGEORIGIN = 1170,
223 RPMTAG_TRIGGERPREIN = 1171,
224 RPMTAG_BUILDSUGGESTS = 1172,
225 RPMTAG_BUILDENHANCES = 1173,
226 RPMTAG_SCRIPTSTATES = 1174,
227 RPMTAG_SCRIPTMETRICS = 1175,
228 RPMTAG_BUILDCPUCLOCK = 1176,
229 RPMTAG_FILEDIGESTALGOS = 1177,
230 RPMTAG_VARIANTS = 1178,
231 RPMTAG_XMAJOR = 1179,
232 RPMTAG_XMINOR = 1180,
233 RPMTAG_REPOTAG = 1181,
234 RPMTAG_KEYWORDS = 1182,
235 RPMTAG_BUILDPLATFORMS = 1183,
236 RPMTAG_PACKAGECOLOR = 1184,
237 RPMTAG_PACKAGEPREFCOLOR = 1185,
238 RPMTAG_XATTRSDICT = 1186,
239 RPMTAG_FILEXATTRSX = 1187,
240 RPMTAG_DEPATTRSDICT = 1188,
241 RPMTAG_CONFLICTATTRSX = 1189,
242 RPMTAG_OBSOLETEATTRSX = 1190,
243 RPMTAG_PROVIDEATTRSX = 1191,
244 RPMTAG_REQUIREATTRSX = 1192,
245 RPMTAG_BUILDPROVIDES = 1193,
246 RPMTAG_BUILDOBSOLETES = 1194,
247 RPMTAG_DBINSTANCE = 1195,
248 RPMTAG_NVRA = 1196,
249
250 RPMTAG_FILENAMES = 5000,
251 RPMTAG_FILEPROVIDE = 5001,
252 RPMTAG_FILEREQUIRE = 5002,
253 RPMTAG_FSNAMES = 5003,
254 RPMTAG_FSSIZES = 5004,
255 RPMTAG_TRIGGERCONDS = 5005,
256 RPMTAG_TRIGGERTYPE = 5006,
257 RPMTAG_ORIGFILENAMES = 5007,
258 RPMTAG_LONGFILESIZES = 5008,
259 RPMTAG_LONGSIZE = 5009,
260 RPMTAG_FILECAPS = 5010,
261 RPMTAG_FILEDIGESTALGO = 5011,
262 RPMTAG_BUGURL = 5012,
263 RPMTAG_EVR = 5013,
264 RPMTAG_NVR = 5014,
265 RPMTAG_NEVR = 5015,
266 RPMTAG_NEVRA = 5016,
267 RPMTAG_HEADERCOLOR = 5017,
268 RPMTAG_VERBOSE = 5018,
269 RPMTAG_EPOCHNUM = 5019,
270 RPMTAG_PREINFLAGS = 5020,
271 RPMTAG_POSTINFLAGS = 5021,
272 RPMTAG_PREUNFLAGS = 5022,
273 RPMTAG_POSTUNFLAGS = 5023,
274 RPMTAG_PRETRANSFLAGS = 5024,
275 RPMTAG_POSTTRANSFLAGS = 5025,
276 RPMTAG_VERIFYSCRIPTFLAGS = 5026,
277 RPMTAG_TRIGGERSCRIPTFLAGS = 5027,
278 RPMTAG_COLLECTIONS = 5029,
279 RPMTAG_POLICYNAMES = 5030,
280 RPMTAG_POLICYTYPES = 5031,
281 RPMTAG_POLICYTYPESINDEXES = 5032,
282 RPMTAG_POLICYFLAGS = 5033,
283 RPMTAG_VCS = 5034,
284 RPMTAG_ORDERNAME = 5035,
285 RPMTAG_ORDERVERSION = 5036,
286 RPMTAG_ORDERFLAGS = 5037,
287 RPMTAG_MSSFMANIFEST = 5038,
288 RPMTAG_MSSFDOMAIN = 5039,
289 RPMTAG_INSTFILENAMES = 5040,
290 RPMTAG_REQUIRENEVRS = 5041,
291 RPMTAG_PROVIDENEVRS = 5042,
292 RPMTAG_OBSOLETENEVRS = 5043,
293 RPMTAG_CONFLICTNEVRS = 5044,
294 RPMTAG_FILENLINKS = 5045,
295 RPMTAG_RECOMMENDNAME = 5046,
296 RPMTAG_RECOMMENDVERSION = 5047,
297 RPMTAG_RECOMMENDFLAGS = 5048,
298 RPMTAG_SUGGESTNAME = 5049,
299 RPMTAG_SUGGESTVERSION = 5050,
300 RPMTAG_SUGGESTFLAGS = 5051,
301 RPMTAG_SUPPLEMENTNAME = 5052,
302 RPMTAG_SUPPLEMENTVERSION = 5053,
303 RPMTAG_SUPPLEMENTFLAGS = 5054,
304 RPMTAG_ENHANCENAME = 5055,
305 RPMTAG_ENHANCEVERSION = 5056,
306 RPMTAG_ENHANCEFLAGS = 5057,
307 RPMTAG_RECOMMENDNEVRS = 5058,
308 RPMTAG_SUGGESTNEVRS = 5059,
309 RPMTAG_SUPPLEMENTNEVRS = 5060,
310 RPMTAG_ENHANCENEVRS = 5061,
311 RPMTAG_ENCODING = 5062,
312 RPMTAG_FILETRIGGERIN = 5063,
313 RPMTAG_FILETRIGGERUN = 5064,
314 RPMTAG_FILETRIGGERPOSTUN = 5065,
315 RPMTAG_FILETRIGGERSCRIPTS = 5066,
316 RPMTAG_FILETRIGGERSCRIPTPROG = 5067,
317 RPMTAG_FILETRIGGERSCRIPTFLAGS = 5068,
318 RPMTAG_FILETRIGGERNAME = 5069,
319 RPMTAG_FILETRIGGERINDEX = 5070,
320 RPMTAG_FILETRIGGERVERSION = 5071,
321 RPMTAG_FILETRIGGERFLAGS = 5072,
322 RPMTAG_TRANSFILETRIGGERIN = 5073,
323 RPMTAG_TRANSFILETRIGGERUN = 5074,
324 RPMTAG_TRANSFILETRIGGERPOSTUN = 5075,
325 RPMTAG_TRANSFILETRIGGERSCRIPTS = 5076,
326 RPMTAG_TRANSFILETRIGGERSCRIPTPROG = 5077,
327 RPMTAG_TRANSFILETRIGGERSCRIPTFLAGS = 5078,
328 RPMTAG_TRANSFILETRIGGERNAME = 5079,
329 RPMTAG_TRANSFILETRIGGERINDEX = 5080,
330 RPMTAG_TRANSFILETRIGGERVERSION = 5081,
331 RPMTAG_TRANSFILETRIGGERFLAGS = 5082,
332 RPMTAG_REMOVEPATHPOSTFIXES = 5083,
333 RPMTAG_FILETRIGGERPRIORITIES = 5084,
334 RPMTAG_TRANSFILETRIGGERPRIORITIES = 5085,
335 RPMTAG_FILETRIGGERCONDS = 5086,
336 RPMTAG_FILETRIGGERTYPE = 5087,
337 RPMTAG_TRANSFILETRIGGERCONDS = 5088,
338 RPMTAG_TRANSFILETRIGGERTYPE = 5089,
339 RPMTAG_FILESIGNATURES = 5090,
340 RPMTAG_FILESIGNATURELENGTH = 5091,
341 RPMTAG_PAYLOADDIGEST = 5092, RPMTAG_PAYLOADDIGESTALGO = 5093,
343 RPMTAG_AUTOINSTALLED = 5094,
344 RPMTAG_IDENTITY = 5095,
345 RPMTAG_MODULARITYLABEL = 5096,
346 RPMTAG_PAYLOADDIGESTALT = 5097, RPMTAG_ARCHSUFFIX = 5098,
348 RPMTAG_SPEC = 5099,
349 RPMTAG_TRANSLATIONURL = 5100,
350 RPMTAG_UPSTREAMRELEASES = 5101,
351 RPMTAG_SOURCELICENSE = 5102,
352 RPMTAG_PREUNTRANS = 5103,
353 RPMTAG_POSTUNTRANS = 5104,
354 RPMTAG_PREUNTRANSPROG = 5105,
355 RPMTAG_POSTUNTRANSPROG = 5106,
356 RPMTAG_PREUNTRANSFLAGS = 5107,
357 RPMTAG_POSTUNTRANSFLAGS = 5108,
358 RPMTAG_SYSUSERS = 5109,
359}
360
361#[repr(u32)]
362#[derive(
363 num_derive::FromPrimitive,
364 num_derive::ToPrimitive,
365 Debug,
366 PartialEq,
367 Eq,
368 Copy,
369 Clone,
370 enum_display_derive::Display,
371)]
372#[allow(non_camel_case_types)]
373pub enum IndexSignatureTag {
374 HEADER_SIGNATURES = HEADER_SIGNATURES,
375 RPMSIGTAG_SIZE = HEADER_TAGBASE,
377
378 RPMSIGTAG_PAYLOADSIZE = HEADER_TAGBASE + 7,
380
381 RPMSIGTAG_SHA1 = 269,
384
385 RPMSIGTAG_MD5 = 1004,
388
389 RPMSIGTAG_DSA = 267,
393
394 RPMSIGTAG_RSA = 268,
398
399 RPMSIGTAG_LONGSIZE = 270,
401
402 RPMSIGTAG_LONGARCHIVESIZE = IndexTag::RPMTAG_LONGARCHIVESIZE as u32,
404
405 RPMSIGTAG_FILESIGNATURES = 274,
409
410 RPMSIGTAG_FILESIGNATURE_LENGTH = 275,
413
414 RPMSIGTAG_VERITYSIGNATURES = IndexTag::RPMTAG_VERITYSIGNATURES as u32,
416 RPMSIGTAG_VERITYSIGNATUREALGO = IndexTag::RPMTAG_VERITYSIGNATUREALGO as u32,
418
419 RPMSIGTAG_PGP = 1002,
422
423 RPMSIGTAG_GPG = 1005,
426
427 RPMSIGTAG_SHA256 = IndexTag::RPMTAG_SHA256HEADER as u32,
430
431 RPMTAG_INSTALLTIME = IndexTag::RPMTAG_INSTALLTIME as u32,
433}
434
435pub trait Tag: num::FromPrimitive + PartialEq + std::fmt::Display + std::fmt::Debug + Copy {
440 fn tag_type_name() -> &'static str;
441 fn to_u32(&self) -> u32;
442}
443
444impl Tag for IndexTag {
445 fn tag_type_name() -> &'static str {
446 "IndexTag"
447 }
448
449 fn to_u32(&self) -> u32 {
450 *self as u32
451 }
452}
453
454impl Tag for IndexSignatureTag {
455 fn tag_type_name() -> &'static str {
456 "IndexSignatureTag"
457 }
458
459 fn to_u32(&self) -> u32 {
460 *self as u32
461 }
462}
463
464pub const LEAD_SIZE: u32 = 96;
466pub const INDEX_HEADER_SIZE: u32 = 16;
468pub const INDEX_ENTRY_SIZE: u32 = 16;
470pub const RPM_MAGIC: [u8; 4] = [0xed, 0xab, 0xee, 0xdb];
472
473pub const HEADER_MAGIC: [u8; 3] = [0x8e, 0xad, 0xe8];
475
476bitflags! {
477 #[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
478 pub struct DependencyFlags: u32 {
479 const ANY = 0;
480 const LESS = 1 << 1;
481 const GREATER = 1 << 2;
482 const EQUAL = 1 << 3;
483
484 const LE = Self::LESS.bits() | Self::EQUAL.bits();
485 const GE = Self::GREATER.bits() | Self::EQUAL.bits();
486
487 const POSTTRANS = 1 << 5; const PREREQ = 1 << 6; const PRETRANS = 1 << 7; const INTERP = 1 << 8; const SCRIPT_PRE = 1 << 9; const SCRIPT_POST = 1 << 10; const SCRIPT_PREUN = 1 << 11; const SCRIPT_POSTUN = 1 << 12; const SCRIPT_VERIFY = 1 << 13; const FIND_REQUIRES = 1 << 14; const FIND_PROVIDES = 1 << 15; const TRIGGERIN = 1 << 16; const TRIGGERUN = 1 << 17; const TRIGGERPOSTUN = 1 << 18; const MISSINGOK = 1 << 19; const PREUNTRANS = 1 << 20; const POSTUNTRANS = 1 << 21; const RPMLIB = 1 << 24; const TRIGGERPREIN = 1 << 25; const KEYRING = 1 << 26;
509 const CONFIG = 1 << 28;
511 const META = 1 << 29; }
513}
514
515bitflags! {
516 #[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
517 pub struct FileVerifyFlags: u32 {
518 const VERIFY_NONE = 0;
519 const VERIFY_MD5 = 1 << 0; const VERIFY_FILEDIGEST = 1 << 0; const VERIFY_FILESIZE = 1 << 1; const VERIFY_LINKTO = 1 << 2; const VERIFY_USER = 1 << 3; const VERIFY_GROUP = 1 << 4; const VERIFY_MTIME = 1 << 5; const VERIFY_MODE = 1 << 6; const VERIFY_RDEV = 1 << 7; const VERIFY_CAPS = 1 << 8; const VERIFY_CONTEXTS = 1 << 15; const VERIFY_READLINKFAIL= 1 << 28; const VERIFY_READFAIL = 1 << 29; const VERIFY_LSTATFAIL = 1 << 30; const VERIFY_LGETFILECONFAIL = 1 << 31; }
538}
539
540bitflags! {
541 #[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
542 pub struct FileFlags: u32 {
543 const CONFIG = 1; const DOC = 1 << 1; const DONOTUSE = 1 << 2; const MISSINGOK = 1 << 3; const NOREPLACE = 1 << 4; const GHOST = 1 << 6; const LICENSE = 1 << 7; const README = 1 << 8; const PUBKEY = 1 << 11; const ARTIFACT = 1 << 12; }
556}
557
558#[repr(u32)]
561#[derive(Debug, Clone, Copy, enum_primitive_derive::Primitive)]
562pub enum DigestAlgorithm {
563 Md5 = 1,
564 Sha2_256 = 8,
565 Sha2_384 = 9,
566 Sha2_512 = 10,
567 Sha2_224 = 11,
568}