mirror of
https://github.com/moparisthebest/pacman
synced 2025-02-28 09:21:53 -05:00
Remove the DB consistency check from pacman and libalpm.
This reverts commit dfc85cb5f516ffbcff557522e9703c5c7d88b047 and b6f3fe6957d0206485eac98fb2120578b75d0058. This DB check is already in testdb (among others). Also testdb now uses the db path set at make time by default, so specifying the db path is optional. Signed-off-by: Chantry Xavier <shiningxc@gmail.com> Signed-off-by: Dan McGee <dan@archlinux.org>
This commit is contained in:
parent
7daf5a038d
commit
046c8a6819
@ -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.
|
||||
|
@ -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);
|
||||
|
@ -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;
|
||||
|
@ -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
|
||||
|
@ -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);
|
||||
|
@ -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;
|
||||
|
@ -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);
|
||||
|
@ -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();
|
||||
|
@ -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
|
||||
|
@ -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) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user