Chapter 2. Installation

Table of Contents

1. XULRunner
1.1. XULRunner on Debian etch
1.2. XULRunner on Debian lenny and Debian squeeze
1.3. XULRunner on Ubuntu
1.4. XULRunner on SUSE Linux Enterprise 10
1.5. XULRunner on SUSE Linux Enterprise 11
1.6. Building XULRunner
1.6.1. Using xulrunner.mk
1.6.2. Manual compilation of XULRunner and Index Data Tools
1.6.3. XULRunner 1.9.2 on Debian lenny
2. Environment
3. Compiling CF programs

Connector Framework software can be downloaded from http://ftp.indexdata.dk/pub/cf (authorization required). The CF source code distribution with connector files etc is part of the file cf-version.tar.gz.

The Engine should operate on all Unix/POSIX platforms. The following platforms are known to work: Debian GNU/Linux (etch, lenny, squeeze), Ubuntu (intrepid, jaunty, karmic, lucid), SUSE Linux Enterprise 10. We expect the Engine to work well on other Linux platforms as well.

The Engine requires XULRunner version 1.9 to operate. This is the version of XULRunner that has the same code base as Firefox version 3. For platforms that do not have XULRunner 1.9 as a package, this has to be installed manually. Read Section 1, “XULRunner”.

The CF Engine operates as a browser component. Some kind of display device is required. The virtual framebuffer X server (Xvfb) should be used as display device.

For the CF Z39.50/SRU server, YAZ version 4 or later is required. YAZ provides the infrastructure to build Z39.50/SRU applications.

For the CF Web service, Metaproxy is required. See the Metaproxy documentation for details on how to install that. It requires YAZ, YAZ++ as well as the Boost library.

1. XULRunner

XULRunner version 1.9 or later is required for the CF Engine to operate. If the platform does not have XULRunner 1.9 as a package it must be compiled and installed. The native package for XULRunner - if such a package exist - depends on the platform.

1.1. XULRunner on Debian etch

Debian etch not provide a XULRunner 1.9 package. XULRunner 1.9 will have to be installed from source. Before compilation of XULRunner 1.9 can proceed a number of packages must be installed:

      sudo apt-get install gcc libx11-dev zip libfam-dev libcups-dev \
        libtiff4-dev libpng12-dev libjasper-1.701-dev
     

These packages are development packages.. They are not needed if the CF system is moved to another host. Proceed to Section 1.6, “Building XULRunner”.

1.2. XULRunner on Debian lenny and Debian squeeze

Debian lenny 5.0 and Debian squeeze has XULRunner as a package. The necessary components can be installed with:

      sudo apt-get install pkg-config libgtk2.0-dev libmetaproxy2-dev xulrunner-dev xvfb
     

XULRunner 1.9.2 is unavailable for Debian lenny. Refer to Section 1.6.3, “XULRunner 1.9.2 on Debian lenny” for details.

1.3. XULRunner on Ubuntu

Ubuntu jaunty, intrepid, karmic and lucid has XULRunner as a package. The necessary components can be installed with:

      sudo apt-get install pkg-config libgtk2.0-dev libmetaproxy3-dev xulrunner-dev xvfb
     

1.4. XULRunner on SUSE Linux Enterprise 10

SUSE Linux Enterprise 10 do not support XULRunner 1.9 and Firefox 3. This system does not provide packages for them. XULRunner 1.9 will have to be installed from source. Before compilation of XULRunner 1.9 can proceed a number of packages must be installed:

      sudo /sbin/yast2 --install gcc gcc-c++ xorg-x11-devel zip \
         fam-devel cups-devel libtiff-devel libjpeg-devel openssl-devel \
         libidl-devel libpng-devel libjasper
     

These packages are development packages.. They are not needed if the CF system is moved to another host. Proceed to Section 1.6, “Building XULRunner”.

1.5. XULRunner on SUSE Linux Enterprise 11

SUSE Linux Enterprise 11 includes a system package for XULRunner. The run-time package is called mozilla-xulrunner-1.9.1 and the development package is called mozilla-xulrunner-devel. The following packages are needed before CF can be compiled:

       sudo /sbin/yast2 --install gcc gcc-c++ pkgconfig libxslt-devel \
         readline-devel mozilla-xulrunner-191-devel
     

These packages are development packages. They are not needed if the CF system is moved to another host. Proceed to Section 3, “Compiling CF programs” for building the CF itself.

1.6. Building XULRunner

When building XULRunner from scratch thera are two choices: a manual process where each component is installed separately or an automatic way using the Makefile xulrunner.mk. Proceed to either Section 1.6.1, “Using xulrunner.mk” or Section 1.6.2, “Manual compilation of XULRunner and Index Data Tools”.

1.6.1. Using xulrunner.mk

The CF engine source includes a Makefile, xulrunner.mk, which may be used to download, compile and install XULRunner 1.9.1, GTK and all necessary components for XULRunner and in turn CF to run.

The first thing to do is to determine an installation prefix. Most often the prefix is specified with --prefix=PREFIX in configure-based programs. Most stuff will be installed below the PREFIX, .. binaries in PREFIX/bin, libraries in PREFIX/lib, etc.

