rpm  5.4.15
Data Structures | Macros | Functions | Variables
rpmcli.h File Reference
#include <stdint.h>
#include <popt.h>
#include <rpmmacro.h>
#include <rpmtypes.h>
#include <rpmtag.h>
#include <rpmps.h>
#include <rpmrc.h>
#include <rpmfi.h>
#include <rpmts.h>
Include dependency graph for rpmcli.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

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

Macros

#define RPMCLI_POPT_NODEPS   -1026
 Common/global popt tokens used for command line option tables. More...
 
#define RPMCLI_POPT_NOFDIGESTS   -1027
 
#define RPMCLI_POPT_NOSCRIPTS   -1028
 
#define RPMCLI_POPT_NOSIGNATURE   -1029
 
#define RPMCLI_POPT_NODIGEST   -1030
 
#define RPMCLI_POPT_NOHDRCHK   -1031
 
#define RPMCLI_POPT_NOCONTEXTS   -1032
 
#define RPMCLI_POPT_TARGETPLATFORM   -1033
 
#define RPMCLI_POPT_NOHMACS   -1034
 

Functions

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

Variables

headerSprintfExtension rpmHeaderFormats
 Table of query format extensions. More...
 
int _noDirTokens
 Should version 3 packages be produced? More...
 
struct poptOption rpmcliAllPoptTable []
 Popt option table for options shared by all modes and executables. More...
 
int global_depFlags
 
struct poptOption rpmcliDepFlagsPoptTable []
 
const char * rpmcliTargets
 
struct rpmQVKArguments_s rpmQVKArgs
 
struct rpmQVKArguments_s rpmIArgs
 
struct rpmQVKArguments_s rpmDBArgs
 
RPMDB
struct poptOption rpmDatabasePoptTable []
 

RPMQV

#define RPMVERIFY_ALL   ((rpmVerifyAttrs)~(RPMVERIFY_NONE))
 
#define RPMVERIFY_FAILURES   (RPMVERIFY_LSTATFAIL|RPMVERIFY_READFAIL|RPMVERIFY_READLINKFAIL|RPMVERIFY_LGETFILECONFAIL)
 
#define _QUERY_FOR_BITS
 
#define VERIFY_ATTRS
 
#define VERIFY_ALL
 
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 rpmVerifySignatures (QVA_t qva, rpmts ts, void *_fd, const char *fn)
 Check package and header signatures. 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...
 
int rpmcliPackagesTotal
 
int rpmcliHashesCurrent
 
int rpmcliHashesTotal
 
rpmuint64_t rpmcliProgressCurrent
 
rpmuint64_t rpmcliProgressTotal
 
struct poptOption rpmInstallPoptTable []
 
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. 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...
 

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

Macro Definition Documentation

#define _QUERY_FOR_BITS
#define RPMCLI_POPT_NOCONTEXTS   -1032

Definition at line 102 of file rpmcli.h.

Referenced by installArgCallback(), and queryArgCallback().

#define RPMCLI_POPT_NODEPS   -1026

Common/global popt tokens used for command line option tables.

Definition at line 96 of file rpmcli.h.

Referenced by buildArgCallback(), installArgCallback(), and queryArgCallback().

#define RPMCLI_POPT_NODIGEST   -1030
#define RPMCLI_POPT_NOFDIGESTS   -1027

Definition at line 97 of file rpmcli.h.

Referenced by installArgCallback(), and queryArgCallback().

#define RPMCLI_POPT_NOHDRCHK   -1031
#define RPMCLI_POPT_NOHMACS   -1034

Definition at line 104 of file rpmcli.h.

Referenced by queryArgCallback().

#define RPMCLI_POPT_NOSCRIPTS   -1028

Definition at line 98 of file rpmcli.h.

Referenced by installArgCallback(), and queryArgCallback().

#define RPMCLI_POPT_NOSIGNATURE   -1029
#define RPMCLI_POPT_TARGETPLATFORM   -1033

Definition at line 103 of file rpmcli.h.

Referenced by rpmcliAllArgCallback().

#define RPMVERIFY_ALL   ((rpmVerifyAttrs)~(RPMVERIFY_NONE))

Definition at line 162 of file rpmcli.h.

Referenced by processPackageFiles(), and processSourceFiles().

Definition at line 163 of file rpmcli.h.

Referenced by rpmvfNew().

#define VERIFY_ALL
#define VERIFY_ATTRS

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
void rpmcliConfigured ( void  )

Make sure that rpm configuration has been read.

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

Definition at line 204 of file poptALL.c.

References _free(), EXIT_FAILURE, rpmReadConfigFiles(), and xstrdup().

Referenced by main(), rpmcliAllArgCallback(), and rpmcliInit().

poptContext rpmcliFini ( poptContext  optCon)

Destroy most everything needed by an rpm CLI executable context.

Parameters
optConpopt context
Returns
NULL always

Definition at line 523 of file poptALL.c.

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

