[Slackbuilds-users] several builds crashing looking for old libwebp

B Watson yalhcru at gmail.com
Tue Oct 2 09:56:30 UTC 2018


On 10/2/18, David Melik <davidnchmelik at gmail.com> wrote:
> Well, the problem appears to be poor source code in both
> NotepadQQ and KVIRC (most likely) and/or SlackBuilds done wrong.

It means you upgraded libwebp, but didn't upgrade other library packages
that depend on it. One of the libs in one of these packages was linked
when building NotepadQQ and KVIRC...

OK, a bit more investigation reveals that notepadqq and kvirc both require
qt5-webkit. And qt5-webkit lists libwebp as an optional dependency, in its
README.

So what happened here is you built some version of libwebp, then built
qt5-webkit afterwards... and then you (possibly months later) upgraded
libwebp. But qt5-webkit was still trying to find the old libwebp, which
is gone...

In this situation, newly-compiled programs that link with qt5-webkit
won't fail to compile or link... but they *will* fail at runtime in
exactly the way you describe.

It's a common problem when upgrading libraries: there's not an easy way
to find out what *other* libraries depend on it and need to be upgraded.
Especially when they're optional ones (not listed in REQUIRES in the
.info file). Usually when I get bit by this, it's ffpmeg (because it
just has *so* many deps, most of which are optional).

Generally you can figure this kind of runtime linking problem out by
using ldd... or, even better, get lddsafe from here:

https://github.com/rg3/lddsafe

...and use its -n option, which shows only direct library dependencies...
then use lddsafe -n on each of those libraries, until you hit a 'not
found'.

The other way to diagnose this would have been to look at the REQUIRES
for both notepadqq and kvirc (which is what I did) and notice they both
say qt5-webkit, and then find the shared libs in qt5-webkit and run
regular ldd on them. You would have gotten a 'not found' for the old
version of libwebp...

The general solution is to rebuild the offending library
(in this case, qt5-webkit). Or you can use sbopkg to check for updates
to *all* your installed packages, and upgrade them all (takes longer,
but you're less likely to run into problems like this).

Hopefully the above has been helpful to you, and makes up for what you'll
perceive as rudeness in the rest of the message. But I feel this must
be said, so:

It's not "poor source code" and it's not "SlackBuilds done wrong",
and it's kinda rude of you to say that, considering you're lacking
some fundamental knowledge that would qualify you to actually make
that judgement.

Your original post should probably have been a request for help, without
trying to place the blame on anyone. In fact, the blame is on you,
*your* system was in an inconsistent state. Hopefully I've helped you
to fix it and learn how to diagnose and fix it on your own next time.

Please try to take this as constructive criticism, not flaming.


More information about the SlackBuilds-users mailing list