4 /** \ingroup rpmfc rpmbuild
6 * Structures and methods for build-time file classification.
9 #include <rpm/rpmtypes.h>
10 #include <rpm/argv.h> /* for ARGV_t */
11 #include <rpm/rpmspec.h> /* for Package */
17 extern int _rpmfc_debug;
21 typedef struct rpmfc_s * rpmfc;
27 RPMFC_ELF32 = (1 << 0),
28 RPMFC_ELF64 = (1 << 1),
29 RPMFC_ELFMIPSN32 = (1 << 2),
30 #define RPMFC_ELF (RPMFC_ELF32|RPMFC_ELF64|RPMFC_ELFMIPSN32)
31 /* (1 << 3) leaks into package headers, reserved */
33 RPMFC_WHITE = (1 << 29),
34 RPMFC_INCLUDE = (1 << 30),
35 RPMFC_ERROR = (1 << 31)
40 typedef rpmFlags FCOLOR_t;
44 typedef const struct rpmfcTokens_s * rpmfcToken;
47 * Print results of file classification.
48 * @todo Remove debugging routine.
49 * @param msg message prefix (NULL for none)
50 * @param fc file classifier
51 * @param fp output file handle (NULL for stderr)
53 void rpmfcPrint(const char * msg, rpmfc fc, FILE * fp);
56 * Destroy a file classifier.
57 * @param fc file classifier
60 rpmfc rpmfcFree(rpmfc fc);
63 * Create a file classifier.
64 * @param rootDir (build) root directory
65 * @param flags (unused)
66 * @return new file classifier
68 rpmfc rpmfcCreate(const char *rootDir, rpmFlags flags);
72 * Create a file classifier.
73 * @return new file classifier
80 * Build file class dictionary and mappings.
81 * @param fc file classifier
82 * @param argv files to classify
83 * @param fmode files mode_t array (or NULL)
84 * @return RPMRC_OK on success
86 rpmRC rpmfcClassify(rpmfc fc, ARGV_t argv, rpm_mode_t * fmode);
89 * Build file/package dependency dictionary and mappings.
90 * @param fc file classifier
91 * @return RPMRC_OK on success
93 rpmRC rpmfcApply(rpmfc fc);
96 * Retrieve file classification provides
97 * @param fc file classifier
98 * @return rpmds dependency set of fc provides
100 rpmds rpmfcProvides(rpmfc fc);
103 * Retrieve file classification requires
104 * @param fc file classifier
105 * @return rpmds dependency set of fc requires
107 rpmds rpmfcRequires(rpmfc fc);
110 * Retrieve file classification supplements
111 * @param fc file classifier
112 * @return rpmds dependency set of fc requires
114 rpmds rpmfcSupplements(rpmfc fc);
120 #endif /* _H_RPMFC_ */