Mostly functional db2 interface, db3 still has problems.
authorjbj <devnull@localhost>
Thu, 30 Mar 2000 19:22:46 +0000 (19:22 +0000)
committerjbj <devnull@localhost>
Thu, 30 Mar 2000 19:22:46 +0000 (19:22 +0000)
CVS patchset: 3645
CVS date: 2000/03/30 19:22:46

lib/db0.c
lib/db1.c
lib/db2.c
lib/db3.c
lib/dbindex.c
lib/rebuilddb.c
macros.in
po/rpm.pot
rpm.c
rpmpopt.in

index fdcbf36..49db973 100644 (file)
--- a/lib/db0.c
+++ b/lib/db0.c
@@ -313,10 +313,12 @@ static int db0open(dbiIndex dbi)
                dbi_to_dbtype(dbi->dbi_type), dbi->dbi_openinfo);
 #endif
 
-    if (dbi->dbi_db)
+    if (dbi->dbi_db) {
        rc = 0;
-    else
+fprintf(stderr, "*** db%dopen: %s\n", dbi->dbi_major, dbi->dbi_file);
+    } else {
        rc = 1;
+    }
 
     return rc;
 }
index 6127a73..17248c7 100644 (file)
--- a/lib/db1.c
+++ b/lib/db1.c
@@ -315,10 +315,12 @@ static int db1open(dbiIndex dbi)
                dbi_to_dbtype(dbi->dbi_type), dbi->dbi_openinfo);
 #endif
 
-    if (dbi->dbi_db)
+    if (dbi->dbi_db) {
        rc = 0;
-    else
+fprintf(stderr, "*** db%dopen: %s\n", dbi->dbi_major, dbi->dbi_file);
+    } else {
        rc = 1;
+    }
 
     return rc;
 }
index f7f869d..3adc4c5 100644 (file)
--- a/lib/db2.c
+++ b/lib/db2.c
@@ -12,6 +12,33 @@ static int _debug = 1;
 
 #if DB_VERSION_MAJOR == 2
 #define        __USE_DB2       1
+
+/* XXX dbenv parameters */
+static int db_lorder = 0;                      /* 0 is native order */
+static void (*db_errcall) (const char *db_errpfx, char *buffer) = NULL;
+static FILE * db_errfile = NULL;
+static const char * db_errpfx = "rpmdb";
+static int db_verbose = 1;
+
+static int dbmp_mmapsize = 16 * 1024 * 1024;   /* XXX db2 default: 10 Mb */
+static int dbmp_size = 16 * 1024 * 1024;       /* XXX db2 default: 128 Kb */
+
+/* XXX dbinfo parameters */
+static int db_cachesize = 0;
+static int db_pagesize = 16 * 1024;    /* 512 - 64K, 0 is fs blksize */
+static void * (*db_malloc) (size_t nbytes) = NULL;
+
+static u_int32_t (*dbh_hash) (const void *, u_int32_t) = NULL;
+static u_int32_t dbh_ffactor = 0;      /* db1 default: 8 */
+static u_int32_t dbh_nelem = 0;                /* db1 default: 1 */
+static u_int32_t dbh_flags = 0;
+
+#if defined(INIT_CDB)
+static int dbopenflags = DB_INIT_CDB;
+#else
+static int dbopenflags = DB_INIT_MPOOL;
+#endif
+
 #define        _mymemset(_a, _b, _c)   memset((_a), (_b), (_c))
 
 static inline DBTYPE dbi_to_dbtype(DBI_TYPE dbitype)
@@ -97,9 +124,9 @@ static int cvtdberr(dbiIndex dbi, const char * msg, int error, int printit) {
     if (error == 0)
        rc = 0;
     else if (error < 0)
-       rc = -1;
-    else if (error > 0)
        rc = 1;
+    else if (error > 0)
+       rc = -1;
 
     if (printit && rc) {
        fprintf(stderr, "*** db%d %s rc %d %s\n", dbi->dbi_major, msg,
@@ -113,14 +140,13 @@ static int db_init(dbiIndex dbi, const char *home, int dbflags,
                        DB_ENV **dbenvp, void **dbinfop)
 {
     DB_ENV *dbenv = NULL;
-    FILE * dberrfile = stderr;
-    const char * dberrpfx = "rpmdb";
-    int dbcachesize = 1024 * 1024;
-    int dbpagesize = 32 * 1024;                        /* 0 - 64K */
+    int mydbopenflags;
     int rc;
 
     if (dbenvp == NULL || dbinfop == NULL)
        return 1;
+    if (db_errfile == NULL)
+       db_errfile = stderr;
 
     rc = db_env_create(&dbenv, 0);
     rc = cvtdberr(dbi, "db_env_create", rc, _debug);
@@ -129,47 +155,60 @@ static int db_init(dbiIndex dbi, const char *home, int dbflags,
 
 #if defined(__USE_DB3)
   { int xx;
- /* dbenv->set_errcall(???) */
-    xx = dbenv->set_errfile(dberrfile);
-    xx = cvtdberr(dbi, "dbenv->set_errfile", xx, _debug);
-    xx = dbenv->set_errpfx(dberrpfx);
-    xx = cvtdberr(dbi, "dbenv->set_errpfx", xx, _debug);
+    dbenv->set_errcall(dbenv, db_errcall);
+    dbenv->set_errfile(dbenv, db_errfile);
+    dbenv->set_errpfx(dbenv, db_errpfx);
  /* dbenv->set_paniccall(???) */
- /* dbenv->set_verbose(???) */
+    dbenv->set_verbose(dbenv, DB_VERB_CHKPOINT, db_verbose);
+    dbenv->set_verbose(dbenv, DB_VERB_DEADLOCK, db_verbose);
+    dbenv->set_verbose(dbenv, DB_VERB_RECOVERY, db_verbose);
+    dbenv->set_verbose(dbenv, DB_VERB_WAITSFOR, db_verbose);
  /* dbenv->set_lg_max(???) */
  /* dbenv->set_lk_conflicts(???) */
  /* dbenv->set_lk_detect(???) */
  /* dbenv->set_lk_max(???) */
- /* dbenv->set_mp_mmapsize(???) */
-    xx = dbenv->set_cachesize(dbcachesize);
+    xx = dbenv->set_mp_mmapsize(dbenv, dbmp_mmapsize);
+    xx = cvtdberr(dbi, "dbenv->set_mp_mmapsize", xx, _debug);
+    xx = dbenv->set_cachesize(dbenv, 0, dbmp_size, 0);
     xx = cvtdberr(dbi, "dbenv->set_cachesize", xx, _debug);
  /* dbenv->set_tx_max(???) */
  /* dbenv->set_tx_recover(???) */
   }
 #else
-    dbenv->db_errfile = dberrfile;
-    dbenv->db_errpfx = dberrpfx;
-    dbenv->mp_size = dbcachesize;
+    dbenv->db_errcall = db_errcall;
+    dbenv->db_errfile = db_errfile;
+    dbenv->db_errpfx = db_errpfx;
+    dbenv->db_verbose = db_verbose;
+    dbenv->mp_mmapsize = dbmp_mmapsize;        /* XXX default is 10 Mb */
+    dbenv->mp_size = dbmp_size;                /* XXX default is 128 Kb */
 #endif
 
 #define _DBFMASK       (DB_CREATE|DB_NOMMAP|DB_THREAD)
+    mydbopenflags = (dbflags & _DBFMASK) | dbopenflags;
 
 #if defined(__USE_DB3)
-    rc = dbenv->open(dbenv, home, NULL, (dbflags & _DBFMASK), 0);
+    rc = dbenv->open(dbenv, home, NULL, mydbopenflags, 0);
     rc = cvtdberr(dbi, "dbenv->open", rc, _debug);
     if (rc)
        goto errxit;
-    xx = db->set_pagesize(db, dbpagesize)
-    xx = cvtdberr(dbi, "db->set_pagesize", xx, _debug);
     *dbinfop = NULL;
 #else
-    rc = db_appinit(home, NULL, dbenv, (dbflags & _DBFMASK));
+    rc = db_appinit(home, NULL, dbenv, mydbopenflags);
     rc = cvtdberr(dbi, "db_appinit", rc, _debug);
     if (rc)
        goto errxit;
     {  DB_INFO * dbinfo = xcalloc(1, sizeof(*dbinfo));
        /* XXX W2DO? */
-       dbinfo->db_pagesize = dbpagesize;
+       dbinfo->db_cachesize = db_cachesize;
+       dbinfo->db_lorder = db_lorder;
+       dbinfo->db_pagesize = db_pagesize;
+       dbinfo->db_malloc = db_malloc;
+       if (dbflags & DB_CREATE) {
+           dbinfo->h_ffactor = dbh_ffactor;
+           dbinfo->h_hash = dbh_hash;
+           dbinfo->h_nelem = dbh_nelem;
+           dbinfo->flags = dbh_flags;
+       }
        *dbinfop = dbinfo;
      }
 #endif
@@ -182,7 +221,8 @@ errxit:
 
 #if defined(__USE_DB3)
     if (dbenv) {
-       xx = dbenv->close(dbenv);
+       int xx;
+       xx = dbenv->close(dbenv, 0);
        xx = cvtdberr(dbi, "dbenv->close", xx, _debug);
     }
 #else
@@ -219,7 +259,7 @@ static int db2close(dbiIndex dbi, unsigned int flags)
     if (dbi->dbi_dbenv) {
        DB_ENV * dbenv = (DB_ENV *)dbi->dbi_dbenv;
 #if defined(__USE_DB3)
-       xx = dbenv->close(dbenv);
+       xx = dbenv->close(dbenv, 0);
        xx = cvtdberr(dbi, "dbenv->close", xx, _debug);
 #else
        xx = db_appexit(dbenv);
@@ -254,6 +294,7 @@ static int db2GetFirstKey(dbiIndex dbi, const char ** keyp)
 {
     DBT key, data;
     DB * db;
+    int _printit;
     int rc, xx;
 
     if (dbi == NULL || dbi->dbi_db == NULL)
@@ -268,11 +309,16 @@ static int db2GetFirstKey(dbiIndex dbi, const char ** keyp)
 
 #if defined(__USE_DB2) || defined(__USE_DB3)
     {  DBC * dbcursor = NULL;
+#if defined(__USE_DB3)
+       rc = db->cursor(db, NULL, &dbcursor, 0);
+#else
        rc = db->cursor(db, NULL, &dbcursor);
+#endif
        rc = cvtdberr(dbi, "db->cursor", rc, _debug);
        if (rc == 0) {
            rc = dbcursor->c_get(dbcursor, &key, &data, DB_FIRST);
-           rc = cvtdberr(dbi, "dbcursor->c_get", rc, _debug);
+           _printit = (rc == DB_NOTFOUND ? 0 : _debug);
+           rc = cvtdberr(dbi, "dbcursor->c_get", rc, _printit);
        }
        if (dbcursor) {
            xx = dbcursor->c_close(dbcursor);
@@ -297,6 +343,7 @@ static int db2SearchIndex(dbiIndex dbi, const char * str, dbiIndexSet * set)
 {
     DBT key, data;
     DB * db = GetDB(dbi);
+    int _printit;
     int rc;
 
     if (set) *set = NULL;
@@ -310,7 +357,8 @@ static int db2SearchIndex(dbiIndex dbi, const char * str, dbiIndexSet * set)
 
 #if defined(__USE_DB2) || defined(__USE_DB3)
     rc = db->get(db, NULL, &key, &data, 0);
-    rc = cvtdberr(dbi, "db->get", rc, _debug);
+    _printit = (rc == DB_NOTFOUND ? 0 : _debug);
+    rc = cvtdberr(dbi, "db->get", rc, _printit);
 #else
     rc = db->get(db, &key, &data, 0);
 #endif
@@ -385,6 +433,8 @@ static int db2open(dbiIndex dbi)
        rc = db_create(&db, dbenv, 0);
        rc = cvtdberr(dbi, "db_create", rc, _debug);
        if (rc == 0) {
+           rc = db->set_pagesize(db, db_pagesize);
+           rc = cvtdberr(dbi, "db->set_pagesize", rc, _debug);
            rc = db->open(db, dbi->dbi_file, NULL, dbi_to_dbtype(dbi->dbi_type),
                        dbflags, dbi->dbi_perms);
            rc = cvtdberr(dbi, "db->open", rc, _debug);
@@ -405,10 +455,12 @@ static int db2open(dbiIndex dbi)
                dbi_to_dbtype(dbi->dbi_type), dbi->dbi_openinfo);
 #endif /* __USE_DB2 || __USE_DB3 */
 
-    if (rc == 0 && dbi->dbi_db != NULL)
+    if (rc == 0 && dbi->dbi_db != NULL) {
        rc = 0;
-    else
+fprintf(stderr, "*** db%dopen: %s\n", dbi->dbi_major, dbi->dbi_file);
+    } else {
        rc = 1;
+    }
 
     return rc;
 }
index acc8f31..26c8482 100644 (file)
--- a/lib/db3.c
+++ b/lib/db3.c
@@ -10,12 +10,35 @@ static int _debug = 1;
 /*@access dbiIndex@*/
 /*@access dbiIndexSet@*/
 
-static const char * dberrpfx = "rpmdb";
-static int dbcachesize = 1024 * 1024;
-static int dbpagesize = 32 * 1024;                     /* 0 - 64K */
-
 #if DB_VERSION_MAJOR == 3
 #define        __USE_DB3       1
+
+/* XXX dbenv parameters */
+static int db_lorder = 0;                      /* 0 is native order */
+static void (*db_errcall) (const char *db_errpfx, char *buffer) = NULL;
+static FILE * db_errfile = NULL;
+static const char * db_errpfx = "rpmdb";
+static int db_verbose = 1;
+
+static int dbmp_mmapsize = 16 * 1024 * 1024;   /* XXX db2 default: 10 Mb */
+static int dbmp_size = 16 * 1024 * 1024;       /* XXX db2 default: 128 Kb */
+
+/* XXX dbinfo parameters */
+static int db_cachesize = 0;
+static int db_pagesize = 0;                    /* 512 - 64K, 0 is fs blksize */
+static void * (*db_malloc) (size_t nbytes) = NULL;
+
+static u_int32_t (*dbh_hash) (const void *, u_int32_t) = NULL;
+static u_int32_t dbh_ffactor = 0;      /* db1 default: 8 */
+static u_int32_t dbh_nelem = 0;                /* db1 default: 1 */
+static u_int32_t dbh_flags = 0;
+
+#if defined(__ISE_DB3)
+static int dbopenflags = 0;
+#else
+static int dbopenflags = DB_INIT_MPOOL;
+#endif
+
 #define        _mymemset(_a, _b, _c)   memset((_a), (_b), (_c))
 
 static inline DBTYPE dbi_to_dbtype(DBI_TYPE dbitype)
@@ -101,9 +124,9 @@ static int cvtdberr(dbiIndex dbi, const char * msg, int error, int printit) {
     if (error == 0)
        rc = 0;
     else if (error < 0)
-       rc = -1;
-    else if (error > 0)
        rc = 1;
+    else if (error > 0)
+       rc = -1;
 
     if (printit && rc) {
        fprintf(stderr, "*** db%d %s rc %d %s\n", dbi->dbi_major, msg,
@@ -117,11 +140,13 @@ static int db_init(dbiIndex dbi, const char *home, int dbflags,
                        DB_ENV **dbenvp, void **dbinfop)
 {
     DB_ENV *dbenv = NULL;
-    FILE * dberrfile = stderr;
+    int mydbopenflags;
     int rc;
 
     if (dbenvp == NULL || dbinfop == NULL)
        return 1;
+    if (db_errfile == NULL)
+       db_errfile = stderr;
 
     rc = db_env_create(&dbenv, 0);
     rc = cvtdberr(dbi, "db_env_create", rc, _debug);
@@ -130,43 +155,60 @@ static int db_init(dbiIndex dbi, const char *home, int dbflags,
 
 #if defined(__USE_DB3)
   { int xx;
- /* dbenv->set_errcall(???) */
-    dbenv->set_errfile(dbenv, dberrfile);
-    dbenv->set_errpfx(dbenv, dberrpfx);
+    dbenv->set_errcall(dbenv, db_errcall);
+    dbenv->set_errfile(dbenv, db_errfile);
+    dbenv->set_errpfx(dbenv, db_errpfx);
  /* dbenv->set_paniccall(???) */
- /* dbenv->set_verbose(???) */
+    dbenv->set_verbose(dbenv, DB_VERB_CHKPOINT, db_verbose);
+    dbenv->set_verbose(dbenv, DB_VERB_DEADLOCK, db_verbose);
+    dbenv->set_verbose(dbenv, DB_VERB_RECOVERY, db_verbose);
+    dbenv->set_verbose(dbenv, DB_VERB_WAITSFOR, db_verbose);
  /* dbenv->set_lg_max(???) */
  /* dbenv->set_lk_conflicts(???) */
  /* dbenv->set_lk_detect(???) */
  /* dbenv->set_lk_max(???) */
- /* dbenv->set_mp_mmapsize(???) */
-    xx = dbenv->set_cachesize(dbenv, 0, dbcachesize, 0);
+    xx = dbenv->set_mp_mmapsize(dbenv, dbmp_mmapsize);
+    xx = cvtdberr(dbi, "dbenv->set_mp_mmapsize", xx, _debug);
+    xx = dbenv->set_cachesize(dbenv, 0, dbmp_size, 0);
     xx = cvtdberr(dbi, "dbenv->set_cachesize", xx, _debug);
  /* dbenv->set_tx_max(???) */
  /* dbenv->set_tx_recover(???) */
   }
 #else
-    dbenv->db_errfile = dberrfile;
-    dbenv->db_errpfx = dberrpfx;
-    dbenv->mp_size = dbcachesize;
+    dbenv->db_errcall = db_errcall;
+    dbenv->db_errfile = db_errfile;
+    dbenv->db_errpfx = db_errpfx;
+    dbenv->db_verbose = db_verbose;
+    dbenv->mp_mmapsize = dbmp_mmapsize;        /* XXX default is 10 Mb */
+    dbenv->mp_size = dbmp_size;                /* XXX default is 128 Kb */
 #endif
 
 #define _DBFMASK       (DB_CREATE|DB_NOMMAP|DB_THREAD)
+    mydbopenflags = (dbflags & _DBFMASK) | dbopenflags;
 
 #if defined(__USE_DB3)
-    rc = dbenv->open(dbenv, home, NULL, (dbflags & _DBFMASK), 0);
+    rc = dbenv->open(dbenv, home, NULL, mydbopenflags, 0);
     rc = cvtdberr(dbi, "dbenv->open", rc, _debug);
     if (rc)
        goto errxit;
     *dbinfop = NULL;
 #else
-    rc = db_appinit(home, NULL, dbenv, (dbflags & _DBFMASK));
+    rc = db_appinit(home, NULL, dbenv, mydbopenflags);
     rc = cvtdberr(dbi, "db_appinit", rc, _debug);
     if (rc)
        goto errxit;
     {  DB_INFO * dbinfo = xcalloc(1, sizeof(*dbinfo));
        /* XXX W2DO? */
-       dbinfo->db_pagesize = dbpagesize;
+       dbinfo->db_cachesize = db_cachesize;
+       dbinfo->db_lorder = db_lorder;
+       dbinfo->db_pagesize = db_pagesize;
+       dbinfo->db_malloc = db_malloc;
+       if (dbflags & DB_CREATE) {
+           dbinfo->h_ffactor = dbh_ffactor;
+           dbinfo->h_hash = dbh_hash;
+           dbinfo->h_nelem = dbh_nelem;
+           dbinfo->flags = dbh_flags;
+       }
        *dbinfop = dbinfo;
      }
 #endif
@@ -252,6 +294,7 @@ static int db3GetFirstKey(dbiIndex dbi, const char ** keyp)
 {
     DBT key, data;
     DB * db;
+    int _printit;
     int rc, xx;
 
     if (dbi == NULL || dbi->dbi_db == NULL)
@@ -274,7 +317,8 @@ static int db3GetFirstKey(dbiIndex dbi, const char ** keyp)
        rc = cvtdberr(dbi, "db->cursor", rc, _debug);
        if (rc == 0) {
            rc = dbcursor->c_get(dbcursor, &key, &data, DB_FIRST);
-           rc = cvtdberr(dbi, "dbcursor->c_get", rc, _debug);
+           _printit = (rc == DB_NOTFOUND ? 0 : _debug);
+           rc = cvtdberr(dbi, "dbcursor->c_get", rc, _printit);
        }
        if (dbcursor) {
            xx = dbcursor->c_close(dbcursor);
@@ -299,6 +343,7 @@ static int db3SearchIndex(dbiIndex dbi, const char * str, dbiIndexSet * set)
 {
     DBT key, data;
     DB * db = GetDB(dbi);
+    int _printit;
     int rc;
 
     if (set) *set = NULL;
@@ -312,7 +357,8 @@ static int db3SearchIndex(dbiIndex dbi, const char * str, dbiIndexSet * set)
 
 #if defined(__USE_DB2) || defined(__USE_DB3)
     rc = db->get(db, NULL, &key, &data, 0);
-    rc = cvtdberr(dbi, "db->get", rc, _debug);
+    _printit = (rc == DB_NOTFOUND ? 0 : _debug);
+    rc = cvtdberr(dbi, "db->get", rc, _printit);
 #else
     rc = db->get(db, &key, &data, 0);
 #endif
@@ -387,12 +433,13 @@ static int db3open(dbiIndex dbi)
        rc = db_create(&db, dbenv, 0);
        rc = cvtdberr(dbi, "db_create", rc, _debug);
        if (rc == 0) {
-           int xx;
+           if (db_pagesize) {
+               rc = db->set_pagesize(db, db_pagesize);
+               rc = cvtdberr(dbi, "db->set_pagesize", rc, _debug);
+           }
            rc = db->open(db, dbi->dbi_file, NULL, dbi_to_dbtype(dbi->dbi_type),
                        dbflags, dbi->dbi_perms);
            rc = cvtdberr(dbi, "db->open", rc, _debug);
-           xx = db->set_pagesize(db, dbpagesize);
-           xx = cvtdberr(dbi, "db->set_pagesize", xx, _debug);
        }
 #else
        rc = db_open(dbi->dbi_file, dbi_to_dbtype(dbi->dbi_type), dbflags,
@@ -410,10 +457,12 @@ static int db3open(dbiIndex dbi)
                dbi_to_dbtype(dbi->dbi_type), dbi->dbi_openinfo);
 #endif /* __USE_DB2 || __USE_DB3 */
 
-    if (rc == 0 && dbi->dbi_db != NULL)
+    if (rc == 0 && dbi->dbi_db != NULL) {
        rc = 0;
-    else
+fprintf(stderr, "*** db%dopen: %s\n", dbi->dbi_major, dbi->dbi_file);
+    } else {
        rc = 1;
+    }
 
     return rc;
 }
index efd51e2..2387f8f 100644 (file)
@@ -75,8 +75,7 @@ static void freeDBI( /*@only@*/ /*@null@*/ dbiIndex dbi) {
     }
 }
 
-int _preferDbiMajor = 0;       /* XXX shared with rebuilddb.c */
-int _useDbiMajor = -1;
+int _useDbiMajor = -1;         /* XXX shared with rebuilddb.c */
 
 static struct _dbiVec *mydbvecs[] = {
     DB0vec, DB1vec, DB2vec, DB3vec, NULL
index 89479e9..45b0c09 100644 (file)
@@ -5,8 +5,7 @@
 
 #include "rpmdb.h"
 
-extern int _preferDbiMajor;    /* XXX shared with rebuilddb.c */
-extern int _useDbiMajor;
+extern int _useDbiMajor;       /* XXX shared with dbindex.c */
 
 /** */
 int rpmdbRebuild(const char * rootdir)
@@ -22,7 +21,12 @@ int rpmdbRebuild(const char * rootdir)
     int nocleanup = 1;
     int failed = 0;
     int rc = 0;
-    int unique = 1;    /* XXX always eliminate duplicate entries */
+    int _filterDbDups;         /* XXX always eliminate duplicate entries */
+    int _preferDbiMajor;
+
+    _filterDbDups = rpmExpandNumeric("%{_filterdbdups}");
+    _preferDbiMajor = rpmExpandNumeric("%{_preferdb}");
+fprintf(stderr, "*** rpmdbRebuild: filterdbdups %d preferdb %d\n", _filterDbDups, _preferDbiMajor);
 
     tfn = rpmGetPath("%{_dbpath}", NULL);
     if (!(tfn && tfn[0] != '%')) {
@@ -69,7 +73,11 @@ int rpmdbRebuild(const char * rootdir)
        goto exit;
     }
 
+#if 0
     _useDbiMajor = ((_preferDbiMajor >= 0) ? (_preferDbiMajor & 0x03) : -1);
+#else
+    _useDbiMajor = -1;
+#endif
     rpmMessage(RPMMESS_DEBUG, _("opening old database with dbi_major %d\n"),
                _useDbiMajor);
     if (openDatabase(rootdir, dbpath, &olddb, O_RDONLY, 0644, 
@@ -103,7 +111,7 @@ int rpmdbRebuild(const char * rootdir)
                int skip;
 
                /* XXX always eliminate duplicate entries */
-               if (unique && !rpmdbFindByHeader(newdb, h, &matches)) {
+               if (_filterDbDups && !rpmdbFindByHeader(newdb, h, &matches)) {
                    const char * name, * version, * release;
                    headerNVR(h, &name, &version, &release);
 
index be5dbd6..9e5f845 100644 (file)
--- a/macros.in
+++ b/macros.in
@@ -1,4 +1,4 @@
-# $Id: macros.in,v 1.47 2000/03/09 18:13:03 jbj Exp $
+# $Id: macros.in,v 1.48 2000/03/30 19:22:46 jbj Exp $
 #==============================================================================
 # Macro naming conventions (preliminary):
 #
 #
 #%vendor
 
+# Preferred db interface:
+#      0       linux glibc libdb1 routines.
+#      1       db_185.h interface in db2/db3 libdb.a.
+#      2       native db2 interface.
+#      3       native db3 interface.
+%_preferdb             2
+
+# Filter duplicate entries in db (needed only to correct bug pre rpm-3.0.4)
+%_filterdbdups         no
+
 #==============================================================================
 # ---- per-platform macros.
 #      Macros that are specific to an individual platform. The values here
index ed6b00b..63222fb 100644 (file)
@@ -6,7 +6,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
-"POT-Creation-Date: 2000-03-27 10:08-0500\n"
+"POT-Creation-Date: 2000-03-28 15:31-0500\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"
@@ -39,85 +39,85 @@ msgstr ""
 msgid "Failed to read spec file from %s\n"
 msgstr ""
 
-#: build.c:177
+#: build.c:176
 #, c-format
 msgid "Failed to rename %s to %s: %s\n"
 msgstr ""
 
-#: build.c:215
+#: build.c:216
 #, c-format
 msgid "File is not a regular file: %s\n"
 msgstr ""
 
-#: build.c:222
+#: build.c:223
 #, c-format
 msgid "File %s does not appear to be a specfile.\n"
 msgstr ""
 
 #. parse up the build operators
-#: build.c:283
+#: build.c:284
 #, c-format
 msgid "Building target platforms: %s\n"
 msgstr ""
 
-#: build.c:298
+#: build.c:299
 #, c-format
 msgid "Building for target %s\n"
 msgstr ""
 
-#: build.c:348
+#: build.c:349
 msgid "buildroot already specified"
 msgstr ""
 
-#: build.c:355
+#: build.c:356
 msgid "--buildarch has been obsoleted.  Use the --target option instead.\n"
 msgstr ""
 
-#: build.c:359
+#: build.c:360
 msgid "--buildos has been obsoleted.  Use the --target option instead.\n"
 msgstr ""
 
-#: build.c:381
+#: build.c:382
 msgid "override build architecture"
 msgstr ""
 
-#: build.c:383
+#: build.c:384
 msgid "override build operating system"
 msgstr ""
 
-#: build.c:385
+#: build.c:386
 msgid "override build root"
 msgstr ""
 
-#: build.c:387 rpm.c:500
+#: build.c:388 rpm.c:498
 msgid "remove build tree when done"
 msgstr ""
 
-#: build.c:389
+#: build.c:390
 msgid "do not execute any stages of the build"
 msgstr ""
 
-#: build.c:391
+#: build.c:392
 msgid "do not accept I18N msgstr's from specfile"
 msgstr ""
 
-#: build.c:393
+#: build.c:394
 msgid "remove sources when done"
 msgstr ""
 
-#: build.c:395
+#: build.c:396
 msgid "remove specfile when done"
 msgstr ""
 
-#: build.c:397 rpm.c:498
+#: build.c:398 rpm.c:496
 msgid "skip straight to specified stage (only for c,i)"
 msgstr ""
 
-#: build.c:399
+#: build.c:400
 msgid "override target platform"
 msgstr ""
 
-#: build.c:401
+#: build.c:402
 msgid "lookup I18N strings in specfile catalog"
 msgstr ""
 
@@ -163,1056 +163,1056 @@ msgstr ""
 msgid "no copyright!\n"
 msgstr ""
 
-#: rpm.c:202
+#: rpm.c:200
 #, c-format
 msgid "rpm: %s\n"
 msgstr ""
 
-#: rpm.c:213
+#: rpm.c:211
 #, c-format
 msgid "RPM version %s\n"
 msgstr ""
 
-#: rpm.c:217
+#: rpm.c:215
 msgid "Copyright (C) 1998 - Red Hat Software"
 msgstr ""
 
-#: rpm.c:218
+#: rpm.c:216
 msgid "This may be freely redistributed under the terms of the GNU GPL"
 msgstr ""
 
-#: rpm.c:226
+#: rpm.c:224
 msgid "usage: rpm {--help}"
 msgstr ""
 
-#: rpm.c:227
+#: rpm.c:225
 msgid "       rpm {--version}"
 msgstr ""
 
-#: rpm.c:228
+#: rpm.c:226
 msgid "       rpm {--initdb}   [--dbpath <dir>]"
 msgstr ""
 
-#: rpm.c:229
+#: rpm.c:227
 msgid ""
 "       rpm {--install -i} [-v] [--hash -h] [--percent] [--force] [--test]"
 msgstr ""
 
-#: rpm.c:230
+#: rpm.c:228
 msgid "                        [--replacepkgs] [--replacefiles] [--root <dir>]"
 msgstr ""
 
-#: rpm.c:231
+#: rpm.c:229
 msgid "                        [--excludedocs] [--includedocs] [--noscripts]"
 msgstr ""
 
-#: rpm.c:232
+#: rpm.c:230
 msgid ""
 "                        [--rcfile <file>] [--ignorearch] [--dbpath <dir>]"
 msgstr ""
 
-#: rpm.c:233
+#: rpm.c:231
 msgid ""
 "                        [--prefix <dir>] [--ignoreos] [--nodeps] [--allfiles]"
 msgstr ""
 
-#: rpm.c:234
+#: rpm.c:232
 msgid ""
 "                        [--ftpproxy <host>] [--ftpport <port>] [--justdb]"
 msgstr ""
 
-#: rpm.c:235 rpm.c:244 rpm.c:253
+#: rpm.c:233 rpm.c:242 rpm.c:251
 msgid "                        [--httpproxy <host>] [--httpport <port>] "
 msgstr ""
 
-#: rpm.c:236 rpm.c:246
+#: rpm.c:234 rpm.c:244
 msgid "                        [--noorder] [--relocate oldpath=newpath]"
 msgstr ""
 
-#: rpm.c:237
+#: rpm.c:235
 msgid ""
 "                        [--badreloc] [--notriggers] [--excludepath <path>]"
 msgstr ""
 
-#: rpm.c:238
+#: rpm.c:236
 msgid "                        [--ignoresize] file1.rpm ... fileN.rpm"
 msgstr ""
 
-#: rpm.c:239
+#: rpm.c:237
 msgid ""
 "       rpm {--upgrade -U} [-v] [--hash -h] [--percent] [--force] [--test]"
 msgstr ""
 
-#: rpm.c:240
+#: rpm.c:238
 msgid "                        [--oldpackage] [--root <dir>] [--noscripts]"
 msgstr ""
 
-#: rpm.c:241
+#: rpm.c:239
 msgid ""
 "                        [--excludedocs] [--includedocs] [--rcfile <file>]"
 msgstr ""
 
-#: rpm.c:242
+#: rpm.c:240
 msgid ""
 "                        [--ignorearch]  [--dbpath <dir>] [--prefix <dir>] "
 msgstr ""
 
-#: rpm.c:243
+#: rpm.c:241
 msgid "                        [--ftpproxy <host>] [--ftpport <port>]"
 msgstr ""
 
-#: rpm.c:245
+#: rpm.c:243
 msgid "                        [--ignoreos] [--nodeps] [--allfiles] [--justdb]"
 msgstr ""
 
-#: rpm.c:247
+#: rpm.c:245
 msgid ""
 "                        [--badreloc] [--excludepath <path>] [--ignoresize]"
 msgstr ""
 
-#: rpm.c:248
+#: rpm.c:246
 msgid "                        file1.rpm ... fileN.rpm"
 msgstr ""
 
-#: rpm.c:249
+#: rpm.c:247
 msgid "       rpm {--query -q} [-afpg] [-i] [-l] [-s] [-d] [-c] [-v] [-R]"
 msgstr ""
 
-#: rpm.c:250
+#: rpm.c:248
 msgid "                        [--scripts] [--root <dir>] [--rcfile <file>]"
 msgstr ""
 
-#: rpm.c:251
+#: rpm.c:249
 msgid "                        [--whatprovides] [--whatrequires] [--requires]"
 msgstr ""
 
-#: rpm.c:252
+#: rpm.c:250
 msgid ""
 "                        [--triggeredby] [--ftpuseport] [--ftpproxy <host>]"
 msgstr ""
 
-#: rpm.c:254
+#: rpm.c:252
 msgid ""
 "                        [--ftpport <port>] [--provides] [--triggers] [--dump]"
 msgstr ""
 
-#: rpm.c:255
+#: rpm.c:253
 msgid "                        [--changelog] [--dbpath <dir>] [targets]"
 msgstr ""
 
-#: rpm.c:256
+#: rpm.c:254
 msgid "       rpm {--verify -V -y} [-afpg] [--root <dir>] [--rcfile <file>]"
 msgstr ""
 
-#: rpm.c:257
+#: rpm.c:255
 msgid ""
 "                        [--dbpath <dir>] [--nodeps] [--nofiles] [--noscripts]"
 msgstr ""
 
-#: rpm.c:258
+#: rpm.c:256
 msgid "                        [--nomd5] [targets]"
 msgstr ""
 
-#: rpm.c:259
+#: rpm.c:257
 msgid "       rpm {--setperms} [-afpg] [target]"
 msgstr ""
 
-#: rpm.c:260
+#: rpm.c:258
 msgid "       rpm {--setugids} [-afpg] [target]"
 msgstr ""
 
-#: rpm.c:261
+#: rpm.c:259
 msgid "       rpm {--freshen -F} file1.rpm ... fileN.rpm"
 msgstr ""
 
-#: rpm.c:262
+#: rpm.c:260
 msgid "       rpm {--erase -e} [--root <dir>] [--noscripts] [--rcfile <file>]"
 msgstr ""
 
-#: rpm.c:263
+#: rpm.c:261
 msgid "                        [--dbpath <dir>] [--nodeps] [--allmatches]"
 msgstr ""
 
-#: rpm.c:264
+#: rpm.c:262
 msgid ""
 "                        [--justdb] [--notriggers] rpackage1 ... packageN"
 msgstr ""
 
-#: rpm.c:265
+#: rpm.c:263
 msgid ""
 "       rpm {-b|t}[plciba] [-v] [--short-circuit] [--clean] [--rcfile  <file>]"
 msgstr ""
 
-#: rpm.c:266
+#: rpm.c:264
 msgid "                        [--sign] [--nobuild] [--timecheck <s>] ]"
 msgstr ""
 
-#: rpm.c:267
+#: rpm.c:265
 msgid "                        [--target=platform1[,platform2...]]"
 msgstr ""
 
-#: rpm.c:268
+#: rpm.c:266
 msgid "                        [--rmsource] [--rmspec] specfile"
 msgstr ""
 
-#: rpm.c:269
+#: rpm.c:267
 msgid "       rpm {--rmsource} [--rcfile <file>] [-v] specfile"
 msgstr ""
 
-#: rpm.c:270
+#: rpm.c:268
 msgid ""
 "       rpm {--rebuild} [--rcfile <file>] [-v] source1.rpm ... sourceN.rpm"
 msgstr ""
 
-#: rpm.c:271
+#: rpm.c:269
 msgid ""
 "       rpm {--recompile} [--rcfile <file>] [-v] source1.rpm ... sourceN.rpm"
 msgstr ""
 
-#: rpm.c:272
+#: rpm.c:270
 msgid "       rpm {--resign} [--rcfile <file>] package1 package2 ... packageN"
 msgstr ""
 
-#: rpm.c:273
+#: rpm.c:271
 msgid "       rpm {--addsign} [--rcfile <file>] package1 package2 ... packageN"
 msgstr ""
 
-#: rpm.c:274
+#: rpm.c:272
 msgid ""
 "       rpm {--checksig -K} [--nopgp] [--nogpg] [--nomd5] [--rcfile <file>]"
 msgstr ""
 
-#: rpm.c:275
+#: rpm.c:273
 msgid "                           package1 ... packageN"
 msgstr ""
 
-#: rpm.c:276
+#: rpm.c:274
 msgid "       rpm {--rebuilddb} [--rcfile <file>] [--dbpath <dir>]"
 msgstr ""
 
-#: rpm.c:277
+#: rpm.c:275
 msgid "       rpm {--querytags}"
 msgstr ""
 
-#: rpm.c:311
+#: rpm.c:309
 msgid "usage:"
 msgstr ""
 
-#: rpm.c:313
+#: rpm.c:311
 msgid "print this message"
 msgstr ""
 
-#: rpm.c:315
+#: rpm.c:313
 msgid "print the version of rpm being used"
 msgstr ""
 
-#: rpm.c:316
+#: rpm.c:314
 msgid "   all modes support the following arguments:"
 msgstr ""
 
-#: rpm.c:317
+#: rpm.c:315
 msgid "      --rcfile <file>     "
 msgstr ""
 
-#: rpm.c:318
+#: rpm.c:316
 msgid "use <file> instead of /etc/rpmrc and $HOME/.rpmrc"
 msgstr ""
 
-#: rpm.c:320
+#: rpm.c:318
 msgid "be a little more verbose"
 msgstr ""
 
-#: rpm.c:322
+#: rpm.c:320
 msgid "be incredibly verbose (for debugging)"
 msgstr ""
 
-#: rpm.c:324
+#: rpm.c:322
 msgid "query mode"
 msgstr ""
 
-#: rpm.c:325 rpm.c:387 rpm.c:451 rpm.c:479
+#: rpm.c:323 rpm.c:385 rpm.c:449 rpm.c:477
 msgid "      --root <dir>        "
 msgstr ""
 
-#: rpm.c:326 rpm.c:388 rpm.c:452 rpm.c:480 rpm.c:542
+#: rpm.c:324 rpm.c:386 rpm.c:450 rpm.c:478 rpm.c:540
 msgid "use <dir> as the top level directory"
 msgstr ""
 
-#: rpm.c:327 rpm.c:385 rpm.c:415 rpm.c:467 rpm.c:539
+#: rpm.c:325 rpm.c:383 rpm.c:413 rpm.c:465 rpm.c:537
 msgid "      --dbpath <dir>      "
 msgstr ""
 
-#: rpm.c:328 rpm.c:386 rpm.c:416 rpm.c:468 rpm.c:540
+#: rpm.c:326 rpm.c:384 rpm.c:414 rpm.c:466 rpm.c:538
 msgid "use <dir> as the directory for the database"
 msgstr ""
 
-#: rpm.c:329
+#: rpm.c:327
 msgid "      --queryformat <qfmt>"
 msgstr ""
 
-#: rpm.c:330
+#: rpm.c:328
 msgid "use <qfmt> as the header format (implies -i)"
 msgstr ""
 
-#: rpm.c:331
+#: rpm.c:329
 msgid ""
 "   install, upgrade and query (with -p) allow ftp URL's to be used in place"
 msgstr ""
 
-#: rpm.c:332
+#: rpm.c:330
 msgid "   of file names as well as the following options:"
 msgstr ""
 
-#: rpm.c:333
+#: rpm.c:331
 msgid "      --ftpproxy <host>   "
 msgstr ""
 
-#: rpm.c:334
+#: rpm.c:332
 msgid "hostname or IP of ftp proxy"
 msgstr ""
 
-#: rpm.c:335
+#: rpm.c:333
 msgid "      --ftpport <port>    "
 msgstr ""
 
-#: rpm.c:336
+#: rpm.c:334
 msgid "port number of ftp server (or proxy)"
 msgstr ""
 
-#: rpm.c:337
+#: rpm.c:335
 msgid "      --httpproxy <host>   "
 msgstr ""
 
-#: rpm.c:338
+#: rpm.c:336
 msgid "hostname or IP of http proxy"
 msgstr ""
 
-#: rpm.c:339
+#: rpm.c:337
 msgid "      --httpport <port>    "
 msgstr ""
 
-#: rpm.c:340
+#: rpm.c:338
 msgid "port number of http server (or proxy)"
 msgstr ""
 
-#: rpm.c:341
+#: rpm.c:339
 msgid "      Package specification options:"
 msgstr ""
 
-#: rpm.c:343
+#: rpm.c:341
 msgid "query all packages"
 msgstr ""
 
-#: rpm.c:344
+#: rpm.c:342
 msgid "        -f <file>+        "
 msgstr ""
 
-#: rpm.c:345
+#: rpm.c:343
 msgid "query package owning <file>"
 msgstr ""
 
-#: rpm.c:346
+#: rpm.c:344
 msgid "        -p <packagefile>+ "
 msgstr ""
 
-#: rpm.c:347
+#: rpm.c:345
 msgid "query (uninstalled) package <packagefile>"
 msgstr ""
 
-#: rpm.c:348
+#: rpm.c:346
 msgid "        --triggeredby <pkg>"
 msgstr ""
 
-#: rpm.c:349
+#: rpm.c:347
 msgid "query packages triggered by <pkg>"
 msgstr ""
 
-#: rpm.c:350
+#: rpm.c:348
 msgid "        --whatprovides <cap>"
 msgstr ""
 
-#: rpm.c:351
+#: rpm.c:349
 msgid "query packages which provide <cap> capability"
 msgstr ""
 
-#: rpm.c:352
+#: rpm.c:350
 msgid "        --whatrequires <cap>"
 msgstr ""
 
-#: rpm.c:353
+#: rpm.c:351
 msgid "query packages which require <cap> capability"
 msgstr ""
 
-#: rpm.c:354
+#: rpm.c:352
 msgid "      Information selection options:"
 msgstr ""
 
-#: rpm.c:356
+#: rpm.c:354
 msgid "display package information"
 msgstr ""
 
-#: rpm.c:358
+#: rpm.c:356
 msgid "display the package's change log"
 msgstr ""
 
-#: rpm.c:360
+#: rpm.c:358
 msgid "display package file list"
 msgstr ""
 
-#: rpm.c:362
+#: rpm.c:360
 msgid "show file states (implies -l)"
 msgstr ""
 
-#: rpm.c:364
+#: rpm.c:362
 msgid "list only documentation files (implies -l)"
 msgstr ""
 
-#: rpm.c:366
+#: rpm.c:364
 msgid "list only configuration files (implies -l)"
 msgstr ""
 
-#: rpm.c:368
+#: rpm.c:366
 msgid ""
 "show all verifiable information for each file (must be used with -l, -c, or "
 "-d)"
 msgstr ""
 
-#: rpm.c:370
+#: rpm.c:368
 msgid "list capabilities package provides"
 msgstr ""
 
-#: rpm.c:371
+#: rpm.c:369
 msgid "        --requires"
 msgstr ""
 
-#: rpm.c:373
+#: rpm.c:371
 msgid "list package dependencies"
 msgstr ""
 
-#: rpm.c:375
+#: rpm.c:373
 msgid "print the various [un]install scripts"
 msgstr ""
 
-#: rpm.c:377
+#: rpm.c:375
 msgid "show the trigger scripts contained in the package"
 msgstr ""
 
-#: rpm.c:381
+#: rpm.c:379
 msgid "    --pipe <cmd>          "
 msgstr ""
 
-#: rpm.c:382
+#: rpm.c:380
 msgid "send stdout to <cmd>"
 msgstr ""
 
-#: rpm.c:384
+#: rpm.c:382
 msgid ""
 "verify a package installation using the same same package specification "
 "options as -q"
 msgstr ""
 
-#: rpm.c:390 rpm.c:438 rpm.c:472
+#: rpm.c:388 rpm.c:436 rpm.c:470
 msgid "do not verify package dependencies"
 msgstr ""
 
-#: rpm.c:392
+#: rpm.c:390
 msgid "do not verify file md5 checksums"
 msgstr ""
 
-#: rpm.c:394
+#: rpm.c:392
 msgid "do not verify file attributes"
 msgstr ""
 
-#: rpm.c:397
+#: rpm.c:395
 msgid ""
 "set the file permissions to those in the package database using the same "
 "package specification options as -q"
 msgstr ""
 
-#: rpm.c:400
+#: rpm.c:398
 msgid ""
 "set the file owner and group to those in the package database using the same "
 "package specification options as -q"
 msgstr ""
 
-#: rpm.c:404
+#: rpm.c:402
 msgid "    --install <packagefile>"
 msgstr ""
 
-#: rpm.c:405
+#: rpm.c:403
 msgid "    -i <packagefile>      "
 msgstr ""
 
-#: rpm.c:406
+#: rpm.c:404
 msgid "install package"
 msgstr ""
 
-#: rpm.c:407
+#: rpm.c:405
 msgid "      --excludepath <path>"
 msgstr ""
 
-#: rpm.c:408
+#: rpm.c:406
 msgid "skip files in path <path>"
 msgstr ""
 
-#: rpm.c:409
+#: rpm.c:407
 msgid "      --relocate <oldpath>=<newpath>"
 msgstr ""
 
-#: rpm.c:410
+#: rpm.c:408
 msgid "relocate files from <oldpath> to <newpath>"
 msgstr ""
 
-#: rpm.c:412
+#: rpm.c:410
 msgid "relocate files even though the package doesn't allow it"
 msgstr ""
 
-#: rpm.c:413
+#: rpm.c:411
 msgid "      --prefix <dir>      "
 msgstr ""
 
-#: rpm.c:414
+#: rpm.c:412
 msgid "relocate the package to <dir>, if relocatable"
 msgstr ""
 
-#: rpm.c:418
+#: rpm.c:416
 msgid "do not install documentation"
 msgstr ""
 
-#: rpm.c:420
+#: rpm.c:418
 msgid "short hand for --replacepkgs --replacefiles"
 msgstr ""
 
-#: rpm.c:423
+#: rpm.c:421
 msgid "print hash marks as package installs (good with -v)"
 msgstr ""
 
-#: rpm.c:425
+#: rpm.c:423
 msgid "install all files, even configurations which might otherwise be skipped"
 msgstr ""
 
-#: rpm.c:428
+#: rpm.c:426
 msgid "don't verify package architecture"
 msgstr ""
 
-#: rpm.c:430
+#: rpm.c:428
 msgid "don't check disk space before installing"
 msgstr ""
 
-#: rpm.c:432
+#: rpm.c:430
 msgid "don't verify package operating system"
 msgstr ""
 
-#: rpm.c:434
+#: rpm.c:432
 msgid "install documentation"
 msgstr ""
 
-#: rpm.c:436 rpm.c:470
+#: rpm.c:434 rpm.c:468
 msgid "update the database, but do not modify the filesystem"
 msgstr ""
 
-#: rpm.c:440 rpm.c:474
+#: rpm.c:438 rpm.c:472
 msgid "do not reorder package installation to satisfy dependencies"
 msgstr ""
 
-#: rpm.c:442
+#: rpm.c:440
 msgid "don't execute any installation scripts"
 msgstr ""
 
-#: rpm.c:444 rpm.c:478
+#: rpm.c:442 rpm.c:476
 msgid "don't execute any scripts triggered by this package"
 msgstr ""
 
-#: rpm.c:446
+#: rpm.c:444
 msgid "print percentages as package installs"
 msgstr ""
 
-#: rpm.c:448
+#: rpm.c:446
 msgid "install even if the package replaces installed files"
 msgstr ""
 
-#: rpm.c:450
+#: rpm.c:448
 msgid "reinstall if the package is already present"
 msgstr ""
 
-#: rpm.c:454
+#: rpm.c:452
 msgid "don't install, but tell if it would work or not"
 msgstr ""
 
-#: rpm.c:456
+#: rpm.c:454
 msgid "    --upgrade <packagefile>"
 msgstr ""
 
-#: rpm.c:457
+#: rpm.c:455
 msgid "    -U <packagefile>      "
 msgstr ""
 
-#: rpm.c:458
+#: rpm.c:456
 msgid "upgrade package (same options as --install, plus)"
 msgstr ""
 
-#: rpm.c:460
+#: rpm.c:458
 msgid ""
 "upgrade to an old version of the package (--force on upgrades does this "
 "automatically)"
 msgstr ""
 
-#: rpm.c:462
+#: rpm.c:460
 msgid "    --erase <package>"
 msgstr ""
 
-#: rpm.c:464
+#: rpm.c:462
 msgid "erase (uninstall) package"
 msgstr ""
 
-#: rpm.c:466
+#: rpm.c:464
 msgid ""
 "remove all packages which match <package> (normally an error is generated if "
 "<package> specified multiple packages)"
 msgstr ""
 
-#: rpm.c:476
+#: rpm.c:474
 msgid "do not execute any package specific scripts"
 msgstr ""
 
-#: rpm.c:482
+#: rpm.c:480
 msgid "    -b<stage> <spec>      "
 msgstr ""
 
-#: rpm.c:483
+#: rpm.c:481
 msgid "    -t<stage> <tarball>   "
 msgstr ""
 
-#: rpm.c:484
+#: rpm.c:482
 msgid "build package, where <stage> is one of:"
 msgstr ""
 
-#: rpm.c:486
+#: rpm.c:484
 msgid "prep (unpack sources and apply patches)"
 msgstr ""
 
-#: rpm.c:488
+#: rpm.c:486
 #, c-format
 msgid "list check (do some cursory checks on %files)"
 msgstr ""
 
-#: rpm.c:490
+#: rpm.c:488
 msgid "compile (prep and compile)"
 msgstr ""
 
-#: rpm.c:492
+#: rpm.c:490
 msgid "install (prep, compile, install)"
 msgstr ""
 
-#: rpm.c:494
+#: rpm.c:492
 msgid "binary package (prep, compile, install, package)"
 msgstr ""
 
-#: rpm.c:496
+#: rpm.c:494
 msgid "bin/src package (prep, compile, install, package)"
 msgstr ""
 
-#: rpm.c:502
+#: rpm.c:500
 msgid "remove sources and spec file when done"
 msgstr ""
 
-#: rpm.c:504
+#: rpm.c:502
 msgid "generate PGP/GPG signature"
 msgstr ""
 
-#: rpm.c:505
+#: rpm.c:503
 msgid "      --buildroot <dir>   "
 msgstr ""
 
-#: rpm.c:506
+#: rpm.c:504
 msgid "use <dir> as the build root"
 msgstr ""
 
-#: rpm.c:507
+#: rpm.c:505
 msgid "      --target=<platform>+"
 msgstr ""
 
-#: rpm.c:508
+#: rpm.c:506
 msgid "build the packages for the build targets platform1...platformN."
 msgstr ""
 
-#: rpm.c:510
+#: rpm.c:508
 msgid "do not execute any stages"
 msgstr ""
 
-#: rpm.c:511
+#: rpm.c:509
 msgid "      --timecheck <secs>  "
 msgstr ""
 
-#: rpm.c:512
+#: rpm.c:510
 msgid "set the time check to <secs> seconds (0 disables)"
 msgstr ""
 
-#: rpm.c:514
+#: rpm.c:512
 msgid "    --rebuild <src_pkg>   "
 msgstr ""
 
-#: rpm.c:515
+#: rpm.c:513
 msgid ""
 "install source package, build binary package and remove spec file, sources, "
 "patches, and icons."
 msgstr ""
 
-#: rpm.c:516
+#: rpm.c:514
 msgid "    --rmsource <spec>     "
 msgstr ""
 
-#: rpm.c:517
+#: rpm.c:515
 msgid "remove sources and spec file"
 msgstr ""
 
-#: rpm.c:518
+#: rpm.c:516
 msgid "    --recompile <src_pkg> "
 msgstr ""
 
-#: rpm.c:519
+#: rpm.c:517
 msgid "like --rebuild, but don't build any package"
 msgstr ""
 
-#: rpm.c:520
+#: rpm.c:518
 msgid "    --resign <pkg>+       "
 msgstr ""
 
-#: rpm.c:521
+#: rpm.c:519
 msgid "sign a package (discard current signature)"
 msgstr ""
 
-#: rpm.c:522
+#: rpm.c:520
 msgid "    --addsign <pkg>+      "
 msgstr ""
 
-#: rpm.c:523
+#: rpm.c:521
 msgid "add a signature to a package"
 msgstr ""
 
-#: rpm.c:525
+#: rpm.c:523
 msgid "    --checksig <pkg>+     "
 msgstr ""
 
-#: rpm.c:526
+#: rpm.c:524
 msgid "verify package signature"
 msgstr ""
 
-#: rpm.c:528
+#: rpm.c:526
 msgid "skip any PGP signatures"
 msgstr ""
 
-#: rpm.c:530
+#: rpm.c:528
 msgid "skip any GPG signatures"
 msgstr ""
 
-#: rpm.c:532
+#: rpm.c:530
 msgid "skip any MD5 signatures"
 msgstr ""
 
-#: rpm.c:534
+#: rpm.c:532
 msgid "list the tags that can be used in a query format"
 msgstr ""
 
-#: rpm.c:536
+#: rpm.c:534
 msgid "make sure a valid database exists"
 msgstr ""
 
-#: rpm.c:538
+#: rpm.c:536
 msgid "rebuild database from existing database"
 msgstr ""
 
-#: rpm.c:691 rpm.c:697 rpm.c:704 rpm.c:710 rpm.c:719 rpm.c:726 rpm.c:773
-#: rpm.c:779 rpm.c:813 rpm.c:819 rpm.c:825 rpm.c:833 rpm.c:877 rpm.c:932
-#: rpm.c:939
+#: rpm.c:689 rpm.c:695 rpm.c:702 rpm.c:708 rpm.c:717 rpm.c:724 rpm.c:771
+#: rpm.c:777 rpm.c:811 rpm.c:817 rpm.c:823 rpm.c:831 rpm.c:875 rpm.c:930
+#: rpm.c:937
 msgid "only one major mode may be specified"
 msgstr ""
 
-#: rpm.c:712
+#: rpm.c:710
 msgid "-u and --uninstall are deprecated and no longer work.\n"
 msgstr ""
 
-#: rpm.c:714
+#: rpm.c:712
 msgid "Use -e or --erase instead.\n"
 msgstr ""
 
-#: rpm.c:730
+#: rpm.c:728
 msgid "--build (-b) requires one of a,b,i,c,p,l as its sole argument"
 msgstr ""
 
-#: rpm.c:734
+#: rpm.c:732
 msgid "--tarbuild (-t) requires one of a,b,i,c,p,l as its sole argument"
 msgstr ""
 
-#: rpm.c:786 rpm.c:792 rpm.c:799 rpm.c:806 rpm.c:946
+#: rpm.c:784 rpm.c:790 rpm.c:797 rpm.c:804 rpm.c:944
 msgid "one type of query/verify may be performed at a time"
 msgstr ""
 
-#: rpm.c:843
+#: rpm.c:841
 msgid "arguments to --dbpath must begin with a /"
 msgstr ""
 
-#: rpm.c:883
+#: rpm.c:881
 msgid "relocations must begin with a /"
 msgstr ""
 
-#: rpm.c:885
+#: rpm.c:883
 msgid "relocations must contain a ="
 msgstr ""
 
-#: rpm.c:888
+#: rpm.c:886
 msgid "relocations must have a / following the ="
 msgstr ""
 
-#: rpm.c:897
+#: rpm.c:895
 msgid "exclude paths must begin with a /"
 msgstr ""
 
-#: rpm.c:906
+#: rpm.c:904
 #, c-format
 msgid "Internal error in argument processing (%d) :-(\n"
 msgstr ""
 
-#: rpm.c:957
+#: rpm.c:955
 msgid "--dbpath given for operation that does not use a database"
 msgstr ""
 
-#: rpm.c:961
+#: rpm.c:959
 msgid "--timecheck may only be used during package builds"
 msgstr ""
 
-#: rpm.c:964
+#: rpm.c:962
 msgid "unexpected query flags"
 msgstr ""
 
-#: rpm.c:967
+#: rpm.c:965
 msgid "unexpected query format"
 msgstr ""
 
-#: rpm.c:970
+#: rpm.c:968
 msgid "unexpected query source"
 msgstr ""
 
-#: rpm.c:976
+#: rpm.c:974
 msgid "only installation, upgrading, rmsource and rmspec may be forced"
 msgstr ""
 
-#: rpm.c:979
+#: rpm.c:977
 msgid "files may only be relocated during package installation"
 msgstr ""
 
-#: rpm.c:982
+#: rpm.c:980
 msgid "only one of --prefix or --relocate may be used"
 msgstr ""
 
-#: rpm.c:985
+#: rpm.c:983
 msgid ""
 "--relocate and --excludepath may only be used when installing new packages"
 msgstr ""
 
-#: rpm.c:988
+#: rpm.c:986
 msgid "--prefix may only be used when installing new packages"
 msgstr ""
 
-#: rpm.c:991
+#: rpm.c:989
 msgid "arguments to --prefix must begin with a /"
 msgstr ""
 
-#: rpm.c:994
+#: rpm.c:992
 msgid "--hash (-h) may only be specified during package installation"
 msgstr ""
 
-#: rpm.c:998
+#: rpm.c:996
 msgid "--percent may only be specified during package installation"
 msgstr ""
 
-#: rpm.c:1002
+#: rpm.c:1000
 msgid "--replacefiles may only be specified during package installation"
 msgstr ""
 
-#: rpm.c:1006
+#: rpm.c:1004
 msgid "--replacepkgs may only be specified during package installation"
 msgstr ""
 
-#: rpm.c:1010
+#: rpm.c:1008
 msgid "--excludedocs may only be specified during package installation"
 msgstr ""
 
-#: rpm.c:1014
+#: rpm.c:1012
 msgid "--includedocs may only be specified during package installation"
 msgstr ""
 
-#: rpm.c:1018
+#: rpm.c:1016
 msgid "only one of --excludedocs and --includedocs may be specified"
 msgstr ""
 
-#: rpm.c:1022
+#: rpm.c:1020
 msgid "--ignorearch may only be specified during package installation"
 msgstr ""
 
-#: rpm.c:1026
+#: rpm.c:1024
 msgid "--ignoreos may only be specified during package installation"
 msgstr ""
 
-#: rpm.c:1030
+#: rpm.c:1028
 msgid "--ignoresize may only be specified during package installation"
 msgstr ""
 
-#: rpm.c:1034
+#: rpm.c:1032
 msgid "--allmatches may only be specified during package erasure"
 msgstr ""
 
-#: rpm.c:1038
+#: rpm.c:1036
 msgid "--allfiles may only be specified during package installation"
 msgstr ""
 
-#: rpm.c:1042
+#: rpm.c:1040
 msgid "--justdb may only be specified during package installation and erasure"
 msgstr ""
 
-#: rpm.c:1047
+#: rpm.c:1045
 msgid ""
 "--noscripts may only be specified during package installation, erasure, and "
 "verification"
 msgstr ""
 
-#: rpm.c:1051
+#: rpm.c:1049
 msgid ""
 "--notriggers may only be specified during package installation, erasure, and "
 "verification"
 msgstr ""
 
-#: rpm.c:1055
+#: rpm.c:1053
 msgid ""
 "--nodeps may only be specified during package building, rebuilding, "
 "recompilation, installation,erasure, and verification"
 msgstr ""
 
-#: rpm.c:1060
+#: rpm.c:1058
 msgid ""
 "--test may only be specified during package installation, erasure, and "
 "building"
 msgstr ""
 
-#: rpm.c:1064
+#: rpm.c:1062
 msgid ""
 "--root (-r) may only be specified during installation, erasure, querying, "
 "and database rebuilds"
 msgstr ""
 
-#: rpm.c:1076
+#: rpm.c:1074
 msgid "arguments to --root (-r) must begin with a /"
 msgstr ""
 
-#: rpm.c:1082
+#: rpm.c:1080
 msgid "--oldpackage may only be used during upgrades"
 msgstr ""
 
-#: rpm.c:1087
+#: rpm.c:1085
 msgid ""
 "ftp options can only be used during package queries, installs, and upgrades"
 msgstr ""
 
-#: rpm.c:1093
+#: rpm.c:1091
 msgid ""
 "http options can only be used during package queries, installs, and upgrades"
 msgstr ""
 
-#: rpm.c:1097
+#: rpm.c:1095
 msgid "--nopgp may only be used during signature checking"
 msgstr ""
 
-#: rpm.c:1100
+#: rpm.c:1098
 msgid "--nogpg may only be used during signature checking"
 msgstr ""
 
-#: rpm.c:1103
+#: rpm.c:1101
 msgid ""
 "--nomd5 may only be used during signature checking and package verification"
 msgstr ""
 
-#: rpm.c:1131
+#: rpm.c:1129
 msgid "no files to sign\n"
 msgstr ""
 
-#: rpm.c:1136
+#: rpm.c:1134
 #, c-format
 msgid "cannot access file %s\n"
 msgstr ""
 
-#: rpm.c:1151
+#: rpm.c:1149
 msgid "pgp not found: "
 msgstr ""
 
-#: rpm.c:1155
+#: rpm.c:1153
 msgid "Enter pass phrase: "
 msgstr ""
 
-#: rpm.c:1157
+#: rpm.c:1155
 msgid "Pass phrase check failed\n"
 msgstr ""
 
-#: rpm.c:1160
+#: rpm.c:1158
 msgid "Pass phrase is good.\n"
 msgstr ""
 
-#: rpm.c:1165
+#: rpm.c:1163
 msgid "Invalid %%_signature spec in macro file.\n"
 msgstr ""
 
-#: rpm.c:1171
+#: rpm.c:1169
 msgid "--sign may only be used during package building"
 msgstr ""
 
-#: rpm.c:1186
+#: rpm.c:1184
 msgid "exec failed\n"
 msgstr ""
 
-#: rpm.c:1205
+#: rpm.c:1203
 msgid "unexpected arguments to --querytags "
 msgstr ""
 
-#: rpm.c:1216
+#: rpm.c:1214
 msgid "no packages given for signature check"
 msgstr ""
 
-#: rpm.c:1227
+#: rpm.c:1225
 msgid "no packages given for signing"
 msgstr ""
 
-#: rpm.c:1239
+#: rpm.c:1237
 msgid "no packages files given for rebuild"
 msgstr ""
 
-#: rpm.c:1302
+#: rpm.c:1300
 msgid "no spec files given for build"
 msgstr ""
 
-#: rpm.c:1304
+#: rpm.c:1302
 msgid "no tar files given for build"
 msgstr ""
 
-#: rpm.c:1320
+#: rpm.c:1318
 msgid "no packages given for uninstall"
 msgstr ""
 
-#: rpm.c:1370
+#: rpm.c:1368
 msgid "no packages given for install"
 msgstr ""
 
-#: rpm.c:1393
+#: rpm.c:1391
 msgid "extra arguments given for query of all packages"
 msgstr ""
 
-#: rpm.c:1398
+#: rpm.c:1396
 msgid "no arguments given for query"
 msgstr ""
 
-#: rpm.c:1415
+#: rpm.c:1413
 msgid "extra arguments given for verify of all packages"
 msgstr ""
 
-#: rpm.c:1419
+#: rpm.c:1417
 msgid "no arguments given for verify"
 msgstr ""
 
@@ -1986,12 +1986,12 @@ msgstr ""
 msgid " failed - "
 msgstr ""
 
-#: lib/dbindex.c:92
+#: lib/dbindex.c:91
 #, c-format
 msgid "bad db file %s"
 msgstr ""
 
-#: lib/dbindex.c:135
+#: lib/dbindex.c:134
 msgid ""
 "\n"
 "--> Please run \"rpm --rebuilddb\" as root to convert your database from\n"
@@ -1999,22 +1999,22 @@ msgid ""
 "\n"
 msgstr ""
 
-#: lib/dbindex.c:148
+#: lib/dbindex.c:147
 #, c-format
 msgid "cannot open file %s: %s"
 msgstr ""
 
-#: lib/dbindex.c:188
+#: lib/dbindex.c:187
 #, c-format
 msgid "error getting record %s from %s"
 msgstr ""
 
-#: lib/dbindex.c:202
+#: lib/dbindex.c:201
 #, c-format
 msgid "error storing record %s into %s"
 msgstr ""
 
-#: lib/dbindex.c:207
+#: lib/dbindex.c:206
 #, c-format
 msgid "error removing record %s into %s"
 msgstr ""
@@ -2713,74 +2713,74 @@ msgstr ""
 msgid "display a verbose file listing"
 msgstr ""
 
-#: lib/rebuilddb.c:29 lib/rpmdb.c:292
+#: lib/rebuilddb.c:33 lib/rpmdb.c:292
 msgid "no dbpath has been set"
 msgstr ""
 
-#: lib/rebuilddb.c:54
+#: lib/rebuilddb.c:58
 #, c-format
 msgid "rebuilding database %s into %s\n"
 msgstr ""
 
-#: lib/rebuilddb.c:58
+#: lib/rebuilddb.c:62
 #, c-format
 msgid "temporary database %s already exists"
 msgstr ""
 
-#: lib/rebuilddb.c:64
+#: lib/rebuilddb.c:68
 #, c-format
 msgid "creating directory: %s\n"
 msgstr ""
 
-#: lib/rebuilddb.c:66
+#: lib/rebuilddb.c:70
 #, c-format
 msgid "error creating directory %s: %s"
 msgstr ""
 
-#: lib/rebuilddb.c:73
+#: lib/rebuilddb.c:81
 #, c-format
 msgid "opening old database with dbi_major %d\n"
 msgstr ""
 
-#: lib/rebuilddb.c:82
+#: lib/rebuilddb.c:90
 #, c-format
 msgid "opening new database with dbi_major %d\n"
 msgstr ""
 
-#: lib/rebuilddb.c:93
+#: lib/rebuilddb.c:101
 #, c-format
 msgid "record number %d in database is bad -- skipping it"
 msgstr ""
 
-#: lib/rebuilddb.c:111
+#: lib/rebuilddb.c:119
 #, c-format
 msgid "duplicated database entry: %s-%s-%s -- skipping."
 msgstr ""
 
-#: lib/rebuilddb.c:123
+#: lib/rebuilddb.c:131
 #, c-format
 msgid "cannot add record originally at %d"
 msgstr ""
 
-#: lib/rebuilddb.c:129
+#: lib/rebuilddb.c:137
 #, c-format
 msgid "record number %d in database is bad -- skipping."
 msgstr ""
 
-#: lib/rebuilddb.c:142
+#: lib/rebuilddb.c:150
 msgid "failed to rebuild database; original database remains in place\n"
 msgstr ""
 
-#: lib/rebuilddb.c:150
+#: lib/rebuilddb.c:158
 msgid "failed to replace old database with new database!\n"
 msgstr ""
 
-#: lib/rebuilddb.c:152
+#: lib/rebuilddb.c:160
 #, c-format
 msgid "replaces files in %s with files from %s to recover"
 msgstr ""
 
-#: lib/rebuilddb.c:158
+#: lib/rebuilddb.c:166
 #, c-format
 msgid "failed to remove directory %s: %s\n"
 msgstr ""
diff --git a/rpm.c b/rpm.c
index 30eb486..fbc7fdd 100755 (executable)
--- a/rpm.c
+++ b/rpm.c
@@ -94,7 +94,6 @@ static int signIt;
 static int test;
 extern int _url_debug;
 extern int _noDirTokens;
-extern int _preferDbiMajor;
 extern int _useDbiMajor;
 
 static int showVersion;
@@ -155,7 +154,6 @@ static struct poptOption optionsTable[] = {
  { "oldpackage", '\0', 0, &oldPackage, 0,      NULL, NULL},
  { "percent", '\0', 0, &showPercents, 0,       NULL, NULL},
  { "pipe", '\0', POPT_ARG_STRING, &pipeOutput, 0,      NULL, NULL},
- { "preferdb", '\0', POPT_ARG_INT, &_preferDbiMajor, 0,        NULL, NULL},
  { "prefix", '\0', POPT_ARG_STRING, &prefix, 0,        NULL, NULL},
  { "query", 'q', 0, NULL, 'q',                 NULL, NULL},
  { "querytags", '\0', 0, &queryTags, 0,                NULL, NULL},
index 4eeca9e..531fb24 100644 (file)
@@ -81,3 +81,10 @@ rpm alias --i18ndomains --define '_i18ndomains !#:+'
 
 # Build policies enabled from command line. Last policy applies.
 rpm alias --buildpolicy --define '__spec_install_post @RPMCONFIGDIR@/brp-!#:+'
+
+# Preferred db interface:
+#      0       linux glibc libdb1 routines.
+#      1       db_185.h interface in db2/db3 libdb.a.
+#      2       native db2 interface.
+#      3       native db3 interface.
+rpm alias --preferdb --define '_preferdb !#:+'