Hash package headers using simple counter.
authorjbj <devnull@localhost>
Sat, 8 Apr 2000 19:28:08 +0000 (19:28 +0000)
committerjbj <devnull@localhost>
Sat, 8 Apr 2000 19:28:08 +0000 (19:28 +0000)
CVS patchset: 3664
CVS date: 2000/04/08 19:28:08

lib/db0.c
lib/db1.c
lib/db2.c
lib/db3.c
lib/dbindex.h
lib/install.c
lib/rpmdb.c
lib/uninstall.c
po/rpm.pot

index 4bd2b49..84aef56 100644 (file)
--- a/lib/db0.c
+++ b/lib/db0.c
@@ -325,7 +325,7 @@ static int db0UpdateIndex(dbiIndex dbi, const char * str, dbiIndexSet set) {
 }
 /*@=compmempass@*/
 
-static int db0del(dbiIndex dbi, void * keyp, size_t keylen)
+static int db0del(dbiIndex dbi, void * keyp, size_t keylen, int use_cursor)
 {
     DBT key;
     DB * db = GetDB(dbi);
@@ -343,7 +343,7 @@ static int db0del(dbiIndex dbi, void * keyp, size_t keylen)
 }
 
 static int db0get(dbiIndex dbi, void * keyp, size_t keylen,
-               void ** datap, size_t * datalen)
+               void ** datap, size_t * datalen, int use_cursor)
 {
     DBT key, data;
     DB * db = GetDB(dbi);
@@ -371,7 +371,7 @@ static int db0get(dbiIndex dbi, void * keyp, size_t keylen,
 }
 
 static int db0put(dbiIndex dbi, void * keyp, size_t keylen,
-               void * datap, size_t datalen)
+               void * datap, size_t datalen, int use_cursor)
 {
     DBT key, data;
     DB * db = GetDB(dbi);
index 7145ff6..c50351b 100644 (file)
--- a/lib/db1.c
+++ b/lib/db1.c
@@ -327,7 +327,7 @@ static int db1UpdateIndex(dbiIndex dbi, const char * str, dbiIndexSet set) {
 }
 /*@=compmempass@*/
 
-static int db1del(dbiIndex dbi, void * keyp, size_t keylen)
+static int db1del(dbiIndex dbi, void * keyp, size_t keylen, int use_cursor)
 {
     DBT key;
     DB * db = GetDB(dbi);
@@ -345,7 +345,7 @@ static int db1del(dbiIndex dbi, void * keyp, size_t keylen)
 }
 
 static int db1get(dbiIndex dbi, void * keyp, size_t keylen,
-               void ** datap, size_t * datalen)
+               void ** datap, size_t * datalen, int use_cursor)
 {
     DBT key, data;
     DB * db = GetDB(dbi);
@@ -373,7 +373,7 @@ static int db1get(dbiIndex dbi, void * keyp, size_t keylen,
 }
 
 static int db1put(dbiIndex dbi, void * keyp, size_t keylen,
-               void * datap, size_t datalen)
+               void * datap, size_t datalen, int use_cursor)
 {
     DBT key, data;
     DB * db = GetDB(dbi);
index c408514..fd156e4 100644 (file)
--- a/lib/db2.c
+++ b/lib/db2.c
@@ -433,7 +433,7 @@ static int db2UpdateIndex(dbiIndex dbi, const char * str, dbiIndexSet set)
 }
 /*@=compmempass@*/
 
-static int db2del(dbiIndex dbi, void * keyp, size_t keylen)
+static int db2del(dbiIndex dbi, void * keyp, size_t keylen, int use_cursor)
 {
     DB_TXN * txnid = NULL;
     DBT key;
@@ -452,7 +452,7 @@ static int db2del(dbiIndex dbi, void * keyp, size_t keylen)
 }
 
 static int db2get(dbiIndex dbi, void * keyp, size_t keylen,
-               void ** datap, size_t * datalen)
+               void ** datap, size_t * datalen, int use_cursor)
 {
     DB_TXN * txnid = NULL;
     DBT key, data;
@@ -481,7 +481,7 @@ static int db2get(dbiIndex dbi, void * keyp, size_t keylen,
 }
 
 static int db2put(dbiIndex dbi, void * keyp, size_t keylen,
-               void * datap, size_t datalen)
+               void * datap, size_t datalen, int use_cursor)
 {
     DB_TXN * txnid = NULL;
     DBT key, data;
index fe33dda..48e6810 100644 (file)
--- a/lib/db3.c
+++ b/lib/db3.c
@@ -373,6 +373,7 @@ static int db3close(dbiIndex dbi, unsigned int flags)
 
     if (dbi->dbi_dbcursor) {
        DBC * dbcursor = (DBC *)dbi->dbi_dbcursor;
+fprintf(stderr, "*** explicit dbcursor->c_close\n");
        xx = dbcursor->c_close(dbcursor);
        xx = cvtdberr(dbi, "dbcursor->c_close", xx, _debug);
        dbi->dbi_dbcursor = NULL;
@@ -623,7 +624,7 @@ static int db3UpdateIndex(dbiIndex dbi, const char * str, dbiIndexSet set)
 }
 /*@=compmempass@*/
 
-static int db3del(dbiIndex dbi, void * keyp, size_t keylen)
+static int db3del(dbiIndex dbi, void * keyp, size_t keylen, int use_cursor)
 {
     DB_TXN * txnid = NULL;
     DBT key;
@@ -643,41 +644,69 @@ fprintf(stderr, "*** db3del(%p, %p,%d) rc %d\n", dbi, keyp, keylen, rc);
     return rc;
 }
 
-static int db3get(dbiIndex dbi, void * keyp, size_t keylen,
-               void ** datap, size_t * datalen)
+static int db3get(dbiIndex dbi, void ** keyp, size_t * keylen,
+               void ** datap, size_t * datalen, int use_cursor)
 {
     DB_TXN * txnid = NULL;
     DBT key, data;
     DB * db = GetDB(dbi);
     int _printit;
     int rc;
+    int xx;
 
     if (datap) *datap = NULL;
     if (datalen) *datalen = 0;
     _mymemset(&key, 0, sizeof(key));
     _mymemset(&data, 0, sizeof(data));
 
-    key.data = keyp;
-    key.size = keylen;
-    data.data = NULL;
-    data.size = 0;
+    if (use_cursor) {
+       DBC * dbcursor;
 
-    rc = db->get(db, txnid, &key, &data, 0);
-    _printit = (rc == DB_NOTFOUND ? 0 : _debug);
-    rc = cvtdberr(dbi, "db->get", rc, _printit);
+       if ((dbcursor = dbi->dbi_dbcursor) == NULL) {
+#if defined(__USE_DB3)
+           rc = db->cursor(db, txnid, &dbcursor, 0);
+#else
+           rc = db->cursor(db, txnid, &dbcursor);
+#endif
+           rc = cvtdberr(dbi, "db->cursor", rc, _debug);
+           if (rc)
+               return rc;
+           dbi->dbi_dbcursor = dbcursor;
+       }
+
+       /* XXX db3 does DB_FIRST on uninitialized cursor */
+       rc = dbcursor->c_get(dbcursor, &key, &data, DB_NEXT);
+       if (rc == DB_NOTFOUND) {
+           xx = dbcursor->c_close(dbcursor);
+           xx = cvtdberr(dbi, "dbcursor->c_close", xx, _debug);
+           dbi->dbi_dbcursor = NULL;
+           return rc;
+       }
+       rc = cvtdberr(dbi, "dbcursor->c_get", rc, _debug);
+       if (rc == 0) {
+           *keyp = key.data;
+           *keylen = key.size;
+       }
+    } else {
+       key.data = *keyp;
+       key.size = *keylen;
+       rc = db->get(db, txnid, &key, &data, 0);
+       _printit = (rc == DB_NOTFOUND ? 0 : _debug);
+       rc = cvtdberr(dbi, "db->get", rc, _printit);
+    }
 
     if (rc == 0) {
-       *datap = data.data;
-       *datalen = data.size;
+       if (datap)
+           *datap = data.data;
+       if (datalen)
+           *datalen = data.size;
     }
-if (_debug)
-fprintf(stderr, "*** db3get(%p, %p,%d, %p,%d) rc %d\n", dbi, keyp, keylen, *datap, *datalen, rc);
 
     return rc;
 }
 
 static int db3put(dbiIndex dbi, void * keyp, size_t keylen,
-               void * datap, size_t datalen)
+               void * datap, size_t datalen, int use_cursor)
 {
     DB_TXN * txnid = NULL;
     DBT key, data;
index 6c6d267..daecb4d 100644 (file)
@@ -101,19 +101,21 @@ struct _dbiVec {
  * @param dbi  index database handle
  * @param keyp key data
  * @param keylen key data length
+ * @param use_cursor open cursor for access?
  */
-    int (*del) (dbiIndex dbi, void * keyp, size_t keylen);
+    int (*del) (dbiIndex dbi, void * keyp, size_t keylen, int use_cursor);
 
 /**
  * Retrieve item using db->get.
  * @param dbi  index database handle
- * @param keyp key data
- * @param keylen key data length
+ * @param keyp address of key data
+ * @param keylen address of key data length
  * @param datap        address of data pointer
  * @param datalen address of data length
+ * @param use_cursor open cursor for access?
  */
-    int (*get) (dbiIndex dbi, void * keyp, size_t keylen,
-                       void ** datap, size_t * datalen);
+    int (*get) (dbiIndex dbi, void ** keyp, size_t * keylen,
+                       void ** datap, size_t * datalen, int use_cursor);
 
 /**
  * Save item using db->put.
@@ -122,9 +124,10 @@ struct _dbiVec {
  * @param keylen key data length
  * @param datap        data pointer
  * @param datalen data length
+ * @param use_cursor open cursor for access?
  */
     int (*put) (dbiIndex dbi, void * keyp, size_t keylen,
-                       void * datap, size_t datalen);
+                       void * datap, size_t datalen, int use_cursor);
 
 };
 
@@ -145,8 +148,8 @@ struct _dbiIndex {
     void * dbi_dbenv;
     void * dbi_dbinfo;
     void * dbi_dbcursor;
-    const void * dbi_openinfo;         /*<! private data passed on open */
-    FD_t dbi_fd;                       /*<! private data for fadio access */
+    const void * dbi_openinfo;
+    const void * dbi_stat;
 /*@observer@*/ const struct _dbiVec * dbi_vec; /*<! private methods */
 };
 
index 0020dce..6824a41 100644 (file)
@@ -7,7 +7,7 @@
 #include "cpio.h"
 #include "install.h"
 #include "misc.h"
-#include "rpmdb.h"
+#include "rpmdb.h"     /* XXX for rpmdbAdd/rpmdbRemove/rpmdbUpdateRecord */
 
 struct callbackInfo {
     unsigned long archiveSize;
@@ -710,31 +710,11 @@ int installBinaryPackage(const char * rootdir, rpmdb db, FD_t fd, Header h,
     rpmMessage(RPMMESS_DEBUG, _("package: %s-%s-%s files test = %d\n"),
                name, version, release, flags & RPMTRANS_FLAG_TEST);
 
-#ifdef DYING
-    rc = rpmdbFindPackage(db, name, &matches);
-    switch (rc) {
-    case -1:
-       rc = 2;
-       goto exit;
-       /*@notreached@*/ break;
-    case 0:
-       scriptArg = dbiIndexSetCount(matches) + 1;
-       break;
-    default:
-       scriptArg = 1;
-       break;
-    }
-    if (matches) {
-       dbiFreeIndexSet(matches);
-       matches = NULL;
-    }
-#else
     if ((scriptArg = rpmdbCountPackages(db, name)) < 0) {
        rc = 2;
        goto exit;
     }
     scriptArg += 1;
-#endif
 
     if (!rpmdbFindByHeader(db, h, &matches))
        otherOffset = dbiIndexRecordOffset(matches, 0);
index 0386ebe..fdada50 100644 (file)
@@ -148,6 +148,7 @@ static /*@only@*/ rpmdb newRpmdb(void)
 int openDatabase(const char * prefix, const char * dbpath, rpmdb *dbp,
                int mode, int perms, int flags)
 {
+    int _use_falloc = rpmExpandNumeric("%{_db3_use_falloc}");
     char * filename;
     rpmdb db;
     int i, rc;
@@ -198,6 +199,7 @@ int openDatabase(const char * prefix, const char * dbpath, rpmdb *dbp,
 
     db = newRpmdb();
 
+  if (_use_falloc || rpmfileexists(filename)) {
     if (!justcheck || !rpmfileexists(filename)) {
        db->pkgs = fadOpen(filename, mode, perms);
        if (Ferror(db->pkgs)) {
@@ -230,6 +232,7 @@ int openDatabase(const char * prefix, const char * dbpath, rpmdb *dbp,
            } 
        }
     }
+  }
 
     {  int dbix;
 
@@ -333,11 +336,41 @@ void rpmdbClose (rpmdb db)
 }
 
 int rpmdbFirstRecNum(rpmdb db) {
+    if (db->pkgs == NULL) {
+       dbiIndex dbi = db->_dbi[RPMDBI_PACKAGES];
+       unsigned int offset = 0;
+       void * keyp = &offset;
+       size_t keylen = sizeof(offset);
+       int rc;
+
+       /* XXX skip over instance 0 */
+       do {
+           rc = (*dbi->dbi_vec->get) (dbi, &keyp, &keylen, NULL, NULL, 1);
+           if (rc)
+               return 0;
+           memcpy(&offset, keyp, sizeof(offset));
+       } while (offset == 0);
+       return offset;
+    }
+
     return fadFirstOffset(db->pkgs);
 }
 
 int rpmdbNextRecNum(rpmdb db, unsigned int lastOffset) {
     /* 0 at end */
+    if (db->pkgs == NULL) {
+       dbiIndex dbi = db->_dbi[RPMDBI_PACKAGES];
+       void * keyp = &lastOffset;
+       size_t keylen = sizeof(lastOffset);
+       int rc;
+
+       rc = (*dbi->dbi_vec->get) (dbi, &keyp, &keylen, NULL, NULL, 1);
+       if (rc)
+           return 0;
+       memcpy(&lastOffset, keyp, sizeof(lastOffset));
+       return lastOffset;
+    }
+
     return fadNextOffset(db->pkgs, lastOffset);
 }
 
@@ -399,15 +432,15 @@ static Header doGetRecord(rpmdb db, unsigned int offset, int pristine)
 
 Header rpmdbGetRecord(rpmdb db, unsigned int offset)
 {
-    int _use_falloc = rpmExpandNumeric("%{_db3_use_falloc}");
-    dbiIndex dbi;
-
-    if (!_use_falloc && (dbi = db->_dbi[RPMDBI_PACKAGES]) != NULL) {
+    if (db->pkgs == NULL) {
+       dbiIndex dbi = db->_dbi[RPMDBI_PACKAGES];
        void * uh;
        size_t uhlen;
+       void * keyp = &offset;
+       size_t keylen = sizeof(offset);
        int rc;
 
-       rc = (*dbi->dbi_vec->get) (dbi, &offset, sizeof(offset), &uh, &uhlen);
+       rc = (*dbi->dbi_vec->get) (dbi, &keyp, &keylen, &uh, &uhlen, 0);
        if (rc)
            return NULL;
        return headerLoad(uh);
@@ -629,7 +662,7 @@ if (_debug)
 fprintf(stderr, "*** removing dbix %d tag %d offset 0x%x\n", dbix, dbi->dbi_rpmtag, offset);
            if (dbi->dbi_rpmtag == 0) {
                /* XXX TODO: remove h to packages.rpm */
-               (void) (*dbi->dbi_vec->del) (dbi, &offset, sizeof(offset));
+               (void) (*dbi->dbi_vec->del) (dbi, &offset, sizeof(offset), 0);
                continue;
            }
        
@@ -742,6 +775,7 @@ int rpmdbAdd(rpmdb db, Header h)
     const char ** baseNames;
     int count = 0;
     int type;
+    dbiIndex dbi;
     unsigned int offset;
     int rc = 0;
 
@@ -758,7 +792,31 @@ int rpmdbAdd(rpmdb db, Header h)
 
     blockSignals();
 
-    {  int newSize;
+    if (db->pkgs == NULL) {
+       unsigned int firstkey = 0;
+       void * keyp = &firstkey;
+       size_t keylen = sizeof(firstkey);
+       void * datap = NULL;
+       size_t datalen = 0;
+       int rc;
+
+       dbi = db->_dbi[RPMDBI_PACKAGES];
+       /* Retrieve join key for next header instance. */
+
+       rc = (*dbi->dbi_vec->get) (dbi, &keyp, &keylen, (void *)&datap, &datalen, 0);
+       offset = 0;
+       if (rc == 0 && datap)
+           memcpy(&offset, datap, sizeof(offset));
+       ++offset;
+       if (datap) {
+           memcpy(datap, &offset, sizeof(offset));
+       } else {
+           datap = &offset;
+           datalen = sizeof(offset);
+       }
+       rc = (*dbi->dbi_vec->put) (dbi, keyp, keylen, datap, datalen, 0);
+    } else {
+       int newSize;
        newSize = headerSizeof(h, HEADER_MAGIC_NO);
        offset = fadAlloc(db->pkgs, newSize);
        if (offset == 0) {
@@ -782,7 +840,6 @@ int rpmdbAdd(rpmdb db, Header h)
        dbiIndexRecord rec = dbiReturnIndexRecordInstance(offset, 0);
 
        for (dbix = RPMDBI_MIN; dbix < RPMDBI_MAX; dbix++) {
-           dbiIndex dbi;
            const char **rpmvals = NULL;
            int rpmtype = 0;
            int rpmcnt = 0;
@@ -795,7 +852,7 @@ fprintf(stderr, "*** adding dbix %d tag %d offset 0x%x\n", dbix, dbi->dbi_rpmtag
                size_t uhlen = headerSizeof(h, HEADER_MAGIC_NO);
                void * uh = headerUnload(h);
                /* XXX TODO: add h to packages.rpm */
-               (void) (*dbi->dbi_vec->put) (dbi, &offset, sizeof(offset), uh, uhlen);
+               (void) (*dbi->dbi_vec->put) (dbi, &offset, sizeof(offset), uh, uhlen, 0);
                free(uh);
                continue;
            }
index 8f52475..c018057 100644 (file)
@@ -4,12 +4,10 @@
 #include <rpmurl.h>
 #include <rpmmacro.h>  /* XXX for rpmExpand */
 
-#include "dbindex.h"   /* XXX prototypes */
-#include "depends.h"
+#include "depends.h"   /* XXX for headerMatchesDepFlags */
 #include "install.h"
-#include "md5.h"
-#include "misc.h"
-#include "rpmdb.h"
+#include "misc.h"      /* XXX for makeTempFile, doputenv */
+#include "rpmdb.h"     /* XXX for rpmdbRemove */
 
 static char * SCRIPT_PATH = "PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin";
 
@@ -100,25 +98,11 @@ int removeBinaryPackage(const char * prefix, rpmdb db, unsigned int offset,
      * When we run scripts, we pass an argument which is the number of 
      * versions of this package that will be installed when we are finished.
      */
-#ifdef DYING
-    {  dbiIndexSet matches;
-       if (rpmdbFindPackage(db, name, &matches)) {
-           rpmError(RPMERR_DBCORRUPT, _("cannot read packages named %s for uninstall"),
-               name);
-           dbiFreeIndexSet(matches);
-           rc = 1;
-           goto exit;
-       }
-       scriptArg = dbiIndexSetCount(matches) - 1;
-       dbiFreeIndexSet(matches);
-    }
-#else
     if ((scriptArg = rpmdbCountPackages(db, name)) < 0) {
        rc = 1;
        goto exit;
     }
     scriptArg -= 1;
-#endif
 
     if (!(flags & RPMTRANS_FLAG_NOTRIGGERS)) {
        /* run triggers from this package which are keyed on installed 
@@ -505,27 +489,6 @@ static int handleOneTrigger(const char * root, rpmdb db, int sense, Header sourc
        headerGetEntry(triggeredH, RPMTAG_NAME, NULL, 
                       (void **) &triggerPackageName, NULL);
 
-#ifdef DYING
-    {  dbiIndexSet matches = NULL;
-       int index;
-
-       rpmdbFindPackage(db, triggerPackageName, &matches);
-
-       index = triggerIndices[i];
-       if (!triggersAlreadyRun || !triggersAlreadyRun[index]) {
-           rc = runScript(triggeredH, root, 1, triggerProgs + index,
-                           triggerScripts[index], 
-                           dbiIndexSetCount(matches) + arg1correction, arg2, 
-                           scriptFd);
-           if (triggersAlreadyRun) triggersAlreadyRun[index] = 1;
-       }
-
-       if (matches) {
-           dbiFreeIndexSet(matches);
-           matches = NULL;
-       }
-    }
-#else
        {   int arg1;
            int index;
 
@@ -542,7 +505,7 @@ static int handleOneTrigger(const char * root, rpmdb db, int sense, Header sourc
                }
            }
        }
-#endif
+
        free(triggerScripts);
        free(triggerProgs);
 
@@ -578,22 +541,11 @@ int runTriggers(const char * root, rpmdb db, int sense, Header h,
        goto exit;
     }
 
-#ifdef DYING
-    {  dbiIndexSet otherMatches = NULL;
-       rpmdbFindPackage(db, packageName, &otherMatches);
-       if (otherMatches) {
-           numPackage = dbiIndexSetCount(otherMatches) + countCorrection;
-           dbiFreeIndexSet(otherMatches);
-       } else
-           numPackage = 0;
-    }
-#else
     numPackage = rpmdbCountPackages(db, packageName);
     if (numPackage < 0) {
        rc = 1;
        goto exit;
     }
-#endif
 
     rc = 0;
     for (i = 0; i < dbiIndexSetCount(matches); i++) {
index d99d020..a50696a 100644 (file)
@@ -6,7 +6,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
-"POT-Creation-Date: 2000-04-07 12:18-0400\n"
+"POT-Creation-Date: 2000-04-08 15:20-0400\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -2218,7 +2218,7 @@ msgstr ""
 msgid "(unknown type)"
 msgstr ""
 
-#: lib/install.c:146 lib/uninstall.c:200
+#: lib/install.c:146 lib/uninstall.c:184
 #, c-format
 msgid "   file: %s action: %s\n"
 msgstr ""
@@ -2286,7 +2286,7 @@ msgstr ""
 msgid "renaming %s to %s\n"
 msgstr ""
 
-#: lib/install.c:562 lib/install.c:854 lib/uninstall.c:31
+#: lib/install.c:562 lib/install.c:834 lib/uninstall.c:29
 #, c-format
 msgid "rename of %s to %s failed: %s"
 msgstr ""
@@ -2300,25 +2300,25 @@ msgstr ""
 msgid "package: %s-%s-%s files test = %d\n"
 msgstr ""
 
-#: lib/install.c:784
+#: lib/install.c:764
 msgid "stopping install as we're running --test\n"
 msgstr ""
 
-#: lib/install.c:789
+#: lib/install.c:769
 msgid "running preinstall script (if any)\n"
 msgstr ""
 
-#: lib/install.c:814
+#: lib/install.c:794
 #, c-format
 msgid "warning: %s created as %s"
 msgstr ""
 
-#: lib/install.c:850
+#: lib/install.c:830
 #, c-format
 msgid "warning: %s saved as %s"
 msgstr ""
 
-#: lib/install.c:924
+#: lib/install.c:904
 msgid "running postinstall scripts (if any)\n"
 msgstr ""
 
@@ -2713,7 +2713,7 @@ msgstr ""
 msgid "display a verbose file listing"
 msgstr ""
 
-#: lib/rebuilddb.c:34 lib/rpmdb.c:295
+#: lib/rebuilddb.c:34 lib/rpmdb.c:298
 msgid "no dbpath has been set"
 msgstr ""
 
@@ -2868,101 +2868,101 @@ msgstr ""
 msgid "OK"
 msgstr ""
 
-#: lib/rpmdb.c:192
+#: lib/rpmdb.c:193
 #, c-format
 msgid "opening database mode 0x%x in %s\n"
 msgstr ""
 
-#: lib/rpmdb.c:204 lib/url.c:445
+#: lib/rpmdb.c:206 lib/url.c:445
 #, c-format
 msgid "failed to open %s: %s\n"
 msgstr ""
 
-#: lib/rpmdb.c:218 lib/rpmdb.c:226
+#: lib/rpmdb.c:220 lib/rpmdb.c:228
 #, c-format
 msgid "cannot get %s lock on database"
 msgstr ""
 
-#: lib/rpmdb.c:219
+#: lib/rpmdb.c:221
 msgid "exclusive"
 msgstr ""
 
-#: lib/rpmdb.c:227
+#: lib/rpmdb.c:229
 msgid "shared"
 msgstr ""
 
-#: lib/rpmdb.c:268
+#: lib/rpmdb.c:271
 msgid ""
 "old format database is present; use --rebuilddb to generate a new format "
 "database"
 msgstr ""
 
 #. error
-#: lib/rpmdb.c:554
+#: lib/rpmdb.c:587
 #, c-format
 msgid "cannot retrieve package \"%s\" from db"
 msgstr ""
 
-#: lib/rpmdb.c:583
+#: lib/rpmdb.c:616
 #, c-format
 msgid "package not found with key \"%s\" in %s"
 msgstr ""
 
-#: lib/rpmdb.c:592
+#: lib/rpmdb.c:625
 #, c-format
 msgid "key \"%s\" not found in %s"
 msgstr ""
 
-#: lib/rpmdb.c:610
+#: lib/rpmdb.c:643
 #, c-format
 msgid "rpmdbRemove: cannot read header at 0x%x"
 msgstr ""
 
-#: lib/rpmdb.c:638
+#: lib/rpmdb.c:671
 #, c-format
 msgid "removing 0 %s entries.\n"
 msgstr ""
 
-#: lib/rpmdb.c:644
+#: lib/rpmdb.c:677
 #, c-format
 msgid "removing \"%s\" from %s index.\n"
 msgstr ""
 
-#: lib/rpmdb.c:652
+#: lib/rpmdb.c:685
 #, c-format
 msgid "removing %d entries in %s index:\n"
 msgstr ""
 
-#: lib/rpmdb.c:656 lib/rpmdb.c:841
+#: lib/rpmdb.c:689 lib/rpmdb.c:898
 #, c-format
 msgid "\t%6d %s\n"
 msgstr ""
 
-#: lib/rpmdb.c:774
+#: lib/rpmdb.c:832
 msgid "cannot allocate space for database"
 msgstr ""
 
-#: lib/rpmdb.c:818
+#: lib/rpmdb.c:875
 #, c-format
 msgid "adding 0 %s entries.\n"
 msgstr ""
 
-#: lib/rpmdb.c:830
+#: lib/rpmdb.c:887
 #, c-format
 msgid "adding \"%s\" to %s index.\n"
 msgstr ""
 
-#: lib/rpmdb.c:837
+#: lib/rpmdb.c:894
 #, c-format
 msgid "adding %d entries to %s index:\n"
 msgstr ""
 
-#: lib/rpmdb.c:895
+#: lib/rpmdb.c:952
 #, c-format
 msgid "cannot read header at %d for update"
 msgstr ""
 
-#: lib/rpmdb.c:908
+#: lib/rpmdb.c:965
 msgid "header changed size!"
 msgstr ""
 
@@ -3382,45 +3382,40 @@ msgstr ""
 msgid "%s skipped due to missingok flag\n"
 msgstr ""
 
-#: lib/uninstall.c:42
+#: lib/uninstall.c:40
 #, c-format
 msgid "cannot remove %s - directory not empty"
 msgstr ""
 
-#: lib/uninstall.c:45
+#: lib/uninstall.c:43
 #, c-format
 msgid "rmdir of %s failed: %s"
 msgstr ""
 
-#: lib/uninstall.c:53
+#: lib/uninstall.c:51
 #, c-format
 msgid "removal of %s failed: %s"
 msgstr ""
 
-#: lib/uninstall.c:91
+#: lib/uninstall.c:89
 #, c-format
 msgid "cannot read header at %d for uninstall"
 msgstr ""
 
-#: lib/uninstall.c:106
-#, c-format
-msgid "cannot read packages named %s for uninstall"
-msgstr ""
-
-#: lib/uninstall.c:146
+#: lib/uninstall.c:130
 #, c-format
 msgid "will remove files test = %d\n"
 msgstr ""
 
-#: lib/uninstall.c:214
+#: lib/uninstall.c:198
 msgid "running postuninstall script (if any)\n"
 msgstr ""
 
-#: lib/uninstall.c:228
+#: lib/uninstall.c:212
 msgid "removing database entry\n"
 msgstr ""
 
-#: lib/uninstall.c:412
+#: lib/uninstall.c:396
 msgid "execution of script failed"
 msgstr ""