rpm  4.5
Files | Data Structures | Functions | Variables
RPMCLI.
Collaboration diagram for RPMCLI.:

Files

file  poptBT.c
 Popt tables for build modes.
 
file  manifest.c
 
file  poptALL.c
 Popt tables for all rpm modes.
 
file  poptI.c
 Popt tables for install 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
 In Memoriam: Steve Taylor stayl.nosp@m.or@r.nosp@m.edhat.nosp@m..com was here, now he's not.
 
file  rpmrollback.c
 
file  verify.c
 Verify installed payload files from package metadata.
 
file  poptDB.c
 Popt tables for database modes.
 

Data Structures

struct  rpmQVKArguments_s
 Command line option information. More...
 
struct  rpmBuildArguments_s
 Describe build command line request. More...
 

Functions

static int checkSpec (rpmts ts, Header h)
 Parse spec file and build package. More...
 
static int rpmReSign (rpmts ts, QVA_t qva, const char **argv)
 Create/modify elements in signature header. More...
 
static int rpmcliImportPubkeys (const rpmts ts, QVA_t qva, const char **argv)
 Import public key(s). More...
 

Variables

int _noDirTokens
 Should version 3 packages be produced? More...
 
struct poptOption rpmcliAllPoptTable []
 Popt option table for options shared by all modes and executables. More...
 
struct rpmQVKArguments_s rpmQVKArgs
 
struct rpmQVKArguments_s rpmIArgs
 
struct rpmQVKArguments_s rpmDBArgs
 

RPMQV

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, RPMQV_HDLIST, RPMQV_FTSWALK,
  RPMQV_WHATNEEDS, RPMQV_SPECSRPM
}
 Query/Verify argument qualifiers. More...
 
