rpm  4.8.1
Macros | Typedefs | Enumerations | Functions | Variables
rpmts.h File Reference

Structures and prototypes used for an "rpmts" transaction set. More...

#include <sys/types.h>
#include <rpm/rpmtypes.h>
#include <rpm/rpmps.h>
#include <rpm/rpmsw.h>
#include <rpm/rpmpgp.h>
#include <rpm/rpmfi.h>
#include <rpm/rpmcallback.h>
Include dependency graph for rpmts.h:

Go to the source code of this file.

Macros

#define _noTransScripts
 
#define _noTransTriggers
 
#define _RPMVSF_NODIGESTS
 
#define _RPMVSF_NOSIGNATURES
 
#define _RPMVSF_NOHEADER
 
#define _RPMVSF_NOPAYLOAD
 

Typedefs

typedef enum rpmtransFlags_e rpmtransFlags
 Bit(s) to control rpmtsRun() operation. More...
 
typedef enum rpmVSFlags_e rpmVSFlags
 Bit(s) to control digest and signature verification. More...
 
typedef enum rpmtsOpX_e rpmtsOpX
 Indices for timestamps. More...
 

Enumerations

enum  rpmtransFlags_e {
  RPMTRANS_FLAG_NONE = 0, RPMTRANS_FLAG_TEST = (1 << 0), RPMTRANS_FLAG_BUILD_PROBS = (1 << 1), RPMTRANS_FLAG_NOSCRIPTS = (1 << 2),
  RPMTRANS_FLAG_JUSTDB = (1 << 3), RPMTRANS_FLAG_NOTRIGGERS = (1 << 4), RPMTRANS_FLAG_NODOCS = (1 << 5), RPMTRANS_FLAG_ALLFILES = (1 << 6),
  RPMTRANS_FLAG_KEEPOBSOLETE = (1 << 7), RPMTRANS_FLAG_NOCONTEXTS = (1 << 8), RPMTRANS_FLAG_DIRSTASH = (1 << 9), RPMTRANS_FLAG_REPACKAGE = (1 << 10),
  RPMTRANS_FLAG_PKGCOMMIT = (1 << 11), RPMTRANS_FLAG_PKGUNDO = (1 << 12), RPMTRANS_FLAG_COMMIT = (1 << 13), RPMTRANS_FLAG_UNDO = (1 << 14),
  RPMTRANS_FLAG_REVERSE = (1 << 15), RPMTRANS_FLAG_NOTRIGGERPREIN = (1 << 16), RPMTRANS_FLAG_NOPRE = (1 << 17), RPMTRANS_FLAG_NOPOST = (1 << 18),
  RPMTRANS_FLAG_NOTRIGGERIN = (1 << 19), RPMTRANS_FLAG_NOTRIGGERUN = (1 << 20), RPMTRANS_FLAG_NOPREUN = (1 << 21), RPMTRANS_FLAG_NOPOSTUN = (1 << 22),
  RPMTRANS_FLAG_NOTRIGGERPOSTUN = (1 << 23), RPMTRANS_FLAG_NOPAYLOAD = (1 << 24), RPMTRANS_FLAG_APPLYONLY = (1 << 25), RPMTRANS_FLAG_NOMD5 = (1 << 27),
  RPMTRANS_FLAG_NOFILEDIGEST = (1 << 27), RPMTRANS_FLAG_NOSUGGEST = (1 << 28), RPMTRANS_FLAG_ADDINDEPS = (1 << 29), RPMTRANS_FLAG_NOCONFIGS = (1 << 30),
  RPMTRANS_FLAG_DEPLOOPS = (1 << 31)
}
 Bit(s) to control rpmtsRun() operation. More...
 
enum  rpmVSFlags_e {
  RPMVSF_DEFAULT = 0, RPMVSF_NOHDRCHK = (1 << 0), RPMVSF_NEEDPAYLOAD = (1 << 1), RPMVSF_NOSHA1HEADER = (1 << 8),
  RPMVSF_NOMD5HEADER = (1 << 9), RPMVSF_NODSAHEADER = (1 << 10), RPMVSF_NORSAHEADER = (1 << 11), RPMVSF_NOSHA1 = (1 << 16),
  RPMVSF_NOMD5 = (1 << 17), RPMVSF_NODSA = (1 << 18), RPMVSF_NORSA = (1 << 19)
}
 Bit(s) to control digest and signature verification. More...
 
