Firefox
Download Source: | http://releases.mozilla.org/pub/mozilla.org/firefox/releases/2.0/source/firefox-2.0-source.tar.bz2 |
---|
Contents
Dependencies
Required
Recommended
Optional
Creating a .mozconfig
The .mozconfig file contains the options that will be used to build firefox.
The first line includes the default configuration for compiling a browser and the second line determines where the build objects are going to reside. ac_cv_visibility_pragma=no fixes build errors on 32bit non-x86 systems but won't cause any trouble on x86. Having --with-system-nss and --with-system-nspr does not mean you *HAVE* to have a system installed version of nss and nspr. It makes the build system prefer to use the system installed version of nss and nspr over the internal version. --enable-canvas enables support for the <canvas></canvas> tag. --enable-svg enables support for rendering svg files. --enable-strip causes the installed binaries to be stripped. --disable-tests prevents test programs from being built which saves a lot of disk space and time. --disable-accessibility - disables a11y support. --disable-installer prevents the installer from being built. --enable-official-branding causes the installed binaries to have the official Firefox name embedded in them. Due to license restrictions, you may not distribute binaries created using this option.
cat > .mozconfig << "EOF" . $topsrcdir/browser/config/mozconfig mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/obj-@CONFIG_GUESS@ ac_cv_visibility_pragma=no ac_add_options --prefix=/opt/firefox-2.0 ac_add_options --with-system-nss ac_add_options --with-system-nspr ac_add_options --with-system-zlib ac_add_options --with-system-png ac_add_options --with-system-jpeg ac_add_options --enable-system-cairo ac_add_options --enable-canvas ac_add_options --enable-svg ac_add_options --enable-strip ac_add_options --disable-tests ac_add_options --disable-accessibility ac_add_options --disable-installer ac_add_options --enable-official-branding EOF
If you would like dual monitor support in Firefox, append your your .mozconfig with the following:
cat >> .mozconfig << "EOF" ac_add_options --enable-xinerama EOF
If you have OpenLDAP installed and would like to build Firefox against it. This is required to build OpenOffice2 against Firefox. Append your .mozconfig with the following:
cat >> .mozconfig << "EOF" ac_add_options --enable-ldap EOF
If you would like to render fonts with Pango, append your your .mozconfig with the following. This can significantly slow font rendering.
cat >> .mozconfig << "EOF" ac_add_options --enable-pango EOF
Non-Multilib
sed -i "s:@MOZ_GTK2_LIBS@:& -L${XORG_PREFIX}/lib -lX11 -lXrender:g" config/autoconf.mk.in
Compile the package:
make -f client.mk build
Install the package:
make -f client.mk install
If you're using a system installed NSS and NSPR then adjust the pkg-config files to point to the proper place:
ln -sfv /usr/lib/pkgconfig/nss.pc /opt/firefox-2.0/lib/pkgconfig/firefox-nss.pc && ln -sfv /usr/lib/pkgconfig/nspr.pc /opt/firefox-2.0/lib/pkgconfig/firefox-nspr.pc
50-firefox.sh
If you're using the Bash Startup Files create an addition for firefox with the following commands, otherwise make sure the enviornment variables are set in your profile:
cat > /etc/profile.d/50-firefox.sh << "EOF" # Begin /etc/profile.d/50-firefox.sh export PATH="${PATH}:/opt/firefox-2.0/bin" export PKG_CONFIG_PATH="${PKG_CONFIG_PATH}${PKG_CONFIG_PATH+:}/opt/firefox-2.0/lib/pkgconfig" # End /etc/profile.d/50-firefox.sh EOF
Multilib
The order that the builds are displayed on this page isn't neccesarily the order that you install them in. If you would like a 32bit browser but still require the 64bit libraries for other packages build the 32bit version last.
Remember, Use a clean source and build directory for each build, Firefox is no exception.
50-firefox.sh
If you're using the Bash Startup Files create an addition for firefox with the following commands, otherwise make sure the enviornment variables are set in your profile:
cat > /etc/profile.d/50-firefox.sh << "EOF" # Begin /etc/profile.d/50-firefox.sh export PATH="${PATH}:/opt/firefox-2.0/bin" export PKG_CONFIG_PATH32="${PKG_CONFIG_PATH32}${PKG_CONFIG_PATH32+:}/opt/firefox-2.0/lib/pkgconfig" export PKG_CONFIG_PATHN32="${PKG_CONFIG_PATHN32}${PKG_CONFIG_PATHN32+:}/opt/firefox-2.0/lib32/pkgconfig" export PKG_CONFIG_PATH64="${PKG_CONFIG_PATH64}${PKG_CONFIG_PATH64+:}/opt/firefox-2.0/lib64/pkgconfig" # End /etc/profile.d/50-firefox.sh EOF
32Bit
Use the following command to append your .mozconfig with 32bit specific flags:
cat >> .mozconfig << EOF export CC="gcc ${BUILD32}" export CXX="g++ ${BUILD32}" export PKG_CONFIG_PATH="${PKG_CONFIG_PATH32}" export USE_ARCH=32 ac_add_options --host=$CLFS_TARGET32 ac_add_options --build=$CLFS_TARGET32 mk_add_options CONFIG_GUESS=$CLFS_TARGET32 EOF
sed -i "s:@MOZ_GTK2_LIBS@:& -L${XORG_PREFIX}/lib -lX11 -lXrender:g" config/autoconf.mk.in
x86
Compile the package:
make -f client.mk OS_TEST=x86 build
Install the package:
make -f client.mk OS_TEST=x86 install
Common
mv -v /opt/firefox-2.0/bin/firefox-config{,-32} && ln -sfv /usr/bin/multiarch_wrapper /opt/firefox-2.0/bin/firefox-config
If you're using a system installed NSS and NSPR then adjust the pkg-config files to point to the proper place:
ln -sfv /usr/lib/pkgconfig/nss.pc /opt/firefox-2.0/lib/pkgconfig/firefox-nss.pc && ln -sfv /usr/lib/pkgconfig/nspr.pc /opt/firefox-2.0/lib/pkgconfig/firefox-nspr.pc
64Bit
Use the following command to append your .mozconfig with 64bit specific flags:
cat >> .mozconfig << EOF ac_add_options --libdir=/opt/firefox-2.0/lib64 export CC="gcc ${BUILD64}" export CXX="g++ ${BUILD64}" export PKG_CONFIG_PATH="${PKG_CONFIG_PATH64}" export USE_ARCH=64 EOF
sed -i "s:@MOZ_GTK2_LIBS@:& -L${XORG_PREFIX}/lib64 -lX11 -lXrender:g" config/autoconf.mk.in
Compile the package:
make -f client.mk build
Install the package:
make -f client.mk install && mv -v /opt/firefox-2.0/bin/firefox-config{,-64} && ln -sfv /usr/bin/multiarch_wrapper /opt/firefox-2.0/bin/firefox-config
If you're using a system installed NSS and NSPR then adjust the pkg-config files to point to the proper place:
ln -sfv /usr/lib64/pkgconfig/nss.pc /opt/firefox-2.0/lib64/pkgconfig/firefox-nss.pc && ln -sfv /usr/lib64/pkgconfig/nspr.pc /opt/firefox-2.0/lib64/pkgconfig/firefox-nspr.pc
Creating the Desktop File
Since Firefox does not provide a desktop file by default below is an example one:
cat > /usr/share/applications/firefox.desktop << "EOF" [Desktop Entry] Encoding=UTF-8 Name=Mozilla Firefox Browser Comment=Lightweight browser based on mozilla Exec=/opt/firefox-2.0/bin/firefox Icon=firefox.png Terminal=false Type=Application Categories=Application;Network; EOF
Grab the Firefox pixmap from http://cross-lfs.org/~jciccone/firefox.png and put it in /usr/share/pixmaps.