Main Page   Modules   Data Structures   File List   Data Fields   Globals   Related Pages  

lib/rpmcli.h File Reference

More...

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

Go to the source code of this file.

Data Structures

struct  IDT_s
 A rollback transaction id element. More...

struct  IDTindex_s
 A rollback transaction id index. More...

struct  rpmBuildArguments_s
struct  rpmDatabaseArguments_s
struct  rpmInstallArguments_s
struct  rpmQVKArguments_s

RPMQV

#define RPMVERIFY_ALL   ~(RPMVERIFY_NONE)
#define _QUERY_FOR_BITS
#define VERIFY_ATTRS
#define VERIFY_ALL
typedef enum rpmQVSources_e rpmQVSources
typedef enum rpmVerifyAttrs_e rpmVerifyAttrs
typedef enum rpmQueryFlags_e rpmQueryFlags
typedef enum rpmVerifyFlags_e rpmVerifyFlags
typedef rpmQVKArguments_sQVA_t
typedef int(* QVF_t )(QVA_t qva, rpmts ts, Header h)
typedef int(* QSpecF_t )(rpmts ts, QVA_t qva, const char *arg)
enum  rpmQVSources_e {
  RPMQV_PACKAGE = 0, RPMQV_PATH, RPMQV_ALL, RPMQV_RPM,
  RPMQV_GROUP, RPMQV_WHATPROVIDES, RPMQV_WHATREQUIRES, RPMQV_TRIGGEREDBY,
  RPMQV_DBOFFSET, RPMQV_SPECFILE, RPMQV_PKGID, RPMQV_HDRID,
  RPMQV_FILEID, RPMQV_TID
}
enum  rpmVerifyAttrs_e {
  RPMVERIFY_NONE = 0, RPMVERIFY_MD5 = (1 << 0), RPMVERIFY_FILESIZE = (1 << 1), RPMVERIFY_LINKTO = (1 << 2),
  RPMVERIFY_USER = (1 << 3), RPMVERIFY_GROUP = (1 << 4), RPMVERIFY_MTIME = (1 << 5), RPMVERIFY_MODE = (1 << 6),
  RPMVERIFY_RDEV = (1 << 7), RPMVERIFY_READLINKFAIL = (1 << 28), RPMVERIFY_READFAIL = (1 << 29), RPMVERIFY_LSTATFAIL = (1 << 30)
}
enum  rpmQueryFlags_e {
  QUERY_FOR_DEFAULT = 0, QUERY_MD5 = (1 << 0), QUERY_SIZE = (1 << 1), QUERY_LINKTO = (1 << 2),
  QUERY_USER = (1 << 3), QUERY_GROUP = (1 << 4), QUERY_MTIME = (1 << 5), QUERY_MODE = (1 << 6),
  QUERY_RDEV = (1 << 7), QUERY_FILES = (1 << 16), QUERY_DEPS = (1 << 17), QUERY_SCRIPT = (1 << 18),
  QUERY_DIGEST = (1 << 19), QUERY_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)
}
enum  rpmVerifyFlags_e {
  VERIFY_DEFAULT = 0, VERIFY_MD5 = (1 << 0), VERIFY_SIZE = (1 << 1), VERIFY_LINKTO = (1 << 2),
  VERIFY_USER = (1 << 3), VERIFY_GROUP = (1 << 4), VERIFY_MTIME = (1 << 5), VERIFY_MODE = (1 << 6),
  VERIFY_RDEV = (1 << 7), VERIFY_FILES = (1 << 16), VERIFY_DEPS = (1 << 17), VERIFY_SCRIPT = (1 << 18),
  VERIFY_DIGEST = (1 << 19), VERIFY_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)
}
int rpmcliShowMatches (QVA_t qva, rpmts ts)
void rpmDisplayQueryTags (FILE *fp)
int rpmQueryVerify (QVA_t qva, rpmts ts, const char *arg)
int showQueryPackage (QVA_t qva, rpmts ts, Header h)
int rpmcliQuery (rpmts ts, QVA_t qva, const char **argv)
int rpmVerifyFile (const rpmts ts, rpmfi fi, rpmVerifyAttrs *res, rpmVerifyAttrs omitMask)
int showVerifyPackage (QVA_t qva, rpmts ts, Header h)
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)
rpmQueryFlags rpmcliQueryFlags
rpmQVKArguments_s rpmQVKArgs
poptOption rpmQVSourcePoptTable []
 Common query/verify mode options.