enum  rpmVerifyAttrs_e {
  RPMVERIFY_NONE = 0, RPMVERIFY_FDIGEST = (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_CONTEXTS = (1 << 15), RPMVERIFY_READLINKFAIL = (1 << 28), RPMVERIFY_READFAIL = (1 << 29),
  RPMVERIFY_LSTATFAIL = (1 << 30), RPMVERIFY_LGETFILECONFAIL = (1 << 31)
}
 Bit(s) for rpmVerifyFile() attributes and result. More...
 
enum  rpmQueryFlags_e {
  QUERY_FOR_DEFAULT = 0, QUERY_FDIGEST = (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...
 
enum  rpmVerifyFlags_e {
  VERIFY_DEFAULT = 0, VERIFY_FDIGEST = (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_CONTEXTS = (1 << 15), VERIFY_FILES = (1 << 16), VERIFY_DEPS = (1 << 17),
  VERIFY_SCRIPT = (1 << 18), VERIFY_DIGEST = (1 << 19), VERIFY_SIGNATURE = (1 << 20), VERIFY_PATCHES = (1 << 21),
  VERIFY_HDRCHK = (1 << 22), 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)
}
 Bit(s) to control rpmVerify() operation, stored in qva_flags. More...
 
typedef enum rpmQVSources_e rpmQVSources
 Query/Verify argument qualifiers. More...
 
typedef enum rpmVerifyAttrs_e rpmVerifyAttrs
 Bit(s) for rpmVerifyFile() attributes and result. More...
 
typedef enum rpmQueryFlags_e rpmQueryFlags
 Bit(s) to control rpmQuery() operation, stored in qva_flags. More...
 
typedef enum rpmVerifyFlags_e rpmVerifyFlags
 Bit(s) to control rpmVerify() operation, stored in qva_flags. More...
 
typedef struct rpmQVKArguments_sQVA_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 poptOption rpmQVSourcePoptTable []
 Common query/verify mode options. More...
 
int specedit
 
struct poptOption rpmQueryPoptTable []
 Query mode options. More...
 
struct poptOption rpmVerifyPoptTable []
 Verify mode options. More...
 
int rpmcliShowMatches (QVA_t qva, rpmts ts)
 Display query/verify information for each header in iterator. More...
 
void rpmDisplayQueryTags (FILE *fp)
 Display list of tags that can be used in –queryformat. More...
 
int rpmQueryVerify (QVA_t qva, rpmts ts, const char *arg)
 Common query/verify source interface, called once for each CLI arg. More...
 
int showQueryPackage (QVA_t qva, rpmts ts, Header h)
 Display results of package query. More...
 
int rpmcliArgIter (rpmts ts, QVA_t qva, ARGV_t argv)
 Iterate over query/verify arg list. More...
 
int rpmcliQuery (rpmts ts, QVA_t qva, const char **argv)
 Display package information. More...
 
int rpmVerifyFile (const rpmts ts, rpmfi fi, rpmVerifyAttrs *res, rpmVerifyAttrs omitMask)
 Verify file attributes (including file digest). More...
 
int showVerifyPackage (QVA_t qva, rpmts ts, Header h)
 Display results of package verify. More...
 
int rpmcliVerify (rpmts ts, QVA_t qva, const char **argv)
 Verify package install. More...
 

RPMEIU

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), INSTALL_ALLMATCHES = (1 << 9)
}
 Bit(s) to control rpmInstall() and rpmErase() operation. More...
 
typedef enum
rpmInstallInterfaceFlags_e 
rpmInstallInterfaceFlags
 Bit(s) to control rpmInstall() and rpmErase() operation. More...
 
typedef struct IDT_sIDT
 A rollback transaction id element. More...
 
typedef struct IDTindex_sIDTX
 A rollback transaction id index. More...
 
struct poptOption rpmInstallPoptTable []
 
int rpmcliPackagesTotal
 
int rpmcliHashesCurrent
 
int rpmcliHashesTotal
 
unsigned long long rpmcliProgressCurrent
 
unsigned long long rpmcliProgressTotal
 
void * rpmShowProgress (const void *arg, const rpmCallbackType what, const unsigned long long amount, const unsigned long long total, fnpyKey key, void *data)
 The rpm CLI generic transaction callback handler. More...
 
int rpmInstallSource (rpmts ts, const char *arg, const char **specFilePtr, const char **cookie)
 Install source rpm package. More...
 
int rpmInstall (rpmts ts, QVA_t ia, const char **fileArgv)
 Install/upgrade/freshen binary rpm package. More...
 
int rpmErase (rpmts ts, QVA_t ia, const char **argv)
 Erase binary rpm package. More...
 
int rpmRollback (rpmts ts, QVA_t ia, const char **argv)
 Rollback transactions, erasing new, reinstalling old, package(s). More...
 
IDTX IDTXfree (IDTX idtx)
 Destroy id index. More...
 
IDTX IDTXnew (void)
 Create id index. More...
 
IDTX IDTXgrow (IDTX idtx, int need)
 Insure that index has room for "need" elements. More...
 
IDTX IDTXsort (IDTX idtx)
 Sort tag (instance,value) pairs. More...
 
IDTX IDTXload (rpmts ts, rpmTag tag, uint_32 rbtid)
 Load tag (instance,value) pairs from rpm databse, and return sorted id index. More...
 
IDTX IDTXglob (rpmts ts, const char *globstr, rpmTag tag, uint_32 rbtid)
 Load tag (instance,value) pairs from packages, and return sorted id index. More...
 

RPMDB

struct poptOption rpmDatabasePoptTable []
 

RPMK

enum  rpmSignFlags_e {
  RPMSIGN_NONE = 0, RPMSIGN_CHK_SIGNATURE = 'K', RPMSIGN_NEW_SIGNATURE = 'R', RPMSIGN_ADD_SIGNATURE = 'A',
  RPMSIGN_DEL_SIGNATURE = 'D', RPMSIGN_IMPORT_PUBKEY = 'I'
}
 Bit(s) to control rpmReSign() operation. More...
 
typedef enum rpmSignFlags_e rpmSignFlags
 Bit(s) to control rpmReSign() operation. More...
 
struct poptOption rpmSignPoptTable []
 Signature mode options. More...
 
rpmRC rpmcliImportPubkey (const rpmts ts, const unsigned char *pkt, ssize_t pktlen)
 Import public key packet(s). More...
 
int rpmcliSign (rpmts ts, QVA_t qva, const char **argv)
 Create/Modify/Check elements from signature header. More...
 

RPMBT

typedef struct
rpmBuildArguments_s
BTA_t
 
struct rpmBuildArguments_s rpmBTArgs
 
struct poptOption rpmBuildPoptTable []
 

Detailed Description

Typedef Documentation

typedef struct rpmBuildArguments_s* BTA_t

Definition at line 833 of file rpmcli.h.

typedef struct IDT_s* IDT

A rollback transaction id element.

Definition at line 543 of file rpmcli.h.

typedef struct IDTindex_s* IDTX

A rollback transaction id index.

Definition at line 561 of file rpmcli.h.

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

Function to query spec file.

Parameters
tstransaction set
qvaparsed query/verify options
argquery argument
Returns
0 on success

Definition at line 272 of file rpmcli.h.

typedef struct rpmQVKArguments_s* QVA_t

Definition at line 250 of file rpmcli.h.

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

Function to display iterator matches.

Parameters
qvaparsed query/verify options
tstransaction set
hheader to use for query/verify
Returns
0 on success

Definition at line 260 of file rpmcli.h.

Bit(s) to control rpmInstall() and rpmErase() operation.

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

Todo:
Merge rpmQueryFlags, rpmVerifyFlags, and rpmVerifyAttrs?.

Query/Verify argument qualifiers.

Todo:
Reassign to tag values.

Bit(s) to control rpmReSign() operation.

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

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

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

Enumeration Type Documentation

Bit(s) to control rpmInstall() and rpmErase() 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 (erase)

Definition at line 442 of file rpmcli.h.

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

Todo:
Merge rpmQueryFlags, rpmVerifyFlags, and rpmVerifyAttrs?.
Enumerator
QUERY_FOR_DEFAULT 
QUERY_FDIGEST 

from –nofdigest

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

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_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 digest, usually MD5).

