Difference between revisions of "Assignment 1 (Pcvitori)"
(→The Building Process) |
|||
(30 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
− | = | + | =Introduction= |
− | + | In prior years, I have attempted to build various open source projects, for example KDE. This project however, will be my first attempt at building Firefox. Before I begin discussing the whole build process, it is important for you to have some basic information about the computer that I will be building on. | |
− | == | + | ==Hardware Configuration== |
− | + | <pre> | |
+ | Intel Pentium 4 Processor-M 1.6 MHz | ||
+ | 512 MB RAM | ||
+ | 40 gig Hard Drive | ||
+ | Dual Boot – Ubuntu and Windows XP | ||
+ | </pre> | ||
− | == Conclusion = | + | 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 will only require a few more packages before I can execute my first build. My first step was to install any missing build prerequisites on the developer website on to my machine. Using the Synaptic Install Wizard, I located and downloaded each package listed on the Mozilla website ([http://developer.mozilla.org/en/docs/Linux_Build_Prerequisites Linux Build Prerequisites]). The following packages were installed: | ||
+ | |||
+ | <pre> | ||
+ | gcc | ||
+ | libxt-dev | ||
+ | libidl-dev | ||
+ | libgtk2.0-dev | ||
+ | cvs | ||
+ | make | ||
+ | zip | ||
+ | </pre> | ||
+ | |||
+ | My next step required me to download the most recent version of the Mozilla source code from the cvs repository. To accomplish this task, I first need to create a directory to hold all my cvs repositories. Finally, I needed to checkout the latest browser version from the Mozilla trunk and build it. I used the following commands to complete these tasks. | ||
+ | |||
+ | <pre> | ||
+ | >$ mkdir cvs | ||
+ | >$ cd cvs | ||
+ | >$ cvs -d :pserver:anonymous:anonymous@cvs-mirror.mozilla.org:/cvsroot co mozilla/client.mk | ||
+ | >$ cd mozilla | ||
+ | </pre> | ||
+ | |||
+ | Now that I have a link to the Mozilla repository, I can now specify which code segment to download using the MOZ_CO_PROJECT parameter. Since I am only building Firefox, I am able to specify the keyword ‘browser’ for the MOZ_CO_PROJECT parameter, which will allow me to download browser components. | ||
+ | |||
+ | <pre> | ||
+ | >$ make -f client.mk checkout MOZ_CO_PROJECT=browser | ||
+ | </pre> | ||
+ | |||
+ | By accident, I missed the section that discusses the build options configuration file. I then quickly moved to the Firefox build section and initiated the following command to build my newly downloaded browser source. | ||
+ | |||
+ | <pre> | ||
+ | >$ make -f client.mk build | ||
+ | </pre> | ||
+ | |||
+ | =The Build= | ||
+ | |||
+ | ==Problems Encountered== | ||
+ | |||
+ | The very first problem I encountered was due to my failing to see the section about creating a .mozconfig file has resulted in the following error. | ||
+ | |||
+ | <pre> | ||
+ | -Error: Parameter missing: --enable-application=APP | ||
+ | </pre> | ||
+ | |||
+ | After reading over the configure build options web page, I quickly created my .mozconfig file with the following parameters. | ||
+ | |||
+ | <pre> | ||
+ | mk_add_options MOZ_CO_PROJECT=browser | ||
+ | ac_add_options --enable-application=browser | ||
+ | </pre> | ||
+ | |||
+ | Once again, I initiated the build command described above to restart the Firefox build. After one 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’ which 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. As I began to read the descriptions of many cases, I quickly realized that 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 attempt. 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 (libraries) installed. Dave then 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, I found that they were all correct on my system. Therefore, I decided to delete and re-checkout the whole Mozilla browser code from the trunk. | ||
+ | |||
+ | Crossing my fingers, I executed the build command in hopes that my previous snapshot of the repository was corrupted. Surely enough, I was correct. Three hours later, I then had my first Firefox build! | ||
+ | |||
+ | =Screenshot= | ||
+ | |||
+ | [http://cs1.senecac.on.ca/wiki/index.php/Image:Pcvitori_firefox_build.png More Information] | ||
+ | |||
+ | =Resources= | ||
+ | |||
+ | * [[User:Themystic|Tom]] | ||
+ | * [[User:David.humphrey|David Humphrey]] | ||
+ | * [http://developer.mozilla.org/en/docs/Mozilla_Source_Code_Via_CVS Mozilla Source Code Via CVS] | ||
+ | * [http://developer.mozilla.org/en/docs/Configuring_Build_Options Configuring Build Options] | ||
+ | * [http://developer.mozilla.org/en/docs/Linux_Build_Prerequisites Linux Build Prerequisites] | ||
+ | * [http://www.google.com Google] | ||
+ | |||
+ | =Conclusion= | ||
+ | |||
+ | In all honesty, I was expecting a Mozilla Firefox build to be much more complex and difficult then it was. It 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. |
Latest revision as of 19:57, 19 September 2006
Contents
Introduction
In prior years, I have attempted to build various open source projects, for example KDE. This project however, will be my first attempt at building Firefox. Before I begin discussing the whole build process, it is important for you to have some basic information about the computer that I will be building on.
Hardware Configuration
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 will only require a few more packages before I can execute my first build. My first step was to install any missing build prerequisites on the developer website on to my machine. Using the Synaptic Install Wizard, I located and downloaded each package listed on the Mozilla website (Linux Build Prerequisites). The following packages were installed:
gcc libxt-dev libidl-dev libgtk2.0-dev cvs make zip
My next step required me to download the most recent version of the Mozilla source code from the cvs repository. To accomplish this task, I first need to create a directory to hold all my cvs repositories. Finally, I needed to checkout the latest browser version from the Mozilla trunk and build it. I used the following commands to complete these tasks.
>$ mkdir cvs >$ cd cvs >$ cvs -d :pserver:anonymous:anonymous@cvs-mirror.mozilla.org:/cvsroot co mozilla/client.mk >$ cd mozilla
Now that I have a link to the Mozilla repository, I can now specify which code segment to download using the MOZ_CO_PROJECT parameter. Since I am only building Firefox, I am able to specify the keyword ‘browser’ for the MOZ_CO_PROJECT parameter, which will allow me to download browser components.
>$ make -f client.mk checkout MOZ_CO_PROJECT=browser
By accident, I missed the section that discusses the build options configuration file. I then quickly moved to the Firefox build section and initiated the following command to build my newly downloaded browser source.
>$ make -f client.mk build
The Build
Problems Encountered
The very first problem I encountered was due to my failing to see 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.
mk_add_options MOZ_CO_PROJECT=browser ac_add_options --enable-application=browser
Once again, I initiated the build command described above to restart the Firefox build. After one 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’ which 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. As I began to read the descriptions of many cases, I quickly realized that 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 attempt. 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 (libraries) installed. Dave then 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, I found that they were all correct on my system. Therefore, I decided to delete and re-checkout the whole Mozilla browser code from the trunk.
Crossing my fingers, I executed the build command in hopes that my previous snapshot of the repository was corrupted. Surely enough, I was correct. Three hours later, I then had my first Firefox build!
Screenshot
Resources
- Tom
- David Humphrey
- Mozilla Source Code Via CVS
- Configuring Build Options
- Linux Build Prerequisites
Conclusion
In all honesty, I was expecting a Mozilla Firefox build to be much more complex and difficult then it was. It 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.