rpm/
constants.rs

1//! RPM specific constants
2//!
3//! These constants were extracted from the rpm upstream project
4//! C headers.
5
6use std::fmt::Display;
7
8pub const HEADER_IMAGE: isize = 61;
9pub const HEADER_SIGNATURES: isize = 62;
10pub const HEADER_IMMUTABLE: isize = 63;
11pub const HEADER_REGIONS: isize = 64;
12pub const HEADER_I18NTABLE: isize = 100;
13pub const HEADER_SIGBASE: isize = 256;
14pub const HEADER_TAGBASE: isize = 1000;
15pub const RPMTAG_SIG_BASE: isize = HEADER_SIGBASE;
16
17#[derive(
18    num_derive::FromPrimitive,
19    num_derive::ToPrimitive,
20    Debug,
21    PartialEq,
22    Eq,
23    Copy,
24    Clone,
25    enum_display_derive::Display,
26)]
27#[allow(non_camel_case_types)]
28pub enum IndexTag {
29    RPMTAG_HEADERIMAGE = HEADER_IMAGE,
30    RPMTAG_HEADERSIGNATURES = HEADER_SIGNATURES,
31    RPMTAG_HEADERIMMUTABLE = HEADER_IMMUTABLE,
32    RPMTAG_HEADERREGIONS = HEADER_REGIONS,
33
34    RPMTAG_HEADERI18NTABLE = HEADER_I18NTABLE,
35
36    RPMTAG_SIGSIZE = RPMTAG_SIG_BASE,
37    RPMTAG_SIGLEMD5_1 = RPMTAG_SIG_BASE + 2,
38    RPMTAG_SIGPGP = RPMTAG_SIG_BASE + 3,
39    RPMTAG_SIGLEMD5_2 = RPMTAG_SIG_BASE + 4,
40    RPMTAG_SIGMD5 = RPMTAG_SIG_BASE + 5,
41
42    RPMTAG_SIGGPG = RPMTAG_SIG_BASE + 6,
43    RPMTAG_SIGPGP5 = RPMTAG_SIG_BASE + 7,
44
45    RPMTAG_BADSHA1_1 = RPMTAG_SIG_BASE + 8,
46    RPMTAG_BADSHA1_2 = RPMTAG_SIG_BASE + 9,
47    RPMTAG_PUBKEYS = RPMTAG_SIG_BASE + 10,
48    RPMTAG_DSAHEADER = RPMTAG_SIG_BASE + 11,
49    RPMTAG_RSAHEADER = RPMTAG_SIG_BASE + 12,
50    RPMTAG_SHA1HEADER = RPMTAG_SIG_BASE + 13,
51
52    RPMTAG_LONGSIGSIZE = RPMTAG_SIG_BASE + 14,
53    RPMTAG_LONGARCHIVESIZE = RPMTAG_SIG_BASE + 15,
54
55    RPMTAG_SHA256HEADER = RPMTAG_SIG_BASE + 17,
56
57    RPMTAG_NAME = 1000,
58
59    RPMTAG_VERSION = 1001,
60
61    RPMTAG_RELEASE = 1002,
62
63    RPMTAG_EPOCH = 1003,
64
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
98    RPMTAG_FILELINKTOS = 1036,
99    RPMTAG_FILEFLAGS = 1037,
100    RPMTAG_ROOT = 1038,
101    RPMTAG_FILEUSERNAME = 1039,
102    RPMTAG_FILEGROUPNAME = 1040,
103    RPMTAG_EXCLUDE = 1041,
104    RPMTAG_EXCLUSIVE = 1042,
105    RPMTAG_ICON = 1043,
106    RPMTAG_SOURCERPM = 1044,
107    RPMTAG_FILEVERIFYFLAGS = 1045,
108    RPMTAG_ARCHIVESIZE = 1046,
109    RPMTAG_PROVIDENAME = 1047,
110
111    RPMTAG_REQUIREFLAGS = 1048,
112    RPMTAG_REQUIRENAME = 1049,
113
114    RPMTAG_REQUIREVERSION = 1050,
115    RPMTAG_NOSOURCE = 1051,
116    RPMTAG_NOPATCH = 1052,
117    RPMTAG_CONFLICTFLAGS = 1053,
118    RPMTAG_CONFLICTNAME = 1054,
119
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
148    RPMTAG_VERIFYSCRIPTPROG = 1091,
149    RPMTAG_TRIGGERSCRIPTPROG = 1092,
150    RPMTAG_DOCDIR = 1093,
151    RPMTAG_COOKIE = 1094,
152    RPMTAG_FILEDEVICES = 1095,
153    RPMTAG_FILEINODES = 1096,
154    RPMTAG_FILELANGS = 1097,
155    RPMTAG_PREFIXES = 1098,
156    RPMTAG_INSTPREFIXES = 1099,
157    RPMTAG_TRIGGERIN = 1100,
158    RPMTAG_TRIGGERUN = 1101,
159    RPMTAG_TRIGGERPOSTUN = 1102,
160    RPMTAG_AUTOREQ = 1103,
161    RPMTAG_AUTOPROV = 1104,
162    RPMTAG_CAPABILITY = 1105,
163    RPMTAG_SOURCEPACKAGE = 1106,
164    RPMTAG_OLDORIGFILENAMES = 1107,
165    RPMTAG_BUILDPREREQ = 1108,
166    RPMTAG_BUILDREQUIRES = 1109,
167    RPMTAG_BUILDCONFLICTS = 1110,
168    RPMTAG_BUILDMACROS = 1111,
169    RPMTAG_PROVIDEFLAGS = 1112,
170    RPMTAG_PROVIDEVERSION = 1113,
171    RPMTAG_OBSOLETEFLAGS = 1114,
172    RPMTAG_OBSOLETEVERSION = 1115,
173    RPMTAG_DIRINDEXES = 1116,
174    RPMTAG_BASENAMES = 1117,
175    RPMTAG_DIRNAMES = 1118,
176    RPMTAG_ORIGDIRINDEXES = 1119,
177    RPMTAG_ORIGBASENAMES = 1120,
178    RPMTAG_ORIGDIRNAMES = 1121,
179    RPMTAG_OPTFLAGS = 1122,
180    RPMTAG_DISTURL = 1123,
181    RPMTAG_PAYLOADFORMAT = 1124,
182    RPMTAG_PAYLOADCOMPRESSOR = 1125,
183    RPMTAG_PAYLOADFLAGS = 1126,
184    RPMTAG_INSTALLCOLOR = 1127,
185    RPMTAG_INSTALLTID = 1128,
186    RPMTAG_REMOVETID = 1129,
187    RPMTAG_SHA1RHN = 1130,
188    RPMTAG_RHNPLATFORM = 1131,
189    RPMTAG_PLATFORM = 1132,
190    RPMTAG_PATCHESNAME = 1133,
191    RPMTAG_PATCHESFLAGS = 1134,
192    RPMTAG_PATCHESVERSION = 1135,
193    RPMTAG_CACHECTIME = 1136,
194    RPMTAG_CACHEPKGPATH = 1137,
195    RPMTAG_CACHEPKGSIZE = 1138,
196    RPMTAG_CACHEPKGMTIME = 1139,
197    RPMTAG_FILECOLORS = 1140,
198    RPMTAG_FILECLASS = 1141,
199    RPMTAG_CLASSDICT = 1142,
200    RPMTAG_FILEDEPENDSX = 1143,
201    RPMTAG_FILEDEPENDSN = 1144,
202    RPMTAG_DEPENDSDICT = 1145,
203    RPMTAG_SOURCEPKGID = 1146,
204    RPMTAG_FILECONTEXTS = 1147,
205    RPMTAG_FSCONTEXTS = 1148,
206    RPMTAG_RECONTEXTS = 1149,
207    RPMTAG_POLICIES = 1150,
208    RPMTAG_PRETRANS = 1151,
209    RPMTAG_POSTTRANS = 1152,
210    RPMTAG_PRETRANSPROG = 1153,
211    RPMTAG_POSTTRANSPROG = 1154,
212    RPMTAG_DISTTAG = 1155,
213    RPMTAG_OLDSUGGESTSNAME = 1156,
214
215    RPMTAG_OLDSUGGESTSVERSION = 1157,
216    RPMTAG_OLDSUGGESTSFLAGS = 1158,
217    RPMTAG_OLDENHANCESNAME = 1159,
218
219    RPMTAG_OLDENHANCESVERSION = 1160,
220    RPMTAG_OLDENHANCESFLAGS = 1161,
221    RPMTAG_PRIORITY = 1162,
222    RPMTAG_CVSID = 1163,
223
224    RPMTAG_BLINKPKGID = 1164,
225    RPMTAG_BLINKHDRID = 1165,
226    RPMTAG_BLINKNEVRA = 1166,
227    RPMTAG_FLINKPKGID = 1167,
228    RPMTAG_FLINKHDRID = 1168,
229    RPMTAG_FLINKNEVRA = 1169,
230    RPMTAG_PACKAGEORIGIN = 1170,
231    RPMTAG_TRIGGERPREIN = 1171,
232    RPMTAG_BUILDSUGGESTS = 1172,
233    RPMTAG_BUILDENHANCES = 1173,
234    RPMTAG_SCRIPTSTATES = 1174,
235    RPMTAG_SCRIPTMETRICS = 1175,
236    RPMTAG_BUILDCPUCLOCK = 1176,
237    RPMTAG_FILEDIGESTALGOS = 1177,
238    RPMTAG_VARIANTS = 1178,
239    RPMTAG_XMAJOR = 1179,
240    RPMTAG_XMINOR = 1180,
241    RPMTAG_REPOTAG = 1181,
242    RPMTAG_KEYWORDS = 1182,
243    RPMTAG_BUILDPLATFORMS = 1183,
244    RPMTAG_PACKAGECOLOR = 1184,
245    RPMTAG_PACKAGEPREFCOLOR = 1185,
246    RPMTAG_XATTRSDICT = 1186,
247    RPMTAG_FILEXATTRSX = 1187,
248    RPMTAG_DEPATTRSDICT = 1188,
249    RPMTAG_CONFLICTATTRSX = 1189,
250    RPMTAG_OBSOLETEATTRSX = 1190,
251    RPMTAG_PROVIDEATTRSX = 1191,
252    RPMTAG_REQUIREATTRSX = 1192,
253    RPMTAG_BUILDPROVIDES = 1193,
254    RPMTAG_BUILDOBSOLETES = 1194,
255    RPMTAG_DBINSTANCE = 1195,
256    RPMTAG_NVRA = 1196,
257
258    RPMTAG_FILENAMES = 5000,
259    RPMTAG_FILEPROVIDE = 5001,
260    RPMTAG_FILEREQUIRE = 5002,
261    RPMTAG_FSNAMES = 5003,
262    RPMTAG_FSSIZES = 5004,
263    RPMTAG_TRIGGERCONDS = 5005,
264    RPMTAG_TRIGGERTYPE = 5006,
265    RPMTAG_ORIGFILENAMES = 5007,
266    RPMTAG_LONGFILESIZES = 5008,
267    RPMTAG_LONGSIZE = 5009,
268    RPMTAG_FILECAPS = 5010,
269    RPMTAG_FILEDIGESTALGO = 5011,
270    RPMTAG_BUGURL = 5012,
271    RPMTAG_EVR = 5013,
272    RPMTAG_NVR = 5014,
273    RPMTAG_NEVR = 5015,
274    RPMTAG_NEVRA = 5016,
275    RPMTAG_HEADERCOLOR = 5017,
276    RPMTAG_VERBOSE = 5018,
277    RPMTAG_EPOCHNUM = 5019,
278    RPMTAG_PREINFLAGS = 5020,
279    RPMTAG_POSTINFLAGS = 5021,
280    RPMTAG_PREUNFLAGS = 5022,
281    RPMTAG_POSTUNFLAGS = 5023,
282    RPMTAG_PRETRANSFLAGS = 5024,
283    RPMTAG_POSTTRANSFLAGS = 5025,
284    RPMTAG_VERIFYSCRIPTFLAGS = 5026,
285    RPMTAG_TRIGGERSCRIPTFLAGS = 5027,
286    RPMTAG_COLLECTIONS = 5029,
287    RPMTAG_POLICYNAMES = 5030,
288    RPMTAG_POLICYTYPES = 5031,
289    RPMTAG_POLICYTYPESINDEXES = 5032,
290    RPMTAG_POLICYFLAGS = 5033,
291    RPMTAG_VCS = 5034,
292    RPMTAG_ORDERNAME = 5035,
293    RPMTAG_ORDERVERSION = 5036,
294    RPMTAG_ORDERFLAGS = 5037,
295    RPMTAG_MSSFMANIFEST = 5038,
296    RPMTAG_MSSFDOMAIN = 5039,
297    RPMTAG_INSTFILENAMES = 5040,
298    RPMTAG_REQUIRENEVRS = 5041,
299    RPMTAG_PROVIDENEVRS = 5042,
300    RPMTAG_OBSOLETENEVRS = 5043,
301    RPMTAG_CONFLICTNEVRS = 5044,
302    RPMTAG_FILENLINKS = 5045,
303    RPMTAG_RECOMMENDNAME = 5046,
304
305    RPMTAG_RECOMMENDVERSION = 5047,
306    RPMTAG_RECOMMENDFLAGS = 5048,
307    RPMTAG_SUGGESTNAME = 5049,
308
309    RPMTAG_SUGGESTVERSION = 5050,
310    RPMTAG_SUGGESTFLAGS = 5051,
311    RPMTAG_SUPPLEMENTNAME = 5052,
312
313    RPMTAG_SUPPLEMENTVERSION = 5053,
314    RPMTAG_SUPPLEMENTFLAGS = 5054,
315    RPMTAG_ENHANCENAME = 5055,
316
317    RPMTAG_ENHANCEVERSION = 5056,
318    RPMTAG_ENHANCEFLAGS = 5057,
319    RPMTAG_RECOMMENDNEVRS = 5058,
320    RPMTAG_SUGGESTNEVRS = 5059,
321    RPMTAG_SUPPLEMENTNEVRS = 5060,
322    RPMTAG_ENHANCENEVRS = 5061,
323    RPMTAG_ENCODING = 5062,
324    RPMTAG_FILETRIGGERIN = 5063,
325    RPMTAG_FILETRIGGERUN = 5064,
326    RPMTAG_FILETRIGGERPOSTUN = 5065,
327    RPMTAG_FILETRIGGERSCRIPTS = 5066,
328    RPMTAG_FILETRIGGERSCRIPTPROG = 5067,
329    RPMTAG_FILETRIGGERSCRIPTFLAGS = 5068,
330    RPMTAG_FILETRIGGERNAME = 5069,
331    RPMTAG_FILETRIGGERINDEX = 5070,
332    RPMTAG_FILETRIGGERVERSION = 5071,
333    RPMTAG_FILETRIGGERFLAGS = 5072,
334    RPMTAG_TRANSFILETRIGGERIN = 5073,
335    RPMTAG_TRANSFILETRIGGERUN = 5074,
336    RPMTAG_TRANSFILETRIGGERPOSTUN = 5075,
337    RPMTAG_TRANSFILETRIGGERSCRIPTS = 5076,
338    RPMTAG_TRANSFILETRIGGERSCRIPTPROG = 5077,
339    RPMTAG_TRANSFILETRIGGERSCRIPTFLAGS = 5078,
340    RPMTAG_TRANSFILETRIGGERNAME = 5079,
341    RPMTAG_TRANSFILETRIGGERINDEX = 5080,
342    RPMTAG_TRANSFILETRIGGERVERSION = 5081,
343    RPMTAG_TRANSFILETRIGGERFLAGS = 5082,
344    RPMTAG_REMOVEPATHPOSTFIXES = 5083,
345    RPMTAG_FILETRIGGERPRIORITIES = 5084,
346    RPMTAG_TRANSFILETRIGGERPRIORITIES = 5085,
347    RPMTAG_FILETRIGGERCONDS = 5086,
348    RPMTAG_FILETRIGGERTYPE = 5087,
349    RPMTAG_TRANSFILETRIGGERCONDS = 5088,
350    RPMTAG_TRANSFILETRIGGERTYPE = 5089,
351    RPMTAG_FILESIGNATURES = 5090,
352    RPMTAG_FILESIGNATURELENGTH = 5091,
353    RPMTAG_PAYLOADDIGEST = 5092,
354    RPMTAG_PAYLOADDIGESTALGO = 5093,
355    RPMTAG_AUTOINSTALLED = 5094,
356    RPMTAG_IDENTITY = 5095,
357    RPMTAG_MODULARITYLABEL = 5096,
358    RPMTAG_PAYLOADDIGESTALT = 5097,
359}
360
361#[derive(
362    num_derive::FromPrimitive,
363    num_derive::ToPrimitive,
364    Debug,
365    PartialEq,
366    Eq,
367    Copy,
368    Clone,
369    enum_display_derive::Display,
370)]
371#[allow(non_camel_case_types)]
372pub enum IndexSignatureTag {
373    HEADER_SIGNATURES = HEADER_SIGNATURES,
374    // This tag specifies the combined size of the Header and Payload sections.
375    RPMSIGTAG_SIZE = HEADER_TAGBASE,
376
377    //This  tag  specifies  the  uncompressed  size of the Payload archive, including the cpio headers.
378    RPMSIGTAG_PAYLOADSIZE = HEADER_TAGBASE + 7,
379
380    //This  index  contains  the  SHA1  checksum  of  the  entire  Header  Section,
381    //including the Header Record, Index Records and Header store.
382    RPMSIGTAG_SHA1 = 269,
383
384    //This  tag  specifies  the  128-bit  MD5  checksum  of  the  combined  Header  and  Archive sections.
385    RPMSIGTAG_MD5 = 1004,
386
387    //The  tag  contains  the  DSA  signature  of  the  Header  section.
388    // The  data  is  formatted  as  a  Version  3  Signature  Packet  as  specified  in  RFC  2440:  OpenPGP Message Format.
389    // If this tag is present, then the SIGTAG_GPG tag shall also be present.
390    RPMSIGTAG_DSA = 267,
391
392    // The  tag  contains  the  RSA  signature  of  the  Header  section.
393    // The  data  is  formatted  as  a  Version  3  Signature  Packet  as  specified  in  RFC  2440: OpenPGP  Message  Format.
394    // If  this  tag  is  present,  then  the  SIGTAG_PGP  shall also be present.
395    RPMSIGTAG_RSA = 268,
396
397    // Header+payload size if > 4GB.
398    RPMSIGTAG_LONGSIGSIZE = 270,
399
400    // (Compressed) payload size when > 4GB.
401    RPMSIGTAG_LONGARCHIVESIZE = 271,
402
403    // The tag contains the file signature of a file.
404    // The data is formatted as a hex-encoded string.
405    // If this tag is present, then the SIGTAG_FILESIGNATURE_LENGTH shall also be present.
406    RPMSIGTAG_FILESIGNATURES = 274,
407
408    // The tag contains the length of the file signatures in total.
409    // If this tag is present, then the SIGTAG_FILESIGNATURE shall also be present.
410    RPMSIGTAG_FILESIGNATURE_LENGTH = 275,
411
412    // This  tag  specifies  the  RSA  signature  of  the  combined  Header  and  Payload  sections.
413    // The data is formatted as a Version 3 Signature Packet as specified in RFC 2440: OpenPGP Message Format.
414    RPMSIGTAG_PGP = 1002,
415
416    // The  tag  contains  the  DSA  signature  of  the  combined  Header  and  Payload  sections.
417    // The data is formatted as a Version 3 Signature Packet as specified in RFC 2440: OpenPGP Message Format.
418    RPMSIGTAG_GPG = 1005,
419
420    //This  index  contains  the  SHA256  checksum  of  the  entire  Header  Section,
421    //including the Header Record, Index Records and Header store.
422    RPMSIGTAG_SHA256 = IndexTag::RPMTAG_SHA256HEADER as isize,
423
424    // A silly tag for a date.
425    RPMTAG_INSTALLTIME = IndexTag::RPMTAG_INSTALLTIME as isize,
426}
427
428pub trait TypeName {
429    fn type_name() -> &'static str;
430}
431
432impl TypeName for IndexTag {
433    fn type_name() -> &'static str {
434        "IndexTag"
435    }
436}
437
438impl TypeName for IndexSignatureTag {
439    fn type_name() -> &'static str {
440        "IndexSignatureTag"
441    }
442}
443
444/// lead header size
445pub const LEAD_SIZE: usize = 96;
446/// rpm magic as part of the lead header
447pub const RPM_MAGIC: [u8; 4] = [0xed, 0xab, 0xee, 0xdb];
448
449/// header magic recognition (not the lead!)
450pub const HEADER_MAGIC: [u8; 3] = [0x8e, 0xad, 0xe8];
451
452pub const RPMSENSE_ANY: u32 = 0;
453pub const RPMSENSE_LESS: u32 = 1 << 1;
454pub const RPMSENSE_GREATER: u32 = 1 << 2;
455pub const RPMSENSE_EQUAL: u32 = 1 << 3;
456
457// there is no use yet for those constants. But they are part of the official package
458// so I will leave them in in case we need them later.
459
460// const RPMSENSE_POSTTRANS: u32 = (1 << 5);
461// const RPMSENSE_PREREQ: u32 = (1 << 6);
462// const RPMSENSE_PRETRANS: u32 = (1 << 7);
463// const RPMSENSE_INTERP: u32 = (1 << 8);
464// const RPMSENSE_SCRIPT_PRE: u32 = (1 << 9);
465// const RPMSENSE_SCRIPT_POST: u32 = (1 << 10);
466// const RPMSENSE_SCRIPT_PREUN: u32 = (1 << 11);
467// const RPMSENSE_SCRIPT_POSTUN: u32 = (1 << 12);
468// const RPMSENSE_SCRIPT_VERIFY: u32 = (1 << 13);
469// const RPMSENSE_FIND_REQUIRES: u32 = (1 << 14);
470// const RPMSENSE_FIND_PROVIDES: u32 = (1 << 15);
471// const RPMSENSE_TRIGGERIN: u32 = (1 << 16);
472// const RPMSENSE_TRIGGERUN: u32 = (1 << 17);
473// const RPMSENSE_TRIGGERPOSTUN: u32 = (1 << 18);
474// const RPMSENSE_MISSINGOK: u32 = (1 << 19);
475
476// // for some weird reason, centos packages have another value for rpm lib sense. We have to observe this.
477// const RPMSENSE_RPMLIB: u32 = (1 << 24); //0o100000012;
478// const RPMSENSE_TRIGGERPREIN: u32 = (1 << 25);
479// const RPMSENSE_KEYRING: u32 = (1 << 26);
480// const RPMSENSE_CONFIG: u32 = (1 << 28);
481
482pub const RPMFILE_CONFIG: i32 = 1;
483pub const RPMFILE_DOC: i32 = 1 << 1;
484// const RPMFILE_DONOTUSE: i32 = (1 << 2);
485// const RPMFILE_MISSINGOK: i32 = (1 << 3);
486// const RPMFILE_NOREPLACE: i32 = (1 << 4);
487// const RPMFILE_SPECFILE: i32 = (1 << 5);
488// const RPMFILE_GHOST: i32 = (1 << 6);
489// const RPMFILE_LICENSE: i32 = (1 << 7);
490// const RPMFILE_README: i32 = (1 << 8);
491// const RPMFILE_EXCLUDE: i32 = (1 << 9);
492
493// copied from rpmpgp.h
494// should be technically equiv to
495// `pgp::crypto::hash::HashAlgorithm`
496// but that is only available with feature `signature`
497pub const PGPHASHALGO_MD5: i32 = 1;
498pub const PGPHASHALGO_SHA1: i32 = 2;
499pub const PGPHASHALGO_RIPEMD160: i32 = 3;
500pub const PGPHASHALGO_MD2: i32 = 5;
501pub const PGPHASHALGO_TIGER192: i32 = 6;
502pub const PGPHASHALGO_HAVAL_5_160: i32 = 7;
503pub const PGPHASHALGO_SHA256: i32 = 8;
504pub const PGPHASHALGO_SHA384: i32 = 9;
505pub const PGPHASHALGO_SHA512: i32 = 10;
506pub const PGPHASHALGO_SHA224: i32 = 11;