Table of Contents
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.
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.
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”.
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.
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
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”.
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.
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”.
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).
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.
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
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.