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