lib/rpmcli.h File Reference

#include "rpmlib.h"
#include "rpmurl.h"
#include "rpmmacro.h"
#include "argv.h"

Go to the source code of this file.

Data Structures

struct  rpmQVKArguments_s
 Describe query/verify/signature command line operation. More...
struct  rpmBuildArguments_s
 Describe build command line request. More...
struct  rpmInstallArguments_s
 Describe database command line requests. More...
struct  IDT_s
 A rollback transaction id element. More...
struct  IDTindex_s
 A rollback transaction id index. More...
struct  rpmDatabaseArguments_s
 Describe database command line requests. More...

RPMQV

#define RPMVERIFY_ALL   ~(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, RPMQV_WHATPROVIDES, RPMQV_WHATREQUIRES, RPMQV_TRIGGEREDBY,
  RPMQV_DBOFFSET, RPMQV_SPECFILE, RPMQV_PKGID, RPMQV_HDRID,
  RPMQV_FILEID, RPMQV_TID, RPMQV_HDLIST, RPMQV_FTSWALK
}
 Query/Verify argument qualifiers. More...
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_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_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_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_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_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...
rpmQueryFlags rpmcliQueryFlags
 Bit(s) from common command line options.
rpmQVKArguments_s rpmQVKArgs
poptOption rpmQVSourcePoptTable []
 Common query/verify mode options.
int specedit
poptOption rpmQueryPoptTable []
 Query mode options.
poptOption rpmVerifyPoptTable []
 Verify mode options.
typedef enum rpmQVSources_e rpmQVSources
 Query/Verify argument qualifiers.
typedef enum rpmVerifyAttrs_e rpmVerifyAttrs
 Bit(s) for rpmVerifyFile() attributes and result.
typedef enum rpmQueryFlags_e rpmQueryFlags
 Bit(s) to control rpmQuery() operation, stored in qva_flags.
typedef enum rpmVerifyFlags_e rpmVerifyFlags
 Bit(s) to control rpmVerify() operation, stored in qva_flags.
typedef rpmQVKArguments_sQVA_t
typedef int(*) QVF_t (QVA_t qva, rpmts ts, Header h)
 Function to display iterator matches.
typedef int(*) QSpecF_t (rpmts ts, QVA_t qva, const char *arg)
 Function to query spec file.
int rpmcliShowMatches (QVA_t qva, rpmts ts)
 Display query/verify information for each header in iterator.
void rpmDisplayQueryTags (FILE *fp)
 Display list of tags that can be used in --queryformat.
int rpmQueryVerify (QVA_t qva, rpmts ts, const char *arg)
 Common query/verify source interface, called once for each CLI arg.
int showQueryPackage (QVA_t qva, rpmts ts, Header h)
 Display results of package query.
int rpmcliArgIter (rpmts ts, QVA_t qva, ARGV_t argv)
 Iterate over query/verify arg list.
int rpmcliQuery (rpmts ts, QVA_t qva, const char **argv)
 Display package information.
int rpmVerifyFile (const rpmts ts, rpmfi fi, rpmVerifyAttrs *res, rpmVerifyAttrs omitMask)
 Verify file attributes (including MD5 sum).
int showVerifyPackage (QVA_t qva, rpmts ts, Header h)
 Display results of package verify.
int rpmVerifySignatures (QVA_t qva, rpmts ts, FD_t fd, const char *fn)
 Check package and header signatures.
int rpmcliVerify (rpmts ts, QVA_t qva, const char **argv)
 Verify package install.

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...
poptOption rpmSignPoptTable []
 Signature mode options.
typedef enum rpmSignFlags_e rpmSignFlags
 Bit(s) to control rpmReSign() operation.
rpmRC rpmcliImportPubkey (const rpmts ts, const unsigned char *pkt, ssize_t pktlen)
 Import public key packet(s).
int rpmcliSign (rpmts ts, QVA_t qva, const char **argv)
 Create/Modify/Check elements from signature header.

RPMBT

rpmBuildArguments_s rpmBTArgs
poptOption rpmBuildPoptTable []
typedef rpmBuildArguments_sBTA_t

RPMEIU

int rpmcliPackagesTotal
int rpmcliHashesCurrent
int rpmcliHashesTotal
int rpmcliProgressCurrent
int rpmcliProgressTotal
rpmInstallArguments_s rpmIArgs
poptOption rpmInstallPoptTable []
typedef IDT_sIDT
 A rollback transaction id element.
typedef IDTindex_sIDTX
 A rollback transaction id index.
void * rpmShowProgress (const void *arg, const rpmCallbackType what, const unsigned long amount, const unsigned long total, fnpyKey key, void *data)
 The rpm CLI generic transaction callback handler.
int rpmInstallSource (rpmts ts, const char *arg, const char **specFilePtr, const char **cookie)
 Install source rpm package.
int rpmInstall (rpmts ts, struct rpmInstallArguments_s *ia, const char **fileArgv)
 Install/upgrade/freshen binary rpm package.
