| Feature | pkgsrc | FreeBSD Ports | OpenBSD Ports | mports | Gentoo Portage | dpkg/rpm + apt |
|---|---|---|---|---|---|---|
| Used by | NetBSD, DragonflyBSD | FreeBSD | OpenBSD | MidnightBSD | Gentoo, Sabayon | Ubuntu, Debian, Fedora, Redhat |
| Source-based | ✔ | ✔ | ✔ | ✔ | ✔ | ✘ 1) |
| Binary Packages | ✔ | ✔ | ✔ | ✔ | {o} 2) | ✔ |
| Primary Focus | ? | src | bin | ? | src | bin |
| Packages and ports integration | ? | {o} 3) | ✔ 4) | ? | ? | ✘ |
| “One to Many” Packages | ? | ✔ 5) | ✔ | ? | ✘ | ? |
| “Sub” Packages | ✘ | ✘ | ✘ | ✘ | ✘ | ✔ 6) |
| Self-contained packages | ? | ? | ? | ? | ? | ? |
| Isolated Builds | ✔ | ✔ (Poudriere) | ✔ | ✔ (recently) | ? | ✔ |
PREFIX clean | ✔ | ✔ | ✔ | ✔ | ✘ | ✘ |
CFLAGS clean | ✔ | ✔ | ✔ | ✔ | ✔ | ✘ |
| Customizable | ? | ? | ? | ? | ? | ? |
| Rerrolled distfiles support | ? | ? | ? | ? | ? | ? |
| Differential updates (deltas) | ? | ? | ? | ? | ? | ? |
MASTER_SITE priority/sorting | ? | ? | ? | ? | ? | ? |
| Hack collection / porting scripts | ? | ? | ? | ? | ? | ? |
| Parallel building | ? | ? | ? | ? | ? | ? |
| Multiple versions of the same app | {o} (dirs) | {o} (dirs) | ? | {o} (dirs) | ✔ (*.ebuild) | {o} (branches) |
| Multiple coexisting versions of the same app (symlink/wrapper) | ? | ? | ? | ? | ? | ? |
| Virtual ports/packages | ? | ✘ | ? | ? | ✔ | ✔ |
| Config files updating tool | ? | ? | ? | ? | ? | ? |
| Startup scripts management tool | ? | ? | ? | ? | ? | ? |
| Automatic restart of daemons | ? | ? | ? | ? | ? | ? |
| Automatic packaging list | ? | ? | ? | ? | ? | ? |
| Automatic management of users/groups | ? | ? | ? | ? | ? | ? |
| Initial configuration and integration of apps | ? | ? | ? | ? | ? | ? |
| License Framework | ? | ? | ? | ? | ? | ? |
| Track moved ports | ✘ | ✔ | ? | ? | ? | ? |
References
| Symbol | Description |
|---|---|
| ✔ | Fully supported |
| {o} | Partially supported, workaround used or WIP |
| ✘ | Not supported |
PackageSystemsComparison for a more general discussion.
MarkLinimon: If updating, you may wish to start with this netbsd-users mailing list: NetBSD vs FreeBSD thread
binmerge for binary packages.-doc, -dev, -common, -data, etc. The good point is that packages which don't depend on the architecture are built only once, runtime dependencies don't require headers, and documentation is optional. However to build anything you need all the -dev versions.