This script uses the existing ports infrastructure to track dependencies, and keep them up to date. It is written in /bin/sh so it has no dependencies. Portmaster has the following features: * Updates and repairs (as needed) entries for dependencies in both +CONTENTS and +REQUIRED_BY files for both the port that is being updated, and any ports that depend on it * Runs make config recursively through all ports before starting build * Downloads distfiles in the background * Recursively checks and upgrades (or installs) all dependencies * User can force upgrades of all dependent ports * Offers the user the opportunity to delete stale distfiles * Supports ports/MOVED and non-default settings of PORTSDIR and PKG_DBDIR * Interactive update mode (prompts for each update) * Option to rebuild port, and ports that depend on it * Options to make packages out of installed, and new ports * Option to clean out stale port dependencies * Options to list installed ports by category, and those with new versions * Packages can be used for installation either exclusively, if available, or only for build dependencies