# RPMCLI.

## Files

file | manifest.c
file | poptI.c
| Popt tables for install modes.

file | poptK.c
| Popt tables for signature modes.

file | poptQV.c
| Popt tables for query/verify modes.

file | query.c
| Display tag values from package metadata.

file | rpmchecksig.c
| Verify the signature of a package.

file | rpmcli.h
file | rpminstall.c
file | rpmlib.h
file | verify.c
| Verify installed payload files from package metadata.

file | poptDB.c
| Popt tables for database modes.

## Data Structures

struct | rpmBuildArguments_s
struct | rpmQVArguments_s
struct | rpmInstallArguments_s
struct | rpmDatabaseArguments_s
struct | rpmSignArguments_s

## RPMBT

typedef rpmBuildArguments_s * | BTA_t
rpmBuildArguments_s | rpmBTArgs
poptOption | rpmBuildPoptTable []

## RPMQV

typedef enum rpmQueryFlags_e | rpmQueryFlags
typedef enum rpmVerifyFlags_e | rpmVerifyFlags
typedef int(* | QVF_t )(QVA_t qva, rpmdb db, Header h)

enum

rpmQueryFlags_e {
QUERY_FOR_DEFAULT = 0, QUERY_MD5 = (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_FILES = (1 << 16), QUERY_DEPS = (1 << 17), QUERY_SCRIPT = (1 << 18),
QUERY_DIGEST = (1 << 19), 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)
}

enum

rpmVerifyFlags_e {
VERIFY_DEFAULT = 0, VERIFY_MD5 = (1 << 0), VERIFY_SIZE = (1 << 1), VERIFY_LINKTO = (1 << 2),
VERIFY_USER = (1 << 3), VERIFY_GROUP = (1 << 4), VERIFY_MTIME = (1 << 5), VERIFY_MODE = (1 << 6),
VERIFY_RDEV = (1 << 7), VERIFY_FILES = (1 << 16), VERIFY_DEPS = (1 << 17), VERIFY_SCRIPT = (1 << 18),
VERIFY_DIGEST = (1 << 19), VERIFY_FOR_LIST = (1 << 23), VERIFY_FOR_STATE = (1 << 24), VERIFY_FOR_DOCS = (1 << 25),
VERIFY_FOR_CONFIG = (1 << 26), VERIFY_FOR_DUMPFILES = (1 << 27)
}

int | showMatches (QVA_t qva, rpmdbMatchIterator mi, QVF_t showPackage)
void | rpmDisplayQueryTags (FILE *fp)
int | rpmQueryVerify (QVA_t qva, rpmQVSources source, const char *arg, rpmdb db, QVF_t showPackage)
int | showQueryPackage (QVA_t qva, rpmdb db, Header h)
int | rpmQuery (QVA_t qva, rpmQVSources source, const char *arg)
int | showVerifyPackage (QVA_t qva, rpmdb db, Header h)
int | rpmVerify (QVA_t qva, rpmQVSources source, const char *arg)
rpmQVArguments_s | rpmQVArgs
poptOption | rpmQVSourcePoptTable []
| Common query/verify mode options.
int | specedit
poptOption | rpmQueryPoptTable []
| Query mode options.
poptOption | rpmVerifyPoptTable []
| Verify mode options.

## RPMK

typedef enum rpmCheckSigFlags_e | rpmCheckSigFlags
typedef enum rpmResignFlags_e | rpmResignFlags
enum | rpmCheckSigFlags_e { CHECKSIG_NONE = 0, CHECKSIG_PGP = (1 << 0), CHECKSIG_MD5 = (1 << 1), CHECKSIG_GPG = (1 << 2) }
enum | rpmResignFlags_e { RESIGN_NONE = 0, RESIGN_CHK_SIGNATURE = 1, RESIGN_NEW_SIGNATURE, RESIGN_ADD_SIGNATURE }
int | rpmCheckSig (rpmCheckSigFlags flags, const char **argv)
int | rpmReSign (rpmResignFlags add, char *passPhrase, const char **argv)
rpmSignArguments_s | rpmKArgs
poptOption | rpmSignPoptTable []

## RPMQV

typedef rpmQVArguments_s * | QVA_t
typedef enum rpmQVSources_e | rpmQVSources
typedef enum rpmVerifyAttrs_e | rpmVerifyAttrs
enum | rpmQVSources_e { RPMQV_PACKAGE = 0, RPMQV_PATH, RPMQV_ALL, RPMQV_RPM, RPMQV_GROUP, RPMQV_WHATPROVIDES, RPMQV_WHATREQUIRES, RPMQV_TRIGGEREDBY, RPMQV_DBOFFSET, RPMQV_SPECFILE, RPMQV_PKGID, RPMQV_HDRID, RPMQV_FILEID, RPMQV_TID }
enum | rpmVerifyAttrs_e { RPMVERIFY_NONE = 0, RPMVERIFY_MD5 = (1 << 0), RPMVERIFY_FILESIZE = (1 << 1), RPMVERIFY_LINKTO = (1 << 2), RPMVERIFY_USER = (1 << 3), RPMVERIFY_GROUP = (1 << 4), RPMVERIFY_MTIME = (1 << 5), RPMVERIFY_MODE = (1 << 6), RPMVERIFY_RDEV = (1 << 7), RPMVERIFY_READLINKFAIL = (1 << 28), RPMVERIFY_READFAIL = (1 << 29), RPMVERIFY_LSTATFAIL = (1 << 30) }
int | rpmVerifyFile (const char *root, Header h, int filenum, rpmVerifyAttrs *result, rpmVerifyAttrs omitMask)

