rpmcli.h File Reference
`#include <popt.h>`
`#include <rpm/rpmlib.h>`
`#include <rpm/rpmurl.h>`
`#include <rpm/rpmmacro.h>`
`#include <rpm/rpmcallback.h>`
`#include <rpm/rpmts.h>`
`#include <rpm/rpmfi.h>`
`#include <rpm/rpmvf.h>`
`#include <rpm/argv.h>`
Include dependency graph for rpmcli.h:

Go to the source code of this file.

## Data Structures

struct | rpmQVKArguments_s
| Describe query/verify/signature command line operation. More...
struct | rpmInstallArguments_s
| Describe database command line requests. More...

## Macros

#define | RPMCLI_POPT_NODEPS -1025
| Common/global popt tokens used for command line option tables. More...
#define | RPMCLI_POPT_FORCE -1026
#define | RPMCLI_POPT_NOMD5 -1027
#define | RPMCLI_POPT_NOFILEDIGEST -1027 /* same as obsolete RPMCLI_POPT_NOMD5 */
#define | RPMCLI_POPT_NOSCRIPTS -1028
#define | RPMCLI_POPT_NOSIGNATURE -1029
#define | RPMCLI_POPT_NODIGEST -1030
#define | RPMCLI_POPT_NOHDRCHK -1031
#define | RPMCLI_POPT_NOCONTEXTS -1032

## Functions

poptContext | rpmcliInit (int argc, char *const argv[], struct poptOption *optionsTable)
| Initialize most everything needed by an rpm CLI executable context. More...
void | rpmcliConfigured (void)
| Make sure that rpm configuration has been read. More...
poptContext | rpmcliFini (poptContext optCon)
| Destroy most everything needed by an rpm CLI executable context. More...
RPMK
int | rpmcliImportPubkeys (rpmts ts, ARGV_const_t argv)
| Import public key(s) to rpm keyring. More...
int | rpmcliVerifySignatures (rpmts ts, ARGV_const_t argv)
| Verify package signatures. More...

## Variables

struct poptOption | rpmcliAllPoptTable []
| Popt option table for options shared by all modes and executables. More...
const char * | rpmcliPipeOutput
const char * | rpmcliRcfile
const char * | rpmcliRootDir

## RPMQV

#define | _QUERY_FOR_BITS
enum | rpmQVSources_e { RPMQV_PACKAGE = 0, RPMQV_PATH, RPMQV_ALL, RPMQV_RPM, RPMQV_GROUP, RPMQV_WHATPROVIDES, RPMQV_WHATREQUIRES, RPMQV_TRIGGEREDBY, RPMQV_DBOFFSET, RPMQV_SPECRPMS, RPMQV_SPECFILE = RPMQV_SPECRPMS, RPMQV_PKGID, RPMQV_HDRID, RPMQV_TID, RPMQV_SPECSRPM, RPMQV_WHATRECOMMENDS, RPMQV_WHATSUGGESTS, RPMQV_WHATSUPPLEMENTS, RPMQV_WHATENHANCES }
| Query/Verify argument qualifiers. More...

enum

rpmQueryFlags_e {
QUERY_FOR_DEFAULT = 0, QUERY_MD5 = (1 << 0), QUERY_FILEDIGEST = (1 << 0), QUERY_SIZE = (1 << 1),
QUERY_LINKTO = (1 << 2), QUERY_USER = (1 << 3), QUERY_GROUP = (1 << 4), QUERY_MTIME = (1 << 5),
QUERY_MODE = (1 << 6), QUERY_RDEV = (1 << 7), QUERY_CONTEXTS = (1 << 15), QUERY_FILES = (1 << 16),
QUERY_DEPS = (1 << 17), QUERY_SCRIPT = (1 << 18), QUERY_DIGEST = (1 << 19), QUERY_SIGNATURE = (1 << 20),
QUERY_PATCHES = (1 << 21), QUERY_HDRCHK = (1 << 22), QUERY_FOR_LIST = (1 << 23), QUERY_FOR_STATE = (1 << 24),
QUERY_FOR_DOCS = (1 << 25), QUERY_FOR_CONFIG = (1 << 26), QUERY_FOR_DUMPFILES = (1 << 27), QUERY_FOR_LICENSE = (1 << 28)
}

