Binary compatiblity for liboxygenstyle.so

Andras Mantia amantia at kde.org
Sat Feb 25 19:53:09 GMT 2012


On Saturday, February 25, 2012 08:37:05 PM Thomas L├╝bking wrote:
> > Tell me what do I do wrongly, and I'm willing to apologize and fix my
> > system.
> 
> try
> QT_PLUGIN_PATH=/opt/kde4/lib64/kde4/plugins:/usr/lib64/kde4/plugins strace
> kwrite --style oxygen 2>&1 | grep -i oxygen | grep open
>                                    ^^^^^^ good path ^^^^^^^^^^   ^^^ bad
> path ^^^^^^^^^

Thanks, we are getting somewhere, but what I found is weird.

QT_PLUGIN_PATH=/opt/kde4/lib64/kde4/plugins:/usr/lib64/kde4/plugins /usr/bin/kwrite

works as expected

(just as a reminder my QT_PLUGIN_PATH is this:
QT_PLUGIN_PATH=/opt/qt4/plugins:/opt/kde4/lib64/kde4/plugins::/encrypted/home/andris/.kde4/lib64/kde4/plugins/:/opt/kde4/lib64/kde4/plugins/

)

Now comes the weird thing:
QT_PLUGIN_PATH=/opt/kde4/lib64/kde4/plugins /usr/bin/kwrite
/usr/bin/kwrite: symbol lookup error: /usr/lib64/kde4/plugins/styles/oxygen.so: undefined symbol: _ZN6Oxygen7TileSetC1ERK7QPixmapiiii

So it works when I add *also* the /usr/... path to the plugin list, but it doesn't work if I don't add it!

Here is the two strace.

Working:

 QT_PLUGIN_PATH=/opt/kde4/lib64/kde4/plugins:/usr/lib64/kde4/plugins strace /usr/bin/kwrite --style oxygen 2>&1 | grep -i oxygen | grep open
open("/opt/kde4/share/icons/Oxygen_White/cursors/left_ptr", O_RDONLY) = 8
open("/opt/kde4/share/icons/oxygen/index.theme", O_RDONLY|O_CLOEXEC) = 8
open("/opt/kde4/lib64/kde4/plugins/styles/oxygen.so", O_RDONLY) = 9
open("/opt/kde4/lib64/liboxygenstyle.so.4", O_RDONLY) = 9
open("/encrypted/home/andris/.kde4/share/config/oxygenrc", O_RDONLY|O_CLOEXEC) = 9
open("/etc/kde4/share/config/oxygenrc", O_RDONLY|O_CLOEXEC) = 9
open("/encrypted/home/andris/.kde4/share/config/oxygenrc", O_RDONLY|O_CLOEXEC) = 9
open("/etc/kde4/share/config/oxygenrc", O_RDONLY|O_CLOEXEC) = 9
open("/encrypted/home/andris/.kde4/share/config/oxygenrc", O_RDONLY|O_CLOEXEC) = 9
open("/etc/kde4/share/config/oxygenrc", O_RDONLY|O_CLOEXEC) = 9
open("/encrypted/home/andris/.kde4/share/config/oxygenrc", O_RDONLY|O_CLOEXEC) = 9
open("/etc/kde4/share/config/oxygenrc", O_RDONLY|O_CLOEXEC) = 9
open("/encrypted/home/andris/.kde4/share/config/oxygenrc", O_RDONLY|O_CLOEXEC) = 9
open("/etc/kde4/share/config/oxygenrc", O_RDONLY|O_CLOEXEC) = 9
open("/encrypted/home/andris/.kde4/share/config/oxygenrc", O_RDONLY|O_CLOEXEC) = 9
open("/etc/kde4/share/config/oxygenrc", O_RDONLY|O_CLOEXEC) = 9
open("/encrypted/home/andris/.kde4/share/config/oxygenrc", O_RDONLY|O_CLOEXEC) = 9
open("/opt/kde4/share/icons/Oxygen_White/cursors/ibeam", O_RDONLY) = 12


Not working:
QT_PLUGIN_PATH=/opt/kde4/lib64/kde4/plugins strace /usr/bin/kwrite --style oxygen 2>&1 | grep -i oxygen | grep open
open("/opt/kde4/share/icons/Oxygen_White/cursors/left_ptr", O_RDONLY) = 8
open("/opt/kde4/share/icons/oxygen/index.theme", O_RDONLY|O_CLOEXEC) = 8
open("/usr/lib64/kde4/plugins/styles/oxygen.so", O_RDONLY) = 9
open("/opt/kde4/lib64/liboxygenstyle.so.4", O_RDONLY) = 9
open("/encrypted/home/andris/.kde4/share/config/oxygenrc", O_RDONLY|O_CLOEXEC) = 9
open("/etc/kde4/share/config/oxygenrc", O_RDONLY|O_CLOEXEC) = 9
open("/encrypted/home/andris/.kde4/share/config/oxygenrc", O_RDONLY|O_CLOEXEC) = 9
open("/etc/kde4/share/config/oxygenrc", O_RDONLY|O_CLOEXEC) = 9
open("/encrypted/home/andris/.kde4/share/config/oxygenrc", O_RDONLY|O_CLOEXEC) = 9
open("/etc/kde4/share/config/oxygenrc", O_RDONLY|O_CLOEXEC) = 9
open("/encrypted/home/andris/.kde4/share/config/oxygenrc", O_RDONLY|O_CLOEXEC) = 9
open("/etc/kde4/share/config/oxygenrc", O_RDONLY|O_CLOEXEC) = 9
open("/encrypted/home/andris/.kde4/share/config/oxygenrc", O_RDONLY|O_CLOEXEC) = 9
open("/etc/kde4/share/config/oxygenrc", O_RDONLY|O_CLOEXEC) = 9
open("/encrypted/home/andris/.kde4/share/config/oxygenrc", O_RDONLY|O_CLOEXEC) = 9
open("/etc/kde4/share/config/oxygenrc", O_RDONLY|O_CLOEXEC) = 9
open("/encrypted/home/andris/.kde4/share/config/oxygenrc", O_RDONLY|O_CLOEXEC) = 9

If you ask me, this is very unexpected.

I can fix now my system, so I have to apologize, as looks that this is some weird behavior in how
Qt loads the plugins.


To reply about the KApp/QApp difference: Qt Creator also shows the problem, so it is not really KApplication 
related.

Andras





More information about the kde-core-devel mailing list