---
title: Chapter 16. Keeping Up
prev: books/porters-handbook/order
next: books/porters-handbook/uses
description: How to keep up the FreeBSD Ports Collection
tags: ["keeping up", "ports", "updating", "FreshPorts"]
showBookMenu: true
weight: 16
params:
  path: "/books/porters-handbook/keeping-up/"
---

[[keeping-up]]
= Keeping Up
:doctype: book
:toc: macro
:toclevels: 1
:icons: font
:sectnums:
:sectnumlevels: 6
:sectnumoffset: 16
:partnums:
:source-highlighter: rouge
:experimental:
:images-path: books/porters-handbook/

ifdef::env-beastie[]
ifdef::backend-html5[]
:imagesdir: ../../../../images/{images-path}
endif::[]
ifndef::book[]
include::shared/authors.adoc[]
include::shared/mirrors.adoc[]
include::shared/releases.adoc[]
include::shared/attributes/attributes-{{% lang %}}.adoc[]
include::shared/{{% lang %}}/teams.adoc[]
include::shared/{{% lang %}}/mailing-lists.adoc[]
include::shared/{{% lang %}}/urls.adoc[]
toc::[]
endif::[]
ifdef::backend-pdf,backend-epub3[]
include::../../../../../shared/asciidoctor.adoc[]
endif::[]
endif::[]

ifndef::env-beastie[]
toc::[]
include::../../../../../shared/asciidoctor.adoc[]
endif::[]

The FreeBSD Ports Collection is constantly changing.
Here is some information on how to keep up.

[[freshports]]
== FreshPorts

One of the easiest ways to learn about updates that have already been committed is by subscribing to https://www.FreshPorts.org/[FreshPorts].
Multiple ports can be monitored.
Maintainers are strongly encouraged to subscribe, because they will receive notification of not only their own changes, but also any changes that any other FreeBSD committer has made.
(These are often necessary to keep up with changes in the underlying ports framework-although it would be most polite to receive an advance heads-up from those committing such changes, sometimes this is overlooked or impractical.
Also, in some cases, the changes are very minor in nature.
We expect everyone to use their best judgement in these cases.)

To use FreshPorts, an account is required.
Those with registered email addresses at `@FreeBSD.org` will see the opt-in link on the right-hand side of the web pages.
Those who already have a FreshPorts account but are not using a `@FreeBSD.org` email address can change the email to `@FreeBSD.org`, subscribe, then change it back again.

FreshPorts also has a sanity test feature which automatically tests each commit to the FreeBSD ports tree.
If subscribed to this service, a committer will receive notifications of any errors which FreshPorts detects during sanity testing of their commits.

[[cgit]]
== The Web Interface to the Source Repository

It is possible to browse the files in the source repository by using a web interface.
Changes that affect the entire port system are now documented in the https://cgit.FreeBSD.org/ports/tree/CHANGES[CHANGES] file.
Changes that affect individual ports are now documented in the https://cgit.FreeBSD.org/ports/tree/UPDATING[UPDATING] file.
However, the definitive answer to any question is undoubtedly to read the source code of https://cgit.FreeBSD.org/ports/tree/Mk/bsd.port.mk[bsd.port.mk], and associated files.

[[ports-mailing-list]]
== The FreeBSD Ports Mailing List

As a ports maintainer, consider subscribing to {freebsd-ports}.
Important changes to the way ports work will be announced there, and then committed to [.filename]#CHANGES#.

If the volume of messages on this mailing list is too high, consider following {freebsd-ports-announce} which contains only announcements.

[[build-cluster]]
== The FreeBSD Port Building Cluster

One of the least-publicized strengths of FreeBSD is that an entire cluster of machines is dedicated to continually building the Ports Collection, for each of the major OS releases and for each Tier-1 architecture.

Individual ports are built unless they are specifically marked with `IGNORE`.
Ports that are marked with `BROKEN` will still be attempted, to see if the underlying problem has been resolved.
(This is done by passing `TRYBROKEN` to the port's [.filename]#Makefile#.)

[[distfile-survey]]
== Portscout: the FreeBSD Ports Distfile Scanner

The build cluster is dedicated to building the latest release of each port with distfiles that have already been fetched.
However, as the Internet continually changes, distfiles can quickly go missing.
https://portscout.FreeBSD.org/[Portscout], the FreeBSD Ports distfile scanner, attempts to query every download site for every port to find out if each distfile is still available.
Portscout can generate HTML reports and send emails about newly available ports to those who request them.
Unless not otherwise subscribed, maintainers are asked to check periodically for changes, either by hand or using the RSS feed.

Portscout's first page gives the email address of the port maintainer, the number of ports the maintainer is responsible for, the number of those ports with new distfiles, and the percentage of those ports that are out-of-date.
The search function allows for searching by email address for a specific maintainer, and for selecting whether only out-of-date ports are shown.

Upon clicking on a maintainer's email address, a list of all of their ports is displayed, along with port category, current version number, whether or not there is a new version, when the port was last updated, and finally when it was last checked.
A search function on this page allows the user to search for a specific port.

Clicking on a port name in the list displays the https://freshports.org/[FreshPorts] port information.

Additional documentation is available in the https://github.com/freebsd/portscout/[Portscout repository].