RPMQV_TID 

... from install transaction id (time stamp).

RPMQV_HDLIST 

... from system hdlist.

RPMQV_FTSWALK 

... from fts(3) walk.

RPMQV_WHATNEEDS 

... from requires using contained provides.

RPMQV_SPECSRPM 

... srpm from spec file parse (query only).

Definition at line 116 of file rpmcli.h.

Bit(s) to control rpmReSign() operation.

Enumerator
RPMSIGN_NONE 
RPMSIGN_CHK_SIGNATURE 

from –checksig

RPMSIGN_NEW_SIGNATURE 

from –resign

RPMSIGN_ADD_SIGNATURE 

from –addsign

RPMSIGN_DEL_SIGNATURE 

from –delsign

RPMSIGN_IMPORT_PUBKEY 

from –import

Definition at line 687 of file rpmcli.h.

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

Enumerator
RPMVERIFY_NONE 
RPMVERIFY_FDIGEST 

from verify(digest)

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_CONTEXTS 

verify: from –nocontexts

RPMVERIFY_READLINKFAIL 

readlink failed

RPMVERIFY_READFAIL 

file read failed

RPMVERIFY_LSTATFAIL 

lstat failed

RPMVERIFY_LGETFILECONFAIL 

lgetfilecon failed

Definition at line 140 of file rpmcli.h.

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

Todo:
Merge rpmQueryFlags, rpmVerifyFlags, and rpmVerifyAttrs values?.
Enumerator
VERIFY_DEFAULT 
VERIFY_FDIGEST 

from –nofdigest

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_CONTEXTS 

verify: from –nocontexts

VERIFY_FILES 

verify: from –nofiles

VERIFY_DEPS 

verify: from –nodeps

VERIFY_SCRIPT 

verify: from –noscripts

VERIFY_DIGEST 

verify: from –nodigest

VERIFY_SIGNATURE 

verify: from –nosignature

VERIFY_PATCHES 

verify: from –nopatches

VERIFY_HDRCHK 

verify: from –nohdrchk

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

Function Documentation

static int checkSpec ( rpmts  ts,
Header  h 
)
static
IDTX IDTXfree ( IDTX  idtx)

Destroy id index.

Parameters
idtxid index
Returns
NULL always

Definition at line 40 of file rpmrollback.c.

References _free(), IDT_s::h, headerFree(), IDTindex_s::idt, IDT_s::key, and IDTindex_s::nidt.

Referenced by rpmRollback(), rpmts_IDTXglob(), and rpmts_IDTXload().

IDTX IDTXglob ( rpmts  ts,
const char *  globstr,
rpmTag  tag,
uint_32  rbtid 
)

Load tag (instance,value) pairs from packages, and return sorted id index.

Parameters
tstransaction set
globstrglob expression
tagrpm tag
rbtidrollback goal
Returns
id index

Definition at line 138 of file rpmrollback.c.

