# Transaction Set API.

## Files
file | rpmte.h
| Structures used for an "rpmte" transaction element.

file | rpmts.h
| Structures and prototypes used for an "rpmts" transaction set.

## Typedefs
typedef enum rpmtransFlags_e | rpmtransFlags
| Bit(s) to control rpmtsRun() operation.
typedef enum rpmVSFlags_e | rpmVSFlags
| Bit(s) to control digest and signature verification.
typedef enum rpmtsOpX_e | rpmtsOpX
| Indices for timestamps.
## 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.
int | rpmtsOrder (rpmts ts)
| Determine package order in a transaction set according to dependencies.
int | rpmtsRun (rpmts ts, rpmps okProbs, rpmprobFilterFlags ignoreSet)
| Process all package elements in a transaction set.
rpmts | rpmtsUnlink (rpmts ts, const char *msg)
| Unreference a transaction instance.
rpmts | rpmtsLink (rpmts ts, const char *msg)
| Reference a transaction set instance.
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 | rpmtsGetDBMode (rpmts ts)
| Return the transaction database mode.
int | rpmtsSetDBMode (rpmts ts, int dbmode)
| Set the transaction database mode.
int | rpmtsRebuildDB (rpmts ts)
| Rebuild the database used by the transaction.
int | rpmtsVerifyDB (rpmts ts)
| Verify the database used by the transaction.
rpmdbMatchIterator | rpmtsInitIterator (const rpmts ts, rpmTag rpmtag, const void *keyp, size_t keylen)
| Return transaction database iterator.
rpmRC | rpmtsFindPubkey (rpmts ts, pgpDig dig) RPM_GNUC_DEPRECATED
| Retrieve pubkey from rpm database.
rpmRC | rpmtsImportPubkey (rpmts ts, const unsigned char *pkt, size_t pktlen)
| Import public key packet(s).
rpmKeyring | rpmtsGetKeyring (rpmts ts, int autoload)
| Retrieve handle for keyring used for this transaction set.
int | rpmtsSetKeyring (rpmts ts, rpmKeyring keyring)
| Set keyring to use for this transaction set.
int | rpmtsSetSolveCallback (rpmts ts, int(*solve)(rpmts ts, rpmds ds, const void *data), const void *solveData)
| Set dependency solver callback.
rpmps | rpmtsProblems (rpmts ts)
| Return current transaction set problems.
void | rpmtsCleanProblems (rpmts ts)
| Clean current transaction problem set.
void | rpmtsClean (rpmts ts)
| Free memory needed only for dependency checks and ordering.
void | rpmtsEmpty (rpmts ts)
| Re-create an empty transaction set.
rpmts | rpmtsFree (rpmts ts)
| Destroy transaction set, closing the database as well.
rpmVSFlags | rpmtsVSFlags (rpmts ts)
| Get verify signatures flag(s).
rpmVSFlags | rpmtsSetVSFlags (rpmts ts, rpmVSFlags vsflags)
| Set verify signatures flag(s).
int | rpmtsUnorderedSuccessors (rpmts ts, int first)
| Set index of 1st element of successors.
const char * | rpmtsRootDir (rpmts ts)
| Get transaction rootDir, i.e.
int | 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)
| Get transaction script file handle, i.e.
void | rpmtsSetScriptFd (rpmts ts, FD_t scriptFd)
| Set transaction script file handle, i.e.
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.
rpm_tid_t | rpmtsGetTid (rpmts ts)
| Get transaction id, i.e.
rpm_tid_t | rpmtsSetTid (rpmts ts, rpm_tid_t tid)
| Set transaction id, i.e.
rpmdb | rpmtsGetRdb (rpmts ts)
| Get transaction set database handle.
int | rpmtsInitDSI (const rpmts ts)
| Initialize disk space info for each and every mounted file systems.
void | rpmtsUpdateDSI (const rpmts ts, dev_t dev, rpm_loff_t fileSize, rpm_loff_t prevSize, rpm_loff_t fixupSize, rpmFileAction 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, rpm_loff_t amount, rpm_loff_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.
rpmSpec | rpmtsSpec (rpmts ts)
| Get spec control structure from transaction set.
rpmSpec | rpmtsSetSpec (rpmts ts, rpmSpec spec)
| Set a spec control structure in transaction set.
rpm_color_t | rpmtsColor (rpmts ts)
| Retrieve color bits of transaction set.
rpm_color_t | rpmtsPrefColor (rpmts ts)
| Retrieve prefered file color.
rpm_color_t | rpmtsSetColor (rpmts ts, rpm_color_t 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)
| Set transaction notify callback function and argument.
rpmts | rpmtsCreate (void)
| Create an empty transaction set.
int | rpmtsAddInstallElement (rpmts ts, Header h, const fnpyKey key, int upgrade, rpmRelocation *relocs)
| Add package to be installed to transaction set.
int | rpmtsAddEraseElement (rpmts ts, Header h, int dboffset)
| Add package to be erased to transaction set.
int | rpmtsGetKeys (rpmts ts, fnpyKey **ep, int *nep)
| Retrieve keys from ordered transaction set.

## Typedef Documentation

typedef enum rpmtransFlags_e rpmtransFlags

Bit(s) to control rpmtsRun() operation.

typedef enum rpmtsOpX_e rpmtsOpX

Indices for timestamps.

typedef enum rpmVSFlags_e rpmVSFlags

Bit(s) to control digest and signature verification.

## Enumeration Type Documentation

enum 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.

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.

enum 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

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

Add package to be erased to transaction set.

Parameters:

  | ts | transaction set
  | h | header
  | dboffset | ununsed

Returns:
  0 on success

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:

  | ts | transaction set
  | h | header
  | key | package retrieval key (e.g. file name)
  | upgrade | is package being upgraded?
  | relocs | package file relocations

Returns:
  0 on success, 1 on I/O error, 2 needs capabilities

Referenced by checkSpec().

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:

  | ts | transaction set

Returns:
  0 on success

Referenced by checkSpec().

void rpmtsCheckDSIProblems | ( | const rpmts | ts,
|  | const rpmte | te |
| ) |  |  |

Check a transaction element for disk space problems.

Parameters:

  | ts | transaction set
  | te | current transaction element

int rpmtsChrootDone | ( | rpmts | ts | ) |

Get chrootDone flag, i.e.

has chroot(2) been performed?

Parameters:

  | ts | transaction set

Returns:
  chrootDone flag

void rpmtsClean | ( | rpmts | ts | ) |

Free memory needed only for dependency checks and ordering.

Parameters:

  | ts | transaction set

Referenced by checkSpec().

void rpmtsCleanProblems | ( | rpmts | ts | ) |

Clean current transaction problem set.

Parameters:

  | ts | transaction set

int rpmtsCloseDB | ( | rpmts | ts | ) |

Close the database used by the transaction.

Parameters:

  | ts | transaction set

Returns:
  0 on success

rpm_color_t rpmtsColor | ( | rpmts | ts | ) |

Retrieve color bits of transaction set.

Parameters:

  | ts | transaction set

Returns:
  color bits

rpmts rpmtsCreate | ( | void |  | ) |

Create an empty transaction set.

Returns:
  new transaction set

Referenced by main().

const char* rpmtsCurrDir | ( | rpmts | ts | ) |

Get transaction currDir, i.e.

current directory before chroot(2).

Parameters:

  | ts | transaction set

Returns:
  transaction currDir

rpmte rpmtsElement | ( | rpmts | ts,
|  | int | ix |
| ) |  |  |

Return (ordered) transaction set element.

Parameters:

  | ts | transaction set
  | ix | transaction element index

Returns:
  transaction element (or NULL)

void rpmtsEmpty | ( | rpmts | ts | ) |

Re-create an empty transaction set.

Parameters:

  | ts | transaction set

rpmprobFilterFlags rpmtsFilterFlags | ( | rpmts | ts | ) |

Get problem ignore bit mask, i.e.

bits to filter encountered problems.

Parameters:

  | ts | transaction set

Returns:
  ignore bit mask

rpmRC rpmtsFindPubkey | ( | rpmts | ts,
|  | pgpDig | dig |
| ) |  |  |

Retrieve pubkey from rpm database.

Parameters:

  | ts | rpm transaction
  | dig | OpenPGP packet container

Returns:
  RPMRC_OK on success, RPMRC_NOKEY if not found

rpmtransFlags rpmtsFlags | ( | rpmts | ts | ) |

Get transaction flags, i.e.

bits that control rpmtsRun().

Parameters:

  | ts | transaction set

Returns:
  transaction flags

rpmts rpmtsFree | ( | rpmts | ts | ) |

Destroy transaction set, closing the database as well.

Parameters:

  | ts | transaction set

Returns:
  NULL always

Referenced by main().

int rpmtsGetDBMode | ( | rpmts | ts | ) |

Return the transaction database mode.

Parameters:

  | ts | transaction set

Returns:
  O_RDONLY, O_RDWR or -1 (lazy opens disabled)

rpmKeyring rpmtsGetKeyring | ( | rpmts | ts,
|  | int | autoload |
| ) |  |  |

Retrieve handle for keyring used for this transaction set.

Parameters:

  | ts | transaction set
  | autoload | load default keyring if keyring is not set

Returns:
  keyring handle (or NULL)

int rpmtsGetKeys | ( | rpmts | ts,
|  | fnpyKey ** | ep,
|  | int * | nep |
| ) |  |  |

Retrieve keys from ordered transaction set.

Todo:
  Removed packages have no keys, returned as interleaved NULL pointers.

Parameters:

  | ts | transaction set

Return values:

  | ep | address of returned element array pointer (or NULL)
  | nep | address of no. of returned elements (or NULL)

Returns:
  0 always

rpmdb rpmtsGetRdb | ( | rpmts | ts | ) |

Get transaction set database handle.

Parameters:

  | ts | transaction set

Returns:
  transaction database handle

rpm_tid_t rpmtsGetTid | ( | rpmts | ts | ) |

Get transaction id, i.e.

transaction time stamp.

Parameters:

  | ts | transaction set

Returns:
  transaction id

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:

  | ts | transaction set
  | pkt | pgp pubkey packet(s)
  | pktlen | pgp pubkey length

Returns:
  RPMRC_OK/RPMRC_FAIL

int rpmtsInitDB | ( | rpmts | ts,
|  | int | dbmode |
| ) |  |  |

Initialize the database used by the transaction.

Deprecated:
  An explicit rpmdbInit() is almost never needed.

Parameters:

  | ts | transaction set
  | dbmode | O_RDONLY or O_RDWR

Returns:
  0 on success

Referenced by main().

int rpmtsInitDSI | ( | const rpmts | ts | ) |

Initialize disk space info for each and every mounted file systems.

Parameters:

  | ts | transaction set

Returns:
  0 on success

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

Return transaction database iterator.

Parameters:

  | ts | transaction set
  | rpmtag | rpm tag
  | keyp | key data (NULL for sequential access)
  | keylen | key data length (0 will use strlen(keyp))

Returns:
  NULL on failure

rpmts rpmtsLink | ( | rpmts | ts,
|  | const char * | msg |
| ) |  |  |

Reference a transaction set instance.

Parameters:

  | ts | transaction set
  | msg |

Returns:
  new transaction set reference

int rpmtsNElements | ( | rpmts | ts | ) |

Return number of (ordered) transaction set elements.

Parameters:

  | ts | transaction set

Returns:
  no. of transaction set elements

void* rpmtsNotify | ( | rpmts | ts,
|  | rpmte | te,
|  | rpmCallbackType | what,
|  | rpm_loff_t | amount,
|  | rpm_loff_t | 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

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.

int rpmtsOpenDB | ( | rpmts | ts,
|  | int | dbmode |
| ) |  |  |

Open the database used by the transaction.

Parameters:

  | ts | transaction set
  | dbmode | O_RDONLY or O_RDWR

Returns:
  0 on success

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:

  | ts | transaction set

Returns:
  no. of (added) packages that could not be ordered

rpm_color_t rpmtsPrefColor | ( | rpmts | ts | ) |

Retrieve prefered file color.

Parameters:

  | ts | transaction set

Returns:
  color bits

rpmps rpmtsProblems | ( | rpmts | ts | ) |

Return current transaction set problems.

Parameters:

  | ts | transaction set

Returns:
  current problem set (or NULL)

Referenced by checkSpec().

int rpmtsRebuildDB | ( | rpmts | ts | ) |

Rebuild the database used by the transaction.

Parameters:

  | ts | transaction set

Returns:
  0 on success

Referenced by main().

const char* rpmtsRootDir | ( | rpmts | ts | ) |

Get transaction rootDir, i.e.

path to chroot(2).

Parameters:

  | ts | transaction set

Returns:
  transaction rootDir

Referenced by buildForTarget().

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

Process all package elements in a transaction set.

Before calling rpmtsRun be sure to have:

- setup the rpm root dir via rpmtsSetRoot().
- setup the rpm notify callback via rpmtsSetNotifyCallback().
- setup the rpm transaction flags via rpmtsSetFlags().

Additionally, though not required you may want to:

- setup the rpm verify signature flags via rpmtsSetVSFlags().

Parameters:

  | ts | transaction set
  | okProbs | previously known problems (or NULL)
  | ignoreSet | bits to filter problem types

Returns:
  0 on success, -1 on error, >0 with newProbs set

FD_t rpmtsScriptFd | ( | rpmts | ts | ) |

Get transaction script file handle, i.e.

stdout/stderr on scriptlet execution

Parameters:

  | ts | transaction set

Returns:
  transaction script file handle

int rpmtsSELinuxEnabled | ( | rpmts | ts | ) |

Get selinuxEnabled flag, i.e.

is SE linux enabled?

Parameters:

  | ts | transaction set

Returns:
  selinuxEnabled flag

int rpmtsSetChrootDone | ( | rpmts | ts,
|  | int | chrootDone |
| ) |  |  |

Set chrootDone flag, i.e.

has chroot(2) been performed?

Parameters:

  | ts | transaction set
  | chrootDone | new chrootDone flag

Returns:
  previous chrootDone flag

rpm_color_t rpmtsSetColor | ( | rpmts | ts,
|  | rpm_color_t | color |
| ) |  |  |

Set color bits of transaction set.

Parameters:

  | ts | transaction set
  | color | new color bits

Returns:
  previous color bits

void rpmtsSetCurrDir | ( | rpmts | ts,
|  | const char * | currDir |
| ) |  |  |

Set transaction currDir, i.e.

current directory before chroot(2).

Parameters:

  | ts | transaction set
  | currDir | new transaction currDir (or NULL)

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:

  | ts | transaction set
  | dbmode | O_RDONLY, O_RDWR or -1 (disable lazy opens)

Returns:
  0 on success, 1 on error

rpmtransFlags rpmtsSetFlags | ( | rpmts | ts,
|  | rpmtransFlags | transFlags |
| ) |  |  |

Set transaction flags, i.e.

bits that control rpmtsRun().

Parameters:

  | ts | transaction set
  | transFlags | new transaction flags

Returns:
  previous transaction flags

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:

  | ts | transaction set
  | keyring | keyring handle (NULL to free current keyring)

Returns:
  0 on success, -1 on error

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:

  | ts | transaction set
  | notify | progress callback
  | notifyData | progress callback private data

Returns:
  0 on success

int rpmtsSetRootDir | ( | rpmts | ts,
|  | const char * | rootDir |
| ) |  |  |

Set transaction rootDir, i.e.

path to chroot(2).

Parameters:

  | ts | transaction set
  | rootDir | new transaction rootDir (or NULL)

Returns:
  0 on success, -1 on error (invalid rootDir)

Referenced by main().

void rpmtsSetScriptFd | ( | rpmts | ts,
|  | FD_t | scriptFd |
| ) |  |  |

Set transaction script file handle, i.e.

stdout/stderr on scriptlet execution

Parameters:

  | ts | transaction set
  | scriptFd | new script file handle (or NULL)

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

Set dependency solver callback.

Parameters:

  | ts | transaction set
  | (*solve) | dependency solver callback
  | solveData | dependency solver callback data (opaque)

Returns:
  0 on success

rpmSpec rpmtsSetSpec | ( | rpmts | ts,
|  | rpmSpec | spec |
| ) |  |  |

Set a spec control structure in transaction set.

Parameters:

  | ts | transaction set
  | spec | new spec control structure

Returns:
  previous spec control structure

Referenced by buildForTarget().

rpm_tid_t rpmtsSetTid | ( | rpmts | ts,
|  | rpm_tid_t | tid |
| ) |  |  |

Set transaction id, i.e.

transaction time stamp.

Parameters:

  | ts | transaction set
  | tid | new transaction id

Returns:
  previous transaction id

rpmVSFlags rpmtsSetVSFlags | ( | rpmts | ts,
|  | rpmVSFlags | vsflags |
| ) |  |  |

Set verify signatures flag(s).

Parameters:

  | ts | transaction set
  | vsflags | new verify signatures flags

Returns:
  previous value

Referenced by build(), and main().

rpmSpec rpmtsSpec | ( | rpmts | ts | ) |

Get spec control structure from transaction set.

Parameters:

  | ts | transaction set

Returns:
  spec control structure

rpmts rpmtsUnlink | ( | rpmts | ts,
|  | const char * | msg |
| ) |  |  |

Unreference a transaction instance.

Parameters:

  | ts | transaction set
  | msg |

Returns:
  NULL always

int rpmtsUnorderedSuccessors | ( | rpmts | ts,
|  | int | first |
| ) |  |  |

Set index of 1st element of successors.

Parameters:

  | ts | transaction set
  | first | new index of 1st element of successors

Returns:
  previous value

void rpmtsUpdateDSI | ( | const rpmts | ts,
|  | dev_t | dev,
|  | rpm_loff_t | fileSize,
|  | rpm_loff_t | prevSize,
|  | rpm_loff_t | fixupSize,
|  | rpmFileAction | action |
| ) |  |  |

Update disk space info for a file.

Parameters:

  | ts | transaction set
  | dev | mount point device
  | fileSize | long (64bit) file size
  | prevSize | previous long file size (if upgrading)
  | fixupSize | long size difference
  | action | file disposition

int rpmtsVerifyDB | ( | rpmts | ts | ) |

Verify the database used by the transaction.

Parameters:

  | ts | transaction set

Returns:
  0 on success

Referenced by main().

rpmVSFlags rpmtsVSFlags | ( | rpmts | ts | ) |

Get verify signatures flag(s).

Parameters:

  | ts | transaction set

Returns:
  verify signatures flags