enum  rpmtsOpX_e {
  RPMTS_OP_TOTAL = 0, RPMTS_OP_CHECK = 1, RPMTS_OP_ORDER = 2, RPMTS_OP_FINGERPRINT = 3,
  RPMTS_OP_INSTALL = 5, RPMTS_OP_ERASE = 6, RPMTS_OP_SCRIPTLETS = 7, RPMTS_OP_COMPRESS = 8,
  RPMTS_OP_UNCOMPRESS = 9, RPMTS_OP_DIGEST = 10, RPMTS_OP_SIGNATURE = 11, RPMTS_OP_DBADD = 12,
  RPMTS_OP_DBREMOVE = 13, RPMTS_OP_DBGET = 14, RPMTS_OP_DBPUT = 15, RPMTS_OP_DBDEL = 16,
  RPMTS_OP_MAX = 17
}
 Indices for timestamps. More...
 

Functions

int rpmtsCheck (rpmts ts)
 Perform dependency resolution on the transaction set. More...
 
int rpmtsOrder (rpmts ts)
 Determine package order in a transaction set according to dependencies. More...
 
int rpmtsRun (rpmts ts, rpmps okProbs, rpmprobFilterFlags ignoreSet)
 Process all package elements in a transaction set. More...
 
rpmts rpmtsUnlink (rpmts ts, const char *msg)
 Unreference a transaction instance. More...
 
rpmts rpmtsLink (rpmts ts, const char *msg)
 Reference a transaction set instance. More...
 
int rpmtsCloseDB (rpmts ts)
 Close the database used by the transaction. More...
 
int rpmtsOpenDB (rpmts ts, int dbmode)
 Open the database used by the transaction. More...
 
int rpmtsInitDB (rpmts ts, int dbmode)
 Initialize the database used by the transaction. More...
 
int rpmtsGetDBMode (rpmts ts)
 Return the transaction database mode. More...
 
int rpmtsSetDBMode (rpmts ts, int dbmode)
 Set the transaction database mode. More...
 
int rpmtsRebuildDB (rpmts ts)
 Rebuild the database used by the transaction. More...
 
int rpmtsVerifyDB (rpmts ts)
 Verify the database used by the transaction. More...
 
rpmdbMatchIterator rpmtsInitIterator (const rpmts ts, rpmTag rpmtag, const void *keyp, size_t keylen)
 Return transaction database iterator. More...
 
rpmRC rpmtsFindPubkey (rpmts ts, pgpDig dig) RPM_GNUC_DEPRECATED
 Retrieve pubkey from rpm database. More...
 
rpmRC rpmtsImportPubkey (rpmts ts, const unsigned char *pkt, size_t pktlen)
 Import public key packet(s). More...
 
rpmKeyring rpmtsGetKeyring (rpmts ts, int autoload)
 Retrieve handle for keyring used for this transaction set. More...
 
int rpmtsSetKeyring (rpmts ts, rpmKeyring keyring)
 Set keyring to use for this transaction set. More...
 
int rpmtsSetSolveCallback (rpmts ts, int(*solve)(rpmts ts, rpmds ds, const void *data), const void *solveData)
 Set dependency solver callback. More...
 
rpmps rpmtsProblems (rpmts ts)
 Return current transaction set problems. More...
 
void rpmtsCleanProblems (rpmts ts)
 Clean current transaction problem set. More...
 
void rpmtsClean (rpmts ts)
 Free memory needed only for dependency checks and ordering. More...
 
void rpmtsEmpty (rpmts ts)
 Re-create an empty transaction set. More...
 
rpmts rpmtsFree (rpmts ts)
 Destroy transaction set, closing the database as well. More...
 
rpmVSFlags rpmtsVSFlags (rpmts ts)
 Get verify signatures flag(s). More...
 
rpmVSFlags rpmtsSetVSFlags (rpmts ts, rpmVSFlags vsflags)
 Set verify signatures flag(s). More...
 