Specify the PREFIX in the xulrunner.mk by editing it or set it with suffix prefix= in the invokation of make.

       cd buildarea  # with at least 1.4 GB of disk space
       vi pathto/xulrunner.mk # edit prefix
       make -f xulrunner.mk
      

xulrunner.mk needs no source from the CF repository .. Just pass the proper path to xulrunner.mk (of course).

1.6.2. Manual compilation of XULRunner and Index Data Tools

Note

It is much easier to use xulrunner.mk as described in Section 1.6.1, “Using xulrunner.mk” than following these steps.

We recommend that you specify this prefix in the environment:

       export P=prefix   # for example $HOME/myprefix
      

The example above is Bash shell notation. For Bourne Shell use

       P=prefix
       export P
      

And for csh/tcsh use:

       setenv P prefix
      

The rest of this chapter will only show bash notation.

When this is set, define these as well so that pkg-config can find our tools inside PREFIX:

       export PKG_CONFIG_PATH=$P/lib/pkgconfig
      

On SUSE Linux Enterprise there's some stuff we need in /opt/gnome/lib64/pkgconfig .. So, instead, use:

       export PKG_CONFIG_PATH=$P/lib/pkgconfig:/opt/gnome/lib64/pkgconfig
      

We need to tell the system about new location for .so-files:

       export LD_LIBRARY_PATH=$P/lib
      

And some new binaries .. such as glib-genmarshal:

       export PATH=$P/bin:$PATH
      

YAZ: Get it from http://ftp.indexdata.dk/pub/yaz/

       cd yaz-*
       ./configure --prefix=$P
       make install
       

YAZ++: Get it from http://ftp.indexdata.dk/pub/yazpp/

       cd yazpp-*
       ./configure --prefix=$P
       make install
       

Boost: is usually available on most platforms in the form of native packages (RPM, Debian, Windows installer) etc.. Only as a last resort compile it manually from source.

Get source from http://www.boost.org/users/download/ .

Metaproxy: Get it from http://ftp.indexdata.dk/pub/metaproxy/

       cd metaproxy-*
       ./configure --prefix=$P
       make install
       

Refer to the Metaproxy documentation for more details.

pixman: Get it from http://www.cairographics.org/releases/

       cd pixman-*
       ./configure --prefix=$P
       make install
      

Cairo: Get it from http://www.cairographics.org/releases/

       cd cairo-*
       ./configure --prefix=$P
       make install
      

GLIB: Get it from http://ftp.gnome.org/pub/gnome/sources/glib/

       cd glib-*
       ./configure --prefix=$P
       make install
      

Atk: Get it from http://ftp.gnome.org/pub/gnome/sources/atk/1.25/

       cd atk-*
       ./configure --prefix=$P
       make install
       

Pango: Get it from http://ftp.gnome.org/pub/gnome/sources/pango/

       /configure --prefix=$P
       make install
      

GTK2: Get it from http://ftp.gnome.org/pub/gnome/sources/gtk+/

       cd gtk+-*
       make install
      

XULRunner: Get one of the XULRunner 1.9 series. The official releases can be found here: http://ftp.mozilla.org/pub/mozilla.org/mozilla.org/xulrunner/releases/.

There are several pages on developer.mozilla.org.. Such as the Build Options .

       tar jxf xulrunner-1.9*bz2
       cd mozilla
       vi .mozconfig 
         # Add something like this:
         ac_add_options --enable-application=xulrunner
         mk_add_options MOZ_CO_PROJECT=xulrunner
         ac_add_options --enable-optimize
         ac_add_options --disable-debug
         ac_add_options --disable-javaxpcom
         ac_add_options --disable-printing
         ac_add_options --disable-dbus
         ac_add_options --disable-crashreporter 
       ./configure --prefix=$P
       make
       make install regdir=$P/gre.d
      

Developers might use the directives --disable-optimize, --enable-debug instead of --enable-optimize.

1.6.3. XULRunner 1.9.2 on Debian lenny

XULRunner 1.9.2 seem improves code that do page load detection. This version is unavailable on Debian lenny (and even squeeze as of August 2010). It can be installed from source if we install the following backports package for lenny: libpixman-1-0 , libpixman-1-dev , libcairo2 , libcairo2-dev . The following .mozconfig can be used:

ac_add_options --enable-application=xulrunner
mk_add_options MOZ_CO_PROJECT=xulrunner
ac_add_options --enable-optimize
ac_add_options --disable-debug
ac_add_options --disable-javaxpcom
ac_add_options --disable-printing
ac_add_options --disable-dbus
ac_add_options --disable-ogg
ac_add_options --disable-wave
ac_add_options --disable-svg
ac_add_options --disable-mathml
ac_add_options --disable-crashreporter
ac_add_options --disable-gnomevfs 
ac_add_options --disable-gnomeui
ac_add_options --disable-libnotify
ac_add_options --disable-necko-wifi
     

Note

Version 1.9.2.12 do not compile with these options. Version 1.9.2.8 does work. Refer to https://bugzilla.mozilla.org/show_bug.cgi?id=609019 and http://bugs.gentoo.org/show_bug.cgi?id=341901.