Command Line API.
Collaboration diagram for Command Line API.:

## Files

file | rpmcli.h
file | rpmlib.h
| In Memoriam: Steve Taylor stayl.nosp@m.or@r.nosp@m.edhat.nosp@m..com was here, now he's not.

## Data Structures

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

## 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...

## Variables

struct poptOption | rpmcliAllPoptTable []
| Popt option table for options shared by all modes and executables. More...

## RPMQV

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 }
| 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 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 | rpmcliVerify (rpmts ts, QVA_t qva, ARGV_const_t argv)
| Verify package install. More...

## RPMEIU

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...
#define | UNINSTALL_NONE INSTALL_NONE
| Bit(s) to control rpmErase() operation. More...
#define | UNINSTALL_NODEPS INSTALL_NODEPS
#define | UNINSTALL_ALLMATCHES INSTALL_ALLMATCHES

## RPMK

int | rpmcliVerifySignatures (rpmts ts, ARGV_const_t argv)
| Verify package signatures. More...

## Detailed Description

## Macro Definition Documentation

#define UNINSTALL_ALLMATCHES INSTALL_ALLMATCHES

Definition at line 296 of file rpmcli.h.

Referenced by main().

#define UNINSTALL_NODEPS INSTALL_NODEPS

Definition at line 295 of file rpmcli.h.

Referenced by main().

#define UNINSTALL_NONE INSTALL_NONE

Bit(s) to control rpmErase() operation.

Definition at line 294 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 163 of file rpmcli.h.

typedef struct rpmQVKArguments_s* QVA_t

Definition at line 143 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 153 of file rpmcli.h.

typedef rpmFlags rpmInstallFlags

Definition at line 289 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 274 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 102 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).

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().

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 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.

rpmQueryFlags rpmcliQueryFlags

Bit(s) from common command line options.

Referenced by build().

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[]