Packages, projects, releases and distributions
by Stuart Yeates on 1 August 2004 , last updated
Archived This page has been archived. Its content will not be updated. Further details of our archive policy.
Introduction
Open source software may be obtained in different forms depending at which point in the chain of development and distribution you access it. Different individuals will have a need for these differing forms. Developers need the software as source code. End users may only wish to obtain and deploy a compiled version of the source code for their platform (known as a binary). The important thing to note is that the open source licence applies to the software regardless of the version in which you obtain it.
Distributions
Distributions are sets of compatible software packages, or applications, that have been gathered together to form a complete usable system. Usually a distribution is distributed on an installation CDROM or DVD. Linux distributions tend to come with everything from the underlying operating system to an office productivity suite and even games. Examples of Linux distributions abound. Popular distributions include Ubuntu, Debian, RedHat, SuSE and Mandriva. DistroWatch tracks hundreds of Linux distributions. A distribution, of course, need not include an operating system. Indeed a very highly regarded distribution, The OpenDisc, is composed solely of open source software applications that can be installed on the Microsoft Windows operating system. Some distributions become very large. Debian and RedHat distributions each contain more than ten thousand packages each. Even remembering that many packages contain only a small amount of functionality, that’s a great deal of software.
Distributions usually reflect the fact that the software is the work of hundreds or thousands of individual projects working at their own pace. Stable distributions release relatively old, but reliable, versions of packages which are known to work together. Unstable distributions release relatively new, but not necessarily unreliable, versions of packages which have had some testing but are likely to have minor issues, particularly interacting with software from other packages. Generally, stable distributions are recommended for servers and end-user desktops and unstable distributions are recommended for developer and advanced user desktops.
Releases
Releases are numbered (and possibly named) versions of packages taken from the version control system and tested for deployment. Released versions can be expected to work reliably. The release number gives an indication of what stage the developers believe they have reached. Usually a release number of 1.0 or above marks software that is fit for purpose. For example, Mozilla Firefox is at release 1.5 and OpenOffice is currently at release 1.1.5 for a stable version and 2.0.3 for an unstable version. Since open source projects tend to create numerous incremental releases, it is usually safe to wait until major changes have been added, often marked by an even number release. The exception here is when a release is triggered by a security update. The latest stable release will lag behind the bleeding edge too much for some people who prefer to get the packages directly from the version control system, but such versions of the software are usually, almost by definition, in need of further development. Users unwilling to deal with such failures should use the stable releases.
Packages
Packages are self-contained software units produced by projects. Often a project will have several packages, one containing software libraries, another containing programs, and others containing fonts, sample files and graphics. The most successful packages are tightly focused on performing a narrow task (for example displaying a single type of image) very well. This allows them to be easily and simply used and built upon by other packages. Such small and well defined packages are also much easier to test after changes have been made.
Version control systems
A version control system is an automated system that tracks who makes changes to the software, when and why. The version control system maintains the current version of the software which is then packaged into releases.
Projects
The above sections all describe points along the chain of development and distribution of open source software. That chain is governed by the project itself.
Projects usually consist of self-organised groups of people who write software with a particular theme. A project usually has at least a minimal website, often a mailing list to coordinate work, and always some form of version control system.
Where you choose to source your open source software will depend on your particular needs and interests. To learn more about how the software is developed and is continuing to develop there is no better place to go than to the project itself.
Further reading
Links:
- DistroWatch [http://distrowatch.com/]
- The OpenDisc [http://theopendisc.com/about/]
- Ubuntu [http://www.ubuntu.com/]
- Debian [http://www.debian.org/]
- RedHat [http://www.redhat.com/]
- SuSE [http://www.novell.com/linux/suse/]
- Mandriva [http://wwwnew.mandriva.com/]
- OpenOffice [http://www.openoffice.org/]
- Mozilla Firefox [http://www.mozilla.com/firefox/]
Related Information from OSS Watch: