glfs/archive/xulrunner.xml
Bruce Dubbs b9f61df162 Archive xulrunner
git-svn-id: svn://svn.linuxfromscratch.org/BLFS/trunk/BOOK@14097 af4574ff-66df-0310-9fd7-8a98e5e911e0
2014-08-27 17:43:54 +00:00

383 lines
13 KiB
XML

<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
<!ENTITY % general-entities SYSTEM "../../general.ent">
%general-entities;
<!-- <!ENTITY xulrunner-download-http
"http://releases.mozilla.org/pub/mozilla.org/firefox/releases/&firefox-version;/source/firefox-&firefox-version;.source.tar.bz2">-->
<!ENTITY xulrunner-download-http
"http:///ftp.mozilla.org/pub/mozilla.org/firefox/releases/&firefox-version;/source/firefox-&firefox-version;.source.tar.bz2">
<!ENTITY xulrunner-download-ftp
"ftp://ftp.mozilla.org/pub/mozilla.org/firefox/releases/&firefox-version;/source/firefox-&firefox-version;.source.tar.bz2">
<!ENTITY xulrunner-md5sum "499b70a9f08a2291d528e87eaf8804a3">
<!ENTITY xulrunner-size "141 MB">
<!-- measured on LFS-7.5 x86_64 -->
<!ENTITY xulrunner-buildsize "4.9 GB (103 MB installed)">
<!ENTITY xulrunner-time "46 SBU">
]>
<sect1 id="xulrunner" xreflabel="Xulrunner-&xulrunner-version;">
<?dbhtml filename="xulrunner.html" ?>
<sect1info>
<othername>$LastChangedBy$</othername>
<date>$Date$</date>
</sect1info>
<title>Xulrunner-&xulrunner-version;</title>
<indexterm zone="xulrunner">
<primary sortas="a-Xulrunner">Xulrunner</primary>
</indexterm>
<sect2 role="package">
<title>Introduction to Xulrunner</title>
<para>
<application>Xulrunner</application> is a runtime environment for XUL
applications, and forms the major part of the
<application>Mozilla</application> codebase. In particular, it provides
the Gecko engine together with pkgconfig files so that other applications
can find and use it.
</para>
&lfs75_checked;
<bridgehead renderas="sect3">Package Information</bridgehead>
<itemizedlist spacing="compact">
<listitem>
<para>
Download (HTTP): <ulink url="&xulrunner-download-http;"/>
</para>
</listitem>
<listitem>
<para>
Download (FTP): <ulink url="&xulrunner-download-ftp;"/>
</para>
</listitem>
<listitem>
<para>
Download MD5 sum: &xulrunner-md5sum;
</para>
</listitem>
<listitem>
<para>
Download size: &xulrunner-size;
</para>
</listitem>
<listitem>
<para>
Estimated disk space required: &xulrunner-buildsize;
</para>
</listitem>
<listitem>
<para>
Estimated build time: &xulrunner-time;
</para>
</listitem>
</itemizedlist>
<bridgehead renderas="sect3">Xulrunner Dependencies</bridgehead>
<bridgehead renderas="sect4">Required</bridgehead>
<para role="required">
<xref linkend="alsa-lib"/>,
<xref linkend="gtk2"/>,
<xref linkend="zip"/> and
<xref linkend="unzip"/>
</para>
<bridgehead renderas="sect4">Recommended</bridgehead>
<para role="recommended">
<xref linkend="icu"/>,
<xref linkend="libevent"/>,
<xref linkend="libvpx"/>,
<xref linkend="nspr"/>,
<xref linkend="nss"/>,
<xref linkend="sqlite"/> and
<xref linkend="yasm"/>
</para>
<note>
<para>
If you don't install recommended dependencies,
then internal copies of those packages will
be used. They might be tested to work, but
they can be out of date or contain security
holes.
</para>
</note>
<note>
<para>
With <application>Firefox-31.0</application> and later versions, you
must have installed <application>Openssl</application> before
<application>Python 2</application>, or the build system will quickly
fail with output including "ImportError: cannot import name
HTTPSHandler". If you are in any doubt about this (e.g. upgrading
from an older version of Xulrunner), check if
<filename>/usr/lib/python2.7/lib-dynload/_ssl.so</filename> exists.
If it does not, reinstall <xref linkend="python2"/> (after
installing <xref linkend="openssl"/> - the latest version of any
<emphasis>currently maintained</emphasis> version of Openssl should
be satisfactory if already installed - if that package has not already
been installed).
</para>
</note>
<bridgehead renderas="sect4">Optional</bridgehead>
<para role="optional">
<xref linkend="curl"/>,
<xref linkend="dbus-glib"/>,
<xref linkend="doxygen"/>,
<xref linkend="gst-plugins-base"/> (with
<xref linkend="gst-plugins-good"/> and
<xref linkend="gst-ffmpeg"/> at runtime), or
<xref linkend="gst10-plugins-base"/> (with
<xref linkend="gst10-plugins-good"/> and
<xref linkend="gst10-libav"/> at runtime),
<ulink url="http://hunspell.sourceforge.net/">Hunspell</ulink>,
<xref linkend="libnotify"/>,
<xref linkend="openjdk"/>,
<xref linkend="pulseaudio"/>,
<xref linkend="startup-notification"/>,
<xref linkend="wget"/> and
<xref linkend="wireless_tools"/>
</para>
<para condition="html" role="usernotes">
User Notes: <ulink url="&blfs-wiki;/xulrunner"/>
</para>
</sect2>
<sect2 role="installation">
<title>Installation of Xulrunner</title>
<para>
The configuration of <application>Xulrunner</application> is accomplished
by creating a <filename>mozconfig</filename> file containing the desired
configuration options. A default <filename>mozconfig</filename> is created
below. To see the entire list of available configuration options (and an
abbreviated description of each one), issue <command>./configure
--help</command>. You should review the entire file and comment or
uncomment options as necessary.
</para>
<screen><userinput>cat &gt; mozconfig &lt;&lt; "EOF"
# If you have a multicore machine, firefox will now use all the cores by
# default. Exceptionally, you can reduce the number of cores, e.g. to 1,
# by uncommenting the next line and setting a valid number of CPU cores.
#mk_add_options MOZ_MAKE_FLAGS="-j1"
# If you have installed DBus-Glib comment out this line:
ac_add_options --disable-dbus
# If you have installed dbus-glib, and you have installed (or will install)
# wireless-tools, and you wish to use geolocation web services, comment out
# this line
ac_add_options --disable-necko-wifi
# If you have installed libnotify comment out this line:
ac_add_options --disable-libnotify
# GStreamer is necessary for H.264 video playback in HTML5 Video Player;
# to be enabled, also remember to set "media.gstreamer.enabled" to "true"
# in about:config. If you have GStreamer 0.x.y, uncomment this line:
#ac_add_options --enable-gstreamer
# or uncomment this line, if you have GStreamer 1.x.y
#ac_add_options --enable-gstreamer=1.0
# Uncomment these lines if you have installed optional dependencies:
#ac_add_options --enable-system-hunspell
#ac_add_options --enable-startup-notification
# Comment out following option if you have PulseAudio installed
ac_add_options --disable-pulseaudio
# If you have not installed Yasm then uncomment this line:
#ac_add_options --disable-webm
# Comment out following options if you have not installed
# recommended dependencies:
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
ac_add_options --with-system-icu
# The BLFS editors recommend not changing anything below this line:
ac_add_options --prefix=/usr
ac_add_options --enable-application=xulrunner
ac_add_options --disable-crashreporter
ac_add_options --disable-updater
ac_add_options --disable-tests
ac_add_options --enable-optimize
ac_add_options --enable-strip
ac_add_options --enable-install-strip
ac_add_options --enable-system-cairo
ac_add_options --enable-system-ffi
ac_add_options --enable-system-pixman
ac_add_options --enable-shared-js
ac_add_options --with-pthreads
ac_add_options --with-system-bz2
ac_add_options --with-system-jpeg
ac_add_options --with-system-png
ac_add_options --with-system-zlib
mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/xulrunner-build-dir
EOF</userinput></screen>
<note>
<para>
<application>Xulrunner</application>'s build uses large amount of
memory. On some systems, the RAM/Swap combination needs 6 GB available.
</para>
</note>
<para>
Build <application>Xulrunner</application> by issuing the following
commands:
</para>
<note><para>
If you are compiling <application>Xulrunner</application> in chroot,
prepend <envar>SHELL=/bin/bash</envar> to the first make command below.
</para></note>
<screen><userinput>sed -i '/^template class/s/JS::WeakMapPtr/JS_PUBLIC_API(&amp;)/' \
js/src/vm/WeakMapPtr.cpp &amp;&amp;
make -f client.mk</userinput></screen>
<para>
This package does not come with a test suite.
</para>
<para>
Install, as the <systemitem class="username">root</systemitem> user:
</para>
<screen role="root"><userinput>make -C xulrunner-build-dir install &amp;&amp;
mkdir -pv /usr/lib/mozilla/plugins &amp;&amp;
rm -rf /usr/lib/xulrunner-&xulrunner-version;/plugins &amp;&amp;
ln -sv ../mozilla/plugins /usr/lib/xulrunner-&xulrunner-version; &amp;&amp;
chmod -v 755 /usr/lib/xulrunner-devel-&xulrunner-version;/sdk/bin/xpcshell &amp;&amp;
for library in libmozalloc.so libmozjs.so libxul.so; do
ln -sfv ../../../xulrunner-&xulrunner-version;/$library \
/usr/lib/xulrunner-devel-&xulrunner-version;/sdk/lib/$library
ln -sfv xulrunner-&xulrunner-version;/$library /usr/lib/$library
done
ln -sfv ../xulrunner-devel-&xulrunner-version;/sdk/bin/run-mozilla.sh \
/usr/lib/xulrunner-&xulrunner-version;
ln -sfv ../xulrunner-devel-&xulrunner-version;/sdk/bin/xpcshell \
/usr/lib/xulrunner-&xulrunner-version;</userinput></screen>
</sect2>
<sect2 role="commands">
<title>Command Explanations</title>
<para>
<command>sed -i ... js/src/vm/WeakMapPtr.cpp</command>: Fixes build with
<command>ac_add_options --enable-shared-js</command>.
</para>
<para>
<command>make -f client.mk ...</command>: Mozilla products are packaged to
allow the use of a configuration file which can be used to pass the
configuration settings to the <command>configure</command> command.
<command>make</command> uses the <filename>client.mk</filename> file to
get initial configuration and setup parameters.
</para>
<para>
<command>ln -sfv ../mozilla/plugins ...</command>: Some packages will
install browser plugins into
<filename class="directory">/usr/lib/mozilla/plugins</filename>.
Creating this symlink <application>Xulrunner</application> keeps
additional plugins in a common directory.
</para>
<para>
<command>for library in libmozalloc.so libmozjs.so libxul.so ...
</command>: The libraries shipped with this package are installed into
<filename class="directory">/usr/lib/xulrunner-&xulrunner-version;</filename>
which means they will not be found at runtime. These commands make
relative symbolic links to the shared libraries from
<filename class="directory">/usr/lib</filename>. They will also replace duplicate
libraries that are installed in
<filename class="directory">/usr/lib/xulrunner-devel-&xulrunner-version;/sdk/lib</filename>
with symlinks in order to save some space.
</para>
<para>
<command>ln -sfv ../xulrunner-devel-&xulrunner-version;/sdk/bin/ ...</command>
The <filename>run-mozilla.sh</filename> and <filename>xpcshell</filename> files
have been moved in this version, but the code which installs
<application>Firefox</application> (when linked to xulrunner) was not updated.
These symlinks allow<application>Firefox</application> to install when built against
<application>Xulrunner</application>.
</para>
</sect2>
<sect2 role="content">
<title>Contents</title>
<segmentedlist>
<segtitle>Installed Programs</segtitle>
<segtitle>Installed Libraries</segtitle>
<segtitle>Installed Directories</segtitle>
<seglistitem>
<seg>
xulrunner
</seg>
<seg>
Numerous libraries, browser components, plugins, extensions, and
helper modules installed in <filename
class="directory">/usr/lib/xulrunner-&xulrunner-version;</filename>
</seg>
<seg>
/usr/include/xulrunner-&xulrunner-version;,
/usr/lib/xulrunner-&xulrunner-version;,
/usr/lib/xulrunner-devel-&xulrunner-version; and
/usr/share/idl/xulrunner-&xulrunner-version;
</seg>
</seglistitem>
</segmentedlist>
<variablelist>
<bridgehead renderas="sect3">Short Descriptions</bridgehead>
<?dbfo list-presentation="list"?>
<?dbhtml list-presentation="table"?>
<varlistentry id="xulrunner-prog">
<term><command>xulrunner</command></term>
<listitem>
<para>
is a shell script used for identifying the installed version
and running <application>Xulrunner</application> applications.
</para>
<indexterm zone="xulrunner xulrunner-prog">
<primary sortas="b-xulrunner">xulrunner</primary>
</indexterm>
</listitem>
</varlistentry>
</variablelist>
</sect2>
</sect1>