rpm  4.8.1
Typedefs | Enumerations | Functions | Variables
rpmdb.h File Reference

Access RPM indices using Berkeley DB interface(s). More...

#include <rpm/rpmtypes.h>
#include <rpm/rpmsw.h>
Include dependency graph for rpmdb.h:

Go to the source code of this file.

Typedefs

typedef enum rpmMireMode_e rpmMireMode
 Tag value pattern match mode. More...
 
typedef enum rpmdbOpX_e rpmdbOpX
 

Enumerations

enum  rpmMireMode_e { RPMMIRE_DEFAULT = 0, RPMMIRE_STRCMP = 1, RPMMIRE_REGEX = 2, RPMMIRE_GLOB = 3 }
 Tag value pattern match mode. More...
 
enum  rpmdbOpX_e { RPMDB_OP_DBGET = 1, RPMDB_OP_DBPUT = 2, RPMDB_OP_DBDEL = 3, RPMDB_OP_MAX = 4 }
 

Functions

rpmop rpmdbOp (rpmdb db, rpmdbOpX opx)
 Retrieve operation timestamp from rpm database. More...
 
int rpmdbSetChrootDone (rpmdb db, int chrootDone)
 Set chrootDone flag, i.e. More...
 
rpmdb rpmdbUnlink (rpmdb db, const char *msg)
 Unreference a database instance. More...
 
rpmdb rpmdbLink (rpmdb db, const char *msg)
 Reference a database instance. More...
 
int rpmdbOpen (const char *prefix, rpmdb *dbp, int mode, int perms)
 Open rpm database. More...
 
int rpmdbInit (const char *prefix, int perms)
 Initialize database. More...
 
int rpmdbVerify (const char *prefix)
 Verify database components. More...
 
int rpmdbCloseDBI (rpmdb db, rpmTag rpmtag)
 Close a single database index. More...
 
int rpmdbClose (rpmdb db)
 Close all database indices and free rpmdb. More...
 
int rpmdbSync (rpmdb db)
 Sync all database indices. More...
 
int rpmdbOpenAll (rpmdb db)
 Open all database indices. More...
 
int rpmdbCountPackages (rpmdb db, const char *name)
 Return number of instances of package in rpm database. More...
 
unsigned int rpmdbGetIteratorOffset (rpmdbMatchIterator mi)
 Return header join key for current position of rpm database iterator. More...
 
int rpmdbGetIteratorCount (rpmdbMatchIterator mi)
 Return number of elements in rpm database iterator. More...
 
unsigned int rpmdbGetIteratorFileNum (rpmdbMatchIterator mi)
 
int rpmdbAppendIterator (rpmdbMatchIterator mi, const int *hdrNums, int nHdrNums)
 Append items to set of package instances to iterate. More...
 
int rpmdbPruneIterator (rpmdbMatchIterator mi, int *hdrNums, int nHdrNums, int sorted)
 Remove items from set of package instances to iterate. More...
 
int rpmdbSetIteratorRE (rpmdbMatchIterator mi, rpmTag tag, rpmMireMode mode, const char *pattern)
 Add pattern to iterator selector. More...
 
int rpmdbSetIteratorRewrite (rpmdbMatchIterator mi, int rewrite)
 Prepare iterator for lazy writes. More...
 
int rpmdbSetIteratorModified (rpmdbMatchIterator mi, int modified)
 Modify iterator to mark header for lazy write on release. More...
 
int rpmdbSetHdrChk (rpmdbMatchIterator mi, rpmts ts, rpmRC(*hdrchk)(rpmts ts, const void *uh, size_t uc, char **msg))
 Modify iterator to verify retrieved header blobs. More...
 
rpmdbMatchIterator rpmdbInitIterator (rpmdb db, rpmTag rpmtag, const void *keyp, size_t keylen)
 Return database iterator. More...
 
Header rpmdbNextIterator (rpmdbMatchIterator mi)
 Return next package header from iteration. More...
 
int rpmdbCheckSignals (void)
 Check for and exit on termination signals. More...
 
int rpmdbCheckTerminate (int terminate)
 Check rpmdb signal handler for trapped signal and/or requested exit, clean up any open iterators and databases on termination condition. More...
 
rpmdbMatchIterator rpmdbFreeIterator (rpmdbMatchIterator mi)
 Destroy rpm database iterator. More...
 
int rpmdbAdd (rpmdb db, int iid, Header h, rpmts ts, rpmRC(*hdrchk)(rpmts ts, const void *uh, size_t uc, char **msg))
 Add package header to rpm database and indices. More...
 
int rpmdbRemove (rpmdb db, int rid, unsigned int hdrNum, rpmts ts, rpmRC(*hdrchk)(rpmts ts, const void *uh, size_t uc, char **msg))
 Remove package header from rpm database and indices. More...
 
