From 216c509b1daee0e2a9e0e095c5e862cf16e181c0 Mon Sep 17 00:00:00 2001 From: Guillem Jover Date: Fri, 10 Oct 2014 13:54:16 +0200 Subject: dpkg: Do not write the database when changing selections with --dry-run Closes: #764673 --- src/select.c | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/select.c b/src/select.c index 41e82da19..cdfd5bdd4 100644 --- a/src/select.c +++ b/src/select.c @@ -109,6 +109,7 @@ getselections(const char *const *argv) int setselections(const char *const *argv) { + enum modstatdb_rw msdbflags; const struct namevalue *nv; struct pkginfo *pkg; int c, lno; @@ -119,7 +120,13 @@ setselections(const char *const *argv) if (*argv) badusage(_("--%s takes no arguments"), cipaction->olong); - modstatdb_open(msdbrw_write | msdbrw_available_readonly); + msdbflags = msdbrw_available_readonly; + if (f_noact) + msdbflags |= msdbrw_readonly; + else + msdbflags |= msdbrw_write; + + modstatdb_open(msdbflags); pkg_infodb_upgrade(); lno= 1; @@ -194,13 +201,19 @@ setselections(const char *const *argv) int clearselections(const char *const *argv) { + enum modstatdb_rw msdbflags; struct pkgiterator *it; struct pkginfo *pkg; if (*argv) badusage(_("--%s takes no arguments"), cipaction->olong); - modstatdb_open(msdbrw_write); + if (f_noact) + msdbflags = msdbrw_readonly; + else + msdbflags = msdbrw_write; + + modstatdb_open(msdbflags); pkg_infodb_upgrade(); it = pkg_db_iter_new(); -- cgit v1.2.3