const char * rpmtsRootDir (rpmts ts)
 Get transaction rootDir, i.e. More...
 
int rpmtsSetRootDir (rpmts ts, const char *rootDir)
 Set transaction rootDir, i.e. More...
 
const char * rpmtsCurrDir (rpmts ts)
 Get transaction currDir, i.e. More...
 
void rpmtsSetCurrDir (rpmts ts, const char *currDir)
 Set transaction currDir, i.e. More...
 
FD_t rpmtsScriptFd (rpmts ts)
 Get transaction script file handle, i.e. More...
 
void rpmtsSetScriptFd (rpmts ts, FD_t scriptFd)
 Set transaction script file handle, i.e. More...
 
int rpmtsSELinuxEnabled (rpmts ts)
 Get selinuxEnabled flag, i.e. More...
 
int rpmtsChrootDone (rpmts ts)
 Get chrootDone flag, i.e. More...
 
int rpmtsSetChrootDone (rpmts ts, int chrootDone)
 Set chrootDone flag, i.e. More...
 
rpm_tid_t rpmtsGetTid (rpmts ts)
 Get transaction id, i.e. More...
 
rpm_tid_t rpmtsSetTid (rpmts ts, rpm_tid_t tid)
 Set transaction id, i.e. More...
 
rpmdb rpmtsGetRdb (rpmts ts)
 Get transaction set database handle. More...
 
void * rpmtsNotify (rpmts ts, rpmte te, rpmCallbackType what, rpm_loff_t amount, rpm_loff_t total)
 Perform transaction progress notify callback. More...
 
int rpmtsNElements (rpmts ts)
 Return number of (ordered) transaction set elements. More...
 
rpmte rpmtsElement (rpmts ts, int ix)
 Return (ordered) transaction set element. More...
 
rpmprobFilterFlags rpmtsFilterFlags (rpmts ts)
 Get problem ignore bit mask, i.e. More...
 
rpmtransFlags rpmtsFlags (rpmts ts)
 Get transaction flags, i.e. More...
 
rpmtransFlags rpmtsSetFlags (rpmts ts, rpmtransFlags transFlags)
 Set transaction flags, i.e. More...
 
rpmSpec rpmtsSpec (rpmts ts)
 Get spec control structure from transaction set. More...
 
rpmSpec rpmtsSetSpec (rpmts ts, rpmSpec spec)
 Set a spec control structure in transaction set. More...
 
rpm_color_t rpmtsColor (rpmts ts)
 Retrieve color bits of transaction set. More...
 
rpm_color_t rpmtsPrefColor (rpmts ts)
 Retrieve prefered file color. More...
 
rpm_color_t rpmtsSetColor (rpmts ts, rpm_color_t color)
 Set color bits of transaction set. More...
 
rpm_color_t rpmtsSetPrefColor (rpmts ts, rpm_color_t color)
 Set prefered file color. More...
 
rpmop rpmtsOp (rpmts ts, rpmtsOpX opx)
 Retrieve operation timestamp from a transaction set. More...
 
int rpmtsSetNotifyCallback (rpmts ts, rpmCallbackFunction notify, rpmCallbackData notifyData)
 Set transaction notify callback function and argument. More...
 
rpmts rpmtsCreate (void)
 Create an empty transaction set. More...
 
int rpmtsAddInstallElement (rpmts ts, Header h, const fnpyKey key, int upgrade, rpmRelocation *relocs)
 Add package to be installed to transaction set. More...
 
int rpmtsAddEraseElement (rpmts ts, Header h, int dboffset)
 Add package to be erased to transaction set. More...
 

Variables

int _rpmts_debug
 
int _rpmts_stats
 

Detailed Description

Structures and prototypes used for an "rpmts" transaction set.

Definition in file rpmts.h.

Macro Definition Documentation

◆ _noTransScripts

#define _noTransScripts
Value:
RPMTRANS_FLAG_NOPOST | \
RPMTRANS_FLAG_NOPREUN | \
RPMTRANS_FLAG_NOPOSTUN \
)

Definition at line 67 of file rpmts.h.

Referenced by main().

◆ _noTransTriggers

