From f75d794af48cf4c1f24cbbd972bed3fc7153e610 Mon Sep 17 00:00:00 2001 From: jbj Date: Wed, 19 Apr 2000 22:15:02 +0000 Subject: [PATCH] Change iterator interface to use RPMTAG_FOO rather than RPMDBI_FOO. CVS patchset: 3687 CVS date: 2000/04/19 22:15:02 --- lib/db0.c | 14 +-- lib/db1.c | 6 +- lib/db2.c | 6 +- lib/db3.c | 27 ++++-- lib/depends.c | 14 +-- lib/install.c | 2 +- lib/query.c | 16 ++-- lib/rebuilddb.c | 5 +- lib/rpmdb.c | 223 +++++++++++++++++++++++++++++---------------- lib/rpmdb.h | 2 +- lib/rpmlib.h | 8 -- lib/transaction.c | 2 +- lib/uninstall.c | 4 +- po/rpm.pot | 114 +++++++++++------------ python/rpmmodule.c | 9 +- python/upgrade.c | 9 +- tools/dumpdb.c | 3 +- 17 files changed, 267 insertions(+), 197 deletions(-) diff --git a/lib/db0.c b/lib/db0.c index c4c64b554..a3a14ae7d 100644 --- a/lib/db0.c +++ b/lib/db0.c @@ -599,8 +599,8 @@ static int db0open(dbiIndex dbi) DB_INFO * dbinfo = NULL; u_int32_t dbflags; - dbflags = ( !(dbi->dbi_flags & O_RDWR) ? DB_RDONLY : - ((dbi->dbi_flags & O_CREAT) ? DB_CREATE : 0)); + dbflags = ( !(dbi->dbi_mode & O_RDWR) ? DB_RDONLY : + ((dbi->dbi_mode & O_CREAT) ? DB_CREATE : 0)); rc = db_init(dbhome, dbflags, &dbenv, &dbinfo); dbi->dbi_dbenv = dbenv; @@ -619,9 +619,9 @@ static int db0open(dbiIndex dbi) FD_t pkgs; rpmMessage(RPMMESS_DEBUG, _("opening database mode 0x%x in %s\n"), - dbi->dbi_flags, dbi->dbi_file); + dbi->dbi_mode, dbi->dbi_file); - pkgs = fadOpen(dbi->dbi_file, dbi->dbi_flags, dbi->dbi_perms); + pkgs = fadOpen(dbi->dbi_file, dbi->dbi_mode, dbi->dbi_perms); if (Ferror(pkgs)) { rpmError(RPMERR_DBOPEN, _("failed to open %s: %s\n"), dbi->dbi_file, Fstrerror(pkgs)); @@ -631,11 +631,11 @@ static int db0open(dbiIndex dbi) l.l_whence = 0; l.l_start = 0; l.l_len = 0; - l.l_type = (dbi->dbi_flags & O_RDWR) ? F_WRLCK : F_RDLCK; + l.l_type = (dbi->dbi_mode & O_RDWR) ? F_WRLCK : F_RDLCK; if (Fcntl(pkgs, F_SETLK, (void *) &l)) { rpmError(RPMERR_FLOCK, _("cannot get %s lock on database"), - ((dbi->dbi_flags & O_RDWR) ? _("exclusive") : _("shared"))); + ((dbi->dbi_mode & O_RDWR) ? _("exclusive") : _("shared"))); return 1; } @@ -644,7 +644,7 @@ static int db0open(dbiIndex dbi) } else { void * dbopeninfo = NULL; - dbi->dbi_db = dbopen(dbi->dbi_file, dbi->dbi_flags, dbi->dbi_perms, + dbi->dbi_db = dbopen(dbi->dbi_file, dbi->dbi_mode, dbi->dbi_perms, dbi_to_dbtype(dbi->dbi_type), dbopeninfo); } #endif diff --git a/lib/db1.c b/lib/db1.c index c39d61563..cb9b9f141 100644 --- a/lib/db1.c +++ b/lib/db1.c @@ -439,8 +439,8 @@ static int db1open(dbiIndex dbi) DB_INFO * dbinfo = NULL; u_int32_t dbflags; - dbflags = ( !(dbi->dbi_flags & O_RDWR) ? DB_RDONLY : - ((dbi->dbi_flags & O_CREAT) ? DB_CREATE : 0)); + dbflags = ( !(dbi->dbi_mode & O_RDWR) ? DB_RDONLY : + ((dbi->dbi_mode & O_CREAT) ? DB_CREATE : 0)); rc = db_init(dbhome, dbflags, &dbenv, &dbinfo); dbi->dbi_dbenv = dbenv; @@ -454,7 +454,7 @@ static int db1open(dbiIndex dbi) dbi->dbi_db = NULL; #else void * dbopeninfo = NULL; - dbi->dbi_db = dbopen(dbi->dbi_file, dbi->dbi_flags, dbi->dbi_perms, + dbi->dbi_db = dbopen(dbi->dbi_file, dbi->dbi_mode, dbi->dbi_perms, dbi_to_dbtype(dbi->dbi_type), dbopeninfo); #endif diff --git a/lib/db2.c b/lib/db2.c index 4dd3e8d23..c6872c375 100644 --- a/lib/db2.c +++ b/lib/db2.c @@ -581,8 +581,8 @@ static int db2open(dbiIndex dbi) else dbfile = dbhome; - dbflags = ( !(dbi->dbi_flags & O_RDWR) ? DB_RDONLY : - ((dbi->dbi_flags & O_CREAT) ? DB_CREATE : 0)); + dbflags = ( !(dbi->dbi_mode & O_RDWR) ? DB_RDONLY : + ((dbi->dbi_mode & O_CREAT) ? DB_CREATE : 0)); rc = db_init(dbi, dbhome, dbflags, &dbenv, &dbinfo); @@ -612,7 +612,7 @@ static int db2open(dbiIndex dbi) #else void * dbopeninfo = NULL; - dbi->dbi_db = dbopen(dbfile, dbi->dbi_flags, dbi->dbi_perms, + dbi->dbi_db = dbopen(dbfile, dbi->dbi_mode, dbi->dbi_perms, dbi_to_dbtype(dbi->dbi_type), dbopeninfo); #endif /* __USE_DB2 || __USE_DB3 */ diff --git a/lib/db3.c b/lib/db3.c index 24938eabb..e9d9aff0b 100644 --- a/lib/db3.c +++ b/lib/db3.c @@ -1,7 +1,7 @@ #include "system.h" static int _debug = 1; /* XXX if < 0 debugging, > 0 unusual error returns */ -static int _use_cursors = 0; +static int __use_cursors = 0; static int __do_dbcursor_rmw = 0; #include @@ -479,7 +479,7 @@ static int db3SearchIndex(dbiIndex dbi, const void * str, size_t len, #if defined(__USE_DB2) || defined(__USE_DB3) { DB_TXN * txnid = NULL; - if (!_use_cursors) { + if (!__use_cursors) { int _printit; rc = db->get(db, txnid, &key, &data, 0); _printit = (rc == DB_NOTFOUND ? 0 : _debug); @@ -616,7 +616,7 @@ static int db3UpdateIndex(dbiIndex dbi, const char * str, dbiIndexSet set) } #if defined(__USE_DB2) || defined(__USE_DB3) - if (!_use_cursors) { + if (!__use_cursors) { rc = db->put(db, txnid, &key, &data, 0); rc = cvtdberr(dbi, "db->put", rc, _debug); } else { @@ -638,7 +638,7 @@ static int db3UpdateIndex(dbiIndex dbi, const char * str, dbiIndexSet set) } else { #if defined(__USE_DB2) || defined(__USE_DB3) - if (!_use_cursors) { + if (!__use_cursors) { rc = db->del(db, txnid, &key, 0); rc = cvtdberr(dbi, "db->del", rc, _debug); } else { @@ -648,7 +648,7 @@ static int db3UpdateIndex(dbiIndex dbi, const char * str, dbiIndexSet set) if (rc) return rc; - rc = db3c_get(dbi, dbcursor, &key, &data, DB_RMW | DB_SET); + rc = db3c_get(dbi, dbcursor, &key, &data, DB_SET); /* XXX TODO: loop over duplicates */ rc = db3c_del(dbi, dbcursor, 0); @@ -881,8 +881,8 @@ static int db3open(dbiIndex dbi) else dbfile = dbhome; - dbflags = ( !(dbi->dbi_flags & O_RDWR) ? DB_RDONLY : - ((dbi->dbi_flags & O_CREAT) ? DB_CREATE : 0)); + dbflags = ( !(dbi->dbi_mode & O_RDWR) ? DB_RDONLY : + ((dbi->dbi_mode & O_CREAT) ? DB_CREATE : 0)); rc = db_init(dbi, dbhome, dbflags, &dbenv); dbi->dbi_dbinfo = NULL; @@ -925,10 +925,17 @@ static int db3open(dbiIndex dbi) rc = cvtdberr(dbi, "db->set_dup_compare", rc, _debug); } dbi->dbi_dbinfo = NULL; - rc = db->open(db, "packages.db3", dbfile, dbi_to_dbtype(dbi->dbi_type), - dbflags, dbi->dbi_perms); +#ifndef DYING /* XXX FIXME */ + rc = db->open(db, "packages.db3", dbfile, + dbi_to_dbtype(dbi->dbi_type), dbflags, dbi->dbi_perms); +#else + rc = db->open(db, "packages.db3", + (dbi->dbi_rpmtag ? tagName(dbi->dbi_rpmtag) : "Packages"), + dbi_to_dbtype(dbi->dbi_type), dbflags, dbi->dbi_perms); +#endif rc = cvtdberr(dbi, "db->open", rc, _debug); + __use_cursors = rpmExpandNumeric("%{_db3_use_cursors}"); __do_dbcursor_rmw = rpmExpandNumeric("%{_db3_dbcursor_rmw}"); if (__do_dbcursor_rmw) { DBC * dbcursor = NULL; @@ -965,7 +972,7 @@ static int db3open(dbiIndex dbi) #else /* __USE_DB2 || __USE_DB3 */ void * dbopeninfo = NULL; - dbi->dbi_db = dbopen(dbfile, dbi->dbi_flags, dbi->dbi_perms, + dbi->dbi_db = dbopen(dbfile, dbi->dbi_mode, dbi->dbi_perms, dbi_to_dbtype(dbi->dbi_type), dbopeninfo); #endif /* __USE_DB2 || __USE_DB3 */ diff --git a/lib/depends.c b/lib/depends.c index a09179943..31f4d8e04 100644 --- a/lib/depends.c +++ b/lib/depends.c @@ -647,7 +647,7 @@ int rpmtransAddPackage(rpmTransactionSet rpmdep, Header h, FD_t fd, { rpmdbMatchIterator mi; Header h2; - mi = rpmdbInitIterator(rpmdep->db, RPMDBI_NAME, name, 0); + mi = rpmdbInitIterator(rpmdep->db, RPMTAG_NAME, name, 0); while((h2 = rpmdbNextIterator(mi)) != NULL) { if (rpmVersionCompare(h, h2)) removePackage(rpmdep, rpmdbGetIteratorOffset(mi), alNum); @@ -677,7 +677,7 @@ int rpmtransAddPackage(rpmTransactionSet rpmdep, Header h, FD_t fd, { rpmdbMatchIterator mi; Header h2; - mi = rpmdbInitIterator(rpmdep->db, RPMDBI_NAME, obsoletes[j], 0); + mi = rpmdbInitIterator(rpmdep->db, RPMTAG_NAME, obsoletes[j], 0); while((h2 = rpmdbNextIterator(mi)) != NULL) { unsigned int recOffset = rpmdbGetIteratorOffset(mi); if (bsearch(&recOffset, @@ -908,7 +908,7 @@ static int unsatisfiedDepend(rpmTransactionSet rpmdep, if (*keyName == '/') { /* keyFlags better be 0! */ - mi = rpmdbInitIterator(rpmdep->db, RPMDBI_FILE, keyName, 0); + mi = rpmdbInitIterator(rpmdep->db, RPMTAG_BASENAMES, keyName, 0); while ((h = rpmdbNextIterator(mi)) != NULL) { unsigned int recOffset = rpmdbGetIteratorOffset(mi); if (bsearch(&recOffset, @@ -925,7 +925,7 @@ static int unsatisfiedDepend(rpmTransactionSet rpmdep, } } - mi = rpmdbInitIterator(rpmdep->db, RPMDBI_PROVIDES, keyName, 0); + mi = rpmdbInitIterator(rpmdep->db, RPMTAG_PROVIDENAME, keyName, 0); while ((h = rpmdbNextIterator(mi)) != NULL) { unsigned int recOffset = rpmdbGetIteratorOffset(mi); if (bsearch(&recOffset, @@ -943,7 +943,7 @@ static int unsatisfiedDepend(rpmTransactionSet rpmdep, } #ifdef DYING - mi = rpmdbInitIterator(rpmdep->db, RPMDBI_NAME, keyName, 0); + mi = rpmdbInitIterator(rpmdep->db, RPMTAG_NAME, keyName, 0); while ((h = rpmdbNextIterator(mi)) != NULL) { unsigned int recOffset = rpmdbGetIteratorOffset(mi); if (bsearch(&recOffset, @@ -1156,7 +1156,7 @@ static int checkDependentPackages(rpmTransactionSet rpmdep, struct problemsSet * psp, const char * key) { rpmdbMatchIterator mi; - mi = rpmdbInitIterator(rpmdep->db, RPMDBI_REQUIREDBY, key, 0); + mi = rpmdbInitIterator(rpmdep->db, RPMTAG_REQUIRENAME, key, 0); return checkPackageSet(rpmdep, psp, key, mi); } @@ -1168,7 +1168,7 @@ static int checkDependentConflicts(rpmTransactionSet rpmdep, if (rpmdep->db) { /* XXX is this necessary? */ rpmdbMatchIterator mi; - mi = rpmdbInitIterator(rpmdep->db, RPMDBI_CONFLICTS, key, 0); + mi = rpmdbInitIterator(rpmdep->db, RPMTAG_CONFLICTNAME, key, 0); rc = checkPackageSet(rpmdep, psp, key, mi); } diff --git a/lib/install.c b/lib/install.c index 2684f6fa6..e44e36ea5 100644 --- a/lib/install.c +++ b/lib/install.c @@ -717,7 +717,7 @@ int installBinaryPackage(const char * rootdir, rpmdb db, FD_t fd, Header h, scriptArg += 1; { rpmdbMatchIterator mi; - mi = rpmdbInitIterator(db, RPMDBI_NAME, name, 0); + mi = rpmdbInitIterator(db, RPMTAG_NAME, name, 0); rpmdbSetIteratorVersion(mi, version); rpmdbSetIteratorRelease(mi, release); while (rpmdbNextIterator(mi)) { diff --git a/lib/query.c b/lib/query.c index 542e6fdf9..2e1f177a0 100644 --- a/lib/query.c +++ b/lib/query.c @@ -576,7 +576,8 @@ int rpmQueryVerify(QVA_t *qva, enum rpmQVSources source, const char * arg, } break; case RPMQV_ALL: - mi = rpmdbInitIterator(db, RPMDBI_PACKAGES, NULL, 0); + /* RPMDBI_PACKAGES */ + mi = rpmdbInitIterator(db, 0, NULL, 0); if (mi == NULL) { fprintf(stderr, _("no packages\n")); retcode = 1; @@ -586,7 +587,7 @@ int rpmQueryVerify(QVA_t *qva, enum rpmQVSources source, const char * arg, break; case RPMQV_GROUP: - mi = rpmdbInitIterator(db, RPMDBI_GROUP, arg, 0); + mi = rpmdbInitIterator(db, RPMTAG_GROUP, arg, 0); if (mi == NULL) { fprintf(stderr, _("group %s does not contain any packages\n"), arg); retcode = 1; @@ -596,7 +597,7 @@ int rpmQueryVerify(QVA_t *qva, enum rpmQVSources source, const char * arg, break; case RPMQV_TRIGGEREDBY: - mi = rpmdbInitIterator(db, RPMDBI_TRIGGER, arg, 0); + mi = rpmdbInitIterator(db, RPMTAG_TRIGGERNAME, arg, 0); if (mi == NULL) { fprintf(stderr, _("no package triggers %s\n"), arg); retcode = 1; @@ -606,7 +607,7 @@ int rpmQueryVerify(QVA_t *qva, enum rpmQVSources source, const char * arg, break; case RPMQV_WHATREQUIRES: - mi = rpmdbInitIterator(db, RPMDBI_REQUIREDBY, arg, 0); + mi = rpmdbInitIterator(db, RPMTAG_REQUIRENAME, arg, 0); if (mi == NULL) { fprintf(stderr, _("no package requires %s\n"), arg); retcode = 1; @@ -617,7 +618,7 @@ int rpmQueryVerify(QVA_t *qva, enum rpmQVSources source, const char * arg, case RPMQV_WHATPROVIDES: if (arg[0] != '/') { - mi = rpmdbInitIterator(db, RPMDBI_PROVIDES, arg, 0); + mi = rpmdbInitIterator(db, RPMTAG_PROVIDENAME, arg, 0); if (mi == NULL) { fprintf(stderr, _("no package provides %s\n"), arg); retcode = 1; @@ -628,7 +629,7 @@ int rpmQueryVerify(QVA_t *qva, enum rpmQVSources source, const char * arg, } /*@fallthrough@*/ case RPMQV_PATH: - mi = rpmdbInitIterator(db, RPMDBI_FILE, arg, 0); + mi = rpmdbInitIterator(db, RPMTAG_BASENAMES, arg, 0); if (mi == NULL) { int myerrno = 0; if (access(arg, F_OK) != 0) @@ -664,7 +665,8 @@ int rpmQueryVerify(QVA_t *qva, enum rpmQVSources source, const char * arg, return 1; } rpmMessage(RPMMESS_DEBUG, _("package record number: %d\n"), recNumber); - mi = rpmdbInitIterator(db, RPMDBI_PACKAGES, &recNumber, sizeof(recNumber)); + /* RPMDBI_PACKAGES */ + mi = rpmdbInitIterator(db, 0, &recNumber, sizeof(recNumber)); if (mi == NULL) { fprintf(stderr, _("record %d could not be read\n"), recNumber); retcode = 1; diff --git a/lib/rebuilddb.c b/lib/rebuilddb.c index 138d2d844..8f0f8a26c 100644 --- a/lib/rebuilddb.c +++ b/lib/rebuilddb.c @@ -99,7 +99,8 @@ fprintf(stderr, "*** rpmdbRebuild: filterdbdups %d preferdb %d\n", _filterDbDups rpmdbMatchIterator mi; #define _RECNUM rpmdbGetIteratorOffset(mi) - mi = rpmdbInitIterator(olddb, RPMDBI_PACKAGES, NULL, 0); + /* RPMDBI_PACKAGES */ + mi = rpmdbInitIterator(olddb, 0, NULL, 0); while ((h = rpmdbNextIterator(mi)) != NULL) { /* let's sanity check this record a bit, otherwise just skip it */ @@ -122,7 +123,7 @@ fprintf(stderr, "*** rpmdbRebuild: filterdbdups %d preferdb %d\n", _filterDbDups headerNVR(h, &name, &version, &release); { rpmdbMatchIterator mi; - mi = rpmdbInitIterator(newdb, RPMDBI_NAME, name, 0); + mi = rpmdbInitIterator(newdb, RPMTAG_NAME, name, 0); rpmdbSetIteratorVersion(mi, version); rpmdbSetIteratorRelease(mi, release); while (rpmdbNextIterator(mi)) { diff --git a/lib/rpmdb.c b/lib/rpmdb.c index 891a0949a..82f3ee917 100644 --- a/lib/rpmdb.c +++ b/lib/rpmdb.c @@ -19,7 +19,8 @@ static int _debug = 0; #include "misc.h" extern int _noDirTokens; -extern int _useDbiMajor; + +int _useDbiMajor = 3; /* XXX shared with rebuilddb.c */ #define _DBI_FLAGS 0 #define _DBI_PERMS 0644 @@ -50,11 +51,36 @@ struct _dbiIndex rpmdbi[] = { { "triggerindex.rpm", RPMTAG_TRIGGERNAME, 1*sizeof(int_32), DBI_HASH, _DBI_FLAGS, _DBI_PERMS, _DBI_MAJOR, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL }, + { "obsoletesindex.rpm", RPMTAG_OBSOLETENAME, 1*sizeof(int_32), + DBI_HASH, _DBI_FLAGS, _DBI_PERMS, _DBI_MAJOR, 0, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL }, + { "versionindex.rpm", RPMTAG_VERSION, 1*sizeof(int_32), + DBI_HASH, _DBI_FLAGS, _DBI_PERMS, _DBI_MAJOR, 0, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL }, + { "releaseindex.rpm", RPMTAG_RELEASE, 1*sizeof(int_32), + DBI_HASH, _DBI_FLAGS, _DBI_PERMS, _DBI_MAJOR, 0, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL }, { NULL } #define RPMDBI_MIN 0 -#define RPMDBI_MAX 8 +#define RPMDBI_MAX 11 }; +/** + * Return dbi index used for rpm tag. + * @param rpmtag rpm header tag + * @return dbi index, -1 on error + */ +static int dbiTagToDbix(int rpmtag) +{ + int dbix; + + for (dbix = RPMDBI_MIN; dbix < RPMDBI_MAX; dbix++) { + if (rpmtag == rpmdbi[dbix].dbi_rpmtag) + return dbix; + } + return -1; +} + #define dbiSyncIndex(_dbi) (*(_dbi)->dbi_vec->sync) ((_dbi), 0); /** @@ -243,35 +269,41 @@ static void freeDBI( /*@only@*/ /*@null@*/ dbiIndex dbi) { } } -int _useDbiMajor = 3; /* XXX shared with rebuilddb.c/rpmdb.c */ - static struct _dbiVec *mydbvecs[] = { DB0vec, DB1vec, DB2vec, DB3vec, NULL }; /** * Return handle for an index database. - * @param filename file name of database - * @param flags type of open - * @param dbiTemplate template to initialize new dbiIndex + * @param rpmdb rpm database + * @param dbix dbi template to use * @return index database handle */ -static dbiIndex dbiOpenIndex(rpmdb rpmdb, const char * urlfn, int flags, const dbiIndex dbiTemplate) +static int dbiOpenIndex(rpmdb rpmdb, int dbix) { - dbiIndex dbi; - const char * filename; + dbiIndex dbiTemplate = rpmdbi + dbix; + const char * urlfn; + const char * filename = NULL; + dbiIndex dbi = NULL; int rc = 0; + /* Is this index already open ? */ + if (rpmdb->_dbi[dbix]) + return 0; + if (dbix < 0 || dbix >= RPMDBI_MAX) + return 1; + + urlfn = rpmGenPath(rpmdb->db_root, rpmdb->db_home, dbiTemplate->dbi_basename); (void) urlPath(urlfn, &filename); - if (*filename == '\0') { + if (!(filename && *filename != '\0')) { rpmError(RPMERR_DBOPEN, _("bad db file %s"), urlfn); - return NULL; + goto exit; } dbi = newDBI(dbiTemplate); dbi->dbi_file = xstrdup(filename); - dbi->dbi_flags = flags; - dbi->dbi_major = _useDbiMajor; + dbi->dbi_mode = rpmdb->db_mode; + dbi->dbi_major = rpmdb->db_major; dbi->dbi_rpmdb = rpmdb; switch (dbi->dbi_major) { @@ -313,17 +345,25 @@ fprintf(stderr, "*** loop db%d rc %d errno %d %s\n", dbi->dbi_major, rc, errno, dbi->dbi_major--; /* XXX don't bother with db_185 */ } } - _useDbiMajor = dbi->dbi_major; + if (rpmdb->db_major == -1) + rpmdb->db_major = dbi->dbi_major; break; } - if (rc) { + if (rc == 0) { + rpmdb->_dbi[dbix] = dbi; + } else { rpmError(RPMERR_DBOPEN, _("cannot open file %s: %s"), urlfn, strerror(errno)); freeDBI(dbi); dbi = NULL; } - return dbi; +exit: + if (urlfn) { + xfree(urlfn); + urlfn = NULL; + } + return rc; } /** @@ -454,6 +494,7 @@ static /*@only@*/ rpmdb newRpmdb(const char * root, const char * home, } if (db->db_errpfx) db->db_errpfx = xstrdup(db->db_errpfx); + db->db_major = _useDbiMajor; db->db_ndbi = RPMDBI_MAX; return db; @@ -467,7 +508,7 @@ errxit: int openDatabase(const char * prefix, const char * dbpath, rpmdb *dbp, int mode, int perms, int flags) { - rpmdb db; + rpmdb rpmdb; int rc; int justCheck = flags & RPMDB_FLAG_JUSTCHECK; int minimal = flags & RPMDB_FLAG_MINIMAL; @@ -477,29 +518,25 @@ int openDatabase(const char * prefix, const char * dbpath, rpmdb *dbp, if (mode & O_WRONLY) return 1; - db = newRpmdb(prefix, dbpath, mode, perms, flags); + rpmdb = newRpmdb(prefix, dbpath, mode, perms, flags); { int dbix; rc = 0; - for (dbix = RPMDBI_MIN; rc == 0 && dbix < db->db_ndbi; dbix++) { - dbiIndex dbiTemplate; + for (dbix = RPMDBI_MIN; rc == 0 && dbix < RPMDBI_MAX; dbix++) { dbiIndex dbi; - const char * filename; - dbiTemplate = rpmdbi + dbix; + if (!justCheck) + (void) dbiOpenIndex(rpmdb, dbix); - filename = rpmGenPath(db->db_root, db->db_home, - dbiTemplate->dbi_basename); - - if (!justCheck || !rpmfileexists(filename)) { - db->_dbi[dbix] = dbiOpenIndex(db, filename, db->db_mode, dbiTemplate); - } - - if ((dbi = db->_dbi[dbix]) == NULL) + if ((dbi = rpmdb->_dbi[dbix]) == NULL) continue; switch (dbix) { + case 0: + if (rpmdb->db_major == 3) + goto exit; + break; case 1: if (minimal) goto exit; @@ -535,9 +572,9 @@ int openDatabase(const char * prefix, const char * dbpath, rpmdb *dbp, exit: if (!(rc || justCheck || dbp == NULL)) - *dbp = db; + *dbp = rpmdb; else - rpmdbClose(db); + rpmdbClose(rpmdb); return rc; } @@ -556,34 +593,38 @@ int rpmdbOpen (const char * prefix, rpmdb *dbp, int mode, int perms) int rpmdbInit (const char * prefix, int perms) { - rpmdb db; + rpmdb rpmdb = NULL; int rc; - rc = openDatabase(prefix, NULL, &db, (O_CREAT | O_RDWR), perms, RPMDB_FLAG_JUSTCHECK); - if (db) { - rpmdbClose(db); - db = NULL; + rc = openDatabase(prefix, NULL, &rpmdb, (O_CREAT | O_RDWR), perms, RPMDB_FLAG_JUSTCHECK); + if (rpmdb) { + rpmdbClose(rpmdb); + rpmdb = NULL; } return rc; } /* XXX depends.c, install.c, query.c, transaction.c, uninstall.c */ -Header rpmdbGetRecord(rpmdb db, unsigned int offset) +Header rpmdbGetRecord(rpmdb rpmdb, unsigned int offset) { - dbiIndex dbi = db->_dbi[RPMDBI_PACKAGES]; + int dbix; + dbiIndex dbi; void * uh; size_t uhlen; void * keyp = &offset; size_t keylen = sizeof(offset); int rc; + dbix = 0; /* RPMDBI_PACKAGES */ + (void) dbiOpenIndex(rpmdb, dbix); + dbi = rpmdb->_dbi[dbix]; rc = (*dbi->dbi_vec->get) (dbi, keyp, keylen, &uh, &uhlen); if (rc) return NULL; return headerLoad(uh); } -static int rpmdbFindByFile(rpmdb db, const char * filespec, +static int rpmdbFindByFile(rpmdb rpmdb, const char * filespec, /*@out@*/ dbiIndexSet * matches) { const char * dirName; @@ -592,6 +633,7 @@ static int rpmdbFindByFile(rpmdb db, const char * filespec, fingerPrint fp1; dbiIndexSet allMatches = NULL; dbiIndexRecord rec = NULL; + int dbix; int i; int rc; @@ -613,7 +655,8 @@ static int rpmdbFindByFile(rpmdb db, const char * filespec, fpc = fpCacheCreate(20); fp1 = fpLookup(fpc, dirName, baseName, 1); - rc = dbiSearchIndex(db->_dbi[RPMDBI_FILE], baseName, 0, &allMatches); + dbix = dbiTagToDbix(RPMTAG_BASENAMES); + rc = dbiSearchIndex(rpmdb->_dbi[dbix], baseName, 0, &allMatches); if (rc) { dbiFreeIndexSet(allMatches); allMatches = NULL; @@ -631,7 +674,7 @@ static int rpmdbFindByFile(rpmdb db, const char * filespec, unsigned int prevoff; Header h; - if ((h = rpmdbGetRecord(db, offset)) == NULL) { + if ((h = rpmdbGetRecord(rpmdb, offset)) == NULL) { i++; continue; } @@ -686,12 +729,14 @@ static int rpmdbFindByFile(rpmdb db, const char * filespec, } /* XXX python/upgrade.c, install.c, uninstall.c */ -int rpmdbCountPackages(rpmdb db, const char * name) +int rpmdbCountPackages(rpmdb rpmdb, const char * name) { dbiIndexSet matches = NULL; + int dbix; int rc; - rc = dbiSearchIndex(db->_dbi[RPMDBI_NAME], name, 0, &matches); + dbix = dbiTagToDbix(RPMTAG_NAME); + rc = dbiSearchIndex(rpmdb->_dbi[dbix], name, 0, &matches); switch (rc) { default: @@ -717,7 +762,7 @@ int rpmdbCountPackages(rpmdb db, const char * name) struct _rpmdbMatchIterator { const void * mi_key; size_t mi_keylen; - rpmdb mi_db; + rpmdb mi_rpmdb; dbiIndex mi_dbi; int mi_dbix; dbiIndexSet mi_set; @@ -751,7 +796,8 @@ void rpmdbFreeIterator(rpmdbMatchIterator mi) dbiFreeIndexSet(mi->mi_set); mi->mi_set = NULL; } else { - dbiIndex dbi = mi->mi_db->_dbi[RPMDBI_PACKAGES]; + int dbix = 0; /* RPMDBI_PACKAGES */ + dbiIndex dbi = mi->mi_rpmdb->_dbi[dbix]; (void) (*dbi->dbi_vec->cclose) (dbi); } if (mi->mi_key) { @@ -802,6 +848,7 @@ void rpmdbSetIteratorVersion(rpmdbMatchIterator mi, const char * version) { Header rpmdbNextIterator(rpmdbMatchIterator mi) { dbiIndex dbi; + int dbix; void * uh; size_t uhlen; void * keyp; @@ -811,7 +858,9 @@ Header rpmdbNextIterator(rpmdbMatchIterator mi) if (mi == NULL) return NULL; - dbi = mi->mi_db->_dbi[RPMDBI_PACKAGES]; + dbix = 0; /* RPMDBI_PACKAGES */ + (void) dbiOpenIndex(mi->mi_rpmdb, dbix); + dbi = mi->mi_rpmdb->_dbi[dbix]; keyp = &mi->mi_offset; keylen = sizeof(mi->mi_offset); @@ -821,7 +870,7 @@ top: if (mi->mi_set) { if (!(mi->mi_setx < mi->mi_set->count)) return NULL; - if (mi->mi_dbix != RPMDBI_PACKAGES) { + if (mi->mi_dbix != 0) { /* RPMDBI_PACKAGES */ mi->mi_offset = dbiIndexRecordOffset(mi->mi_set, mi->mi_setx); mi->mi_filenum = dbiIndexRecordFileNumber(mi->mi_set, mi->mi_setx); } @@ -907,7 +956,7 @@ static int rpmdbGrowIterator(rpmdbMatchIterator mi, if (!(mi && key)) return 1; - dbi = mi->mi_db->_dbi[mi->mi_dbix]; + dbi = mi->mi_rpmdb->_dbi[mi->mi_dbix]; if (keylen == 0) keylen = strlen(key); @@ -941,18 +990,24 @@ static int rpmdbGrowIterator(rpmdbMatchIterator mi, return rc; } -rpmdbMatchIterator rpmdbInitIterator(rpmdb db, int dbix, const void * key, size_t keylen) +rpmdbMatchIterator rpmdbInitIterator(rpmdb rpmdb, int rpmtag, + const void * key, size_t keylen) { - rpmdbMatchIterator mi; - dbiIndex dbi = NULL; + rpmdbMatchIterator mi = NULL; dbiIndexSet set = NULL; + dbiIndex dbi; + int dbix = dbiTagToDbix(rpmtag); - dbi = db->_dbi[dbix]; + if (dbix < 0) + return NULL; + (void) dbiOpenIndex(rpmdb, dbix); + if ((dbi = rpmdb->_dbi[dbix]) == NULL) + return NULL; if (key) { int rc; - if (dbix == RPMDBI_FILE) { - rc = rpmdbFindByFile(db, key, &set); + if (rpmtag == RPMTAG_BASENAMES) { + rc = rpmdbFindByFile(rpmdb, key, &set); } else { rc = dbiSearchIndex(dbi, key, keylen, &set); } @@ -985,7 +1040,7 @@ rpmdbMatchIterator rpmdbInitIterator(rpmdb db, int dbix, const void * key, size_ mi->mi_key = NULL; mi->mi_keylen = 0; } - mi->mi_db = db; + mi->mi_rpmdb = rpmdb; mi->mi_dbi = dbi; /* XXX falloc has dbi == NULL ) */ @@ -1046,11 +1101,11 @@ static inline int removeIndexEntry(dbiIndex dbi, const char * key, dbiIndexRecor } /* XXX uninstall.c */ -int rpmdbRemove(rpmdb db, unsigned int offset, int tolerant) +int rpmdbRemove(rpmdb rpmdb, unsigned int offset, int tolerant) { Header h; - h = rpmdbGetRecord(db, offset); + h = rpmdbGetRecord(rpmdb, offset); if (h == NULL) { rpmError(RPMERR_DBCORRUPT, _("rpmdbRemove: cannot read header at 0x%x"), offset); @@ -1067,13 +1122,15 @@ int rpmdbRemove(rpmdb db, unsigned int offset, int tolerant) { int dbix; dbiIndexRecord rec = dbiReturnIndexRecordInstance(offset, 0); - for (dbix = RPMDBI_MIN; dbix < db->db_ndbi; dbix++) { + for (dbix = RPMDBI_MIN; dbix < rpmdb->db_ndbi; dbix++) { dbiIndex dbi; const char **rpmvals = NULL; int rpmtype = 0; int rpmcnt = 0; - dbi = db->_dbi[dbix]; + /* XXX FIXME: this forces all indices open */ + (void) dbiOpenIndex(rpmdb, dbix); + dbi = rpmdb->_dbi[dbix]; if (dbi->dbi_rpmtag == 0) { (void) (*dbi->dbi_vec->del) (dbi, &offset, sizeof(offset)); @@ -1186,12 +1243,13 @@ static inline int addIndexEntry(dbiIndex dbi, const char *index, dbiIndexRecord } /* XXX install.c, rebuilddb.c */ -int rpmdbAdd(rpmdb db, Header h) +int rpmdbAdd(rpmdb rpmdb, Header h) { const char ** baseNames; int count = 0; int type; dbiIndex dbi; + int dbix; unsigned int offset; int rc = 0; @@ -1216,7 +1274,9 @@ int rpmdbAdd(rpmdb db, Header h) size_t datalen = 0; int rc; - dbi = db->_dbi[RPMDBI_PACKAGES]; + dbix = 0; /* RPMDBI_PACKAGES */ + (void) dbiOpenIndex(rpmdb, dbix); + dbi = rpmdb->_dbi[dbix]; /* XXX hack to pass sizeof header to fadAlloc */ datap = h; @@ -1248,15 +1308,16 @@ int rpmdbAdd(rpmdb db, Header h) /* Now update the indexes */ - { int dbix; - dbiIndexRecord rec = dbiReturnIndexRecordInstance(offset, 0); + { dbiIndexRecord rec = dbiReturnIndexRecordInstance(offset, 0); - for (dbix = RPMDBI_MIN; dbix < db->db_ndbi; dbix++) { + for (dbix = RPMDBI_MIN; dbix < rpmdb->db_ndbi; dbix++) { const char **rpmvals = NULL; int rpmtype = 0; int rpmcnt = 0; - dbi = db->_dbi[dbix]; + /* XXX FIXME: this forces all indices open */ + (void) dbiOpenIndex(rpmdb, dbix); + dbi = rpmdb->_dbi[dbix]; if (dbi->dbi_rpmtag == 0) { size_t uhlen = headerSizeof(h, HEADER_MAGIC_NO); @@ -1363,14 +1424,14 @@ exit: } /* XXX install.c */ -int rpmdbUpdateRecord(rpmdb db, int offset, Header newHeader) +int rpmdbUpdateRecord(rpmdb rpmdb, int offset, Header newHeader) { int rc = 0; - if (rpmdbRemove(db, offset, 1)) + if (rpmdbRemove(rpmdb, offset, 1)) return 1; - if (rpmdbAdd(db, newHeader)) + if (rpmdbAdd(rpmdb, newHeader)) return 1; return rc; @@ -1498,7 +1559,7 @@ int rpmdbMoveDatabase(const char * rootdir, const char * olddbpath, const char * } /* XXX transaction.c */ -int rpmdbFindFpList(rpmdb db, fingerPrint * fpList, dbiIndexSet * matchList, +int rpmdbFindFpList(rpmdb rpmdb, fingerPrint * fpList, dbiIndexSet * matchList, int numItems) { rpmdbMatchIterator mi; @@ -1506,7 +1567,7 @@ int rpmdbFindFpList(rpmdb db, fingerPrint * fpList, dbiIndexSet * matchList, Header h; int i; - mi = rpmdbInitIterator(db, RPMDBI_FILE, NULL, 0); + mi = rpmdbInitIterator(rpmdb, RPMTAG_BASENAMES, NULL, 0); /* Gather all matches from the database */ for (i = 0; i < numItems; i++) { @@ -1591,14 +1652,18 @@ int rpmdbFindFpList(rpmdb db, fingerPrint * fpList, dbiIndexSet * matchList, /* 0 found matches */ /* 1 no matches */ /* 2 error */ -int findMatches(rpmdb db, const char * name, const char * version, +int findMatches(rpmdb rpmdb, const char * name, const char * version, const char * release, dbiIndexSet * matches) { + int dbix; int gotMatches; int rc; int i; - if ((rc = dbiSearchIndex(db->_dbi[RPMDBI_NAME], name, 0, matches)) != 0) { + dbix = dbiTagToDbix(RPMTAG_NAME); + (void) dbiOpenIndex(rpmdb, dbix); + rc = dbiSearchIndex(rpmdb->_dbi[dbix], name, 0, matches); + if (rc != 0) { rc = ((rc == -1) ? 2 : 1); goto exit; } @@ -1621,7 +1686,7 @@ int findMatches(rpmdb db, const char * name, const char * version, if (recoff == 0) continue; - h = rpmdbGetRecord(db, recoff); + h = rpmdbGetRecord(rpmdb, recoff); if (h == NULL) { rpmError(RPMERR_DBCORRUPT,_("cannot read header at %d for lookup"), recoff); @@ -1662,7 +1727,7 @@ exit: /* 0 found matches */ /* 1 no matches */ /* 2 error */ -int rpmdbFindByLabel(rpmdb db, const char * arg, dbiIndexSet * matches) +int rpmdbFindByLabel(rpmdb rpmdb, const char * arg, dbiIndexSet * matches) { char * localarg, * chptr; char * release; @@ -1671,7 +1736,7 @@ int rpmdbFindByLabel(rpmdb db, const char * arg, dbiIndexSet * matches) if (!strlen(arg)) return 1; /* did they give us just a name? */ - rc = findMatches(db, arg, NULL, NULL, matches); + rc = findMatches(rpmdb, arg, NULL, NULL, matches); if (rc != 1) return rc; /* maybe a name and a release */ @@ -1683,7 +1748,7 @@ int rpmdbFindByLabel(rpmdb db, const char * arg, dbiIndexSet * matches) if (chptr == localarg) return 1; *chptr = '\0'; - rc = findMatches(db, localarg, chptr + 1, NULL, matches); + rc = findMatches(rpmdb, localarg, chptr + 1, NULL, matches); if (rc != 1) return rc; /* how about name-version-release? */ @@ -1693,5 +1758,5 @@ int rpmdbFindByLabel(rpmdb db, const char * arg, dbiIndexSet * matches) if (chptr == localarg) return 1; *chptr = '\0'; - return findMatches(db, localarg, chptr + 1, release, matches); + return findMatches(rpmdb, localarg, chptr + 1, release, matches); } diff --git a/lib/rpmdb.h b/lib/rpmdb.h index 0a3036387..5ca41cda9 100644 --- a/lib/rpmdb.h +++ b/lib/rpmdb.h @@ -156,7 +156,7 @@ struct _dbiIndex { int dbi_jlen; /*db, RPMDBI_NAME, alp->name, 0); + mi = rpmdbInitIterator(ts->db, RPMTAG_NAME, alp->name, 0); while ((oldH = rpmdbNextIterator(mi)) != NULL) ensureOlder(ts->db, alp->h, oldH, probs, alp->key); rpmdbFreeIterator(mi); diff --git a/lib/uninstall.c b/lib/uninstall.c index ea3a9e124..c791d5620 100644 --- a/lib/uninstall.c +++ b/lib/uninstall.c @@ -537,7 +537,7 @@ int runTriggers(const char * root, rpmdb db, int sense, Header h, { Header triggeredH; rpmdbMatchIterator mi; - mi = rpmdbInitIterator(db, RPMDBI_TRIGGER, name, 0); + mi = rpmdbInitIterator(db, RPMTAG_TRIGGERNAME, name, 0); while((triggeredH = rpmdbNextIterator(mi)) != NULL) { rc |= handleOneTrigger(root, db, sense, h, triggeredH, 0, numPackage, NULL, scriptFd); @@ -577,7 +577,7 @@ int runImmedTriggers(const char * root, rpmdb db, int sense, Header h, if (triggersRun[triggerIndices[i]]) continue; - mi = rpmdbInitIterator(db, RPMDBI_NAME, name, 0); + mi = rpmdbInitIterator(db, RPMTAG_NAME, name, 0); while((sourceH = rpmdbNextIterator(mi)) != NULL) { rc |= handleOneTrigger(root, db, sense, sourceH, h, diff --git a/po/rpm.pot b/po/rpm.pot index 9c374e5bc..8ddc74823 100644 --- a/po/rpm.pot +++ b/po/rpm.pot @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: 2000-04-19 09:49-0400\n" +"POT-Creation-Date: 2000-04-19 18:07-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -2553,130 +2553,130 @@ msgstr "" msgid "query of specfile %s failed, can't parse\n" msgstr "" -#: lib/query.c:581 +#: lib/query.c:582 msgid "no packages\n" msgstr "" -#: lib/query.c:591 +#: lib/query.c:592 #, c-format msgid "group %s does not contain any packages\n" msgstr "" -#: lib/query.c:601 +#: lib/query.c:602 #, c-format msgid "no package triggers %s\n" msgstr "" -#: lib/query.c:611 +#: lib/query.c:612 #, c-format msgid "no package requires %s\n" msgstr "" -#: lib/query.c:622 +#: lib/query.c:623 #, c-format msgid "no package provides %s\n" msgstr "" -#: lib/query.c:638 +#: lib/query.c:639 #, c-format msgid "file %s: %s\n" msgstr "" -#: lib/query.c:641 +#: lib/query.c:642 #, c-format msgid "file %s is not owned by any package\n" msgstr "" -#: lib/query.c:663 +#: lib/query.c:664 #, c-format msgid "invalid package number: %s\n" msgstr "" -#: lib/query.c:666 +#: lib/query.c:667 #, c-format msgid "package record number: %d\n" msgstr "" -#: lib/query.c:669 +#: lib/query.c:671 #, c-format msgid "record %d could not be read\n" msgstr "" -#: lib/query.c:680 lib/rpminstall.c:436 +#: lib/query.c:682 lib/rpminstall.c:436 #, c-format msgid "package %s is not installed\n" msgstr "" -#: lib/query.c:683 +#: lib/query.c:685 #, c-format msgid "error looking for package %s\n" msgstr "" -#: lib/query.c:708 +#: lib/query.c:710 msgid "rpmQuery: rpmdbOpen() failed\n" msgstr "" -#: lib/query.c:767 +#: lib/query.c:769 msgid "query package owning file" msgstr "" -#: lib/query.c:769 +#: lib/query.c:771 msgid "query packages in group" msgstr "" -#: lib/query.c:771 +#: lib/query.c:773 msgid "query a package file" msgstr "" -#: lib/query.c:775 +#: lib/query.c:777 msgid "query a spec file" msgstr "" -#: lib/query.c:777 +#: lib/query.c:779 msgid "query the pacakges triggered by the package" msgstr "" -#: lib/query.c:779 +#: lib/query.c:781 msgid "query the packages which require a capability" msgstr "" -#: lib/query.c:781 +#: lib/query.c:783 msgid "query the packages which provide a capability" msgstr "" -#: lib/query.c:820 +#: lib/query.c:822 msgid "list all configuration files" msgstr "" -#: lib/query.c:822 +#: lib/query.c:824 msgid "list all documentation files" msgstr "" -#: lib/query.c:824 +#: lib/query.c:826 msgid "dump basic file information" msgstr "" -#: lib/query.c:826 +#: lib/query.c:828 msgid "list files in package" msgstr "" -#: lib/query.c:830 +#: lib/query.c:832 msgid "use the following query format" msgstr "" -#: lib/query.c:832 +#: lib/query.c:834 msgid "substitute i18n sections into spec file" msgstr "" -#: lib/query.c:834 +#: lib/query.c:836 msgid "display the states of the listed files" msgstr "" -#: lib/query.c:836 +#: lib/query.c:838 msgid "display a verbose file listing" msgstr "" -#: lib/rebuilddb.c:34 lib/rpmdb.c:451 +#: lib/rebuilddb.c:34 lib/rpmdb.c:491 msgid "no dbpath has been set" msgstr "" @@ -2710,30 +2710,30 @@ msgstr "" msgid "opening new database with dbi_major %d\n" msgstr "" -#: lib/rebuilddb.c:112 +#: lib/rebuilddb.c:113 #, c-format msgid "record number %d in database is bad -- skipping." msgstr "" -#: lib/rebuilddb.c:144 +#: lib/rebuilddb.c:145 #, c-format msgid "cannot add record originally at %d" msgstr "" -#: lib/rebuilddb.c:160 +#: lib/rebuilddb.c:161 msgid "failed to rebuild database; original database remains in place\n" msgstr "" -#: lib/rebuilddb.c:168 +#: lib/rebuilddb.c:169 msgid "failed to replace old database with new database!\n" msgstr "" -#: lib/rebuilddb.c:170 +#: lib/rebuilddb.c:171 #, c-format msgid "replace files in %s with files from %s to recover" msgstr "" -#: lib/rebuilddb.c:176 +#: lib/rebuilddb.c:177 #, c-format msgid "failed to remove directory %s: %s\n" msgstr "" @@ -2821,27 +2821,27 @@ msgstr "" msgid "OK" msgstr "" -#: lib/rpmdb.c:89 +#: lib/rpmdb.c:115 #, c-format msgid "error getting record %s from %s" msgstr "" -#: lib/rpmdb.c:110 +#: lib/rpmdb.c:136 #, c-format msgid "error storing record %s into %s" msgstr "" -#: lib/rpmdb.c:115 +#: lib/rpmdb.c:141 #, c-format msgid "error removing record %s into %s" msgstr "" -#: lib/rpmdb.c:267 +#: lib/rpmdb.c:299 #, c-format msgid "bad db file %s" msgstr "" -#: lib/rpmdb.c:308 +#: lib/rpmdb.c:340 msgid "" "\n" "--> Please run \"rpm --rebuilddb\" as root to convert your database from\n" @@ -2849,83 +2849,83 @@ msgid "" "\n" msgstr "" -#: lib/rpmdb.c:321 +#: lib/rpmdb.c:356 #, c-format msgid "cannot open file %s: %s" msgstr "" -#: lib/rpmdb.c:523 +#: lib/rpmdb.c:560 msgid "" "old format database is present; use --rebuilddb to generate a new format " "database" msgstr "" #. error -#: lib/rpmdb.c:699 +#: lib/rpmdb.c:744 #, c-format msgid "cannot retrieve package \"%s\" from db" msgstr "" -#: lib/rpmdb.c:1021 +#: lib/rpmdb.c:1076 #, c-format msgid "key \"%s\" not found in %s" msgstr "" -#: lib/rpmdb.c:1029 +#: lib/rpmdb.c:1084 #, c-format msgid "key \"%s\" not removed from %s" msgstr "" -#: lib/rpmdb.c:1055 +#: lib/rpmdb.c:1110 #, c-format msgid "rpmdbRemove: cannot read header at 0x%x" msgstr "" -#: lib/rpmdb.c:1086 +#: lib/rpmdb.c:1143 #, c-format msgid "removing 0 %s entries.\n" msgstr "" -#: lib/rpmdb.c:1093 +#: lib/rpmdb.c:1150 #, c-format msgid "removing \"%s\" from %s index.\n" msgstr "" -#: lib/rpmdb.c:1101 +#: lib/rpmdb.c:1158 #, c-format msgid "removing %d entries in %s index:\n" msgstr "" -#: lib/rpmdb.c:1105 +#: lib/rpmdb.c:1162 #, c-format msgid "\t%6d %s\n" msgstr "" -#: lib/rpmdb.c:1245 +#: lib/rpmdb.c:1305 msgid "cannot allocate new instance in database" msgstr "" -#: lib/rpmdb.c:1291 +#: lib/rpmdb.c:1352 #, c-format msgid "adding 0 %s entries.\n" msgstr "" -#: lib/rpmdb.c:1304 +#: lib/rpmdb.c:1365 #, c-format msgid "adding \"%s\" to %s index.\n" msgstr "" -#: lib/rpmdb.c:1311 +#: lib/rpmdb.c:1372 #, c-format msgid "adding %d entries to %s index:\n" msgstr "" -#: lib/rpmdb.c:1315 +#: lib/rpmdb.c:1376 #, c-format msgid "%6d %s\n" msgstr "" -#: lib/rpmdb.c:1626 +#: lib/rpmdb.c:1691 #, c-format msgid "cannot read header at %d for lookup" msgstr "" diff --git a/python/rpmmodule.c b/python/rpmmodule.c index 84b71ca48..017cfa740 100644 --- a/python/rpmmodule.c +++ b/python/rpmmodule.c @@ -856,7 +856,7 @@ static PyObject * rpmdbByName(rpmdbObject * s, PyObject * args) { return handleDbResult(rc, matches); } #else - return handleDbResult(rpmdbInitIterator(s->db, RPMDBI_NAME, str, 0)); + return handleDbResult(rpmdbInitIterator(s->db, RPMTAG_NAME, str, 0)); #endif } @@ -872,7 +872,7 @@ static PyObject * rpmdbByFile(rpmdbObject * s, PyObject * args) { return handleDbResult(rc, matches); } #else - return handleDbResult(rpmdbInitIterator(s->db, RPMDBI_FILE, str, 0)); + return handleDbResult(rpmdbInitIterator(s->db, RPMTAG_BASENAMES, str, 0)); #endif } @@ -888,7 +888,7 @@ static PyObject * rpmdbByProvides(rpmdbObject * s, PyObject * args) { return handleDbResult(rc, matches); } #else - return handleDbResult(rpmdbInitIterator(s->db, RPMDBI_PROVIDES, str, 0)); + return handleDbResult(rpmdbInitIterator(s->db, RPMTAG_PROVIDENAME, str, 0)); #endif } @@ -908,7 +908,8 @@ static int rpmdbLength(rpmdbObject * s) { #else { rpmdbMatchIterator mi; - mi = rpmdbInitIterator(s->db, RPMDBI_PACKAGES, NULL, 0); + /* RPMDBI_PACKAGES */ + mi = rpmdbInitIterator(s->db, 0, NULL, 0); /* XXX FIXME: unnecessary header mallocs are side effect here */ while (rpmdbNextIterator(mi) != NULL) count++; diff --git a/python/upgrade.c b/python/upgrade.c index 413480ffa..4c20425e4 100644 --- a/python/upgrade.c +++ b/python/upgrade.c @@ -122,7 +122,8 @@ static void addLostFiles(rpmdb db, struct pkgSet *psp, struct hash_table *ht) #else rpmdbMatchIterator mi; - mi = rpmdbInitIterator(db, RPMDBI_PACKAGES, NULL, 0); + /* RPMDBI_PACKAGES */ + mi = rpmdbInitIterator(db, 0, NULL, 0); while ((h = rpmdbNextIterator(mi)) != NULL) { #endif @@ -277,7 +278,7 @@ static int findUpgradePackages(rpmdb db, struct pkgSet *psp, #else { rpmdbMatchIterator mi; - mi = rpmdbInitIterator(db, RPMDBI_NAME, name, 0); + mi = rpmdbInitIterator(db, RPMTAG_NAME, name, 0); skipThis = (mi ? 0 : 1); rpmErrorSetCallback(errorFunction); while((installedHeader = rpmdbNextIterator(mi)) != NULL) { @@ -339,7 +340,7 @@ static int findUpgradePackages(rpmdb db, struct pkgSet *psp, } #else { rpmdbMatchIterator mi; - mi = rpmdbInitIterator(db, RPMDBI_NAME, name, 0); + mi = rpmdbInitIterator(db, RPMTAG_NAME, name, 0); while((installedHeader = rpmdbNextIterator(mi)) != NULL) { if (headerGetEntryMinMemory(installedHeader, RPMTAG_BASENAMES, NULL, (void **) &installedFiles, @@ -551,7 +552,7 @@ static int unmarkPackagesAlreadyInstalled(rpmdb db, struct pkgSet *psp) #else { rpmdbMatchIterator mi; - mi = rpmdbInitIterator(db, RPMDBI_NAME, name, 0); + mi = rpmdbInitIterator(db, RPMTAG_NAME, name, 0); rpmErrorSetCallback(errorFunction); while((installedHeader = rpmdbNextIterator(mi)) != NULL) { if (rpmVersionCompare(installedHeader, h) >= 0) { diff --git a/tools/dumpdb.c b/tools/dumpdb.c index 55c843eda..27b31dabc 100644 --- a/tools/dumpdb.c +++ b/tools/dumpdb.c @@ -27,7 +27,8 @@ int main(int argc, char ** argv) rpmdbMatchIterator mi; #define _RECNUM rpmdbGetIteratorOffset(mi) - mi = rpmdbInitIterator(db, RPMDBI_PACKAGES, NULL, 0); + /* RPMDBI_PACKAGES */ + mi = rpmdbInitIterator(db, 0, NULL, 0); while ((h = rpmdbNextIterator(mi)) != NULL) {