[PATCH opkg] libopkg: pkg_hash: print unresolved dependencies
Sven Roederer
devel-sven at geroedel.de
Tue May 18 23:41:01 BST 2021
Hi,
Am Montag, 3. Mai 2021, 19:46:22 CEST schrieb Hauke Mehrtens:
> On 5/3/21 2:38 PM, Baptiste Jonglez wrote:
> > Hi,
> >
> > On 02-05-21, Hauke Mehrtens wrote:
> >> When a package is not installed because it has unresolved dependencies
> >>
> >> normally we get only an error message like this:
> >> * pkg_hash_fetch_best_installation_candidate: Packages for ltq-vdsl-app
> >> found, but incompatible with the architectures configured *
> >> opkg_install_cmd: Cannot install package ltq-vdsl-app.
> >>
> >> Log in addition the following error message:
> >> * pkg_hash_check_unresolved: can not find dependency ltq-dsl-base for
> >> ltq-vdsl-app>
> > Since the error has probably nothing to do with "architectures", wouldn't
> > it make more sense to remove or improve the first error message? Or
> > understand why it fails for seemingly unrelated reasons.
>
> This "incompatible with the architectures configured" error message is
> shown for more error cases than the newly added one, see here:
> https://lxr.openwrt.org/source/opkg-lede/libopkg/pkg_hash.c#L395
>
> It would probably be good to improve the error messages, but I do not
> understand the full code. If someone has some suggestions on how to
> improve this it would be nice.
>
Hauke mentioined this patch in relation to FS#3814. I build a patched version
myself and gave it a test - It fixes the problem
Having no packagelist avail an trying to install luci-proto-ipip results in a
message pointing towards the missing dependent package
~# opkg install /tmp/luci-proto-ipip_git-19.307.61018-284918b_all.ipk
Unknown package 'luci-proto-ipip'.
Collected errors:
* pkg_hash_check_unresolved: can not find dependency ipip for luci-proto-ipip
* pkg_hash_fetch_best_installation_candidate: Packages for luci-proto-ipip
found, but incompatible with the architectures configured
* opkg_install_cmd: Cannot install package luci-proto-ipip.
The "Unknown package 'luci-proto-ipip'." line is still incorrect, but "can not
find dependency ipip" is the key.
So maybe not the last change to the code, but a big improvement.
Sven
> >> Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
> >> ---
> >>
> >> I am not sure if this would happen in normal cases too and spam the
> >> error log, I only saw this in an error case.
> >>
> >> libopkg/pkg_hash.c | 4 +++-
> >> 1 file changed, 3 insertions(+), 1 deletion(-)
> >>
> >> diff --git a/libopkg/pkg_hash.c b/libopkg/pkg_hash.c
> >> index a07a25e..6c04ab2 100644
> >> --- a/libopkg/pkg_hash.c
> >> +++ b/libopkg/pkg_hash.c
> >> @@ -263,8 +263,10 @@ pkg_hash_check_unresolved(pkg_t *maybe)
> >>
> >> if (unresolved) {
> >>
> >> res = 1;
> >> tmp = unresolved;
> >>
> >> - while (*tmp)
> >> + while (*tmp) {
> >> + opkg_msg(ERROR, "can not find dependency %s for %s\n", *tmp,
> >> maybe->name);>>
> >> free(*(tmp++));
> >>
> >> + }
> >>
> >> free(unresolved);
> >>
> >> }
> >> pkg_vec_free(depends);
More information about the openwrt-devel
mailing list