This is an old revision of the document!


[MarkLinimon note: this page is a couple of years stale and needs to be updated] [MarkLinimon further note: you may wish to start with this discussion on the netbsd-users mailing list]]

:!: TODO: in progress, use footnotes. Also use colors and text like VCS cmp.

Feature/subject pkgsrc (FreeBSD) ports (OpenBSD) ports mports Portage dpkg/rpm + apt
Used by OSes NetBSD, DragonflyBSD FreeBSD OpenBSD MidnightBSD Gentoo, Sabayon Ubuntu, Debian, Fedora, Redhat
Ports ✔ ✔ ✔ ✔ ✔ ✘ 1)
Packages ✔ ✔ ✔ ✔ {o} 2) ✔
Primary focus (src/bin) ? src bin ? src bin
Packages and ports integration ? {o} 3) ✔ 4) ? ? ✘
Many packages out of same port ? {o} 5) ✔ ? ✘ ?
Apps divided in many packages ✘ ✘ ✘ ✘ ✘ ✔ 6)
Self-contained packages ? ? ? ? ? ?
Building in a clean environment ✔ {o} (tinderbox/portbuild) ✔ ✔ (recently) ? ✔
PREFIX clean ✔ ✔ ✔ ✔ ✘ ✘
CFLAGS clean ✔ ✔ ✔ ✔ ✔ ✘
Compilation options framework ? ? ? ? ? ?
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 (info/agreement) ? ? ? ? ? ?

References

Symbol Descrption
✔ Fully supported
{o} Partially supported, workaround used or WIP
✘ Not supported

1)
There are source packages, which contain both the full source code of the program and local patches, and are manually compiled and uploaded by the maintainer.
2)
A Gentoo derivate called Sabayon is developing a tool called [http://en.wikipedia.org/wiki/Sabayon_Linux#Features entropy], which uses binmerge for binary packages.
3)
Some features are only supported by ports, like versioned dependencies. Also ports install directly, without generating packages.
4)
Ports create the package and then uses the package tools to install.
5)
Shared code in one port, called by a slave port which only defines the required options (requires a directory with a Makefile for each package).
6)
Packages are split in -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.
  • packagesystemsfeaturecomparison.1314859386.txt.gz
  • Last modified: 2011/09/01 06:43
  • by MarkLinimon