This site hosts the documentation for CrashPlan PROe version 3.8.2010.
Looking for documentation on PROe version 3, released in April of 2012? Please visit our current documentation.

Resolve "Cairo is required" Error on Linux or Solaris

Overview

A “Cairo is required” error indicates that the Cairo graphics library is not installed or not available on this system. Cairo is required by the client user interface and must be installed.

What It Looks Like

The full error message might look something like the following:

org.eclipse.swt.SWTException: Failed to execute runnable (org.eclipse.swt.SWTException: Unable to load graphics library [Cairo is required] (java.lang.UnsatisfiedLinkError: no
swt-cairo-gtk-3448 or swt-cairo-gtk in swt.library.path, java.library.path or the jar file)

Solution

Cairo packages can be obtained from the following sources:

  • OpenSolaris - OpenSolaris 2008.11 includes Cairo 1.8.4 as part of the SUNWgnome-base-libs package. Consequently the library should be available if GNOME is installed.
  • Other Solaris - packages are available at Sunfreeware. Note that Cairo itself has other dependencies that must be installed; these are listed near the download link for the Cairo package
    • One of the dependencies listed at sunfreeware is the fontconfig package. Solaris 10u6 comes with a version of libfontconfig.so already installed at /usr/lib and it is recommended to use that version rather than the linked package at sunfreeware. There have been some reports of compatibility issues with iconv when using the version of fontconfig available at sunfreeware.
  • Linux - most distributions offer a packaged version of Cairo and should handle any transitive dependencies automatically

Considerations

The packages provided by Sunfreeware typically install into /usr/local with the various libraries installed in /usr/local/lib. If you install these packages to these locations you'll likely need to add /usr/local/lib to the search path for the dynamic linker. The most straightforward way to do this is through the LD_LIBRARY_PATH environment variable. An example appears below; note that this example assumes the bash shell:

export LD_LIBRARY_PATH=/usr/local/lib
troubleshooting/resolve_cairo_error.txt · Last modified: 2009/08/23 14:58 by mcoopet