## RPMEIU

typedef enum rpmInstallInterfaceFlags_e | rpmInstallInterfaceFlags
typedef enum rpmEraseInterfaceFlags_e | rpmEraseInterfaceFlags
enum | rpmInstallInterfaceFlags_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) }
enum | rpmEraseInterfaceFlags_e { UNINSTALL_NONE = 0, UNINSTALL_NODEPS = (1 << 0), UNINSTALL_ALLMATCHES = (1 << 1) }

## RPMEIU

int | rpmInstall (const char *rootdir, const char **fileArgv, rpmtransFlags transFlags, rpmInstallInterfaceFlags interfaceFlags, rpmprobFilterFlags probFilter, rpmRelocation *relocations)
int | rpmInstallSource (const char *rootdir, const char *arg, const char **specFile, char **cookie)
int | rpmErase (const char *rootdir, const char **argv, rpmtransFlags transFlags, rpmEraseInterfaceFlags interfaceFlags)
int | rpmRollback (struct rpmInstallArguments_s *ia, const char **argv)
rpmInstallArguments_s | rpmIArgs
poptOption | rpmInstallPoptTable []

## RPMTS

void | rpmShowRpmlibProvides (FILE *fp)

## RPMDB

rpmDatabaseArguments_s | rpmDBArgs
poptOption | rpmDatabasePoptTable []

## Functions

int | checkSpec (Header h)

## Variables

int | _noDirTokens
int | _noDirTokens
int | _noDirTokens
int | _noDirTokens = 0
int | _noDirTokens
rpmBuildArguments_s | rpmBTArgs
poptOption | rpmBuildPoptTable []
rpmQVArguments_s | rpmQVArgs
poptOption | rpmQVSourcePoptTable []
| Common query/verify mode options.
int | specedit
int | specedit = 0
poptOption | rpmQueryPoptTable []
| Query mode options.
poptOption | rpmVerifyPoptTable []
| Verify mode options.
rpmInstallArguments_s | rpmIArgs
poptOption | rpmInstallPoptTable []
rpmSignArguments_s | rpmKArgs
poptOption | rpmSignPoptTable []
int | _noDirTokens
int | _noDirTokens

## Typedef Documentation

typedef struct rpmBuildArguments_s* BTA_t

| Definition at line 52 of file rpmcli.h. Referenced by build(), buildArgCallback(), buildForTarget(), and main().

typedef struct rpmQVArguments_s* QVA_t

| Definition at line 1637 of file rpmlib.h. Referenced by main(), queryArgCallback(), rpmQuery(), rpmQueryVerify(), rpmQVSourceArgCallback(), rpmVerify(), showMatches(), showQueryPackage(), showVerifyPackage(), and verifyHeader().

typedef int(* QVF_t)(QVA_t qva, rpmdb db, Header h)

Parameters:

  qva | parsed query/verify options
  db | rpm database
  h | header to use for query/verify

Definition at line 141 of file rpmcli.h.

Referenced by rpmQueryVerify(), and showMatches().

typedef enum rpmCheckSigFlags_e rpmCheckSigFlags

| Bit(s) to control rpmCheckSig() operation. Referenced by rpmCheckSig().

typedef enum rpmEraseInterfaceFlags_e rpmEraseInterfaceFlags

| Bit(s) to control rpmErase() operation. Referenced by rpmErase().

typedef enum rpmInstallInterfaceFlags_e rpmInstallInterfaceFlags

Bit(s) to control rpmInstall() operation.

Todo:
  Move to rpmcli.h

Referenced by rpmInstall().

typedef enum rpmQueryFlags_e rpmQueryFlags

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

Todo:
  Merge rpmQueryFlags, rpmVerifyFlags, and rpmVerifyAttrs?.

Referenced by main(), and showQueryPackage().

typedef enum rpmQVSources_e rpmQVSources

The command line argument will be used to retrieve header(s) ...

Todo:
  Move to rpmcli.h

Referenced by rpmQuery(), rpmQueryVerify(), and rpmVerify().

typedef enum rpmResignFlags_e rpmResignFlags

| Bit(s) to control rpmReSign() operation. Referenced by rpmReSign().

typedef enum rpmVerifyAttrs_e rpmVerifyAttrs

