rpm  4.13.0
rpmcli.h
Go to the documentation of this file.
1 #ifndef H_RPMCLI
2 #define H_RPMCLI
3 
8 #include <popt.h>
9 
10 #include <rpm/rpmlib.h>
11 #include <rpm/rpmurl.h>
12 #include <rpm/rpmmacro.h>
13 #include <rpm/rpmcallback.h>
14 #include <rpm/rpmts.h>
15 #include <rpm/rpmfi.h>
16 #include <rpm/rpmvf.h>
17 #include <rpm/argv.h>
18 
19 #ifdef __cplusplus
20 extern "C" {
21 #endif
22 
26 extern struct poptOption rpmcliAllPoptTable[];
27 
28 extern const char * rpmcliPipeOutput;
29 
30 extern const char * rpmcliRcfile;
31 
32 extern const char * rpmcliRootDir;
33 
41 poptContext
42 rpmcliInit(int argc, char *const argv[], struct poptOption * optionsTable);
43 
48 void rpmcliConfigured(void);
49 
55 poptContext
56 rpmcliFini(poptContext optCon);
57 
61 #define RPMCLI_POPT_NODEPS -1025
62 #define RPMCLI_POPT_FORCE -1026
63 #define RPMCLI_POPT_NOMD5 -1027
64 #define RPMCLI_POPT_NOFILEDIGEST -1027 /* same as obsolete RPMCLI_POPT_NOMD5 */
65 #define RPMCLI_POPT_NOSCRIPTS -1028
66 #define RPMCLI_POPT_NOSIGNATURE -1029
67 #define RPMCLI_POPT_NODIGEST -1030
68 #define RPMCLI_POPT_NOHDRCHK -1031
69 #define RPMCLI_POPT_NOCONTEXTS -1032
70 
71 /* ==================================================================== */
98 };
99 
101 
108  QUERY_MD5 = (1 << 0),
109  QUERY_FILEDIGEST = (1 << 0),
110  QUERY_SIZE = (1 << 1),
111  QUERY_LINKTO = (1 << 2),
112  QUERY_USER = (1 << 3),
113  QUERY_GROUP = (1 << 4),
114  QUERY_MTIME = (1 << 5),
115  QUERY_MODE = (1 << 6),
116  QUERY_RDEV = (1 << 7),
117  /* bits 8-14 unused, reserved for rpmVerifyAttrs */
118  QUERY_CONTEXTS = (1 << 15),
119  QUERY_FILES = (1 << 16),
120  QUERY_DEPS = (1 << 17),
121  QUERY_SCRIPT = (1 << 18),
122  QUERY_DIGEST = (1 << 19),
123  QUERY_SIGNATURE = (1 << 20),
124  QUERY_PATCHES = (1 << 21),
125  QUERY_HDRCHK = (1 << 22),
126  QUERY_FOR_LIST = (1 << 23),
127  QUERY_FOR_STATE = (1 << 24),
128  QUERY_FOR_DOCS = (1 << 25),
129  QUERY_FOR_CONFIG = (1 << 26),
130  QUERY_FOR_DUMPFILES = (1 << 27),
131  QUERY_FOR_LICENSE = (1 << 28)
132 };
133 
135 
136 #define _QUERY_FOR_BITS \
137  (QUERY_FOR_LIST|QUERY_FOR_STATE|QUERY_FOR_DOCS|QUERY_FOR_CONFIG|\
138  QUERY_FOR_LICENSE|QUERY_FOR_DUMPFILES)
139 
144 
147 typedef struct rpmQVKArguments_s * QVA_t;
148 
157 typedef int (*QVF_t) (QVA_t qva, rpmts ts, Header h);
158 
167 typedef int (*QSpecF_t) (rpmts ts, QVA_t qva, const char * arg);
168 
181  char qva_mode;
189 };
190 
193 extern struct rpmQVKArguments_s rpmQVKArgs;
194 
197 extern struct poptOption rpmQVSourcePoptTable[];
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 
269 int rpmcliVerify(rpmts ts, QVA_t qva, ARGV_const_t argv);
270 
271 /* ==================================================================== */
273 /* --- install/upgrade/erase modes */
274 
280  INSTALL_PERCENT = (1 << 0),
281  INSTALL_HASH = (1 << 1),
282  INSTALL_NODEPS = (1 << 2),
283  INSTALL_NOORDER = (1 << 3),
284  INSTALL_LABEL = (1 << 4),
285  INSTALL_UPGRADE = (1 << 5),
286  INSTALL_FRESHEN = (1 << 6),
287  INSTALL_INSTALL = (1 << 7),
288  INSTALL_ERASE = (1 << 8),
289  INSTALL_ALLMATCHES = (1 << 9),
290  INSTALL_REINSTALL = (1 << 10),
291 };
292 
294 
298 #define UNINSTALL_NONE INSTALL_NONE
299 #define UNINSTALL_NODEPS INSTALL_NODEPS
300 #define UNINSTALL_ALLMATCHES INSTALL_ALLMATCHES
301 
316 void * rpmShowProgress(const void * arg,
317  const rpmCallbackType what,
318  const rpm_loff_t amount,
319  const rpm_loff_t total,
320  fnpyKey key,
321  void * data);
322 
331 int rpmInstallSource(rpmts ts, const char * arg,
332  char ** specFilePtr,
333  char ** cookie);
334 
335 
344  int noDeps;
345  int incldocs;
347  char * prefix;
348 };
349 
359 int rpmInstall(rpmts ts, struct rpmInstallArguments_s * ia, ARGV_t fileArgv);
360 
369 int rpmErase(rpmts ts, struct rpmInstallArguments_s * ia, ARGV_const_t argv);
370 
373 extern struct rpmInstallArguments_s rpmIArgs;
374 
377 extern struct poptOption rpmInstallPoptTable[];
378 
379 /* ==================================================================== */
388 
396 
397 #ifdef __cplusplus
398 }
399 #endif
400 
401 #endif /* H_RPMCLI */
QUERY_LINKTO
@ QUERY_LINKTO
Definition: rpmcli.h:111
rpmFlags
uint32_t rpmFlags
Definition: rpmtypes.h:42
rpmcliArgIter
int rpmcliArgIter(rpmts ts, QVA_t qva, ARGV_const_t argv)
rpmQueryFlags_e
rpmQueryFlags_e
Definition: rpmcli.h:106
rpmQVSources_e
rpmQVSources_e
Definition: rpmcli.h:78
INSTALL_FRESHEN
@ INSTALL_FRESHEN
Definition: rpmcli.h:286
RPMQV_PKGID
@ RPMQV_PKGID
Definition: rpmcli.h:90
rpmQVSources
rpmFlags rpmQVSources
Definition: rpmcli.h:100
QUERY_FOR_CONFIG
@ QUERY_FOR_CONFIG
Definition: rpmcli.h:129
RPMQV_HDRID
@ RPMQV_HDRID
Definition: rpmcli.h:91
INSTALL_ALLMATCHES
@ INSTALL_ALLMATCHES
Definition: rpmcli.h:289
rpmQVKArguments_s::qva_fflags
rpmfileAttrs qva_fflags
Definition: rpmcli.h:176
rpmInstallArguments_s::probFilter
rpmprobFilterFlags probFilter
Definition: rpmcli.h:341
rpmInstallArguments_s::numRelocations
int numRelocations
Definition: rpmcli.h:343
INSTALL_NODEPS
@ INSTALL_NODEPS
Definition: rpmcli.h:282
QUERY_MODE
@ QUERY_MODE
Definition: rpmcli.h:115
QUERY_FILES
@ QUERY_FILES
Definition: rpmcli.h:119
QUERY_DEPS
@ QUERY_DEPS
Definition: rpmcli.h:120
rpmQVKArguments_s::qva_queryFormat
char * qva_queryFormat
Definition: rpmcli.h:180
rpmcliImportPubkeys
int rpmcliImportPubkeys(rpmts ts, ARGV_const_t argv)
Import public key(s) to rpm keyring.
ARGV_const_t
char *const * ARGV_const_t
Definition: argv.h:16
RPMQV_TRIGGEREDBY
@ RPMQV_TRIGGEREDBY
Definition: rpmcli.h:86
rpmInstallPoptTable
struct poptOption rpmInstallPoptTable[]
rpmErase
int rpmErase(rpmts ts, struct rpmInstallArguments_s *ia, ARGV_const_t argv)
RPMQV_SPECRPMS
@ RPMQV_SPECRPMS
Definition: rpmcli.h:88
INSTALL_NOORDER
@ INSTALL_NOORDER
Definition: rpmcli.h:283
RPMQV_RPM
@ RPMQV_RPM
Definition: rpmcli.h:82
INSTALL_UPGRADE
@ INSTALL_UPGRADE
Definition: rpmcli.h:285
QUERY_USER
@ QUERY_USER
Definition: rpmcli.h:112
rpmShowProgress
void * rpmShowProgress(const void *arg, const rpmCallbackType what, const rpm_loff_t amount, const rpm_loff_t total, fnpyKey key, void *data)
rpmInstallArguments_s::relocations
rpmRelocation * relocations
Definition: rpmcli.h:346
QUERY_FILEDIGEST
@ QUERY_FILEDIGEST
Definition: rpmcli.h:109
rpmcliPipeOutput
const char * rpmcliPipeOutput
rpmts
struct rpmts_s * rpmts
Definition: rpmtypes.h:63
rpmIArgs
struct rpmInstallArguments_s rpmIArgs
INSTALL_NONE
@ INSTALL_NONE
Definition: rpmcli.h:279
rpmcliVerify
int rpmcliVerify(rpmts ts, QVA_t qva, ARGV_const_t argv)
rpmprobFilterFlags
rpmFlags rpmprobFilterFlags
Definition: rpmprob.h:34
QUERY_FOR_STATE
@ QUERY_FOR_STATE
Definition: rpmcli.h:127
rpmQVKArguments_s::qva_sourceCount
int qva_sourceCount
Definition: rpmcli.h:174
optionsTable
static struct poptOption optionsTable[]
Definition: rpmbuild.c:260
QUERY_GROUP
@ QUERY_GROUP
Definition: rpmcli.h:113
QUERY_SCRIPT
@ QUERY_SCRIPT
Definition: rpmcli.h:121
INSTALL_INSTALL
@ INSTALL_INSTALL
Definition: rpmcli.h:287
rpmcliFini
poptContext rpmcliFini(poptContext optCon)
RPMQV_WHATENHANCES
@ RPMQV_WHATENHANCES
Definition: rpmcli.h:97
rpmtransFlags
rpmFlags rpmtransFlags
Definition: rpmts.h:58
rpm_loff_t
uint64_t rpm_loff_t
Definition: rpmtypes.h:51
RPMQV_WHATRECOMMENDS
@ RPMQV_WHATRECOMMENDS
Definition: rpmcli.h:94
rpmcliVerifySignatures
int rpmcliVerifySignatures(rpmts ts, ARGV_const_t argv)
INSTALL_LABEL
@ INSTALL_LABEL
Definition: rpmcli.h:284
rpmQVKArgs
struct rpmQVKArguments_s rpmQVKArgs
rpmInstallArguments_s
Definition: rpmcli.h:339
RPMQV_WHATREQUIRES
@ RPMQV_WHATREQUIRES
Definition: rpmcli.h:85
QUERY_FOR_DOCS
@ QUERY_FOR_DOCS
Definition: rpmcli.h:128
rpmQVKArguments_s
Definition: rpmcli.h:172
INSTALL_REINSTALL
@ INSTALL_REINSTALL
Definition: rpmcli.h:290
ARGV_t
char ** ARGV_t
Definition: argv.h:15
rpmInstallArguments_s::transFlags
rpmtransFlags transFlags
Definition: rpmcli.h:340
QVF_t
int(* QVF_t)(QVA_t qva, rpmts ts, Header h)
Definition: rpmcli.h:157
rpmQVKArguments_s::qva_source
rpmQVSources qva_source
Definition: rpmcli.h:173
rpmcliRootDir
const char * rpmcliRootDir
showVerifyPackage
int showVerifyPackage(QVA_t qva, rpmts ts, Header h)
QUERY_MTIME
@ QUERY_MTIME
Definition: rpmcli.h:114
QUERY_FOR_LICENSE
@ QUERY_FOR_LICENSE
Definition: rpmcli.h:131
rpmQVKArguments_s::qva_showPackage
QVF_t qva_showPackage
Definition: rpmcli.h:178
showQueryPackage
int showQueryPackage(QVA_t qva, rpmts ts, Header h)
rpmQueryPoptTable
struct poptOption rpmQueryPoptTable[]
rpmInstallArguments_s::installInterfaceFlags
rpmInstallFlags installInterfaceFlags
Definition: rpmcli.h:342
rpmCallbackType
enum rpmCallbackType_e rpmCallbackType
Bit(s) to identify progress callbacks.
RPMQV_PATH
@ RPMQV_PATH
Definition: rpmcli.h:80
QUERY_FOR_DUMPFILES
@ QUERY_FOR_DUMPFILES
Definition: rpmcli.h:130
QSpecF_t
int(* QSpecF_t)(rpmts ts, QVA_t qva, const char *arg)
Definition: rpmcli.h:167
rpmcliConfigured
void rpmcliConfigured(void)
RPMQV_ALL
@ RPMQV_ALL
Definition: rpmcli.h:81
INSTALL_HASH
@ INSTALL_HASH
Definition: rpmcli.h:281
RPMQV_SPECSRPM
@ RPMQV_SPECSRPM
Definition: rpmcli.h:93
QUERY_RDEV
@ QUERY_RDEV
Definition: rpmcli.h:116
rpmInstallArguments_s::noDeps
int noDeps
Definition: rpmcli.h:344
RPMQV_WHATSUPPLEMENTS
@ RPMQV_WHATSUPPLEMENTS
Definition: rpmcli.h:96
QUERY_PATCHES
@ QUERY_PATCHES
Definition: rpmcli.h:124
RPMQV_SPECFILE
@ RPMQV_SPECFILE
Definition: rpmcli.h:89
RPMQV_WHATPROVIDES
@ RPMQV_WHATPROVIDES
Definition: rpmcli.h:84
QUERY_SIGNATURE
@ QUERY_SIGNATURE
Definition: rpmcli.h:123
QUERY_FOR_LIST
@ QUERY_FOR_LIST
Definition: rpmcli.h:126
rpmRelocation_s
We pass these around as an array with a sentinel.
Definition: rpmfiles.h:94
rpmDisplayQueryTags
void rpmDisplayQueryTags(FILE *fp)
QUERY_SIZE
@ QUERY_SIZE
Definition: rpmcli.h:110
QUERY_HDRCHK
@ QUERY_HDRCHK
Definition: rpmcli.h:125
RPMQV_GROUP
@ RPMQV_GROUP
Definition: rpmcli.h:83
rpmQVKArguments_s::qva_flags
rpmQueryFlags qva_flags
Definition: rpmcli.h:175
rpmQVSourcePoptTable
struct poptOption rpmQVSourcePoptTable[]
rpmInstallSource
int rpmInstallSource(rpmts ts, const char *arg, char **specFilePtr, char **cookie)
RPMQV_TID
@ RPMQV_TID
Definition: rpmcli.h:92
Header
struct headerToken_s * Header
Definition: rpmtypes.h:24
rpmQVKArguments_s::qva_mode
char qva_mode
Definition: rpmcli.h:181
rpmInstallArguments_s::prefix
char * prefix
Definition: rpmcli.h:347
QUERY_CONTEXTS
@ QUERY_CONTEXTS
Definition: rpmcli.h:118
RPMQV_WHATSUGGESTS
@ RPMQV_WHATSUGGESTS
Definition: rpmcli.h:95
RPMQV_PACKAGE
@ RPMQV_PACKAGE
Definition: rpmcli.h:79
QUERY_FOR_DEFAULT
@ QUERY_FOR_DEFAULT
Definition: rpmcli.h:107
rpmcliQuery
int rpmcliQuery(rpmts ts, QVA_t qva, ARGV_const_t argv)
rpmInstallFlags
rpmFlags rpmInstallFlags
Definition: rpmcli.h:293
rpmcliInit
poptContext rpmcliInit(int argc, char *const argv[], struct poptOption *optionsTable)
QUERY_MD5
@ QUERY_MD5
Definition: rpmcli.h:108
rpmcliQueryFlags
rpmQueryFlags rpmcliQueryFlags
QVA_t
struct rpmQVKArguments_s * QVA_t
Definition: rpmcli.h:147
rpmcliAllPoptTable
struct poptOption rpmcliAllPoptTable[]
rpmVerifyPoptTable
struct poptOption rpmVerifyPoptTable[]
rpmfileAttrs
rpmFlags rpmfileAttrs
Definition: rpmfiles.h:65
QUERY_DIGEST
@ QUERY_DIGEST
Definition: rpmcli.h:122
INSTALL_ERASE
@ INSTALL_ERASE
Definition: rpmcli.h:288
rpmVerifySignatures
int rpmVerifySignatures(QVA_t qva, rpmts ts, FD_t fd, const char *fn)
Check package and header signatures.
fnpyKey
const typedef void * fnpyKey
Definition: rpmtypes.h:75
rpmInstallArguments_s::incldocs
int incldocs
Definition: rpmcli.h:345
INSTALL_PERCENT
@ INSTALL_PERCENT
Definition: rpmcli.h:280
RPMQV_DBOFFSET
@ RPMQV_DBOFFSET
Definition: rpmcli.h:87
FD_t
struct _FD_s * FD_t
Definition: rpmtypes.h:98
rpmInstall
int rpmInstall(rpmts ts, struct rpmInstallArguments_s *ia, ARGV_t fileArgv)
rpmInstallFlags_e
rpmInstallFlags_e
Definition: rpmcli.h:278
rpmQueryFlags
rpmFlags rpmQueryFlags
Definition: rpmcli.h:134
rpmcliRcfile
const char * rpmcliRcfile
rpmQVKArguments_s::qva_specQuery
QSpecF_t qva_specQuery
Definition: rpmcli.h:179