Deciare
June 9th, 2007, 10:54 PM
Did you recently try to compile and install CompComm yourself, then discover that it won't load many of the plugins you have installed?
When you try to start Compiz from a console, you may see an error message similar to this one:
[quote:950ee]compiz (core): Can't load plugin 'ccp' because it is built for ABI version 20070603 and actual version is 20070606
compiz (core): Couldn't activate plugin 'ccp'[/quote:950ee]
What does it mean?
There are several reasons why you may be seeing that error. You may have more than one version of Compiz installed, you may have more than one version of some plugins installed, you may have stray files laying around from earlier versions you thought you uninstalled, or your source code directories may be out of date.
Sometimes, major changes are made to Compiz that break its compatibility with plugins that were compiled for earlier versions. Whenever such a compatibility-breaking change takes place, a file called compiz.h is updated to a different ABI version. Plugins inherit the ABI version defined in compiz.h at the time they're defined. So when you install version of Compiz with a different ABI version than what your plugins have, or vice versa, Compiz will refuse to load the plugins that have a mismatching ABI version.
How can I check if I have this problem?
If Compiz has ever been installed before onto the computer you're using, then this may be your problem. :) But let's make sure.
To make searching faster, update the locate database now by running this command (you may need to do it as the root user or by prefixing it with the sudo command):
[code:950ee]updatedb[/code:950ee]
Then enter this command into a console:
[code:950ee]locate compiz.h[/code:950ee]
There should be at most two copies of the file compiz.h on your computer: one where you installed Compiz, and another where you compiled Compiz. If you have more than two copies, there is a problem.
You can also check whether you have more than one installed (i.e. not in a source code directory) copy of the plugins that aren't loading. Plugins usually have a filename like "lib<name_of_plugin>.so". So if the plugin that won't load is called animation, then the file you should look for is called libanimation.so:
[code:950ee]locate libanimation.so[/code:950ee]
The ccp plugin is an exception. If your ccp plugin isn't loading, check for whether you have more than one installed copy of libccs.so:
[code:950ee]locate libccs.so[/code:950ee]
How do I fix it?
Enter this command into a console:
[code:950ee]which compiz[/code:950ee]
It should respond with a line like this:
[code:950ee]/usr/local/bin/compiz[/code:950ee]
The part that comes before "/bin/compiz"-- that is, the part that says "/usr/local", is your installation prefix. The only installed copy of compiz.h should exist under the installation prefix. In the above example, the only installed copy of compiz.h should be at /usr/local/include/compiz/compiz.h.
Likewise, all installed plugins should only exist under Compiz's installed prefix. In this example, the only installed copy of the animation plugin should be at /usr/local/lib/compiz/libanimation.so. The only installed copy of the ccp plugin should be at /usr/local/lib/compiz/libccs.so. And so on.
If you find any installed copies of compiz.h or plugins that aren't under the installation prefix, delete them.
If those other copies belong to packages you installed with a package manager, then you should try uninstalling those packages first, and only deleting the files if they're still there after the packages have been uninstalled.
If you want to be absolutely certain you are leaving no room for error, then delete all traces of Compiz and its plugins from your computer, including the currently installed copy!
Once you are through with the deleting spree, recompile Compiz and its plugins from the beginning. Run [code:950ee]make clean[/code:950ee] in each source code directory before recompiling. If that doesn't work, then delete all Compiz and related source code directories and re-download them.
Is everything working now? If you're still getting the ABI version error... Then I'm out of ideas. XD Let me know if you solve the problem! I'm sure other people would like to know how, too.
When you try to start Compiz from a console, you may see an error message similar to this one:
[quote:950ee]compiz (core): Can't load plugin 'ccp' because it is built for ABI version 20070603 and actual version is 20070606
compiz (core): Couldn't activate plugin 'ccp'[/quote:950ee]
What does it mean?
There are several reasons why you may be seeing that error. You may have more than one version of Compiz installed, you may have more than one version of some plugins installed, you may have stray files laying around from earlier versions you thought you uninstalled, or your source code directories may be out of date.
Sometimes, major changes are made to Compiz that break its compatibility with plugins that were compiled for earlier versions. Whenever such a compatibility-breaking change takes place, a file called compiz.h is updated to a different ABI version. Plugins inherit the ABI version defined in compiz.h at the time they're defined. So when you install version of Compiz with a different ABI version than what your plugins have, or vice versa, Compiz will refuse to load the plugins that have a mismatching ABI version.
How can I check if I have this problem?
If Compiz has ever been installed before onto the computer you're using, then this may be your problem. :) But let's make sure.
To make searching faster, update the locate database now by running this command (you may need to do it as the root user or by prefixing it with the sudo command):
[code:950ee]updatedb[/code:950ee]
Then enter this command into a console:
[code:950ee]locate compiz.h[/code:950ee]
There should be at most two copies of the file compiz.h on your computer: one where you installed Compiz, and another where you compiled Compiz. If you have more than two copies, there is a problem.
You can also check whether you have more than one installed (i.e. not in a source code directory) copy of the plugins that aren't loading. Plugins usually have a filename like "lib<name_of_plugin>.so". So if the plugin that won't load is called animation, then the file you should look for is called libanimation.so:
[code:950ee]locate libanimation.so[/code:950ee]
The ccp plugin is an exception. If your ccp plugin isn't loading, check for whether you have more than one installed copy of libccs.so:
[code:950ee]locate libccs.so[/code:950ee]
How do I fix it?
Enter this command into a console:
[code:950ee]which compiz[/code:950ee]
It should respond with a line like this:
[code:950ee]/usr/local/bin/compiz[/code:950ee]
The part that comes before "/bin/compiz"-- that is, the part that says "/usr/local", is your installation prefix. The only installed copy of compiz.h should exist under the installation prefix. In the above example, the only installed copy of compiz.h should be at /usr/local/include/compiz/compiz.h.
Likewise, all installed plugins should only exist under Compiz's installed prefix. In this example, the only installed copy of the animation plugin should be at /usr/local/lib/compiz/libanimation.so. The only installed copy of the ccp plugin should be at /usr/local/lib/compiz/libccs.so. And so on.
If you find any installed copies of compiz.h or plugins that aren't under the installation prefix, delete them.
If those other copies belong to packages you installed with a package manager, then you should try uninstalling those packages first, and only deleting the files if they're still there after the packages have been uninstalled.
If you want to be absolutely certain you are leaving no room for error, then delete all traces of Compiz and its plugins from your computer, including the currently installed copy!
Once you are through with the deleting spree, recompile Compiz and its plugins from the beginning. Run [code:950ee]make clean[/code:950ee] in each source code directory before recompiling. If that doesn't work, then delete all Compiz and related source code directories and re-download them.
Is everything working now? If you're still getting the ABI version error... Then I'm out of ideas. XD Let me know if you solve the problem! I'm sure other people would like to know how, too.