Bit(s) for rpmVerifyFile() attributes and result.

Todo:
  Move to rpmcli.h.

Referenced by hdrVerifyFile(), rpmVerifyFile(), and verifyHeader().

typedef enum rpmVerifyFlags_e rpmVerifyFlags

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

Todo:
  Merge rpmQueryFlags, rpmVerifyFlags, and rpmVerifyAttrs values?.

Referenced by main().

## Enumeration Type Documentation

enum rpmCheckSigFlags_e

Bit(s) to control rpmCheckSig() operation.

Enumeration values:

  CHECKSIG_NONE | Don't check any signatures.
  CHECKSIG_PGP | if not --nopgp
  CHECKSIG_MD5 | if not --nomd5
  CHECKSIG_GPG | if not --nogpg

Definition at line 506 of file rpmcli.h.

enum rpmEraseInterfaceFlags_e

Bit(s) to control rpmErase() operation.

Enumeration values:

  UNINSTALL_NONE |
  UNINSTALL_NODEPS | from --nodeps
  UNINSTALL_ALLMATCHES | from --allmatches

Definition at line 1739 of file rpmlib.h.

enum rpmInstallInterfaceFlags_e

Bit(s) to control rpmInstall() operation.

Todo:
  Move to rpmcli.h

Enumeration values:

  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

Definition at line 1723 of file rpmlib.h.

enum rpmQueryFlags_e

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

Todo:
  Merge rpmQueryFlags, rpmVerifyFlags, and rpmVerifyAttrs?.

Enumeration values:

  QUERY_FOR_DEFAULT |
  QUERY_MD5 | from --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_FILES | verify: from --nofiles
  QUERY_DEPS | verify: from --nodeps
  QUERY_SCRIPT | verify: from --noscripts
  QUERY_DIGEST | verify: from --nodigest
  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 73 of file rpmcli.h.

enum rpmQVSources_e

The command line argument will be used to retrieve header(s) ...

Todo:
  Move to rpmcli.h

Enumeration values:

  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_SPECFILE | ... from spec file parse (query only).
  RPMQV_PKGID | ... from package id (header+payload MD5).
  RPMQV_HDRID | ... from header id (immutable header SHA1).
  RPMQV_FILEID | ... from file id (file MD5).
  RPMQV_TID | ... from install transaction id (time stamp).

Definition at line 1643 of file rpmlib.h.

enum rpmResignFlags_e

Bit(s) to control rpmReSign() operation.

Enumeration values:

  RESIGN_NONE |
  RESIGN_CHK_SIGNATURE | from --checksig
  RESIGN_NEW_SIGNATURE | from --resign
  RESIGN_ADD_SIGNATURE | from --addsign

Definition at line 529 of file rpmcli.h.

enum rpmVerifyAttrs_e

Bit(s) for rpmVerifyFile() attributes and result.

Todo:
  Move to rpmcli.h.

Enumeration values:

  RPMVERIFY_NONE |
  RPMVERIFY_MD5 | from verify(md5)
  RPMVERIFY_FILESIZE | from verify(size)
  RPMVERIFY_LINKTO | from verify(link)
  RPMVERIFY_USER | from verify(user)
  RPMVERIFY_GROUP | from verify(group)
  RPMVERIFY_MTIME | from verify(mtime)
  RPMVERIFY_MODE | from verify(mode)
  RPMVERIFY_RDEV | from verify(rdev)
  RPMVERIFY_READLINKFAIL |
  RPMVERIFY_READFAIL |
  RPMVERIFY_LSTATFAIL |

Definition at line 1664 of file rpmlib.h.

enum rpmVerifyFlags_e

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

Todo:
  Merge rpmQueryFlags, rpmVerifyFlags, and rpmVerifyAttrs values?.

Enumeration values:

  VERIFY_DEFAULT |
  VERIFY_MD5 | from --nomd5
  VERIFY_SIZE | from --nosize
  VERIFY_LINKTO | from --nolinkto
  VERIFY_USER | from --nouser
  VERIFY_GROUP | from --nogroup
  VERIFY_MTIME | from --nomtime
  VERIFY_MODE | from --nomode
  VERIFY_RDEV | from --nodev
  VERIFY_FILES | verify: from --nofiles
  VERIFY_DEPS | verify: from --nodeps
  VERIFY_SCRIPT | verify: from --noscripts
  VERIFY_DIGEST | verify: from --nodigest
  VERIFY_FOR_LIST | query: from --list
  VERIFY_FOR_STATE | query: from --state
  VERIFY_FOR_DOCS | query: from --docfiles
  VERIFY_FOR_CONFIG | query: from --configfiles
  VERIFY_FOR_DUMPFILES | query: from --dump

Definition at line 102 of file rpmcli.h.

## Function Documentation

int checkSpec | ( | Header | h | ) | `[static]`

Definition at line 19 of file build.c.