References _, _free(), IDT_s::done, Fclose(), Ferror(), Fopen(), Fstrerror(), IDT_s::h, headerFree(), headerGetEntry(), headerGetOrigin(), headerIsEntry(), headerLink(), IDTindex_s::idt, IDTXgrow(), IDTXsort(), IDT_s::instance, IDT_s::key, IDTindex_s::nidt, RPMERR_OPEN, rpmError, rpmgiEscapeSpaces(), rpmGlob(), RPMRC_NOKEY, RPMRC_NOTTRUSTED, RPMRC_OK, rpmReadPackageFile(), RPMTAG_SOURCERPM, IDT_s::u32, and IDT_s::val.

Referenced by rpmRollback(), and rpmts_IDTXglob().

IDTX IDTXgrow ( IDTX  idtx,
int  need 
)

Insure that index has room for "need" elements.

Parameters
idtxid index
needadditional no. of elements needed
Returns
id index (with room for "need" elements)

Definition at line 64 of file rpmrollback.c.

References IDTindex_s::alloced, IDTindex_s::delta, IDTindex_s::idt, IDTXnew(), IDTindex_s::nidt, IDTindex_s::size, and xrealloc().

Referenced by IDTXglob(), and IDTXload().

IDTX IDTXload ( rpmts  ts,
rpmTag  tag,
uint_32  rbtid 
)

Load tag (instance,value) pairs from rpm databse, and return sorted id index.

Parameters
tstransaction set
tagrpm tag
rbtidrollback goal
Returns
id index

Definition at line 88 of file rpmrollback.c.

References IDT_s::done, IDT_s::h, headerGetEntry(), headerLink(), IDTindex_s::idt, IDTXgrow(), IDTXsort(), IDT_s::instance, IDT_s::key, IDTindex_s::nidt, RPM_INT32_TYPE, RPM_NULL_TYPE, rpmdbFreeIterator(), rpmdbGetIteratorOffset(), rpmdbNextIterator(), rpmdbSetIteratorRE(), RPMTAG_NAME, rpmtsInitIterator(), IDT_s::u32, and IDT_s::val.

Referenced by rpmRollback(), and rpmts_IDTXload().

IDTX IDTXnew ( void  )

Create id index.

Returns
new id index

Definition at line 56 of file rpmrollback.c.

References IDTindex_s::delta, IDTindex_s::size, and xcalloc().

Referenced by IDTXgrow().

IDTX IDTXsort ( IDTX  idtx)

Sort tag (instance,value) pairs.

Parameters
idtxid index
Returns
id index

Definition at line 81 of file rpmrollback.c.

References IDTindex_s::idt, IDTintcmp(), IDTindex_s::nidt, and IDTindex_s::size.

Referenced by IDTXglob(), and IDTXload().

int rpmcliArgIter ( rpmts  ts,
QVA_t  qva,
ARGV_t  argv 
)

Iterate over query/verify arg list.

Parameters
tstransaction set
qvaparsed query/verify options
argvquery argument(s) (or NULL)
Returns
0 on success, else no. of failures

Definition at line 737 of file query.c.

References FTS_COMFOLLOW, FTS_LOGICAL, FTS_NOSTAT, ftsOpts, giFlags, rpmQVKArguments_s::qva_gi, rpmQVKArguments_s::qva_rc, rpmQVKArguments_s::qva_source, RPMDBI_ARGLIST, RPMDBI_FTSWALK, RPMDBI_HDLIST, RPMDBI_LABEL, RPMDBI_PACKAGES, RPMGI_NOGLOB, RPMGI_NOHEADER, RPMGI_NONE, RPMGI_TSADD, rpmgiFree(), rpmgiHdrPath(), rpmgiNew(), rpmgiNext(), rpmgiSetArgs(), rpmQueryVerify(), RPMQV_ALL, RPMQV_FTSWALK, RPMQV_HDLIST, RPMQV_RPM, RPMRC_NOTFOUND, RPMRC_OK, and rpmtsEmpty().

Referenced by rpmcliQuery(), and rpmcliVerify().

rpmRC rpmcliImportPubkey ( const rpmts  ts,
const unsigned char *  pkt,
ssize_t  pktlen 
)
static int rpmcliImportPubkeys ( const rpmts  ts,
QVA_t  qva,
const char **  argv 
)
static

Import public key(s).

Todo:
Implicit –update policy for gpg-pubkey headers.
Parameters
tstransaction set
qvamode flags and parameters
argvarray of pubkey file names (NULL terminated)
Returns
0 on success

