FreeBSD Ports

About this site

Where the data comes from

The FreeBSD project publishes an INDEX of the ports tree for each supported release at download.freebsd.org/ports/index/. Each line describes one port: package name and version, origin, one-line comment, maintainer, categories, homepage, and the packages it needs to build and to run.

Ports also come from repositories outside the official tree. Such a repository is read Makefile by Makefile, or from an INDEX of its own, and when it carries an origin the official tree has too, its port replaces the official one and the port's page says so.

cmd/portsindex reads every source in order, resolves each dependency to an origin, works out which ports depend on which, and writes two JSON files. The site generator turns each record into a page.

What it does not know

The INDEX has no commit history, so this site cannot show who changed a port and when. Dependency lists from the INDEX are recursive: a port's build dependencies include its dependencies' dependencies. A port read from its Makefile lists only the dependencies the Makefile names; those that USES= adds are not seen.

The search box asks mddb, which holds one document per port. If mddb cannot be reached, the page falls back to a plain match over the site's own search-index.json.