int specedit
poptOption rpmQueryPoptTable []
 Query mode options.

poptOption rpmVerifyPoptTable []
 Verify mode options.


RPMBT

typedef rpmBuildArguments_sBTA_t
rpmBuildArguments_s rpmBTArgs
poptOption rpmBuildPoptTable []

RPMEIU

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)
int rpmInstallSource (rpmts ts, const char *arg, const char **specFilePtr, const char **cookie)
int rpmInstall (rpmts ts, struct rpmInstallArguments_s *ia, const char **fileArgv)
int rpmErase (rpmts ts, struct rpmInstallArguments_s *ia, const char **argv)
IDTX IDTXfree (IDTX idtx)
 Destroy 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)
int rpmcliPackagesTotal
int rpmcliHashesCurrent
int rpmcliHashesTotal
int rpmcliProgressCurrent
int rpmcliProgressTotal
IDTX IDTXnew (void)
 Create id index.

rpmInstallArguments_s rpmIArgs
poptOption rpmInstallPoptTable []

RPMK

typedef enum rpmSignFlags_e rpmSignFlags
enum  rpmSignFlags_e {
  RPMSIGN_NONE = 0, RPMSIGN_CHK_SIGNATURE = 'K', RPMSIGN_NEW_SIGNATURE = 'R', RPMSIGN_ADD_SIGNATURE = 'A',
  RPMSIGN_IMPORT_PUBKEY = 'I'
}
int rpmcliImportPubkey (const rpmts ts, const unsigned char *pkt, ssize_t pktlen)
int rpmcliSign (rpmts ts, QVA_t qva, const char **argv)
poptOption rpmSignPoptTable []
 Signature mode options.


RPMDB

rpmDatabaseArguments_s rpmDBArgs
poptOption rpmDatabasePoptTable []

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

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
poptOption rpmcliAllPoptTable []
const char * rpmcliPipeOutput
const char * rpmcliRcfile
const char * rpmcliRootDir


Detailed Description

Definition in file rpmcli.h.


Define Documentation

#define _QUERY_FOR_BITS
 

Value:

Definition at line 165 of file rpmcli.h.

Referenced by rpmcliQuery().

#define RPMCLI_POPT_FORCE   -1026
 

Definition at line 78 of file rpmcli.h.

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

#define RPMCLI_POPT_NODEPS   -1025
 

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

Definition at line 77 of file rpmcli.h.

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

#define RPMCLI_POPT_NODIGEST   -1030
 

Definition at line 82 of file rpmcli.h.

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

#define RPMCLI_POPT_NOHDRCHK   -1031
 

Definition at line 83 of file rpmcli.h.

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

#define RPMCLI_POPT_NOMD5   -1027
 

Definition at line 79 of file rpmcli.h.

Referenced by installArgCallback(), and queryArgCallback().

#define RPMCLI_POPT_NOSCRIPTS   -1028
 

Definition at line 80 of file rpmcli.h.

Referenced by installArgCallback(), and queryArgCallback().

#define RPMCLI_POPT_NOSIGNATURE   -1029
 

Definition at line 81 of file rpmcli.h.

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

#define RPMVERIFY_ALL   ~(RPMVERIFY_NONE)
 

Definition at line 132 of file rpmcli.h.

Referenced by processPackageFiles(), and processSourceFiles().

#define VERIFY_ALL
 

Value:

Definition at line 212 of file rpmcli.h.

Referenced by main().

#define VERIFY_ATTRS
 

Value:

Definition at line 209 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 888 of file rpminstall.c.

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

Referenced by rpmRollback(), 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 983 of file rpminstall.c.

References _, _free(), Fclose(), Ferror(), Fopen(), Fstrerror(), IDT_s::h, headerFree(), headerIsEntry(), headerLink(), HGE_t, IDTindex_s::idt, IDTXgrow(), IDTXsort(), IDT_s::instance, int_32, IDT_s::key, IDTindex_s::nidt, RPMERR_OPEN, rpmError, rpmGlob(), rpmRC, RPMRC_NOKEY, RPMRC_NOTTRUSTED, RPMRC_OK, rpmReadPackageFile(), rpmTag, RPMTAG_SOURCEPACKAGE, rpmTagType, rpmts, 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:
idtx  id index
need  additional no. of elements needed
Returns:
id index (with room for "need" elements)

