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  rpmQVArguments_s
struct  rpmSignArguments_s

RPMQV

#define VERIFY_ATTRS
#define VERIFY_ALL   ( VERIFY_ATTRS | VERIFY_FILES | VERIFY_DEPS | VERIFY_SCRIPT | VERIFY_DIGEST )
typedef enum rpmQueryFlags_e rpmQueryFlags
typedef enum rpmVerifyFlags_e rpmVerifyFlags
typedef int(* QVF_t )(QVA_t qva, rpmdb db, Header h)
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_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_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 showMatches (QVA_t qva, rpmdbMatchIterator mi, QVF_t showPackage)
void rpmDisplayQueryTags (FILE *fp)
int rpmQueryVerify (QVA_t qva, rpmQVSources source, const char *arg, rpmdb db, QVF_t showPackage)
int showQueryPackage (QVA_t qva, rpmdb db, Header h)
int rpmQuery (QVA_t qva, rpmQVSources source, const char *arg)
int showVerifyPackage (QVA_t qva, rpmdb db, Header h)
int rpmVerifyDigest (Header h)
 Check original header digest.

int rpmVerify (QVA_t qva, rpmQVSources source, const char *arg)
rpmQVArguments_s rpmQVArgs
poptOption rpmQVSourcePoptTable []
 Common query/verify mode options.

int specedit
poptOption rpmQueryPoptTable []
 Query mode options.

poptOption rpmVerifyPoptTable []
 Verify mode options.


RPMK

#define CHECKSIG_ALL   (CHECKSIG_PGP|CHECKSIG_MD5|CHECKSIG_GPG)
typedef enum rpmCheckSigFlags_e rpmCheckSigFlags
typedef enum rpmResignFlags_e rpmResignFlags
enum  rpmCheckSigFlags_e { CHECKSIG_NONE = 0, CHECKSIG_PGP = (1 << 0), CHECKSIG_MD5 = (1 << 1), CHECKSIG_GPG = (1 << 2) }
enum  rpmResignFlags_e { RESIGN_NONE = 0, RESIGN_CHK_SIGNATURE = 1, RESIGN_NEW_SIGNATURE, RESIGN_ADD_SIGNATURE }
int rpmCheckSig (rpmCheckSigFlags flags, const char **argv)
int rpmReSign (rpmResignFlags add, char *passPhrase, const char **argv)
rpmSignArguments_s rpmKArgs
poptOption rpmSignPoptTable []

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.

int rpmInstall (const char *rootdir, const char **fileArgv, rpmtransFlags transFlags, rpmInstallInterfaceFlags interfaceFlags, rpmprobFilterFlags probFilter, rpmRelocation *relocations)
int rpmInstallSource (const char *rootdir, const char *arg, const char **specFile, char **cookie)
int rpmErase (const char *rootdir, const char **argv, rpmtransFlags transFlags, rpmEraseInterfaceFlags interfaceFlags)
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 (rpmdb db, rpmTag tag)
 Load tag (instance,value) pairs from rpm databse, and return sorted id index.

IDTX IDTXglob (const char *globstr, rpmTag tag)
 Load tag (instance,value) pairs from packages, and return sorted id index.

void * rpmShowProgress (const void *arg, const rpmCallbackType what, const unsigned long amount, const unsigned long total, const void *pkgKey, void *data)
 The rpm CLI generic transaction callback.

int rpmRollback (struct rpmInstallArguments_s *ia, const char **argv)
IDTX IDTXnew (void)
 Create id index.

int packagesTotal
rpmInstallArguments_s rpmIArgs
poptOption rpmInstallPoptTable []

RPMDB

rpmDatabaseArguments_s rpmDBArgs
poptOption rpmDatabasePoptTable []

Variables

int _noDirTokens


Detailed Description

Definition in file rpmcli.h.


Define Documentation

#define CHECKSIG_ALL   (CHECKSIG_PGP|CHECKSIG_MD5|CHECKSIG_GPG)
 

Definition at line 514 of file rpmcli.h.

Referenced by main().

#define VERIFY_ALL   ( VERIFY_ATTRS | VERIFY_FILES | VERIFY_DEPS | VERIFY_SCRIPT | VERIFY_DIGEST )
 