int rpmdbRebuild (const char *prefix, rpmts ts, rpmRC(*hdrchk)(rpmts ts, const void *uh, size_t uc, char **msg))
 Rebuild database indices from package headers. More...
 

Variables

int _rpmdb_debug
 

Detailed Description

Access RPM indices using Berkeley DB interface(s).

Definition in file rpmdb.h.

Typedef Documentation

◆ rpmdbOpX

typedef enum rpmdbOpX_e rpmdbOpX

◆ rpmMireMode

typedef enum rpmMireMode_e rpmMireMode

Tag value pattern match mode.

Enumeration Type Documentation

◆ rpmdbOpX_e

enum rpmdbOpX_e
Enumerator
RPMDB_OP_DBGET 
RPMDB_OP_DBPUT 
RPMDB_OP_DBDEL 
RPMDB_OP_MAX 

Definition at line 28 of file rpmdb.h.

◆ rpmMireMode_e

Tag value pattern match mode.

Enumerator
RPMMIRE_DEFAULT 

regex with ., .* and ^...$ added

RPMMIRE_STRCMP 

strings using strcmp(3)

RPMMIRE_REGEX 

regex(7) patterns through regcomp(3)

RPMMIRE_GLOB 

glob(7) patterns through fnmatch(3)

Definition at line 21 of file rpmdb.h.

Function Documentation

◆ rpmdbAdd()

int rpmdbAdd ( rpmdb  db,
int  iid,
Header  h,
rpmts  ts,
rpmRC(*)(rpmts ts, const void *uh, size_t uc, char **msg)  hdrchk 
)

Add package header to rpm database and indices.

Parameters
dbrpm database
iidinstall transaction id (iid = 0 or -1 to skip)
hheader
ts(unused) transaction set (or NULL)
(*hdrchk)(unused) headerCheck() vector (or NULL)
Returns
0 on success

◆ rpmdbAppendIterator()

int rpmdbAppendIterator ( rpmdbMatchIterator  mi,
const int *  hdrNums,
int  nHdrNums 
)

Append items to set of package instances to iterate.

Parameters
mirpm database iterator
hdrNumsarray of package instances
nHdrNumsnumber of elements in array
Returns
0 on success, 1 on failure (bad args)

◆ rpmdbCheckSignals()

int rpmdbCheckSignals ( void  )

Check for and exit on termination signals.

◆ rpmdbCheckTerminate()

int rpmdbCheckTerminate ( int  terminate)

Check rpmdb signal handler for trapped signal and/or requested exit, clean up any open iterators and databases on termination condition.

On non-zero exit any open references to rpmdb are invalid and cannot be accessed anymore, calling process should terminate immediately.

Parameters
terminate0 to only check for signals, 1 to terminate anyway
Returns
0 to continue, 1 if termination cleanup was done.

◆ rpmdbClose()

int rpmdbClose ( rpmdb  db)

Close all database indices and free rpmdb.

Parameters
dbrpm database
Returns
0 on success

◆ rpmdbCloseDBI()

int rpmdbCloseDBI ( rpmdb  db,
rpmTag  rpmtag 
)

Close a single database index.

Parameters
dbrpm database
rpmtagrpm tag
Returns
0 on success

◆ rpmdbCountPackages()

int rpmdbCountPackages ( rpmdb  db,
const char *  name 
)

Return number of instances of package in rpm database.

Parameters
dbrpm database
namerpm package name
Returns
number of instances

◆ rpmdbFreeIterator()

rpmdbMatchIterator rpmdbFreeIterator ( rpmdbMatchIterator  mi)

Destroy rpm database iterator.

Parameters
mirpm database iterator
Returns
NULL always

◆ rpmdbGetIteratorCount()

int rpmdbGetIteratorCount ( rpmdbMatchIterator  mi)

Return number of elements in rpm database iterator.

Parameters
mirpm database iterator
Returns
number of elements

◆ rpmdbGetIteratorFileNum()

unsigned int rpmdbGetIteratorFileNum ( rpmdbMatchIterator  mi)

◆ rpmdbGetIteratorOffset()

unsigned int rpmdbGetIteratorOffset ( rpmdbMatchIterator  mi)

Return header join key for current position of rpm database iterator.

Parameters
mirpm database iterator
Returns
current header join key

◆ rpmdbInit()

int rpmdbInit ( const char *  prefix,
int  perms 
)

Initialize database.

Parameters
prefixpath to top of install tree
permsdatabase permissions
Returns
0 on success

◆ rpmdbInitIterator()

rpmdbMatchIterator rpmdbInitIterator ( rpmdb  db,
rpmTag  rpmtag,
const void *  keyp,
size_t  keylen 
)

Return database iterator.

Parameters
dbrpm database
rpmtagrpm tag
keypkey data (NULL for sequential access)
keylenkey data length (0 will use strlen(keyp))
Returns
NULL on failure

◆ rpmdbLink()

rpmdb rpmdbLink ( rpmdb  db,
const char *  msg 
)

Reference a database instance.

