rpm  5.2.1
Defines | Functions | Variables
lib/rpmts.c File Reference

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

#include "system.h"
#include <rpmio.h>
#include <rpmiotypes.h>
#include <rpmlog.h>
#include <iosm.h>
#include <rpmurl.h>
#include <rpmpgp.h>
#include <rpmmacro.h>
#include <rpmkeyring.h>
#include <rpmtypes.h>
#include <rpmtag.h>
#include <pkgio.h>
#include "rpmdb.h"
#include "rpmal.h"
#include "rpmds.h"
#include "rpmfi.h"
#include "rpmlock.h"
#include "rpmns.h"
#include "rpmte.h"
#include "rpmts.h"
#include <rpmcli.h>
#include "fs.h"
#include "debug.h"
Include dependency graph for rpmts.c:

Go to the source code of this file.

Defines

#define _RPMDB_INTERNAL   /* XXX almost opaque sigh */
#define _RPMTE_INTERNAL   /* XXX te->h */
#define _RPMTS_INTERNAL
#define ST_RDONLY   1

Functions

int rpmtsCloseDB (rpmts ts)
 Close the database used by the transaction.
int rpmtsOpenDB (rpmts ts, int dbmode)
 Open the database used by the transaction.
int rpmtsInitDB (rpmts ts, int dbmode)
 Initialize the database used by the transaction.
int rpmtsRebuildDB (rpmts ts)
 Rebuild the database used by the transaction.
int rpmtsVerifyDB (rpmts ts)
 Verify the database used by the transaction.
rpmmi rpmtsInitIterator (const rpmts ts, rpmTag rpmtag, const void *keyp, size_t keylen)
 Return transaction database iterator.
int rpmtsCloseSDB (rpmts ts)
 Close the database used by the transaction to solve dependencies.
int rpmtsOpenSDB (rpmts ts, int dbmode)
 Open the database used by the transaction to solve dependencies.
static 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 rpmtsClean (rpmts ts)
 Free memory needed only for dependency checks and ordering.
void rpmtsEmpty (rpmts ts)
 Re-create an empty transaction set.
static void rpmtsPrintStat (const char *name, struct rpmop_s *op)
static void rpmtsPrintStats (rpmts ts)
static void rpmtsFini (void *_ts)
static rpmts rpmtsGetPool (rpmioPool pool)
void * rpmtsGetKeyring (rpmts ts, int autoload)
 Get transaction keyring.
int rpmtsSetKeyring (rpmts ts, void *_keyring)
 Set transaction keyring.
rpmVSFlags rpmtsVSFlags (rpmts ts)
 Get verify signatures flag(s).
rpmVSFlags rpmtsSetVSFlags (rpmts ts, rpmVSFlags vsflags)
 Set verify signatures flag(s).
rpmTSType rpmtsType (rpmts ts)
 Return the type of a transaction.
void rpmtsSetType (rpmts ts, rpmTSType type)
 Set transaction type.
rpmuint32_t rpmtsARBGoal (rpmts ts)
 Return the autorollback goal.
void rpmtsSetARBGoal (rpmts ts, rpmuint32_t goal)
 Set autorollback goal.
int rpmtsUnorderedSuccessors (rpmts ts, int first)
 Set index of 1st element of successors.
const char * rpmtsRootDir (rpmts ts)
 Get transaction rootDir, i.e.
void rpmtsSetRootDir (rpmts ts, const char *rootDir)
 Set transaction rootDir, i.e.
const char * rpmtsCurrDir (rpmts ts)
 Get transaction currDir, i.e.
void rpmtsSetCurrDir (rpmts ts, const char *currDir)
 Set transaction currDir, i.e.
FD_t rpmtsScriptFd (rpmts ts)
void rpmtsSetScriptFd (rpmts ts, FD_t scriptFd)
int rpmtsSELinuxEnabled (rpmts ts)
 Get selinuxEnabled flag, i.e.
int rpmtsChrootDone (rpmts ts)
 Get chrootDone flag, i.e.
int rpmtsSetChrootDone (rpmts ts, int chrootDone)
 Set chrootDone flag, i.e.
rpmuint32_t rpmtsGetTid (rpmts ts)
 Get transaction id, i.e.
rpmuint32_t rpmtsSetTid (rpmts ts, rpmuint32_t tid)
 Set transaction id, i.e.
rpmPRCO rpmtsPRCO (rpmts ts)
 Get transaction set dependencies.
int rpmtsInitDSI (const rpmts ts)
 Initialize disk space info for each and every mounted file systems.
void rpmtsUpdateDSI (const rpmts ts, dev_t dev, rpmuint32_t fileSize, rpmuint32_t prevSize, rpmuint32_t fixupSize, int _action)
 Update disk space info for a file.