Definition at line 133 of file rpmcli.h.

Referenced by main().

#define VERIFY_ATTRS
 

Value:

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

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

Referenced by rpmRollback().

IDTX IDTXglob const char *    globstr,
rpmTag    tag
 

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

Parameters:
globstr  glob expression
tag  rpm tag
Returns:
id index

Definition at line 902 of file rpminstall.c.

References _, _free(), Fclose(), Ferror(), Fopen(), Fstrerror(), IDT_s::h, headerFree(), headerLink(), headerNVR(), HGE_t, IDTindex_s::idt, IDTXgrow(), IDTXsort(), IDT_s::instance, int_32, IDT_s::key, IDT_s::n, IDTindex_s::nidt, IDT_s::r, RPMERR_OPEN, rpmError, rpmGlob(), rpmRC, RPMRC_OK, rpmReadPackageHeader(), rpmTag, rpmTagType, IDT_s::v, IDT_s::val, and xstrdup().

Referenced by rpmRollback().

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 833 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 rpmdb    db,
rpmTag    tag
 

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

Parameters:
db  rpm database
tag  rpm tag
Returns:
id index

Definition at line 857 of file rpminstall.c.

References IDT_s::h, headerLink(), headerNVR(), HGE_t, IDTindex_s::idt, IDTXgrow(), IDTXsort(), IDT_s::instance, int_32, IDT_s::key, IDT_s::n, IDTindex_s::nidt, IDT_s::r, RPM_INT32_TYPE, RPM_NULL_TYPE, rpmdbFreeIterator(), rpmdbGetIteratorOffset(), rpmdbInitIterator(), rpmdbNextIterator(), rpmTag, rpmTagType, IDT_s::v, and IDT_s::val.

Referenced by rpmRollback().

IDTX IDTXsort IDTX    idtx
 

Sort tag (instance,value) pairs.

Parameters:
idtx  id index
Returns:
id index

Definition at line 850 of file rpminstall.c.

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

Referenced by IDTXglob(), and IDTXload().

int rpmCheckSig rpmCheckSigFlags    flags,
const char **    argv
 

Check elements in signature header.

Parameters:
flags  bit(s) to enable signature checks
argv  array of package file names (NULL terminated)
Returns:
0 on success

Definition at line 290 of file rpmchecksig.c.

References _, _free(), CHECKSIG_GPG, CHECKSIG_MD5, CHECKSIG_PGP, copyFile(), headerFreeData(), headerFreeIterator(), headerInitIterator(), headerNextIterator(), int_32, rpmlead::major, manageFile(), readLead(), rpmCheckSigFlags, RPMERR_BADSIGTYPE, RPMERR_READLEAD, RPMERR_SIGGEN, RPMERR_SIGVFY, rpmError, rpmIsVerbose, rpmRC, RPMRC_BADSIZE, RPMRC_OK, rpmReadSignature(), RPMSIG_NOKEY, RPMSIG_NOTTRUSTED, RPMSIGTAG_GPG, RPMSIGTAG_LEMD5_1, RPMSIGTAG_LEMD5_2, RPMSIGTAG_MD5, RPMSIGTAG_PGP, RPMSIGTAG_PGP5, RPMSIGTAG_SIZE, rpmVerifySignature(), and rpmlead::signature_type.

Referenced by checkSig(), and main().

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

int rpmQuery QVA_t    qva,
rpmQVSources    source,
const char *    arg
 

Display package information.

Todo:
hack: RPMQV_ALL can pass char ** arglist = NULL, not char * arg. Union?
Parameters:
qva  parsed query/verify options
source  type of source to query
arg  name of source to query
Returns:
rpmQueryVerify() result, or 1 on rpmdbOpen() failure

Definition at line 1012 of file query.c.

References rpmQVArguments_s::qva_prefix, rpmdbClose(), rpmdbOpen(), rpmQueryVerify(), RPMQV_RPM, RPMQV_SPECFILE, rpmQVSources, and showQueryPackage().

Referenced by main().

int rpmQueryVerify QVA_t    qva,
rpmQVSources    source,
const char *    arg,
rpmdb    db,
QVF_t    showPackage
 

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

