rpm  4.14.0
rpmcli.h
Go to the documentation of this file.
1 #ifndef H_RPMCLI
2 #define H_RPMCLI
3 
10 #include <popt.h>
11 
12 #include <rpm/rpmlib.h>
13 #include <rpm/rpmurl.h>
14 #include <rpm/rpmmacro.h>
15 #include <rpm/rpmcallback.h>
16 #include <rpm/rpmts.h>
17 #include <rpm/rpmfi.h>
18 #include <rpm/rpmvf.h>
19 #include <rpm/argv.h>
20 
21 #ifdef __cplusplus
22 extern "C" {
23 #endif
24 
28 extern struct poptOption rpmcliAllPoptTable[];
29 
30 extern const char * rpmcliPipeOutput;
31 
32 extern const char * rpmcliRcfile;
33 
34 extern const char * rpmcliRootDir;
35 
43 poptContext
44 rpmcliInit(int argc, char *const argv[], struct poptOption * optionsTable);
45 
50 void rpmcliConfigured(void);
51 
57 poptContext
58 rpmcliFini(poptContext optCon);
59 
63 #define RPMCLI_POPT_NODEPS -1025
64 #define RPMCLI_POPT_FORCE -1026
65 #define RPMCLI_POPT_NOMD5 -1027
66 #define RPMCLI_POPT_NOFILEDIGEST -1027 /* same as obsolete RPMCLI_POPT_NOMD5 */
67 #define RPMCLI_POPT_NOSCRIPTS -1028
68 #define RPMCLI_POPT_NOSIGNATURE -1029
69 #define RPMCLI_POPT_NODIGEST -1030
70 #define RPMCLI_POPT_NOHDRCHK -1031
71 #define RPMCLI_POPT_NOCONTEXTS -1032
72 #define RPMCLI_POPT_NOCAPS -1033
73 #define RPMCLI_POPT_TARGETPLATFORM -1034
74 
75 /* ==================================================================== */
103 };
104 
106 
113  QUERY_MD5 = (1 << 0),
114  QUERY_FILEDIGEST = (1 << 0),
115  QUERY_SIZE = (1 << 1),
116  QUERY_LINKTO = (1 << 2),
117  QUERY_USER = (1 << 3),
118  QUERY_GROUP = (1 << 4),
119  QUERY_MTIME = (1 << 5),
120  QUERY_MODE = (1 << 6),
121  QUERY_RDEV = (1 << 7),
122  /* bits 8-14 unused, reserved for rpmVerifyAttrs */
123  QUERY_CONTEXTS = (1 << 15),
124  QUERY_FILES = (1 << 16),
125  QUERY_DEPS = (1 << 17),
126  QUERY_SCRIPT = (1 << 18),
127  QUERY_DIGEST = (1 << 19),
128  QUERY_SIGNATURE = (1 << 20),
129  QUERY_PATCHES = (1 << 21),
130  QUERY_HDRCHK = (1 << 22),
131  QUERY_FOR_LIST = (1 << 23),
132  QUERY_FOR_STATE = (1 << 24),
133  QUERY_FOR_DOCS = (1 << 25),
134  QUERY_FOR_CONFIG = (1 << 26),
135  QUERY_FOR_DUMPFILES = (1 << 27),
136  QUERY_FOR_LICENSE = (1 << 28)
137 };
138 
140 
141 #define _QUERY_FOR_BITS \
142  (QUERY_FOR_LIST|QUERY_FOR_STATE|QUERY_FOR_DOCS|QUERY_FOR_CONFIG|\
143  QUERY_FOR_LICENSE|QUERY_FOR_DUMPFILES)
144 
148 extern rpmQueryFlags rpmcliQueryFlags;
149 
152 typedef struct rpmQVKArguments_s * QVA_t;
153 
162 typedef int (*QVF_t) (QVA_t qva, rpmts ts, Header h);
163 
172 typedef int (*QSpecF_t) (rpmts ts, QVA_t qva, const char * arg);
173 
178  rpmQVSources qva_source;
180  rpmQueryFlags qva_flags;
186  char qva_mode;
194 };
195 
198 extern struct rpmQVKArguments_s rpmQVKArgs;
199 
202 extern struct poptOption rpmQVSourcePoptTable[];
203 
206 extern struct poptOption rpmQueryPoptTable[];
207 
210 extern struct poptOption rpmVerifyPoptTable[];
211 
216 void rpmDisplayQueryTags(FILE * fp);
217 
226 int showQueryPackage(QVA_t qva, rpmts ts, Header h);
227 
235 int rpmcliArgIter(rpmts ts, QVA_t qva, ARGV_const_t argv);
236 
245 int rpmcliQuery(rpmts ts, QVA_t qva, ARGV_const_t argv);
246 
254 int showVerifyPackage(QVA_t qva, rpmts ts, Header h);
255 
264 int rpmVerifySignatures(QVA_t qva, rpmts ts, FD_t fd, const char * fn);
265 
274 int rpmcliVerify(rpmts ts, QVA_t qva, ARGV_const_t argv);
275 
276 /* ==================================================================== */
278 /* --- install/upgrade/erase modes */
279 
285  INSTALL_PERCENT = (1 << 0),
286  INSTALL_HASH = (1 << 1),
287  INSTALL_NODEPS = (1 << 2),
288  INSTALL_NOORDER = (1 << 3),
289  INSTALL_LABEL = (1 << 4),
290  INSTALL_UPGRADE = (1 << 5),
291  INSTALL_FRESHEN = (1 << 6),
292  INSTALL_INSTALL = (1 << 7),
293  INSTALL_ERASE = (1 << 8),
294  INSTALL_ALLMATCHES = (1 << 9),
295  INSTALL_REINSTALL = (1 << 10),
296 };
297 
299 
303 #define UNINSTALL_NONE INSTALL_NONE
304 #define UNINSTALL_NODEPS INSTALL_NODEPS
305 #define UNINSTALL_ALLMATCHES INSTALL_ALLMATCHES
306 
321 void * rpmShowProgress(const void * arg,
322  const rpmCallbackType what,
323  const rpm_loff_t amount,
324  const rpm_loff_t total,
325  fnpyKey key,
326  void * data);
327 
336 int rpmInstallSource(rpmts ts, const char * arg,
337  char ** specFilePtr,
338  char ** cookie);
339 
340 
347  rpmInstallFlags installInterfaceFlags;
349  int noDeps;
350  int incldocs;
352  char * prefix;
353 };
354 
364 int rpmInstall(rpmts ts, struct rpmInstallArguments_s * ia, ARGV_t fileArgv);
365 
374 int rpmErase(rpmts ts, struct rpmInstallArguments_s * ia, ARGV_const_t argv);
375 
378 extern struct rpmInstallArguments_s rpmIArgs;
379 
382 extern struct poptOption rpmInstallPoptTable[];
383 
384 /* ==================================================================== */
393 
401 
402 #ifdef __cplusplus
403 }
404 #endif
405 
406 #endif /* H_RPMCLI */
const char * rpmcliRcfile
enum rpmCallbackType_e rpmCallbackType
Bit(s) to identify progress callbacks.
struct rpmQVKArguments_s * QVA_t
Definition: rpmcli.h:152
int qva_sourceCount
Definition: rpmcli.h:179
char ** ARGV_t
Definition: argv.h:17
rpmprobFilterFlags probFilter
Definition: rpmcli.h:346
void rpmDisplayQueryTags(FILE *fp)
Display list of tags that can be used in –queryformat.
rpmFlags rpmQVSources
Definition: rpmcli.h:105
int rpmErase(rpmts ts, struct rpmInstallArguments_s *ia, ARGV_const_t argv)
Erase binary rpm package.
rpmQueryFlags qva_flags
Definition: rpmcli.h:180
rpmQVSources_e
Query/Verify argument qualifiers.
Definition: rpmcli.h:82
poptContext rpmcliInit(int argc, char *const argv[], struct poptOption *optionsTable)
Initialize most everything needed by an rpm CLI executable context.
int rpmcliQuery(rpmts ts, QVA_t qva, ARGV_const_t argv)
Display package information.
rpmRelocation * relocations
Definition: rpmcli.h:351
int rpmcliVerifySignatures(rpmts ts, ARGV_const_t argv)
Verify package signatures.
struct rpmts_s * rpmts
The main types involved in transaction manipulation.
Definition: rpmtypes.h:63
rpmFlags rpmprobFilterFlags
Definition: rpmprob.h:34
Describe query/verify/signature command line operation.
Definition: rpmcli.h:177
QSpecF_t qva_specQuery
Definition: rpmcli.h:184
We pass these around as an array with a sentinel.
Definition: rpmfiles.h:95
struct rpmQVKArguments_s rpmQVKArgs
int showVerifyPackage(QVA_t qva, rpmts ts, Header h)
Display results of package verify.
QVF_t qva_showPackage
Definition: rpmcli.h:183
rpmQueryFlags rpmcliQueryFlags
Bit(s) from common command line options.
struct poptOption rpmInstallPoptTable[]
int rpmInstallSource(rpmts ts, const char *arg, char **specFilePtr, char **cookie)
Install source rpm package.
uint32_t rpmFlags
Definition: rpmtypes.h:42
poptContext rpmcliFini(poptContext optCon)
Destroy most everything needed by an rpm CLI executable context.
const char * rpmcliPipeOutput
int showQueryPackage(QVA_t qva, rpmts ts, Header h)
Display results of package query.
struct poptOption rpmQueryPoptTable[]
rpmFlags rpmQueryFlags
Definition: rpmcli.h:139
struct _FD_s * FD_t
RPM IO file descriptor type.
Definition: rpmtypes.h:98
int(* QVF_t)(QVA_t qva, rpmts ts, Header h)
Function to display iterator matches.
Definition: rpmcli.h:162
rpmtransFlags transFlags
Definition: rpmcli.h:345
struct poptOption rpmQVSourcePoptTable[]
rpmQVSources qva_source
Definition: rpmcli.h:178
struct headerToken_s * Header
RPM header and data retrieval types.
Definition: rpmtypes.h:24
int rpmcliVerify(rpmts ts, QVA_t qva, ARGV_const_t argv)
Verify package install.
const void * fnpyKey
Definition: rpmtypes.h:75
rpmfileAttrs qva_fflags
Definition: rpmcli.h:181
rpmInstallFlags installInterfaceFlags
Definition: rpmcli.h:347
struct rpmInstallArguments_s rpmIArgs
const char * rpmcliRootDir
struct poptOption rpmcliAllPoptTable[]
Popt option table for options shared by all modes and executables.
char * qva_queryFormat
Definition: rpmcli.h:185
char *const * ARGV_const_t
Definition: argv.h:18
rpmInstallFlags_e
Bit(s) to control rpmInstall() operation.
Definition: rpmcli.h:283
rpmQueryFlags_e
Bit(s) to control rpmQuery() operation, stored in qva_flags.
Definition: rpmcli.h:111
Describe database command line requests.
Definition: rpmcli.h:344
void rpmcliConfigured(void)
Make sure that rpm configuration has been read.
struct poptOption rpmVerifyPoptTable[]
rpmFlags rpmInstallFlags
Definition: rpmcli.h:298
int(* QSpecF_t)(rpmts ts, QVA_t qva, const char *arg)
Function to query spec file.
Definition: rpmcli.h:172
rpmFlags rpmfileAttrs
Definition: rpmfiles.h:65
int rpmInstall(rpmts ts, struct rpmInstallArguments_s *ia, ARGV_t fileArgv)
Install/upgrade/freshen/reinstall binary rpm package.
void * rpmShowProgress(const void *arg, const rpmCallbackType what, const rpm_loff_t amount, const rpm_loff_t total, fnpyKey key, void *data)
The rpm CLI generic transaction callback handler.
int rpmcliArgIter(rpmts ts, QVA_t qva, ARGV_const_t argv)
Iterate over query/verify arg list.
rpmFlags rpmtransFlags
Definition: rpmts.h:59
int rpmcliImportPubkeys(rpmts ts, ARGV_const_t argv)
Import public key(s) to rpm keyring.
uint64_t rpm_loff_t
Definition: rpmtypes.h:51
int rpmVerifySignatures(QVA_t qva, rpmts ts, FD_t fd, const char *fn)
Check package and header signatures.