Definition at line 912 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 936 of file rpminstall.c.

References IDT_s::h, headerLink(), HGE_t, IDTindex_s::idt, IDTXgrow(), IDTXsort(), IDT_s::instance, int_32, IDT_s::key, IDTindex_s::nidt, RPM_INT32_TYPE, RPM_NULL_TYPE, rpmdbFreeIterator(), rpmdbGetIteratorOffset(), rpmdbNextIterator(), rpmdbSetIteratorRE(), RPMMIRE_DEFAULT, rpmTag, RPMTAG_NAME, rpmTagType, rpmts, rpmtsInitIterator(), and IDT_s::val.

Referenced by rpmRollback(), and rpmts_IDTXload().

IDTX IDTXsort IDTX    idtx
 

Sort tag (instance,value) pairs.

Parameters:
idtx  id index
Returns:
id index

Definition at line 929 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 113 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 315 of file poptALL.c.

References poptFreeContext().

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

References _, __progname, argv, bindtextdomain, EXIT_FAILURE, LIBRPMALIAS_FILENAME, LOCALEDIR, PACKAGE, POPT_BADOPTION_NOALIAS, poptBadOption(), poptGetContext(), poptGetNextOpt(), poptGetOptArg(), poptReadConfigFile(), poptReadDefaultConfig(), poptSetExecPath(), poptStrerror(), rpmcliConfigured(), RPMCONFIGDIR, rpmIncreaseVerbosity, RPMMESS_NORMAL, rpmSetVerbosity, setlocale, setprogname, and textdomain.

Referenced by main().

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:
ts  transaction set
qva  parsed query/verify options
argv  query argument(s) (or NULL)
Returns:
0 on success, else no. of failures

Definition at line 778 of file query.c.

References _free(), _QUERY_FOR_BITS, _RPMVSF_NODIGESTS, _RPMVSF_NOSIGNATURES, argv, rpmQVKArguments_s::qva_flags, rpmQVKArguments_s::qva_queryFormat, rpmQVKArguments_s::qva_showPackage, rpmQVKArguments_s::qva_source, rpmExpand(), rpmExpandNumeric(), rpmQueryVerify(), RPMQV_ALL, rpmts, rpmtsEmpty(), rpmtsSetVSFlags(), RPMVSF_NOHDRCHK, rpmVSFlags, showQueryPackage(), 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:
qva  parsed query/verify options
ts  transaction set
Returns:
result of last non-zero showPackage() return

Definition at line 360 of file query.c.

References rpmQVKArguments_s::qva_mi, rpmQVKArguments_s::qva_showPackage, rpmdbFreeIterator(), rpmdbNextIterator(), and rpmts.

Referenced by rpmQueryVerify().

void rpmDisplayQueryTags FILE *    fp
 

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

Parameters:
fp  file handle to use for display

Definition at line 333 of file query.c.

References HEADER_EXT_MORE, HEADER_EXT_TAG, headerSprintfExtension_s::name, headerTagTableEntry_s::name, headerSprintfExtension_s::type, and headerSprintfExtension_s::u.

Referenced by main(), and rpmcliAllArgCallback().

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:
qva  parsed query/verify options
ts  transaction set
arg  name of source to query/verify
Returns:
showPackage() result, 1 if rpmdbInitIterator() is NULL

Definition at line 392 of file query.c.

References _, _free(), errno, F_OK, Fclose(), Ferror(), Fopen(), Fstrerror(), headerFree(), nibble(), PATH_MAX, rpmQVKArguments_s::qva_mi, rpmQVKArguments_s::qva_showPackage, rpmQVKArguments_s::qva_source, rpmQVKArguments_s::qva_specQuery, realpath(), rpmCleanPath(), rpmcliShowMatches(), rpmdbCheckSignals(), rpmdbFreeIterator(), RPMDBI_LABEL, RPMDBI_PACKAGES, rpmdbSetIteratorRE(), RPMERR_MANIFEST, RPMERR_OPEN, RPMERR_QUERY, RPMERR_QUERYINFO, rpmError, rpmGlob(), RPMMESS_DEBUG, rpmMessage, RPMMIRE_DEFAULT, RPMQV_ALL, RPMQV_DBOFFSET, RPMQV_FILEID, RPMQV_GROUP, RPMQV_HDRID, RPMQV_PACKAGE, RPMQV_PATH, RPMQV_PKGID, RPMQV_RPM, RPMQV_SPECFILE, RPMQV_TID, RPMQV_TRIGGEREDBY, RPMQV_WHATPROVIDES, RPMQV_WHATREQUIRES, rpmRC, RPMRC_NOKEY, RPMRC_NOTFOUND, RPMRC_NOTTRUSTED, RPMRC_OK, rpmReadPackageFile(), rpmReadPackageManifest(), RPMTAG_BASENAMES, RPMTAG_FILEMD5S, RPMTAG_GROUP, RPMTAG_INSTALLTID, RPMTAG_NAME, RPMTAG_PROVIDENAME, RPMTAG_REQUIRENAME, RPMTAG_SHA1HEADER, RPMTAG_SIGMD5, RPMTAG_TRIGGERNAME, rpmts, rpmtsEmpty(), rpmtsInitIterator(), strerror(), tagValue(), and xstrdup().