References _, _free(), EXIT_FAILURE, Header, headerIsEntry(), printDepProblems(), rpmdbClose(), rpmdbOpen(), rpmdepCheck(), rpmDependencyConflict, rpmdepFreeConflicts(), RPMERR_OPEN, rpmError, rpmGetPath(), RPMMESS_ERROR, rpmMessage, RPMTAG_REQUIREFLAGS, rpmTransactionSet, rpmtransAddPackage(), rpmtransCreateSet(), and rpmtransFree().

Referenced by buildForTarget().

int rpmCheckSig | ( | rpmCheckSigFlags | flags,
|  | const char ** | argv
| ) |

Check elements in signature header.

Parameters:

  flags | bit(s) to enable signature checks
  argv | array of package file names (NULL terminated)

Returns:
  0 on success

Definition at line 250 of file rpmchecksig.c.

References _, _free(), CHECKSIG_GPG, CHECKSIG_MD5, CHECKSIG_PGP, copyFile(), FD_t, Header, headerFreeData(), headerFreeIterator(), headerInitIterator(), HeaderIterator, headerNextIterator(), int_32, manageFile(), readLead(), rpmCheckSigFlags, RPMERR_BADSIGTYPE, RPMERR_READLEAD, RPMERR_SIGGEN, RPMERR_SIGVFY, rpmError, rpmIsVerbose, rpmRC, RPMRC_BADSIZE, RPMRC_OK, rpmReadSignature(), RPMSIG_NOKEY, RPMSIG_NOTTRUSTED, RPMSIGTAG_GPG, RPMSIGTAG_LEMD5_1, RPMSIGTAG_LEMD5_2, RPMSIGTAG_MD5, RPMSIGTAG_PGP, RPMSIGTAG_PGP5, RPMSIGTAG_SIZE, and rpmVerifySignature().

Referenced by checkSig(), and main().

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

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

Parameters:

  fp | file handle to use for display

Definition at line 507 of file query.c.

References HEADER_EXT_MORE, HEADER_EXT_TAG, rpmHeaderFormats, rpmTagTable, and rpmTagTableSize.

Referenced by main().

int rpmErase | ( | const char * | rootdir,
|  | const char ** | argv,
|  | rpmtransFlags | transFlags,
|  | rpmEraseInterfaceFlags | interfaceFlags
| ) |

Erase binary rpm package.

Parameters:

  rootdir | path to top of install tree
  argv | array of package file names (NULL terminated)
  transFlags | bits to control rpmRunTransactions()
  interfaceFlags | bits to control rpmInstall()

Returns:
  0 on success

Definition at line 593 of file rpminstall.c.

References _, _free(), Header, printDepProblems(), rpmdbClose(), rpmdbFreeIterator(), rpmdbGetIteratorCount(), rpmdbGetIteratorOffset(), RPMDBI_LABEL, rpmdbInitIterator(), rpmdbNextIterator(), rpmdbOpen(), rpmdepCheck(), rpmDependencyConflict, rpmdepFreeConflicts(), rpmEraseInterfaceFlags, rpmGetPath(), RPMMESS_ERROR, rpmMessage, rpmProblemSet, rpmRunTransactions(), RPMTRANS_FLAG_REVERSE, RPMTRANS_FLAG_TEST, rpmTransactionSet, rpmtransCreateSet(), rpmtransFlags, rpmtransFree(), rpmtransRemovePackage(), UNINSTALL_ALLMATCHES, and UNINSTALL_NODEPS.

Referenced by main().

int rpmInstall | ( | const char * | rootdir,
|  | const char ** | fileArgv,
|  | rpmtransFlags | transFlags,
|  | rpmInstallInterfaceFlags | interfaceFlags,
|  | rpmprobFilterFlags | probFilter,
|  | rpmRelocation * | relocations
| ) |

Todo:
  Generalize --freshen policies.

Definition at line 201 of file rpminstall.c.

References _, _free(), alloca(), Fclose(), Ferror(), Fopen(), Fstrerror(), ftpStrerror(), Header, headerFree(), headerFreeData(), headerGetEntry(), headerNVR(), INSTALL_FRESHEN, INSTALL_LABEL, INSTALL_NODEPS, INSTALL_NOORDER, INSTALL_UPGRADE, packagesTotal, printDepProblems(), rpmdbClose(), rpmdbFreeIterator(), rpmdbGetIteratorCount(), rpmdbInitIterator(), rpmdbNextIterator(), rpmdbOpen(), rpmdepCheck(), rpmDependencyConflict, rpmdepFreeConflicts(), rpmdepOrder(), RPMERR_MANIFEST, RPMERR_OPEN, rpmError, rpmGenPath(), rpmGetPath(), rpmGlob(), rpmInstallInterfaceFlags, rpmInstallSourcePackage(), rpmIsVerbose, RPMMESS_DEBUG, RPMMESS_ERROR, rpmMessage, rpmprobFilterFlags, rpmProblemSet, rpmProblemSetFree(), rpmProblemSetPrint(), RPMRC_BADMAGIC, RPMRC_BADSIZE, RPMRC_FAIL, RPMRC_OK, RPMRC_SHORTREAD, rpmReadPackageHeader(), rpmReadPackageManifest(), rpmRelocation, rpmRunTransactions(), rpmShowProgress(), RPMTAG_NAME, RPMTAG_PREFIXES, RPMTRANS_FLAG_TEST, rpmtransAddPackage(), rpmtransCreateSet(), rpmtransFlags, rpmtransFree(), rpmVersionCompare(), Unlink(), URL_IS_FTP, URL_IS_HTTP, URL_IS_PATH, urlGetFile(), urlIsURL(), urlPath(), xrealloc(), and xstrdup().

