Search code examples
eclipseswtxulxulrunner

How do I install XULRunner 1.8.x/libxul0d on Ubuntu Lucid Lynx (10.x)? Required for Eclipse SWT Browser


The internal browser in Eclipse SWT 3.3.0 on Ubuntu 10.04.1 64 bit does not run. I believe this is because libxpcom.so cannot be found and I believe this is because the libxul0d package is not installed. However, it appears to be deleted in Ubuntu 10 and I don't know how to find out why, what it's been replaced with and whether I can safely use libxul0d from karmic anyway.

This is mostly a system administration question so I'm crossing posting from superuser.com but a programmer may know the answer and I'm pretty sure a lot of people will want to know the answer once it's found.

Error message:

org.eclipse.swt.SWTError: No more handles (java.lang.UnsatisfiedLinkError: no swt-mozilla-gtk-3346 or swt-mozilla-gtk in swt.library.path, java.library.path or the jar file)

This is an Eclipse RCP application running Eclipse SWT 3.3.0. If I find that library and run ldd libswt-mozilla-gtk-3346.so I get:

linux-vdso.so.1 =>  (0x00007fff269ff000)
libxpcom.so => not found
libnspr4.so => /usr/lib/libnspr4.so (0x00007fbd6470b000)
libplds4.so => /usr/lib/libplds4.so (0x00007fbd64506000)
libplc4.so => /usr/lib/libplc4.so (0x00007fbd64301000)
libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x00007fbd63fed000)
libm.so.6 => /lib/libm.so.6 (0x00007fbd63d69000)
libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x00007fbd63b52000)
libc.so.6 => /lib/libc.so.6 (0x00007fbd637cf000)
libpthread.so.0 => /lib/libpthread.so.0 (0x00007fbd635b1000)
libdl.so.2 => /lib/libdl.so.2 (0x00007fbd633ad000)
/lib64/ld-linux-x86-64.so.2 (0x00007fbd64a73000)

I can see that libxul0d in karmic has the shared library but that library is not in Lucid.

It seems that, according to the Eclipse SWT FAQ, that I need 1.8.x of XULRunner so the XULRunner 1.9.x in Lucid won't help.

So, how do I find out what happened to that package and what do I choose to install? Note that upgrade Eclipse SWT isn't an option.


Solution

    1. Download the following files from the karmic repository (NOT lucid):

      • libmozjs0d(http://packages.ubuntu.com/karmic/amd64/libmozjs0d/download)
      • libxul-common(http://packages.ubuntu.com/karmic/libxul-common)
      • libxul0d(http://packages.ubuntu.com/karmic/libxul0d)
      • xulrunner(http://packages.ubuntu.com/karmic/xulrunner)
    2. Install the packages, in the order given, using the following command.

      sudo dpkg -i ~/Desktop/.deb

    Note that it may be possible to use apt-get to pin the karmic repository(https://help.ubuntu.com/community/UbuntuBackports) but I haven't tried this.

    The issue is that the Reports are loading a browser via SWT. The SWT code then goes looking for a browser and tries to find various required shared libraries. XULRunner is the core Firefox browsing functionality which is now v1.9 in the lucid repositories. However, SWT v3.3.0 (as we have) requires v1.8 which is in karmic.