#define _noTransTriggers
Value:
RPMTRANS_FLAG_NOTRIGGERIN | \
RPMTRANS_FLAG_NOTRIGGERUN | \
RPMTRANS_FLAG_NOTRIGGERPOSTUN \
)

Definition at line 74 of file rpmts.h.

Referenced by main().

◆ _RPMVSF_NODIGESTS

#define _RPMVSF_NODIGESTS
Value:
RPMVSF_NOMD5HEADER | \
RPMVSF_NOSHA1 | \
RPMVSF_NOMD5 )

Definition at line 101 of file rpmts.h.

Referenced by build(), and main().

◆ _RPMVSF_NOHEADER

#define _RPMVSF_NOHEADER
Value:
RPMVSF_NOMD5HEADER | \
RPMVSF_NODSAHEADER | \
RPMVSF_NORSAHEADER )

Definition at line 113 of file rpmts.h.

◆ _RPMVSF_NOPAYLOAD

#define _RPMVSF_NOPAYLOAD
Value:
RPMVSF_NOMD5 | \
RPMVSF_NODSA | \
RPMVSF_NORSA )

Definition at line 119 of file rpmts.h.

◆ _RPMVSF_NOSIGNATURES

#define _RPMVSF_NOSIGNATURES
Value:
RPMVSF_NORSAHEADER | \
RPMVSF_NODSA | \
RPMVSF_NORSA )

Definition at line 107 of file rpmts.h.

Referenced by build(), and main().

Typedef Documentation

◆ rpmtransFlags

Bit(s) to control rpmtsRun() operation.

◆ rpmtsOpX

typedef enum rpmtsOpX_e rpmtsOpX

Indices for timestamps.

◆ rpmVSFlags

typedef enum rpmVSFlags_e rpmVSFlags

Bit(s) to control digest and signature verification.

Enumeration Type Documentation

◆ rpmtransFlags_e

Bit(s) to control rpmtsRun() operation.

Enumerator
RPMTRANS_FLAG_NONE 
RPMTRANS_FLAG_TEST 

from –test

RPMTRANS_FLAG_BUILD_PROBS 

don't process payload

RPMTRANS_FLAG_NOSCRIPTS 

from –noscripts

RPMTRANS_FLAG_JUSTDB 

from –justdb

RPMTRANS_FLAG_NOTRIGGERS 

from –notriggers

RPMTRANS_FLAG_NODOCS 

from –excludedocs

RPMTRANS_FLAG_ALLFILES 

from –allfiles

RPMTRANS_FLAG_KEEPOBSOLETE 
Todo:
Document.
RPMTRANS_FLAG_NOCONTEXTS 

from –nocontexts

RPMTRANS_FLAG_DIRSTASH 

obsolete, unused

RPMTRANS_FLAG_REPACKAGE 

obsolete, unused

RPMTRANS_FLAG_PKGCOMMIT 
RPMTRANS_FLAG_PKGUNDO 
RPMTRANS_FLAG_COMMIT 
RPMTRANS_FLAG_UNDO 
RPMTRANS_FLAG_REVERSE 
RPMTRANS_FLAG_NOTRIGGERPREIN 

from –notriggerprein

RPMTRANS_FLAG_NOPRE 

from –nopre

RPMTRANS_FLAG_NOPOST 

from –nopost

RPMTRANS_FLAG_NOTRIGGERIN 

from –notriggerin

RPMTRANS_FLAG_NOTRIGGERUN 

from –notriggerun

RPMTRANS_FLAG_NOPREUN 

from –nopreun

RPMTRANS_FLAG_NOPOSTUN 

from –nopostun

RPMTRANS_FLAG_NOTRIGGERPOSTUN 

from –notriggerpostun

RPMTRANS_FLAG_NOPAYLOAD 
RPMTRANS_FLAG_APPLYONLY 
RPMTRANS_FLAG_NOMD5 

from –nomd5

RPMTRANS_FLAG_NOFILEDIGEST 

from –nofiledigest (alias to –nomd5)

RPMTRANS_FLAG_NOSUGGEST 

from –nosuggest

RPMTRANS_FLAG_ADDINDEPS 

from –aid

