United States (change)
Shortcuts: Downloads Fedora Red Hat Network
Issue #21 July 2006
Welcome back to our mini-series contrasting the Fedora™ Project and Red Hat® Enterprise Linux® and describing how we use these 2 distributions to meet the needs of customers and community participants.
So far, we've reviewed the goals and objectives of the Fedora Project and of Red Hat Enterprise Linux. We also examined the participants, highlighting what type of development goes into each distribution.
This article focuses on the collaborative development of Fedora Core.
Red Hat Enterprise Linux is an operating system distribution produced by Red Hat. The Fedora Project is a broad umbrella organization whose charter is to promote a wide selection of open source projects. These open source projects range from the development of new software to documentation, translation, and volunteer testing.
The Fedora Project helps build online communities with mailing lists and other forums.. The range of Fedora projects is much broader than the selection of packages that ultimately find their way into Red Hat Enterprise Linux.
In order to encourage as much participation as possible, Fedora introduced the concept of "Fedora Extras." "Extras" is a rendezvous point where interested volunteers can add their own open source software.
There are standards in place to ensure that content submitted to Extras meets basic requirements and undergoes an initial quality screening. The wide-open nature of Extras accommodates diverse content. For instance, there may be many different packages in Extras which perform similar functionality. This fosters a "may the best packages win" environment.
Red Hat Enterprise Linux does not provide multiple programs that accomplish the same task. There are many reasons for this approach in enterprise software. It is impractical to expect systems administrators to have to test multiple applications for every new deployment. There are also practical space limitations on CD images, as well as long-term support implications. Fedora extras avoids the space constraint of a CD image by not burning CDs at all; it is entirely electronically distributed.
The Fedora Project packages that are collected and distributed on CD installation media are referred to as "Fedora Core."
For Extras, almost anything can be considered--as long as it runs on Linux. A "sponsor" is required. One of the Fedora maintainers reviews the software to see that it would be interesting to at least some of the Fedora community. Additional instructions for packaging the RPM, resolving dependencies, and other basic requirements can be found at fedoraproject.org.
There are also a few things that are explictly forbidden.
The Forbidden list includes rules like:
The Fedora Core distribution is developed by aggregating 1,500 distinct packages (including applications, libraries, documentation, kernel, and management utilities) from the package's respective upstream community. Here's a few examples:
If the majority of Fedora packages are inherited from their respective upstream codebase, what development does Red Hat do in Fedora?
The communication hub for Fedora is http://fedoraproject.org/. At this site you will find descriptions of the various Fedora projects, and can download pointers and advice on how to get involved. Participation is welcome in many different capacities, such as:
Since the focus of this article is on development, let's dig deeper into how developers become more involved with Fedora. The fedoraproject.org pages detail how to participate in bug fixes. If your intention is to incorporate sizable new features into Fedora, the following section details how this is typically accomplished.
Projects suited for inclusion in Fedora Core tend to be infrastructure components which have dependencies on a large number of commonly used system utilities and services. A goal of the Fedora Core project is to continue to shrink the number of packages included in Core and relocate as many packages as possible to Extras. This is being done for practical reasons. It would allow Core to fit on a reasonable number of CDs and prevent it from consuming colossal amounts of network bandwidth to download and update.
To perform development work on a feature which has a primary upstream development site outside of Fedora, interact with the developers on that site. This way, the main development work for the respective feature is conducted in a unified community. Fedora then will inherit snapshots of this new software at regular intervals.
The majority of new Fedora feature development is not done directly within Fedora. The Fedora Project can then focus on integration work. Fedora has no intention of forking projects that have established, vibrant development teams.
Commonly, people come to us asking for new feature enhancements to Fedora. In most cases, we refer the requester to the respective upstream development crew. Once the new feature has been integrated into the upstream package (i.e. Apache), it will be included in Fedora the next time the package is rebased. "Rebase" is a term which refers to replacing the version of source code for a given package--in other words, exchanging an older version with a new version.
Fedora development is typified by frequent rebasing. The frequency of rebasing varies considerably by package. For example, during most development windows, the kernel may be rebased several times per week. Other packages may only be rebased once every 6 months. This largely depends on the rate of change in the respective upstream development pool.
If you have determined that your new feature is most appropriate for inclusion in Fedora Extras, there are guidelines describing how to get involved.
If you wish to effect change in Fedora Core packages, the first place to start is the respective upstream community of the package you wish to change. If you want to get a new packages incorporated into Fedora Core, the best place to start this discussion is on the fedora-devel-list@redhat.com mailing list. You can subscribe to this list.
The Fedora Project is the hub of Linux integration and the perfect place to iron out interaction issues among packages and get broad user testing under many types of workloads. Here are some historical examples of the kinds of projects well-suited for Fedora development:
Features well-suited for Fedora:
For example, an esoteric feature which a minority of the Fedora user base has interest in is unlikely to garner much involvement. This is particularly true when trying to get such features into Fedora Core. Recall, the objective over time is to get Core down to a smaller foundation set.
Esoteric packages are better suited for inclusion in Fedora Extras.
New full releases of Fedora Core (i.e. FC4, FC5) appear approximately every six months. The milestones are structured as follows:
After a Fedora Core distribution is released, new versions of packages are available from the yum repositories. In this context, the new packages are referred to as "updates."
Next issue: The final article in this series describes how Red Hat Enterprise Linux shares common goals with the Fedora Project. It will also tell how we tailor our Red Hat Enterprise Linux development model to meet the needs of enterprise customers.