software you are fixing.
From a high level, the process is easy to understand. Here are the steps:
- Find a problem (a software bug).
- Download the source code.
- Fix the problem.
- Test the fix on your local machine.
- Commit the changes.
- Request that your changes be merged into the main source.
Finding problems to fix is something you learn with time and experience. The
next section, “Finding Bugs to Fix with Harvest,” can help you. Other places
to look, if you aren’t fixing an issue you discovered yourself, are in Ubuntu
mailing lists, Launchpad bug reports, and community gathering places such as
the Ubuntu Forums or AskUbuntu.
Before you do any work on a bug, do an extensive search to make sure it has
not already been fixed and that someone else is not already working on the
bug. You should obviously look in Launchpad, in the section for the specific
package. You can also check the upstream and/or Debian bug trackers for
open and closed bugs and the upstream revision history or newer release(s).
When you know of a bug you want to fix, download the source code from the
Ubuntu software repositories. Find out which file contains the code you want
to work on. The example in this section uses an imaginary application,
matthewsapp. In all the examples that follow, replace matthewsapp
with the name of the program or application that you want to work on. Say
that you know that the matthewsapp binary is located at
/usr/bin/matthewsapp. To find the Ubuntu package that contains
matthewsapp, enter the following:
Click here to view code image
matthew@seymour:~$ apt-file find /usr/bin/matthewsapp
This returns output something like the following:
Click here to view code image
matthewsapp: /usr/bin/matthewsapp
You can also use apt-cache to learn the source package for a binary
package. Sometimes source packages have the same name as their resulting
binary packages, and sometimes they do not. Here are two examples:
Click here to view code image