Files | |
file | dbconfig.c |
file | hdrNVR.c |
file | rpmdb.c |
file | rpmdb.h |
Access RPM indices using Berkeley DB interface(s). | |
file | rpmlib.h |
In Memoriam: Steve Taylor <staylor@redhat.com> was here, now he's not. | |
Data Structures | |
struct | rpmdb_s |
Typedefs | |
typedef rpmdb_s * | rpmdb |
typedef _rpmdbMatchIterator * | rpmdbMatchIterator |
typedef _dbiIndexSet * | dbiIndexSet |
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 | rpmdbGetIteratorFileNum (rpmdbMatchIterator mi) |
rpmdb | rpmdbUnlink (rpmdb db, char *msg) |
rpmdb | rpmdbLink (rpmdb db, char *msg) |
int | rpmdbOpen (char *prefix, rpmdb *dbp, int mode, int perms) |
int | rpmdbInit (char *prefix, int perms) |
int | rpmdbVerify (char *prefix) |
int | rpmdbClose (rpmdb db) |
int | rpmdbSync (rpmdb db) |
int | rpmdbOpenAll (rpmdb db) |
int | rpmdbCountPackages (rpmdb db, char *name) |
unsigned int | rpmdbGetIteratorOffset (rpmdbMatchIterator mi) |
int | rpmdbGetIteratorCount (rpmdbMatchIterator mi) |
int | rpmdbAppendIterator (rpmdbMatchIterator mi, int *hdrNums, int nHdrNums) |
int | rpmdbPruneIterator (rpmdbMatchIterator mi, int *hdrNums, int nHdrNums, int sorted) |
int | rpmdbSetIteratorRE (rpmdbMatchIterator mi, rpmTag tag, rpmMireMode mode, char *pattern) |
int | rpmdbSetIteratorRewrite (rpmdbMatchIterator mi, int rewrite) |
int | rpmdbSetIteratorModified (rpmdbMatchIterator mi, int modified) |
int | rpmdbSetHdrChk (rpmdbMatchIterator mi, rpmts ts, rpmRC(*hdrchk)(rpmts ts, void *uh, size_t uc, char **msg)) |
rpmdbMatchIterator | rpmdbInitIterator (rpmdb db, rpmTag rpmtag, void *keyp, size_t keylen) |
Header | rpmdbNextIterator (rpmdbMatchIterator mi) |
int | rpmdbCheckSignals (void) |
rpmdbMatchIterator | rpmdbFreeIterator (rpmdbMatchIterator mi) |
int | rpmdbAdd (rpmdb db, int iid, Header h, rpmts ts, rpmRC(*hdrchk)(rpmts ts, void *uh, size_t uc, char **msg)) |
int | rpmdbRemove (rpmdb db, int rid, unsigned int hdrNum, rpmts ts, rpmRC(*hdrchk)(rpmts ts, void *uh, size_t uc, char **msg)) |
int | rpmdbRebuild (char *prefix, rpmts ts, rpmRC(*hdrchk)(rpmts ts, void *uh, size_t uc, char **msg)) |
Variables | |
int * | dbiTags |
|
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 2447 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 743 of file rpmdb.c. References sigtbl_s::active, caught, rpmdb_s::db_next, EXIT_FAILURE, _rpmdbMatchIterator::mi_next, rpmdbClose(), rpmdbFreeIterator(), RPMMESS_DEBUG, rpmMessage, satbl, and sigtbl_s::signum. Referenced by rpmdbFreeIterator(), rpmdbInitIterator(), rpmQueryVerify(), rpmtsRun(), and unblockSignals(). |
|
Close all database indices and free rpmdb.
Definition at line 904 of file rpmdb.c. References rpmdb_s::_dbi, _free(), rpmdb_s::db_bits, rpmdb_s::db_errpfx, rpmdb_s::db_home, rpmdb_s::db_ndbi, rpmdb_s::db_next, rpmdb_s::db_root, dbiClose(), disableSignals(), rpmdb_s::nrefs, PBM_FREE, and rpmdbUnlink. Referenced by main(), openDatabase(), rpmdb_dealloc(), rpmdbCheckSignals(), rpmdbInit(), rpmdbRebuild(), rpmdbVerify(), rpmtsCloseDB(), and rpmtsCloseSDB(). |
|
Return number of instances of package in rpm database.
Definition at line 1368 of file rpmdb.c. References _, alloca(), _dbiIndex::dbi_rpmtag, _dbiIndex::dbi_txnid, dbiCclose(), dbiCopen(), dbiFreeIndexSet(), dbiGet(), dbiIndexSetCount(), dbiOpen(), dbt2set(), RPMERR_DBGETINDEX, rpmError, and RPMTAG_NAME. Referenced by handleOneTrigger(), rpmpsmStage(), and runTriggers(). |
|
Find fingerprint matches in database.
Definition at line 3342 of file rpmdb.c. References _free(), fingerPrint_s::baseName, _dbiIndexSet::count, dbiAppendSet(), FP_EQUAL, fpCacheCreate(), fpCacheFree(), fpLookupList(), _dbiIndexItem::fpNum, _dbiIndexItem::hdrNum, HFD_t, HGE_t, int_32, _rpmdbMatchIterator::mi_data, _rpmdbMatchIterator::mi_key, _rpmdbMatchIterator::mi_set, _rpmdbMatchIterator::mi_setx, _dbiIndexSet::recs, rpmdbFreeIterator(), rpmdbGetIteratorCount(), rpmdbGrowIterator(), rpmdbInitIterator(), rpmdbNextIterator(), rpmdbSortIterator(), RPMTAG_BASENAMES, RPMTAG_DIRINDEXES, RPMTAG_DIRNAMES, rpmTagType, skipDir(), _dbiIndexItem::tagNum, and xcalloc(). Referenced by rpmtsRun(). |
|
Destroy rpm database iterator.
Definition at line 1684 of file rpmdb.c. References _free(), dbiCclose(), dbiFreeIndexSet(), dbiOpen(), _rpmdbMatchIterator::mi_db, _rpmdbMatchIterator::mi_dbc, _rpmdbMatchIterator::mi_keyp, _rpmdbMatchIterator::mi_next, _rpmdbMatchIterator::mi_nre, _rpmdbMatchIterator::mi_re, _rpmdbMatchIterator::mi_set, miFreeHeader(), miRE_s::pattern, miRE_s::preg, rpmdbCheckSignals(), RPMDBI_PACKAGES, and rpmdbUnlink. Referenced by checkPackageSet(), dbiFindMatches(), ftsCacheUpdate(), handleInstInstalledFiles(), handleRmvdInstalledFiles(), IDTXload(), main(), markReplacedFiles(), rpmcliShowMatches(), rpmdb_length(), rpmdb_subscript(), rpmdbCheckSignals(), rpmdbFindByFile(), rpmdbFindFpList(), rpmdbRebuild(), rpmdbRemove(), rpmErase(), rpmInstall(), rpmmi_dealloc(), rpmmi_iternext(), rpmpsmStage(), rpmQueryVerify(), rpmts_AddErase(), rpmtsAddInstallElement(), rpmtsCheck(), rpmtsFindPubkey(), rpmtsRun(), rpmtsSolve(), runImmedTriggers(), runTriggers(), and unsatisfiedDepend(). |
|
Return number of elements in rpm database iterator.
Definition at line 1746 of file rpmdb.c. References _dbiIndexSet::count, and _rpmdbMatchIterator::mi_set. Referenced by ftsCacheUpdate(), rpmdbFindFpList(), rpmInstall(), rpmmi_Count(), and rpmts_AddErase(). |
|
Definition at line 1742 of file rpmdb.c. References _rpmdbMatchIterator::mi_filenum. Referenced by rpmtsFindPubkey(). |
|
Return header join key for current position of rpm database iterator.
Definition at line 1738 of file rpmdb.c. References _rpmdbMatchIterator::mi_offset. Referenced by IDTXload(), markReplacedFiles(), rpmErase(), rpmmi_Instance(), rpmpsmStage(), rpmts_AddErase(), and rpmtsAddInstallElement(). |
|
Initialize database.
Definition at line 1156 of file rpmdb.c. References openDatabase(), RPMDB_FLAG_JUSTCHECK, rpmdbClose(), rpmdbOpenAll(), and rpmExpandNumeric(). Referenced by rpmtsInitDB(). |
|
Return database iterator.
Definition at line 2458 of file rpmdb.c. References _, _free(), _dbiIndex::dbi_rpmtag, _dbiIndex::dbi_txnid, dbiCclose(), dbiCopen(), dbiFindByLabel(), dbiFreeIndexSet(), dbiGet(), dbiOpen(), dbt2set(), _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_next, _rpmdbMatchIterator::mi_nre, _rpmdbMatchIterator::mi_offset, _rpmdbMatchIterator::mi_prevoffset, _rpmdbMatchIterator::mi_re, _rpmdbMatchIterator::mi_rpmtag, _rpmdbMatchIterator::mi_set, _rpmdbMatchIterator::mi_setx, _rpmdbMatchIterator::mi_sorted, _rpmdbMatchIterator::mi_ts, rpmdbCheckSignals(), rpmdbFindByFile(), RPMDBI_LABEL, RPMDBI_PACKAGES, rpmdbLink, RPMERR_DBGETINDEX, rpmError, rpmTag, RPMTAG_BASENAMES, RPMTAG_NAME, xcalloc(), and xmalloc(). Referenced by dbiFindMatches(), main(), 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 2160 of file rpmdb.c. References _, _free(), _dbiIndexSet::count, rpmdb_s::db_bits, rpmdb_s::db_nbits, _dbiIndex::dbi_txnid, dbiCopen(), dbiGet(), dbiIndexRecordFileNumber(), dbiIndexRecordOffset(), dbiOpen(), headerToken_s::flags, headerCopyLoad(), HEADERFLAG_ALLOCATED, headerIsEntry(), headerLoad(), _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, RPMRC_FAIL, RPMRC_NOTFOUND, RPMRC_OK, and RPMTAG_NAME. Referenced by checkPackageSet(), dbiFindMatches(), handleInstInstalledFiles(), handleRmvdInstalledFiles(), IDTXload(), main(), markReplacedFiles(), rpmcliShowMatches(), rpmdb_length(), rpmdb_subscript(), rpmdbFindByFile(), rpmdbFindFpList(), rpmdbRebuild(), rpmdbRemove(), rpmErase(), rpmInstall(), rpmmi_iternext(), rpmpsmStage(), rpmts_AddErase(), rpmtsAddInstallElement(), rpmtsFindPubkey(), rpmtsRun(), rpmtsSolve(), runImmedTriggers(), runTriggers(), and unsatisfiedDepend(). |
|
Open rpm database.
Definition at line 1148 of file rpmdb.c. References openDatabase(), and rpmExpandNumeric(). Referenced by main(), rpmtsOpenDB(), and rpmtsOpenSDB(). |
|
Open all database indices.
Definition at line 860 of file rpmdb.c. References rpmdb_s::_dbi, rpmdb_s::db_flags, dbiOpen(), dbiTags, and dbiTagsMax. Referenced by rpmdbInit(), and rpmdbVerify(). |
|
Remove items from set of package instances to iterate.
Definition at line 2436 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 3676 of file rpmdb.c. References _, _db_filter_dups, _free(), _rebuildinprogress, rpmdb_s::db_api, rpmdb_s::db_filter_dups, errno, F_OK, headerCopy(), headerFree(), headerIsEntry(), headerNVR(), Mkdir(), openDatabase(), Rmdir(), RPMDB_FLAG_MINIMAL, rpmdbAdd(), rpmdbClose(), rpmdbFreeIterator(), RPMDBI_PACKAGES, rpmdbInitIterator(), rpmdbMoveDatabase(), rpmdbNextIterator(), rpmdbRemoveDatabase(), rpmdbSetHdrChk(), rpmdbSetIteratorRE(), rpmDefineMacro(), RPMERR_INTERNAL, RPMERR_MKDIR, rpmError, rpmExpandNumeric(), rpmGetPath(), RPMMESS_DEBUG, RPMMESS_ERROR, RPMMESS_NORMAL, rpmMessage, RPMMIRE_DEFAULT, rpmRC, RPMTAG_BUILDTIME, RPMTAG_HEADERIMAGE, RPMTAG_NAME, RPMTAG_RELEASE, RPMTAG_VERSION, rpmts, stpcpy(), strerror(), and xmalloc(). Referenced by rpmtsRebuildDB(). |
|
Remove package header from rpm database and indices.
Definition at line 2581 of file rpmdb.c. References _, _free(), alloca(), blockSignals(), byte, _dbiIndexSet::count, _dbiIndex::dbi_no_dbsync, _dbiIndex::dbi_rpmtag, _dbiIndex::dbi_txnid, dbiCclose(), dbiCopen(), dbiDel(), dbiFreeIndexSet(), dbiGet(), dbiIndexNewItem(), dbiOpen(), dbiPruneSet(), dbiPut(), dbiSync(), dbiTags, dbiTagsMax, dbt2set(), headerAddEntry(), headerFree(), headerLink(), headerNVR(), HFD_t, HGE_t, int_32, nibble(), pgpNewDig, pgpPrtPkts(), pgpDig_s::pubkey, 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, rpmRC, RPMTAG_FILEMD5S, RPMTAG_PUBKEYS, RPMTAG_REMOVETID, rpmTagType, rpmts, set2dbt(), pgpDigParams_s::signid, tagName(), and unblockSignals(). Referenced by rpmpsmStage(). |
|
Modify iterator to verify retrieved header blobs.
Definition at line 2145 of file rpmdb.c. References _rpmdbMatchIterator::mi_hdrchk, _rpmdbMatchIterator::mi_ts, rpmRC, and rpmts. Referenced by rpmdbRebuild(), and rpmtsInitIterator(). |
|
Modify iterator to mark header for lazy write on release.
Definition at line 2135 of file rpmdb.c. References _rpmdbMatchIterator::mi_modified. Referenced by markReplacedFiles(). |
|
Add pattern to iterator selector.
Definition at line 1903 of file rpmdb.c. References _free(), miRE_s::cflags, miRE_s::eflags, miRE_s::fnflags, _rpmdbMatchIterator::mi_nre, _rpmdbMatchIterator::mi_re, mireCmp(), mireDup(), miRE_s::mode, miRE_s::notmatch, miRE_s::pattern, miRE_s::preg, RPMERR_REGCOMP, rpmError, rpmExpand(), RPMMIRE_DEFAULT, RPMMIRE_GLOB, RPMMIRE_REGEX, RPMMIRE_STRCMP, rpmMireMode, rpmTag, miRE_s::tag, xcalloc(), and xrealloc(). Referenced by dbiFindMatches(), IDTXload(), rpmdbRebuild(), rpmmi_Pattern(), rpmpsmStage(), rpmQueryVerify(), rpmtsInitIterator(), and rpmtsRun(). |
|
Prepare iterator for lazy writes.
Definition at line 2122 of file rpmdb.c. References _rpmdbMatchIterator::mi_cflags. Referenced by markReplacedFiles(). |
|
Sync all database indices.
Definition at line 957 of file rpmdb.c. References rpmdb_s::_dbi, rpmdb_s::db_ndbi, and dbiSync(). Referenced by rpmtsRun(). |
|
Unreference a database instance.
|
|
Verify database components.
Definition at line 1177 of file rpmdb.c. References rpmdb_s::_dbi, rpmdb_s::db_ndbi, dbiVerify(), openDatabase(), rpmdbClose(), rpmdbOpenAll(), and rpmExpandNumeric(). Referenced by rpmtsVerifyDB(). |
|
Tags for which rpmdb indices will be built. Definition at line 790 of file rpmdb.h. Referenced by dbiTagsInit(), dbiTagToDbix(), openDatabase(), rpmdbAdd(), rpmdbCloseDBI(), rpmdbMoveDatabase(), rpmdbOpenAll(), rpmdbRemove(), and rpmdbRemoveDatabase(). |