Definition at line 567 of file rpmchecksig.c.

References _, _free(), PGPARMOR_PUBKEY, pgpReadPkts(), rpmcliImportPubkey(), RPMERR_IMPORT, rpmError, rpmExpand(), RPMRC_OK, and rpmtsClean().

Referenced by rpmcliSign().

int rpmcliQuery ( rpmts  ts,
QVA_t  qva,
const char **  argv 
)

Display package information.

Todo:
hack: RPMQV_ALL can pass char ** arglist = NULL, not char * arg. Union?
Parameters
tstransaction set
qvaparsed query/verify options
argvquery argument(s) (or NULL)
Returns
0 on success, else no. of failures

Definition at line 840 of file query.c.

References _free(), _QUERY_FOR_BITS, _RPMVSF_NODIGESTS, _RPMVSF_NOSIGNATURES, rpmQVKArguments_s::depFlags, rpmQVKArguments_s::qva_flags, rpmQVKArguments_s::qva_queryFormat, rpmQVKArguments_s::qva_showPackage, rpmcliArgIter(), rpmExpand(), rpmExpandNumeric(), rpmtsSetDFlags(), rpmtsSetFlags(), rpmtsSetVSFlags(), RPMVSF_NOHDRCHK, showQueryPackage(), rpmQVKArguments_s::transFlags, VERIFY_DIGEST, VERIFY_HDRCHK, VERIFY_SIGNATURE, and xstrdup().

Referenced by main().

int rpmcliShowMatches ( QVA_t  qva,
rpmts  ts 
)

Display query/verify information for each header in iterator.

This routine uses:

  • qva->qva_mi rpm database iterator
  • qva->qva_showPackage query/verify display routine
Parameters
qvaparsed query/verify options
tstransaction set
Returns
result of last non-zero showPackage() return

Definition at line 438 of file query.c.

References rpmQVKArguments_s::qva_mi, rpmQVKArguments_s::qva_showFAIL, rpmQVKArguments_s::qva_showOK, rpmQVKArguments_s::qva_showPackage, rpmQVKArguments_s::qva_source, rpmdbFreeIterator(), rpmdbNextIterator(), and RPMQV_DBOFFSET.

Referenced by rpmQueryVerify().

int rpmcliSign ( rpmts  ts,
QVA_t  qva,
const char **  argv 
)

Create/Modify/Check elements from signature header.

Parameters
tstransaction set
qvamode flags and parameters
argvarray of arguments (NULL terminated)
Returns
0 on success

Definition at line 1069 of file rpmchecksig.c.

References Fclose(), Ferror(), Fopen(), rpmQVKArguments_s::qva_mode, rpmcliImportPubkeys(), rpmReSign(), RPMSIGN_ADD_SIGNATURE, RPMSIGN_CHK_SIGNATURE, RPMSIGN_DEL_SIGNATURE, RPMSIGN_IMPORT_PUBKEY, RPMSIGN_NEW_SIGNATURE, RPMSIGN_NONE, and rpmVerifySignatures().

Referenced by main().

int rpmcliVerify ( rpmts  ts,
QVA_t  qva,
const char **  argv 
)

Verify package install.

Todo:
hack: RPMQV_ALL can pass char ** arglist = NULL, not char * arg. Union?
Parameters
tstransaction set
qvaparsed query/verify options
argvverify argument(s) (or NULL)
Returns
0 on success, else no. of failures

Definition at line 511 of file verify.c.

References _RPMVSF_NODIGESTS, _RPMVSF_NOSIGNATURES, rpmQVKArguments_s::depFlags, rpmQVKArguments_s::qva_flags, rpmQVKArguments_s::qva_showPackage, rpmcliArgIter(), rpmExpandNumeric(), rpmtsEmpty(), rpmtsSetDFlags(), rpmtsSetFlags(), rpmtsSetVSFlags(), RPMVSF_NEEDPAYLOAD, RPMVSF_NOHDRCHK, showVerifyPackage(), rpmQVKArguments_s::transFlags, VERIFY_DIGEST, VERIFY_HDRCHK, and VERIFY_SIGNATURE.

Referenced by main().

void rpmDisplayQueryTags ( FILE *  fp)
int rpmErase ( rpmts  ts,
QVA_t  ia,
const char **  argv 
)
int rpmInstall ( rpmts  ts,
QVA_t  ia,
const char **  fileArgv 
)