int rpmErase (rpmts ts, struct rpmInstallArguments_s *ia, const char **argv)
 Erase binary rpm package.
IDTX IDTXfree (IDTX idtx)
 Destroy id index.
IDTX IDTXnew (void)
 Create id index.
IDTX IDTXgrow (IDTX idtx, int need)
 Insure that index has room for "need" elements.
IDTX IDTXsort (IDTX idtx)
 Sort tag (instance,value) pairs.
IDTX IDTXload (rpmts ts, rpmTag tag)
 Load tag (instance,value) pairs from rpm databse, and return sorted id index.
IDTX IDTXglob (rpmts ts, const char *globstr, rpmTag tag)
 Load tag (instance,value) pairs from packages, and return sorted id index.
int rpmRollback (rpmts ts, struct rpmInstallArguments_s *ia, const char **argv)
 Rollback transactions, erasing new, reinstalling old, package(s).

Defines

#define RPMCLI_POPT_NODEPS   -1025
 Common/global popt tokens used for command line option tables.
#define RPMCLI_POPT_FORCE   -1026
#define RPMCLI_POPT_NOMD5   -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

Functions

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

Variables

int _noDirTokens
 Should version 3 packages be produced?
poptOption rpmcliAllPoptTable []
 Popt option table for options shared by all modes and executables.
int ftsOpts
poptOption rpmcliFtsPoptTable []
const char * rpmcliPipeOutput
const char * rpmcliRcfile
const char * rpmcliRootDir
RPMDB
rpmDatabaseArguments_s rpmDBArgs
poptOption rpmDatabasePoptTable []


Detailed Description

Definition in file rpmcli.h.


Define Documentation

#define _QUERY_FOR_BITS

Value:

Definition at line 178 of file rpmcli.h.

Referenced by rpmcliQuery().

#define RPMCLI_POPT_FORCE   -1026

Definition at line 85 of file rpmcli.h.

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

#define RPMCLI_POPT_NOCONTEXTS   -1032

Definition at line 91 of file rpmcli.h.

Referenced by installArgCallback(), and queryArgCallback().

#define RPMCLI_POPT_NODEPS   -1025

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

Definition at line 84 of file rpmcli.h.

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

#define RPMCLI_POPT_NODIGEST   -1030

Definition at line 89 of file rpmcli.h.

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

#define RPMCLI_POPT_NOHDRCHK   -1031

Definition at line 90 of file rpmcli.h.

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

#define RPMCLI_POPT_NOMD5   -1027

Definition at line 86 of file rpmcli.h.

Referenced by installArgCallback(), and queryArgCallback().

#define RPMCLI_POPT_NOSCRIPTS   -1028

Definition at line 87 of file rpmcli.h.

Referenced by installArgCallback(), and queryArgCallback().

#define RPMCLI_POPT_NOSIGNATURE   -1029

Definition at line 88 of file rpmcli.h.

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

#define RPMVERIFY_ALL   ~(RPMVERIFY_NONE)

Definition at line 142 of file rpmcli.h.

Referenced by processPackageFiles(), and processSourceFiles().

#define RPMVERIFY_FAILURES   (RPMVERIFY_LSTATFAIL|RPMVERIFY_READFAIL|RPMVERIFY_READLINKFAIL|RPMVERIFY_LGETFILECONFAIL)

Definition at line 143 of file rpmcli.h.

Referenced by rpmVerifyFile().

#define VERIFY_ALL

Value:

Definition at line 226 of file rpmcli.h.

Referenced by main().

#define VERIFY_ATTRS

Value:

Definition at line 223 of file rpmcli.h.

Referenced by verifyHeader().


Typedef Documentation

typedef struct IDT_s * IDT

A rollback transaction id element.

typedef struct IDTindex_s * IDTX

A rollback transaction id index.


Function Documentation

IDTX IDTXfree ( IDTX  idtx  ) 

Destroy id index.

Parameters:
idtx id index
Returns:
NULL always

Definition at line 917 of file rpminstall.c.

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

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

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

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

Parameters:
ts transaction set
globstr glob expression
tag rpm tag
Returns:
id index

Definition at line 1012 of file rpminstall.c.

References _, _free(), Fclose(), rpmEIU::fd, Ferror(), Fopen(), Fstrerror(), rpmEIU::h, IDT_s::h, headerFree(), headerGetEntry(), headerIsEntry(), headerLink(), IDTindex_s::idt, IDTXgrow(), IDTXsort(), IDT_s::instance, rpmEIU::isSource, IDT_s::key, IDTindex_s::nidt, RPMERR_OPEN, rpmError, rpmGlob(), rpmEIU::rpmrc, RPMRC_NOKEY, RPMRC_NOTTRUSTED, RPMRC_OK, rpmReadPackageFile(), RPMTAG_SOURCEPACKAGE, IDT_s::u32, and IDT_s::val.

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

IDTX IDTXgrow ( IDTX  idtx,
int  need 
)