| Bit(s) to control rpmQuery() operation, stored in qva_flags. More...
typedef rpmFlags | rpmQVSources
typedef rpmFlags | rpmQueryFlags
typedef struct rpmQVKArguments_s * | QVA_t
typedef int(* | QVF_t) (QVA_t qva, rpmts ts, Header h)
| Function to display iterator matches. More...
typedef int(* | QSpecF_t) (rpmts ts, QVA_t qva, const char *arg)
| Function to query spec file. More...
rpmQueryFlags | rpmcliQueryFlags
| Bit(s) from common command line options. More...
struct rpmQVKArguments_s | rpmQVKArgs
struct poptOption | rpmQVSourcePoptTable []
struct poptOption | rpmQueryPoptTable []
struct poptOption | rpmVerifyPoptTable []
void | rpmDisplayQueryTags (FILE *fp)
| Display list of tags that can be used in –queryformat. More...
int | showQueryPackage (QVA_t qva, rpmts ts, Header h)
| Display results of package query. More...
int | rpmcliArgIter (rpmts ts, QVA_t qva, ARGV_const_t argv)
| Iterate over query/verify arg list. More...
int | rpmcliQuery (rpmts ts, QVA_t qva, ARGV_const_t argv)
| Display package information. More...
int | showVerifyPackage (QVA_t qva, rpmts ts, Header h)
| Display results of package verify. More...
int | rpmVerifySignatures (QVA_t qva, rpmts ts, FD_t fd, const char *fn)
| Check package and header signatures. More...
int | rpmcliVerify (rpmts ts, QVA_t qva, ARGV_const_t argv)
| Verify package install. More...

## RPMEIU

#define | UNINSTALL_NONE INSTALL_NONE
| Bit(s) to control rpmErase() operation. More...
#define | UNINSTALL_NODEPS INSTALL_NODEPS
#define | UNINSTALL_ALLMATCHES INSTALL_ALLMATCHES
enum | rpmInstallFlags_e { INSTALL_NONE = 0, INSTALL_PERCENT = (1 << 0), INSTALL_HASH = (1 << 1), INSTALL_NODEPS = (1 << 2), INSTALL_NOORDER = (1 << 3), INSTALL_LABEL = (1 << 4), INSTALL_UPGRADE = (1 << 5), INSTALL_FRESHEN = (1 << 6), INSTALL_INSTALL = (1 << 7), INSTALL_ERASE = (1 << 8), INSTALL_ALLMATCHES = (1 << 9), INSTALL_REINSTALL = (1 << 10) }
| Bit(s) to control rpmInstall() operation. More...
typedef rpmFlags | rpmInstallFlags
struct rpmInstallArguments_s | rpmIArgs
struct poptOption | rpmInstallPoptTable []
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. More...
int | rpmInstallSource (rpmts ts, const char *arg, char **specFilePtr, char **cookie)
| Install source rpm package. More...
int | rpmInstall (rpmts ts, struct rpmInstallArguments_s *ia, ARGV_t fileArgv)
| Install/upgrade/freshen/reinstall binary rpm package. More...
int | rpmErase (rpmts ts, struct rpmInstallArguments_s *ia, ARGV_const_t argv)
| Erase binary rpm package. More...

## Macro Definition Documentation

#define _QUERY_FOR_BITS

Value:
(QUERY_FOR_LIST|QUERY_FOR_STATE|QUERY_FOR_DOCS|QUERY_FOR_CONFIG|\
QUERY_FOR_LICENSE|QUERY_FOR_DUMPFILES)
QUERY_FOR_DUMPFILES
Definition: rpmcli.h:130
QUERY_FOR_DOCS
Definition: rpmcli.h:128
QUERY_FOR_LIST
Definition: rpmcli.h:126
QUERY_FOR_STATE
Definition: rpmcli.h:127
QUERY_FOR_CONFIG
Definition: rpmcli.h:129

