8 const char *progname = "rpmdb_checkversion"; /* Program name. */
11 * A very simple program to check for a Berkeley DB environment mismatch.
14 main(int argc, char *argv[])
18 const char *data_dir, *home;
24 * All of the shared database files live in home, but
25 * data files will live in data_dir.
28 home = "/var/lib/rpm";
29 data_dir = "/var/lib/rpm";
30 while ((ch = getopt(argc, argv, "h:d:q")) != EOF)
43 (void)fprintf(stderr, "usage: %s [-h home] [-d data_dir]\n", progname);
50 (void)fprintf(stderr, "usage: %s [-h home] [-d data_dir]\n", progname);
55 * Create an environment object and initialize it for error
58 if ((ret = db_env_create(&dbenv, 0)) != 0) {
60 fprintf(stderr, "%s: %s\n", progname, db_strerror(ret));
64 dbenv->set_errfile(dbenv, NULL);
66 dbenv->set_errfile(dbenv, stderr);
68 dbenv->set_errpfx(dbenv, progname);
71 * We want to specify the shared memory buffer pool cachesize,
72 * but everything else is the default.
74 if ((ret = dbenv->set_cachesize(dbenv, 0, 64 * 1024, 0)) != 0) {
75 dbenv->err(dbenv, ret, "set_cachesize");
76 dbenv->close(dbenv, 0);
80 /* Databases are in a subdirectory. */
81 (void)dbenv->set_data_dir(dbenv, data_dir);
83 /* Open the environment with full transactional support. */
84 ret = dbenv->open(dbenv, home, DB_INIT_MPOOL, 0644);
85 /* Close the environment handle. */
86 dbenv->close(dbenv, 0);
88 if (ret == DB_VERSION_MISMATCH) {