Comment 3 for bug 594791

Revision history for this message
ruario (e-launchpad-ruari-com) wrote :

I have exactly the same problem with Opera 10.60 Beta (the IcedTea plugin not working) and there seems to be three problems here:

1. The IcedTea plugin depends on some Mozilla components, meaning that you won't have a working Java plugin without these installed, which makes little sense if you don't intend to use Firefox as your browser.
2. The way that the packaging is setup even if you have the 'correct' packages installed your other browsers won't find the libs that they need because they are buried in Firefox and/or xulrunner sub directories.
3. libsqlite is not packaged correctly either.

This is a major issue for anyone running a browser other than FF on Lucid who wants working Java since Sun/Oracle's Java was removed from all of the Lucid repositories. From my personal perspective Java plugin support is broken in Lucid. :(

---
ruario@lucid-desktop:~$ sudo apt-get install icedtea6-plugin
[snip icedtea6-plugin install]
ruario@lucid-desktop:~$ ldd /usr/lib/jvm/java-6-openjdk/jre/lib/i386/IcedTeaPlugin.so
 linux-gate.so.1 => (0x006a7000)
 libglib-2.0.so.0 => /lib/libglib-2.0.so.0 (0x00d15000)
 libgtk-x11-2.0.so.0 => /usr/lib/libgtk-x11-2.0.so.0 (0x00110000)
 libgdk-x11-2.0.so.0 => /usr/lib/libgdk-x11-2.0.so.0 (0x009cf000)
 libatk-1.0.so.0 => /usr/lib/libatk-1.0.so.0 (0x00bd7000)
 libpangoft2-1.0.so.0 => /usr/lib/libpangoft2-1.0.so.0 (0x004e5000)
 libgdk_pixbuf-2.0.so.0 => /usr/lib/libgdk_pixbuf-2.0.so.0 (0x0050c000)
 libpangocairo-1.0.so.0 => /usr/lib/libpangocairo-1.0.so.0 (0x0065a000)
 libcairo.so.2 => /usr/lib/libcairo.so.2 (0x00526000)
 libgio-2.0.so.0 => /usr/lib/libgio-2.0.so.0 (0x005a0000)
 libpango-1.0.so.0 => /usr/lib/libpango-1.0.so.0 (0x006a8000)
 libfreetype.so.6 => /usr/lib/libfreetype.so.6 (0x006eb000)
 libfontconfig.so.1 => /usr/lib/libfontconfig.so.1 (0x00c3b000)
 libgobject-2.0.so.0 => /usr/lib/libgobject-2.0.so.0 (0x00877000)
 libgmodule-2.0.so.0 => /usr/lib/libgmodule-2.0.so.0 (0x00af1000)
 libgthread-2.0.so.0 => /usr/lib/libgthread-2.0.so.0 (0x0063e000)
 librt.so.1 => /lib/tls/i686/cmov/librt.so.1 (0x00ba1000)
 libxul.so => not found
 libxpcom.so => not found
 libplds4.so => /usr/lib/libplds4.so (0x00644000)
 libplc4.so => /usr/lib/libplc4.so (0x00648000)
 libnspr4.so => /usr/lib/libnspr4.so (0x00a89000)
 libpthread.so.0 => /lib/tls/i686/cmov/libpthread.so.0 (0x00666000)
 libdl.so.2 => /lib/tls/i686/cmov/libdl.so.2 (0x00a7a000)
 libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x008b6000)
 libm.so.6 => /lib/tls/i686/cmov/libm.so.6 (0x0082d000)
 libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x0067f000)
 libc.so.6 => /lib/tls/i686/cmov/libc.so.6 (0x00e5b000)
 libpcre.so.3 => /lib/libpcre.so.3 (0x00761000)
 libXext.so.6 => /usr/lib/libXext.so.6 (0x00792000)
 libXrender.so.1 => /usr/lib/libXrender.so.1 (0x0064d000)
 libXinerama.so.1 => /usr/lib/libXinerama.so.1 (0x0069e000)
 libXi.so.6 => /usr/lib/libXi.so.6 (0x00ae0000)
 libXrandr.so.2 => /usr/lib/libXrandr.so.2 (0x007a2000)
 libXcursor.so.1 => /usr/lib/libXcursor.so.1 (0x007aa000)
 libX11.so.6 => /usr/lib/libX11.so.6 (0x00fb5000)
 libXcomposite.so.1 => /usr/lib/libXcomposite.so.1 (0x006a2000)
 libXdamage.so.1 => /usr/lib/libXdamage.so.1 (0x007b4000)
 libXfixes.so.3 => /usr/lib/libXfixes.so.3 (0x007b8000)
 libz.so.1 => /lib/libz.so.1 (0x007be000)
 libpixman-1.so.0 => /usr/lib/libpixman-1.so.0 (0x00af6000)
 libdirectfb-1.2.so.0 => /usr/lib/libdirectfb-1.2.so.0 (0x00c6b000)
 libfusion-1.2.so.0 => /usr/lib/libfusion-1.2.so.0 (0x0080c000)
 libdirect-1.2.so.0 => /usr/lib/libdirect-1.2.so.0 (0x00816000)
 libpng12.so.0 => /lib/libpng12.so.0 (0x00b50000)
 libxcb-render-util.so.0 => /usr/lib/libxcb-render-util.so.0 (0x007d3000)
 libxcb-render.so.0 => /usr/lib/libxcb-render.so.0 (0x00853000)
 libxcb.so.1 => /usr/lib/libxcb.so.1 (0x0085b000)
 libresolv.so.2 => /lib/tls/i686/cmov/libresolv.so.2 (0x009ac000)
 libselinux.so.1 => /lib/libselinux.so.1 (0x00abe000)
 libexpat.so.1 => /lib/libexpat.so.1 (0x00b75000)
 /lib/ld-linux.so.2 (0x00e3e000)
 libXau.so.6 => /usr/lib/libXau.so.6 (0x007d8000)
 libXdmcp.so.6 => /usr/lib/libXdmcp.so.6 (0x009c0000)
