{"debug-solver", no_argument, 0, 0},
{"no-force-resolution", no_argument, 0, 'R'},
{"force-resolution", no_argument, 0, 0 },
+ {"clean-deps", no_argument, 0, 'u'},
+ {"no-clean-deps", no_argument, 0, 'U'},
{"dry-run", no_argument, 0, 'D'},
// rug uses -N shorthand
{"dry-run", no_argument, 0, 'N'},
" let it ask.\n"
" --force-resolution Force the solver to find a solution (even\n"
" an aggressive one).\n"
+ "-u, --clean-deps Automatically remove unneeded dependencies.\n"
+ "-U, --no-clean-deps No automatic removal of unneeded dependencies.\n"
"-D, --dry-run Test the removal, do not actually remove.\n"
), "package, patch, pattern, product", "package");
break;
God->resolver()->setForceResolve(force_resolution);
}
+static void set_clean_deps(Zypper & zypper)
+{
+ if (zypper.command() == ZypperCommand::REMOVE)
+ {
+ if (zypper.cOpts().find("clean-deps") != zypper.cOpts().end())
+ God->resolver()->setCleandepsOnRemove(true);
+ else if (zypper.cOpts().find("no-clean-deps") != zypper.cOpts().end())
+ God->resolver()->setCleandepsOnRemove(false);
+ }
+ DBG << "clean deps on remove: " << God->resolver()->cleandepsOnRemove() << endl;
+}
+
static void set_no_recommends(Zypper & zypper)
{
bool no_recommends = !zypper.config().solver_installRecommends;
static void set_solver_flags(Zypper & zypper)
{
set_force_resolution(zypper);
+ set_clean_deps(zypper);
set_no_recommends(zypper);
set_ignore_recommends_of_installed(zypper);
}