Skip to content

Commit

Permalink
Fix behavior of remove-n command
Browse files Browse the repository at this point in the history
Commit de9643a (first shipped in dnf 4.2.8) changed opts.command
from a list to a simple string, but code in RemoveCommand still handled
it as if it was a list.

This broke silently because Python will iterate over a string character
by character, so it never produced a syntax error or an exception that
would be noticed.

But it broke behavior of the `remove-n` form, since it would no
longer detect that command to restrict search of packages.

Before this commit, this command would (incorrectly) succeed:
  $ dnf remove-n joe-4.6

After this commit:
  $ dnf remove-n joe-4.6
  No match for argument: joe-4.6
  No packages marked for removal.
  Dependencies resolved.
  Nothing to do.
  Complete!

This command still works as expected:
  $ dnf remove-n joe

Closes: #1611
Approved by: m-blaha
  • Loading branch information
filbranden authored and rh-atomic-bot committed Apr 1, 2020
1 parent e5b9e32 commit 3c10131
Showing 1 changed file with 3 additions and 2 deletions.
5 changes: 3 additions & 2 deletions dnf/cli/commands/remove.py
Original file line number Diff line number Diff line change
Expand Up @@ -79,8 +79,9 @@ def configure(self):

def run(self):

forms = [self.nevra_forms[command] for command in self.opts.command
if command in list(self.nevra_forms.keys())]
forms = []
if self.opts.command in self.nevra_forms:
forms = [self.nevra_forms[self.opts.command]]

# local pkgs not supported in erase command
self.opts.pkg_specs += self.opts.filenames
Expand Down

0 comments on commit 3c10131

Please sign in to comment.