rpm  4.18.2
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/argv.h>
19 
20 #ifdef __cplusplus
21 extern "C" {
22 #endif
23 
27 extern struct poptOption rpmcliAllPoptTable[];
28 
29 extern const char * rpmcliPipeOutput;
30 
31 extern const char * rpmcliRcfile;
32 
33 extern const char * rpmcliRootDir;
34 
42 poptContext
43 rpmcliInit(int argc, char *const argv[], struct poptOption * optionsTable);
44 
49 void rpmcliConfigured(void);
50 
56 poptContext
57 rpmcliFini(poptContext optCon);
58 
62 #define RPMCLI_POPT_NODEPS -1025
63 #define RPMCLI_POPT_FORCE -1026
64 #define RPMCLI_POPT_NOMD5 -1027
65 #define RPMCLI_POPT_NOFILEDIGEST -1027 /* same as obsolete RPMCLI_POPT_NOMD5 */
66 #define RPMCLI_POPT_NOSCRIPTS -1028
67 #define RPMCLI_POPT_NOSIGNATURE -1029
68 #define RPMCLI_POPT_NODIGEST -1030
69 #define RPMCLI_POPT_NOHDRCHK -1031
70 #define RPMCLI_POPT_NOCONTEXTS -1032
71 #define RPMCLI_POPT_NOCAPS -1033
72 #define RPMCLI_POPT_TARGETPLATFORM -1034
73 
74 /* ==================================================================== */
105 };
106 
108 
115  /* bits 0-14 unused */
116  /* bits 15-18 reserved for rpmVerifyFlags */
117  /* bits 19-21 unused */
118  QUERY_FOR_LIST = (1 << 23),
119  QUERY_FOR_STATE = (1 << 24),
120  /* bits 25-26 unused */
121  QUERY_FOR_DUMPFILES = (1 << 27),
122 };
123 
125 
126 #define _QUERY_FOR_BITS \
127  (QUERY_FOR_LIST|QUERY_FOR_STATE|QUERY_FOR_DUMPFILES)
128 
132 extern rpmQueryFlags rpmcliQueryFlags;
133 
135 
136 extern int rpmcliVfyLevelMask;
137 
140 typedef struct rpmQVKArguments_s * QVA_t;
141 
150 typedef int (*QVF_t) (QVA_t qva, rpmts ts, Header h);
151 
160 typedef int (*QSpecF_t) (rpmts ts, QVA_t qva, const char * arg);
161 
166  rpmQVSources qva_source;
168  rpmQueryFlags qva_flags;
177  char qva_mode;
185 };
186 
189 extern struct rpmQVKArguments_s rpmQVKArgs;
190 
193 extern struct poptOption rpmQVSourcePoptTable[];
194 
197 extern struct poptOption rpmQVFilePoptTable[];
198 
201 extern struct poptOption rpmQueryPoptTable[];
202 
205 extern struct poptOption rpmVerifyPoptTable[];
206 
211 void rpmDisplayQueryTags(FILE * fp);
212 
221 int showQueryPackage(QVA_t qva, rpmts ts, Header h);
222 
230 int rpmcliArgIter(rpmts ts, QVA_t qva, ARGV_const_t argv);
231 
240 int rpmcliQuery(rpmts ts, QVA_t qva, ARGV_const_t argv);
241 
249 int showVerifyPackage(QVA_t qva, rpmts ts, Header h);
250 
259 int rpmVerifySignatures(QVA_t qva, rpmts ts, FD_t fd, const char * fn);
260 
266  /* bits 1-14 unused */
267  VERIFY_CONTEXTS = (1 << 15),
268  VERIFY_FILES = (1 << 16),
269  VERIFY_DEPS = (1 << 17),
270  VERIFY_SCRIPT = (1 << 18),
271 };
272 
274 
275 #define VERIFY_ALL \
276  ( VERIFY_FILES | VERIFY_DEPS | VERIFY_SCRIPT )
277 
286 int rpmcliVerify(rpmts ts, QVA_t qva, ARGV_const_t argv);
287 
288 /* ==================================================================== */
290 /* --- install/upgrade/erase modes */
291 
297  INSTALL_PERCENT = (1 << 0),
298  INSTALL_HASH = (1 << 1),
299  INSTALL_NODEPS = (1 << 2),
300  INSTALL_NOORDER = (1 << 3),
301  INSTALL_LABEL = (1 << 4),
302  INSTALL_UPGRADE = (1 << 5),
303  INSTALL_FRESHEN = (1 << 6),
304  INSTALL_INSTALL = (1 << 7),
305  INSTALL_ERASE = (1 << 8),
306  INSTALL_ALLMATCHES = (1 << 9),
307  INSTALL_REINSTALL = (1 << 10),
308  INSTALL_RESTORE = (1 << 11),
309 };
310 
312 
316 #define UNINSTALL_NONE INSTALL_NONE
317 #define UNINSTALL_NODEPS INSTALL_NODEPS
318 #define UNINSTALL_ALLMATCHES INSTALL_ALLMATCHES
319 
334 void * rpmShowProgress(const void * arg,
335  const rpmCallbackType what,
336  const rpm_loff_t amount,
337  const rpm_loff_t total,
338  fnpyKey key,
339  void * data);
340 
349 int rpmInstallSource(rpmts ts, const char * arg,
350  char ** specFilePtr,
351  char ** cookie);
352 
353 
360  rpmInstallFlags installInterfaceFlags;
362  int noDeps;
363  int incldocs;
365  char * prefix;
366 };
367 
377 int rpmInstall(rpmts ts, struct rpmInstallArguments_s * ia, ARGV_t fileArgv);
378 
387 int rpmErase(rpmts ts, struct rpmInstallArguments_s * ia, ARGV_const_t argv);
388 
396 int rpmRestore(rpmts ts, struct rpmInstallArguments_s * ia, ARGV_const_t argv);
397 
400 extern struct rpmInstallArguments_s rpmIArgs;
401 
404 extern struct poptOption rpmInstallPoptTable[];
405 
406 /* ==================================================================== */
415 
423 
424 #ifdef __cplusplus
425 }
426 #endif
427 
428 #endif /* H_RPMCLI */
rpmfileAttrs qva_incattr
Definition: rpmcli.h:169
const char * rpmcliRcfile
enum rpmCallbackType_e rpmCallbackType
Bit(s) to identify progress callbacks.
struct rpmQVKArguments_s * QVA_t
Definition: rpmcli.h:140
int qva_sourceCount
Definition: rpmcli.h:167
char ** ARGV_t
Definition: argv.h:17
rpmFlags rpmVerifyFlags
Definition: rpmcli.h:273
rpmprobFilterFlags probFilter
Definition: rpmcli.h:359
File info set iterator API.
struct poptOption rpmQVFilePoptTable[]
void rpmDisplayQueryTags(FILE *fp)
Display list of tags that can be used in –queryformat.
rpmFlags rpmQVSources
Definition: rpmcli.h:107
int rpmErase(rpmts ts, struct rpmInstallArguments_s *ia, ARGV_const_t argv)
Erase binary rpm package.
rpmQueryFlags qva_flags
Definition: rpmcli.h:168
rpmQVSources_e
Query/Verify argument qualifiers.
Definition: rpmcli.h:81
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.
int rpmcliVfyLevelMask
rpmRelocation * relocations
Definition: rpmcli.h:364
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:35
Describe query/verify/signature command line operation.
Definition: rpmcli.h:165
QSpecF_t qva_specQuery
Definition: rpmcli.h:175
We pass these around as an array with a sentinel.
Definition: rpmfiles.h:129
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:174
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:124
struct _FD_s * FD_t
RPM IO file descriptor type.
Definition: rpmtypes.h:99
int(* QVF_t)(QVA_t qva, rpmts ts, Header h)
Function to display iterator matches.
Definition: rpmcli.h:150
rpmtransFlags transFlags
Definition: rpmcli.h:358
(un)install callbacks
struct poptOption rpmQVSourcePoptTable[]
rpmQVSources qva_source
Definition: rpmcli.h:166
struct headerToken_s * Header
RPM header and data retrieval types.
Definition: rpmtypes.h:24
A couple utils for URL Manipulation.
rpmVerifyFlags_e
Bit(s) to control rpmcliVerify() operation.
Definition: rpmcli.h:264
int rpmcliVerify(rpmts ts, QVA_t qva, ARGV_const_t argv)
Verify package install.
const void * fnpyKey
Definition: rpmtypes.h:76
rpmInstallFlags installInterfaceFlags
Definition: rpmcli.h:360
rpmFlags rpmVSFlags
Definition: rpmts.h:112
rpmVerifyAttrs qva_ofvattr
Definition: rpmcli.h:172
struct rpmInstallArguments_s rpmIArgs
rpmVSFlags rpmcliVSFlags
const char * rpmcliRootDir
struct poptOption rpmcliAllPoptTable[]
Popt option table for options shared by all modes and executables.
rpmfileAttrs qva_excattr
Definition: rpmcli.h:170
char * qva_queryFormat
Definition: rpmcli.h:176
char *const * ARGV_const_t
Definition: argv.h:18
rpmInstallFlags_e
Bit(s) to control rpmInstall() operation.
Definition: rpmcli.h:295
rpmQueryFlags_e
Bit(s) to control rpmQuery() operation, stored in qva_flags.
Definition: rpmcli.h:113
Describe database command line requests.
Definition: rpmcli.h:357
Structures and prototypes used for an "rpmts" transaction set.
void rpmcliConfigured(void)
Make sure that rpm configuration has been read.
struct poptOption rpmVerifyPoptTable[]
rpmFlags rpmInstallFlags
Definition: rpmcli.h:311
int(* QSpecF_t)(rpmts ts, QVA_t qva, const char *arg)
Function to query spec file.
Definition: rpmcli.h:160
Argument Manipulation API.
rpmFlags rpmfileAttrs
Definition: rpmfiles.h:64
int rpmRestore(rpmts ts, struct rpmInstallArguments_s *ia, ARGV_const_t argv)
Restore file metadata (perms etc) of installed package(s).
Macro API.
rpmFlags rpmVerifyAttrs
Definition: rpmfiles.h:94
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:60
In Memoriam: Steve Taylor staylor@redhat.com was here, now he's not.
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.