Skip to content

Commit

Permalink
repoquery: resolve NEVRAs to packages for most of --what* arguments (…
Browse files Browse the repository at this point in the history
…RhBug:1534123,1698034)

To properly list the conflicts, suggests, recommends, enhances and
supplements dependencies of packages defined through provides or even
rich dependencies, it is required to resolve them to packages and query
for them, because that's where the dependencies are defined.

https://bugzilla.redhat.com/show_bug.cgi?id=1534123
https://bugzilla.redhat.com/show_bug.cgi?id=1698034

Closes: #1432
Approved by: j-mracek
  • Loading branch information
Lukáš Hrázký authored and inknos committed May 7, 2020
1 parent 51e5a0c commit b6f4ac3
Showing 1 changed file with 11 additions and 5 deletions.
16 changes: 11 additions & 5 deletions dnf/cli/commands/repoquery.py
Original file line number Diff line number Diff line change
Expand Up @@ -499,7 +499,8 @@ def run(self):
if self.opts.file:
q.filterm(file__glob=self.opts.file)
if self.opts.whatconflicts:
q.filterm(conflicts=self.opts.whatconflicts)
rels = q.filter(conflicts__glob=self.opts.whatconflicts)
q = rels.union(q.filter(conflicts=self._resolve_nevras(self.opts.whatconflicts, q)))
if self.opts.whatobsoletes:
q.filterm(obsoletes=self.opts.whatobsoletes)
if self.opts.whatprovides:
Expand All @@ -526,13 +527,18 @@ def run(self):
q = self.by_all_deps(self.opts.whatdepends, q, True)

if self.opts.whatrecommends:
q.filterm(recommends__glob=self.opts.whatrecommends)
rels = q.filter(recommends__glob=self.opts.whatrecommends)
q = rels.union(q.filter(recommends=self._resolve_nevras(self.opts.whatrecommends, q)))
if self.opts.whatenhances:
q.filterm(enhances__glob=self.opts.whatenhances)
rels = q.filter(enhances__glob=self.opts.whatenhances)
q = rels.union(q.filter(enhances=self._resolve_nevras(self.opts.whatenhances, q)))
if self.opts.whatsupplements:
q.filterm(supplements__glob=self.opts.whatsupplements)
rels = q.filter(supplements__glob=self.opts.whatsupplements)
q = rels.union(q.filter(supplements=self._resolve_nevras(self.opts.whatsupplements, q)))
if self.opts.whatsuggests:
q.filterm(suggests__glob=self.opts.whatsuggests)
rels = q.filter(suggests__glob=self.opts.whatsuggests)
q = rels.union(q.filter(suggests=self._resolve_nevras(self.opts.whatsuggests, q)))

if self.opts.latest_limit:
q = q.latest(self.opts.latest_limit)
# reduce a query to security upgrades if they are specified
Expand Down

0 comments on commit b6f4ac3

Please sign in to comment.