Referenced by rpmcliQuery(), and rpmcliVerify().

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

References _, _free(), _print_pkts, fdInitDigest(), headerFreeIterator(), headerInitIterator(), headerIsEntry(), headerNextIterator(), int_32, rpmlead::major, 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, 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, rpmts, rpmtsCleanDig(), rpmtsDig(), rpmtsSetSig(), rpmtsSignature(), rpmVerifySignature(), rpmlead::signature_type, stpcpy(), stpncpy(), VERIFY_DIGEST, VERIFY_SIGNATURE, and pgpDigParams_s::version.

Referenced by rpmcliSign().

int showQueryPackage QVA_t    qva,
rpmts    ts,
Header    h
 

Display results of package query.

Todo:
Devise a meaningful return code.
Parameters:
qva  parsed query/verify options
ts  transaction set
h  header to use for query
Returns:
0 always

Definition at line 122 of file query.c.

References _, _free(), int_32, printFileInfo(), QUERY_FOR_CONFIG, QUERY_FOR_DOCS, QUERY_FOR_DUMPFILES, QUERY_FOR_LIST, QUERY_FOR_STATE, queryHeader(), rpmQVKArguments_s::qva_fflags, rpmQVKArguments_s::qva_flags, rpmQVKArguments_s::qva_queryFormat, RPMERR_INTERNAL, rpmError, rpmfi, rpmfiFC(), rpmfiFFlags(), rpmfiFGroup(), rpmfiFLink(), rpmfiFMode(), rpmfiFMtime(), rpmfiFN(), rpmfiFNlink(), rpmfiFRdev(), rpmfiFree(), rpmfiFSize(), rpmfiFState(), rpmfiFUser(), rpmfiInit(), RPMFILE_CONFIG, RPMFILE_DOC, RPMFILE_GHOST, RPMFILE_STATE_MISSING, RPMFILE_STATE_NETSHARED, RPMFILE_STATE_NORMAL, RPMFILE_STATE_NOTINSTALLED, RPMFILE_STATE_REPLACED, RPMFILE_STATE_WRONGCOLOR, rpmfileAttrs, rpmfileState, rpmfiMD5(), rpmfiNew(), rpmfiNext(), rpmIsVerbose, RPMMESS_NORMAL, rpmMessage, RPMTAG_BASENAMES, rpmts, stpcpy(), xmalloc(), and xrealloc().

Referenced by rpmcliQuery().


Variable Documentation

IDTX IDTXnew(void)
 

Create id index.

Returns:
new id index

int rpmcliHashesCurrent
 

Definition at line 484 of file rpmcli.h.

Referenced by printHash(), and rpmShowProgress().

int rpmcliHashesTotal
 

Definition at line 486 of file rpmcli.h.

Referenced by printHash().

int rpmcliPackagesTotal
 

Definition at line 482 of file rpmcli.h.

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

const char* rpmcliPipeOutput
 

Definition at line 31 of file rpmcli.h.

int rpmcliProgressCurrent
 

Definition at line 488 of file rpmcli.h.

Referenced by printHash(), and rpmShowProgress().

int rpmcliProgressTotal
 

Definition at line 490 of file rpmcli.h.

Referenced by printHash(), and rpmShowProgress().

const char* rpmcliRcfile
 

Definition at line 34 of file rpmcli.h.

Referenced by rpmcliConfigured().

const char* rpmcliRootDir
 

Definition at line 37 of file rpmcli.h.


Generated on Sun Oct 26 13:02:05 2003 for rpm by doxygen1.2.18