Document Obsolete
Notice: BeZilla, the Haiku port of Mozilla Firefox is now hosted at OSDrawer. These patches and build instructions are now obsolete.
View All Issues for mozilla-firefox
Tickets to include in next BeZilla* builds
dependencies : TinnyTim.sh will download, build, and install all three dependencies: glib, libidl, and autoconf 2.13.
patches and mozconfigs : http://ports.haiku-files.org/browser/haikuports/trunk/www-client/mozilla-firefox
Get source code :
from CVS:
export CVSROOT=:pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot
export MOZ_CO_PROJECT=all
cvs co -r MOZILLA_1_8_BRANCH mozilla/client.mk
cd mozilla
make -f client.mk checkout
#note MOZ_CO_PROJECT=all instructs cvs to checkout all the available sources,
useful if you plan on building multiple projects. eg, firefox and thunderbird.
from a cvs tarball:
wget http://bezilla.beuser.de/builds/mozilla_1_8_branch-cvs-20090208.tar.bz2
md5sum mozilla_1_8_branch-cvs-20090208.tar.bz2
# 2884bc58be03f7fd998583efef5c92c6
Currently as cvs in Haiku has issues performing proper checkouts, I suggest using my cvs source tarball
cvs's errors can be detected by querying for ".new."
all patches are applied in mozilla/ 's parent directory -- mozilla/..
patch -p0 -i configure-sunbird-nspr-reorder.diff
unzip forReorderPatches-browser.zip -d mozilla/
patch -p0 -i prpolevt-fix.patch
patch -p0 -i nsAppRunner.patch
patch -p0 -i greyMenuSelection.patch
patch -p0 -i launch-kill-dowhile.patch
A note regarding Sunbird aka BeZillaCalendar?:
oh. sunbird's apprunner-rsrc file isn't included in the above patches.
sunbird-makefile-apprunner-rsrc.zip contains them.
unzip anywhere.
cp apprunner-beos.rsrc mozilla/calendar/sunbird/app
manually edit mozilla/calendar/sunbird/app/Makefile.in
(the + indicates the line to add)
ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH)))
+ BEOS_PROGRAM_RESOURCE = $(srcdir)/apprunner-beos.rsrc
ifdef BUILD_STATIC_LIBS
OS_LIBS += -ltracker -lgame
endif
endif
The resource file has a trailing ' ' in the App-Sig, this can manually be fixed after sunbird is built.
note: the apprunner-beos.rsrc file needs to be fixed eventually.
.mozconfig file :
copy a file from http://ports.haiku-files.org/browser/haikuports/trunk/www-client/mozilla-firefox/mozconfig/
to /boot/home/.mozconfig
edit the following line:
### //Set the outputdir for the build
mk_add_options MOZ_OBJDIR=
I strongly suggest using an external MOZ_OBJDIR, as it allows the source tree to produce multiple builds.
Building:
export AC213='/boot/apps/autoconf-2.13/bin/autoconf -m /boot/apps/autoconf-2.13/share/autoconf'
cd mozilla ; $AC213
cd nsprpub ; $AC213 ; cd ..
cd directory/c-sdk ; $AC213 ; cd ../..
make -f client.mk build
Once a build is complete:
cd to your MOZ_OBJDIR/dist/bin
there you will find either a seamonkey, firefox, sunbird, or thunderbird binary.
For some reason yet to be discovered, seamonkey will not run from dist/bin.
However, the latter three will.
Now that you have tested your build, you can create an initial zip archive.
cd to your MOZ_OBJDIR and run the appropriate command:
seamonkey : `make -C xpinstall/packager`
firefox : `make -C browser/installer`
thunderbird : `make -C mail/installer`
sunbird : `make -C calendar/sunbird/installer`
This command will place an appropriately named zipfile in MOZ_OBJDIR/dist/
Note: If using Mozilla's trademarks were not an issue, then this zip would be ready for distribution.
However, since we CANNOT USE TRADEMARKS, this zip must be expanded and altered before distribution.
Currently, to my knowledge the following items need to be changed: folder name, binary name, and icon.
It is possible that additional items need to be altered, but I haven't investigated it further.