mirror of
https://git.yoctoproject.org/poky
synced 2026-04-18 21:32:12 +02:00
package_manager/rpm: give out useful reason about unmatched packages
Unmatched package error is a common error at rootfs. We want to give
out more useful information to user.
Before this change, if some user specifiy IMAGE_INSTALL += "catch2",
the error message will be like:
No match for argument: catch2
Error: Unable to find a match: catch2
With this patch, the error message will be like:
No match for argument: catch2
Error: Unable to find a match: catch2
catch2 is a recipe. Its generated packages are: ['catch2-src', 'catch2-dbg', 'catch2-staticdev', 'catch2-dev', 'catch2-doc']
Either specify a generated package or set ALLOW_EMPTY:${PN} = "1" in catch2 recipe
(From OE-Core rev: 00f871cd07d7f44788124510a75b7160fdc60bb5)
Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
@@ -330,8 +330,15 @@ class RpmPM(PackageManager):
|
||||
return output
|
||||
except subprocess.CalledProcessError as e:
|
||||
if print_output:
|
||||
e_output = e.output.decode("utf-8")
|
||||
extra_info = ""
|
||||
if "install" in dnf_args:
|
||||
if "Error: Unable to find a match:" in e_output:
|
||||
no_match_pkgs = re.search(r'Error: Unable to find a match: ([a-z0-9+\-\._\s]+)', e_output).group(1).split()
|
||||
for pkg in no_match_pkgs:
|
||||
extra_info += self.get_missing_pkg_reason(pkg)
|
||||
(bb.note, bb.fatal)[fatal]("Could not invoke dnf. Command "
|
||||
"'%s' returned %d:\n%s" % (' '.join(cmd), e.returncode, e.output.decode("utf-8")))
|
||||
"'%s' returned %d:\n%s%s" % (' '.join(cmd), e.returncode, e_output, extra_info))
|
||||
else:
|
||||
(bb.note, bb.fatal)[fatal]("Could not invoke dnf. Command "
|
||||
"'%s' returned %d:" % (' '.join(cmd), e.returncode))
|
||||
|
||||
Reference in New Issue
Block a user