diff options
author | Guillem Jover <guillem@debian.org> | 2012-04-27 05:30:00 +0200 |
---|---|---|
committer | Guillem Jover <guillem@debian.org> | 2012-04-27 10:04:24 +0200 |
commit | f45abe4758e705b6c3231ba9a34ac066530b27e4 (patch) | |
tree | ec0c9ea214eaac66d5b71a7170b37cf543daf39d /src/enquiry.c | |
parent | 63d60245748acb6095e8e28ae2d86bfffd2e9fad (diff) | |
download | dpkg-f45abe4758e705b6c3231ba9a34ac066530b27e4.tar.gz |
dpkg: Add missing list and md5sums database file checks to --audit
This will report about any package missing the list or md5sums files
from the database, so that they can be reinstalled.
Diffstat (limited to 'src/enquiry.c')
-rw-r--r-- | src/enquiry.c | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/src/enquiry.c b/src/enquiry.c index 1dfa6c41c..e039529a0 100644 --- a/src/enquiry.c +++ b/src/enquiry.c @@ -47,6 +47,7 @@ #include <dpkg/options.h> #include "filesdb.h" +#include "infodb.h" #include "main.h" struct badstatinfo { @@ -73,6 +74,14 @@ bsyn_status(struct pkginfo *pkg, const struct badstatinfo *bsi) } static bool +bsyn_infofile(struct pkginfo *pkg, const struct badstatinfo *bsi) +{ + if (pkg->status < stat_halfinstalled) + return false; + return !pkg_infodb_has_file(pkg, &pkg->installed, bsi->value.string); +} + +static bool bsyn_arch(struct pkginfo *pkg, const struct badstatinfo *bsi) { if (pkg->status < stat_halfinstalled) @@ -124,6 +133,18 @@ static const struct badstatinfo badstatinfos[]= { "has not yet been done. Trigger processing can be requested using\n" "dselect or dpkg --configure --pending (or dpkg --triggers-only):\n") }, { + .yesno = bsyn_infofile, + .value.string = LISTFILE, + .explanation = N_( + "The following packages are missing the list control file in the\n" + "database, they need to be reinstalled:\n") + }, { + .yesno = bsyn_infofile, + .value.string = HASHFILE, + .explanation = N_( + "The following packages are missing the md5sums control file in the\n" + "database, they need to be reinstalled:\n") + }, { .yesno = bsyn_arch, .value.number = arch_none, .explanation = N_("The following packages do not have an architecture:\n") |