RPMTRANS_FLAG_NOCONFIGS 

from –noconfigs

RPMTRANS_FLAG_DEPLOOPS 

from –deploops

Definition at line 28 of file rpmts.h.

◆ rpmtsOpX_e

enum rpmtsOpX_e

Indices for timestamps.

Enumerator
RPMTS_OP_TOTAL 
RPMTS_OP_CHECK 
RPMTS_OP_ORDER 
RPMTS_OP_FINGERPRINT 
RPMTS_OP_INSTALL 
RPMTS_OP_ERASE 
RPMTS_OP_SCRIPTLETS 
RPMTS_OP_COMPRESS 
RPMTS_OP_UNCOMPRESS 
RPMTS_OP_DIGEST 
RPMTS_OP_SIGNATURE 
RPMTS_OP_DBADD 
RPMTS_OP_DBREMOVE 
RPMTS_OP_DBGET 
RPMTS_OP_DBPUT 
RPMTS_OP_DBDEL 
RPMTS_OP_MAX 

Definition at line 128 of file rpmts.h.

◆ rpmVSFlags_e

Bit(s) to control digest and signature verification.

Enumerator
RPMVSF_DEFAULT 
RPMVSF_NOHDRCHK 
RPMVSF_NEEDPAYLOAD 
RPMVSF_NOSHA1HEADER 
RPMVSF_NOMD5HEADER 
RPMVSF_NODSAHEADER 
RPMVSF_NORSAHEADER 
RPMVSF_NOSHA1 
RPMVSF_NOMD5 
RPMVSF_NODSA 
RPMVSF_NORSA 

Definition at line 84 of file rpmts.h.

Function Documentation

◆ rpmtsAddEraseElement()

int rpmtsAddEraseElement ( rpmts  ts,
Header  h,
int  dboffset 
)

Add package to be erased to transaction set.

Parameters
tstransaction set
hheader
dboffsetununsed
Returns
0 on success, 1 on error (not installed)

◆ rpmtsAddInstallElement()

int rpmtsAddInstallElement ( rpmts  ts,
Header  h,
const fnpyKey  key,
int  upgrade,
rpmRelocation relocs 
)

Add package to be installed to transaction set.

The transaction set is checked for duplicate package names. If found, the package with the "newest" EVR will be replaced.

Parameters
tstransaction set
hheader
keypackage retrieval key (e.g. file name)
upgradeis package being upgraded?
relocspackage file relocations
Returns
0 on success, 1 on I/O error, 2 needs capabilities

Referenced by checkSpec().

◆ rpmtsCheck()

int rpmtsCheck ( rpmts  ts)

Perform dependency resolution on the transaction set.

Any problems found by rpmtsCheck() can be examined by retrieving the problem set with rpmtsProblems(), success here only means that the resolution was successfully attempted for all packages in the set.

Parameters
tstransaction set
Returns
0 on success

Referenced by checkSpec().

◆ rpmtsChrootDone()

int rpmtsChrootDone ( rpmts  ts)

Get chrootDone flag, i.e.

has chroot(2) been performed?

Parameters
tstransaction set
Returns
chrootDone flag

◆ rpmtsClean()

void rpmtsClean ( rpmts  ts)

Free memory needed only for dependency checks and ordering.

Parameters
tstransaction set

Referenced by checkSpec().

◆ rpmtsCleanProblems()

void rpmtsCleanProblems ( rpmts  ts)

Clean current transaction problem set.

Parameters
tstransaction set

◆ rpmtsCloseDB()

int rpmtsCloseDB ( rpmts  ts)

Close the database used by the transaction.

Parameters
tstransaction set
Returns
0 on success

◆ rpmtsColor()

rpm_color_t rpmtsColor ( rpmts  ts)

Retrieve color bits of transaction set.

Parameters
tstransaction set
Returns
color bits

◆ rpmtsCreate()

rpmts rpmtsCreate ( void  )

Create an empty transaction set.

Returns
new transaction set

Referenced by main().

◆ rpmtsCurrDir()

const char* rpmtsCurrDir ( rpmts  ts)

Get transaction currDir, i.e.

current directory before chroot(2).

