7 * \brief Verify a package. The constants that enable/disable some sanity checks (mainly used at post (un)install)
9 #include <rpm/rpmtypes.h>
10 #include <rpm/rpmutil.h>
17 * Bit(s) for rpmVerifyFile() attributes and result.
19 enum rpmVerifyAttrs_e {
20 RPMVERIFY_NONE = 0, /*!< */
21 RPMVERIFY_MD5 = (1 << 0), /*!< from %verify(md5) - obsolete */
22 RPMVERIFY_FILEDIGEST= (1 << 0), /*!< from %verify(filedigest) */
23 RPMVERIFY_FILESIZE = (1 << 1), /*!< from %verify(size) */
24 RPMVERIFY_LINKTO = (1 << 2), /*!< from %verify(link) */
25 RPMVERIFY_USER = (1 << 3), /*!< from %verify(user) */
26 RPMVERIFY_GROUP = (1 << 4), /*!< from %verify(group) */
27 RPMVERIFY_MTIME = (1 << 5), /*!< from %verify(mtime) */
28 RPMVERIFY_MODE = (1 << 6), /*!< from %verify(mode) */
29 RPMVERIFY_RDEV = (1 << 7), /*!< from %verify(rdev) */
30 RPMVERIFY_CAPS = (1 << 8), /*!< from %verify(caps) */
31 /* bits 9-14 unused, reserved for rpmVerifyAttrs */
32 RPMVERIFY_CONTEXTS = (1 << 15), /*!< verify: from --nocontexts */
33 /* bits 16-22 used in rpmVerifyFlags */
34 /* bits 23-27 used in rpmQueryFlags */
35 RPMVERIFY_READLINKFAIL= (1 << 28), /*!< readlink failed */
36 RPMVERIFY_READFAIL = (1 << 29), /*!< file read failed */
37 RPMVERIFY_LSTATFAIL = (1 << 30), /*!< lstat failed */
38 RPMVERIFY_LGETFILECONFAIL = (1 << 31) /*!< lgetfilecon failed */
41 typedef rpmFlags rpmVerifyAttrs;
43 #define RPMVERIFY_ALL ~(RPMVERIFY_NONE)
44 #define RPMVERIFY_FAILURES \
45 (RPMVERIFY_LSTATFAIL|RPMVERIFY_READFAIL|RPMVERIFY_READLINKFAIL|RPMVERIFY_LGETFILECONFAIL)
48 * Bit(s) to control rpmVerify() operation
50 enum rpmVerifyFlags_e {
51 VERIFY_DEFAULT = 0, /*!< */
52 VERIFY_MD5 = (1 << 0), /*!< from --nomd5 - obsolete */
53 VERIFY_FILEDIGEST = (1 << 0), /*!< from --nofiledigest */
54 VERIFY_SIZE = (1 << 1), /*!< from --nosize */
55 VERIFY_LINKTO = (1 << 2), /*!< from --nolinkto */
56 VERIFY_USER = (1 << 3), /*!< from --nouser */
57 VERIFY_GROUP = (1 << 4), /*!< from --nogroup */
58 VERIFY_MTIME = (1 << 5), /*!< from --nomtime */
59 VERIFY_MODE = (1 << 6), /*!< from --nomode */
60 VERIFY_RDEV = (1 << 7), /*!< from --nodev */
61 VERIFY_CAPS = (1 << 8), /*!< from --nocaps */
62 /* bits 9-14 unused, reserved for rpmVerifyAttrs */
63 VERIFY_CONTEXTS = (1 << 15), /*!< verify: from --nocontexts */
64 VERIFY_FILES = (1 << 16), /*!< verify: from --nofiles */
65 VERIFY_DEPS = (1 << 17), /*!< verify: from --nodeps */
66 VERIFY_SCRIPT = (1 << 18), /*!< verify: from --noscripts */
67 VERIFY_DIGEST = (1 << 19), /*!< verify: from --nodigest */
68 VERIFY_SIGNATURE = (1 << 20), /*!< verify: from --nosignature */
69 VERIFY_PATCHES = (1 << 21), /*!< verify: from --nopatches */
70 VERIFY_HDRCHK = (1 << 22), /*!< verify: from --nohdrchk */
71 VERIFY_FOR_LIST = (1 << 23), /*!< query: from --list */
72 VERIFY_FOR_STATE = (1 << 24), /*!< query: from --state */
73 VERIFY_FOR_DOCS = (1 << 25), /*!< query: from --docfiles */
74 VERIFY_FOR_CONFIG = (1 << 26), /*!< query: from --configfiles */
75 VERIFY_FOR_DUMPFILES= (1 << 27) /*!< query: from --dump */
76 /* bits 28-31 used in rpmVerifyAttrs */
79 typedef rpmFlags rpmVerifyFlags;
81 #define VERIFY_ATTRS \
82 ( VERIFY_FILEDIGEST | VERIFY_SIZE | VERIFY_LINKTO | VERIFY_USER | VERIFY_GROUP | \
83 VERIFY_MTIME | VERIFY_MODE | VERIFY_RDEV | VERIFY_CONTEXTS | VERIFY_CAPS )
85 ( VERIFY_ATTRS | VERIFY_FILES | VERIFY_DEPS | VERIFY_SCRIPT | VERIFY_DIGEST |\
86 VERIFY_SIGNATURE | VERIFY_HDRCHK )
89 * Verify file attributes (including digest).
90 * @deprecated use rpmfiVerify() / rpmfilesVerify() instead
91 * @param ts transaction set
92 * @param fi file info (with linked header and current file index)
93 * @retval *res bit(s) returned to indicate failure
94 * @param omitMask bit(s) to disable verify checks
95 * @return 0 on success (or not installed), 1 on error
98 int rpmVerifyFile(const rpmts ts, rpmfi fi,
99 rpmVerifyAttrs * res, rpmVerifyAttrs omitMask);
106 #endif /* _RPMTYPES_H */