[kde-linux] Re: Digikam and Gwenview cannot find kipi plugins

Duncan 1i5t5.duncan at cox.net
Tue Jul 12 23:41:43 UTC 2011

Bogus Zaba posted on Tue, 12 Jul 2011 20:20:44 +0100 as excerpted:

> OK - the ...services/kipiplugin_*.desktop files were all there - in the
> same directory as you have them.
> I then went on to the strace on gwenview and modifying slightly your
> suggested command, ran:
> strace -feopen gwenview 2>&1 | grep kipi
> grepping out just the open files with "kipi" in the filenames...
> output was quite simple:
> open("/usr/lib/qt/lib/libkipi.so.7", O_RDONLY) = -1 ENOENT (No such file
> or directory)
> open("/usr/lib/libkipi.so.7", O_RDONLY) = 3

That's all?  Wow.  I expected a whole slew.  But see below...

> which I took to mean the first search for libkipi.so.7 failed (in the qt
> sub-directory) but the second one (in /usr/lib/) worked OK. Check - that
> file exists (it's a symlink to /usr/lib/libkipip.so.7.1.0) so that
> appears to be OK. However what I notice in this directory is that this
> file - libkipi.so.7.1.0 and its symlinks is old (March 2011) and was not
> part of the install that my latest slackware package did. There is
> another file (with symlinks) called /usr/lib/libkipiplugins.so.1.0.0
> which *is* part of the latest install.
> I guess I should remove / rename the old files - gwenview may then carry
> on looking for the newer files (libkipiplugins rather than libkipi) and
> the plugins might start up correctly?

See the subthread Anne started.  There's a second package, libkipi (no -
plugins) on my system, apparently libkipi-plugins on hers.  I was 
initially searching for kipi-plugins and didn't see it.

Youre strace reveals that the actual plugins are dynamically loaded only 
when I click on the plugins menu, obviously after gwenview has already 
started.  Until I click on that menu, using your strace, only libkipi is 
loaded, with two strace/grep hits parallel to yours.

There are some minor differences.  I'm on amd64 here, which on Gentoo 
uses lib64 not lib, but that's trivial.  And instead of libkipi.so.7, 
here, it loads libkipi.so.8, presumably bumped for kde 4.7 as I'm running 
4.6.95 aka 4.7-rc2.

Here's the first few lines of the strace after I've clicked on the plugins 
menu, without doing anything else.  The first lines (without a pid) 
appear on initial load, those after (with the pid, illustrating why I've 
begun using -f on my straces by default, now) appear only after I've 
first opened the plugins menu.

strace -feopen gwenview 2>&1 | grep kipi
open("/usr/lib64/qt4/libkipi.so.8", O_RDONLY) = -1 ENOENT (No such file 
or directory)
open("/usr/lib64/libkipi.so.8", O_RDONLY) = 3
[pid  6055] open("/usr/lib64/kde4/kipiplugin_advancedslideshow.so", 
O_RDONLY) = 19
[pid  6055] open("/usr/lib64/qt4/libkipiplugins.so.1", O_RDONLY) = -1 
ENOENT (No such file or directory)
[pid  6055] open("/usr/lib64/libkipiplugins.so.1", O_RDONLY) = 19

A quick equery (gentoo package database querying tool) reveals these hits 
for (regex) .*libkipi.so.* (kde-base is the gentoo category, ignore it 
since you're not on gentoo)

kde-base/libkipi-4.6.95 (/usr/lib64/libkipi.so -> libkipi.so.8)
kde-base/libkipi-4.6.95 (/usr/lib64/libkipi.so.8 -> libkipi.so.8.0.0)
kde-base/libkipi-4.6.95 (/usr/lib64/libkipi.so.8.0.0)

Since 4.6.95 is the kde version I'm running, you probably have a 
similarly named package with a version that should match your kde 
version, 4.5.5 with the library version 7.x.y that you mentioned.  That 
should own those libs/symlinks, which should be opened as gwenview starts 
(as they were).

Then your kipi-plugins package should own a bunch of kipiplugin_*.so 
unversioned plugins, AND your symlink/lib libkipiplugins.so.1.0.0 .  But 
my strace only showed these loaded after gwenview starts and I opened the 
plugins menu.

I'm not sure where that leaves you on the problem, but we DO know that 
both libkipi.so and libkipiplugins.so are used, now.

Oh, and ldd /usr/bin/gwenview | grep kipi reveals that libkipi.so.8 
(presumably .7 there) is directly linked into gwenview.  Since it's 
linked in, without it, gwenview likely won't run at all.

libkipiplugins.so.* is not linked in.  It and the various plugins are 
loaded dynamically if they are found.  If not, they're simply not loaded 
and not listed, but gwenview should still run.

(FWIW, I don't have digikam installed.  I don't have a camera and it had 
some dependencies I didn't want to bother with.  But I have gwenview 
installed and the plugins working, so that's why I've been using it 

Duncan - List replies preferred.   No HTML msgs.
"Every nonfree program has a lord, a master --
and if you use the program, he is your master."  Richard Stallman

More information about the kde-linux mailing list