upgrade rpm version to 4.14.1
[platform/upstream/rpm.git] / lib / rpmvf.h
1 #ifndef _RPMVF_H
2 #define _RPMVF_H
3
4 /** \ingroup rpmvf
5  * \file lib/rpmvf.h
6  *
7  * \brief Verify a package. The constants that enable/disable some sanity checks (mainly used at post (un)install)
8  */
9 #include <rpm/rpmtypes.h>
10 #include <rpm/rpmutil.h>
11
12 #ifdef __cplusplus
13 extern "C" {
14 #endif
15
16 /** \ingroup rpmvf
17  * Bit(s) for rpmVerifyFile() attributes and result.
18  */
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 */
39 };
40
41 typedef rpmFlags rpmVerifyAttrs;
42
43 #define RPMVERIFY_ALL           ~(RPMVERIFY_NONE)
44 #define RPMVERIFY_FAILURES      \
45   (RPMVERIFY_LSTATFAIL|RPMVERIFY_READFAIL|RPMVERIFY_READLINKFAIL|RPMVERIFY_LGETFILECONFAIL)
46
47 /** \ingroup rpmvf
48  * Bit(s) to control rpmVerify() operation
49  */
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 */
77 };
78
79 typedef rpmFlags rpmVerifyFlags;
80
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 )
84 #define VERIFY_ALL      \
85   ( VERIFY_ATTRS | VERIFY_FILES | VERIFY_DEPS | VERIFY_SCRIPT | VERIFY_DIGEST |\
86     VERIFY_SIGNATURE | VERIFY_HDRCHK )
87
88 /** \ingroup rpmvf
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
96  */
97 RPM_GNUC_DEPRECATED
98 int rpmVerifyFile(const rpmts ts, rpmfi fi,
99                 rpmVerifyAttrs * res, rpmVerifyAttrs omitMask);
100
101
102 #ifdef __cplusplus
103 }
104 #endif
105
106 #endif /* _RPMTYPES_H */