Firefox: Difference between revisions

From Halfface
Jump to navigation Jump to search
No edit summary
No edit summary
Line 1: Line 1:
==Multiple profiles==
firefox -no-remote -ProfileManager
firefox -no-remote -P profile2
Prepare the machine for build.
Prepare the machine for build.
  yum groupinstall "Development Tools"
  yum groupinstall "Development Tools"

Revision as of 14:45, 4 April 2013

Multiple profiles

firefox -no-remote -ProfileManager
firefox -no-remote -P profile2

Prepare the machine for build.

yum groupinstall "Development Tools"

Download source code of firefox.

Unpack the source code.

tar jxf firefox-2.0.0.7-source.tar.bz2

In the top level of the source tree, create a .mozconfig file, containing your compiler options. Here's a basic configuration that works for me:

. $topsrcdir/browser/config/mozconfig
ac_add_options --enable-optimize
ac_add_options --disable-debug
ac_add_options --disable-tests
ac_add_options --enable-default-toolkit=gtk2
ac_add_options --enable-xft
ac_add_options --enable-official-branding
ac_add_options --enable-xinerama
mk_add_options MOZ_CO_PROJECT=browser

To get a working build identifier when writing about: in the url. Set the following variables.

  • Build identifier: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.8.1.7) Gecko/2007092414 Firefox/2.0.0.7
setenv MOZILLA_OFFICIAL 1
setenv BUILD_OFFICIAL 1

Start compiling.

make -f client.mk build

Now to package the result. Firefox provides a special make command to create an installer archive. With the example .mozconfig file, a small hack is needed. Open browser/installer/Makefile in your editor and find this section:

ifdef BUILD_STATIC_LIBS
ifeq (WINNT,$(OS_ARCH))
MOZ_PKG_MANIFEST_P = $(srcdir)/windows/packages-static
else
ifneq (,$(filter-out OS2 Darwin,$(OS_ARCH)))
MOZ_PKG_MANIFEST_P = $(srcdir)/unix/packages-static
endif
endif
else
$(error you need a "--enable-static --disable-shared" build to create an installer)
endif

Delete the two lines so it looks like this:

ifdef BUILD_STATIC_LIBS
ifeq (WINNT,$(OS_ARCH))
MOZ_PKG_MANIFEST_P = $(srcdir)/windows/packages-static
else
ifneq (,$(filter-out OS2 Darwin,$(OS_ARCH)))
MOZ_PKG_MANIFEST_P = $(srcdir)/unix/packages-static
endif
endif
endif

Create firefox tar.gz in dist directory (dist/firefox-2.0.0.7.en-US.linux-x86_64.tar.gz).

make -C browser/installer

Unpack this file in /usr/lib64 and rename the firefox directory to firefox-2.0.0.7

cd /usr/lib64
tar zxf firefox-2.0.0.7.en-US.linux-x86_64.tar.gz
mv firfox firefox-2.0.0.7

Now create a copy of /usr/bin/firefox called /usr/bin/firefox.2 and change to 2 paths to point to /usr/lib64/firefox-2.0.0.7

  • before
if [ -x "/usr/lib64/firefox-1.5.0.10/firefox-bin" ]
then
  MOZ_LIB_DIR="/usr/lib64"
fi
MOZ_DIST_BIN="$MOZ_LIB_DIR/firefox-1.5.0.10"
  • after
if [ -x "/usr/lib64/firefox-2.0.0.7/firefox-bin" ]
then
  MOZ_LIB_DIR="/usr/lib64"
fi
MOZ_DIST_BIN="$MOZ_LIB_DIR/firefox-2.0.0.7"

Start the application and verify it works.

firefox.2