Parameters
dbrpm database
msg
Returns
new rpm database reference

◆ rpmdbNextIterator()

Header rpmdbNextIterator ( rpmdbMatchIterator  mi)

Return next package header from iteration.

Parameters
mirpm database iterator
Returns
NULL on end of iteration.

◆ rpmdbOp()

rpmop rpmdbOp ( rpmdb  db,
rpmdbOpX  opx 
)

Retrieve operation timestamp from rpm database.

Parameters
dbrpm database
opxoperation timestamp index
Returns
pointer to operation timestamp.

◆ rpmdbOpen()

int rpmdbOpen ( const char *  prefix,
rpmdb dbp,
int  mode,
int  perms 
)

Open rpm database.

Parameters
prefixpath to top of install tree
Return values
dbpaddress of rpm database
Parameters
modeopen(2) flags: O_RDWR or O_RDONLY (O_CREAT also)
permsdatabase permissions
Returns
0 on success

◆ rpmdbOpenAll()

int rpmdbOpenAll ( rpmdb  db)

Open all database indices.

Parameters
dbrpm database
Returns
0 on success

◆ rpmdbPruneIterator()

int rpmdbPruneIterator ( rpmdbMatchIterator  mi,
int *  hdrNums,
int  nHdrNums,
int  sorted 
)

Remove items from set of package instances to iterate.

Note
Sorted hdrNums are always passed in rpmlib.
Parameters
mirpm database iterator
hdrNumsarray of package instances
nHdrNumsnumber of elements in array
sortedis the array sorted? (array will be sorted on return)
Returns
0 on success, 1 on failure (bad args)

◆ rpmdbRebuild()

int rpmdbRebuild ( const char *  prefix,
rpmts  ts,
rpmRC(*)(rpmts ts, const void *uh, size_t uc, char **msg)  hdrchk 
)

Rebuild database indices from package headers.

Parameters
prefixpath to top of install tree
tstransaction set (or NULL)
(*hdrchk)headerCheck() vector (or NULL)
Returns
0 on success

◆ rpmdbRemove()

int rpmdbRemove ( rpmdb  db,
int  rid,
unsigned int  hdrNum,
rpmts  ts,
rpmRC(*)(rpmts ts, const void *uh, size_t uc, char **msg)  hdrchk 
)

Remove package header from rpm database and indices.

Parameters
dbrpm database
rid(unused) remove transaction id (rid = 0 or -1 to skip)
hdrNumpackage instance number in database
ts(unused) transaction set (or NULL)
(*hdrchk)(unused) headerCheck() vector (or NULL)
Returns
0 on success

◆ rpmdbSetChrootDone()

int rpmdbSetChrootDone ( rpmdb  db,
int  chrootDone 
)

Set chrootDone flag, i.e.

has chroot(2) been performed?

Parameters
dbrpm database
chrootDonenew chrootDone flag
Returns
previous chrootDone flag

◆ rpmdbSetHdrChk()

int rpmdbSetHdrChk ( rpmdbMatchIterator  mi,
rpmts  ts,
rpmRC(*)(rpmts ts, const void *uh, size_t uc, char **msg)  hdrchk 
)

Modify iterator to verify retrieved header blobs.

Parameters
mirpm database iterator
tstransaction set
(*hdrchk)headerCheck() vector
Returns
0 always

◆ rpmdbSetIteratorModified()

int rpmdbSetIteratorModified ( rpmdbMatchIterator  mi,
int  modified 
)

Modify iterator to mark header for lazy write on release.

Parameters
mirpm database iterator
modifiednew value of modified
Returns
previous value

◆ rpmdbSetIteratorRE()

int rpmdbSetIteratorRE ( rpmdbMatchIterator  mi,
rpmTag  tag,
rpmMireMode  mode,
const char *  pattern 
)

Add pattern to iterator selector.

Parameters
mirpm database iterator
tagrpm tag
modetype of pattern match
patternpattern to match
Returns
0 on success

◆ rpmdbSetIteratorRewrite()

int rpmdbSetIteratorRewrite ( rpmdbMatchIterator  mi,
int  rewrite 
)

Prepare iterator for lazy writes.

Note
Must be called before rpmdbNextIterator() with CDB model database.
Parameters
mirpm database iterator
rewritenew value of rewrite
Returns
previous value

◆ rpmdbSync()

int rpmdbSync ( rpmdb  db)

Sync all database indices.

Parameters
dbrpm database
Returns
0 on success

◆ rpmdbUnlink()

rpmdb rpmdbUnlink ( rpmdb  db,
const char *  msg 
)

Unreference a database instance.

Parameters
dbrpm database
msg
Returns
NULL always

◆ rpmdbVerify()

int rpmdbVerify ( const char *  prefix)

Verify database components.

Parameters
prefixpath to top of install tree
Returns
0 on success

Variable Documentation

◆ _rpmdb_debug

int _rpmdb_debug