}
case SET_TO_INSTALL:
- if (opts.force)
- return str::form(
- _("Forcing installation of '%s' from repository '%s'."),
- resolvable_user_string(*_objsel.resolvable()).c_str(),
- Zypper::instance()->config().show_alias ?
- _objsel->repoInfo().alias().c_str() :
- _objsel->repoInfo().name().c_str());
- else
- return str::form(
- _("Selecting '%s' from repository '%s' for installation."),
- resolvable_user_string(*_objsel.resolvable()).c_str(),
- Zypper::instance()->config().show_alias ?
- _objsel->repoInfo().alias().c_str() :
- _objsel->repoInfo().name().c_str());
+ return str::form(
+ _("Selecting '%s' from repository '%s' for installation."),
+ resolvable_user_string(*_objsel.resolvable()).c_str(),
+ Zypper::instance()->config().show_alias ?
+ _objsel->repoInfo().alias().c_str() :
+ _objsel->repoInfo().name().c_str());
+
+ case FORCED_INSTALL:
+ return str::form(
+ _("Forcing installation of '%s' from repository '%s'."),
+ resolvable_user_string(*_objsel.resolvable()).c_str(),
+ Zypper::instance()->config().show_alias ?
+ _objsel->repoInfo().alias().c_str() :
+ _objsel->repoInfo().name().c_str());
case SET_TO_REMOVE:
return str::form(_("Selecting '%s' for removal."),
case UPD_CANDIDATE_IS_LOCKED:
case SELECTED_IS_OLDER:
case PATCH_NOT_NEEDED:
+ case FORCED_INSTALL:
out.info(asUserString(opts));
break;
case SET_TO_INSTALL:
// ******* request ********
- if (!identical(installed, selected))
+ if (!identical(installed, selected) || _opts.force)
{
if (_opts.best_effort)
{
{
// set 'candidate' for installation
setToInstall(selected);
- MIL << *s << " update: setting " << selected << " to install" << endl;
+ MIL << *s << " update: forced setting " << selected << " to install" << endl;
}
}
// the candidate is already installed
if (identical(installed, selected))
{
+ if (_opts.force)
+ return;
+
// only say 'already installed' in case of install, if update was requested
// only report if we fail to install the newest version (the code below)
if (_command == ZypperCommand::INSTALL)
void SolverRequester::setToInstall(const PoolItem & pi)
{
- // pi.status().setToBeInstalled(ResStatus::USER); ?
- asSelectable()(pi)->setOnSystem(pi, ResStatus::USER);
- addFeedback(Feedback::SET_TO_INSTALL, Capability(), "", pi);
+ if (_opts.force)
+ {
+ pi.status().setToBeInstalled(ResStatus::USER);
+ addFeedback(Feedback::FORCED_INSTALL, Capability(), "", pi);
+ }
+ else
+ {
+ asSelectable()(pi)->setOnSystem(pi, ResStatus::USER);
+ addFeedback(Feedback::SET_TO_INSTALL, Capability(), "", pi);
+ }
_toinst.insert(pi);
}