Install/upgrade/freshen binary rpm package.

Todo:
Use rpmdsCompare rather than rpmVersionCompare.
Parameters
tstransaction set
iamode flags and parameters
fileArgvarray of package file names (NULL terminated)
Returns
0 on success
Todo:
Generalize –freshen policies.

Definition at line 294 of file rpminstall.c.

References _, _free(), _RPMVSF_NODIGESTS, _RPMVSF_NOSIGNATURES, alloca(), rpmQVKArguments_s::arbtid, rpmEIU::argc, rpmEIU::argv, D_, rpmQVKArguments_s::depFlags, Fclose(), rpmEIU::fd, Ferror(), rpmEIU::fnp, Fopen(), Fstrerror(), ftpStrerror(), rpmEIU::h, headerFree(), headerFreeData(), headerGetEntry(), headerIsEntry(), headerNVR(), INSTALL_FRESHEN, INSTALL_LABEL, INSTALL_NODEPS, INSTALL_NOORDER, INSTALL_UPGRADE, rpmQVKArguments_s::installInterfaceFlags, rpmEIU::isSource, matchpathcon_init, name, rpmRelocation_s::newPath, rpmEIU::numFailed, rpmEIU::numPkgs, rpmEIU::numRPMS, rpmEIU::numSRPMS, rpmRelocation_s::oldPath, rpmEIU::pkgState, rpmEIU::pkgURL, rpmEIU::pkgx, rpmEIU::prevx, rpmQVKArguments_s::probFilter, rpmQVKArguments_s::qva_flags, rpmEIU::relocations, rpmQVKArguments_s::relocations, rpmcliPackagesTotal, rpmdbFreeIterator(), rpmdbGetIteratorCount(), rpmdbNextIterator(), rpmdsFree(), rpmdsSingle(), RPMERR_MANIFEST, RPMERR_OPEN, rpmError, rpmExpandNumeric(), rpmGenPath(), rpmGetPath(), rpmgiEscapeSpaces(), rpmGlob(), rpmInstallSourcePackage(), rpmIsVerbose, RPMMESS_DEBUG, RPMMESS_ERROR, RPMMESS_NORMAL, RPMMESS_WARNING, rpmMessage, rpmpsFree(), rpmpsNumProblems(), rpmpsPrint(), rpmEIU::rpmrc, RPMRC_FAIL, RPMRC_NOKEY, RPMRC_NOTFOUND, RPMRC_NOTTRUSTED, RPMRC_OK, rpmReadPackageFile(), rpmReadPackageManifest(), rpmShowProgress(), RPMTAG_NAME, RPMTAG_PREFIXES, RPMTAG_REQUIRENAME, RPMTAG_SOURCERPM, RPMTRANS_FLAG_NOCONTEXTS, RPMTRANS_FLAG_REPACKAGE, RPMTRANS_FLAG_TEST, rpmtsAddInstallElement(), rpmtsCheck(), rpmtsClean(), rpmtsEmpty(), rpmtsFlags(), rpmtsInitIterator(), rpmtsOrder(), rpmtsProblems(), rpmtsRootDir(), rpmtsRun(), rpmtsSetARBGoal(), rpmtsSetDFlags(), rpmtsSetFlags(), rpmtsSetNotifyCallback(), rpmtsSetVSFlags(), rpmtsSolve(), rpmVersionCompare(), RPMVSF_NEEDPAYLOAD, RPMVSF_NOHDRCHK, rpmEIU::sourceURL, rpmQVKArguments_s::transFlags, Unlink(), URL_IS_DASH, URL_IS_FTP, URL_IS_HKP, URL_IS_HTTP, URL_IS_HTTPS, URL_IS_PATH, urlGetFile(), urlIsURL(), urlPath(), VERIFY_DIGEST, VERIFY_HDRCHK, VERIFY_SIGNATURE, xrealloc(), and xstrdup().

Referenced by main().

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

Install source rpm package.

Parameters
tstransaction set
argsource rpm file name
Return values
*specFilePtr(installed) spec file name
*cookie
Returns
0 on success

Definition at line 887 of file rpminstall.c.

References _, _free(), Fclose(), rpmEIU::fd, Ferror(), Fopen(), Fstrerror(), rpmInstallSourcePackage(), rpmIsVerbose, RPMMESS_ERROR, rpmMessage, rpmEIU::rpmrc, RPMRC_OK, rpmtsSetVSFlags(), rpmtsVSFlags(), and RPMVSF_NEEDPAYLOAD.