Parameters:
qva  parsed query/verify options
source  type of source to query/verify
arg  name of source to query/verify
db  rpm database
showPackage  query/verify specific display routine
Returns:
showPackage() result, 1 if rpmdbInitIterator() is NULL

Definition at line 581 of file query.c.

References _, _free(), errno, F_OK, Fclose(), Ferror(), Fopen(), freeSpecVec, Fstrerror(), PackageStruct::header, headerFree(), PackageStruct::next, nibble(), SpecStruct::packages, parseSpecVec, PATH_MAX, printNewSpecfile(), QVF_t, realpath(), rpmCleanPath(), rpmdbFreeIterator(), RPMDBI_LABEL, RPMDBI_PACKAGES, rpmdbInitIterator(), rpmdbSetIteratorRE(), RPMERR_MANIFEST, RPMERR_OPEN, RPMERR_QUERY, RPMERR_QUERYINFO, rpmError, rpmExpandNumeric(), 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, rpmQVSources, rpmRC, RPMRC_BADMAGIC, RPMRC_OK, rpmReadPackageHeader(), rpmReadPackageManifest(), RPMTAG_BASENAMES, RPMTAG_FILEMD5S, RPMTAG_GROUP, RPMTAG_INSTALLTID, RPMTAG_NAME, RPMTAG_PROVIDENAME, RPMTAG_REQUIRENAME, RPMTAG_SHA1HEADER, RPMTAG_SIGMD5, RPMTAG_TRIGGERNAME, showMatches(), showQueryPackage(), and xstrdup().

Referenced by rpmQuery(), and rpmVerify().

int rpmReSign rpmResignFlags    add,
char *    passPhrase,
const char **    argv
 

Create/modify elements in signature header.

Parameters:
add  type of signature operation
passPhrase 
argv  array of package file names (NULL terminated)
Returns:
0 on success

Definition at line 105 of file rpmchecksig.c.

References _, _free(), copyFile(), EXIT_FAILURE, Fstrerror(), headerAddEntry(), headerCopyLoad(), headerFree(), headerFreeData(), headerFreeIterator(), headerGetEntry(), headerInitIterator(), headerLink(), headerNew(), headerNextIterator(), headerReload(), headerRemoveEntry(), hPTR_t, int_32, rpmlead::major, manageFile(), readLead(), rpmAddSignature(), RPMERR_BADSIGTYPE, RPMERR_READLEAD, RPMERR_SIGGEN, RPMERR_WRITELEAD, rpmError, RPMLOOKUPSIG_QUERY, rpmLookupSignatureType(), rpmRC, RPMRC_BADSIZE, RPMRC_OK, rpmReadSignature(), rpmResignFlags, RPMSIGTAG_BADSHA1_1, RPMSIGTAG_BADSHA1_2, RPMSIGTAG_DSA, RPMSIGTAG_GPG, RPMSIGTAG_LEMD5_1, RPMSIGTAG_LEMD5_2, RPMSIGTAG_MD5, RPMSIGTAG_PGP, RPMSIGTAG_PGP5, RPMSIGTAG_RSA, RPMSIGTAG_SHA1, RPMSIGTAG_SIZE, RPMSIGTYPE_HEADERSIG, RPMTAG_HEADERSIGNATURES, rpmWriteSignature(), rpmlead::signature_type, and writeLead().

Referenced by main().

void* rpmShowProgress const void *    arg,
const rpmCallbackType    what,
const unsigned long    amount,
const unsigned long    total,
const void *    pkgKey,
void *    data
 

The rpm CLI generic transaction callback.

Deprecated:
Transaction callback arguments need to change, so don't rely on this routine in the rpmcli API.
Parameters:
arg  per-callback private data (e.g. an rpm header)
what  callback identifier
amount  per-callback progress info
total  per-callback progress info
pkgKey  opaque header key (e.g. file name or PyObject)
data  private data (e.g. rpmInstallInterfaceFlags)
Returns:
per-callback data (e.g. an opened FD_t)

Definition at line 137 of file rpminstall.c.

References _, _free(), checkTTY(), countWidth, Fclose(), fdFree, fdLink, Fopen(), hashesPrinted, headerSprintf(), INSTALL_HASH, INSTALL_LABEL, INSTALL_PERCENT, nameWidth, packagesTotal, printHash(), progressCurrent, progressTotal, RPMCALLBACK_CPIO_ERROR, RPMCALLBACK_INST_CLOSE_FILE, RPMCALLBACK_INST_OPEN_FILE, RPMCALLBACK_INST_PROGRESS, RPMCALLBACK_INST_START, RPMCALLBACK_TRANS_PROGRESS, RPMCALLBACK_TRANS_START, RPMCALLBACK_TRANS_STOP, RPMCALLBACK_UNINST_PROGRESS, RPMCALLBACK_UNINST_START, RPMCALLBACK_UNINST_STOP, RPMCALLBACK_UNPACK_ERROR, and rpmCallbackType.

Referenced by rpmInstall(), and rpmRollback().

int rpmVerifyDigest Header    h
 

Check original header digest.

Todo:
Make digest check part of rpmdb iterator.
Parameters:
h  header
Returns:
0 on success (or unavailable), 1 on digest mismatch

Definition at line 305 of file verify.c.

References _free(), HFD_t, HGE_t, int_32, PGPHASHALGO_SHA1, RPMDIGEST_NONE, rpmDigestFinal(), rpmDigestInit(), rpmDigestUpdate(), RPMTAG_HEADERIMMUTABLE, RPMTAG_SHA1RHN, and rpmTagType.

Referenced by showVerifyPackage().

int showMatches QVA_t    qva,
rpmdbMatchIterator    mi,
QVF_t    showPackage
 

Display query/verify information for each header in iterator.

Parameters:
qva  parsed query/verify options
mi  rpm database iterator
showPackage  query/verify display routine
Returns:
result of last non-zero showPackage() return

Definition at line 535 of file query.c.

References QVF_t, rpmdbFreeIterator(), rpmdbGetIteratorRpmDB(), and rpmdbNextIterator().

Referenced by rpmQueryVerify().

int showQueryPackage QVA_t    qva,
rpmdb    db,
Header    h
 

Display results of package query.

Todo:
Devise a meaningful return code.
Parameters:
qva  parsed query/verify options
db  rpm database (unused for queries)
h  header to use for query
Returns:
0 always

Definition at line 150 of file query.c.

References _, _free(), countLinks(), headerNVR(), HFD_t, HGE_t, int_32, printFileInfo(), QUERY_FOR_CONFIG, QUERY_FOR_DEFAULT, QUERY_FOR_DOCS, QUERY_FOR_DUMPFILES, QUERY_FOR_LIST, QUERY_FOR_STATE, queryHeader(), rpmQVArguments_s::qva_fflags, rpmQVArguments_s::qva_flags, rpmQVArguments_s::qva_queryFormat, RPMERR_INTERNAL, rpmError, RPMFILE_CONFIG, RPMFILE_DOC, RPMFILE_GHOST, RPMFILE_STATE_NETSHARED, RPMFILE_STATE_NORMAL, RPMFILE_STATE_NOTINSTALLED, RPMFILE_STATE_REPLACED, rpmfileState, rpmIsVerbose, RPMMESS_NORMAL, rpmMessage, rpmQueryFlags, RPMTAG_BASENAMES, RPMTAG_DIRINDEXES, RPMTAG_DIRNAMES, RPMTAG_FILEFLAGS, RPMTAG_FILEGIDS, RPMTAG_FILEGROUPNAME, RPMTAG_FILEINODES, RPMTAG_FILELINKTOS, RPMTAG_FILEMD5S, RPMTAG_FILEMODES, RPMTAG_FILEMTIMES, RPMTAG_FILERDEVS, RPMTAG_FILESIZES, RPMTAG_FILESTATES, RPMTAG_FILEUIDS, RPMTAG_FILEUSERNAME, rpmTagType, stpcpy(), uint_16, xmalloc(), and xrealloc().

Referenced by rpmQuery(), and rpmQueryVerify().


Variable Documentation

IDTX IDTXnew(void)
 

Create id index.

Returns:
new id index

int packagesTotal
 

Definition at line 452 of file rpmcli.h.

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


Generated on Sun Feb 2 23:32:09 2003 for rpm by doxygen1.2.18