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

lib/rpmts.c File Reference

Routine(s) to handle a "rpmts" transaction sets. More...

#include "system.h"
#include "rpmio_internal.h"
#include <rpmlib.h>
#include <rpmmacro.h>
#include "rpmdb.h"
#include "rpmal.h"
#include "rpmds.h"
#include "rpmfi.h"
#include "rpmte.h"
#include "rpmts.h"
#include "debug.h"

Go to the source code of this file.

Defines

#define _RPMTE_INTERNAL
#define _RPMTS_INTERNAL

Functions

char * hGetNEVR (Header h, const char **np)
 Return (malloc'd) header name-version-release string.

uint_32 hGetColor (Header h)
 Return header color.

rpmts XrpmtsUnlink (rpmts ts, const char *msg, const char *fn, unsigned ln)
rpmts XrpmtsLink (rpmts ts, const char *msg, const char *fn, unsigned ln)
int rpmtsCloseDB (rpmts ts)
int rpmtsOpenDB (rpmts ts, int dbmode)
int rpmtsInitDB (rpmts ts, int dbmode)
int rpmtsRebuildDB (rpmts ts)
int rpmtsVerifyDB (rpmts ts)
int isArch (const char *arch)
rpmdbMatchIterator rpmtsInitIterator (const rpmts ts, rpmTag rpmtag, const void *keyp, size_t keylen)
rpmRC rpmtsFindPubkey (rpmts ts)
 Retrieve pubkey from rpm database.

int rpmtsCloseSDB (rpmts ts)
int rpmtsOpenSDB (rpmts ts, int dbmode)
int sugcmp (const void *a, const void *b)
 Compare suggested package resolutions (qsort/bsearch).

int rpmtsSolve (rpmts ts, rpmds ds, const void *data)
 Attempt to solve a needed dependency using the solve database.

int rpmtsAvailable (rpmts ts, const rpmds ds)
 Attempt to solve a needed dependency using memory resident tables.

int rpmtsSetSolveCallback (rpmts ts, int(*solve)(rpmts ts, rpmds key, const void *data), const void *solveData)
rpmps rpmtsProblems (rpmts ts)
 Return current transaction set problems.

void rpmtsCleanDig (rpmts ts)
void rpmtsClean (rpmts ts)
void rpmtsEmpty (rpmts ts)
void rpmtsPrintStat (const char *name, struct rpmop_s *op)
void rpmtsPrintStats (rpmts ts)
rpmts rpmtsFree (rpmts ts)
rpmVSFlags rpmtsVSFlags (rpmts ts)
rpmVSFlags rpmtsSetVSFlags (rpmts ts, rpmVSFlags vsflags)
int rpmtsUnorderedSuccessors (rpmts ts, int first)
const char * rpmtsRootDir (rpmts ts)
void rpmtsSetRootDir (rpmts ts, const char *rootDir)
const char * rpmtsCurrDir (rpmts ts)
void rpmtsSetCurrDir (rpmts ts, const char *currDir)
FD_t rpmtsScriptFd (rpmts ts)
void rpmtsSetScriptFd (rpmts ts, FD_t scriptFd)
int rpmtsChrootDone (rpmts ts)
int rpmtsSetChrootDone (rpmts ts, int chrootDone)
int_32 rpmtsGetTid (rpmts ts)
int_32 rpmtsSetTid (rpmts ts, int_32 tid)
int_32 rpmtsSigtag (const rpmts ts)
int_32 rpmtsSigtype (const rpmts ts)
const void * rpmtsSig (const rpmts ts)
int_32 rpmtsSiglen (const rpmts ts)
int rpmtsSetSig (rpmts ts, int_32 sigtag, int_32 sigtype, const void *sig, int_32 siglen)
pgpDig rpmtsDig (rpmts ts)
pgpDigParams rpmtsSignature (const rpmts ts)
pgpDigParams rpmtsPubkey (const rpmts ts)
rpmdb rpmtsGetRdb (rpmts ts)
int rpmtsInitDSI (const rpmts ts)
void rpmtsUpdateDSI (const rpmts ts, dev_t dev, uint_32 fileSize, uint_32 prevSize, uint_32 fixupSize, fileAction action)
void rpmtsCheckDSIProblems (const rpmts ts, const rpmte te)
void * rpmtsNotify (rpmts ts, rpmte te, rpmCallbackType what, unsigned long amount, unsigned long total)
 Perform transaction progress notify callback.

int rpmtsNElements (rpmts ts)
 Return number of (ordered) transaction set elements.

rpmte rpmtsElement (rpmts ts, int ix)
 Return (ordered) transaction set element.

rpmprobFilterFlags rpmtsFilterFlags (rpmts ts)
rpmtransFlags rpmtsFlags (rpmts ts)
rpmtransFlags rpmtsSetFlags (rpmts ts, rpmtransFlags transFlags)
Spec rpmtsSpec (rpmts ts)
Spec rpmtsSetSpec (rpmts ts, Spec spec)
rpmte rpmtsRelocateElement (rpmts ts)
rpmte rpmtsSetRelocateElement (rpmts ts, rpmte relocateElement)
uint_32 rpmtsColor (rpmts ts)
 Retrieve color bits of transaction set.

uint_32 rpmtsSetColor (rpmts ts, uint_32 color)
 Set color bits of transaction set.

rpmop rpmtsOp (rpmts ts, rpmtsOpX opx)
 Retrieve operation timestamp from a transaction set.

int rpmtsSetNotifyCallback (rpmts ts, rpmCallbackFunction notify, rpmCallbackData notifyData)
int rpmtsGetKeys (const rpmts ts, fnpyKey **ep, int *nep)
rpmts rpmtsCreate (void)

Variables

int _rpmts_debug = 0
int _rpmts_stats = 0


Detailed Description

Routine(s) to handle a "rpmts" transaction sets.

Definition in file rpmts.c.


Define Documentation

#define _RPMTE_INTERNAL
 

Definition at line 17 of file rpmts.c.

#define _RPMTS_INTERNAL
 

Definition at line 20 of file rpmts.c.


Function Documentation

uint_32 hGetColor Header    h
 

Return header color.

Parameters:
h  header
Returns:
header color

Definition at line 88 of file rpmts.c.

References HGE_t, int_32, RPMTAG_FILECOLORS, and uint_32.

Referenced by rpmtsAddInstallElement().

char* hGetNEVR Header    h,
const char **    np
 

Return (malloc'd) header name-version-release string.

Parameters:
h  header
Return values:
np  name tag value
Returns:
name-version-release string

Definition at line 69 of file rpmts.c.

References headerNVR(), stpcpy(), and xcalloc().

Referenced by addTE(), checkPackageSet(), ensureOlder(), and handleInstInstalledFiles().

int isArch const char *    arch [static]
 

Definition at line 185 of file rpmts.c.

Referenced by rpmtsInitIterator().

int rpmtsAvailable rpmts    ts,
const rpmds    ds
 

Attempt to solve a needed dependency using memory resident tables.

Deprecated:
This function will move from rpmlib to the python bindings.
Parameters:
ts  transaction set
ds  dependency set
Returns:
0 if resolved (and added to ts), 1 not found

Definition at line 621 of file rpmts.c.

References _free(), fnpyKey, rpmalAllSatisfiesDepend(), rpmds, rpmts, and xrealloc().

uint_32 rpmtsColor rpmts    ts
 

Retrieve color bits of transaction set.

Parameters:
ts  transaction set
Returns:
color bits

Definition at line 1306 of file rpmts.c.

References rpmts, and uint_32.

Referenced by handleInstInstalledFiles(), handleOverlappedFiles(), rpmpsmStage(), rpmtsAddInstallElement(), rpmtsCheck(), rpmtsRun(), and skipFiles().

rpmte rpmtsElement rpmts    ts,
int    ix
 

Return (ordered) transaction set element.

Parameters:
ts  transaction set
ix  transaction element index
Returns:
transaction element (or NULL)

Definition at line 1242 of file rpmts.c.

References rpmte, and rpmts.

Referenced by rpmInstallSourcePackage(), rpmtsiFi(), and rpmtsiNextElement().

rpmRC rpmtsFindPubkey rpmts    ts
 

Retrieve pubkey from rpm database.

Parameters:
ts  rpm transaction
Returns:
RPMRC_OK on success, RPMRC_NOKEY if not found

Definition at line 295 of file rpmts.c.

References _free(), pgpDigParams_s::hash_algo, headerFreeData(), headerGetEntry(), int_32, PGPARMOR_PUBKEY, pgpPrtPkts(), PGPPUBKEYALGO_DSA, PGPPUBKEYALGO_RSA, pgpReadPkts(), pgpDigParams_s::pubkey_algo, rpmdbFreeIterator(), rpmdbGetIteratorFileNum(), rpmdbNextIterator(), rpmExpand(), RPMMESS_DEBUG, rpmMessage, rpmRC, RPMRC_NOKEY, RPMRC_OK, RPMTAG_PUBKEYS, rpmts, rpmtsDig(), rpmtsInitIterator(), rpmtsSig(), rpmtsSignature(), and pgpDigParams_s::signid.

Referenced by verifyGPGSignature(), and verifyPGPSignature().

int rpmtsNElements rpmts    ts
 

Return number of (ordered) transaction set elements.

Parameters:
ts  transaction set
Returns:
no. of transaction set elements

Definition at line 1233 of file rpmts.c.

References rpmts.

Referenced by rpmGraph(), rpmtsiNextElement(), rpmtsRun(), and XrpmtsiInit().

void* rpmtsNotify rpmts    ts,
rpmte    te,
rpmCallbackType    what,
unsigned long    amount,
unsigned long    total
 

Perform transaction progress notify callback.

Parameters:
ts  transaction set
te  current transaction element
what  type of call back
amount  current value
total  final value
Returns:
callback dependent pointer

Definition at line 1217 of file rpmts.c.

References rpmCallbackType, rpmte, rpmts, and TR_ADDED.

Referenced by fsmSetup(), fsmStage(), and rpmpsmStage().

rpmop rpmtsOp rpmts    ts,
rpmtsOpX    opx
 

Retrieve operation timestamp from a transaction set.

Parameters:
ts  transaction set
opx  operation timestamp index
Returns:
pointer to operation timestamp.

Definition at line 1321 of file rpmts.c.

References rpmts, RPMTS_OP_MAX, and rpmtsOpX.

Referenced by rpmpsmStage(), rpmtsCheck(), rpmtsCreate(), rpmtsOrder(), rpmtsPrintStats(), and rpmtsRun().

void rpmtsPrintStat const char *    name,
struct rpmop_s *    op
[static]
 

Definition at line 731 of file rpmts.c.

Referenced by rpmtsPrintStats().

void rpmtsPrintStats rpmts    ts [static]
 

Definition at line 743 of file rpmts.c.

References rpmts, RPMTS_OP_CHECK, RPMTS_OP_COMPRESS, RPMTS_OP_DBADD, RPMTS_OP_DBDEL, RPMTS_OP_DBGET, RPMTS_OP_DBPUT, RPMTS_OP_DBREMOVE, RPMTS_OP_DIGEST, RPMTS_OP_ERASE, RPMTS_OP_FINGERPRINT, RPMTS_OP_INSTALL, RPMTS_OP_ORDER, RPMTS_OP_REPACKAGE, RPMTS_OP_SCRIPTLETS, RPMTS_OP_SIGNATURE, RPMTS_OP_TOTAL, RPMTS_OP_UNCOMPRESS, rpmtsOp(), and rpmtsPrintStat().

Referenced by rpmtsFree().

rpmps rpmtsProblems rpmts    ts
 

Return current transaction set problems.

Parameters:
ts  transaction set
Returns:
current problem set (or NULL)

Definition at line 664 of file rpmts.c.

References rpmpsLink, and rpmts.

Referenced by checkSpec(), ensureOlder(), handleInstInstalledFiles(), handleOverlappedFiles(), relocateFileList(), rpmErase(), rpmGraph(), rpmInstall(), rpmRollback(), rpmts_Check(), rpmts_Run(), rpmtsCheckDSIProblems(), rpmtsRun(), and verifyDependencies().

uint_32 rpmtsSetColor rpmts    ts,
uint_32    color
 

Set color bits of transaction set.

Parameters:
ts  transaction set
color  new color bits
Returns:
previous color bits

Definition at line 1311 of file rpmts.c.

References rpmts, and uint_32.

Referenced by rpmts_SetColor().

int rpmtsSetSolveCallback rpmts    ts,
int(*    solve)(rpmts ts, rpmds key, const void *data),
const void *    solveData
 

Definition at line 647 of file rpmts.c.

References rpmds, and rpmts.

int rpmtsSolve rpmts    ts,
rpmds    ds,
const void *    data
 

Attempt to solve a needed dependency using the solve database.

Parameters:
ts  transaction set
ds  dependency set
data  opaque data associated with callback
Returns:
-1 retry, 0 ignore, 1 not found

Definition at line 467 of file rpmts.c.

References _, _free(), Fclose(), Ferror(), fnpyKey, Fopen(), Fstrerror(), headerFree(), headerGetEntry(), headerLink(), headerSprintf(), int_32, rpmdbFreeIterator(), rpmdbInitIterator(), rpmdbNextIterator(), rpmds, rpmdsAnyMatchesDep(), rpmdsN(), rpmdsTagN(), RPMERR_OPEN, RPMERR_QFMT, rpmError, rpmExpand(), RPMMESS_DEBUG, rpmMessage, rpmRC, RPMRC_NOKEY, RPMRC_NOTTRUSTED, RPMRC_OK, rpmReadPackageFile(), rpmTag, RPMTAG_BASENAMES, RPMTAG_BUILDTIME, RPMTAG_NAME, RPMTAG_PROVIDENAME, RPMTAG_REQUIRENAME, RPMTRANS_FLAG_ADDINDEPS, rpmts, rpmtsAddInstallElement(), rpmtsOpenSDB(), sugcmp(), and xrealloc().

Referenced by rpmInstall(), and rpmtsCreate().

int sugcmp const void *    a,
const void *    b
[static]
 

Compare suggested package resolutions (qsort/bsearch).

Parameters:
a  1st instance address
b  2nd instance address
Returns:
result of comparison

Definition at line 456 of file rpmts.c.

Referenced by rpmtsSolve().

rpmts XrpmtsLink rpmts    ts,
const char *    msg,
const char *    fn,
unsigned    ln
 

Todo:
Remove debugging entry from the ABI.

Definition at line 121 of file rpmts.c.

References rpmts.

rpmts XrpmtsUnlink rpmts    ts,
const char *    msg,
const char *    fn,
unsigned    ln
 

Todo:
Remove debugging entry from the ABI.

Definition at line 111 of file rpmts.c.

References rpmts.


Variable Documentation

int _rpmts_debug = 0
 

Definition at line 64 of file rpmts.c.

int _rpmts_stats = 0
 

Definition at line 67 of file rpmts.c.


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