667
edits
Changes
no edit summary
** Register for [http://fsoss.ca FSOSS] or join as a [[Volunteer|volunteer]].
** Look at [[Fall 2010 Mozilla Open Source Project List|project list]] and get your [[Fall 2010 DPS909 and OSD600 Initial Project Plan 0.0|initial project]] plan done.
== Weeks 4, 5 (Sept 27) - Building Mozilla ==
* Introduction to RCS
** SVN, Mercurial, Git (more on git later)
* Build Environments
** Finding and Installing build dependencies
*** Example: [https://wiki.mozilla.org/MozillaBuild Mozilla Build] for Windows
*** Using yum, MacPorts, etc.
** Operating systems, cross-platform builds
** Machine requirements
*** Fast I/O, lots of RAM (for linking)
** Tools
** Libraries
** Settings
*** Environment variables, PATHs
* Build Tools
** [http://www.gnu.org/software/autoconf/ autoconf]
** [http://www.gnu.org/software/make/ make]
** Common open source approaches to automation (Python, Bash)
* '''Readings/Resources'''
** [[How the Build Works|How the Mozilla Build Works]] (on-line lecture) by Mozilla's J. Paul Reed
** [http://sparc.senecacollege.ca/pub/mozilla.lecture/mozilla-20073/1-Mozilla-build-system.avi Mozilla's Build System] (on-line lecture) by the owner of the Mozilla Build System, Ted Mielczarek
** [http://hgbook.red-bean.com/read/a-tour-of-mercurial-the-basics.html Introduction to Mercurial]. The [http://hgbook.red-bean.com/ full book] is excellent to read or use as a reference, but this section is a must.
** [http://vocamus.net/dave/?p=607 Great Introduction to GCC/G++] (Brian Gough's [http://www.network-theory.co.uk/docs/gccintro/ An Introduction to GCC for the GNU Compilers gcc and g++])
** [http://www.eng.hawaii.edu/Tutor/Make/ Introduction to Make and Makefiles]
* '''TODO'''
** '''Watch''' online lectures about the Mozilla build system.
** [http://developer.mozilla.org/en/docs/Build_Documentation Build Firefox] (or [https://developer.mozilla.org/En/Developer_Guide/Source_Code/Getting_comm-central Thunderbird]) on at least one of Windows/Linux/OSX, and preferrabely two platforms. Blog about the experience:
*** What problems did you have?
*** What did you learn in the process?
*** What surprised you?
*** '''Note:''' Do not put build output in your blog. You can use your wiki pages for that. The blog should be commentary on the experience of building a large piece of open source software.