Saturday, December 31, 2005

I did a bit of googling about that Qt version error, and apparently it's being caused by qt not being able to find the kde plugins that kdelibs compiled and installed.

I'd seen a reference to running qtconfig, and adding the plugin path, but when I ran qtconfig, as root, there was no where to enter any paths or anything.

I kept googling, and found another reference to doing that (here), and I ran qtconfig as a normal user. This time, there was a "library paths" tab, and I was able to add "/usr/lib/kde3/plugins" in.

I tried to configure kdebase again, but it still failed, with the same error, perhaps because I'm running the configure as root.

I don't know why the library paths tab would only come up when running qtconfig as a non root user. I also don't know where qt holds those settings, or I would just modify the file manually.

I tried running the configure of kdebase as the normal user, but that didn't work either.

It especially doesn't make sense, because uic is being passed the plugin path as a variable.

When I investigated a bit futher, I found I had 2 versions of qtconfig installed, one in /usr/bin/qtconfig, and the proper one, which I'd compiled, in /usr/local/qt/bin.

This was causing the library paths tab to appear or not.

I tried to find what package provided qtconfig, to remove it, but there seems to be no package in ubuntu that provides it, so god knows where it came from.

I just renamed it, and tested for qtconfig again, but it couldn't find the proper one.

I fixed up the PATH in .bashrc. I tried to run qtconfig as root, but it couldn't find it, presumable since root's environment didn't include the path change.

I ran it with the full path, and got the following output in the console:
Conflict in /usr/lib/kde3/plugins/styles/highcolor.so:
Plugin uses incompatible Qt library!
expected build key "i686 Linux g++-4 full-config", got "i686 Linux g++-4.* full-config".
Conflict in /usr/lib/kde3/plugins/styles/highcontrast.so:
Plugin uses incompatible Qt library!
expected build key "i686 Linux g++-4 full-config", got "i686 Linux g++-4.* full-config".
Conflict in /usr/lib/kde3/plugins/styles/keramik.so:
Plugin uses incompatible Qt library!
expected build key "i686 Linux g++-4 full-config", got "i686 Linux g++-4.* full-config".
Conflict in /usr/lib/kde3/plugins/styles/kthemestyle.so:
Plugin uses incompatible Qt library!
expected build key "i686 Linux g++-4 full-config", got "i686 Linux g++-4.* full-config".
Conflict in /usr/lib/kde3/plugins/styles/light.so:
Plugin uses incompatible Qt library!
expected build key "i686 Linux g++-4 full-config", got "i686 Linux g++-4.* full-config".

So that looks like the problem, that all the plugins were compiled against the wrong library.

I did a bit more poking around, and found the wrong version of moc in the path too, pointing to a deb installed version. I found this had been provided by "qt3-dev-tools" which I'd installed at some point, so I removed it.

This resulted in moc becoming symlinked to moc-qt4, provided by libqt4-dev, another deb. I removed that too.

Then, in my user environment, the right moc was being picked up, but using sudo, it couldn't find it. Another path inheritence problem it looks like.

I tried editing root's .bashrc, and adding the path/environment variables in, but it seems that it doesn't get called, even when doing sudo sh.

I sourced it manually, and then it was finding the right binary.

I ran another configured on kdebase, as root, in a proper environment, but it made no difference.

I ran qtconfig again, and this time it didn't complain about the errors in the plugins.

I decided to recompile kdelibs, in the right environment, I reconfigured it, and recompiled it, and a few files compiled (I didn't make clean). I reinstalled it.

I really didn't want to have to wait an hour while kdelibs compiled again, if I did it from scratch.

I configured kdebase again. It made no difference again. I got the same bloody error again:
checking if UIC has KDE plugins available... no
configure: error:
you need to install kdelibs first.

If you did install kdelibs, then the Qt version that is picked up by
this configure is not the same version you used to compile kdelibs.
The Qt Plugin installed by kdelibs is *ONLY* loadable if it is the
_same Qt version_, compiled with the _same compiler_ and the same Qt
configuration settings.

WTF?

I continued searching, and it looks like it's caused by the plugins being compiled against the wrong library, as I thought. Those debs must have screwed things up.

I bit the bullet, and did a make clean on kdelibs, reconfigured it, and noticed I never fixed that lua problem.

I kicked off the compilation. As before, it ran for a while before presenting the -fpie error, so I fixed that again.

kdelibs finished compiling, however I'd already fixed the problem.. (see the next post). I installed it anyway, just to see if it had fixed the kdebase issue.

I reconfigured kdebase, and it still made no difference.

At this point, I gave up on trying to compile kde. I don't like kde anyway, and it's not going to solve my problem, since JuK does not need to be recompiled to get mp3 support.

0 Comments:

Post a Comment

<< Home