Referenced by main().

int rpmQueryVerify ( QVA_t  qva,
rpmts  ts,
const char *  arg 
)
static int rpmReSign ( rpmts  ts,
QVA_t  qva,
const char **  argv 
)
static
int rpmRollback ( rpmts  ts,
QVA_t  ia,
const char **  argv 
)

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

Parameters
tstransaction set
iamode flags and parameters
argvarray of arguments (NULL terminated)
Returns
0 on success
Todo:
Transaction handling, more, needs work.

Definition at line 404 of file rpmrollback.c.

References _, _free(), _RPMVSF_NODIGESTS, _RPMVSF_NOSIGNATURES, rpmQVKArguments_s::depFlags, IDT_s::done, findErases(), IDT_s::h, headerFree(), IDTindex_s::idt, IDTXfree(), IDTXglob(), IDTXload(), INSTALL_ERASE, INSTALL_FRESHEN, INSTALL_INSTALL, INSTALL_LABEL, INSTALL_UPGRADE, rpmQVKArguments_s::installInterfaceFlags, IDT_s::key, N_, IDTindex_s::nidt, rpmQVKArguments_s::no_rollback_links, rpmQVKArguments_s::numrbtidExcludes, rpmQVKArguments_s::probFilter, rpmQVKArguments_s::qva_flags, rpmQVKArguments_s::rbCheck, rpmQVKArguments_s::rbOrder, rpmQVKArguments_s::rbRun, rpmQVKArguments_s::rbtid, rpmQVKArguments_s::rbtidExcludes, rpmQVKArguments_s::relocations, rpmcliPackagesTotal, rpmExpand(), rpmExpandNumeric(), rpmIsDebug, rpmIsVerbose, RPMMESS_DEBUG, RPMMESS_NORMAL, rpmMessage, RPMPROB_FILTER_OLDPACKAGE, rpmpsCreate(), rpmpsFree(), rpmrbProblems(), rpmShowProgress(), RPMTAG_INSTALLTID, RPMTAG_REMOVETID, RPMTRANS_TYPE_ROLLBACK, rpmtsAddInstallElement(), rpmtsClean(), rpmtsEmpty(), rpmtsSetDFlags(), rpmtsSetFlags(), rpmtsSetNotifyCallback(), rpmtsSetType(), rpmtsSetVSFlags(), RPMVSF_NEEDPAYLOAD, RPMVSF_NOHDRCHK, rpmQVKArguments_s::transFlags, IDT_s::u32, IDT_s::val, VERIFY_DIGEST, VERIFY_HDRCHK, and VERIFY_SIGNATURE.

Referenced by main(), rpmts_Rollback(), and rpmtsRollback().

void* rpmShowProgress ( const void *  arg,
const rpmCallbackType  what,
const unsigned long long  amount,
const unsigned long long  total,
fnpyKey  key,
void *  data 
)

The rpm CLI generic transaction callback handler.

Todo:
Remove headerSprintf() from the progress callback.
Warning
This function's args have changed, so the function cannot be used portably
Deprecated:
Transaction callback arguments need to change, so don't rely on this routine in the rpmcli API.
Parameters
argper-callback private data (e.g. an rpm header)
whatcallback identifier
amountper-callback progress info
totalper-callback progress info
keyopaque header key (e.g. file name or PyObject)
dataprivate data (e.g. rpmInstallInterfaceFlags)
Returns
per-callback data (e.g. an opened FD_t)

Definition at line 93 of file rpminstall.c.

Referenced by rpmErase(), rpmInstall(), and rpmRollback().

int rpmVerifyFile ( const rpmts  ts,
rpmfi  fi,
rpmVerifyAttrs res,
rpmVerifyAttrs  omitMask 
)

Verify file attributes (including file digest).

Todo:
gnorpm and python bindings prevent this from being static.
Parameters
tstransaction set
fifile info (with linked header and current file index)
Return values
*resbit(s) returned to indicate failure
Parameters
omitMaskbit(s) to disable verify checks
Returns
0 on success (or not installed), 1 on error

Definition at line 29 of file verify.c.