Parameters
tstransaction set
Returns
transaction currDir

◆ rpmtsElement()

rpmte rpmtsElement ( rpmts  ts,
int  ix 
)

Return (ordered) transaction set element.

Parameters
tstransaction set
ixtransaction element index
Returns
transaction element (or NULL)

◆ rpmtsEmpty()

void rpmtsEmpty ( rpmts  ts)

Re-create an empty transaction set.

Parameters
tstransaction set

◆ rpmtsFilterFlags()

rpmprobFilterFlags rpmtsFilterFlags ( rpmts  ts)

Get problem ignore bit mask, i.e.

bits to filter encountered problems.

Parameters
tstransaction set
Returns
ignore bit mask

◆ rpmtsFindPubkey()

rpmRC rpmtsFindPubkey ( rpmts  ts,
pgpDig  dig 
)

Retrieve pubkey from rpm database.

Parameters
tsrpm transaction
digOpenPGP packet container
Returns
RPMRC_OK on success, RPMRC_NOKEY if not found

◆ rpmtsFlags()

rpmtransFlags rpmtsFlags ( rpmts  ts)

Get transaction flags, i.e.

bits that control rpmtsRun().

Parameters
tstransaction set
Returns
transaction flags

◆ rpmtsFree()

rpmts rpmtsFree ( rpmts  ts)

Destroy transaction set, closing the database as well.

Parameters
tstransaction set
Returns
NULL always

Referenced by main().

◆ rpmtsGetDBMode()

int rpmtsGetDBMode ( rpmts  ts)

Return the transaction database mode.

Parameters
tstransaction set
Returns
O_RDONLY, O_RDWR or -1 (lazy opens disabled)

◆ rpmtsGetKeyring()

rpmKeyring rpmtsGetKeyring ( rpmts  ts,
int  autoload 
)

Retrieve handle for keyring used for this transaction set.

Parameters
tstransaction set
autoloadload default keyring if keyring is not set
Returns
keyring handle (or NULL)

◆ rpmtsGetRdb()

rpmdb rpmtsGetRdb ( rpmts  ts)

Get transaction set database handle.

Parameters
tstransaction set
Returns
transaction database handle

◆ rpmtsGetTid()

rpm_tid_t rpmtsGetTid ( rpmts  ts)

Get transaction id, i.e.

transaction time stamp.

Parameters
tstransaction set
Returns
transaction id

◆ rpmtsImportPubkey()

rpmRC rpmtsImportPubkey ( rpmts  ts,
const unsigned char *  pkt,
size_t  pktlen 
)

Import public key packet(s).

Todo:
Implicit –update policy for gpg-pubkey headers.
Parameters
tstransaction set
pktpgp pubkey packet(s)
pktlenpgp pubkey length
Returns
RPMRC_OK/RPMRC_FAIL

◆ rpmtsInitDB()

int rpmtsInitDB ( rpmts  ts,
int  dbmode 
)

Initialize the database used by the transaction.

Deprecated:
An explicit rpmdbInit() is almost never needed.
Parameters
tstransaction set
dbmodeO_RDONLY or O_RDWR
Returns
0 on success

Referenced by main().

◆ rpmtsInitIterator()

rpmdbMatchIterator rpmtsInitIterator ( const rpmts  ts,
rpmTag  rpmtag,
const void *  keyp,
size_t  keylen 
)

Return transaction database iterator.

Parameters
tstransaction set
rpmtagrpm tag
keypkey data (NULL for sequential access)
keylenkey data length (0 will use strlen(keyp))
Returns
NULL on failure

◆ rpmtsLink()

rpmts rpmtsLink ( rpmts  ts,
const char *  msg 
)

Reference a transaction set instance.

Parameters
tstransaction set
msg
Returns
new transaction set reference

◆ rpmtsNElements()

int rpmtsNElements ( rpmts  ts)

Return number of (ordered) transaction set elements.

Parameters
tstransaction set
Returns
no. of transaction set elements

◆ rpmtsNotify()

void* rpmtsNotify ( rpmts  ts,
rpmte  te,
rpmCallbackType  what,
rpm_loff_t  amount,
rpm_loff_t  total 
)

Perform transaction progress notify callback.

