Xulrunner-12.0

Introduction to Xulrunner

Xulrunner is a runtime environment for XUL applications, and forms the major part of the Mozilla codebase. In particular, it provides the Gecko engine together with pkgconfig files so that other applications can find and use it.

This package is known to build and work properly using an LFS-7.1 platform.

Package Information

Xulrunner Dependencies

Required

alsa-lib-1.0.25, gtk+-2.24.10, Zip-3.0 and UnZip-6.0.

Recommended

Optional

D-Bus GLib Bindings-0.98, startup-notification-0.12, SQLite-3.7.11, Hunspell, Libevent, Doxygen-1.7.5, gnome-vfs-2.24.4 and libgnomeui-2.24.5 (for integration with the old version of Gnome), libnotify-0.7.5, NSPR-4.9, NSS-3.13.4, Wireless Tools-29, Valgrind (only for testing the jemalloc code) and Wget-1.13.4

User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/xulrunner

Installation of Xulrunner

The configuration of Xulrunner is accomplished by creating a mozconfig file containing the desired configuration options. A default mozconfig is created below. To see the entire list of available configuration options (and an abbreviated description of each one), issue ./configure --help. You should review the entire file and comment or uncomment options as necessary.

cat > mozconfig << "EOF"
# If you have a multicore machine you can speed up the build by running
# several jobs at once, but if you have a single core, delete this line:
mk_add_options MOZ_MAKE_FLAGS="-j4"

# If you have installed Yasm delete this option:
ac_add_options --disable-webm

# If you have installed DBus-Glib delete this option:
ac_add_options --disable-dbus

# If you have installed wireless-tools delete this option:
ac_add_options --disable-necko-wifi

# If you have installed libnotify delete this option:
ac_add_options --disable-libnotify

# Uncomment these if you have installed them:
# ac_add_options --enable-startup-notification
# ac_add_options --enable-system-hunspell
# ac_add_options --enable-system-sqlite
# ac_add_options --with-system-libevent
# ac_add_options --with-system-libvpx
# ac_add_options --with-system-nspr
# ac_add_options --with-system-nss

mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/xulrunner-build-dir
ac_add_options --disable-crashreporter
ac_add_options --disable-debug
ac_add_options --disable-debug-symbols
ac_add_options --disable-installer
ac_add_options --disable-static
ac_add_options --disable-tests
ac_add_options --disable-updater
ac_add_options --enable-application=xulrunner
ac_add_options --enable-shared
ac_add_options --enable-system-cairo
ac_add_options --enable-system-ffi
ac_add_options --prefix=/usr
ac_add_options --with-pthreads
ac_add_options --with-system-jpeg
ac_add_options --with-system-png
ac_add_options --with-system-zlib
EOF

Install Xulrunner by issuing the following commands:

sed -i '/fcntl.h/a#include <unistd.h>' \
  ipc/chromium/src/base/{file_util_linux,message_pump_libevent}.cc              &&

sed -i '/sys\/time\.h/a#include <unistd.h>' ipc/chromium/src/base/time_posix.cc &&
make -f client.mk

This package does not come with a test suite.

Now, as the root user:

make -C xulrunner-build-dir install               &&
mkdir -p                 /usr/lib/mozilla/plugins &&
rm -rf            /usr/lib/xulrunner-12.0/plugins &&
ln -sv ../mozilla/plugins /usr/lib/xulrunner-12.0 &&

for library in /usr/lib/xulrunner-devel-12.0/sdk/lib/*.so; do 
   ln -sfv ${library#/usr/lib/} /usr${library#*sdk}
done

Command Explanations

sed -i '/fcntl.h/a#include <unistd.h>' ipc/chromium/src/base/{file_util_linux,message_pump_libevent}.cc && sed -i '/sys\/time\.h/a#include <unistd.h>' ipc/chromium/src/base/time_posix.cc: These seds fix bugs that would otherwise break the build if you're using GCC 4.7.

make -f client.mk ...: Mozilla products are packaged to allow the use of a configuration file which can be used to pass the configuration settings to the configure command. make uses the client.mk file to get initial configuration and setup parameters.

ln -sv ../mozilla/plugins ...: Some packages will install browser plugins into /usr/lib/mozilla/plugins. Creating this symlink Xulrunner keeps additional plugins in a common directory.

for library in /usr/lib/xulrunner-devel-12.0/sdk/lib/*.so; do ln -sfv ${library#/usr/lib/} /usr${library#*sdk}; done: The libraries shipped with this package are installed into /usr/lib/xulrunner-devel-12.0 which means they will not be found at runtime. These commands make relative symbolic links to the shared libraries from /usr/lib.

Contents

Installed Programs: xulrunner
Installed Libraries: Numerous libraries, browser components, plugins, extensions, and helper modules installed in /usr/lib/xulrunner-12.0
Installed Directories: /etc/gre.d, /usr/include/xulrunner-12.0, /usr/lib/xulrunner-12.0, /usr/lib/xulrunner-devel-12.0, and /usr/share/idl/xulrunner-12.0

Short Descriptions

xulrunner

is a shell script, useful for identifying the version installed.

Last updated on 2012-05-16 10:43:09 +0000