Files | |
file | rpmlib.h |
In Memoriam: Steve Taylor <staylor@redhat.com> was here, now he's not. | |
file | dbconfig.c |
file | hdrNVR.c |
file | rpmdb.c |
file | rpmdb.h |
Access RPM indices using Berkeley DB interface(s). | |
Typedefs | |
typedef rpmdb_s * | rpmdb |
Database of headers and tag value indices. | |
typedef _rpmdbMatchIterator * | rpmdbMatchIterator |
Database iterator. | |
typedef _dbiIndexSet * | dbiIndexSet |
A single element (i.e. | |
Enumerations | |
enum | rpmdbFlags { RPMDB_FLAG_JUSTCHECK = (1 << 0), RPMDB_FLAG_MINIMAL = (1 << 1), RPMDB_FLAG_CHROOT = (1 << 2) } |
Functions | |
int | rpmdbFindFpList (rpmdb db, fingerPrint *fpList, dbiIndexSet *matchList, int numItems, unsigned int exclude) |
Find fingerprint matches in database. | |
rpmdb | rpmdbUnlink (rpmdb db, const char *msg) |
Unreference a database instance. | |
rpmdb | rpmdbLink (rpmdb db, const char *msg) |
Reference a database instance. | |
int | rpmdbOpen (const char *prefix, rpmdb *dbp, int mode, int perms) |
Open rpm database. | |
int | rpmdbInit (const char *prefix, int perms) |
Initialize database. | |
int | rpmdbVerifyAllDBI (rpmdb db) |
Verify all database components. | |
int | rpmdbVerify (const char *prefix) |
Open and verify all database components. | |
int | rpmdbClose (rpmdb db) |
Close all database indices and free rpmdb. | |
int | rpmdbSync (rpmdb db) |
Sync all database indices. | |
int | rpmdbOpenAll (rpmdb db) |
Open all database indices. | |
int | rpmdbCountPackages (rpmdb db, const char *name) |
Return number of instances of package in rpm database. | |
unsigned int | rpmdbGetIteratorOffset (rpmdbMatchIterator mi) |
Return header join key for current position of rpm database iterator. | |
int | rpmdbGetIteratorCount (rpmdbMatchIterator mi) |
Return number of elements in rpm database iterator. | |
int | rpmdbAppendIterator (rpmdbMatchIterator mi, const int *hdrNums, int nHdrNums) |
Append items to set of package instances to iterate. | |
int | rpmdbPruneIterator (rpmdbMatchIterator mi, int *hdrNums, int nHdrNums, int sorted) |
Remove items from set of package instances to iterate. | |
int | rpmdbSetIteratorRE (rpmdbMatchIterator mi, rpmTag tag, rpmMireMode mode, const char *pattern) |
Add pattern to iterator selector. | |
int | rpmdbSetIteratorRewrite (rpmdbMatchIterator mi, int rewrite) |
Prepare iterator for lazy writes. | |
int | rpmdbSetIteratorModified (rpmdbMatchIterator mi, int modified) |
Modify iterator to mark header for lazy write on release. | |
int | rpmdbSetHdrChk (rpmdbMatchIterator mi, rpmts ts, rpmRC(*hdrchk)(rpmts ts, const void *uh, size_t uc, const char **msg)) |
Modify iterator to verify retrieved header blobs. | |
rpmdbMatchIterator | rpmdbInitIterator (rpmdb db, rpmTag rpmtag, const void *keyp, size_t keylen) |
Return database iterator. | |
Header | rpmdbNextIterator (rpmdbMatchIterator mi) |
Return next package header from iteration. | |
int | rpmdbCheckSignals (void) |
Check rpmdb signal handler for trapped signal exit. | |
rpmdbMatchIterator | rpmdbFreeIterator (rpmdbMatchIterator mi) |
Destroy rpm database iterator. | |
int | rpmdbAdd (rpmdb db, int iid, Header h, rpmts ts, rpmRC(*hdrchk)(rpmts ts, const void *uh, size_t uc, const char **msg)) |
Add package header to rpm database and indices. | |
int | rpmdbRemove (rpmdb db, int rid, unsigned int hdrNum, rpmts ts, rpmRC(*hdrchk)(rpmts ts, const void *uh, size_t uc, const char **msg)) |
Remove package header from rpm database and indices. | |
int | rpmdbRebuild (const char *prefix, rpmts ts, rpmRC(*hdrchk)(rpmts ts, const void *uh, size_t uc, const char **msg)) |
Rebuild database indices from package headers. |
|
A single element (i.e. inverted list from tag values) of a database. |
|
Database of headers and tag value indices.
|
|
Database iterator.
|
|
|
|
|
Append items to set of package instances to iterate.
Definition at line 2617 of file rpmdb.c. References dbiAppendSet(), _rpmdbMatchIterator::mi_set, and xcalloc(). Referenced by markReplacedFiles(). |
|
Check rpmdb signal handler for trapped signal exit.
Definition at line 707 of file rpmdb.c. References EXIT_FAILURE, _rpmdbMatchIterator::mi_next, rpmdbClose(), rpmdbFreeIterator(), RPMMESS_DEBUG, rpmMessage, and rpmsqCaught. Referenced by checkSignals(), rpmdbFreeIterator(), rpmdbInitIterator(), rpmQueryVerify(), rpmtsRun(), and unblockSignals(). |
|
Close all database indices and free rpmdb.
Definition at line 957 of file rpmdb.c. References _free(), next, PBM_FREE, rpmdbUnlink, and rpmsqEnable(). Referenced by rpmdb_dealloc(), rpmdbCheckSignals(), rpmdbInit(), rpmdbOpenDatabase(), rpmdbRebuild(), rpmdbVerifyAllDBI(), rpmtsCloseDB(), and rpmtsCloseSDB(). |
|
Return number of instances of package in rpm database.
Definition at line 1536 of file rpmdb.c. References _, alloca(), dbiFreeIndexSet(), dbiIndexSetCount(), dbiOpen(), dbt2set(), RPMERR_DBGETINDEX, rpmError, RPMTAG_NAME, and tagName(). Referenced by handleOneTrigger(), rpmpsmStage(), and runTriggers(). |
|
Find fingerprint matches in database.
Definition at line 3537 of file rpmdb.c. References _db_tagged_file_indices, _free(), fingerPrint_s::baseName, dbiAppendSet(), FP_EQUAL, fpCacheCreate(), fpCacheFree(), fpLookupList(), headerFreeData(), headerGetEntryMinMemory(), _rpmdbMatchIterator::mi_data, _rpmdbMatchIterator::mi_key, _rpmdbMatchIterator::mi_set, _rpmdbMatchIterator::mi_setx, rpmdbFreeIterator(), rpmdbGetIteratorCount(), rpmdbGrowIterator(), rpmdbInitIterator(), rpmdbNextIterator(), rpmdbSortIterator(), RPMTAG_BASENAMES, RPMTAG_DIRINDEXES, RPMTAG_DIRNAMES, taghash(), and xcalloc(). Referenced by rpmtsRun(). |
|
Destroy rpm database iterator.
Definition at line 1877 of file rpmdb.c. References _free(), dbiFreeIndexSet(), dbiOpen(), _rpmdbMatchIterator::mi_db, _rpmdbMatchIterator::mi_dbc, _rpmdbMatchIterator::mi_keyp, _rpmdbMatchIterator::mi_next, _rpmdbMatchIterator::mi_re, _rpmdbMatchIterator::mi_set, miFreeHeader(), next, rpmdbCheckSignals(), RPMDBI_PACKAGES, and rpmdbUnlink. Referenced by checkPackageSet(), dbiFindMatches(), handleInstInstalledFiles(), handleRmvdInstalledFiles(), IDTXload(), markReplacedFiles(), rpmcliShowMatches(), rpmdb_length(), rpmdb_subscript(), rpmdbCheckSignals(), rpmdbFindByFile(), rpmdbFindFpList(), rpmdbRebuild(), rpmdbRemove(), rpmErase(), rpmfcFindRequiredPackages(), rpmgiFree(), rpmgiInitFilter(), rpmgiNext(), rpmInstall(), rpmmi_dealloc(), rpmmi_iternext(), rpmpsmStage(), rpmts_AddErase(), rpmtsAddInstallElement(), rpmtsCheck(), rpmtsFindPubkey(), rpmtsRun(), rpmtsSolve(), runImmedTriggers(), runTriggers(), and unsatisfiedDepend(). |
|
Return number of elements in rpm database iterator.
Definition at line 1931 of file rpmdb.c. References _rpmdbMatchIterator::mi_set. Referenced by rpmdbFindFpList(), rpmfcFindRequiredPackages(), rpmInstall(), rpmmi_Count(), rpmts_AddErase(), and runImmedTriggers(). |
|
Return header join key for current position of rpm database iterator.
Definition at line 1923 of file rpmdb.c. References _rpmdbMatchIterator::mi_offset. Referenced by IDTXload(), markReplacedFiles(), rpmErase(), rpmgiNext(), rpmmi_Instance(), rpmpsmStage(), rpmts_AddErase(), rpmtsAddInstallElement(), and rpmtsFindPubkey(). |
|
Initialize database.
Definition at line 1294 of file rpmdb.c. References RPMDB_FLAG_JUSTCHECK, rpmdbClose(), rpmdbOpenAll(), rpmdbOpenDatabase(), and rpmExpandNumeric(). Referenced by rpmtsInitDB(). |
|
Return database iterator.
Definition at line 2628 of file rpmdb.c. References _, _DBSWAP, _free(), dbiFindByLabel(), dbiFreeIndexSet(), dbiOpen(), dbt2set(), _rpmdbMatchIterator::mi_key, _rpmdbMatchIterator::mi_next, rpmdbCheckSignals(), rpmdbFindByFile(), RPMDBI_LABEL, RPMDBI_PACKAGES, rpmdbLink, RPMERR_DBGETINDEX, rpmError, RPMTAG_BASENAMES, RPMTAG_NAME, tagName(), _dbswap::ui, xcalloc(), and xmalloc(). Referenced by dbiFindMatches(), rpmdb_length(), rpmdb_Match(), rpmdb_subscript(), rpmdbFindByFile(), rpmdbFindFpList(), rpmdbRebuild(), rpmdbRemove(), rpmtsInitIterator(), and rpmtsSolve(). |
|
Reference a database instance.
|
|
Return next package header from iteration.
Definition at line 2271 of file rpmdb.c. References _, _DBSWAP, _free(), dbiIndexRecordFileNumber(), dbiIndexRecordOffset(), dbiOpen(), headerToken_s::flags, headerCopyLoad(), HEADERFLAG_ALLOCATED, headerIsEntry(), headerLoad(), headerSetInstance(), headerSetOrigin(), _rpmdbMatchIterator::mi_cflags, _rpmdbMatchIterator::mi_data, _rpmdbMatchIterator::mi_db, _rpmdbMatchIterator::mi_dbc, _rpmdbMatchIterator::mi_filenum, _rpmdbMatchIterator::mi_h, _rpmdbMatchIterator::mi_hdrchk, _rpmdbMatchIterator::mi_key, _rpmdbMatchIterator::mi_keylen, _rpmdbMatchIterator::mi_keyp, _rpmdbMatchIterator::mi_modified, _rpmdbMatchIterator::mi_offset, _rpmdbMatchIterator::mi_prevoffset, _rpmdbMatchIterator::mi_set, _rpmdbMatchIterator::mi_setx, _rpmdbMatchIterator::mi_ts, miFreeHeader(), mireSkip(), PBM_ISSET, PBM_REALLOC(), PBM_SET, RPMDBI_PACKAGES, RPMERR_BADHEADER, rpmError, RPMMESS_DEBUG, RPMMESS_ERROR, rpmMessage, RPMRC_FAIL, RPMRC_NOTFOUND, RPMRC_OK, RPMTAG_NAME, and _dbswap::ui. Referenced by checkPackageSet(), dbiFindMatches(), handleInstInstalledFiles(), handleRmvdInstalledFiles(), IDTXload(), markReplacedFiles(), rpmcliShowMatches(), rpmdb_length(), rpmdb_subscript(), rpmdbFindByFile(), rpmdbFindFpList(), rpmdbRebuild(), rpmdbRemove(), rpmErase(), rpmfcFindRequiredPackages(), rpmgiNext(), rpmInstall(), rpmmi_iternext(), rpmpsmStage(), rpmts_AddErase(), rpmtsAddInstallElement(), rpmtsFindPubkey(), rpmtsRun(), rpmtsSolve(), runImmedTriggers(), runTriggers(), and unsatisfiedDepend(). |
|
Open rpm database.
Definition at line 1286 of file rpmdb.c. References rpmdbOpenDatabase(), and rpmExpandNumeric(). Referenced by rpmtsOpenDB(), and rpmtsOpenSDB(). |
|
Open all database indices.
Definition at line 882 of file rpmdb.c. References dbiOpen(), RPMDBI_ADDED, RPMDBI_AVAILABLE, RPMDBI_DEPENDS, and RPMDBI_REMOVED. Referenced by rpmdbInit(), rpmdbVerifyAllDBI(), and rpmtsRun(). |
|
Remove items from set of package instances to iterate.
Definition at line 2606 of file rpmdb.c. References dbiPruneSet(), and _rpmdbMatchIterator::mi_set. Referenced by checkPackageSet(), rpmtsAddInstallElement(), and unsatisfiedDepend(). |
|
Rebuild database indices from package headers.
Definition at line 3881 of file rpmdb.c. References _, _db_filter_dups, _free(), _rebuildinprogress, _RECNUM, Access(), dbiTagsInit(), errno, F_OK, headerCopy(), headerFree(), headerIsEntry(), headerNVR(), Mkdir(), name, Rmdir(), RPMDB_FLAG_MINIMAL, rpmdbAdd(), rpmdbClose(), rpmdbFreeIterator(), RPMDBI_PACKAGES, rpmdbInitIterator(), rpmdbMoveDatabase(), rpmdbNextIterator(), rpmdbOpenDatabase(), rpmdbRemoveDatabase(), rpmdbSetHdrChk(), rpmdbSetIteratorRE(), rpmDefineMacro(), RPMERR_INTERNAL, RPMERR_MKDIR, rpmError, rpmExpandNumeric(), rpmGetPath(), RPMMESS_DEBUG, RPMMESS_ERROR, RPMMESS_NORMAL, rpmMessage, RPMTAG_BUILDTIME, RPMTAG_HEADERIMAGE, RPMTAG_NAME, RPMTAG_RELEASE, RPMTAG_VERSION, stpcpy(), URL_IS_UNKNOWN, urlPath(), xmalloc(), and xstrdup(). Referenced by rpmtsRebuildDB(). |
|
Remove package header from rpm database and indices.
Definition at line 2770 of file rpmdb.c. References _, _DBSWAP, _free(), alloca(), blockSignals(), dbiFreeIndexSet(), dbiIndexNewItem(), dbiOpen(), dbiPruneSet(), dbt2set(), headerAddEntry(), headerFree(), headerFreeData(), headerGetEntryMinMemory(), headerLink(), headerNVR(), nibble(), pgpExtractPubkeyFingerprint(), RPM_BIN_TYPE, RPM_CHAR_TYPE, RPM_I18NSTRING_TYPE, RPM_INT16_TYPE, RPM_INT32_TYPE, RPM_INT8_TYPE, RPM_STRING_ARRAY_TYPE, RPM_STRING_TYPE, rpmdbFreeIterator(), RPMDBI_ADDED, RPMDBI_AVAILABLE, RPMDBI_DEPENDS, RPMDBI_PACKAGES, RPMDBI_REMOVED, rpmdbInitIterator(), rpmdbNextIterator(), RPMERR_DBCORRUPT, RPMERR_DBGETINDEX, RPMERR_DBPUTINDEX, rpmError, RPMMESS_DEBUG, rpmMessage, RPMTAG_FILEDIGESTS, RPMTAG_PUBKEYS, RPMTAG_REMOVETID, set2dbt(), tagName(), _dbswap::ui, unblockSignals(), and xcalloc(). Referenced by rpmpsmStage(), and rpmtsRollback(). |
|
Modify iterator to verify retrieved header blobs.
Definition at line 2256 of file rpmdb.c. References _rpmdbMatchIterator::mi_hdrchk, and _rpmdbMatchIterator::mi_ts. Referenced by rpmdbRebuild(), and rpmtsInitIterator(). |
|
Modify iterator to mark header for lazy write on release.
Definition at line 2246 of file rpmdb.c. References _rpmdbMatchIterator::mi_modified. Referenced by markReplacedFiles(). |
|
Add pattern to iterator selector.
Definition at line 2047 of file rpmdb.c. References _free(), _rpmdbMatchIterator::mi_nre, _rpmdbMatchIterator::mi_re, mireCmp(), mireDup(), rpmExpand(), and xrealloc(). Referenced by dbiFindMatches(), IDTXload(), rpmdbRebuild(), rpmgiInitFilter(), rpmmi_Pattern(), rpmpsmStage(), rpmtsInitIterator(), and rpmtsRun(). |
|
Prepare iterator for lazy writes.
Definition at line 2233 of file rpmdb.c. References _rpmdbMatchIterator::mi_cflags. Referenced by markReplacedFiles(). |
|
Sync all database indices.
Definition at line 1016 of file rpmdb.c. Referenced by rpmtsRun(). |
|
Unreference a database instance.
|
|
Open and verify all database components.
Definition at line 1344 of file rpmdb.c. References rpmdbOpenDatabase(), rpmdbVerifyAllDBI(), and rpmExpandNumeric(). Referenced by rpmtsVerifyDB(). |
|
Verify all database components.
Definition at line 1315 of file rpmdb.c. References rpmdbClose(), and rpmdbOpenAll(). Referenced by db3open(), and rpmdbVerify(). |