Definition at line 136 of file rpmcli.h.

#define RPMCLI_POPT_FORCE -1026

Definition at line 62 of file rpmcli.h.

Referenced by buildArgCallback().

#define RPMCLI_POPT_NOCONTEXTS -1032

Definition at line 69 of file rpmcli.h.

#define RPMCLI_POPT_NODEPS -1025

Common/global popt tokens used for command line option tables.

Definition at line 61 of file rpmcli.h.

#define RPMCLI_POPT_NODIGEST -1030

Definition at line 67 of file rpmcli.h.

#define RPMCLI_POPT_NOFILEDIGEST -1027 /* same as obsolete RPMCLI_POPT_NOMD5 */

Definition at line 64 of file rpmcli.h.

#define RPMCLI_POPT_NOHDRCHK -1031

Definition at line 68 of file rpmcli.h.

#define RPMCLI_POPT_NOMD5 -1027

Definition at line 63 of file rpmcli.h.

#define RPMCLI_POPT_NOSCRIPTS -1028

Definition at line 65 of file rpmcli.h.

#define RPMCLI_POPT_NOSIGNATURE -1029

Definition at line 66 of file rpmcli.h.

#define UNINSTALL_ALLMATCHES INSTALL_ALLMATCHES

Definition at line 300 of file rpmcli.h.

Referenced by main().

#define UNINSTALL_NODEPS INSTALL_NODEPS

Definition at line 299 of file rpmcli.h.

Referenced by main().

#define UNINSTALL_NONE INSTALL_NONE

Bit(s) to control rpmErase() operation.

Definition at line 298 of file rpmcli.h.

## Typedef Documentation

typedef int(* QSpecF_t) (rpmts ts, QVA_t qva, const char *arg)

Function to query spec file.

Parameters

  ts | transaction set
  qva | parsed query/verify options
  arg | query argument

Returns
  0 on success

Definition at line 167 of file rpmcli.h.

typedef struct rpmQVKArguments_s* QVA_t

Definition at line 147 of file rpmcli.h.

typedef int(* QVF_t) (QVA_t qva, rpmts ts, Header h)

Function to display iterator matches.

Parameters

  qva | parsed query/verify options
  ts | transaction set
  h | header to use for query/verify

Returns
  0 on success

Definition at line 157 of file rpmcli.h.

typedef rpmFlags rpmInstallFlags

Definition at line 293 of file rpmcli.h.

typedef rpmFlags rpmQueryFlags

Definition at line 134 of file rpmcli.h.

typedef rpmFlags rpmQVSources

Definition at line 100 of file rpmcli.h.

## Enumeration Type Documentation

enum rpmInstallFlags_e

Bit(s) to control rpmInstall() operation.

Enumerator
INSTALL_NONE |
INSTALL_PERCENT | from –percent
INSTALL_HASH | from –hash
INSTALL_NODEPS | from –nodeps
INSTALL_NOORDER | from –noorder
INSTALL_LABEL | from –verbose (notify)
INSTALL_UPGRADE | from –upgrade
INSTALL_FRESHEN | from –freshen
INSTALL_INSTALL | from –install
INSTALL_ERASE | from –erase
INSTALL_ALLMATCHES | from –allmatches
INSTALL_REINSTALL | from –reinstall

Definition at line 278 of file rpmcli.h.

enum rpmQueryFlags_e

Bit(s) to control rpmQuery() operation, stored in qva_flags.

Todo:
  Merge rpmQueryFlags, rpmVerifyFlags, and rpmVerifyAttrs?.