Insure that index has room for "need" elements.

Parameters:
idtx id index
need additional no. of elements needed
Returns:
id index (with room for "need" elements)

Definition at line 941 of file rpminstall.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 
)

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

Parameters:
ts transaction set
tag rpm tag
Returns:
id index

Definition at line 965 of file rpminstall.c.

References rpmEIU::h, 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(), RPMMIRE_DEFAULT, 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 933 of file rpminstall.c.

References xcalloc().

Referenced by IDTXgrow().

IDTX IDTXsort ( IDTX  idtx  ) 

Sort tag (instance,value) pairs.

Parameters:
idtx id index
Returns:
id index

Definition at line 958 of file rpminstall.c.

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

Referenced by IDTXglob(), and IDTXload().

void rpmcliConfigured ( void   ) 

Make sure that rpm configuration has been read.

Warning:
Options like --rcfile and --verbose must precede callers option.

Definition at line 136 of file poptALL.c.

References EXIT_FAILURE, rpmcliInitialized, rpmcliRcfile, and rpmReadConfigFiles().

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

poptContext rpmcliFini ( poptContext  optCon  ) 

Destroy most everything needed by an rpm CLI executable context.

Parameters:
optCon popt context
Returns:
NULL always

Definition at line 376 of file poptALL.c.

Referenced by main().

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

Initialize most everything needed by an rpm CLI executable context.

Parameters:
argc no. of args
argv arg array
optionsTable popt option table
Returns:
popt context (or NULL)

Definition at line 391 of file poptALL.c.

References _, __progname, _debug, bindtextdomain, EXIT_FAILURE, LIBRPMALIAS_FILENAME, LOCALEDIR, PACKAGE, rpmcliConfigured(), RPMCONFIGDIR, rpmIncreaseVerbosity, RPMMESS_NORMAL, rpmSetVerbosity, setlocale, setprogname, and textdomain.

Referenced by main().

int rpmVerifySignatures ( QVA_t  qva,
rpmts  ts,
FD_t  fd,
const char *  fn 
)

Check package and header signatures.

Parameters:
qva parsed query/verify options
ts transaction set
fd package file handle
fn package file name
Returns:
0 on success, 1 on failure

Definition at line 721 of file rpmchecksig.c.

References _, _free(), _print_pkts, fdInitDigest(), pgpDigParams_s::hash_algo, headerFreeData(), headerFreeIterator(), headerGetEntry(), headerInitIterator(), headerIsEntry(), headerNextIterator(), pgpCleanDig(), PGPHASHALGO_MD5, PGPHASHALGO_SHA1, pgpPrtPkts(), rpmQVKArguments_s::qva_flags, readFile(), readLead(), RPMERR_BADSIGTYPE, RPMERR_READLEAD, RPMERR_SIGGEN, RPMERR_SIGVFY, rpmError, rpmFreeSignature(), rpmIsDebug, rpmIsVerbose, RPMRC_NOKEY, RPMRC_NOTTRUSTED, RPMRC_OK, rpmReadSignature(), RPMSIGTAG_DSA, RPMSIGTAG_GPG, RPMSIGTAG_LEMD5_1, RPMSIGTAG_LEMD5_2, RPMSIGTAG_MD5, RPMSIGTAG_PGP, RPMSIGTAG_PGP5, RPMSIGTAG_RSA, RPMSIGTAG_SHA1, RPMSIGTAG_SIZE, rpmtsCleanDig(), rpmtsDig(), rpmtsSetSig(), rpmtsSignature(), rpmVerifySignature(), pgpDig_s::signature, stpcpy(), stpncpy(), VERIFY_DIGEST, VERIFY_SIGNATURE, and pgpDigParams_s::version.

Referenced by rpmcliSign().


Variable Documentation

int ftsOpts

Definition at line 225 of file poptALL.c.

Referenced by main(), and rpmcliArgIter().

struct poptOption rpmcliFtsPoptTable[]

Definition at line 228 of file poptALL.c.

int rpmcliHashesCurrent

Definition at line 27 of file rpminstall.c.

Referenced by printHash(), and rpmShowProgress().

int rpmcliHashesTotal

Definition at line 29 of file rpminstall.c.

Referenced by printHash().

int rpmcliPackagesTotal

Definition at line 25 of file rpminstall.c.

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

const char* rpmcliPipeOutput

Definition at line 92 of file poptALL.c.

Referenced by main().

int rpmcliProgressCurrent

Definition at line 31 of file rpminstall.c.

Referenced by printHash(), and rpmShowProgress().

int rpmcliProgressTotal

Definition at line 33 of file rpminstall.c.

Referenced by printHash(), and rpmShowProgress().

const char* rpmcliRcfile

Definition at line 95 of file poptALL.c.

Referenced by main(), and rpmcliConfigured().

const char* rpmcliRootDir

Definition at line 98 of file poptALL.c.

Referenced by main().


Generated on Fri Oct 12 08:44:55 2007 for rpm by  doxygen 1.5.2