rpm
4.17.0
|
How to create, run & destroy a package transaction. More...
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 void *(* | rpmCallbackFunction) (const void *h, const rpmCallbackType what, const rpm_loff_t amount, const rpm_loff_t total, fnpyKey key, rpmCallbackData data) |
Function pointer type for rpmtsSetNotifyCallback() triggered by rpmtsNotify() More... | |
typedef enum rpmtsOpX_e | rpmtsOpX |
Indices for timestamps. More... | |
typedef int(* | rpmtsChangeFunction) (int event, rpmte te, rpmte other, void *data) |
Transaction change callback type. 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 | rpmtsLink (rpmts ts) |
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 perms) |
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, rpmDbiTagVal rpmtag, const void *keyp, size_t keylen) |
Return transaction database iterator. More... | |
rpmRC | rpmtsImportHeader (rpmtxn txn, Header h, rpmFlags flags) |
Import a header into the rpmdb. 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... | |
rpmVSFlags | rpmtsVfyFlags (rpmts ts) |
Get package verify flag(s). More... | |
rpmVSFlags | rpmtsSetVfyFlags (rpmts ts, rpmVSFlags vfyflags) |
Set package verify flag(s). More... | |
int | rpmtsVfyLevel (rpmts ts) |
Get enforced package verify level. More... | |
int | rpmtsSetVfyLevel (rpmts ts, int vfylevel) |
Set enforced package verify level. 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... | |
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... | |
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... | |
rpm_color_t | rpmtsColor (rpmts ts) |
Retrieve color bits of transaction set. More... | |
rpm_color_t | rpmtsPrefColor (rpmts ts) |
Retrieve preferred 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 preferred file color. More... | |
rpmop | rpmtsOp (rpmts ts, rpmtsOpX opx) |
Retrieve operation timestamp from a transaction set. More... | |
rpmPlugins | rpmtsPlugins (rpmts ts) |
Get the plugins associated with a transaction set. More... | |
int | rpmtsSetNotifyCallback (rpmts ts, rpmCallbackFunction notify, rpmCallbackData notifyData) |
Set transaction notify callback function and argument. More... | |
int | rpmtsSetNotifyStyle (rpmts ts, int style) |
Set transaction notify callback style. More... | |
int | rpmtsGetNotifyStyle (rpmts ts) |
Get transaction notify callback style. More... | |
int | rpmtsSetChangeCallback (rpmts ts, rpmtsChangeFunction notify, void *data) |
Set transaction change 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 | rpmtsAddReinstallElement (rpmts ts, Header h, const fnpyKey key) |
Add package to be reinstalled to transaction set. More... | |
int | rpmtsAddEraseElement (rpmts ts, Header h, int dboffset) |
Add package to be erased to transaction set. More... | |
rpmtxn | rpmtxnBegin (rpmts ts, rpmtxnFlags flags) |
Create a transaction (lock) handle. More... | |
rpmtxn | rpmtxnEnd (rpmtxn txn) |
Destroy transaction (lock) handle. More... | |
How to create, run & destroy a package transaction.
typedef void*(* rpmCallbackFunction) (const void *h, const rpmCallbackType what, const rpm_loff_t amount, const rpm_loff_t total, fnpyKey key, rpmCallbackData data) |
Function pointer type for rpmtsSetNotifyCallback() triggered by rpmtsNotify()
h | related header or NULL |
what | kind of notification (See RPMCALLBACK_ constants above) |
amount | number of bytes/packages already processed or tag of the scriptlet involved or 0 or some other number |
total | total number of bytes/packages to be processed or return code of the scriptlet or 0 |
key | result of rpmteKey() of related rpmte or 0 |
data | user data as passed to rpmtsSetNotifyCallback() |
Definition at line 60 of file rpmcallback.h.
Transaction change callback type.
On explicit install/erase add events, "other" is NULL, on implicit add events (erasures due to obsolete/upgrade, replaced by newer) it points to the replacing package.
event | Change event (see rpmtsEvent enum) |
te | Transaction element |
other | Related transaction element (or NULL) |
data | Application private data from rpmtsSetChangeCallback() |
typedef enum rpmtsOpX_e rpmtsOpX |
Indices for timestamps.
enum rpmtransFlags_e |
Bit(s) to control rpmtsRun() operation.
enum rpmtsOpX_e |
Indices for timestamps.
enum rpmVSFlags_e |
Add package to be erased to transaction set.
ts | transaction set |
h | header |
dboffset | ununsed |
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.
ts | transaction set |
h | header |
key | package retrieval key (e.g. file name) |
upgrade | is package being upgraded? |
relocs | package file relocations |
Add package to be reinstalled to transaction set.
ts | transaction set |
h | header |
key | package retrieval key (e.g. file name) |
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.
ts | transaction set |
void rpmtsClean | ( | rpmts | ts | ) |
Free memory needed only for dependency checks and ordering.
ts | transaction set |
void rpmtsCleanProblems | ( | rpmts | ts | ) |
Clean current transaction problem set.
ts | transaction set |
int rpmtsCloseDB | ( | rpmts | ts | ) |
Close the database used by the transaction.
ts | transaction set |
rpm_color_t rpmtsColor | ( | rpmts | ts | ) |
Retrieve color bits of transaction set.
ts | transaction set |
rpmts rpmtsCreate | ( | void | ) |
Create an empty transaction set.
Return (ordered) transaction set element.
ts | transaction set |
ix | transaction element index |
void rpmtsEmpty | ( | rpmts | ts | ) |
Re-create an empty transaction set.
ts | transaction set |
rpmprobFilterFlags rpmtsFilterFlags | ( | rpmts | ts | ) |
Get problem ignore bit mask, i.e.
bits to filter encountered problems.
ts | transaction set |
rpmtransFlags rpmtsFlags | ( | rpmts | ts | ) |
Get transaction flags, i.e.
bits that control rpmtsRun().
ts | transaction set |
Destroy transaction set, closing the database as well.
ts | transaction set |
int rpmtsGetDBMode | ( | rpmts | ts | ) |
Return the transaction database mode.
ts | transaction set |
rpmKeyring rpmtsGetKeyring | ( | rpmts | ts, |
int | autoload | ||
) |
Retrieve handle for keyring used for this transaction set.
ts | transaction set |
autoload | load default keyring if keyring is not set |
int rpmtsGetNotifyStyle | ( | rpmts | ts | ) |
Get transaction notify callback style.
ts | transaction set |
Get transaction set database handle.
ts | transaction set |
Get transaction id, i.e.
transaction time stamp.
ts | transaction set |
Import a header into the rpmdb.
txn | transaction handle |
h | header |
flags | (unused) |
Import public key packet(s).
ts | transaction set |
pkt | pgp pubkey packet(s) |
pktlen | pgp pubkey length |
int rpmtsInitDB | ( | rpmts | ts, |
int | perms | ||
) |
Initialize the database used by the transaction.
ts | transaction set |
perms | database permissions (ie mode bits) |
rpmdbMatchIterator rpmtsInitIterator | ( | const rpmts | ts, |
rpmDbiTagVal | rpmtag, | ||
const void * | keyp, | ||
size_t | keylen | ||
) |
Return transaction database iterator.
ts | transaction set |
rpmtag | database index tag |
keyp | key data (NULL for sequential access) |
keylen | key data length (0 will use strlen(keyp)) |
Reference a transaction set instance.
ts | transaction set |
int rpmtsNElements | ( | rpmts | ts | ) |
Return number of (ordered) transaction set elements.
ts | transaction set |
void* rpmtsNotify | ( | rpmts | ts, |
rpmte | te, | ||
rpmCallbackType | what, | ||
rpm_loff_t | amount, | ||
rpm_loff_t | total | ||
) |
Perform transaction progress notify callback.
ts | transaction set |
te | current transaction element |
what | type of call back |
amount | current value |
total | final value |
Retrieve operation timestamp from a transaction set.
ts | transaction set |
opx | operation timestamp index |
int rpmtsOpenDB | ( | rpmts | ts, |
int | dbmode | ||
) |
Open the database used by the transaction.
ts | transaction set |
dbmode | O_RDONLY or O_RDWR |
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.
ts | transaction set |
rpmPlugins rpmtsPlugins | ( | rpmts | ts | ) |
Get the plugins associated with a transaction set.
ts | transaction set |
rpm_color_t rpmtsPrefColor | ( | rpmts | ts | ) |
Retrieve preferred file color.
ts | transaction set |
Return current transaction set problems.
ts | transaction set |
int rpmtsRebuildDB | ( | rpmts | ts | ) |
Rebuild the database used by the transaction.
ts | transaction set |
const char* rpmtsRootDir | ( | rpmts | ts | ) |
Get transaction rootDir, i.e.
path to chroot(2).
ts | transaction set |
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:
ts | transaction set |
okProbs | unused |
ignoreSet | bits to filter problem types |
Get transaction script file handle, i.e.
stdout/stderr on scriptlet execution
ts | transaction set |
int rpmtsSetChangeCallback | ( | rpmts | ts, |
rpmtsChangeFunction | notify, | ||
void * | data | ||
) |
Set transaction change callback function and argument.
The change callback gets called when transaction elements are added, replaced or removed from a transaction set.
ts | transaction set |
notify | element change callback |
data | element change callback private data |
rpm_color_t rpmtsSetColor | ( | rpmts | ts, |
rpm_color_t | color | ||
) |
Set color bits of transaction set.
ts | transaction set |
color | new color bits |
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)
ts | transaction set |
dbmode | O_RDONLY, O_RDWR or -1 (disable lazy opens) |
rpmtransFlags rpmtsSetFlags | ( | rpmts | ts, |
rpmtransFlags | transFlags | ||
) |
Set transaction flags, i.e.
bits that control rpmtsRun().
ts | transaction set |
transFlags | new 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.
ts | transaction set |
keyring | keyring handle (NULL to free current keyring) |
int rpmtsSetNotifyCallback | ( | rpmts | ts, |
rpmCallbackFunction | notify, | ||
rpmCallbackData | notifyData | ||
) |
Set transaction notify callback function and argument.
ts | transaction set |
notify | progress callback |
notifyData | progress callback private data |
int rpmtsSetNotifyStyle | ( | rpmts | ts, |
int | style | ||
) |
Set transaction notify callback style.
ts | transaction set |
style | 0 (default) for header, 1 for transaction element as the first argument |
rpm_color_t rpmtsSetPrefColor | ( | rpmts | ts, |
rpm_color_t | color | ||
) |
Set preferred file color.
ts | transaction set |
color | new color bits |
int rpmtsSetRootDir | ( | rpmts | ts, |
const char * | rootDir | ||
) |
Set transaction rootDir, i.e.
path to chroot(2).
ts | transaction set |
rootDir | new transaction rootDir (or NULL) |
Set transaction script file handle, i.e.
stdout/stderr on scriptlet execution
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.
ts | transaction set |
(*solve) | dependency solver callback |
solveData | dependency solver callback data (opaque) |
Set transaction id, i.e.
transaction time stamp.
ts | transaction set |
tid | new transaction id |
rpmVSFlags rpmtsSetVfyFlags | ( | rpmts | ts, |
rpmVSFlags | vfyflags | ||
) |
Set package verify flag(s).
ts | transaction set |
vfyflags | new package verify flags |
int rpmtsSetVfyLevel | ( | rpmts | ts, |
int | vfylevel | ||
) |
Set enforced package verify level.
ts | transaction set |
vfylevel | new package verify level |
rpmVSFlags rpmtsSetVSFlags | ( | rpmts | ts, |
rpmVSFlags | vsflags | ||
) |
Set verify signatures flag(s).
ts | transaction set |
vsflags | new verify signatures flags |
int rpmtsVerifyDB | ( | rpmts | ts | ) |
Verify the database used by the transaction.
ts | transaction set |
rpmVSFlags rpmtsVfyFlags | ( | rpmts | ts | ) |
Get package verify flag(s).
ts | transaction set |
int rpmtsVfyLevel | ( | rpmts | ts | ) |
Get enforced package verify level.
ts | transaction set |
rpmVSFlags rpmtsVSFlags | ( | rpmts | ts | ) |
Get verify signatures flag(s).
ts | transaction set |
rpmtxn rpmtxnBegin | ( | rpmts | ts, |
rpmtxnFlags | flags | ||
) |
Create a transaction (lock) handle.
ts | transaction set |
flags | flags |