39632 2012-10-01 11:56:00Z gabor $
This paper describes the approach used by the FreeBSD ports management team to produce a high quality package set suitable for official FreeBSD release media. This document is a work in progress, but eventually it will cover the process used to build a clean package set on the FreeBSD.org “Ports Cluster”, how to configure any other set of machines as a ports cluster, how to split up the packages for the release media, and how to verify that a package set is consistent.
The FreeBSD Ports collection
is a collection of over 24,000 third-party software packages available for FreeBSD. The
Ports Management Team
<portmgr@FreeBSD.org> is responsible for
maintaining a consistent ports tree that can be used to create the binary packages that
accompany a given FreeBSD release.
In order to provide a consistent set of third-party packages for FreeBSD releases, every port is built in a separate chroot environment, starting with an empty /usr/local and /usr/X11R6. The requisite dependencies are installed as packages before the build proceeds. This enforces consistency in the package build process. By starting the package build in a pristine environment, we can assure that the package metadata (such as required dependencies) is accurate. This way, we will never generate packages that might work on some systems and not on others depending on what software was previously installed.
The “Ports Cluster” for the x86 architecture currently consists of a master node (Dual Pentium® III 733MHz) and 8 slave nodes (Pentium III 800MHz) to do the actual package builds. With this configuration, a complete package build takes over 24 hours. These machines are co-located with the other FreeBSD Project equipment at Yahoo's corner of Exodus in Santa Clara, CA.
The “Ports Cluster” for the Alpha architecture consists of 7 PWS 500A machines donated by Compaq and also co-located with Yahoo's facilities.
|The Package Split|