References _free(), _rpmhkpDumpDig(), alloca(), _HE_s::append, rpmDataType_u::argv, _HE_s::c, d, headerFree(), headerGetMagic(), headerNew(), headerPut(), headerReload(), headerSprintf(), headerUnload(), _HE_s::p, pgpDigFree(), pgpDigNew(), pgpGetPubkey(), pgpGrabPkts(), PGPHASHALGO_SHA1, pgpHexStr(), pgpPktLen(), PGPPUBKEYALGO_UNKNOWN, pgpPubkeyFingerprint(), rpmDataType_u::ptr, RPM_BIN_TYPE, RPM_STRING_ARRAY_TYPE, RPM_STRING_TYPE, RPM_UINT32_TYPE, rpmdbAdd(), RPMDIGEST_NONE, rpmDigestFinal(), rpmDigestInit(), rpmDigestUpdate(), rpmHeaderFormats, rpmhkpFree(), rpmhkpLink(), rpmhkpLoadKey(), rpmhkpNew(), rpmhkpValidate(), 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(), rpmtxnAbort(), rpmtxnBegin(), rpmtxnCheckpoint(), rpmtxnCommit(), RPMVERSION, RPMVSF_DEFAULT, stpcpy(), rpmDataType_u::str, _HE_s::t, _HE_s::tag, rpmDataType_u::ui32p, v, xmalloc, xstrdup(), and zero.

Referenced by rpmcliImportPubkeys(), and rpmts_PgpImportPubkey().

poptContext rpmcliInit ( int  argc,
char *const  argv[],
struct poptOption *  optionsTable 
)

Initialize most everything needed by an rpm CLI executable context.

Parameters
argcno. of args
argvarg array
optionsTablepopt option table
Returns
popt context (or NULL)

Definition at line 669 of file poptALL.c.

References _, __progname, _free(), _rpmts_stats, bindtextdomain, checkfd(), EXIT_FAILURE, i, PACKAGE, rpmcliConfigured(), rpmGetPath(), rpmGlob(), rpmIncreaseVerbosity, rpmlog(), RPMLOG_NOTICE, RPMLOG_WARNING, rpmSecuritySaneFile(), rpmSetVerbosity, setlocale, setprogname, textdomain, USRLIBRPM, and xstrdup().

Referenced by main().

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(), _HE_s::c, D_, delMacro(), rpmQVKArguments_s::depFlags, FTS_COMFOLLOW, FTS_LOGICAL, FTS_NOSTAT, headerFree(), headerGet(), headerLink(), INSTALL_FRESHEN, INSTALL_LABEL, INSTALL_NODEPS, INSTALL_NOORDER, INSTALL_UPGRADE, rpmQVKArguments_s::installInterfaceFlags, rpmRelocation_s::newPath, rpmRelocation_s::oldPath, _HE_s::p, rpmQVKArguments_s::probFilter, rpmDataType_u::ptr, rpmQVKArguments_s::qva_flags, QVA_ISSET, rpmQVKArguments_s::qva_source, rpmQVKArguments_s::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_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, rpmQVKArguments_s::transFlags, TSM_INSTALL, VSF_SET, vsflags, and xstrdup().

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 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, rpmlog(), and RPMLOG_NOTICE.

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, JBJDEBUG, rpmQVKArguments_s::qva_flags, QVA_ISSET, rpmQVKArguments_s::qva_queryFormat, rpmQVKArguments_s::qva_showPackage, rpmcliArgIter(), rpmExpand(), rpmExpandNumeric(), rpmtsSetDFlags(), rpmtsSetFlags(), rpmtsSetVSFlags(), showQueryPackage(), rpmQVKArguments_s::transFlags, VSF_CLR, VSF_SET, vsflags, and xstrdup().

Referenced by main().

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 657 of file verify.c.

References rpmQVKArguments_s::depFlags, rpmQVKArguments_s::qva_flags, QVA_ISSET, rpmQVKArguments_s::qva_showPackage, rpmcliArgIter(), rpmExpandNumeric(), rpmtsEmpty(), rpmtsSetDFlags(), rpmtsSetFlags(), rpmtsSetVSFlags(), showVerifyPackage(), tagName(), rpmQVKArguments_s::transFlags, 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 _, Fclose(), Ferror(), Fopen(), Fstrerror(), rpmInstallSourcePackage(), rpmIsVerbose, rpmlog(), RPMLOG_ERR, RPMRC_FAIL, RPMRC_OK, rpmtsSetVSFlags(), rpmtsVSFlags(), and VSF_SET.

Referenced by main().

int rpmQueryVerify ( QVA_t  qva,
rpmts  ts,
const char *  arg 
)
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(), data, Fadvise(), Fclose(), Fcntl(), fdFree(), fdLink(), Ferror(), flags, Fopen(), Fstrerror(), headerSprintf(), INSTALL_HASH, INSTALL_LABEL, INSTALL_PERCENT, printHash(), 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, URL_IS_HTTP, URL_IS_HTTPS, and urlPath().

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

int rpmVerifySignatures ( QVA_t  qva,
rpmts  ts,
void *  _fd,
const char *  fn 
)
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?

int global_depFlags

Definition at line 380 of file poptALL.c.

Referenced by main().

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 418 of file poptALL.c.

struct poptOption rpmcliDepFlagsPoptTable[]

Definition at line 383 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(), 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 173 of file poptALL.c.

Referenced by main().

const char* rpmcliTargets

Definition at line 176 of file poptALL.c.

Referenced by rpmspecQuery().

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

headerSprintfExtension rpmHeaderFormats

Table of query format extensions.

Note
Chains *headerCompoundFormats -> *headerDefaultFormats.

Definition at line 305 of file formats.c.

Referenced by addRpmTags(), hdr_subscript(), hdrSprintf(), packageBinaries(), parseForSimple(), printNewSpecfile(), queryHeader(), rpmcliImportPubkey(), rpmfiNew(), rpmhdr_sprintf(), rpmpsmStage(), rpmShowProgress(), and rpmtsSolve().

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.