X-Git-Url: https://git.tld-linux.org/?p=packages%2Frpm.git;a=blobdiff_plain;f=rpmdb_checkversion.c;fp=rpmdb_checkversion.c;h=0000000000000000000000000000000000000000;hp=58a169c4483b53f28d60a422da9a128ff86a537f;hb=394ca586eb47178cd35e7ed5bf72502f5f4346d2;hpb=e56b042e3aa3c1ff937bc994ab6bb2019260bfb6 diff --git a/rpmdb_checkversion.c b/rpmdb_checkversion.c deleted file mode 100644 index 58a169c..0000000 --- a/rpmdb_checkversion.c +++ /dev/null @@ -1,121 +0,0 @@ -#include -#include -#include -#include -#include -#include - -int version_check __P((void)); - -const char *progname = "rpmdb_checkversion"; /* Program name. */ - -/* - * A very simple program to check for a Berkeley DB environment mismatch. - */ -int -main(int argc, char *argv[]) -{ - extern char *optarg; - extern int optind; - const char *data_dir, *home; - int ch, quiet; - DB_ENV *dbenv; - int ret; - - if ((ret = version_check()) != 0) - return (EXIT_FAILURE); - - /* - * All of the shared database files live in home, but - * data files will live in data_dir. - */ - quiet = 0; - home = "/var/lib/rpm"; - data_dir = "/var/lib/rpm"; - while ((ch = getopt(argc, argv, "h:d:qV")) != EOF) - switch (ch) { - case 'h': - home = optarg; - break; - case 'd': - data_dir = optarg; - break; - case 'q': - quiet = 1; - break; - case 'V': - printf("%s\n", db_version(NULL, NULL, NULL)); - return (EXIT_SUCCESS); - case '?': - default: - (void)fprintf(stderr, "usage: %s [-h home] [-d data_dir]\n", progname); - return (1); - } - argc -= optind; - argv += optind; - - if (argc != 0) { - (void)fprintf(stderr, "usage: %s [-h home] [-d data_dir]\n", progname); - return (1); - } - - /* - * Create an environment object and initialize it for error - * reporting. - */ - if ((ret = db_env_create(&dbenv, 0)) != 0) { - if (!quiet) - fprintf(stderr, "%s: %s\n", progname, db_strerror(ret)); - return (1); - } - if (quiet) { - dbenv->set_errfile(dbenv, NULL); - } else { - dbenv->set_errfile(dbenv, stderr); - } - dbenv->set_errpfx(dbenv, progname); - - /* - * We want to specify the shared memory buffer pool cachesize, - * but everything else is the default. - */ - if ((ret = dbenv->set_cachesize(dbenv, 0, 64 * 1024, 0)) != 0) { - dbenv->err(dbenv, ret, "set_cachesize"); - dbenv->close(dbenv, 0); - return (1); - } - - /* Databases are in a subdirectory. */ - (void)dbenv->set_data_dir(dbenv, data_dir); - - /* Open the environment with full transactional support. */ - ret = dbenv->open(dbenv, home, DB_INIT_MPOOL, 0644); - /* Close the environment handle. */ - dbenv->close(dbenv, 0); -#if 0 - if (ret == DB_VERSION_MISMATCH) { -#else - if (ret != 0) { -#endif - return (1); - } - - return (0); -} - -int -version_check() -{ - int v_major, v_minor, v_patch; - - /* Make sure we're loaded with the right version of the DB library. */ - (void)db_version(&v_major, &v_minor, &v_patch); - if (v_major != DB_VERSION_MAJOR || v_minor != DB_VERSION_MINOR) { - fprintf(stderr, - "%s: version %d.%d doesn't match library version %d.%d\n", - progname, DB_VERSION_MAJOR, - DB_VERSION_MINOR, v_major, v_minor); - return (EXIT_FAILURE); - } - return (0); -}