dnl ==================================================
m4_define([ZYPPER_MAJOR], [0])
m4_define([ZYPPER_MINOR], [6])
-m4_define([ZYPPER_PATCH], [12])
+m4_define([ZYPPER_PATCH], [13)
dnl ==================================================
.TP
.I \-y, \-\-no-confirm
Don't require user confirmation.
+.TP
+.I \-\-skip\-interactive
+This will skip interactive patches, that is those that need a reboot,
+contain a message, or update a package whose license needs to be
+confirmed.
.B NOTE:
Zypper prefers to update only those packages for which a patch
-------------------------------------------------------------------
+Mon Nov 20 17:29:57 CET 2006 - mvidner@suse.cz
+
+- Respect "update --skip-interactive" (#221476).
+- 0.6.13
+
+-------------------------------------------------------------------
Mon Nov 20 13:55:28 CET 2006 - mvidner@suse.cz
- update -t package: keep the same architecture (#222140).
return result;
}
-void mark_patch_updates ()
+static
+void mark_patch_updates (bool skip_interactive)
{
if (true) {
// search twice: if there are none with affects_pkg_manager, retry on all
if ( it->status().isNeeded() ) {
Patch::constPtr patch = asKind<Patch>(res);
if (attempt == 1 || patch->affects_pkg_manager ()) {
- nothing_found = false;
- mark_item_install (*it);
+ // #221476
+ if (skip_interactive && patch->interactive()) {
+ // Skipping a patch because it is interactive and
+ // --skip-interactive is requested. %s is a name of a
+ // patch
+ cerr << format (_("Warning: %s is interactive, skipped."))
+ % res << endl;
+ }
+ else {
+ nothing_found = false;
+ mark_item_install (*it);
+ }
}
}
}
}
}
-void mark_updates( const ResObject::Kind &kind )
+void mark_updates( const ResObject::Kind &kind, bool skip_interactive )
{
bool k_is_patch = kind == ResTraits<Patch>::kind;
if (k_is_patch) {
- mark_patch_updates ();
+ mark_patch_updates (skip_interactive);
}
else {
Candidates candidates;
void show_patches();
void patch_check();
void list_updates( const zypp::ResObject::Kind &kind );
-void mark_updates( const zypp::ResObject::Kind &kind );
+void mark_updates( const zypp::ResObject::Kind &kind, bool skip_interactive );
void usage(int argc, char **argv);
int solve_and_commit (bool non_interactive = false);
bool confirm_licenses(bool non_interactive = false);
static struct option update_options[] = {
{"type", required_argument, 0, 't'},
{"no-confirm", no_argument, 0, 'y'},
+ {"skip-interactive", no_argument, 0, 0},
{"help", no_argument, 0, 'h'},
{0, 0, 0, 0}
};
specific_help = " Command options:\n"
"\t--type,-t\t\tType of resolvable (default: patch!)\n"
"\t--no-confirm,-y\t\tDon't require user confirmation\n"
+ "\t--skip-interactive\t\tSkip interactive updates\n"
;
}
else if (command == "search" || command == "se") {
cond_load_resolvables ();
establish ();
- mark_updates (kind);
+ bool skip_interactive = copts.count("skip-interactive");
+ mark_updates (kind, skip_interactive);
// commit
// returns ZYPPER_EXIT_OK, ZYPPER_EXIT_ERR_ZYPP,