---

Give the 'not found' lines, the above would make you wonder how Firefox is able to run the plugin. The answer is that they have the needed libs in their own lib directories. Directories that the likes of Opera and Chrome are obviously not scanning and preloading libs from.

On my own system I quickly did the following:

---
ruario@lucid-desktop:~$ sudo ln -s /usr/lib/firefox-3.6.3/libxpcom.so /usr/lib/libxpcom.so
ruario@lucid-desktop:~$ sudo ln -s /usr/lib/firefox-3.6.3/libmozjs.so /usr/lib/libmozjs.so
ruario@lucid-desktop:~$ sudo ln -s /usr/lib/firefox-3.6.3/libxul.so /usr/lib/libxul.so
ruario@lucid-desktop:~$ sudo ln -s /usr/lib/libsqlite3.so.0 /usr/lib/libsqlite3.so
---
(That last one seems to be a further bug with libsqlite packaging. Why does it not provide a file called 'libsqlite3.so', even as a symlink?)

After doing so I can successfully load the Java test page http://www.java.com/en/download/help/testvm.xml in the Opera 10.60 Beta and you will also note that ldd now provides a sensible result:

---
ruario@lucid-desktop:~$ ldd /usr/lib/jvm/java-6-openjdk/jre/lib/i386/IcedTeaPlugin.so
 linux-gate.so.1 => (0x00e9a000)
 libglib-2.0.so.0 => /lib/libglib-2.0.so.0 (0x002cf000)
 libgtk-x11-2.0.so.0 => /usr/lib/libgtk-x11-2.0.so.0 (0x00891000)
 libgdk-x11-2.0.so.0 => /usr/lib/libgdk-x11-2.0.so.0 (0x00110000)
 libatk-1.0.so.0 => /usr/lib/libatk-1.0.so.0 (0x00d27000)
 libpangoft2-1.0.so.0 => /usr/lib/libpangoft2-1.0.so.0 (0x001a6000)
 libgdk_pixbuf-2.0.so.0 => /usr/lib/libgdk_pixbuf-2.0.so.0 (0x00f34000)
 libpangocairo-1.0.so.0 => /usr/lib/libpangocairo-1.0.so.0 (0x001cd000)
 libcairo.so.2 => /usr/lib/libcairo.so.2 (0x0065f000)
 libgio-2.0.so.0 => /usr/lib/libgio-2.0.so.0 (0x001d9000)
 libpango-1.0.so.0 => /usr/lib/libpango-1.0.so.0 (0x00277000)
 libfreetype.so.6 => /usr/lib/libfreetype.so.6 (0x00399000)
 libfontconfig.so.1 => /usr/lib/libfontconfig.so.1 (0x0078f000)
 libgobject-2.0.so.0 => /usr/lib/libgobject-2.0.so.0 (0x00421000)
 libgmodule-2.0.so.0 => /usr/lib/libgmodule-2.0.so.0 (0x0056b000)
 libgthread-2.0.so.0 => /usr/lib/libgthread-2.0.so.0 (0x002ba000)
 librt.so.1 => /lib/tls/i686/cmov/librt.so.1 (0x00d78000)
 libxul.so => /usr/lib/libxul.so (0x00f4e000)
 libxpcom.so => /usr/lib/libxpcom.so (0x002c0000)
 libplds4.so => /usr/lib/libplds4.so (0x002c5000)
 libplc4.so => /usr/lib/libplc4.so (0x002c9000)
 libnspr4.so => /usr/lib/libnspr4.so (0x00cde000)
 libpthread.so.0 => /lib/tls/i686/cmov/libpthread.so.0 (0x00460000)
 libdl.so.2 => /lib/tls/i686/cmov/libdl.so.2 (0x0040f000)
 libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x00d81000)
 libm.so.6 => /lib/tls/i686/cmov/libm.so.6 (0x00479000)
 libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x0049f000)
 libc.so.6 => /lib/tls/i686/cmov/libc.so.6 (0x11319000)
 libpcre.so.3 => /lib/libpcre.so.3 (0x004be000)
 libXext.so.6 => /usr/lib/libXext.so.6 (0x004ef000)
 libXrender.so.1 => /usr/lib/libXrender.so.1 (0x00413000)
 libXinerama.so.1 => /usr/lib/libXinerama.so.1 (0x0041d000)
 libXi.so.6 => /usr/lib/libXi.so.6 (0x004ff000)
 libXrandr.so.2 => /usr/lib/libXrandr.so.2 (0x0050d000)
 libXcursor.so.1 => /usr/lib/libXcursor.so.1 (0x007cc000)
 libX11.so.6 => /usr/lib/libX11.so.6 (0x01d2b000)
 libXcomposite.so.1 => /usr/lib/libXcomposite.so.1 (0x00515000)
 libXdamage.so.1 => /usr/lib/libXdamage.so.1 (0x00519000)
 libXfixes.so.3 => /usr/lib/libXfixes.so.3 (0x0051d000)
 libz.so.1 => /lib/libz.so.1 (0x00523000)
 libpixman-1.so.0 => /usr/lib/libpixman-1.so.0 (0x00570000)
 libdirectfb-1.2.so.0 => /usr/lib/libdirectfb-1.2.so.0 (0x005ca000)
 libfusion-1.2.so.0 => /usr/lib/libfusion-1.2.so.0 (0x00538000)
 libdirect-1.2.so.0 => /usr/lib/libdirect-1.2.so.0 (0x00542000)
 libpng12.so.0 => /lib/libpng12.so.0 (0x006d9000)
 libxcb-render-util.so.0 => /usr/lib/libxcb-render-util.so.0 (0x00558000)
 libxcb-render.so.0 => /usr/lib/libxcb-render.so.0 (0x0055d000)
 libxcb.so.1 => /usr/lib/libxcb.so.1 (0x00641000)
 libresolv.so.2 => /lib/tls/i686/cmov/libresolv.so.2 (0x006fe000)
 libselinux.so.1 => /lib/libselinux.so.1 (0x00712000)
 libexpat.so.1 => /lib/libexpat.so.1 (0x0075f000)
 /lib/ld-linux.so.2 (0x00874000)
 libsqlite3.so => /usr/lib/libsqlite3.so (0x007d6000)
 libmozjs.so => /usr/lib/libmozjs.so (0x08d04000)
 libsmime3.so => /usr/lib/libsmime3.so (0x00c66000)
 libssl3.so => /usr/lib/libssl3.so (0x00c8b000)
 libnss3.so => /usr/lib/libnss3.so (0x05603000)
 libnssutil3.so => /usr/lib/libnssutil3.so (0x00859000)
 libdbus-glib-1.so.2 => /usr/lib/libdbus-glib-1.so.2 (0x00cbd000)
 libdbus-1.so.3 => /lib/libdbus-1.so.3 (0x00e9b000)
 libXt.so.6 => /usr/lib/libXt.so.6 (0x00ed4000)
 libasound.so.2 => /usr/lib/libasound.so.2 (0x01e48000)
 libXau.so.6 => /usr/lib/libXau.so.6 (0x00565000)
 libXdmcp.so.6 => /usr/lib/libXdmcp.so.6 (0x00786000)
 libSM.so.6 => /usr/lib/libSM.so.6 (0x007bf000)
 libICE.so.6 => /usr/lib/libICE.so.6 (0x00d43000)
 libuuid.so.1 => /lib/libuuid.so.1 (0x00d13000)
---