rpm  5.4.14
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 rpmcliShowMatches (QVA_t qva, rpmts ts)
 Display query/verify information for each header in iterator. 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...
 
static int rpmvfVerify (rpmvf vf, int spew)
 Verify file attributes (including file digest). 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 = RPMTAG_GROUP, RPMQV_WHATPROVIDES, RPMQV_WHATREQUIRES, RPMQV_TRIGGEREDBY = RPMTAG_TRIGGERNAME,
  RPMQV_DBOFFSET, RPMQV_SPECFILE, RPMQV_PKGID, RPMQV_HDRID,
  RPMQV_FILEID, RPMQV_TID, RPMQV_HDLIST, RPMQV_FTSWALK,
  RPMQV_WHATNEEDS, RPMQV_SPECSRPM, RPMQV_SOURCEPKGID, RPMQV_WHATCONFLICTS = RPMTAG_CONFLICTNAME,
  RPMQV_WHATOBSOLETES = RPMTAG_OBSOLETENAME
}
 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_CAPS = (1 << 8), RPMVERIFY_HMAC = (1 << 14), 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_CAPS = (1 << 8), QUERY_HMAC = (1 << 14), 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_CAPS = (1 << 8), VERIFY_HMAC = (1 << 14), 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 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, const char **argv)
 Iterate over query/verify arg list. More...
 
int rpmcliQuery (rpmts ts, QVA_t qva, const char **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, 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 rpmcliInstall() and rpmErase() operation. More...
 
typedef enum
rpmInstallInterfaceFlags_e 
rpmInstallInterfaceFlags
 Bit(s) to control rpmcliInstall() and rpmErase() operation. More...
 
struct poptOption rpmInstallPoptTable []
 
int rpmcliPackagesTotal
 
int rpmcliHashesCurrent
 
int rpmcliHashesTotal
 
rpmuint64_t rpmcliProgressCurrent
 
rpmuint64_t rpmcliProgressTotal
 
voidrpmShowProgress (const void *arg, const rpmCallbackType what, const rpmuint64_t amount, const rpmuint64_t 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 rpmcliInstallProblems (rpmts ts, const char *msg, int rc)
 Report package problems (if any). More...
 
int rpmcliInstallSuggests (rpmts ts)
 Report packages(if any) that satisfy unresolved dependencies. More...
 
int rpmcliInstallCheck (rpmts ts)
 Check package element dependencies in a transaction set, reporting problems. More...
 
int rpmcliInstallOrder (rpmts ts)
 Order package elements in a transaction set, reporting problems. More...
 
int rpmcliInstallRun (rpmts ts, rpmps okProbs, rpmprobFilterFlags ignoreSet)
 Install/erase package elements in a transaction set, reporting problems. More...
 
int rpmcliInstall (rpmts ts, QVA_t ia, const char **argv)
 Install/upgrade/freshen binary rpm package. More...
 
int rpmErase (rpmts ts, QVA_t ia, const char **argv)
 Erase binary rpm package. 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 740 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 278 of file rpmcli.h.

typedef struct rpmQVKArguments_s* QVA_t

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

Bit(s) to control rpmcliInstall() 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 rpmcliInstall() 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 407 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_CAPS 

(unimplemented)

QUERY_HMAC 
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 170 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 
RPMQV_WHATPROVIDES 

... from provides db search.

RPMQV_WHATREQUIRES 

... from requires db search.

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

RPMQV_SOURCEPKGID 

... from source package id (header+payload MD5).

RPMQV_WHATCONFLICTS 
RPMQV_WHATOBSOLETES 

Definition at line 114 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 595 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_CAPS 

from verify(caps) (unimplemented)

RPMVERIFY_HMAC 
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 141 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_CAPS 

(unimplemented)

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

Function Documentation

int rpmcliArgIter ( rpmts  ts,
QVA_t  qva,
const char **  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
rpmRC rpmcliImportPubkey ( const rpmts  ts,
const unsigned char *  pkt,
ssize_t  pktlen 
)

Import public key packet(s).

Todo:
Implicit –update policy for gpg-pubkey headers.
Parameters
tstransaction set
pktpgp pubkey packet(s)
pktlenpgp pubkey length
Returns
RPMRC_OK/RPMRC_FAIL

Definition at line 509 of file rpmchecksig.c.

References _free(), alloca(), _HE_s::append, rpmDataType_u::argv, _HE_s::c, ctx, dig, exit, fn, h, headerFree, headerGetMagic(), headerNew(), headerPut(), headerReload(), headerSprintf(), headerUnload(), memset(), n, nb, NULL, _HE_s::p, pgpDigFree(), pgpDigNew(), pgpGetPubkey(), pgpGrabPkts(), PGPHASHALGO_SHA1, pgpHexStr(), pgpPktLen(), PGPPUBKEYALGO_UNKNOWN, pgpPubkeyFingerprint(), pktlen, rpmDataType_u::ptr, rc, RPM_BIN_TYPE, RPM_STRING_ARRAY_TYPE, RPM_STRING_TYPE, RPM_UINT32_TYPE, rpmdbAdd(), RPMDIGEST_NONE, rpmDigestFinal(), rpmDigestInit(), rpmDigestUpdate(), rpmHeaderFormats, RPMRC_FAIL, RPMRC_NOKEY, RPMRC_NOTFOUND, RPMRC_NOTTRUSTED, RPMRC_OK, RPMSENSE_EQUAL, RPMTAG_ARCH, RPMTAG_BUILDHOST, RPMTAG_BUILDTIME, RPMTAG_DESCRIPTION, RPMTAG_GROUP, RPMTAG_HEADERIMMUTABLE, RPMTAG_INSTALLTIME, RPMTAG_LICENSE, RPMTAG_NAME, RPMTAG_OS, RPMTAG_PACKAGECOLOR, RPMTAG_PROVIDEFLAGS, RPMTAG_PROVIDENAME, RPMTAG_PROVIDEVERSION, RPMTAG_PUBKEYS, RPMTAG_RELEASE, RPMTAG_RPMVERSION, RPMTAG_SHA1HEADER, RPMTAG_SIZE, RPMTAG_SOURCERPM, RPMTAG_SUMMARY, RPMTAG_VERSION, rpmtsGetRdb(), rpmtsGetTid(), rpmtsOpenDB(), RPMVERSION, RPMVSF_DEFAULT, SHA1, stpcpy(), rpmDataType_u::str, _HE_s::t, t, _HE_s::tag, u, rpmDataType_u::ui32p, void, xmalloc, xstrdup(), and xx.

Referenced by rpmcliImportPubkeys().

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 867 of file rpmchecksig.c.

References _, _free(), fn, i, NULL, PGPARMOR_PUBKEY, pgpReadPkts(), pkt, pktlen, rc, res, rpmcliImportPubkey(), rpmExpand(), rpmlog(), RPMLOG_ERR, rpmrc, RPMRC_OK, rpmtsClean(), s, and t.

Referenced by rpmcliSign().

int rpmcliInstall ( rpmts  ts,
QVA_t  ia,
const char **  argv 
)

Install/upgrade/freshen binary rpm package.

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

Definition at line 535 of file rpminstall.c.

References _, _free(), addMacro(), alloca(), rpmQVKArguments_s::arbtid, rpmDataType_u::argv, argvAdd(), argvFree(), assert(), _HE_s::c, count, D_, delMacro(), rpmQVKArguments_s::depFlags, exit, fn, FTS_COMFOLLOW, FTS_LOGICAL, FTS_NOSTAT, h, headerFree, headerGet(), headerLink(), INSTALL_FRESHEN, INSTALL_LABEL, INSTALL_NODEPS, INSTALL_NOORDER, INSTALL_UPGRADE, rpmQVKArguments_s::installInterfaceFlags, memset(), mi, rpmRelocation_s::newPath, NULL, rpmRelocation_s::oldPath, _HE_s::p, rpmQVKArguments_s::probFilter, rpmDataType_u::ptr, rpmQVKArguments_s::qva_flags, QVA_ISSET, rpmQVKArguments_s::qva_source, rc, rpmQVKArguments_s::relocations, relocations, RMIL_GLOBAL, rpmcliEraseElement(), rpmcliInstallCheck(), rpmcliInstallElementPath(), rpmcliInstallOrder(), rpmcliInstallRun(), rpmcliInstallSuggests(), RPMDBI_ARGLIST, RPMDBI_FTSWALK, rpmExpandNumeric(), RPMGI_NONE, rpmgiFree(), rpmgiHdrPath(), rpmgiHeader(), rpmgiNew(), rpmgiNext(), rpmgiRc(), rpmgiReadHeader(), rpmgiSetArgs(), rpmioFtsOpts, rpmIsVerbose, rpmlog(), RPMLOG_DEBUG, RPMLOG_ERR, rpmmiCount(), rpmmiFree(), rpmmiNext(), RPMQV_FTSWALK, rpmrc, RPMRC_NOTFOUND, RPMRC_OK, rpmShowProgress(), RPMTAG_NAME, RPMTAG_NVRA, RPMTAG_PREFIXES, RPMTRANS_FLAG_NOCONTEXTS, RPMTRANS_FLAG_REPACKAGE, rpmtsAddInstallElement(), rpmtsClean(), rpmtsEmpty(), rpmtsInitIterator(), rpmtsNElements(), rpmtsSetARBGoal(), rpmtsSetDFlags(), rpmtsSetFlags(), rpmtsSetGoal(), rpmtsSetNotifyCallback(), rpmtsSetVSFlags(), rpmVersionCompare(), rpmDataType_u::str, _HE_s::tag, tag, rpmQVKArguments_s::transFlags, TSM_INSTALL, void, VSF_SET, vsflags, xstrdup(), and xx.

Referenced by main().

int rpmcliInstallCheck ( rpmts  ts)

Check package element dependencies in a transaction set, reporting problems.

Parameters
tstransaction set
Returns
no. of (added) packages

Definition at line 343 of file rpminstall.c.

References _, rpmcliInstallProblems(), and rpmtsCheck.

Referenced by main(), rpmcliInstall(), rpmErase(), and rpmgiNext().

int rpmcliInstallOrder ( rpmts  ts)

Order package elements in a transaction set, reporting problems.

Parameters
tstransaction set
Returns
no. of (added) packages

Definition at line 350 of file rpminstall.c.

References _, rpmcliInstallProblems(), and rpmtsOrder.

Referenced by main(), rpmcliInstall(), rpmErase(), and rpmgiNew().

int rpmcliInstallProblems ( rpmts  ts,
const char *  msg,
int  rc 
)

Report package problems (if any).

Parameters
tstransaction set
msgproblem context string to display
rcresult of a tranbsaction operation
Returns
no. of (added) packages

Definition at line 311 of file rpminstall.c.

References NULL, ps, rc, rpmlog(), RPMLOG_ERR, rpmpsFree(), rpmpsNumProblems(), rpmpsPrint(), and rpmtsProblems().

Referenced by rpmcliInstallCheck(), rpmcliInstallOrder(), rpmcliInstallRun(), and rpmRollback().

int rpmcliInstallRun ( rpmts  ts,
rpmps  okProbs,
rpmprobFilterFlags  ignoreSet 
)

Install/erase package elements in a transaction set, reporting problems.

Parameters
tstransaction set
okProbspreviously known problems (or NULL)
ignoreSetbits to filter problem types
Returns
0 on success, -1 on error, >0 no, of failed elements

Definition at line 357 of file rpminstall.c.

References _, rpmcliInstallProblems(), and rpmtsRun.

Referenced by main(), rpmcliInstall(), and rpmErase().

int rpmcliInstallSuggests ( rpmts  ts)

Report packages(if any) that satisfy unresolved dependencies.

Parameters
tstransaction set
Returns
0 always

Definition at line 326 of file rpminstall.c.

References _, _free(), i, NULL, rpmlog(), RPMLOG_NOTICE, and s.

Referenced by rpmcliInstall(), and rpmgiNext().

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 956 of file query.c.

References _free(), rpmQVKArguments_s::depFlags, ec, JBJDEBUG, NULL, rpmQVKArguments_s::qva_flags, QVA_ISSET, rpmQVKArguments_s::qva_queryFormat, rpmQVKArguments_s::qva_showPackage, rpmcliArgIter(), rpmExpand(), rpmExpandNumeric(), rpmtsSetDFlags(), rpmtsSetFlags(), rpmtsSetVSFlags(), showQueryPackage(), rpmQVKArguments_s::transFlags, transFlags, VSF_CLR, VSF_SET, vsflags, and xstrdup().

Referenced by main().

static int rpmcliShowMatches ( QVA_t  qva,
rpmts  ts 
)
static

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 472 of file query.c.

References ec, h, JBJDEBUG, NULL, rpmQVKArguments_s::qva_mi, rpmQVKArguments_s::qva_showFAIL, rpmQVKArguments_s::qva_showOK, rpmQVKArguments_s::qva_showPackage, rpmQVKArguments_s::qva_source, rpmmiFree(), rpmmiNext(), and RPMQV_DBOFFSET.

Referenced by rpmQueryVerify().

int rpmcliSign ( rpmts  ts,
QVA_t  qva,
const char **  argv 
)
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 656 of file verify.c.

References rpmQVKArguments_s::depFlags, ec, NULL, rpmQVKArguments_s::qva_flags, QVA_ISSET, rpmQVKArguments_s::qva_showPackage, rpmcliArgIter(), rpmExpandNumeric(), rpmtsEmpty(), rpmtsSetDFlags(), rpmtsSetFlags(), rpmtsSetVSFlags(), showVerifyPackage(), tagName(), rpmQVKArguments_s::transFlags, transFlags, void, VSF_CLR, VSF_SET, and vsflags.

Referenced by main().

int rpmErase ( rpmts  ts,
QVA_t  ia,
const char **  argv 
)
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 893 of file rpminstall.c.

References _, exit, Fclose(), fd, Ferror(), Fopen(), fprintf(), Fstrerror(), NULL, rc, rpmInstallSourcePackage(), rpmIsVerbose, rpmlog(), RPMLOG_ERR, RPMRC_FAIL, RPMRC_OK, rpmtsSetVSFlags(), rpmtsVSFlags(), void, and VSF_SET.

Referenced by main().

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

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

This routine uses:

  • qva->qva_mi rpm database iterator
  • qva->qva_showPackage query/verify display routine
Parameters
qvaparsed query/verify options
tstransaction set
argname of source to query/verify
Returns
showPackage() result, 1 if rpmmiInit() is NULL

Definition at line 512 of file query.c.

References _, _free(), alloca(), currentDirectory(), D_, digest, dlen, errno, fn, Glob_pattern_p(), hdrNum, i, JBJDEBUG, Lstat(), MD5len, memset(), nibble(), NULL, PATH_MAX, rpmQVKArguments_s::qva_mi, rpmQVKArguments_s::qva_showFAIL, rpmQVKArguments_s::qva_showOK, rpmQVKArguments_s::qva_showPackage, rpmQVKArguments_s::qva_source, rpmQVKArguments_s::qva_specQuery, Realpath(), res, rpmCleanPath(), rpmcliShowMatches(), rpmdbCheckSignals(), RPMDBI_PACKAGES, rpmGetPath(), rpmgiShowMatches(), rpmlog(), RPMLOG_DEBUG, RPMLOG_ERR, RPMLOG_NOTICE, rpmmiCount(), rpmmiFree(), RPMQV_ALL, RPMQV_DBOFFSET, RPMQV_FILEID, RPMQV_FTSWALK, RPMQV_GROUP, RPMQV_HDLIST, RPMQV_HDRID, RPMQV_PACKAGE, RPMQV_PATH, RPMQV_PKGID, RPMQV_RPM, RPMQV_SOURCEPKGID, RPMQV_SPECFILE, RPMQV_SPECSRPM, RPMQV_TID, RPMQV_TRIGGEREDBY, RPMQV_WHATCONFLICTS, RPMQV_WHATNEEDS, RPMQV_WHATOBSOLETES, RPMQV_WHATPROVIDES, RPMQV_WHATREQUIRES, RPMTAG_FILEDIGESTS, RPMTAG_FILEPATHS, RPMTAG_GROUP, RPMTAG_INSTALLTID, RPMTAG_NVRA, RPMTAG_PKGID, RPMTAG_PROVIDENAME, RPMTAG_REQUIRENAME, RPMTAG_SHA1HEADER, RPMTAG_SOURCEPKGID, RPMTAG_TRIGGERNAME, rpmtsInitIterator(), s, t, tag, tagName(), unsigned, void, and xstrdup().

Referenced by rpmcliArgIter().

static int rpmReSign ( rpmts  ts,
QVA_t  qva,
const char **  argv 
)
static
void* rpmShowProgress ( const void arg,
const rpmCallbackType  what,
const rpmuint64_t  amount,
const rpmuint64_t  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 126 of file rpminstall.c.

References _, _free(), Fadvise(), Fclose(), Fcntl(), fd, fdFree(), fdLink(), Ferror(), flags, Fopen(), fprintf(), Fstrerror(), h, headerSprintf(), INSTALL_HASH, INSTALL_LABEL, INSTALL_PERCENT, int, NULL, printHash(), rc, RPMCALLBACK_CPIO_ERROR, RPMCALLBACK_INST_CLOSE_FILE, RPMCALLBACK_INST_OPEN_FILE, RPMCALLBACK_INST_PROGRESS, RPMCALLBACK_INST_START, RPMCALLBACK_REPACKAGE_PROGRESS, RPMCALLBACK_REPACKAGE_START, RPMCALLBACK_REPACKAGE_STOP, RPMCALLBACK_SCRIPT_ERROR, RPMCALLBACK_TRANS_PROGRESS, RPMCALLBACK_TRANS_START, RPMCALLBACK_TRANS_STOP, RPMCALLBACK_UNINST_PROGRESS, RPMCALLBACK_UNINST_START, RPMCALLBACK_UNINST_STOP, RPMCALLBACK_UNKNOWN, RPMCALLBACK_UNPACK_ERROR, rpmcliPackagesTotal, rpmExpand(), rpmHeaderFormats, rpmlog(), RPMLOG_ERR, s, t, URL_IS_HTTP, URL_IS_HTTPS, urlPath(), void, and xx.

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

static int rpmvfVerify ( rpmvf  vf,
int  spew 
)
static
int showQueryPackage ( QVA_t  qva,
rpmts  ts,
Header  h 
)
int showVerifyPackage ( QVA_t  qva,
rpmts  ts,
Header  h 
)

Variable Documentation

int _noDirTokens

Should version 3 packages be produced?

struct rpmBuildArguments_s rpmBTArgs

Definition at line 29 of file poptBT.c.

Referenced by buildArgCallback(), main(), prepFetch(), and prepFetchVerbose().

struct poptOption rpmBuildPoptTable[]

Definition at line 119 of file poptBT.c.

struct poptOption rpmcliAllPoptTable[]

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

Definition at line 417 of file poptALL.c.

int rpmcliHashesCurrent

Definition at line 65 of file rpminstall.c.

Referenced by printHash().

int rpmcliHashesTotal

Definition at line 67 of file rpminstall.c.

Referenced by printHash().

int rpmcliPackagesTotal

Definition at line 63 of file rpminstall.c.

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

rpmuint64_t rpmcliProgressCurrent

Definition at line 69 of file rpminstall.c.

rpmuint64_t rpmcliProgressTotal

Definition at line 71 of file rpminstall.c.

rpmQueryFlags rpmcliQueryFlags

Bit(s) from common command line options.

Definition at line 172 of file poptALL.c.

Referenced by main().

struct poptOption rpmDatabasePoptTable[]

Definition at line 36 of file poptDB.c.

struct rpmQVKArguments_s rpmDBArgs

Definition at line 32 of file poptDB.c.

Referenced by main().

struct rpmQVKArguments_s rpmIArgs

Definition at line 23 of file poptI.c.

Referenced by installArgCallback(), and main().

struct poptOption rpmInstallPoptTable[]

Definition at line 204 of file poptI.c.

struct poptOption rpmQueryPoptTable[]

Query mode options.

Definition at line 325 of file poptQV.c.

struct rpmQVKArguments_s rpmQVKArgs

Definition at line 19 of file poptQV.c.

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

struct poptOption rpmQVSourcePoptTable[]

Common query/verify mode options.

Definition at line 130 of file poptQV.c.

struct poptOption rpmSignPoptTable[]

Signature mode options.

Definition at line 489 of file poptQV.c.

struct poptOption rpmVerifyPoptTable[]

Verify mode options.

Definition at line 382 of file poptQV.c.

int specedit

Definition at line 22 of file poptQV.c.