*/
/*@mayexit@*/
void rpmcliConfigured(void)
- /*@globals rpmCLIMacroContext, rpmGlobalMacroContext,
+ /*@globals rpmcliInitialized, rpmCLIMacroContext, rpmGlobalMacroContext,
fileSystem, internalState @*/
- /*@modifies rpmCLIMacroContext, rpmGlobalMacroContext,
+ /*@modifies rpmcliInitialized, rpmCLIMacroContext, rpmGlobalMacroContext,
fileSystem, internalState @*/
{
/*@access rpmfi @*/
/*@access rpmte @*/ /* XXX rpmInstallSourcePackage */
+/*@access rpmts @*/ /* XXX ts->notify */
int rpmVersionCompare(Header first, Header second)
{
}
}
-int showMatches(QVA_t qva, rpmts ts)
+int rpmcliShowMatches(QVA_t qva, rpmts ts)
{
Header h;
int ec = 0;
/*@loopbreak@*/ break;
}
if (!res)
- res = showMatches(qva, ts);
+ res = rpmcliShowMatches(qva, ts);
}
break;
_("group %s does not contain any packages\n"), arg);
res = 1;
} else {
- res = showMatches(qva, ts);
+ res = rpmcliShowMatches(qva, ts);
}
break;
rpmError(RPMERR_QUERYINFO, _("no package triggers %s\n"), arg);
res = 1;
} else {
- res = showMatches(qva, ts);
+ res = rpmcliShowMatches(qva, ts);
}
break;
"pkgid", arg);
res = 1;
} else {
- res = showMatches(qva, ts);
+ res = rpmcliShowMatches(qva, ts);
}
} break;
"hdrid", arg);
res = 1;
} else {
- res = showMatches(qva, ts);
+ res = rpmcliShowMatches(qva, ts);
}
break;
"fileid", arg);
res = 1;
} else {
- res = showMatches(qva, ts);
+ res = rpmcliShowMatches(qva, ts);
}
} break;
"tid", arg);
res = 1;
} else {
- res = showMatches(qva, ts);
+ res = rpmcliShowMatches(qva, ts);
}
} break;
rpmError(RPMERR_QUERYINFO, _("no package requires %s\n"), arg);
res = 1;
} else {
- res = showMatches(qva, ts);
+ res = rpmcliShowMatches(qva, ts);
}
break;
rpmError(RPMERR_QUERYINFO, _("no package provides %s\n"), arg);
res = 1;
} else {
- res = showMatches(qva, ts);
+ res = rpmcliShowMatches(qva, ts);
}
break;
}
}
res = 1;
} else {
- res = showMatches(qva, ts);
+ res = rpmcliShowMatches(qva, ts);
}
fn = _free(fn);
} break;
_("record %u could not be read\n"), recOffset);
res = 1;
} else {
- res = showMatches(qva, ts);
+ res = rpmcliShowMatches(qva, ts);
}
} break;
rpmError(RPMERR_QUERYINFO, _("package %s is not installed\n"), arg);
res = 1;
} else {
- res = showMatches(qva, ts);
+ res = rpmcliShowMatches(qva, ts);
}
break;
}
* @param ts transaction set
* @return result of last non-zero showPackage() return
*/
-int showMatches(QVA_t qva, rpmts ts)
- /*@globals fileSystem@*/
- /*@modifies qva, fileSystem @*/;
+int rpmcliShowMatches(QVA_t qva, rpmts ts)
+ /*@globals rpmGlobalMacroContext, fileSystem@*/
+ /*@modifies qva, rpmGlobalMacroContext, fileSystem @*/;
/** \ingroup rpmcli
* Display list of tags that can be used in --queryformat.
*/
int rpmInstall(rpmts ts, struct rpmInstallArguments_s * ia,
/*@null@*/ const char ** fileArgv)
- /*@globals packagesTotal, rpmGlobalMacroContext,
+ /*@globals rpmcliPackagesTotal, rpmGlobalMacroContext,
fileSystem, internalState@*/
- /*@modifies ts, ia, packagesTotal, rpmGlobalMacroContext,
+ /*@modifies ts, ia, rpmcliPackagesTotal, rpmGlobalMacroContext,
fileSystem, internalState @*/;
/** \ingroup rpmcli
* @param idtx id index
* @return NULL always
*/
-/*@null@*/ IDTX IDTXfree(/*@only@*/ /*@null@*/ IDTX idtx)
+/*@null@*/
+IDTX IDTXfree(/*@only@*/ /*@null@*/ IDTX idtx)
/*@modifies idtx @*/;
/**
* Create id index.
* @return new id index
*/
-/*@only@*/ IDTX IDTXnew(void)
+/*@only@*/
+IDTX IDTXnew(void)
/*@*/;
/**
* @param need additional no. of elements needed
* @return id index (with room for "need" elements)
*/
-/*@only@*/ /*@null@*/ IDTX IDTXgrow(/*@only@*/ /*@null@*/ IDTX idtx, int need)
+/*@only@*/ /*@null@*/
+IDTX IDTXgrow(/*@only@*/ /*@null@*/ IDTX idtx, int need)
/*@modifies idtx @*/;
/**
* @param idtx id index
* @return id index
*/
-/*@only@*/ /*@null@*/ IDTX IDTXsort(/*@only@*/ /*@null@*/ IDTX idtx)
+/*@only@*/ /*@null@*/
+IDTX IDTXsort(/*@only@*/ /*@null@*/ IDTX idtx)
/*@modifies idtx @*/;
/**
* @param tag rpm tag
* @return id index
*/
-/*@only@*/ /*@null@*/ IDTX IDTXload(rpmts ts, rpmTag tag)
+/*@only@*/ /*@null@*/
+IDTX IDTXload(rpmts ts, rpmTag tag)
/*@globals rpmGlobalMacroContext, fileSystem, internalState @*/
/*@modifies ts, rpmGlobalMacroContext, fileSystem, internalState @*/;
* @param tag rpm tag
* @return id index
*/
-/*@only@*/ /*@null@*/ IDTX IDTXglob(rpmts ts,
- const char * globstr, rpmTag tag)
+/*@only@*/ /*@null@*/
+IDTX IDTXglob(rpmts ts, const char * globstr, rpmTag tag)
/*@globals rpmGlobalMacroContext, fileSystem, internalState @*/
/*@modifies ts, rpmGlobalMacroContext, fileSystem, internalState @*/;
*/
int rpmRollback(rpmts ts, struct rpmInstallArguments_s * ia,
/*@null@*/ const char ** argv)
- /*@globals rpmGlobalMacroContext, fileSystem, internalState @*/
- /*@modifies ts, rpmGlobalMacroContext, fileSystem, internalState @*/;
+ /*@globals rpmcliPackagesTotal, rpmGlobalMacroContext,
+ fileSystem, internalState @*/
+ /*@modifies ts, ia, rpmcliPackagesTotal, rpmGlobalMacroContext,
+ fileSystem, internalState @*/;
/** \ingroup rpmcli
*/
* @param total final
*/
static void printHash(const unsigned long amount, const unsigned long total)
- /*@globals rpmcliHashesCurrent, rpmcliProgressCurrent, fileSystem @*/
- /*@modifies rpmcliHashesCurrent, rpmcliProgressCurrent, fileSystem @*/
+ /*@globals rpmcliHashesCurrent, rpmcliHashesTotal,
+ rpmcliProgressCurrent, fileSystem @*/
+ /*@modifies rpmcliHashesCurrent, rpmcliHashesTotal,
+ rpmcliProgressCurrent, fileSystem @*/
{
int hashesNeeded;
fprintf(stdout, _("Installing %s\n"), arg);
{
- rpmVSFlags ovsflags;
- ovsflags = rpmtsSetVSFlags(ts, (rpmtsVSFlags(ts) | RPMVSF_NEEDPAYLOAD));
+ rpmVSFlags ovsflags =
+ rpmtsSetVSFlags(ts, (rpmtsVSFlags(ts) | RPMVSF_NEEDPAYLOAD));
rpmRC rpmrc = rpmInstallSourcePackage(ts, fd, specFilePtr, cookie);
rc = (rpmrc == RPMRC_OK ? 0 : 1);
ovsflags = rpmtsSetVSFlags(ts, ovsflags);
}
/** @todo Transaction handling, more, needs work. */
-int rpmRollback(rpmts ts,
- /*@unused@*/ struct rpmInstallArguments_s * ia,
- const char ** argv)
+int rpmRollback(rpmts ts, struct rpmInstallArguments_s * ia, const char ** argv)
{
int ifmask= (INSTALL_UPGRADE|INSTALL_FRESHEN|INSTALL_INSTALL|INSTALL_ERASE);
unsigned thistid = 0xffffffff;
/* Install the previously erased packages for this transaction. */
while (rp != NULL && rp->val.u32 == thistid) {
+/*@-nullpass@*/ /* FIX: rp->key may be NULL */
rpmMessage(RPMMESS_DEBUG, "\t+++ %s\n", rp->key);
+/*@=nullpass@*/
+/*@-abstract@*/
rc = rpmtsAddInstallElement(ts, rp->h, (fnpyKey)rp->key,
0, ia->relocations);
+/*@=abstract@*/
if (rc != 0)
goto exit;
goto exit;
/* Clean up after successful rollback. */
- if (!rpmIsDebug()) {
+ if (rtids && !rpmIsDebug()) {
int i;
+ if (rtids->idt)
for (i = 0; i < rtids->nidt; i++) {
IDT rrp = rtids->idt + i;
if (rrp->val.u32 != thistid)
- continue;
- (void) unlink(rrp->key);
+ /*@innercontinue@*/ continue;
+ if (rrp->key) /* XXX can't happen */
+ (void) unlink(rrp->key);
}
}
#include "rpmlead.h"
#include "debug.h"
+/*@unchecked@*/ /*@observer@*/
static unsigned char lead_magic[] = {
RPMLEAD_MAGIC0, RPMLEAD_MAGIC1, RPMLEAD_MAGIC2, RPMLEAD_MAGIC3
};
struct rpmlead l;
/*@-boundswrite@*/
- memcpy(&l, lead, sizeof(*lead));
-/*@=boundswrite@*/
+ memcpy(&l, lead, sizeof(l));
- memcpy(&l.magic, lead_magic, sizeof(lead_magic));
+ memcpy(&l.magic, lead_magic, sizeof(l.magic));
+/*@=boundswrite@*/
l.type = htons(l.type);
l.archnum = htons(l.archnum);
l.osnum = htons(l.osnum);
* @return 0 on success
*/
int rpmtsInitDB(rpmts ts, int dbmode)
- /*@globals fileSystem, internalState @*/
- /*@modifies ts, fileSystem, internalState @*/;
+ /*@globals rpmGlobalMacroContext, fileSystem, internalState @*/
+ /*@modifies ts, rpmGlobalMacroContext, fileSystem, internalState @*/;
/** \ingroup rpmts
* Rebuild the database used by the transaction.
* @return 0 on success
*/
int rpmtsVerifyDB(rpmts ts)
- /*@globals fileSystem, internalState @*/
- /*@modifies ts, fileSystem, internalState @*/;
+ /*@globals rpmGlobalMacroContext, fileSystem, internalState @*/
+ /*@modifies ts, rpmGlobalMacroContext, fileSystem, internalState @*/;
/** \ingroup rpmts
* Return transaction database iterator.
*/
int rpmdbFindFpList(/*@null@*/ rpmdb db, fingerPrint * fpList,
/*@out@*/ dbiIndexSet * matchList, int numItems)
- /*@globals fileSystem@*/
- /*@modifies db, *matchList, fileSystem @*/;
+ /*@globals rpmGlobalMacroContext, fileSystem @*/
+ /*@modifies db, *matchList, rpmGlobalMacroContext, fileSystem @*/;
/* Be carefull with the memory... assert(*fullName == '/' || !scareMemory) */
/**
* Initialize database (index, tag) tuple from configuration.
*/
-/*@-bounds@*/ /* LCL: segfault */
static void dbiTagsInit(void)
/*@globals rpmGlobalMacroContext, dbiTags, dbiTagsMax @*/
/*@modifies rpmGlobalMacroContext, dbiTags, dbiTagsMax @*/
*oe++ = '\0';
rpmtag = tagValue(o);
if (rpmtag < 0) {
-
-/*@-modfilesys@*/
- fprintf(stderr, _("dbiTagsInit: unrecognized tag name: \"%s\" ignored\n"), o);
-/*@=modfilesys@*/
+ rpmMessage(RPMMESS_WARNING,
+ _("dbiTagsInit: unrecognized tag name: \"%s\" ignored\n"), o);
continue;
}
if (dbiTagToDbix(rpmtag) >= 0)
dbiTagStr = _free(dbiTagStr);
}
-/*@=bounds@*/
/*@-redecl@*/
#define DB1vec NULL
return dbi;
/*@=compdef@*/
-/*@-globs -mods @*/ /* FIX: rpmGlobalMacroContext not in <rpmlib.h> */
_dbapi_rebuild = rpmExpandNumeric("%{_dbapi_rebuild}");
-/*@=globs =mods @*/
if (_dbapi_rebuild < 1 || _dbapi_rebuild > 3)
_dbapi_rebuild = 3;
_dbapi_wanted = (_rebuildinprogress ? -1 : db->db_api);
if (_dbapi < 0 || _dbapi >= 4 || mydbvecs[_dbapi] == NULL) {
return NULL;
}
- /*@-mods@*/
errno = 0;
- /*@=mods@*/
dbi = NULL;
rc = (*mydbvecs[_dbapi]->open) (db, rpmtag, &dbi);
if (rc) {
while (_dbapi-- > 1) {
if (mydbvecs[_dbapi] == NULL)
continue;
- /*@-mods@*/
errno = 0;
- /*@=mods@*/
dbi = NULL;
rc = (*mydbvecs[_dbapi]->open) (db, rpmtag, &dbi);
if (rc == 0 && dbi)
return rc;
}
-/*@-mods@*/
+/*@-mods@*/ /* FIX: dbTemplate structure assignment */
static /*@only@*/ /*@null@*/
rpmdb newRpmdb(/*@kept@*/ /*@null@*/ const char * root,
/*@kept@*/ /*@null@*/ const char * home,
int mode, int perms, int flags)
/*@globals dbrock, rpmGlobalMacroContext,
fileSystem, internalState @*/
- /*@modifies dbrock, *dbp, fileSystem, internalState @*/
+ /*@modifies dbrock, *dbp, rpmGlobalMacroContext,
+ fileSystem, internalState @*/
/*@requires maxSet(dbp) >= 0 @*/
{
rpmdb db;
int rc, xx;
static int _tags_initialized = 0;
-#ifdef DYING
- static int _dbenv_removed = 0;
-#endif
int justCheck = flags & RPMDB_FLAG_JUSTCHECK;
int minimal = flags & RPMDB_FLAG_MINIMAL;
if (!_tags_initialized || dbiTagsMax == 0) {
- /*@-mods@*/
dbiTagsInit();
- /*@=mods@*/
_tags_initialized++;
}
if (mode & O_WRONLY)
return 1;
- /*@-mods@*/
db = newRpmdb(prefix, dbpath, mode, perms, flags);
- /*@=mods@*/
if (db == NULL)
return 1;
-#ifdef DYING
- if (!_dbenv_removed) {
- static int _enable_cdb = -1;
-
- /* XXX hack in suoport for CDB, otherwise nuke the state. */
- /*@-mods@*/
- if (_enable_cdb < 0)
- _enable_cdb = rpmExpandNumeric("%{?__dbi_cdb:1}");
- /*@=mods@*/
-
- if (!_enable_cdb) {
- char * fn;
- int i;
-
- i = sizeof("//__db.000");
- if (db->db_root) i += strlen(db->db_root);
- if (db->db_home) i += strlen(db->db_home);
- fn = alloca(i);
- for (i = 0; i < 16; i++) {
- sprintf(fn, "%s/%s/__db.%03d",
- (db->db_root ? db->db_root : ""),
- (db->db_home ? db->db_home : ""), i);
- (void) rpmCleanPath(fn);
- (void) unlink(fn);
- }
- }
- _dbenv_removed++;
- }
-#else
(void) enableSignals();
-#endif
db->db_api = _dbapi;
switch (rpmtag) {
case RPMDBI_PACKAGES:
if (dbi == NULL) rc |= 1;
- /* XXX open only Packages, indices created on the fly. */
#if 0
+ /* XXX open only Packages, indices created on the fly. */
if (db->db_api == 3)
#endif
goto exit;
}
/* XXX python/rpmmodule.c */
-/*@-globs@*/ /* FIX: rpmGlobalMacroContext not in <rpmlib.h> */
int rpmdbOpen (const char * prefix, rpmdb *dbp, int mode, int perms)
{
- /*@-mods@*/
int _dbapi = rpmExpandNumeric("%{_dbapi}");
- /*@=mods@*/
/*@-boundswrite@*/
return openDatabase(prefix, NULL, _dbapi, dbp, mode, perms, 0);
/*@=boundswrite@*/
int rpmdbInit (const char * prefix, int perms)
{
rpmdb db = NULL;
- /*@-mods@*/
int _dbapi = rpmExpandNumeric("%{_dbapi}");
- /*@=mods@*/
int rc;
/*@-boundswrite@*/
int rpmdbVerify(const char * prefix)
{
rpmdb db = NULL;
- /*@-mods@*/
int _dbapi = rpmExpandNumeric("%{_dbapi}");
- /*@=mods@*/
int rc = 0;
/*@-boundswrite@*/
}
return rc;
}
-/*@=globs@*/
+/**
+ * Find file matches in database.
+ * @param db rpm database
+ * @param filespec
+ * @param key
+ * @param data
+ * @param matches
+ * @return 0 on success, 1 on not found, -2 on error
+ */
static int rpmdbFindByFile(rpmdb db, /*@null@*/ const char * filespec,
DBT * key, DBT * data, /*@out@*/ dbiIndexSet * matches)
- /*@globals fileSystem @*/
- /*@modifies db, *key, *data, *matches, fileSystem @*/
+ /*@globals rpmGlobalMacroContext, fileSystem @*/
+ /*@modifies db, *key, *data, *matches, rpmGlobalMacroContext,
+ fileSystem @*/
+ /*@requires maxSet(matches) >= 0 @*/
{
HGE_t hge = (HGE_t)headerGetEntryMinMemory;
HFD_t hfd = headerFreeData;
int rc;
int xx;
-/*@-boundswrite@*/
*matches = NULL;
-/*@=boundswrite@*/
if (filespec == NULL) return -2;
/*@-branchstate@*/
return rc;
}
-/*@-boundswrite@*/
*matches = xcalloc(1, sizeof(**matches));
-/*@=boundswrite@*/
rec = dbiIndexNewItem(0, 0);
i = 0;
if (allMatches != NULL)
fpc = fpCacheFree(fpc);
if ((*matches)->count == 0) {
-/*@-boundswrite@*/
*matches = dbiFreeIndexSet(*matches);
-/*@=boundswrite@*/
return 1;
}
/*@null@*/ const char * version,
/*@null@*/ const char * release,
/*@out@*/ dbiIndexSet * matches)
- /*@globals fileSystem @*/
- /*@modifies dbi, *dbcursor, *key, *data, *matches, fileSystem @*/
- /*@requires maxSet(*matches) >= 0 @*/
+ /*@globals rpmGlobalMacroContext, fileSystem @*/
+ /*@modifies dbi, *dbcursor, *key, *data, *matches,
+ rpmGlobalMacroContext, fileSystem @*/
+ /*@requires maxSet(matches) >= 0 @*/
{
int gotMatches = 0;
int rc;
/*@=branchstate@*/
if (gotMatches) {
-/*@-boundswrite@*/
(*matches)->count = gotMatches;
-/*@=boundswrite@*/
rc = RPMRC_OK;
} else
rc = RPMRC_NOTFOUND;
exit:
-/*@-boundswrite@*/
/*@-unqualifiedtrans@*/ /* FIX: double indirection */
if (rc && matches && *matches)
*matches = dbiFreeIndexSet(*matches);
/*@=unqualifiedtrans@*/
-/*@=boundswrite@*/
return rc;
}
*/
static rpmRC dbiFindByLabel(dbiIndex dbi, DBC * dbcursor, DBT * key, DBT * data,
/*@null@*/ const char * arg, /*@out@*/ dbiIndexSet * matches)
- /*@globals fileSystem @*/
- /*@modifies dbi, *dbcursor, *key, *data, *matches, fileSystem @*/
- /*@requires maxSet(*matches) >= 0 @*/
+ /*@globals rpmGlobalMacroContext, fileSystem @*/
+ /*@modifies dbi, *dbcursor, *key, *data, *matches,
+ rpmGlobalMacroContext, fileSystem @*/
+ /*@requires maxSet(matches) >= 0 @*/
{
const char * release;
char * localarg;
rc = dbiFindMatches(dbi, dbcursor, key, data, arg, NULL, NULL, matches);
if (rc != RPMRC_NOTFOUND) return rc;
-/*@-boundswrite@*/
/*@-unqualifiedtrans@*/ /* FIX: double indirection */
*matches = dbiFreeIndexSet(*matches);
/*@=unqualifiedtrans@*/
-/*@=boundswrite@*/
/* maybe a name and a release */
localarg = alloca(strlen(arg) + 1);
/*@-boundswrite@*/
*s = '\0';
+/*@=boundswrite@*/
rc = dbiFindMatches(dbi, dbcursor, key, data, localarg, s + 1, NULL, matches);
/*@=nullstate@*/
-/*@=boundswrite@*/
if (rc != RPMRC_NOTFOUND) return rc;
-/*@-boundswrite@*/
/*@-unqualifiedtrans@*/ /* FIX: double indirection */
*matches = dbiFreeIndexSet(*matches);
/*@=unqualifiedtrans@*/
-/*@=boundswrite@*/
/* how about name-version-release? */
/*@-boundswrite@*/
*s = '\0';
+/*@=boundswrite@*/
/*@-nullstate@*/ /* FIX: *matches may be NULL. */
return dbiFindMatches(dbi, dbcursor, key, data, localarg, s + 1, release, matches);
/*@=nullstate@*/
-/*@=boundswrite@*/
}
typedef struct miRE_s {
/*@-boundsread@*/
if (defmode == (rpmMireMode)-1) {
- /*@-globs -mods @*/
const char *t = rpmExpand("%{?_query_selector_match}", NULL);
- /*@=globs =mods @*/
+
if (*t == '\0' || !strcmp(t, "default"))
defmode = RPMMIRE_DEFAULT;
else if (!strcmp(t, "strcmp"))
/*@-bounds@*/ /* LCL: segfault */
static int rpmdbGrowIterator(/*@null@*/ rpmdbMatchIterator mi, int fpNum)
- /*@globals fileSystem @*/
- /*@modifies mi, fileSystem @*/
+ /*@globals rpmGlobalMacroContext, fileSystem @*/
+ /*@modifies mi, rpmGlobalMacroContext, fileSystem @*/
{
DBC * dbcursor;
DBT * key;
*/
/*@only@*/ /*@null@*/ dbiIndex dbiOpen(/*@null@*/ rpmdb db, rpmTag rpmtag,
unsigned int flags)
- /*@modifies db @*/;
+ /*@globals rpmGlobalMacroContext, errno @*/
+ /*@modifies db, rpmGlobalMacroContext, errno @*/;
/*@-globuse -mustmod @*/ /* FIX: vector annotations */
/** \ingroup dbi
*/
int rpmdbOpen (/*@null@*/ const char * prefix, /*@null@*/ /*@out@*/ rpmdb * dbp,
int mode, int perms)
- /*@globals fileSystem, internalState @*/
- /*@modifies *dbp, fileSystem, internalState @*/;
+ /*@globals rpmGlobalMacroContext, fileSystem, internalState @*/
+ /*@modifies *dbp, rpmGlobalMacroContext, fileSystem, internalState @*/;
/** \ingroup rpmdb
* Initialize database.
* @return 0 on success
*/
int rpmdbInit(/*@null@*/ const char * prefix, int perms)
- /*@globals fileSystem, internalState @*/
- /*@modifies fileSystem, internalState @*/;
+ /*@globals rpmGlobalMacroContext, fileSystem, internalState @*/
+ /*@modifies rpmGlobalMacroContext, fileSystem, internalState @*/;
/** \ingroup rpmdb
* Verify database components.
* @return 0 on success
*/
int rpmdbVerify(/*@null@*/ const char * prefix)
- /*@globals fileSystem, internalState @*/
- /*@modifies fileSystem, internalState @*/;
+ /*@globals rpmGlobalMacroContext, fileSystem, internalState @*/
+ /*@modifies rpmGlobalMacroContext, fileSystem, internalState @*/;
/**
* Close a single database index.
*/
/*@-exportlocal@*/
int rpmdbOpenAll (/*@null@*/ rpmdb db)
- /*@modifies db @*/;
+ /*@globals rpmGlobalMacroContext @*/
+ /*@modifies db, rpmGlobalMacroContext @*/;
/*@=exportlocal@*/
/** \ingroup rpmdb
* @return number of instances
*/
int rpmdbCountPackages(/*@null@*/ rpmdb db, const char * name)
- /*@globals fileSystem @*/
- /*@modifies db, fileSystem @*/;
+ /*@globals rpmGlobalMacroContext, fileSystem @*/
+ /*@modifies db, rpmGlobalMacroContext, fileSystem @*/;
/** \ingroup rpmdb
* Return header join key for current position of rpm database iterator.
*/
int rpmdbSetIteratorRE(/*@null@*/ rpmdbMatchIterator mi, rpmTag tag,
rpmMireMode mode, /*@null@*/ const char * pattern)
- /*@modifies mi, mode @*/;
+ /*@globals rpmGlobalMacroContext @*/
+ /*@modifies mi, mode, rpmGlobalMacroContext @*/;
/** \ingroup rpmdb
* Prepare iterator for lazy writes.
/*@only@*/ /*@null@*/
rpmdbMatchIterator rpmdbInitIterator(/*@null@*/ rpmdb db, rpmTag rpmtag,
/*@null@*/ const void * keyp, size_t keylen)
- /*@globals fileSystem @*/
- /*@modifies db, fileSystem @*/;
+ /*@globals rpmGlobalMacroContext, fileSystem @*/
+ /*@modifies db, rpmGlobalMacroContext, fileSystem @*/;
/** \ingroup rpmdb
* Return next package header from iteration.
*/
/*@null@*/
Header rpmdbNextIterator(/*@null@*/ rpmdbMatchIterator mi)
- /*@globals fileSystem @*/
- /*@modifies mi, fileSystem @*/;
+ /*@globals rpmGlobalMacroContext, fileSystem @*/
+ /*@modifies mi, rpmGlobalMacroContext, fileSystem @*/;
/** \ingroup rpmdb
* Destroy rpm database iterator.
*/
/*@null@*/
rpmdbMatchIterator rpmdbFreeIterator(/*@only@*/ /*@null@*/rpmdbMatchIterator mi)
- /*@globals fileSystem @*/
- /*@modifies mi, fileSystem @*/;
+ /*@globals rpmGlobalMacroContext, fileSystem @*/
+ /*@modifies mi, rpmGlobalMacroContext, fileSystem @*/;
/** \ingroup rpmdb
* Add package header to rpm database and indices.
*/
int rpmdbAdd(/*@null@*/ rpmdb db, int iid, Header h, /*@null@*/ rpmts ts,
/*@null@*/ rpmRC (*hdrchk) (rpmts ts, const void *uh, size_t uc, const char ** msg))
- /*@globals fileSystem @*/
- /*@modifies db, h, fileSystem @*/;
+ /*@globals rpmGlobalMacroContext, fileSystem @*/
+ /*@modifies db, h, rpmGlobalMacroContext, fileSystem @*/;
/** \ingroup rpmdb
* Remove package header from rpm database and indices.
int rpmdbRemove(/*@null@*/ rpmdb db, /*@unused@*/ int rid, unsigned int hdrNum,
/*@null@*/ rpmts ts,
/*@null@*/ rpmRC (*hdrchk) (rpmts ts, const void *uh, size_t uc, const char ** msg))
- /*@globals fileSystem @*/
- /*@modifies db, fileSystem @*/;
+ /*@globals rpmGlobalMacroContext, fileSystem @*/
+ /*@modifies db, rpmGlobalMacroContext, fileSystem @*/;
/** \ingroup rpmdb
* Rebuild database indices from package headers.