%general-entities; ]> $LastChangedBy$ $Date$ Xulrunner-&xulrunner-version; Xulrunner 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 applications such as Epiphany and Yelp can use it. If you later build a newer version of xulrunner to pick up the latest security fixes, you must update the symlinks (including for nss, nspr if you are using the versions in xulrunner) and rebuild every application which uses gecko, including upgrading firefox if you have installed that. Package Information Download (HTTP): Download (FTP): When a new version of firefox is released, sometimes a corresponding new version of xulrunner appears at the same time. At other times it appears several days later or not at all. So far in the firefox-3.0 series, every new release has created xulrunner libraries with a corresponding new version. Whenever a separate xulrunner tarball has been released, it has been bitwise identical to the corresponding firefox tarball. So, we will use the firefox tarball to save downloading this large package twice. Download MD5 sum: &xulrunner-md5sum; Download size: &xulrunner-size; Estimated disk space required: &xulrunner-buildsize; Estimated build time: &xulrunner-time; Xulrunner Dependencies Required , , and Note: libjpeg should have been installed before GTK+ and should exist on your system. If for some reason you haven't installed libjpeg, you should remove the option from the .mozconfig file created below. Optional , , (only for crash-reporter), and (for gnome integration), , (patched for apng support), SQLite, . , Valgrind (only for testing the jemalloc code), and User Notes: 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. If you are going to use system-installed versions of the NSS and NSPR libraries, ensure you uncomment the two lines near the bottom of the file. You should review the entire file and comment or uncomment options as necessary. If you would prefer to download the file instead of creating it by typing or cut-and-pasting, you can find it at (the file must be installed in the root of the source tree mozilla directory, and named .mozconfig). cat > .mozconfig << "EOF" # This file contains the options used in the Xulrunner build. You may # need to specify additional options for your specific build needs. # Use the information provided by running './configure --help' to # help you determine if you need to add any additional options. # Some additional options can be added by uncommenting the examples # in this file or adding options by inserting a line containing # 'ac_add_options --some-option-you-need'. Be aware that some accepted # options, such as '--with-system-bz2', do not affect the build. # specify that we want to build xulrunner ac_add_options --enable-application=xulrunner # Create an object directory and specify to build the package in that # directory. If desired, modify the location of the object directory # to a directory inside the source tree by removing '../' from the # line below. mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/../xulrunner-build # Specify the installation prefix. If you would prefer Xulrunner # installed in a different prefix, modify the line below to fit # your needs (the config will always be written to /etc/gre.d) ac_add_options --prefix=/usr # apply a minimal level of optimization (-O) ac_add_options --enable-optimize # These options are used so that the Xulrunner binaries are linked to # the system-installed copies of the specified libraries instead of # the source tree code which may not be the most recent versions (or, # for cairo, may contain additional patches) : with the exception of # libsqlite3, the libraries are statically linked - using the shipped # version of libsqlite3 has bee n reported to cause problems with other # applications which were using sqlite3. # (the --enable-system options) # comment this if you want to use whatever patched version of cairo # is in the shipped mozilla tree, together with the system headers. ac_add_options --enable-system-cairo # comment this if you have not installed lcms ac_add_options --enable-system-lcms # comment this if you have not installed sqlite ac_add_options --enable-system-sqlite # (the --with-system options) # comment this if you did not build libjpeg before gtk+-2 ac_add_options --with-system-jpeg # These two options enable support for building Xulrunner with # system-installed versions of the Network Security Services (NSS) # and Netscape Portable Runtime (NSPR) libraries. Uncomment both # lines to enable support for system-installed NSS/NSPR instead of # building the versions shipped with xulrunner. #ac_add_options --with-system-nspr #ac_add_options --with-system-nss # comment this if you have not built png with the apng patch ac_add_options --with-system-png # The pthreads option is only used when building nspr # so you can comment this if you enable --with-system-nspr ac_add_options --with-pthreads # zlib is in LFS ac_add_options --with-system-zlib # (options to disable parts of the package) # This option is used to disable the a11y support in the Xulrunner # binaries. Comment out this option if you require a11y support. ac_add_options --disable-accessibility # uncomment this if you did not build curl #ac_add_options --disable-crashreporter # comment this if you have built dbus-glib ac_add_options --disable-dbus # comment this if you have gnome-vfs and libgnomeui, and wish to # integrate xulrunner into your gnome desktop ac_add_options --disable-gnomevfs # This option is added so that the Mozilla Installer program is not # built or installed. The program is not required for a BLFS # installation of Xulrunner. ac_add_options --disable-installer # If you enable javaxpcom, you must have a java compiler installed. ac_add_options --disable-javaxpcom # mochitest often causes problems ac_add_options --disable-mochitest # This option is added so that test libraries and programs are not # built. These would only be required for debugging purposes. ac_add_options --disable-tests # Disable the updater, which is not appropriate if you build from source ac_add_options --disable-updater # (options to add extra parts of the package) # This option is used to enable source tree included LDAP support in # the Xulrunner binaries. ################################################################### # # NOTE: You must uncomment this option if there is any chance of # compiling the OpenOffice package from source code using this copy # of Xulrunner for your Mozilla support. # This has NOT been tested, current versions of OpenOffice are # assumed not to compile against this version of xulrunner! # ################################################################### #ac_add_options --enable-ldap # Use the anti-phishing measures (a blacklist of sites) ac_add_options --enable-safe-browsing # This option is used so that the debugging symbols are removed from # the installed binaries during the installation process. Comment out # this option if you may have a need to retain the debugging symbols # in the installed binaries (the resulting binaries will be about 7MB # bigger). ac_add_options --enable-strip # Uncomment this option if you desire support for dual-monitor # display using the X-Window Xinerama libraries. #ac_add_options --enable-xinerama # ('with' options) # This option identifies the default binary directory of the Xulrunner # installation and is used to locate Xulrunner's installed files. This # option is not required for end-user browsing, and is only used for # development purposes. #ac_add_options --with-default-mozilla-five-home=/usr/lib/xulrunner-&xulrunner-version; EOF Compile Xulrunner by issuing the following commands: echo "Requires: nspr" >>xulrunner/installer/libxul-embedding.pc.in && make -f client.mk build This package does not come with a test suite. Now, as the root user, install the package: make -f client.mk install && for DL in \ libnss3.so libnssutil3.so libsmime3.so libssl3.so libsoftokn3.so \ libplds4.so libplc4.so libnspr4.so ; do ln -sv xulrunner-&xulrunner-version;/$DL /usr/lib/$DL done && ln -sv mozilla-nspr.pc /usr/lib/pkgconfig/nspr.pc && mkdir /usr/lib/mozilla && ln -sv /usr/lib/xulrunner-&xulrunner-version;/plugins /usr/lib/mozilla/plugins Command Explanations echo "Requires: nspr" >>xulrunner/installer/libxul-embedding.pc.in : If you try to build Yelp without this, the prtypes header from nspr will not be found. It is arguable whose error this is (the code presumably works on earlier geckos), but this fix is unlikely to cause any damage in other packages. 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, then depending on the target parameter (build or install), either runs the configure script and compiles the package or installs the package. for DL in ...: The nspr and nss libraries shipped with this package are installed into /usr/lib/xulrunner-&xulrunner-version; which means they will not be found at runtime. By using symbolic links from /usr/lib they will be found and we can easily change the links to point to a newer version when we upgrade. ln -sv /usr/lib/xulrunner-&xulrunner-version;/plugins /usr/lib/mozilla/plugins: Some packages will install browser plugins into /usr/lib/mozilla/plugins. By creating this as a symlink to the basic plugins we keep them all together. When you upgrade xulrunner, remember to update the symlinks and to copy any additional plugins compiled agaisnt this series of xulrunner to the new plugin directory. Contents Installed Programs Installed Libraries Installed Directories xulrunner Numerous libraries, browser components, plugins, extensions, and helper modules installed in /usr/lib/xulrunner-&xulrunner-version; /etc/gre.d, /usr/include/xulrunner-&xulrunner-version;, /usr/lib/xulrunner-&xulrunner-version;, and /usr/lib/xulrunner-devel-&xulrunner-version; Short Descriptions xulrunner is a shell script, useful for identifying the version installed. xulrunner