Referenced by main().

int rpmInstallSource | ( | const char * | rootdir,
|  | const char * | arg,
|  | const char ** | specFile,
|  | char ** | cookie
| ) |

Install source rpm package.

Parameters:

  rootdir | path to top of install tree
  arg | source rpm file name

Return values:

  specFile | address of (installed) spec file name
  cookie |

Returns:
  0 on success

Definition at line 681 of file rpminstall.c.

References _, _free(), Fclose(), FD_t, Ferror(), Fopen(), Fstrerror(), rpmInstallSourcePackage(), rpmIsVerbose, RPMMESS_ERROR, rpmMessage, rpmRC, and RPMRC_OK.

Referenced by main().

int rpmQuery | ( | QVA_t | qva,
|  | rpmQVSources | source,
|  | const char * | arg
| ) |

Display package information.

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

Parameters:

  qva | parsed query/verify options
  source | type of source to query
  arg | name of source to query

Returns:
  rpmQueryVerify() result, or 1 on rpmdbOpen() failure

Definition at line 953 of file query.c.

References rpmQVArguments_s::qva_prefix, QVA_t, rpmdb, rpmdbClose(), rpmdbOpen(), rpmQueryVerify(), RPMQV_RPM, RPMQV_SPECFILE, rpmQVSources, and showQueryPackage().

Referenced by main().

int rpmQueryVerify | ( | QVA_t | qva,
|  | rpmQVSources | source,
|  | const char * | arg,
|  | rpmdb | db,
|  | QVF_t | showPackage
| ) |

Common query/verify source interface, called once for each CLI arg.

Parameters:

  qva | parsed query/verify options
  source | type of source to query/verify
  arg | name of source to query/verify
  db | rpm database
  showPackage | query/verify specific display routine

Returns:
  showPackage() result, 1 if rpmdbInitIterator() is NULL

Definition at line 580 of file query.c.

References _, _free(), errno, F_OK, Fclose(), FD_t, Ferror(), Fopen(), freeSpecVec, Fstrerror(), PackageStruct::header, Header, headerFree(), PackageStruct::next, nibble(), Package, SpecStruct::packages, parseSpecVec, PATH_MAX, printNewSpecfile(), QVA_t, QVF_t, realpath(), rpmCleanPath(), rpmdb, rpmdbFreeIterator(), RPMDBI_LABEL, RPMDBI_PACKAGES, rpmdbInitIterator(), rpmdbSetIteratorRE(), RPMERR_MANIFEST, RPMERR_OPEN, RPMERR_QUERY, RPMERR_QUERYINFO, rpmError, rpmGlob(), RPMMESS_DEBUG, rpmMessage, RPMMIRE_DEFAULT, RPMQV_ALL, RPMQV_DBOFFSET, RPMQV_FILEID, RPMQV_GROUP, RPMQV_HDRID, RPMQV_PACKAGE, RPMQV_PATH, RPMQV_PKGID, RPMQV_RPM, RPMQV_SPECFILE, RPMQV_TID, RPMQV_TRIGGEREDBY, RPMQV_WHATPROVIDES, RPMQV_WHATREQUIRES, rpmQVSources, rpmRC, RPMRC_BADMAGIC, RPMRC_OK, rpmReadPackageHeader(), rpmReadPackageManifest(), RPMTAG_BASENAMES, RPMTAG_FILEMD5S, RPMTAG_GROUP, RPMTAG_INSTALLTID, RPMTAG_NAME, RPMTAG_PROVIDENAME, RPMTAG_REQUIRENAME, RPMTAG_SHA1HEADER, RPMTAG_SIGMD5, RPMTAG_TRIGGERNAME, showMatches(), showQueryPackage(), Spec, specedit, strerror(), and xstrdup().

Referenced by rpmQuery(), and rpmVerify().

int rpmReSign | ( | rpmResignFlags | add,
|  | char * | passPhrase,
|  | const char ** | argv
| ) |

Create/modify elements in signature header.

Parameters:

  add | type of signature operation
  passPhrase |
  argv | array of package file names (NULL terminated)

Returns:
  0 on success

Definition at line 105 of file rpmchecksig.c.

