Open main menu

CDOT Wiki β

Assignment 1 (Pcvitori)

Revision as of 12:29, 16 September 2006 by Pcvitori (talk | contribs)

!!!!WORK IN PROGRESS!!!!

Introduction

While I have attempted to build various open source projects in the past (I.e. KDE), this will be my first time building Firefox. Before I begin the whole build process, let me give you a bit of information about my computer I will be building on.

My Notebook Specifications

Intel Pentium 4 Processor-M 1.6 MHz
512 MB RAM
40 gig Hard Drive
Dual Boot – Ubuntu and Windows XP

This computer is about 5 years old, so let’s see how it holds up in a Firefox build. Let the build begin!

Software Installation

Since I have already installed the latest version of Ubuntu on my notebook, I would only require a few more packages before I can execute my first build. My first step was to install any of the missing build perquisites on the developer website to my machine.

Linux Build Prerequisites

Using the Synaptic Install Wizard, I located and downloaded each package listed on the Mozilla website.

The following packages were installed:

GTK2
gcc
libxt-dev
cvs
make

My next step was to download the most recent version of the Mozilla source code from the cvs repository. To accomplish this task, I initiated the following commands through my Linux terminal.

>$ mkdir cvs
>$ cd cvs 
>$ cvs -d :pserver:anonymous:anonymous@cvs-mirror.mozilla.org:/cvsroot co   
>$ mozilla/client.mk
>$ cd mozilla

Now that we have a link to the Mozilla repository, I can now specify which code segment to download using the MOZ_CO_PROJECT parameter. Since we’re only building Firefox, we can specify the keyword ‘browser’ to download only the browser components.

>$ make -f client.mk checkout MOZ_CO_PROJECT=browser

By accident, I missed the section that talks about the build options configuration file. I quickly moved to the Firefox build section initiated the following command to build my newly downloaded browser source.

>$ make -f client.mk build

The Build

Problems Encountered

My very first problem! Failing to read the section about creating a .mozconfig file has resulted in the following error.

-Error: Parameter missing: --enable-application=APP

After reading over the configure build options web page, I quickly created my .mozconfig file with the following parameters.

<PARAMETERS HERE>

Once again, I initiated the build command described above to restart the Firefox build. After 1 hour into the build process, I noticed a consistent flow of error messages being display on my terminal. Minutes later, the build crashed. It turns out that I was missing a file called ‘int_types.h’ that caused various build files to crash as they could not resolve to this header file. After various google searches with no results, I decided to venture into the google newsgroups in hopes of an answer. To my surprise, many users were having the same issue. Described in many cases, my current situation was a result of not having the g++ package installed. I quickly installed the g++ package and re-executed the build command.


The build process this time failed much quicker then my previous tempt. Once again I received the same error as before. This time, I decided to venture into IRC and talk to my fellow classmates about the problem I was having. Within minutes, I had various users assisting me with my build problems. Tom (mystic) took the time to ensure that I had the required packages installed libraries installed. Dave quickly asked me about my make version and described how it may cause an issue if I had the wrong version installed. After double checking all the requirements listed by Tom and Dave were correct on my system, I decided to delete and re-checkout the whole Mozilla browser code from the truck.

Crossing my figures, I executed the build command in hopes that my previous snapshot of the repository was corrupted. Surely enough, I was right! (What a guess) 3 hours later, I had my first Firefox build!

Screenshot

Coming soon!

Conclusion

To tell you the truth, I was expecting a fierce battle with the Mozilla Firefox build. This turned out to be better then I expected as building on Ubuntu proved to be very easy and straight forward. The build problems I encountered allowed me to understand more about the build system and how the slightest file/version change can break the build.