void rpmtsCheckDSIProblems (const rpmts ts, const rpmte te)
 Check a transaction element for disk space problems.
void * rpmtsNotify (rpmts ts, rpmte te, rpmCallbackType what, rpmuint64_t amount, rpmuint64_t 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)
 Get problem ignore bit mask, i.e.
rpmtransFlags rpmtsFlags (rpmts ts)
 Get transaction flags, i.e.
rpmtransFlags rpmtsSetFlags (rpmts ts, rpmtransFlags transFlags)
 Set transaction flags, i.e.
rpmdepFlags rpmtsDFlags (rpmts ts)
 Get dependency flags, i.e.
rpmdepFlags rpmtsSetDFlags (rpmts ts, rpmdepFlags depFlags)
 Set dependency flags, i.e.
Spec rpmtsSpec (rpmts ts)
 Get spec control structure from transaction set.
Spec rpmtsSetSpec (rpmts ts, Spec spec)
 Set a spec control structure in transaction set.
rpmte rpmtsRelocateElement (rpmts ts)
 Get current relocate transaction element.
rpmte rpmtsSetRelocateElement (rpmts ts, rpmte relocateElement)
 Set current relocate transaction element.
tsmStage rpmtsGoal (rpmts ts)
 Retrieve goal of transaction set.
tsmStage rpmtsSetGoal (rpmts ts, tsmStage goal)
 Set goal of transaction set.
int rpmtsDBMode (rpmts ts)
 Retrieve dbmode of transaction set.
int rpmtsSetDBMode (rpmts ts, int dbmode)
 Set dbmode of transaction set.
rpmuint32_t rpmtsColor (rpmts ts)
 Retrieve color bits of transaction set.
rpmuint32_t rpmtsSetColor (rpmts ts, rpmuint32_t color)
 Set color bits of transaction set.
rpmuint32_t rpmtsPrefColor (rpmts ts)
 Retrieve prefered file color.
int rpmtsSetNotifyCallback (rpmts ts, rpmCallbackFunction notify, rpmCallbackData notifyData)
 Set transaction notify callback function and argument.
rpmts rpmtsCreate (void)
 Create an empty transaction set.

Variables

int _rpmts_debug = 0
int _rpmts_stats = 0
int _rpmts_macros = 0
rpmop _hdr_loadops
rpmop _hdr_getops
rpmioPool _rpmtsPool

Detailed Description

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

Definition in file rpmts.c.


Define Documentation

#define _RPMDB_INTERNAL   /* XXX almost opaque sigh */

Definition at line 20 of file rpmts.c.

#define _RPMTE_INTERNAL   /* XXX te->h */

Definition at line 29 of file rpmts.c.

#define _RPMTS_INTERNAL

Definition at line 32 of file rpmts.c.

#define ST_RDONLY   1

Function Documentation

static void rpmtsFini ( void *  _ts) [static]
static rpmts rpmtsGetPool ( rpmioPool  pool) [static]

Definition at line 692 of file rpmts.c.

References _rpmts_debug, _rpmtsPool, rpmioGetPool(), rpmioNewPool(), and rpmtsFini().

Referenced by rpmtsCreate().

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

Definition at line 573 of file rpmts.c.

References rpmop_s::bytes, rpmop_s::count, and rpmop_s::usecs.

Referenced by rpmtsPrintStats().

static void rpmtsPrintStats ( rpmts  ts) [static]

Definition at line 884 of file rpmts.c.

Referenced by runScript().

void rpmtsSetScriptFd ( rpmts  ts,
FD_t  scriptFd 
)

Definition at line 895 of file rpmts.c.

References fdFree(), and fdLink().

Referenced by rpmts_setattro(), and rpmVerifyScript().

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

Definition at line 488 of file rpmts.c.

Referenced by rpmts_Check().

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

Compare suggested package resolutions (qsort/bsearch).

Parameters:
a1st instance address
b2nd instance address
Returns:
result of comparison

Definition at line 294 of file rpmts.c.

Referenced by rpmtsSolve().


Variable Documentation

Definition at line 83 of file header.c.

Referenced by rpmtsPrintStats().

Definition at line 79 of file header.c.

Referenced by rpmtsPrintStats().

int _rpmts_debug = 0
int _rpmts_macros = 0

Definition at line 89 of file rpmts.c.

Referenced by rpmtsFini().

int _rpmts_stats = 0

Definition at line 86 of file rpmts.c.

Referenced by main(), rpmcliInit(), rpmtsFini(), and setStats().

Definition at line 690 of file rpmts.c.

Referenced by rpmtsGetPool().