References alloca(), dodigest(), gidToGname(), Lstat(), name, Readlink(), rpmfiDigest(), rpmfiFFlags(), rpmfiFGroup(), rpmfiFLink(), rpmfiFMode(), rpmfiFMtime(), rpmfiFN(), rpmfiFRdev(), rpmfiFSize(), rpmfiFState(), rpmfiFUser(), RPMFILE_GHOST, RPMFILE_STATE_NETSHARED, RPMFILE_STATE_NORMAL, RPMFILE_STATE_NOTINSTALLED, RPMFILE_STATE_REPLACED, RPMFILE_STATE_WRONGCOLOR, rpmfiVFlags(), rpmtsRootDir(), RPMVERIFY_FAILURES, RPMVERIFY_FDIGEST, RPMVERIFY_FILESIZE, RPMVERIFY_GROUP, RPMVERIFY_LINKTO, RPMVERIFY_LSTATFAIL, RPMVERIFY_MODE, RPMVERIFY_MTIME, RPMVERIFY_NONE, RPMVERIFY_RDEV, RPMVERIFY_READFAIL, RPMVERIFY_READLINKFAIL, RPMVERIFY_USER, S_ISDEV, S_ISLNK, stpcpy(), and uidToUname().

Referenced by verifyHeader().

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

Display results of package verify.

Parameters
qvaparsed query/verify options
tstransaction set
hheader to use for verify
Returns
result of last non-zero verify return

Definition at line 457 of file verify.c.

References _rpmds_unspecified_epoch_noise, Fclose(), fdDup(), headerIsEntry(), rpmQVKArguments_s::qva_flags, rpmfiFree(), rpmfiNew(), rpmIsVerbose, RPMTAG_BASENAMES, RPMTAG_VERIFYSCRIPT, rpmVerifyScript(), VERIFY_DEPS, VERIFY_FILES, VERIFY_SCRIPT, verifyDependencies(), and verifyHeader().

Referenced by rpmcliVerify().

Variable Documentation

int _noDirTokens

Should version 3 packages be produced?

struct rpmBuildArguments_s rpmBTArgs

Definition at line 15 of file poptBT.c.

Referenced by buildArgCallback(), and main().

struct poptOption rpmBuildPoptTable[]

Definition at line 135 of file poptBT.c.

struct poptOption rpmcliAllPoptTable[]

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

Definition at line 343 of file poptALL.c.

int rpmcliHashesCurrent

Definition at line 28 of file rpminstall.c.

Referenced by printHash(), and rpmShowProgress().

int rpmcliHashesTotal

Definition at line 30 of file rpminstall.c.

Referenced by printHash().

int rpmcliPackagesTotal

Definition at line 26 of file rpminstall.c.

Referenced by rpmInstall(), rpmRollback(), rpmShowProgress(), and rpmtsAddInstallElement().

unsigned long long rpmcliProgressCurrent

Definition at line 32 of file rpminstall.c.

Referenced by printHash(), and rpmShowProgress().

unsigned long long rpmcliProgressTotal

Definition at line 34 of file rpminstall.c.

Referenced by printHash(), and rpmShowProgress().

rpmQueryFlags rpmcliQueryFlags

Bit(s) from common command line options.

Definition at line 119 of file poptALL.c.

Referenced by rpmcliAllArgCallback().

struct poptOption rpmDatabasePoptTable[]

Definition at line 16 of file poptDB.c.

struct rpmQVKArguments_s rpmDBArgs

Definition at line 12 of file poptDB.c.

Referenced by main().

struct rpmQVKArguments_s rpmIArgs

Definition at line 18 of file poptI.c.

Referenced by installArgCallback(), and main().

struct poptOption rpmInstallPoptTable[]

Definition at line 213 of file poptI.c.

struct poptOption rpmQueryPoptTable[]

Query mode options.

Definition at line 276 of file poptQV.c.

struct rpmQVKArguments_s rpmQVKArgs

Definition at line 15 of file poptQV.c.

Referenced by main(), queryArgCallback(), and rpmQVSourceArgCallback().

struct poptOption rpmQVSourcePoptTable[]

Common query/verify mode options.

Definition at line 109 of file poptQV.c.

struct poptOption rpmSignPoptTable[]

Signature mode options.

Definition at line 438 of file poptQV.c.

struct poptOption rpmVerifyPoptTable[]

Verify mode options.

Definition at line 333 of file poptQV.c.

int specedit

Definition at line 18 of file poptQV.c.