Changes

Jump to: navigation, search

User:Vpmirand/Assignment1

8,738 bytes added, 18:26, 24 September 2006
no edit summary
!!!!WORK IN PROGRESS!!!![[Assignment_1_List | Go Back To List]]
=Introduction=
I first started off building <b>Firefox </b> on my <b>Windows XP Professional</b> machine using <b>Visual Studio.Net 2003. </b> Unfortunately I had some problems along the way and solved them by using Google.com and by asking for help in the IRC chat. When I finally built Firefox I tried to run it but wasn’t successful because it crashed on me. So I tried building it on two other hard drives and I got the same error. Since I was short on time I decided to give Linux a try and see if I would be more successful with building Firefox on a Linux operating system.
I was finally able to build <b>Firefox </b> successfully on <b>Ubuntu</b>, which took me about one night to do. This document will discuss cover the build requirements such as hardware and software that I needed in order to build Firefox successfully. I will then focus on discuss the steps that took me to fully complete the build and any problems that I encountered along the way. I will end it off with some useful resources that I found and used throughout the process of the build and then talk about my experience with my first open source build.
 =BuildRequirements=
==Hardware==
My computer system:
<pre>
==Software==
Before I could install any packages or libraries I had to install build-essential, which is the synaptic package manager (i.e. Library Manager). Once I got this installed I looked at [http://developer.mozilla.org/en/docs/Linux_Build_Prerequisites] Linux Build prerequisites Prerequisites] to find out which libraries I needed. The following are a list of the libraries that I installed.
*CVS
*GTK (2.0)
*Libxt-dev
*Libidl-dev
*Make
=The Build=
When I ran the build for the first time on Ubuntu I was bound to come in contact with some errors.
The first time I ran the build I encountered an error to do with missing packages. Once that got resolved I ran the build a second time and came across another error to do with another missing package. After getting the last package installed I ran the build a third time and finally got the build to complete without any more errors.
 
==Steps Took to Complete Build==
*Asked Mike Lau a few questions about Ubuntu.
*Installed the build –essential, which is the synaptic package manager (i.e. Library Manager).
<pre>
sudo apt-get install build-essential
</pre>
*Installed the CVS library, from the synaptic package manager.
*Added environment variables to my environment script ( /etc/environment)
<pre>
CVSROOT=:pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot
CVS_RSH=ssh
</pre>
*Logged into Mozilla CVS Repository.
<pre>
cvs login
</pre>
*Checked out the build script
<pre>
cvs co mozilla/browser/config mozilla/client.mk
</pre>
*Created my .mozconfig file.
<pre>
# Building Firefox Trunk with Debugging
. $topsrcdir/browser/config/mozconfig
</pre>
*Checked out the full source code.
<pre>
make -f client.mk checkout
</pre>
*Started build for Firefox.
<pre>
make -f client.mk build
</pre>
*Received an error during my build. The [http://pastebin.ca/173662 error] stated that my /usr/bin/pkg-config was not found.
*I knew I was missing a package but I wasn’t sure what the name of the package was. So I used Google to see if I could find a solution. I didn’t find any useful links so I asked Mike Lau if he had come across any errors like the one I had.
*After speaking with Mike Lau, I got the packages that I needed.
*I Installed packages libidl-dev and libgtk2.0-dev from the synaptic package manager.
*After installing the packages I tried to rebuild Firefox again.
*Received another error during my build. The [http://pastebin.ca/173672 error] stated that it could not compile a basic X program. I knew that my int_types.h was missing so I knew that I was obviously missing a library but wasn’t sure which one.
*I used Google again to see if anyone had faced the same problem. I found a link on [http://www.ubuntuforums.org/archive/index.php/t-232557.html Ubuntu Forums] that gave me a package libgtk2.0-dev to install. But i had already installed it.
*I then decided to try the IRC chat and pasted the [http://pastebin.ca/173672 error] that I received and asked for some help.
*Philip Vitorino offered to help me and explained to me that I was just missing a package. I told him that I wasn't sure what package I was missing. I told him the packages that I had installed and he gave me a package to install.
*I installed libxt-dev
<pre>
sudo apt -get install g++ libxt-dev
</pre>
*Rebuilded Firefox and left it running over night.
*Next morning everything had gone smoothly, I ran Firefox in the terminal and got the browser running.
<pre>
/dist/bin ./firefox
</pre>
info ==Problems Encountered==During my Firefox build in Ubuntu I came across two errors that took me awhile to figuire out, since I was not familiarized on how Ubuntu worked.
==Steps took One of the errors I faced was to complete build==infodo with two missing packages not being installed.
<pre> 1. checking for pkg-config... /usr/bin/pkg-config 2. checking for gtk+-2.0 >=1.3.7 gdk-x11-2.0 glib-2.0 gobject-2.0... Package gtk+-2.0 was not found in the pkg-config search path. Perhaps you should add the directory containing `gtk+-2.0.pc' to the PKG_CONFIG_PATH environment variable No package 'gtk+-2.0' foun d Package gdk-x11-2.0 was not found in the pkg-config search path. Perhaps you should a dd the directory containing `gdk-x11-2.0.pc' to the PKG_CONFIG_PATH environment variabl e No package 'gdk-x11-2.0' found Package glib-2.0 was not found in the pkg-config searc h path. Perhaps you should add the directory containing `glib-2.0.pc' to the PKG_CONFIG _PATH environment variable No package 'glib-2.0' found Package gobject-2.0 was not foun d in the pkg-config search path. Perhaps you should add the directory containing `gobje ct-2.0.pc' to the PKG_CONFIG_PATH environment variable No package 'gobject-2.0' found 3. configure: error: Library requirements (gtk+-2.0 >=Problems Encountered==1.3.7 gdk-x11-2.0 glib-2.0 gobject- 2.0) not met; consider adjusting the PKG_CONFIG_PATH environment variable if your libra ries are in a nonstandard prefix so pkg-config can find them. 4. *** Fix above errors and then restart with "make -f client.mk build" 5. make[1]: *** [configure] Error 1 6. make[1]: Leaving directory `/home/admin/mozilla' 7. make: *** [/home/admin/mozilla/firefox-objdir/Makefile] Error 2 </pre>
infoI solved this problem by first using Google to find a solution. I couldn't find a solution online so I tried asking a classmate who had built Firefox to see if they would be able to help me. I was then told to install two packages libidl-dev and libgtk2.0-dev from the synaptic package manager. After the installation of the packages the error was solved.
On my second build I came across another error that had to do with another missing package.
 
<pre>
1. checking for sys/int_types.h... no
2. configure: error: Could not compile basic X program.
3. *** Fix above errors and then restart with "make -f client.mk build"
4. make[1]: *** [configure] Error 1
5. make[1]: Leaving directory `/home/admin/mozilla'
6. make: *** [/home/admin/mozilla/Makefile] Error 2
</pre>
 
I solved this problem by first using Google to find a solution. I found a solution online that stated for me to install a package which I had already installed, so this was obviously not of use. I then posted my error on [http://www.pastebin.ca Paste Bin] and pasted the link on the IRC Chat in the #Seneca room. Philip Vitorino told me to try and install a package called libxt-dev and see if it solved the problem. It definitely solved the problem and I was able to build Firefox completely.
=Screenshot=
Coming soon![[Image:vpmirand.jpg]] =Resources=Here are some links that I found useful and helped me in the process of building Mozilla Firefox: *[http://developer.mozilla.org/en/docs/Linux_Build_Prerequisites Linux Build Prerequisites]*[http://whereswalden.com/mozilla/msvcfree/ Setting up an MSVC Toolkit Firefox/Thunderbird Build Environment]*[http://Ubuntuforums.org Ubunutu Forums] Also got some help from people in the <b>IRC Chat</b> in room <b>#Seneca</b>. The name of these individuals are as follows: *Mike Lau (mylau) [Helped with building Firefox on Ubuntu system]*Philip Vitorino (philly) [Helped with building Firefox on Ubuntu system]*Dave Humphrey (dave) [Helped with building Firefox on Windows XP Professional system]*Tom Aratyn(mystic) [Helped with building Firefox on Windows XP Professional system] I would like to thank you all very much for taking the time to help me with the problems I faced when building Firefox.
=Conclusion=
InfoThis whole process of building Firefox has been an experience that I plan on taking with me where ever I go. I have never worked on such a large project, and having the opportunity to be a part of it was very exciting. Since this was my first time building an open source project I must admit i did get a bit fustrated since I wasn't sure what I had to do or what I needed in order to build Firefox successfully. I got some useful information from Tom Aratyn and Dave Humphrey who first helped me out with trying to build Firefox on the Windows platform. Their information and the information I found on Google helped me to understand what I needed and what I had to do.  Since my Firefox crashed on my Windows platform when the build finished, I decided to try the build on Ubuntu. Installing Ubuntu was a challenge since it was my first time installing a Linux operating system on my machine. After the installation I got even more confused on where to find things. I took some time to get familiarized with the interface which I picked up after a couple of minutes of looking around on the desktop. During the process of building Firefox I started to get confused when I read on the internet that you had to install specific packages and libraries. When I read this I automatically thought that I had to download the package and libraries from the internet. But then I figured out that I just needed to type a command in the terminal to install packages and install the library manager. This was one of the things I found really confusing, but now I am getting used to the Linux environment and plan to keep using it in the near future.
1
edit

Navigation menu