COMP8440: Lab2 - choice of 5
The aim of this lab is similar to the previous 'a2ps' lab, but you
will have a choice of 5 projects to investigate. The idea is to expose
you to a wider range of common FOSS project ideas.
The 5 projects are:
- FreeCIV
- gedit
- Battle for Wesnoth
- Stellarium
- OpenOffice.org
The level of difficulty in building these projects varies quite a
lot. As a rough guide, the above list is approximately in order of
difficulty, with FreeCIV being the easiest and OpenOffice.org the
hardest. In order to maximize exposure of each students to as many
projects as possible, when a student runs into difficulties we will
often display their screen on the projector so we can discuss the
problem as a class, and try to come to a solution together.
The level of difficulty is also heavily dependent on what method you
use to fetch the source code. If you are very inexperienced with
building FOSS packages, then the easiest approach will be to use the
package manager to download the sources. If you are more experienced,
then you should try to build the project using the latest development
version (downloaded using a source code management system).
Helping other students
Cooperation between developers is one of the cornerstones of FOSS
development. So please help out your fellow students if they are stuck
and you know what the problem is. If you think the problem is of wider
interest, then ask Bob or Andrew to display the students screen on the
projector.
Faster download
Some of the above project are very large, and downloading the source
code using a SCMS may take too long for this lab. For that reason we
have put a snapshot of some of the project trees in
/comp8440/sources. See the build tips page for more information.
Things to think about
Here are some things to work out about the project you are building
- How active is development? How many people have contributed
changes in the last year?
- What method does the project use to customise itself to your
system?
- How is the documentation for the project written?
- How does the project handle releases? Does it use branches?
- How does the project fit in with other projects? What does it
depend on?
- How do the developers for the project communicate?
- How do you submit changes to the project?