This is an old revision of the document!
Comparison of FreeBSD package building technologies
There are various solutions used in building multiple packages for FreeBSD. In a perfect world these would all be based on the same code as a reusable toolkit. In the meantime, here is an overall summary of what each one supports.
Project Overviews
| Project | Also Known As | Maintainer | Source Code |
|---|---|---|---|
| pointyhat | Package Building Cluster | portmgr | pointyhat repo |
| tinderbox | Ports Tinderbox, MarcusCom tinderbox | Joe Marcus Clarke | tinderbox repo |
| redports | Bernhard Froehlich | redports repo | |
| poudriere | Baptiste Daroussin | poudriere repo |
The ports tinderbox is a completely different codebase than the src tinderbox. On occasion you will hear people just refer to tinderbox. You will have to figure out from context which one they mean.
Feature Sets
| Project | cmdline? | UI? | entire tree? | partial tree? | single port? | -incremental? | distributed? | multiarch? |
|---|---|---|---|---|---|---|---|---|
| pointyhat | only | N | Y | Y | Y | Y | Y | Y |
| tinderbox | Y | web-based | Y | Y | Y | Y | N | Y |
| redports | svn | Y | N | Y | Y | Y | Y | Y |
| poudriere | only | N | N | Y | Y | Y | N | Y |
Discussion
| Project | strengths | weaknesses | comments |
|---|---|---|---|
| pointyhat | whole trees, incremental runs | fragile, hard to set up | best for building whole trees |
| tinderbox | good documentation, web-based UI, turnkey, available in ports as ports-mgmt/tinderbox | not distributed | best for individual user installations |
| redports | public service, multiuser, modern user interface, many environments | Can take a long time as the queue gets backed up. | package building uses ports tinderbox |
| poudriere | incremental, no deps (using jail,sh,zfs), easy to use, easy to run customized build. Detects OPTIONS changes. Highly tested with PKGNG. Builds packages in parallel. | Requires ZFS. | XXX |