Shayan's Software & Technology

My adventure as a Software Engineer continues..,

First Open Source FireFox Nightly Build: Windows 7 x64 bit

Link to the Tutorial: https://developer.mozilla.org/en-US/docs/Simple_Firefox_build

What did I learn?

To follow the tutorial, but not to assume that the content on the tutorial is everything I need. What I mean by that is that the tutorial has no information about the version control system that you may be using and the commands to run for that particular CVS. Not that this is a mistake, it should not change, but there could be a mention to ensure UNIX Line endings are preserved.

Also the tutorial is not organized in a manner that I find to be reader friendly. It has sections on what to do for the OS you have installed but at the end it has commands on the CL that relate to windows only. maybe I was confused by the line break in the windows section of the tutorial. more of a reason to have that removed!

What was new for you? Tools, terms, techniques, etc.

I don’t think anything was new to me but I did build on some knowledge that was taught before. like using make files, more specifically: pymake. the reason why pymake is used on windows is because GNU make runs into trouble for some cases in the Windows environment. Also Line Endings. I know that Windows and Unix use different line endings for each file. I did not know that I had to preserve the UNIX Line endings in order to successfully build Mozilla Nightly on Windows.

I also found it interesting that the number of cores had to be specified when compiling. For my specific build I used 7 cores. It took approximately 15 minutes to build. I was doing other things at the time so it may have been slower than normal.

To Build you need to run the following command in the Command Line while you are in the mozilla-central directory. replace “N” with the number of Cores you would like to use to build.

build/pymake/make.py -f client.mk -jN

you need to call the python version of the makefile from the mozilla-central directory. One solution to this would be to make an alias of build/pymake/make.py to “pymake”

What was hard?

Nothing! I’m serious! I had one issue with line endings where when I cloned the mozilla source code from the github it converted the line endings from unix2dos. The compiler error suggested that I run a script which was the mozilla equivalent of the “dos2unix” script. This script did not exist. I did some research on the internet and I found out that last year a Seneca Student found this script to be problematic and so it was removed. I suggest that the compiler error message be changed to reflect that change.

How did you overcome your issues?

The Line Ending issue exists because of the Mozilla Build program which is required to build firefox. MozillaBuild simulates a Linux Environment on your Windows machine. This Simulation will obviously require UNIX-style Line Endings i.e “\n”.

The Line Ending Issue was solved by running the following command on gitbash and then re-cloning the source code from the forked repository. After this the mozilla built properly.

git config --global core.autocrlf false

Another mini-issue was that directory name for final exe file. on a 32-bit Operating System the path is

GitHub\mozilla-central\objdir\dist\bin\firefox.exe

.On a 64 bit Windows 7 it is:

GitHub\mozilla-central\obj-i686-pc-mingw32\dist\bin\firefox.exe

Here is the output of the build:

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: