summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--doc/pacman.84
-rw-r--r--lib/libalpm/alpm.h1
-rw-r--r--lib/libalpm/be_files.c32
-rw-r--r--lib/libalpm/db.c13
-rw-r--r--lib/libalpm/db.h1
-rw-r--r--src/pacman/conf.h1
-rw-r--r--src/pacman/pacman.c5
-rw-r--r--src/pacman/query.c29
-rw-r--r--src/util/Makefile.am11
-rw-r--r--src/util/testdb.c20
10 files changed, 23 insertions, 94 deletions
diff --git a/doc/pacman.8 b/doc/pacman.8
index 4825f4a7..79097783 100644
--- a/doc/pacman.8
+++ b/doc/pacman.8
@@ -157,10 +157,6 @@ useful in combination with \fB--info\fP and \fB--list\fP.
This will search each locally-installed package for names or descriptions that
matche \fIregexp\fP.
.TP
-.B \-t, --test
-Test the consistancy of the local pacman database, and alert you of any
-problems found while searching. Returns 0 on success, >0 otherwise.
-.TP
.B \-u, --upgrades
Lists all packages that are out of date on the local system. This option works
best if the sync database is refreshed using \fB-Sy\fP.
diff --git a/lib/libalpm/alpm.h b/lib/libalpm/alpm.h
index 1506e3d5..81137e6d 100644
--- a/lib/libalpm/alpm.h
+++ b/lib/libalpm/alpm.h
@@ -164,7 +164,6 @@ alpm_list_t *alpm_db_whatprovides(pmdb_t *db, const char *name);
pmgrp_t *alpm_db_readgrp(pmdb_t *db, const char *name);
alpm_list_t *alpm_db_getgrpcache(pmdb_t *db);
-alpm_list_t *alpm_db_test(pmdb_t *db);
alpm_list_t *alpm_db_search(pmdb_t *db, const alpm_list_t* needles);
alpm_list_t *alpm_db_get_upgrades(void);
diff --git a/lib/libalpm/be_files.c b/lib/libalpm/be_files.c
index 3e1a2969..8998f678 100644
--- a/lib/libalpm/be_files.c
+++ b/lib/libalpm/be_files.c
@@ -62,38 +62,6 @@ int _alpm_db_install(pmdb_t *db, const char *dbfile)
return unlink(dbfile);
}
-alpm_list_t *_alpm_db_test(pmdb_t *db)
-{
- struct dirent *ent;
- char path[PATH_MAX];
- char text[PATH_MAX+1];
- struct stat buf;
- alpm_list_t *ret = NULL;
-
- while ((ent = readdir(db->handle)) != NULL) {
- if(!strcmp(ent->d_name, ".") || !strcmp(ent->d_name, "..")) {
- continue;
- }
- /* check for desc, depends, and files */
- snprintf(path, PATH_MAX, "%s/%s/desc", db->path, ent->d_name);
- if(stat(path, &buf)) {
- snprintf(text, PATH_MAX, _("%s: description file is missing"), ent->d_name);
- ret = alpm_list_add(ret, strdup(text));
- }
- snprintf(path, PATH_MAX, "%s/%s/depends", db->path, ent->d_name);
- if(stat(path, &buf)) {
- snprintf(text, PATH_MAX, _("%s: dependency file is missing"), ent->d_name);
- ret = alpm_list_add(ret, strdup(text));
- }
- snprintf(path, PATH_MAX, "%s/%s/files", db->path, ent->d_name);
- if(stat(path, &buf)) {
- snprintf(text, PATH_MAX, _("%s: file list is missing"), ent->d_name);
- ret = alpm_list_add(ret, strdup(text));
- }
- }
- return(ret);
-}
-
int _alpm_db_open(pmdb_t *db)
{
ALPM_LOG_FUNC;
diff --git a/lib/libalpm/db.c b/lib/libalpm/db.c
index 09e146e6..61c74a77 100644
--- a/lib/libalpm/db.c
+++ b/lib/libalpm/db.c
@@ -420,19 +420,6 @@ alpm_list_t SYMEXPORT *alpm_db_getgrpcache(pmdb_t *db)
return(_alpm_db_get_grpcache(db));
}
-/** Tests a database
- * @param db pointer to the package database to search in
- * @return the list of problems found on success, NULL on error
- */
-alpm_list_t SYMEXPORT *alpm_db_test(pmdb_t *db)
-{
- /* Sanity checks */
- ASSERT(handle != NULL, return(NULL));
- ASSERT(db != NULL, return(NULL));
-
- return(_alpm_db_test(db));
-}
-
/** Searches a database
* @param db pointer to the package database to search in
* @param needles the list of strings to search for
diff --git a/lib/libalpm/db.h b/lib/libalpm/db.h
index 15cc4c4c..3ee49770 100644
--- a/lib/libalpm/db.h
+++ b/lib/libalpm/db.h
@@ -57,7 +57,6 @@ pmdb_t *_alpm_db_register_sync(const char *treename);
/* be.c, backend specific calls */
int _alpm_db_install(pmdb_t *db, const char *dbfile);
-alpm_list_t *_alpm_db_test(pmdb_t *db);
int _alpm_db_open(pmdb_t *db);
void _alpm_db_close(pmdb_t *db);
void _alpm_db_rewind(pmdb_t *db);
diff --git a/src/pacman/conf.h b/src/pacman/conf.h
index 2f4b0bc4..85889d19 100644
--- a/src/pacman/conf.h
+++ b/src/pacman/conf.h
@@ -48,7 +48,6 @@ typedef struct __config_t {
unsigned short op_q_owns;
unsigned short op_q_search;
unsigned short op_q_changelog;
- unsigned short op_q_test;
unsigned short op_q_upgrade;
unsigned short op_s_clean;
diff --git a/src/pacman/pacman.c b/src/pacman/pacman.c
index 138389fa..2b748a1c 100644
--- a/src/pacman/pacman.c
+++ b/src/pacman/pacman.c
@@ -121,7 +121,6 @@ static void usage(int op, char *myname)
printf(_(" -s, --search <regex> search locally-installed packages for matching strings\n"));
printf(_(" -t, --orphans list all packages not required by any package\n"));
printf(_(" -u, --upgrades list all packages that can be upgraded\n"));
- printf(_(" --test check the consistency of the local database\n"));
} else if(op == PM_OP_SYNC) {
printf("%s: %s {-S --sync} [%s] [%s]\n", str_usg, myname, str_opt, str_pkg);
printf("%s:\n", str_opt);
@@ -284,7 +283,6 @@ static int parseargs(int argc, char *argv[])
{"ask", required_argument, 0, 1006},
{"cachedir", required_argument, 0, 1007},
{"asdeps", no_argument, 0, 1008},
- {"test", no_argument, 0, 1009},
{0, 0, 0, 0}
};
@@ -338,9 +336,6 @@ static int parseargs(int argc, char *argv[])
case 1008:
config->flags |= PM_TRANS_FLAG_ALLDEPS;
break;
- case 1009:
- config->op_q_test = 1;
- break;
case 'A': config->op = (config->op != PM_OP_MAIN ? 0 : PM_OP_ADD); break;
case 'F':
config->op = (config->op != PM_OP_MAIN ? 0 : PM_OP_UPGRADE);
diff --git a/src/pacman/query.c b/src/pacman/query.c
index 476ca152..26a1bd8f 100644
--- a/src/pacman/query.c
+++ b/src/pacman/query.c
@@ -213,29 +213,6 @@ static int query_group(alpm_list_t *targets)
return ret;
}
-static int query_test(void)
-{
- int ret = 0;
- alpm_list_t *testlist;
-
- printf(_("Checking database for consistency... "));
- testlist = alpm_db_test(db_local);
- if(testlist == NULL) {
- printf(_("check complete.\n"));
- return(0);
- } else {
- /* on failure, increment the ret val by 1 for each failure */
- alpm_list_t *i;
- printf(_("check failed!\n"));
- fflush(stdout);
- for(i = testlist; i; i = alpm_list_next(i)) {
- fprintf(stderr, "%s\n", (char*)alpm_list_getdata(i));
- ret++;
- }
- return(ret);
- }
-}
-
static int query_upgrades(void)
{
alpm_list_t *syncpkgs;
@@ -338,12 +315,6 @@ int pacman_query(alpm_list_t *targets)
return(ret);
}
- /* check DB consistancy */
- if(config->op_q_test) {
- ret = query_test();
- return(ret);
- }
-
/* check for package upgrades */
if(config->op_q_upgrade) {
ret = query_upgrades();
diff --git a/src/util/Makefile.am b/src/util/Makefile.am
index edc5a95d..97a0ffa1 100644
--- a/src/util/Makefile.am
+++ b/src/util/Makefile.am
@@ -1,5 +1,16 @@
+# paths set at make time
+conffile = ${sysconfdir}/pacman.conf
+dbpath = ${localstatedir}/lib/pacman/
+cachedir = ${localstatedir}/cache/pacman/pkg/
+
bin_PROGRAMS = vercmp testpkg testdb
+DEFS = -DLOCALEDIR=\"@localedir@\" \
+ -DCONFFILE=\"$(conffile)\" \
+ -DROOTDIR=\"$(ROOTDIR)\" \
+ -DDBPATH=\"$(dbpath)\" \
+ -DCACHEDIR=\"$(cachedir)\" \
+ @DEFS@
INCLUDES = -I$(top_srcdir)/lib/libalpm
AM_CFLAGS = -pedantic -D_GNU_SOURCE
diff --git a/src/util/testdb.c b/src/util/testdb.c
index a81a5e8b..d59d0108 100644
--- a/src/util/testdb.c
+++ b/src/util/testdb.c
@@ -135,19 +135,23 @@ int main(int argc, char **argv)
{
int retval = 0; /* default = false */
pmdb_t *db = NULL;
- char dbpath[PATH_MAX];
+ char *dbpath;
+ char localdbpath[PATH_MAX];
alpm_list_t *i;
- if(argc != 2) {
- fprintf(stderr, "usage: %s <pacman db>\n", basename(argv[0]));
+ if(argc == 1) {
+ dbpath = DBPATH;
+ } else if(argc == 3 && strcmp(argv[1], "-b") == 0) {
+ dbpath = argv[2];
+ } else {
+ fprintf(stderr, "usage: %s -b <pacman db>\n", basename(argv[0]));
return(1);
}
- snprintf(dbpath, PATH_MAX, "%s/local", argv[1]);
-
- retval = db_test(dbpath);
+ snprintf(localdbpath, PATH_MAX, "%s/local", dbpath);
+ retval = db_test(localdbpath);
if(retval) {
- exit(retval);
+ return(retval);
}
if(alpm_initialize() == -1) {
@@ -158,7 +162,7 @@ int main(int argc, char **argv)
/* let us get log messages from libalpm */
alpm_option_set_logcb(output_cb);
- alpm_option_set_dbpath(argv[1]);
+ alpm_option_set_dbpath(dbpath);
db = alpm_db_register_local();
if(db == NULL) {