Chapter 8. Sub-projects

Table of Contents
8.1. The Ports Subproject
8.2. The FreeBSD Documentation Project

Sub-projects are formed to reduce the amount of communication needed to coordinate the group of developers. When a problem area is sufficiently isolated, most communication would be within the group focusing on the problem, requiring less communication with the groups they communicate with than were the group not isolated.

8.1. The Ports Subproject

A port is a set of meta-data and patches that are needed to fetch, compile and install correctly an external piece of software on a FreeBSD system. The amount of ports has grown at a tremendous rate, as shown by the following figure.

Figure 8.1. Number of ports added between 1996 and 2008
Refer to tables below for a screen-reader friendly version.


Figure 8.1, “Number of ports added between 1996 and 2008” shows the number of ports available to FreeBSD in the period 1995 to 2008. It looks like the curve has first grown exponentially, and then from the middle of 2001 to the middle of 2007 grown linearly at a rate of about 2000 ports/year, before its growth rate gets lower.

Approximate dates each multiple of 1000 ports is reached

Number of portsApproximate date
1000Late 1997
2000Late 1998
3000Early 2000
4000Late 2000
5000Mid 2001
60004th quarter of 2001
7000Mid 2002
80004th quarter of 2002
9000Mid 2003
10000End of 2003
11000Mid 2004
12000End of 2004
13000Mid 2005
14000Early 2006
15000Mid 2006
160003rd quarter 2006
170002nd quarter 2007

Approximate number of ports at the start of each year

YearApproximate number of ports
1995100
1996300
1997700
19981200
19992000
20002900
20014300
20026200
20038100
200410050
200512100
200614000
200716200
200817900

As the external software described by the port often is under continued development, the amount of work required to maintain the ports is already large, and increasing. This has led to the ports part of the FreeBSD project gaining a more empowered structure, and is more and more becoming a sub-project of the FreeBSD project.

Ports has its own core team with the Ports Manager as its leader, and this team can appoint committers without FreeBSD Core's approval. Unlike in the FreeBSD Project, where a lot of maintenance frequently is rewarded with a commit bit, the ports sub-project contains many active maintainers that are not committers.

Unlike the main project, the ports tree is not branched. Every release of FreeBSD follows the current ports collection and has thus available updated information on where to find programs and how to build them. This, however, means that a port that makes dependencies on the system may need to have variations depending on what version of FreeBSD it runs on.

With an unbranched ports repository it is not possible to guarantee that any port will run on anything other than -CURRENT and -STABLE, in particular older, minor releases. There is neither the infrastructure nor volunteer time needed to guarantee this.

For efficiency of communication, teams depending on Ports, such as the release engineering team, have their own ports liaisons.

All FreeBSD documents are available for download at https://download.freebsd.org/ftp/doc/

Questions that are not answered by the documentation may be sent to <freebsd-questions@FreeBSD.org>.
Send questions about this document to <freebsd-doc@FreeBSD.org>.