Enumerator
QUERY_FOR_DEFAULT |
QUERY_MD5 | from –nomd5
QUERY_FILEDIGEST | from –nofiledigest, same as –nomd5
QUERY_SIZE | from –nosize
QUERY_LINKTO | from –nolink
QUERY_USER | from –nouser)
QUERY_GROUP | from –nogroup)
QUERY_MTIME | from –nomtime)
QUERY_MODE | from –nomode)
QUERY_RDEV | from –nodev
QUERY_CONTEXTS | verify: from –nocontexts
QUERY_FILES | verify: from –nofiles
QUERY_DEPS | verify: from –nodeps
QUERY_SCRIPT | verify: from –noscripts
QUERY_DIGEST | verify: from –nodigest
QUERY_SIGNATURE | verify: from –nosignature
QUERY_PATCHES | verify: from –nopatches
QUERY_HDRCHK | verify: from –nohdrchk
QUERY_FOR_LIST | query: from –list
QUERY_FOR_STATE | query: from –state
QUERY_FOR_DOCS | query: from –docfiles
QUERY_FOR_CONFIG | query: from –configfiles
QUERY_FOR_DUMPFILES | query: from –dump
QUERY_FOR_LICENSE | query: from –licensefiles

Definition at line 106 of file rpmcli.h.

enum rpmQVSources_e

Query/Verify argument qualifiers.

Todo:
  Reassign to tag values.

Enumerator
RPMQV_PACKAGE | ... from package name db search.
RPMQV_PATH | ... from file path db search.
RPMQV_ALL | ... from each installed package.
RPMQV_RPM | ... from reading binary rpm package.
RPMQV_GROUP | ... from group db search.
RPMQV_WHATPROVIDES | ... from provides db search.
RPMQV_WHATREQUIRES | ... from requires db search.
RPMQV_TRIGGEREDBY | ... from trigger db search.
RPMQV_DBOFFSET | ... from database header instance.
RPMQV_SPECRPMS | ... from spec file binaries (query only).
RPMQV_SPECFILE | ... backwards compatibility
RPMQV_PKGID | ... from package id (header+payload MD5).
RPMQV_HDRID | ... from header id (immutable header SHA1).
RPMQV_TID | ... from install transaction id (time stamp).
RPMQV_SPECSRPM | ... from spec file source (query only).
RPMQV_WHATRECOMMENDS | ... from recommends db search.
RPMQV_WHATSUGGESTS | ... from suggests db search.
RPMQV_WHATSUPPLEMENTS | ... from supplements db search.
RPMQV_WHATENHANCES | ... from enhances db search.

Definition at line 78 of file rpmcli.h.

## Function Documentation

int rpmcliArgIter | ( | rpmts | ts,
|  | QVA_t | qva,
|  | ARGV_const_t | argv
| ) |  |

Iterate over query/verify arg list.

Parameters

  ts | transaction set
  qva | parsed query/verify options
  argv | query argument(s) (or NULL)

Returns
  0 on success, else no. of failures

void rpmcliConfigured | ( | void |  | ) |

Make sure that rpm configuration has been read.

Warning
  Options like –rcfile and –verbose must precede callers option.

poptContext rpmcliFini | ( | poptContext | optCon | ) |

Destroy most everything needed by an rpm CLI executable context.

Parameters

  optCon | popt context

Returns
  NULL always

Referenced by main().

int rpmcliImportPubkeys | ( | rpmts | ts,
|  | ARGV_const_t | argv
| ) |  |

Import public key(s) to rpm keyring.

Parameters

  ts | transaction set
  argv | array of pubkey path arguments (NULL terminated)

Returns
  0 on success

Referenced by main().

poptContext rpmcliInit | ( | int | argc,
|  | char *const | argv[],
|  | struct poptOption * | optionsTable
| ) |  |

Initialize most everything needed by an rpm CLI executable context.

Parameters

  argc | no. of args
  argv | arg array
  optionsTable | popt option table

Returns
  popt context (or NULL)

Referenced by main().

int rpmcliQuery | ( | rpmts | ts,
|  | QVA_t | qva,
|  | ARGV_const_t | argv
| ) |  |

Display package information.

Todo:
  hack: RPMQV_ALL can pass char ** arglist = NULL, not char * arg. Union?

Parameters

  ts | transaction set
  qva | parsed query/verify options
  argv | query argument(s) (or NULL)

Returns
  0 on success, else no. of failures

Referenced by main().

int rpmcliVerify | ( | rpmts | ts,
|  | QVA_t | qva,
|  | ARGV_const_t | argv
| ) |  |

Verify package install.

Todo:
  hack: RPMQV_ALL can pass char ** arglist = NULL, not char * arg. Union?

Parameters

  ts | transaction set
  qva | parsed query/verify options
  argv | verify argument(s) (or NULL)

Returns
  0 on success, else no. of failures

Referenced by main().

int rpmcliVerifySignatures | ( | rpmts | ts,
|  | ARGV_const_t | argv
| ) |  |

Verify package signatures.

Parameters

  ts | transaction set
  argv | array of package path arguments (NULL terminated)

Returns
  0 on success

Referenced by main().

void rpmDisplayQueryTags | ( | FILE * | fp | ) |

Display list of tags that can be used in –queryformat.

Parameters

  fp | file handle to use for display

int rpmErase | ( | rpmts | ts,
|  | struct rpmInstallArguments_s * | ia,
|  | ARGV_const_t | argv
| ) |  |

Erase binary rpm package.

Parameters

  ts | transaction set
  ia | control args/bits
  argv | array of package file names (NULL terminated)

Returns
  0 on success

Referenced by main().

int rpmInstall | ( | rpmts | ts,
|  | struct rpmInstallArguments_s * | ia,
|  | ARGV_t | fileArgv
| ) |  |

Install/upgrade/freshen/reinstall binary rpm package.

Parameters

  ts | transaction set
  ia | mode flags and parameters
  fileArgv | array of package file names (NULL terminated)

Returns
  0 on success

Todo:
  fileArgv is modified on errors, should be ARGV_const_t

Referenced by main().

int rpmInstallSource | ( | rpmts | ts,
|  | const char * | arg,
|  | char ** | specFilePtr,
|  | char ** | cookie
| ) |  |

Install source rpm package.

Parameters

  ts | transaction set
  arg | source rpm file name

Return values

  *specFilePtr | (installed) spec file name
  *cookie |

Returns
  0 on success

Referenced by main().

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.

Todo:
  Remove headerFormat() from the progress callback.

Deprecated:
  Transaction callback arguments need to change, so don't rely on this routine in the rpmcli API.

Parameters

  arg | per-callback private data (e.g. an rpm header)
  what | callback identifier
  amount | per-callback progress info
  total | per-callback progress info
  key | opaque header key (e.g. file name or PyObject)
  data | private data (e.g. rpmInstallInterfaceFlags)

Returns
  per-callback data (e.g. an opened FD_t)

int rpmVerifySignatures | ( | QVA_t | qva,
|  | rpmts | ts,
|  | FD_t | fd,
|  | const char * | fn
| ) |  |

Check package and header signatures.

Parameters

  qva | parsed query/verify options
  ts | transaction set
  fd | package file handle
  fn | package file name

Returns
  0 on success, 1 on failure

int showQueryPackage | ( | QVA_t | qva,
|  | rpmts | ts,
|  | Header | h
| ) |  |

Display results of package query.

Todo:
  Devise a meaningful return code.

Parameters

  qva | parsed query/verify options
  ts | transaction set
  h | header to use for query

Returns
  0 always

int showVerifyPackage | ( | QVA_t | qva,
|  | rpmts | ts,
|  | Header | h
| ) |  |

Display results of package verify.

Parameters

  qva | parsed query/verify options
  ts | transaction set
  h | header to use for verify

Returns
  result of last non-zero verify return

## Variable Documentation

struct poptOption rpmcliAllPoptTable[]

Popt option table for options shared by all modes and executables.

const char* rpmcliPipeOutput

Referenced by initPipe(), and main().

rpmQueryFlags rpmcliQueryFlags

Bit(s) from common command line options.

Referenced by build().

const char* rpmcliRcfile

Referenced by main().

const char* rpmcliRootDir

Referenced by main().

struct rpmInstallArguments_s rpmIArgs

Referenced by main().

struct poptOption rpmInstallPoptTable[]

struct poptOption rpmQueryPoptTable[]

struct rpmQVKArguments_s rpmQVKArgs

Referenced by main().

struct poptOption rpmQVSourcePoptTable[]

struct poptOption rpmVerifyPoptTable[]