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

## Data Structures

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

## Files

file | rpmcli.h
file | rpmlib.h

| In Memoriam: Steve Taylor <staylor@redhat.com> was here, now he's not.

## Functions

poptContext | rpmcliInit (int argc, char *const argv[], struct poptOption *optionsTable)
| Initialize most everything needed by an rpm CLI executable context.
void | rpmcliConfigured (void)
| Make sure that rpm configuration has been read.
poptContext | rpmcliFini (poptContext optCon)
| Destroy most everything needed by an rpm CLI executable context.

## Variables

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

## 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)
}

| 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.
typedef int(* | QSpecF_t )(rpmts ts, QVA_t qva, const char *arg)
| Function to query spec file.
rpmQueryFlags | rpmcliQueryFlags
| Bit(s) from common command line options.
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.
int | showQueryPackage (QVA_t qva, rpmts ts, Header h)
| Display results of package query.
int | rpmcliArgIter (rpmts ts, QVA_t qva, ARGV_const_t argv)
| Iterate over query/verify arg list.
int | rpmcliQuery (rpmts ts, QVA_t qva, ARGV_const_t argv)
| Display package information.
int | showVerifyPackage (QVA_t qva, rpmts ts, Header h)
| Display results of package verify.
int | rpmcliVerify (rpmts ts, QVA_t qva, ARGV_const_t argv)
| Verify package install.

## 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) }
| Bit(s) to control rpmInstall() operation. More...
typedef rpmFlags | rpmInstallFlags
struct rpmInstallArguments_s | rpmIArgs
struct poptOption | rpmInstallPoptTable []
int | rpmcliPackagesTotal
int | rpmcliHashesCurrent
int | rpmcliHashesTotal
int | rpmcliProgressCurrent
int | rpmcliProgressTotal
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 | rpmInstallSource (rpmts ts, const char *arg, char **specFilePtr, char **cookie)
| Install source rpm package.
int | rpmInstall (rpmts ts, struct rpmInstallArguments_s *ia, ARGV_t fileArgv)
| Install/upgrade/freshen binary rpm package.
int | rpmErase (rpmts ts, struct rpmInstallArguments_s *ia, ARGV_const_t argv)
| Erase binary rpm package.
#define | UNINSTALL_NONE INSTALL_NONE
| Bit(s) to control rpmErase() operation.
#define | UNINSTALL_NODEPS INSTALL_NODEPS
#define | UNINSTALL_ALLMATCHES INSTALL_ALLMATCHES

## RPMK

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

## Define Documentation

#define UNINSTALL_ALLMATCHES INSTALL_ALLMATCHES

Definition at line 294 of file rpmcli.h.

Referenced by main().

#define UNINSTALL_NODEPS INSTALL_NODEPS

Definition at line 293 of file rpmcli.h.

Referenced by main().

#define UNINSTALL_NONE INSTALL_NONE

Bit(s) to control rpmErase() operation.

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

typedef struct rpmQVKArguments_s* QVA_t

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

typedef rpmFlags rpmInstallFlags

Definition at line 287 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

Definition at line 273 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

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

int rpmcliHashesCurrent

int rpmcliHashesTotal

int rpmcliPackagesTotal

int rpmcliProgressCurrent

int rpmcliProgressTotal

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