mirror of
https://git.yoctoproject.org/git/poky
synced 2026-01-01 13:58:04 +00:00
package_manager/ipk: give out useful reason about an unmatched package
Give out useful information when a package could not be matched.
Before the change:
error: opkg_solver_install: No candidates to install catch2 (null)!
With this patch:
error: opkg_solver_install: No candidates to install catch2 (null)!
...
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: 4bcb97ab4d7622d04dbf71930ea1784c8d57c136)
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:
parent
83a7f03535
commit
8b48566f53
|
|
@ -307,9 +307,21 @@ class OpkgPM(OpkgDpkgPM):
|
|||
if failed_pkgs:
|
||||
failed_postinsts_abort(failed_pkgs, self.d.expand("${T}/log.do_${BB_CURRENTTASK}"))
|
||||
except subprocess.CalledProcessError as e:
|
||||
e_output = e.output.decode("utf-8")
|
||||
extra_info = ""
|
||||
unmatched_pkgs = []
|
||||
for e_line in e_output.split('\n'):
|
||||
if "error: opkg_solver_install: No candidates to install" in e_line:
|
||||
unmatched_pkg = re.search(r"error: opkg_solver_install: No candidates to install ([a-z0-9+\-\._]+)", e_line).group(1)
|
||||
unmatched_pkgs.append(unmatched_pkg)
|
||||
elif "error: opkg_prepare_url_for_install: Couldn't find anything to satisfy" in e_line:
|
||||
unmatched_pkg = re.search(r"error: opkg_prepare_url_for_install: Couldn't find anything to satisfy '([a-z0-9+\-\._]+)'", e_line).group(1)
|
||||
unmatched_pkgs.append(unmatched_pkg)
|
||||
for pkg in unmatched_pkgs:
|
||||
extra_info += self.get_missing_pkg_reason(pkg)
|
||||
(bb.fatal, bb.warn)[attempt_only]("Unable to install packages. "
|
||||
"Command '%s' returned %d:\n%s" %
|
||||
(cmd, e.returncode, e.output.decode("utf-8")))
|
||||
"Command '%s' returned %d:\n%s%s" %
|
||||
(cmd, e.returncode, e_output, extra_info))
|
||||
|
||||
def remove(self, pkgs, with_dependencies=True):
|
||||
if not pkgs:
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user