# Install Okular breaks cairo-dock



## btomza (May 5, 2016)

Hi all,

I had installed FreeBSD 10.2 (well I have) with cairo-dock and It was working very well until I installed "okular".
The instalation was OK, it was installed without problems and works fine, but after that cairo-dock stopped to work.

Now, when I run cairo-dock it starts but when I move the mouse over it I see an error and it's closed:

```
/usr/local/lib/libgtk-3.so.0: Undefined symbol "g_param_spec_get_name_quark"
```

Any ideas? suggestions?


----------



## btomza (May 7, 2016)

Hi all,

Well, I fix the problem in an ugly way (from my point of view). When I installed okular, it updated a lot of packages and also it updated libgtk from 3.16 to 3.18 (I guess).
I found that:

```
/usr/local/lib/libgtk-3.so.0 -> /usr/local/lib/libgtk-3.so.0.1800.8
```

fortunatelly, I have installed a laptop with the same distribution, I could see that in that distribution the symlink is:

```
/usr/local/lib/libgtk-3.so.0 -> /usr/local/lib/libgtk-3.so.0.1600.7
```

So, I copied that file to my computer and changed the symlink.... and voila!! cairo-dock works again... and also I tested some of the other packages that where updated (like LibreOffice) and all of them seems to work fine... so hopefully this will continue without surprises.


----------



## SirDice (May 10, 2016)

The proper solution is to rebuild everything that depends on libgtk so they're linked to the correct library versions.


----------



## Deleted member 48958 (May 10, 2016)

Why deskutils/cairo-dock?  Try x11-wm/plank,
it is much more lightweight, faster and nicer IMO.




Here is some plank themes, extract it to ~/.local/share/plank/themes .


----------



## btomza (May 10, 2016)

Hi SirDice,

Thanks by your comment, as you said that sounds to be the best solution, anyway I haven't had good experiences making big updates (sure they are based in my poor experience).

So, I have two questions for you:
1) could you recommend me good way to do it? do you have any link/tutorial to read? (and if it's possible to have a way to do rollback in the case that something fail).

Now, in the case that I won't update all the things that depends on libgtk, and if I put the focus only to cairo-dock, I could go to port and run "make install", but my question is (maybe a stupid question):
2) If the new lib version is 3.18, but cairo-dock points to the same file libgtk-3.so.0, and cairo tries to find an undefined symbol (in the new version), what will be the result of rebuild?, the file will change? maybe only cairo-dock needs the old version so should it point to the old lib version?

Thanks!!


----------



## btomza (May 10, 2016)

Hi ILUXA,

Well, there is no specific reason. I've tested (very quickly) around 3 or 4 different "dockers", and winner was cairo... basically because it was easy to configure and easily it looked like as I wanted. But really there isn't great reason to choose cairo.

Thanks


----------



## SirDice (May 10, 2016)

btomza said:


> So, I have two questions for you:
> 1) could you recommend me good way to do it? do you have any link/tutorial to read? (and if it's possible to have a way to do rollback in the case that something fail).


I recommend using something like ports-mgmt/synth or ports-mgmt/poudriere to build your own packages. 



> 2) If the new lib version is 3.18, but cairo-dock points to the same file libgtk-3.so.0,


It's not the same file. It's a symlink that points to a specific version. 



> and cairo tries to find an undefined symbol (in the new version), what will be the result of rebuild?, the file will change?


No, cairo-dock will change, it's going to be linked against the correct version, not the missing one.



> maybe only cairo-dock needs the old version so should it point to the old lib version?


No, it needs to be (re)linked against the new library.


----------

