Modify eu-strip option to perform strip in post script of rpm package & add option...
[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  * @todo Add a more complete API...
7  */
8 #include <rpm/rpmtypes.h>
9
10 #ifdef __cplusplus
11 extern "C" {
12 #endif
13
14 /** \ingroup rpmvf
15  * Bit(s) for rpmVerifyFile() attributes and result.
16  */
17 enum rpmVerifyAttrs_e {
18     RPMVERIFY_NONE      = 0,            /*!< */
19     RPMVERIFY_MD5       = (1 << 0),     /*!< from %verify(md5) - obsolete */
20     RPMVERIFY_FILEDIGEST= (1 << 0),     /*!< from %verify(filedigest) */
21     RPMVERIFY_FILESIZE  = (1 << 1),     /*!< from %verify(size) */
22     RPMVERIFY_LINKTO    = (1 << 2),     /*!< from %verify(link) */
23     RPMVERIFY_USER      = (1 << 3),     /*!< from %verify(user) */
24     RPMVERIFY_GROUP     = (1 << 4),     /*!< from %verify(group) */
25     RPMVERIFY_MTIME     = (1 << 5),     /*!< from %verify(mtime) */
26     RPMVERIFY_MODE      = (1 << 6),     /*!< from %verify(mode) */
27     RPMVERIFY_RDEV      = (1 << 7),     /*!< from %verify(rdev) */
28     RPMVERIFY_CAPS      = (1 << 8),     /*!< from %verify(caps) */
29         /* bits 9-14 unused, reserved for rpmVerifyAttrs */
30     RPMVERIFY_CONTEXTS  = (1 << 15),    /*!< verify: from --nocontexts */
31         /* bits 16-22 used in rpmVerifyFlags */
32         /* bits 23-27 used in rpmQueryFlags */
33     RPMVERIFY_READLINKFAIL= (1 << 28),  /*!< readlink failed */
34     RPMVERIFY_READFAIL  = (1 << 29),    /*!< file read failed */
35     RPMVERIFY_LSTATFAIL = (1 << 30),    /*!< lstat failed */
36     RPMVERIFY_LGETFILECONFAIL   = (1 << 31)     /*!< lgetfilecon failed */
37 };
38
39 typedef rpmFlags rpmVerifyAttrs;
40
41 #define RPMVERIFY_ALL           ~(RPMVERIFY_NONE)
42 #define RPMVERIFY_FAILURES      \
43   (RPMVERIFY_LSTATFAIL|RPMVERIFY_READFAIL|RPMVERIFY_READLINKFAIL|RPMVERIFY_LGETFILECONFAIL)
44
45 /** \ingroup rpmvf
46  * Bit(s) to control rpmVerify() operation
47  */
48 enum rpmVerifyFlags_e {
49     VERIFY_DEFAULT      = 0,            /*!< */
50     VERIFY_MD5          = (1 << 0),     /*!< from --nomd5 - obsolete */
51     VERIFY_FILEDIGEST   = (1 << 0),     /*!< from --nofiledigest */
52     VERIFY_SIZE         = (1 << 1),     /*!< from --nosize */
53     VERIFY_LINKTO       = (1 << 2),     /*!< from --nolinkto */
54     VERIFY_USER         = (1 << 3),     /*!< from --nouser */
55     VERIFY_GROUP        = (1 << 4),     /*!< from --nogroup */
56     VERIFY_MTIME        = (1 << 5),     /*!< from --nomtime */
57     VERIFY_MODE         = (1 << 6),     /*!< from --nomode */
58     VERIFY_RDEV         = (1 << 7),     /*!< from --nodev */
59     VERIFY_CAPS         = (1 << 8),     /*!< from --nocaps */
60         /* bits 9-14 unused, reserved for rpmVerifyAttrs */
61     VERIFY_CONTEXTS     = (1 << 15),    /*!< verify: from --nocontexts */
62     VERIFY_FILES        = (1 << 16),    /*!< verify: from --nofiles */
63     VERIFY_DEPS         = (1 << 17),    /*!< verify: from --nodeps */
64     VERIFY_SCRIPT       = (1 << 18),    /*!< verify: from --noscripts */
65     VERIFY_DIGEST       = (1 << 19),    /*!< verify: from --nodigest */
66     VERIFY_SIGNATURE    = (1 << 20),    /*!< verify: from --nosignature */
67     VERIFY_PATCHES      = (1 << 21),    /*!< verify: from --nopatches */
68     VERIFY_HDRCHK       = (1 << 22),    /*!< verify: from --nohdrchk */
69     VERIFY_FOR_LIST     = (1 << 23),    /*!< query:  from --list */
70     VERIFY_FOR_STATE    = (1 << 24),    /*!< query:  from --state */
71     VERIFY_FOR_DOCS     = (1 << 25),    /*!< query:  from --docfiles */
72     VERIFY_FOR_CONFIG   = (1 << 26),    /*!< query:  from --configfiles */
73     VERIFY_FOR_DUMPFILES= (1 << 27)     /*!< query:  from --dump */
74         /* bits 28-31 used in rpmVerifyAttrs */
75 };
76
77 typedef rpmFlags rpmVerifyFlags;
78
79 #define VERIFY_ATTRS    \
80   ( VERIFY_FILEDIGEST | VERIFY_SIZE | VERIFY_LINKTO | VERIFY_USER | VERIFY_GROUP | \
81     VERIFY_MTIME | VERIFY_MODE | VERIFY_RDEV | VERIFY_CONTEXTS | VERIFY_CAPS )
82 #define VERIFY_ALL      \
83   ( VERIFY_ATTRS | VERIFY_FILES | VERIFY_DEPS | VERIFY_SCRIPT | VERIFY_DIGEST |\
84     VERIFY_SIGNATURE | VERIFY_HDRCHK )
85
86 /** \ingroup rpmvf
87  * Verify file attributes (including digest).
88  * @todo gnorpm and python bindings prevent this from being static.
89  * @param ts            transaction set
90  * @param fi            file info (with linked header and current file index)
91  * @retval *res         bit(s) returned to indicate failure
92  * @param omitMask      bit(s) to disable verify checks
93  * @return              0 on success (or not installed), 1 on error
94  */
95 int rpmVerifyFile(const rpmts ts, rpmfi fi,
96                 rpmVerifyAttrs * res, rpmVerifyAttrs omitMask);
97
98
99 #ifdef __cplusplus
100 }
101 #endif
102
103 #endif /* _RPMTYPES_H */