Author: jkupec
Date: Sun May 25 15:49:16 2008
New Revision: 10214
URL: http://svn.opensuse.org/viewcvs/zypp?rev=10214&view=rev
Log:
- ignore recommends of installed packages (bnc #389694)
- new command 'install-new-recommends' to do just that
Modified:
trunk/zypper/doc/zypper.8
trunk/zypper/src/zypper-command.cc
trunk/zypper/src/zypper-command.h
trunk/zypper/src/zypper-misc.cc
trunk/zypper/src/zypper.cc
Modified: trunk/zypper/doc/zypper.8
URL: http://svn.opensuse.org/viewcvs/zypp/trunk/zypper/doc/zypper.8?rev=10214&r1=10213&r2=10214&view=diff
==============================================================================
--- trunk/zypper/doc/zypper.8 (original)
+++ trunk/zypper/doc/zypper.8 Sun May 25 15:49:16 2008
@@ -172,6 +172,19 @@
Use only specified repositories to install missing packages.
.TP
+.B install-new-recommends (inr) [options]
+Install newly added packages recommended by already installed ones.
+This can typically be used to install language packages recently added
+to repositories or drivers for newly added hardware.
+
+.TP
+.I \-r, \-\-repo
+Use only specified repositories to install packages.
+.TP
+.I \-D, \-\-dry-run
+Test the installation, do not actually install anything.
+
+.TP
.B list-updates (lu) [options]
List available updates.
.TP
Modified: trunk/zypper/src/zypper-command.cc
URL: http://svn.opensuse.org/viewcvs/zypp/trunk/zypper/src/zypper-command.cc?rev=10214&r1=10213&r2=10214&view=diff
==============================================================================
--- trunk/zypper/src/zypper-command.cc (original)
+++ trunk/zypper/src/zypper-command.cc Sun May 25 15:49:16 2008
@@ -29,6 +29,7 @@
const ZypperCommand ZypperCommand::DIST_UPGRADE(ZypperCommand::DIST_UPGRADE_e);
const ZypperCommand ZypperCommand::SRC_INSTALL(ZypperCommand::SRC_INSTALL_e);
const ZypperCommand ZypperCommand::VERIFY(ZypperCommand::VERIFY_e);
+const ZypperCommand ZypperCommand::INSTALL_NEW_RECOMMENDS(ZypperCommand::INSTALL_NEW_RECOMMENDS_e);
const ZypperCommand ZypperCommand::SEARCH(ZypperCommand::SEARCH_e);
const ZypperCommand ZypperCommand::INFO(ZypperCommand::INFO_e);
@@ -91,6 +92,7 @@
_table["dist-upgrade"] = _table["dup"] = ZypperCommand::DIST_UPGRADE_e;
_table["source-install"] = _table["si"] = ZypperCommand::SRC_INSTALL_e;
_table["verify"] = _table["ve"] = ZypperCommand::VERIFY_e;
+ _table["install-new-recommends"] = _table["inr"] = ZypperCommand::INSTALL_NEW_RECOMMENDS_e;
_table["search"] = _table["se"] = ZypperCommand::SEARCH_e;
_table["info"] = _table["if"] = ZypperCommand::INFO_e;
Modified: trunk/zypper/src/zypper-command.h
URL: http://svn.opensuse.org/viewcvs/zypp/trunk/zypper/src/zypper-command.h?rev=10214&r1=10213&r2=10214&view=diff
==============================================================================
--- trunk/zypper/src/zypper-command.h (original)
+++ trunk/zypper/src/zypper-command.h Sun May 25 15:49:16 2008
@@ -24,7 +24,8 @@
static const ZypperCommand DIST_UPGRADE;
static const ZypperCommand SRC_INSTALL;
static const ZypperCommand VERIFY;
-
+ static const ZypperCommand INSTALL_NEW_RECOMMENDS;
+
static const ZypperCommand SEARCH;
static const ZypperCommand INFO;
static const ZypperCommand LIST_UPDATES;
@@ -82,6 +83,7 @@
DIST_UPGRADE_e,
SRC_INSTALL_e,
VERIFY_e,
+ INSTALL_NEW_RECOMMENDS_e,
SEARCH_e,
INFO_e,
Modified: trunk/zypper/src/zypper-misc.cc
URL: http://svn.opensuse.org/viewcvs/zypp/trunk/zypper/src/zypper-misc.cc?rev=10214&r1=10213&r2=10214&view=diff
==============================================================================
--- trunk/zypper/src/zypper-misc.cc (original)
+++ trunk/zypper/src/zypper-misc.cc Sun May 25 15:49:16 2008
@@ -1534,6 +1534,18 @@
God->resolver()->setOnlyRequires(no_recommends);
}
+
+static void set_ignore_recommends_of_installed(Zypper & zypper)
+{
+ bool ignore = true;
+ if (zypper.command() == ZypperCommand::DIST_UPGRADE ||
+ zypper.command() == ZypperCommand::INSTALL_NEW_RECOMMENDS)
+ ignore = false;
+ DBG << "ignore recommends of already installed packages: " << ignore << endl;
+ God->resolver()->setIgnoreAlreadyRecommended(ignore);
+}
+
+
/**
* Run the solver.
*
@@ -1544,6 +1556,7 @@
dump_pool(); // debug
set_force_resolution(zypper);
set_no_recommends(zypper);
+ set_ignore_recommends_of_installed(zypper);
zypper.out().info(_("Resolving dependencies..."), Out::HIGH);
DBG << "Calling the solver..." << endl;
return God->resolver()->resolvePool();
Modified: trunk/zypper/src/zypper.cc
URL: http://svn.opensuse.org/viewcvs/zypp/trunk/zypper/src/zypper.cc?rev=10214&r1=10213&r2=10214&view=diff
==============================================================================
--- trunk/zypper/src/zypper.cc (original)
+++ trunk/zypper/src/zypper.cc Sun May 25 15:49:16 2008
@@ -931,6 +931,29 @@
break;
}
+ case ZypperCommand::INSTALL_NEW_RECOMMENDS_e:
+ {
+ static struct option options[] = {
+ {"dry-run", no_argument, 0, 'D'},
+ {"repo", required_argument, 0, 'r'},
+ {"help", no_argument, 0, 'h'},
+ {0, 0, 0, 0}
+ };
+ specific_options = options;
+ _command_help = _(
+ "install-new-recommends (inr) [options]\n"
+ "\n"
+ "Install newly added packages recommended by already installed packages."
+ " This can typically be used to install new language packages or drivers"
+ " for newly added hardware.\n"
+ "\n"
+ " Command options:\n"
+ "-r, --repo Use only specified repositories to install packages.\n"
+ "-D, --dry-run Test the installation, do not actually install anything.\n"
+ );
+ break;
+ }
+
case ZypperCommand::ADD_REPO_e:
{
static struct option service_add_options[] = {
@@ -2501,6 +2524,7 @@
}
case ZypperCommand::VERIFY_e:
+ case ZypperCommand::INSTALL_NEW_RECOMMENDS_e:
{
if (runningHelp()) { out().info(_command_help, Out::QUIET); return; }
@@ -2534,7 +2558,7 @@
load_resolvables(*this);
solve_and_commit(*this);
-
+
break;
}
--
To unsubscribe, e-mail: zypp-commit+unsubscribe@opensuse.org
For additional commands, e-mail: zypp-commit+help@opensuse.org