Jul 20, 2023

Manage your ports without external databases or languages

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

Checkout these related ports:
  • Wanted-ports - Just depend on a configurable, arbitrary set of other ports
  • Synth - Custom package repository builder for FreeBSD and DragonFly
  • Submodules2tuple - GH_TUPLE generator for GitHub projects with submodules
  • Sccache-overlay - Ports overlay for sccache
  • Reprise - Port testing system
  • Rc-subr-jail - Shell library to help writing RC scripts with jail support
  • Py-skog - Generate visual dependency trees for FreeBSD ports
  • Py-pytoport - Generate FreeBSD ports from Python modules on PyPI
  • Py-freebsd-ports - Parse FreeBSD Ports INDEX, provide search API
  • Psearch - Utility for searching the FreeBSD Ports Collection
  • Poudriere - Port build and test system
  • Poudriere-devel - Port build and test system
  • Portupgrade - FreeBSD ports/packages administration and management tool suite
  • Portupgrade-devel - FreeBSD ports/packages management tool (devel version)
  • Portupdate-scan - Display pertinent parts of {PORTSDIR}/UPDATING