Parameters
tstransaction set
tecurrent transaction element
whattype of call back
amountcurrent value
totalfinal value
Returns
callback dependent pointer

◆ rpmtsOp()

rpmop rpmtsOp ( rpmts  ts,
rpmtsOpX  opx 
)

Retrieve operation timestamp from a transaction set.

Parameters
tstransaction set
opxoperation timestamp index
Returns
pointer to operation timestamp.

◆ rpmtsOpenDB()

int rpmtsOpenDB ( rpmts  ts,
int  dbmode 
)

Open the database used by the transaction.

Parameters
tstransaction set
dbmodeO_RDONLY or O_RDWR
Returns
0 on success

◆ rpmtsOrder()

int rpmtsOrder ( rpmts  ts)

Determine package order in a transaction set according to dependencies.

Order packages, returning error if circular dependencies cannot be eliminated by removing Requires's from the loop(s). Only dependencies from added or removed packages are used to determine ordering using a topological sort (Knuth vol. 1, p. 262). Use rpmtsCheck() to verify that all dependencies can be resolved.

The final order ends up as installed packages followed by removed packages, with packages removed for upgrades immediately following the new package to be installed.

Parameters
tstransaction set
Returns
no. of (added) packages that could not be ordered

◆ rpmtsPrefColor()

rpm_color_t rpmtsPrefColor ( rpmts  ts)

Retrieve prefered file color.

Parameters
tstransaction set
Returns
color bits

◆ rpmtsProblems()

rpmps rpmtsProblems ( rpmts  ts)

Return current transaction set problems.

Parameters
tstransaction set
Returns
current problem set (or NULL)

Referenced by checkSpec().

◆ rpmtsRebuildDB()

int rpmtsRebuildDB ( rpmts  ts)

Rebuild the database used by the transaction.

Parameters
tstransaction set
Returns
0 on success

Referenced by main().

◆ rpmtsRootDir()

const char* rpmtsRootDir ( rpmts  ts)

Get transaction rootDir, i.e.

path to chroot(2).

Parameters
tstransaction set
Returns
transaction rootDir

Referenced by buildForTarget().

◆ rpmtsRun()

int rpmtsRun ( rpmts  ts,
rpmps  okProbs,
rpmprobFilterFlags  ignoreSet 
)

Process all package elements in a transaction set.

Before calling rpmtsRun be sure to have:

Additionally, though not required you may want to:

Parameters
tstransaction set
okProbspreviously known problems (or NULL)
ignoreSetbits to filter problem types
Returns
0 on success, -1 on error, >0 with newProbs set

◆ rpmtsScriptFd()

FD_t rpmtsScriptFd ( rpmts  ts)

Get transaction script file handle, i.e.

stdout/stderr on scriptlet execution

Parameters
tstransaction set
Returns
transaction script file handle

◆ rpmtsSELinuxEnabled()

int rpmtsSELinuxEnabled ( rpmts  ts)

Get selinuxEnabled flag, i.e.

is SE linux enabled?

Parameters
tstransaction set
Returns
selinuxEnabled flag

◆ rpmtsSetChrootDone()

int rpmtsSetChrootDone ( rpmts  ts,
int  chrootDone 
)

Set chrootDone flag, i.e.

has chroot(2) been performed?

Parameters
tstransaction set
chrootDonenew chrootDone flag
Returns
previous chrootDone flag

◆ rpmtsSetColor()

rpm_color_t rpmtsSetColor ( rpmts  ts,
rpm_color_t  color 
)

Set color bits of transaction set.

Parameters
tstransaction set
colornew color bits
Returns
previous color bits

◆ rpmtsSetCurrDir()

void rpmtsSetCurrDir ( rpmts  ts,
const char *  currDir 
)

Set transaction currDir, i.e.

current directory before chroot(2).

Parameters
tstransaction set
currDirnew transaction currDir (or NULL)

◆ rpmtsSetDBMode()

int rpmtsSetDBMode ( rpmts  ts,
int  dbmode 
)

Set the transaction database mode.

Only permitted when when backing database hasn't been opened yet (ie rpmtsGetRdb(ts) == NULL)

