Command Line API.
I/O

Parsing RPM command line arguments. More...

Collaboration diagram for Command Line API.:

## Files

file | rpmcli.h
file | rpmlib.h

## Data Structures

struct | rpmQVKArguments_s
struct | rpmInstallArguments_s

## Functions

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

## Variables

struct poptOption | rpmcliAllPoptTable []

## 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, RPMQV_WHATRECOMMENDS,
RPMQV_WHATSUGGESTS, RPMQV_WHATSUPPLEMENTS, RPMQV_WHATENHANCES, RPMQV_SPECBUILTRPMS,
RPMQV_WHATOBSOLETES, RPMQV_WHATCONFLICTS
}

enum | rpmQueryFlags_e { QUERY_FOR_DEFAULT = 0, QUERY_FOR_LIST = (1 << 23), QUERY_FOR_STATE = (1 << 24), QUERY_FOR_DUMPFILES = (1 << 27) }
typedef struct rpmQVKArguments_s * | QVA_t
typedef int(* | QVF_t) (QVA_t qva, rpmts ts, Header h)
typedef int(* | QSpecF_t) (rpmts ts, QVA_t qva, const char *arg)
rpmQueryFlags | rpmcliQueryFlags
struct rpmQVKArguments_s | rpmQVKArgs
struct poptOption | rpmQVSourcePoptTable []
struct poptOption | rpmQVFilePoptTable []
struct poptOption | rpmQueryPoptTable []
struct poptOption | rpmVerifyPoptTable []
void | rpmDisplayQueryTags (FILE *fp)
int | showQueryPackage (QVA_t qva, rpmts ts, Header h)
int | rpmcliArgIter (rpmts ts, QVA_t qva, ARGV_const_t argv)
int | rpmcliQuery (rpmts ts, QVA_t qva, ARGV_const_t argv)
int | showVerifyPackage (QVA_t qva, rpmts ts, Header h)
int | rpmcliVerify (rpmts ts, QVA_t qva, ARGV_const_t argv)

## 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) }
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)
int | rpmInstallSource (rpmts ts, const char *arg, char **specFilePtr, char **cookie)
int | rpmInstall (rpmts ts, struct rpmInstallArguments_s *ia, ARGV_t fileArgv)
int | rpmErase (rpmts ts, struct rpmInstallArguments_s *ia, ARGV_const_t argv)
#define | UNINSTALL_NONE INSTALL_NONE
#define | UNINSTALL_NODEPS INSTALL_NODEPS
#define | UNINSTALL_ALLMATCHES INSTALL_ALLMATCHES

## RPMK

int | rpmcliVerifySignatures (rpmts ts, ARGV_const_t argv)

## Detailed Description

Parsing RPM command line arguments.

## Macro Definition Documentation

## UNINSTALL_ALLMATCHES

#define UNINSTALL_ALLMATCHES INSTALL_ALLMATCHES

Definition at line 317 of file rpmcli.h.

## UNINSTALL_NODEPS

#define UNINSTALL_NODEPS INSTALL_NODEPS

Definition at line 316 of file rpmcli.h.

## UNINSTALL_NONE

#define UNINSTALL_NONE INSTALL_NONE

Bit(s) to control rpmErase() operation.

Definition at line 315 of file rpmcli.h.

## Typedef Documentation

## QSpecF_t

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 159 of file rpmcli.h.

## QVA_t

typedef struct rpmQVKArguments_s* QVA_t

Definition at line 139 of file rpmcli.h.

## QVF_t

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 149 of file rpmcli.h.

## rpmInstallFlags

typedef rpmFlags rpmInstallFlags

Definition at line 309 of file rpmcli.h.

## Enumeration Type Documentation

## rpmInstallFlags_e

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 294 of file rpmcli.h.

## rpmQueryFlags_e

enum rpmQueryFlags_e

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

Todo:
  Merge rpmQueryFlags, rpmVerifyFlags, and rpmVerifyAttrs?.

Enumerator
QUERY_FOR_DEFAULT |
QUERY_FOR_LIST | query: from –list
QUERY_FOR_STATE | query: from –state
QUERY_FOR_DUMPFILES | query: from –dump

Definition at line 112 of file rpmcli.h.

## rpmQVSources_e

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.
RPMQV_SPECBUILTRPMS | ... from pkgs which would be built from spec
RPMQV_WHATOBSOLETES | ... from obsoletes db search.
RPMQV_WHATCONFLICTS | ... from conflicts db search.

Definition at line 81 of file rpmcli.h.

## Function Documentation

## rpmcliArgIter()

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

## rpmcliConfigured()

void rpmcliConfigured | ( | void |  | ) |

Make sure that rpm configuration has been read.

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

## rpmcliFini()

poptContext rpmcliFini | ( | poptContext | optCon | ) |

Destroy most everything needed by an rpm CLI executable context.

Parameters

  optCon | popt context

Returns
  NULL always

## rpmcliInit()

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)

## rpmcliQuery()

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

## rpmcliVerify()

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

## rpmcliVerifySignatures()

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

## rpmDisplayQueryTags()

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

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

Parameters

  fp | file handle to use for display

## rpmErase()

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

## rpmInstall()

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

## rpmInstallSource()

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

## rpmShowProgress()

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)

## showQueryPackage()

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

## showVerifyPackage()

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

## rpmcliAllPoptTable

struct poptOption rpmcliAllPoptTable[]

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

## rpmcliQueryFlags

rpmQueryFlags rpmcliQueryFlags

Bit(s) from common command line options.

## rpmIArgs

struct rpmInstallArguments_s rpmIArgs

## rpmInstallPoptTable

struct poptOption rpmInstallPoptTable[]

## rpmQueryPoptTable

struct poptOption rpmQueryPoptTable[]

## rpmQVFilePoptTable

struct poptOption rpmQVFilePoptTable[]

## rpmQVKArgs

struct rpmQVKArguments_s rpmQVKArgs

## rpmQVSourcePoptTable

struct poptOption rpmQVSourcePoptTable[]

## rpmVerifyPoptTable

struct poptOption rpmVerifyPoptTable[]