Assignment 1(mylau)
Steps you took to complete the build
For my build, i used Ubuntu Linux. The main reason for this was so I can become more comfortable using Linux and not become dependent on a specific Operating System. the following steps I performed to build Firefox are the following:
1. Downloaded and installed CVS
$ sudo apt-get install cvs
2. Checked out the latest version of Firefox using CVS
cvs -d :pserver:anonymous:anonymous@cvs-mirror.mozilla.org:/cvsroot co -r MOZILLA_1_8_BRANCH mozilla/client.mk
3. Updated the checked out version of Firefox
$ cd mozilla $ make -f client.mk checkout
4. Created a .mozconf file in the mozilla directory. It contained the following content:
. $topsrcdir/browser/config/mozconfig
5. Performed a make command to build Firefox
$ make -f client.mk build
6. Ran Firefox which was located in the folder mozilla/dist/bin
$ cd dist/bin/ $ ./firefox
Software you installed
I'm not sure if libraries are considered to be softwares on Linux but the following were the libraries I installed:
- build-essentials - This was the very first library I installed. This came with all the tools needed to perform make commands. It also include gcc so all the Firefox prerequisites were met. I would say, this was the most easiest part of the assignment. Ubuntu did a good job coming up with this package.
- CVS - I used this in order to get the latest Firefox code.
- libidl-dev
- libgtk2.0-dev
Problems you encountered and how you solved those problems
Problem 1: Finding a starting point During the process of installing Firefox, I ran into a number of issues. The very first issue was finding a starting point for the assignment. Unfortunately, the assignment specification did not help much. It could have been the fact that we could build any Firefox version.
Solution 1: finding a starting point To solve this issue, I asked Mohammad Tirtashi for the link to the source code to Firefox. From there I worked my way and found the link which explained what steps needed to be preformed the build on Mozilla Developer.
Problem 2: Missing packages Throughout the whole process of building Firefox, I had missing libraries. The first few errors which involved libraries were trivial. The error messages were clear and self explanatory. Unfortunately, the last error message I got before a successful compile was had to deal with Intrinsic.h file. It did not exist in the X11 directory. I searched through the web for a good half day but had no luck finding a solution. There were quite a number of people who posted comments which had same issues as myself but none had solutions. Instead, most of the people just gave up on the build.
Solution 2: Missing packages Lucky, I was able to get a hold of someone on the IRC chat in the #seneca channel. After talking to vlad, I realized I was missing some packages. They were libidl-dev and libgtk2.0-dev. These packages were not mentioned on the prerequisites.
Problem 3: How to run it after the application is successfully built This was another one of the issues which took me a while to find. The first place I looked at was the mozilla folder and if it had a bin in mozilla but the file Firefox did not exist. I also checked Build and Install to find how to run the application after the make.
Solution 3: How to run it after the application is successfully built I asked a classmate who already finished a build of Firefox and they led me to the right direction. Firefox was located on mozilla/dist/bin/. I myself would have not figured it this out.
Resources you used to complete your work (people, website, etc.)
I used websites and also asked people for help for this work. I started out using developer.mozilla.org and google to better understand what I needed to do in order to build Firefox. This was a good starting point. It got the ball rolling for this assignment although it was not enough to perform a successful build. Websites helped me troubleshoot some of the earlier issues. As I found more and more errors, the error messages started to become more unclear.
When websites alone was not providing me the right information, I started asking people for help. I got a lot of help from knowledgeable people on IRC chats. IRC chats provided more direct and detailed information as a posed to websites.
After successfully building Firefox, I had the feeling of success and wanted to do more than just a build.
Screenshot of Help > About Mozilla Firefox in your custom build
Conclusion and reflections on your first experience building Firefox
After my first experience building Firefox, I must say I learned a lot. One reason was because I built it with Linux which is an operating system I'm least familiar with. Another reason is is that I found another great source for information which is IRC chats. I'm glad open source developers use IRC. If everything ran by emails, I would have ran out of patience in building Firefox.
One suggestion I would make is, developer.mozilla.org should have forums so people can post their issues and how it was resolved. One of the issues I ran into was missing libraries which was not listed on the prerequisites. Although Mozilla's instructions were meant more for developers, it should describe in details of the steps in order for the users to build the source without having issues. Reading the instructions provided require quite a lot of troubleshooting.