References _, _free(), copyFile(), EXIT_FAILURE, FD_t, Fstrerror(), Header, headerCopyLoad(), headerFree(), headerGetEntry(), headerLink(), headerRemoveEntry(), int_32, manageFile(), readLead(), RESIGN_ADD_SIGNATURE, rpmAddSignature(), RPMERR_BADSIGTYPE, RPMERR_READLEAD, RPMERR_SIGGEN, RPMERR_WRITELEAD, rpmError, rpmFreeSignature(), RPMLOOKUPSIG_QUERY, rpmLookupSignatureType(), rpmRC, RPMRC_BADSIZE, RPMRC_OK, rpmReadSignature(), rpmResignFlags, RPMSIGTAG_GPG, RPMSIGTAG_LEMD5_1, RPMSIGTAG_LEMD5_2, RPMSIGTAG_MD5, RPMSIGTAG_PGP, RPMSIGTAG_PGP5, RPMSIGTAG_SIZE, RPMSIGTYPE_HEADERSIG, RPMTAG_HEADERSIGNATURES, rpmWriteSignature(), and writeLead().

Referenced by main().

int rpmRollback | ( | struct rpmInstallArguments_s * | ia,
|  | const char ** | argv
| ) |

Rollback transactions, erasing new, reinstalling old, package(s).

Returns:
  0 on success

Definition at line 902 of file rpminstall.c.

References _, _free(), IDT_s::h, headerFree(), IDT, IDTindex_s::idt, IDTX, IDTXfree(), IDTXglob(), IDTXload(), INSTALL_ERASE, INSTALL_FRESHEN, INSTALL_INSTALL, INSTALL_UPGRADE, rpmInstallArguments_s::installInterfaceFlags, IDT_s::instance, IDT_s::key, IDT_s::n, IDTindex_s::nidt, packagesTotal, printDepProblems(), rpmInstallArguments_s::probFilter, IDT_s::r, rpmInstallArguments_s::rbtid, rpmInstallArguments_s::relocations, rpmInstallArguments_s::rootdir, rpmdbClose(), rpmdbOpen(), rpmdepCheck(), rpmDependencyConflict, rpmdepFreeConflicts(), rpmdepOrder(), rpmExpand(), rpmIsDebug, RPMMESS_DEBUG, RPMMESS_ERROR, rpmMessage, RPMPROB_FILTER_OLDPACKAGE, rpmProblemSet, rpmProblemSetFree(), rpmProblemSetPrint(), rpmRunTransactions(), rpmShowProgress(), RPMTAG_INSTALLTID, RPMTAG_REMOVETID, rpmTransactionSet, rpmtransAddPackage(), rpmtransCreateSet(), rpmtransFree(), rpmtransRemovePackage(), rpmInstallArguments_s::transFlags, IDT_s::v, and IDT_s::val.

Referenced by main().

void rpmShowRpmlibProvides | ( | FILE * | fp | ) |

Display current rpmlib feature provides.

Parameters:

  fp | output file handle

Definition at line 43 of file rpmlibprov.c.

References rpmlibProvides_s::featureName, printDepFlags(), and rpmlibProvides.

Referenced by rpmShowRC().

int rpmVerify | ( | QVA_t | qva,
|  | rpmQVSources | source,
|  | const char * | arg
| ) |

Verify package install.

Parameters:

  qva | parsed query/verify options
  source | type of source to verify
  arg | name of source to verify

Returns:
  rpmQueryVerify() result, or 1 on rpmdbOpen() failure

Definition at line 554 of file verify.c.

References rpmQVArguments_s::qva_flags, rpmQVArguments_s::qva_prefix, QVA_t, rpmdb, rpmdbClose(), rpmdbOpen(), rpmQueryVerify(), RPMQV_RPM, rpmQVSources, showVerifyPackage(), and VERIFY_DEPS.

Referenced by main().

int rpmVerifyFile | ( | const char * | root,
|  | Header | h,
|  | int | filenum,
|  | rpmVerifyAttrs * | result,
|  | rpmVerifyAttrs | omitMask
| ) |

Verify file attributes (including MD5 sum).

Todo:
  gnorpm and python bindings prevent this from being static.

Parameters:

  root | path to top of install tree
  h | header
  filenum | index of file in header file info arrays

Return values:

  result | address of bit(s) returned to indicate failure

Parameters:

  omitMask | bit(s) to disable verify checks

Returns:
  0 on success (or not installed), 1 on error

Definition at line 22 of file verify.c.

