27

October
2012

Troubles with flashplayer

I was trying to use Adobe Flash in Slax and noticed it doesn't work at all. The plugin was loaded, but a bunch of strange errors appeared on stdout and the flash animations simply didn't work.

The errors were like this:

(plugin-container:8821): Gtk-CRITICAL **: IA__gtk_widget_get_visual: assertion `GTK_IS_WIDGET (widget)' failed
(plugin-container:8821): Gdk-CRITICAL **: IA__gdk_colormap_new: assertion `GDK_IS_VISUAL (visual)' failed
(plugin-container:8821): Gdk-CRITICAL **: IA__gdk_colormap_alloc_colors: assertion `GDK_IS_COLORMAP (colormap)' failed
(plugin-container:8821): Gtk-CRITICAL **: IA__gtk_widget_modify_bg: assertion `GTK_IS_WIDGET (widget)' failed
(plugin-container:8821): Gtk-CRITICAL **: IA__gtk_widget_get_visual: assertion `GTK_IS_WIDGET (widget)' failed

I'm posting it here so google can possibly index it and provide solution to someone else who will face the same problem.

The solution is pretty tricky, and I do not understand why is that at all. The flashplayer plugin needs libsasl2 to work. Slackware provides bunch of shared libraries in aaa_elflibs, but libsasl2 is missing there (for a reason I do not understand). After installing cyrus-sasl, the whole problem vanishes, and flash starts to work properly in all browsers (tried Chromium and Firefox in Slax). It's really strange since ldd won't show libsasl2.so as a dependency of the libflashplayer.so at all...

I'm going to email upstream (to Patrick, Slackware's author) to let him know he is missing libsasl2.so.* in aaa_elflibs. If there is a package aaa_elflibs, then it should absolutely have libsasl2 included.

User comments
Liquid Snake 2012-10-27 13:06

What a strange bug... A library that should be included in aaa_elflibs is missing... I really do not know how you found out the solution if ldd did not show the library missing.

Ahau 2012-10-27 15:45

This doesn't sound like a dependency issue to me. Did you install cyrus-sasl directly to the live filesystem with 'installpkg', or did you convert it into a slax bundle and activated it after a reboot?

Here's an alternate scenario: one of your gtk caches has not been updated (and an update is needed in order for flash to work). When you install cyrus-sasl, the install script might update this cache for you (look at the install script). Many slackware packages aren't well suited to installing to a fakeroot directory when it comes to running updates such as ca-certificates, desktop-database, gconf-schemas, etc -- the commands are run but the caches aren't copied from the real filesystem into the fakeroot, so the resulting slax bundle will be missing those files.

I hope that helps -- I may well be off-base here, and apologize if that's the case.

Tomas M 2012-10-27 21:41

Actually the situation was following:

1) flash worked on my FULL INSTALL (Slackware 14) but the same flash didn't work on Slax. Conclusion: there must be something in Slackware which makes it work, which I am missing in Slax.

2) So I tried to install all packages from /l/ Slackware series (all libraries) in Slax, flash still didn't work. Conclusion: it is not a missing library from /l/

3) So I tried to install all packages from /n/ series and flash started to work properly in Slax. Conclusion: it is some missing package from /n/.

4) So I uninstalled all /n/ packages in Slax and tried one by one, and checked after each one installed if flash works. Flash started to work after cyrus-sasl. Conclusion: cyrus-sasl package is needed

5) So I booted fresh Slax, flash was not working. I manually copied ONLY libsasl2.so.* from the slackware package to /usr/lib{64,} in the running Slax and flash started to work. I removed libsasl2.* from the running Slax again and flash stopped to work again, as expected. Conclusion: libsasl2.so.* is needed, probably by some of the other libraries which are needed by libflashplayer.so ...

I didn't analyze further since I don't really care which of the dependency libraries of libflashplayer.so needed libsasl2. It is enough for me to know how to make flash work in Slax :)

Liquid Snake 2012-10-28 01:55

Hard work, Tomas. That must be boring...

Tomas M 2012-10-28 03:34

Not at all :)

Ahau 2012-10-28 04:18

Wow, what a pain in the ass! Nice work :). I hate debugging stuff like that, but sometimes it's the only way to track it down...

Guido 2013-02-17 06:39

Great work Tomas!

I had flashplayer working in firefox without libsasl2.so up until somwhere around v18.0; then it quit & spewed out exactly the message to stdout that Tomas describes. I had not a clue until I read this thread. I'm on a "pruned" Slackware 14 distro. Just putting the sasl libs alone solved the problem.

Out of curiousity I ran ldd on every binary executable in the firefox dir & could NOT find a dependency. Weird!

But, thanks again.