gather: Support dotarch in DNF backend
The documentation claims that dotarch syntax is supported for additional packages. For yum backend this seems to be handled automatically, but the dnf backend could not interpret this. This patch checks if a package is specified in the syntax and contains a valid architecture. If so, the query will honor the arch. JIRA: RHELCMP-11728 Signed-off-by: Lubomír Sedlář <lsedlar@redhat.com>
This commit is contained in:
parent
b8b6b46ce7
commit
82ca4f4e65
@ -26,6 +26,7 @@ import pungi.common
|
|||||||
import pungi.dnf_wrapper
|
import pungi.dnf_wrapper
|
||||||
import pungi.multilib_dnf
|
import pungi.multilib_dnf
|
||||||
import pungi.util
|
import pungi.util
|
||||||
|
from pungi import arch_utils
|
||||||
from pungi.linker import Linker
|
from pungi.linker import Linker
|
||||||
from pungi.profiler import Profiler
|
from pungi.profiler import Profiler
|
||||||
from pungi.util import DEBUG_PATTERNS
|
from pungi.util import DEBUG_PATTERNS
|
||||||
@ -500,9 +501,16 @@ class Gather(GatherBase):
|
|||||||
name__glob=pattern[:-2]
|
name__glob=pattern[:-2]
|
||||||
).apply()
|
).apply()
|
||||||
else:
|
else:
|
||||||
pkgs = self.q_binary_packages.filter(
|
kwargs = {"name__glob": pattern}
|
||||||
name__glob=pattern
|
if "." in pattern:
|
||||||
).apply()
|
# The pattern could be name.arch. Check if the
|
||||||
|
# arch is valid, and if yes, make a more
|
||||||
|
# specific query.
|
||||||
|
name, arch = pattern.split(".", 1)
|
||||||
|
if arch in arch_utils.arches:
|
||||||
|
kwargs["name__glob"] = name
|
||||||
|
kwargs["arch__eq"] = arch
|
||||||
|
pkgs = self.q_binary_packages.filter(**kwargs).apply()
|
||||||
|
|
||||||
if not pkgs:
|
if not pkgs:
|
||||||
self.logger.error("No package matches pattern %s" % pattern)
|
self.logger.error("No package matches pattern %s" % pattern)
|
||||||
|
Loading…
Reference in New Issue
Block a user