References _, alloca(), domd5(), gnameToGid(), Header, HFD_t, HGE_t, int_32, Lstat(), Readlink(), RPMERR_INTERNAL, rpmError, RPMFILE_GHOST, RPMFILE_NONE, RPMFILE_STATE_NETSHARED, RPMFILE_STATE_NORMAL, RPMFILE_STATE_NOTINSTALLED, RPMFILE_STATE_REPLACED, rpmfileAttrs, rpmfileState, RPMTAG_BASENAMES, RPMTAG_DIRINDEXES, RPMTAG_DIRNAMES, RPMTAG_FILEFLAGS, RPMTAG_FILEGIDS, RPMTAG_FILEGROUPNAME, RPMTAG_FILELINKTOS, RPMTAG_FILEMD5S, RPMTAG_FILEMODES, RPMTAG_FILEMTIMES, RPMTAG_FILERDEVS, RPMTAG_FILESIZES, RPMTAG_FILESTATES, RPMTAG_FILEUIDS, RPMTAG_FILEUSERNAME, RPMTAG_FILEVERIFYFLAGS, rpmTagType, RPMVERIFY_ALL, RPMVERIFY_FILESIZE, RPMVERIFY_GROUP, RPMVERIFY_LINKTO, RPMVERIFY_LSTATFAIL, RPMVERIFY_MD5, RPMVERIFY_MODE, RPMVERIFY_MTIME, RPMVERIFY_NONE, RPMVERIFY_RDEV, RPMVERIFY_READFAIL, RPMVERIFY_READLINKFAIL, RPMVERIFY_USER, rpmVerifyAttrs, S_ISDEV, S_ISLNK, stpcpy(), and uidToUname().

Referenced by hdrVerifyFile(), and verifyHeader().

int showMatches | ( | QVA_t | qva,
|  | rpmdbMatchIterator | mi,
|  | QVF_t | showPackage
| ) |

Display query/verify information for each header in iterator.

Parameters:

  qva | parsed query/verify options
  mi | rpm database iterator
  showPackage | query/verify display routine

Returns:
  result of last non-zero showPackage() return

Definition at line 534 of file query.c.

References Header, QVA_t, QVF_t, rpmdbFreeIterator(), rpmdbGetIteratorRpmDB(), and rpmdbNextIterator().

Referenced by rpmQueryVerify().

int showQueryPackage | ( | QVA_t | qva,
|  | rpmdb | db,
|  | Header | h
| ) |

Display results of package query.

Todo:
  Devise a meaningful return code.

Parameters:

  qva | parsed query/verify options
  db | rpm database (unused for queries)
  h | header to use for query

Returns:
  0 always

Definition at line 150 of file query.c.

References _, _free(), countLinks(), Header, headerNVR(), HFD_t, HGE_t, int_32, printFileInfo(), QUERY_FOR_CONFIG, QUERY_FOR_DEFAULT, QUERY_FOR_DOCS, QUERY_FOR_DUMPFILES, QUERY_FOR_LIST, QUERY_FOR_STATE, queryHeader(), rpmQVArguments_s::qva_fflags, rpmQVArguments_s::qva_flags, rpmQVArguments_s::qva_queryFormat, QVA_t, RPMERR_INTERNAL, rpmError, RPMFILE_CONFIG, RPMFILE_DOC, RPMFILE_GHOST, RPMFILE_STATE_NETSHARED, RPMFILE_STATE_NORMAL, RPMFILE_STATE_NOTINSTALLED, RPMFILE_STATE_REPLACED, rpmfileState, rpmIsVerbose, RPMMESS_NORMAL, rpmMessage, rpmQueryFlags, RPMTAG_BASENAMES, RPMTAG_DIRINDEXES, RPMTAG_DIRNAMES, RPMTAG_FILEFLAGS, RPMTAG_FILEGIDS, RPMTAG_FILEGROUPNAME, RPMTAG_FILEINODES, RPMTAG_FILELINKTOS, RPMTAG_FILEMD5S, RPMTAG_FILEMODES, RPMTAG_FILEMTIMES, RPMTAG_FILERDEVS, RPMTAG_FILESIZES, RPMTAG_FILESTATES, RPMTAG_FILEUIDS, RPMTAG_FILEUSERNAME, rpmTagType, stpcpy(), uint_16, xmalloc(), and xrealloc().

Referenced by rpmQuery(), and rpmQueryVerify().

int showVerifyPackage | ( | QVA_t | qva,
|  | rpmdb | db,
|  | Header | h
| ) |

Display results of package verify.

Parameters:

  qva | parsed query/verify options
  db | rpm database
  h | header to use for verify

Returns:
  result of last non-zero verify return

Definition at line 520 of file verify.c.

References _, Fclose(), FD_t, fdDup(), Header, headerNVR(), rpmQVArguments_s::qva_flags, rpmQVArguments_s::qva_prefix, QVA_t, rpmdb, RPMMESS_NORMAL, rpmMessage, rpmVerifyDigest(), rpmVerifyScript(), VERIFY_DEPS, VERIFY_DIGEST, VERIFY_FILES, VERIFY_SCRIPT, verifyDependencies(), and verifyHeader().

Referenced by rpmVerify().

## Variable Documentation

int _noDirTokens

| Should version 3 packages be produced? Definition at line 49 of file rpmdb.c.

int _noDirTokens

| Should version 3 packages be produced? Definition at line 15 of file poptDB.c.

