How to create, run & destroy a package transaction.
More...
|
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_NOPLUGINS = (1 << 7),
RPMTRANS_FLAG_NOCONTEXTS = (1 << 8),
RPMTRANS_FLAG_NOCAPS = (1 << 9),
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_NOPRETRANS = (1 << 24),
RPMTRANS_FLAG_NOPOSTTRANS = (1 << 25),
RPMTRANS_FLAG_NOMD5 = (1 << 27),
RPMTRANS_FLAG_NOFILEDIGEST = (1 << 27),
RPMTRANS_FLAG_NOARTIFACTS = (1 << 29),
RPMTRANS_FLAG_NOCONFIGS = (1 << 30),
RPMTRANS_FLAG_DEPLOOPS = (1 << 31)
} |
|
enum | rpmVSFlags_e {
RPMVSF_DEFAULT = 0,
RPMVSF_NOHDRCHK = (1 << 0),
RPMVSF_NEEDPAYLOAD = (1 << 1),
RPMVSF_NOSHA1HEADER = (1 << 8),
RPMVSF_NOSHA256HEADER = (1 << 9),
RPMVSF_NODSAHEADER = (1 << 10),
RPMVSF_NORSAHEADER = (1 << 11),
RPMVSF_NOPAYLOAD = (1 << 16),
RPMVSF_NOMD5 = (1 << 17),
RPMVSF_NODSA = (1 << 18),
RPMVSF_NORSA = (1 << 19)
} |
|
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_VERIFY = 17,
RPMTS_OP_MAX = 18
} |
|
|
int | rpmtsCheck (rpmts ts) |
|
int | rpmtsOrder (rpmts ts) |
|
int | rpmtsRun (rpmts ts, rpmps okProbs, rpmprobFilterFlags ignoreSet) |
|
rpmts | rpmtsLink (rpmts ts) |
|
int | rpmtsCloseDB (rpmts ts) |
|
int | rpmtsOpenDB (rpmts ts, int dbmode) |
|
int | rpmtsInitDB (rpmts ts, int dbmode) |
|
int | rpmtsGetDBMode (rpmts ts) |
|
int | rpmtsSetDBMode (rpmts ts, int dbmode) |
|
int | rpmtsRebuildDB (rpmts ts) |
|
int | rpmtsVerifyDB (rpmts ts) |
|
rpmdbMatchIterator | rpmtsInitIterator (const rpmts ts, rpmDbiTagVal rpmtag, const void *keyp, size_t keylen) |
|
rpmRC | rpmtsImportHeader (rpmtxn txn, Header h, rpmFlags flags) |
|
rpmRC | rpmtsImportPubkey (rpmts ts, const unsigned char *pkt, size_t pktlen) |
|
rpmKeyring | rpmtsGetKeyring (rpmts ts, int autoload) |
|
int | rpmtsSetKeyring (rpmts ts, rpmKeyring keyring) |
|
int | rpmtsSetSolveCallback (rpmts ts, int(*solve)(rpmts ts, rpmds ds, const void *data), const void *solveData) |
|
rpmps | rpmtsProblems (rpmts ts) |
|
void | rpmtsCleanProblems (rpmts ts) |
|
void | rpmtsClean (rpmts ts) |
|
void | rpmtsEmpty (rpmts ts) |
|
rpmts | rpmtsFree (rpmts ts) |
|
rpmVSFlags | rpmtsVSFlags (rpmts ts) |
|
rpmVSFlags | rpmtsSetVSFlags (rpmts ts, rpmVSFlags vsflags) |
|
rpmVSFlags | rpmtsVfyFlags (rpmts ts) |
|
rpmVSFlags | rpmtsSetVfyFlags (rpmts ts, rpmVSFlags vfyflags) |
|
int | rpmtsVfyLevel (rpmts ts) |
|
int | rpmtsSetVfyLevel (rpmts ts, int vfylevel) |
|
const char * | rpmtsRootDir (rpmts ts) |
|
int | rpmtsSetRootDir (rpmts ts, const char *rootDir) |
|
FD_t | rpmtsScriptFd (rpmts ts) |
|
void | rpmtsSetScriptFd (rpmts ts, FD_t scriptFd) |
|
rpm_tid_t | rpmtsGetTid (rpmts ts) |
|
rpm_tid_t | rpmtsSetTid (rpmts ts, rpm_tid_t tid) |
|
rpmdb | rpmtsGetRdb (rpmts ts) |
|
void * | rpmtsNotify (rpmts ts, rpmte te, rpmCallbackType what, rpm_loff_t amount, rpm_loff_t total) |
|
int | rpmtsNElements (rpmts ts) |
|
rpmte | rpmtsElement (rpmts ts, int ix) |
|
rpmprobFilterFlags | rpmtsFilterFlags (rpmts ts) |
|
rpmtransFlags | rpmtsFlags (rpmts ts) |
|
rpmtransFlags | rpmtsSetFlags (rpmts ts, rpmtransFlags transFlags) |
|
rpm_color_t | rpmtsColor (rpmts ts) |
|
rpm_color_t | rpmtsPrefColor (rpmts ts) |
|
rpm_color_t | rpmtsSetColor (rpmts ts, rpm_color_t color) |
|
rpm_color_t | rpmtsSetPrefColor (rpmts ts, rpm_color_t color) |
|
rpmop | rpmtsOp (rpmts ts, rpmtsOpX opx) |
|
rpmPlugins | rpmtsPlugins (rpmts ts) |
|
int | rpmtsSetNotifyCallback (rpmts ts, rpmCallbackFunction notify, rpmCallbackData notifyData) |
|
rpmts | rpmtsCreate (void) |
|
int | rpmtsAddInstallElement (rpmts ts, Header h, const fnpyKey key, int upgrade, rpmRelocation *relocs) |
|
int | rpmtsAddReinstallElement (rpmts ts, Header h, const fnpyKey key) |
|
int | rpmtsAddEraseElement (rpmts ts, Header h, int dboffset) |
|
rpmtxn | rpmtxnBegin (rpmts ts, rpmtxnFlags flags) |
|
rpmtxn | rpmtxnEnd (rpmtxn txn) |
|
How to create, run & destroy a package transaction.
◆ rpmCallbackFunction
Function pointer type for rpmtsSetNotifyCallback() triggered by rpmtsNotify()
- Parameters
-
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 61 of file rpmcallback.h.
◆ rpmtsOpX
◆ 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_NOPLUGINS | from –noplugins
|
RPMTRANS_FLAG_NOCONTEXTS | from –nocontexts
|
RPMTRANS_FLAG_NOCAPS | from –nocaps
|
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_NOPRETRANS | from –nopretrans
|
RPMTRANS_FLAG_NOPOSTTRANS | from –noposttrans
|
RPMTRANS_FLAG_NOMD5 | from –nomd5
|
RPMTRANS_FLAG_NOFILEDIGEST | from –nofiledigest (alias to –nomd5)
|
RPMTRANS_FLAG_NOARTIFACTS | from –noartifacts
|
RPMTRANS_FLAG_NOCONFIGS | from –noconfigs
|
RPMTRANS_FLAG_DEPLOOPS | from –deploops
|
Definition at line 28 of file rpmts.h.
◆ 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_VERIFY | |
RPMTS_OP_MAX | |
Definition at line 155 of file rpmts.h.
◆ rpmVSFlags_e
Bit(s) to control digest and signature verification.
Enumerator |
---|
RPMVSF_DEFAULT | |
RPMVSF_NOHDRCHK | |
RPMVSF_NEEDPAYLOAD | |
RPMVSF_NOSHA1HEADER | |
RPMVSF_NOSHA256HEADER | |
RPMVSF_NODSAHEADER | |
RPMVSF_NORSAHEADER | |
RPMVSF_NOPAYLOAD | |
RPMVSF_NOMD5 | |
RPMVSF_NODSA | |
RPMVSF_NORSA | |
Definition at line 95 of file rpmts.h.
◆ rpmtsAddEraseElement()
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, 1 on error (not installed)
◆ rpmtsAddInstallElement()
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
◆ rpmtsAddReinstallElement()
Add package to be reinstalled to transaction set.
- Parameters
-
ts | transaction set |
h | header |
key | package retrieval key (e.g. file name) |
- Returns
- 0 on success
◆ 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
-
- Returns
- 0 on success
◆ rpmtsClean()
void rpmtsClean |
( |
rpmts |
ts | ) |
|
Free memory needed only for dependency checks and ordering.
- Parameters
-
◆ rpmtsCleanProblems()
void rpmtsCleanProblems |
( |
rpmts |
ts | ) |
|
Clean current transaction problem set.
- Parameters
-
◆ rpmtsCloseDB()
int rpmtsCloseDB |
( |
rpmts |
ts | ) |
|
Close the database used by the transaction.
- Parameters
-
- Returns
- 0 on success
◆ rpmtsColor()
Retrieve color bits of transaction set.
- Parameters
-
- Returns
- color bits
◆ rpmtsCreate()
rpmts rpmtsCreate |
( |
void |
| ) |
|
Create an empty transaction set.
- Returns
- new transaction set
◆ rpmtsElement()
Return (ordered) transaction set element.
- Parameters
-
ts | transaction set |
ix | transaction element index |
- Returns
- transaction element (or NULL)
◆ rpmtsEmpty()
void rpmtsEmpty |
( |
rpmts |
ts | ) |
|
Re-create an empty transaction set.
- Parameters
-
◆ rpmtsFilterFlags()
Get problem ignore bit mask, i.e. bits to filter encountered problems.
- Parameters
-
- Returns
- ignore bit mask
◆ rpmtsFlags()
Get transaction flags, i.e. bits that control rpmtsRun().
- Parameters
-
- Returns
- transaction flags
◆ rpmtsFree()
Destroy transaction set, closing the database as well.
- Parameters
-
- Returns
- NULL always
◆ rpmtsGetDBMode()
int rpmtsGetDBMode |
( |
rpmts |
ts | ) |
|
Return the transaction database mode
- Parameters
-
- Returns
- O_RDONLY, O_RDWR or -1 (lazy opens disabled)
◆ rpmtsGetKeyring()
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)
◆ rpmtsGetRdb()
Get transaction set database handle.
- Parameters
-
- Returns
- transaction database handle
◆ rpmtsGetTid()
Get transaction id, i.e. transaction time stamp.
- Parameters
-
- Returns
- transaction id
◆ rpmtsImportHeader()
Import a header into the rpmdb
- Parameters
-
txn | transaction handle |
h | header |
flags | (unused) |
- Returns
- RPMRC_OK/RPMRC_FAIL
◆ 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
-
ts | transaction set |
pkt | pgp pubkey packet(s) |
pktlen | pgp 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
-
ts | transaction set |
dbmode | O_RDONLY or O_RDWR |
- Returns
- 0 on success
◆ rpmtsInitIterator()
Return transaction database iterator.
- Parameters
-
ts | transaction set |
rpmtag | database index tag |
keyp | key data (NULL for sequential access) |
keylen | key data length (0 will use strlen(keyp)) |
- Returns
- NULL on failure
◆ rpmtsLink()
Reference a transaction set instance.
- Parameters
-
- Returns
- new transaction set reference
◆ rpmtsNElements()
int rpmtsNElements |
( |
rpmts |
ts | ) |
|
Return number of (ordered) transaction set elements.
- Parameters
-
- Returns
- no. of transaction set elements
◆ rpmtsNotify()
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
◆ rpmtsOp()
Retrieve operation timestamp from a transaction set.
- Parameters
-
ts | transaction set |
opx | operation timestamp index |
- Returns
- pointer to operation timestamp.
◆ rpmtsOpenDB()
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
◆ 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
-
- Returns
- no. of (added) packages that could not be ordered
◆ rpmtsPlugins()
Get the plugins associated with a transaction set
- Parameters
-
- Returns
- plugins
◆ rpmtsPrefColor()
Retrieve preferred file color
- Parameters
-
- Returns
- color bits
◆ rpmtsProblems()
Return current transaction set problems.
- Parameters
-
- Returns
- current problem set (or NULL if no problems)
◆ rpmtsRebuildDB()
int rpmtsRebuildDB |
( |
rpmts |
ts | ) |
|
Rebuild the database used by the transaction.
- Parameters
-
- Returns
- 0 on success
◆ rpmtsRootDir()
const char* rpmtsRootDir |
( |
rpmts |
ts | ) |
|
Get transaction rootDir, i.e. path to chroot(2).
- Parameters
-
- Returns
- transaction rootDir
◆ rpmtsRun()
Process all package elements in a transaction set. Before calling rpmtsRun be sure to have:
Additionally, though not required you may want to:
- Parameters
-
ts | transaction set |
okProbs | unused |
ignoreSet | bits to filter problem types |
- Returns
- 0 on success, -1 on error, >0 with newProbs set
◆ rpmtsScriptFd()
Get transaction script file handle, i.e. stdout/stderr on scriptlet execution
- Parameters
-
- Returns
- transaction script file handle
◆ rpmtsSetColor()
Set color bits of transaction set.
- Parameters
-
ts | transaction set |
color | new color bits |
- Returns
- previous color bits
◆ 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
-
ts | transaction set |
dbmode | O_RDONLY, O_RDWR or -1 (disable lazy opens) |
- Returns
- 0 on success, 1 on error
◆ rpmtsSetFlags()
Set transaction flags, i.e. bits that control rpmtsRun().
- Parameters
-
ts | transaction set |
transFlags | new transaction flags |
- Returns
- previous transaction flags
◆ rpmtsSetKeyring()
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
◆ rpmtsSetNotifyCallback()
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
◆ rpmtsSetPrefColor()
Set preferred file color
- Parameters
-
ts | transaction set |
color | new color bits |
- Returns
- previous color bits
◆ rpmtsSetRootDir()
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)
◆ rpmtsSetScriptFd()
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) |
◆ rpmtsSetSolveCallback()
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
◆ rpmtsSetTid()
Set transaction id, i.e. transaction time stamp.
- Parameters
-
ts | transaction set |
tid | new transaction id |
- Returns
- previous transaction id
◆ rpmtsSetVfyFlags()
Set package verify flag(s).
- Parameters
-
ts | transaction set |
vfyflags | new package verify flags |
- Returns
- old package verify flags
◆ rpmtsSetVfyLevel()
int rpmtsSetVfyLevel |
( |
rpmts |
ts, |
|
|
int |
vfylevel |
|
) |
| |
Set enforced package verify level
- Parameters
-
ts | transaction set |
vfylevel | new package verify level |
- Returns
- old package verify level
◆ rpmtsSetVSFlags()
Set verify signatures flag(s).
- Parameters
-
ts | transaction set |
vsflags | new verify signatures flags |
- Returns
- previous value
◆ rpmtsVerifyDB()
int rpmtsVerifyDB |
( |
rpmts |
ts | ) |
|
Verify the database used by the transaction.
- Parameters
-
- Returns
- 0 on success
◆ rpmtsVfyFlags()
Get package verify flag(s).
- Parameters
-
- Returns
- verify signatures flags
◆ rpmtsVfyLevel()
int rpmtsVfyLevel |
( |
rpmts |
ts | ) |
|
Get enforced package verify level
- Parameters
-
- Returns
- package verify level
◆ rpmtsVSFlags()
Get verify signatures flag(s).
- Parameters
-
- Returns
- verify signatures flags
◆ rpmtxnBegin()
Create a transaction (lock) handle
- Parameters
-
ts | transaction set |
flags | flags |
- Returns
- transaction handle
◆ rpmtxnEnd()
Destroy transaction (lock) handle
- Parameters
-
- Returns
- NULL always