Files | |
file | rpmlib.h |
file | dbconfig.c |
file | rpmdb.c |
file | rpmdb.h |
Access RPM indices using Berkeley DB interface(s). | |
Data Structures | |
struct | rpmdb_s |
Describes the collection of index databases used by rpm. More... | |
RPMDB | |
typedef rpmdb_s * | rpmdb |
typedef _dbiIndexSet * | dbiIndexSet |
typedef _rpmdbMatchIterator * | rpmdbMatchIterator |
typedef enum rpmMireMode_e | rpmMireMode |
Tag value pattern match mode. | |
enum | rpmMireMode_e { RPMMIRE_DEFAULT = 0, RPMMIRE_STRCMP = 1, RPMMIRE_REGEX = 2, RPMMIRE_GLOB = 3 } |
Tag value pattern match mode. More... | |
int | rpmdbOpen (const char *prefix, rpmdb *dbp, int mode, int perms) |
Open rpm database. | |
int | rpmdbInit (const char *prefix, int perms) |
Initialize database. | |
int | rpmdbVerify (const char *prefix) |
Verify 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. | |
rpmdbMatchIterator | rpmdbFreeIterator (rpmdbMatchIterator mi) |
Destroy rpm database iterator. | |
rpmdb | rpmdbGetIteratorRpmDB (rpmdbMatchIterator mi) |
Return rpm database used by iterator. | |
unsigned int | rpmdbGetIteratorOffset (rpmdbMatchIterator mi) |
Return 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 | rpmdbSetIteratorVersion (rpmdbMatchIterator mi, const char *version) |
Modify iterator to filter out headers that do not match version. | |
int | rpmdbSetIteratorRelease (rpmdbMatchIterator mi, const char *release) |
Modify iterator to filter out headers that do not match release. | |
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. | |
Header | rpmdbNextIterator (rpmdbMatchIterator mi) |
Return next package header from iteration. | |
rpmdbMatchIterator | rpmdbInitIterator (rpmdb db, int rpmtag, const void *keyp, size_t keylen) |
Return database iterator. | |
int | rpmdbAdd (rpmdb db, int iid, Header h) |
Add package header to rpm database and indices. | |
int | rpmdbRemove (rpmdb db, int rid, unsigned int hdrNum) |
Remove package header from rpm database and indices. | |
int | rpmdbRebuild (const char *prefix) |
Rebuild database indices from package headers. | |
Header | XrpmdbNextIterator (rpmdbMatchIterator mi, const char *f, unsigned int l) |
int * | dbiTags |
Tags for which rpmdb indices will be built. | |
int | dbiTagsMax |
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) |
Find fingerprint matches in database. | |
unsigned int | rpmdbGetIteratorFileNum (rpmdbMatchIterator mi) |
|
|
|
|
|
|
|
Tag value pattern match mode.
|
|
|
|
Tag value pattern match mode.
|
|
Add package header to rpm database and indices.
Definition at line 2592 of file rpmdb.c. References _, _noDirTokens, blockSignals(), DBC, _dbiIndex::dbi_no_dbsync, _dbiIndex::dbi_rpmtag, DBI_WRITECURSOR, dbiCclose(), dbiCopen(), dbiGet(), dbiIndexNewItem(), dbiOpen(), dbiPut(), dbiSync(), dbiTags, dbiUpdateRecord(), expandFilelist(), HEADER_MAGIC_NO, headerAddEntry(), headerFreeData(), headerGetEntryMinMemory(), headerIsEntry(), headerNVR(), headerRemoveEntry(), headerSizeof(), isInstallPreReq, RPM_INT32_TYPE, RPM_STRING_TYPE, RPMDBI_ADDED, RPMDBI_AVAILABLE, RPMDBI_DEPENDS, RPMDBI_PACKAGES, RPMDBI_REMOVED, RPMERR_DBCORRUPT, rpmError, RPMMESS_DEBUG, rpmMessage, RPMTAG_BASENAMES, RPMTAG_GROUP, RPMTAG_INSTALLTID, RPMTAG_REMOVETID, RPMTAG_REQUIREFLAGS, RPMTAG_REQUIRENAME, and RPMTAG_TRIGGERNAME. Referenced by rpmdbRebuild(). |
|
Append items to set of package instances to iterate.
Definition at line 2217 of file rpmdb.c. References dbiAppendSet(), and xcalloc(). |
|
Close all database indices and free rpmdb.
Definition at line 813 of file rpmdb.c. References _free(), and dbiClose(). Referenced by checkSpec(), main(), rpmdbDealloc(), rpmdbInit(), rpmdbRebuild(), rpmdbVerify(), rpmQuery(), rpmVerify(), and ugFindUpgradePackages(). |
|
Return number of instances of package in rpm database.
Definition at line 1249 of file rpmdb.c. References _, DBC, dbiCclose(), dbiCopen(), dbiFreeIndexSet(), dbiIndexSetCount(), dbiOpen(), dbiSearch(), RPMERR_DBCORRUPT, rpmError, and RPMTAG_NAME. Referenced by findPackagesWithObsoletes(), handleOneTrigger(), psmStage(), and runTriggers(). |
|
Find fingerprint matches in database.
Definition at line 2876 of file rpmdb.c. References headerFreeData(), headerGetEntryMinMemory(), rpmdbGrowIterator(), rpmdbInitIterator(), RPMTAG_BASENAMES, and xcalloc(). |
|
Destroy rpm database iterator.
Definition at line 1548 of file rpmdb.c. References _free(), _dbiIndex::dbi_rmw, dbiCclose(), dbiOpen(), dbiUpdateRecord(), headerFree(), and RPMDBI_PACKAGES. Referenced by addLostFiles(), checkPackageSet(), dbiFindMatches(), findUpgradePackages(), handleDbResult(), handleInstInstalledFiles(), handleRmvdInstalledFiles(), IDTXload(), main(), psmStage(), rpmdbFindByFile(), rpmdbFirst(), rpmdbLength(), rpmdbMIDealloc(), rpmdbRebuild(), rpmdbRemove(), rpmdbSubscript(), rpmErase(), rpmQueryVerify(), rpmtransAddPackage(), rpmtransRemove(), runImmedTriggers(), runTriggers(), showMatches(), unmarkPackagesAlreadyInstalled(), and unsatisfiedDepend(). |
|
Return number of elements in rpm database iterator.
Definition at line 1618 of file rpmdb.c. Referenced by rpmErase(), rpmtransRemove(), and runImmedTriggers(). |
|
|
|
Return join key for current position of rpm database iterator.
Definition at line 1606 of file rpmdb.c. Referenced by handleDbResult(), IDTXload(), psmStage(), rpmdbFirst(), rpmErase(), rpmtransAddPackage(), and rpmtransRemove(). |
|
Return rpm database used by iterator.
Definition at line 1598 of file rpmdb.c. Referenced by showMatches(). |
|
Initialize database.
Definition at line 1067 of file rpmdb.c. References openDatabase(), RPMDB_FLAG_JUSTCHECK, rpmdbClose(), rpmdbOpenAll(), and rpmExpandNumeric(). Referenced by main(), and rpmInitDB(). |
|
|
Return next package header from iteration.
Definition at line 2019 of file rpmdb.c. References _, _free(), _dbiIndex::dbi_api, DBI_ITERATOR, _dbiIndex::dbi_lastoffset, _dbiIndex::dbi_rpmtag, dbiCopen(), dbiGet(), dbiIndexRecordFileNumber(), dbiIndexRecordOffset(), dbiOpen(), dbiUpdateRecord(), headerCopyLoad(), headerFree(), headerIsEntry(), headerNVR(), mireSkip(), RPMDBI_PACKAGES, RPMERR_BADHEADER, RPMERR_INTERNAL, rpmError, RPMMESS_DEBUG, rpmMessage, and RPMTAG_NAME. Referenced by addLostFiles(), checkPackageSet(), dbiFindMatches(), findUpgradePackages(), handleDbResult(), handleInstInstalledFiles(), handleRmvdInstalledFiles(), IDTXload(), main(), psmStage(), rpmdbFindByFile(), rpmdbFirst(), rpmdbLength(), rpmdbMINext(), rpmdbRebuild(), rpmdbRemove(), rpmdbSubscript(), rpmErase(), rpmtransAddPackage(), rpmtransRemove(), runImmedTriggers(), runTriggers(), showMatches(), unmarkPackagesAlreadyInstalled(), unsatisfiedDepend(), and XrpmdbNextIterator(). |
|
Open rpm database.
Definition at line 1059 of file rpmdb.c. References openDatabase(), and rpmExpandNumeric(). Referenced by checkSpec(), main(), rpmErase(), rpmOpenDB(), rpmQuery(), rpmRollback(), rpmVerify(), and ugFindUpgradePackages(). |
|
Open all database indices.
Definition at line 796 of file rpmdb.c. References dbiOpen(), dbiTags, and dbiTagsMax. Referenced by rpmdbInit(), and rpmdbVerify(). |
|
Remove items from set of package instances to iterate.
Definition at line 2206 of file rpmdb.c. References dbiPruneSet(). Referenced by checkPackageSet(), rpmtransAddPackage(), and unsatisfiedDepend(). |
|
Rebuild database indices from package headers.
Definition at line 3230 of file rpmdb.c. References _, _db_filter_dups, _free(), _rebuildinprogress, _RECNUM, errno, F_OK, headerCopy(), headerFree(), headerIsEntry(), headerNVR(), Mkdir(), name, openDatabase(), Rmdir(), RPMDB_FLAG_MINIMAL, rpmdbAdd(), rpmdbClose(), rpmdbFreeIterator(), RPMDBI_PACKAGES, rpmdbInitIterator(), rpmdbMoveDatabase(), rpmdbNextIterator(), rpmdbRemoveDatabase(), rpmdbSetIteratorRE(), rpmDefineMacro(), RPMERR_INTERNAL, RPMERR_MKDIR, rpmError, rpmExpandNumeric(), rpmGetPath(), RPMMESS_DEBUG, RPMMESS_ERROR, RPMMESS_NORMAL, rpmMessage, RPMMIRE_DEFAULT, RPMTAG_BUILDTIME, RPMTAG_HEADERIMAGE, RPMTAG_NAME, RPMTAG_RELEASE, RPMTAG_VERSION, stpcpy(), strerror(), and xmalloc(). Referenced by main(), and rebuildDB(). |
|
Remove package header from rpm database and indices.
Definition at line 2368 of file rpmdb.c. References _, blockSignals(), DBC, DBI_WRITECURSOR, dbiCclose(), dbiCopen(), dbiDel(), dbiIndexNewItem(), dbiOpen(), dbiSync(), dbiTags, headerAddEntry(), headerFreeData(), headerGetEntryMinMemory(), headerLink(), headerNVR(), removeIndexEntry(), 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, rpmError, RPMMESS_DEBUG, rpmMessage, RPMTAG_REMOVETID, and tagName(). |
|
Modify iterator to mark header for lazy write.
|
|
Add pattern to iterator selector.
Definition at line 1774 of file rpmdb.c. References _free(), miRE_s::cflags, miRE_s::eflags, miRE_s::fnflags, 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, miRE_s::tag, xcalloc(), and xrealloc(). Referenced by dbiFindMatches(), psmStage(), rpmdbRebuild(), rpmdbSetIteratorRelease(), rpmdbSetIteratorVersion(), and rpmQueryVerify(). |
|
Modify iterator to filter out headers that do not match release.
Definition at line 1984 of file rpmdb.c. References rpmdbSetIteratorRE(), RPMMIRE_DEFAULT, and RPMTAG_RELEASE. |
|
Prepare iterator for lazy writes.
Definition at line 1992 of file rpmdb.c. References DBI_WRITECURSOR. |
|
Modify iterator to filter out headers that do not match version.
Definition at line 1988 of file rpmdb.c. References rpmdbSetIteratorRE(), RPMMIRE_DEFAULT, and RPMTAG_VERSION. |
|
Sync all database indices.
Definition at line 840 of file rpmdb.c. References dbiSync(). |
|
Verify database components.
Definition at line 1088 of file rpmdb.c. References dbiVerify(), openDatabase(), rpmdbClose(), rpmdbOpenAll(), and rpmExpandNumeric(). Referenced by main(). |
|
Definition at line 2013 of file rpmdb.c. References rpmdbNextIterator(). |
|
Tags for which rpmdb indices will be built.
Definition at line 61 of file rpmdb.c. Referenced by dbiTagsInit(), dbiTagToDbix(), main(), rpmdbAdd(), rpmdbCloseDBI(), rpmdbMoveDatabase(), rpmdbOpenAll(), rpmdbRemove(), and rpmdbRemoveDatabase(). |
|
Definition at line 63 of file rpmdb.c. Referenced by dbiOpen(), dbiTagsInit(), dbiTagToDbix(), newRpmdb(), openDatabase(), rpmdbCloseDBI(), and rpmdbOpenAll(). |