int _noDirTokens

| Should version 3 packages be produced? Definition at line 17 of file rpmcli.h.

int _noDirTokens = 0

| Should version 3 packages be produced? Definition at line 289 of file misc.c.

int _noDirTokens

| Definition at line 49 of file poptBT.c.

int _noDirTokens

| Definition at line 18 of file pack.c.

int _noDirTokens

| Definition at line 34 of file files.c. Referenced by dbiUpdateRecord(), genCpioListAndHeader(), rpmdbAdd(), and rpmLeadVersion().

struct rpmBuildArguments_s rpmBTArgs

| Definition at line 57 of file rpmcli.h. Referenced by buildArgCallback(), and main().

struct rpmBuildArguments_s rpmBTArgs

| Definition at line 15 of file poptBT.c. Referenced by buildArgCallback(), and main().

struct poptOption rpmBuildPoptTable[]

| Definition at line 62 of file rpmcli.h.

struct poptOption rpmBuildPoptTable[]

| Definition at line 140 of file poptBT.c.

struct poptOption rpmDatabasePoptTable[]

| Definition at line 496 of file rpmcli.h.

struct rpmDatabaseArguments_s rpmDBArgs

| Definition at line 491 of file rpmcli.h. Referenced by main().

struct rpmInstallArguments_s rpmIArgs

| Definition at line 466 of file rpmcli.h. Referenced by installArgCallback(), and main().

struct rpmInstallArguments_s rpmIArgs

| Definition at line 17 of file poptI.c. Referenced by installArgCallback(), and main().

struct poptOption rpmInstallPoptTable[]

| Definition at line 471 of file rpmcli.h.

struct poptOption rpmInstallPoptTable[]

| Definition at line 96 of file poptI.c.

struct rpmSignArguments_s rpmKArgs

| Definition at line 561 of file rpmcli.h. Referenced by main(), and signArgCallback().

struct rpmSignArguments_s rpmKArgs

Initial value:

            { RESIGN_NONE, CHECKSIG_ALL, 0, NULL }

Definition at line 13 of file poptK.c.

Referenced by main(), and signArgCallback().

struct poptOption rpmQueryPoptTable[]

| Query mode options. Definition at line 269 of file rpmcli.h.

struct poptOption rpmQueryPoptTable[]

| Query mode options. Definition at line 165 of file poptQV.c.

struct rpmQVArguments_s rpmQVArgs

| Definition at line 254 of file rpmcli.h. Referenced by main(), queryArgCallback(), and rpmQVSourceArgCallback().

struct rpmQVArguments_s rpmQVArgs

| Definition at line 14 of file poptQV.c. Referenced by main(), queryArgCallback(), and rpmQVSourceArgCallback().

struct poptOption rpmQVSourcePoptTable[]

| Common query/verify mode options. Definition at line 259 of file rpmcli.h.

struct poptOption rpmQVSourcePoptTable[]

| Common query/verify mode options. Definition at line 84 of file poptQV.c.

struct poptOption rpmSignPoptTable[]

| Definition at line 566 of file rpmcli.h.

struct poptOption rpmSignPoptTable[]

Initial value:

     {
     { NULL, '\0', POPT_ARG_CALLBACK | POPT_CBFLAG_INC_DATA,
            signArgCallback, 0, NULL, NULL },
     { "addsign", '\0', 0, 0,  -1005 ,
             "add a signature to a package" , NULL },
     { "resign", '\0', 0, 0,  -1006 ,
             "sign a package (discard current signature)" , NULL },
     { "sign", '\0', POPT_ARGFLAG_DOC_HIDDEN, &rpmKArgs.sign, 0,
             "generate signature" , NULL },
     { "checksig", 'K', 0, 0, 'K',
             "verify package signature" , NULL },
     { "nogpg", '\0', POPT_BIT_CLR,
            &rpmKArgs.checksigFlags, CHECKSIG_GPG,
             "skip any GPG signatures" , NULL },
     { "nopgp", '\0', POPT_BIT_CLR|POPT_ARGFLAG_DOC_HIDDEN,
            &rpmKArgs.checksigFlags, CHECKSIG_PGP,
             "skip any PGP signatures" , NULL },
     { "nomd5", '\0', POPT_BIT_CLR,
            &rpmKArgs.checksigFlags, CHECKSIG_MD5,
             "do not verify file md5 checksums" , NULL },

       POPT_TABLEEND
    }

Definition at line 50 of file poptK.c.

struct poptOption rpmVerifyPoptTable[]

| Verify mode options. Definition at line 274 of file rpmcli.h.

struct poptOption rpmVerifyPoptTable[]

| Verify mode options. Definition at line 209 of file poptQV.c.

int specedit

| Definition at line 264 of file rpmcli.h.

int specedit = 0

| Definition at line 17 of file poptQV.c.

int specedit

| Definition at line 12 of file spec.c. Referenced by main(), newSl(), newSt(), and rpmQueryVerify().