Giving Back to Fedora

Giving Back to Fedora

Contributing to the open-source community is the best way to ensure that Linux, in general, and Fedora, in particular, will continue to improve and grow in the future. Even if you are not a kernel hacker, or a software developer at all, there are plenty of other ways you can contribute.

Finding Bugs and Filing Reports

The easiest way that anyone using Fedora can help improve it is to report problems. As you use Fedora, you will certainly bump into things that don't exactly work right. Using a facility called Bugzilla, which is maintained by Red Hat, Inc., for the Fedora Project, you can:

  • Search-You can search the Bugzilla database to see if anyone has encountered the same problem you have. If someone has, there may already be a workaround or software fix available to overcome the problem. If you can't find the exact bug you encountered in the database, you might also want to check a Fedora mailing list on the topic to see if the problem has been encountered, before you file a bug report. To search Bugzilla, go to the Red Hat Bugzilla site ( and enter a search term.

  • Report-If you feel that the bug has not been reported yet, you can enter a Bugzilla report into the database. When you do, make sure that you have as many details available about the problem as possible before you enter the report.

    To enter a bug report, you need to give a valid e-mail address and password. To get an account, or just log in to enter a bug report, go to the following web address:

    Once you log in, check the frequently reported bug list and check the latest errata updates to see if your bug has already been dealt with. Then select Fedora Core to enter a new bug report by selecting the component (software package), severity, platform, priority, summary, description, and other information about the bug.


    If you have never entered a bug report before, click the bug writing guidelines link from the Enter New Bug page. Those guidelines will give you good advice on how to pass on the most important information about your bug to help the developers reproduce and fix the problem.

  • Fix-If you believe that you have a code fix or other solution to the problem, it's a good idea to submit that fix along with the bug report. Red Hat, Inc., recommends that most fixes be delivered in the form of unified diffs (so the maintainer can see exactly what code changes you are suggesting).

    After you have entered the bug report, you are given an opportunity to attach a patch or other text to the bug report. Select Create an Attachment and enter the filename of your patch (and a brief summary description) along with the attachment.

I can't stress enough how important it is to enter bug reports to get important fixes done. When a package maintainer goes through the list of fixes needed to a software package, a report entered into Bugzilla will carry a lot more weight than ranting in a mailing list or just firing off e-mails to the maintainer. Bug reports make for orderly fixes.

Joining Fedora Projects

The Fedora Project website already lists a variety of software projects you can become involved with. Signing on to one of the Fedora mailing lists (described earlier in this chapter) is a great way to connect up with the people at Red Hat, Inc., who are running the ongoing Fedora projects.

Some of the best features of Red Hat Linux that have made their transition over to Fedora are the Red Hat installation program, the graphically oriented redhat-config tools (called system-config in Fedora Core 2), and the Red Hat desktop. Current projects being sponsored by Red Hat as part of the Fedora Project that include these features are:

  • Red Hat Installation Program (Anaconda)-Its installation program named Anaconda, with both graphical and text-based versions, has been one of the strong points of Red Hat Linux for the past few years. Anaconda also includes a kick-start feature that lets someone installing Fedora preconfigure installation selections so that the install can be done with little or no live input. Anaconda is written in Python.

    Currently, the Fedora Project is asking for bug reports and requests for enhancements for Anaconda. If you are interested in contributing to this project, I recommend that you join the anaconda-devel-list and/or kickstart-list mailing lists to see how you can become involved.

  • Configuration Tools-Red Hat's own home-grown graphical configuration tools (many of which also have text-based interfaces) have made great strides in recent Red Hat Linux (and now Fedora) releases toward simplifying Linux system administration. These let you configure your network, file sharing, video cards, printers, and many other features.

    While I count about 40 Red Hat configuration tools, there is still room to simplify many other administrative features. The Fedora Configuration Tools Project is recommending a list of features that could benefit from a GUI. These include GUI tools for partitioning your disks, scheduling tasks, configuring more refined firewalls, and setting up boot servers (such as DHCP and NIS).

    To find out how you can contribute to the Configuration Tools Project, you can start by joining the fedora-config-list mailing list.

  • Desktop Project-Red Hat brought the concept of a standard look-and-feel across the two major desktop environments (GNOME and KDE) to Fedora in the form of the Fedora Desktop Project. The standard Red Hat look-and-feel is referred to as Blue Curve. Particular areas where Red Hat is looking for input related to the Desktop Project is in the area of creating desktop themes, creating splash screens, and choosing which applications are set up as defaults.

If you are fond of writing, or have enough insight into a feature that you could write a tutorial on it, the Fedora Docs Project is looking for contributors. As noted earlier, you could join the fedora-docs-list mailing list to find out more. There is also an ongoing effort to find people to translate Fedora into different languages. The fedora-trans-list mailing list is a good way to get further information.

 Python   SQL   Java   php   Perl 
 game development   web development   internet   *nix   graphics   hardware 
 telecommunications   C++ 
 Flash   Active Directory   Windows