Parameters
tstransaction set
dbmodeO_RDONLY, O_RDWR or -1 (disable lazy opens)
Returns
0 on success, 1 on error

◆ rpmtsSetFlags()

rpmtransFlags rpmtsSetFlags ( rpmts  ts,
rpmtransFlags  transFlags 
)

Set transaction flags, i.e.

bits that control rpmtsRun().

Parameters
tstransaction set
transFlagsnew transaction flags
Returns
previous transaction flags

◆ rpmtsSetKeyring()

int rpmtsSetKeyring ( rpmts  ts,
rpmKeyring  keyring 
)

Set keyring to use for this transaction set.

Keyring can be only changed while the underlying rpm database is not yet open.

Parameters
tstransaction set
keyringkeyring handle (NULL to free current keyring)
Returns
0 on success, -1 on error

◆ rpmtsSetNotifyCallback()

int rpmtsSetNotifyCallback ( rpmts  ts,
rpmCallbackFunction  notify,
rpmCallbackData  notifyData 
)

Set transaction notify callback function and argument.

Warning
This call must be made before rpmtsRun() for install/upgrade/freshen to function correctly.
Parameters
tstransaction set
notifyprogress callback
notifyDataprogress callback private data
Returns
0 on success

◆ rpmtsSetPrefColor()

rpm_color_t rpmtsSetPrefColor ( rpmts  ts,
rpm_color_t  color 
)

Set prefered file color.

Parameters
tstransaction set
colornew color bits
Returns
previous color bits

◆ rpmtsSetRootDir()

int rpmtsSetRootDir ( rpmts  ts,
const char *  rootDir 
)

Set transaction rootDir, i.e.

path to chroot(2).

Parameters
tstransaction set
rootDirnew transaction rootDir (or NULL)
Returns
0 on success, -1 on error (invalid rootDir)

Referenced by main().

◆ rpmtsSetScriptFd()

void rpmtsSetScriptFd ( rpmts  ts,
FD_t  scriptFd 
)

Set transaction script file handle, i.e.

stdout/stderr on scriptlet execution

Parameters
tstransaction set
scriptFdnew script file handle (or NULL)

◆ rpmtsSetSolveCallback()

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

Set dependency solver callback.

Parameters
tstransaction set
(*solve)dependency solver callback
solveDatadependency solver callback data (opaque)
Returns
0 on success

◆ rpmtsSetSpec()

rpmSpec rpmtsSetSpec ( rpmts  ts,
rpmSpec  spec 
)

Set a spec control structure in transaction set.

Parameters
tstransaction set
specnew spec control structure
Returns
previous spec control structure

Referenced by buildForTarget().

◆ rpmtsSetTid()

rpm_tid_t rpmtsSetTid ( rpmts  ts,
rpm_tid_t  tid 
)

Set transaction id, i.e.

transaction time stamp.

Parameters
tstransaction set
tidnew transaction id
Returns
previous transaction id

◆ rpmtsSetVSFlags()

rpmVSFlags rpmtsSetVSFlags ( rpmts  ts,
rpmVSFlags  vsflags 
)

Set verify signatures flag(s).

Parameters
tstransaction set
vsflagsnew verify signatures flags
Returns
previous value

Referenced by build(), and main().

◆ rpmtsSpec()

rpmSpec rpmtsSpec ( rpmts  ts)

Get spec control structure from transaction set.

Parameters
tstransaction set
Returns
spec control structure

◆ rpmtsUnlink()

rpmts rpmtsUnlink ( rpmts  ts,
const char *  msg 
)

Unreference a transaction instance.

Parameters
tstransaction set
msg
Returns
NULL always

◆ rpmtsVerifyDB()

int rpmtsVerifyDB ( rpmts  ts)

Verify the database used by the transaction.

Parameters
tstransaction set
Returns
0 on success

Referenced by main().

◆ rpmtsVSFlags()

rpmVSFlags rpmtsVSFlags ( rpmts  ts)

Get verify signatures flag(s).

Parameters
tstransaction set
Returns
verify signatures flags

Variable Documentation

◆ _rpmts_debug

int _rpmts_debug

◆ _rpmts_stats

int _rpmts_stats