The Handbook

    Theme
    • Guides
        • Check a system before installing FreeBSD
        • Orient a Linux administrator on FreeBSD
        • Supported FreeBSD releases
        • Choose a FreeBSD documentation and support channel
        • Move files safely without GNU mv -t
        • Update, upgrade, or update packages?
        • Upgrade 14.4 or 15.0 to FreeBSD 15.1
        • Choose packages, ports, or poudriere
        • Choose the quarterly or latest package branch
        • Choose a FreeBSD download or package mirror
        • Make a system setting persistent
        • Configure locale, keyboard, and time zone
        • Configure a serial console for recovery
        • Choose a custom kernel, module, or loader setting
        • Run a Linux binary with the compatibility layer
        • Check desktop and laptop hardware before installation
        • Choose and check a graphics driver
        • Choose Xorg or Wayland
        • Build a maintainable desktop baseline
        • Install and check a desktop browser
        • Check laptop Wi-Fi, power, and suspend
        • Check multimedia readiness
        • Choose and configure a printing stack
        • Run Windows applications with Wine
        • Snapshot and replicate a ZFS dataset
        • Choose a filesystem and storage layout
        • Operate ZFS without losing the recovery path
        • Restore files from a ZFS snapshot
        • Read ZFS pool health and run a scrub
        • Replace a failed device in a ZFS mirror
        • Replicate a ZFS dataset over SSH
        • Change PF safely on a remote host
        • Configure a narrow WireGuard tunnel
        • Plan a FreeBSD home server
        • Choose a mail server or an outgoing relay
        • Publish a network service safely
        • Choose a jail network model
        • Choose native jails or a jail manager
        • Choose a jail or a bhyve virtual machine
        • Establish a FreeBSD security baseline
        • Choose a MAC policy
        • Audit security-relevant activity
        • Start a DTrace performance investigation
    • Integrations
        • Create a first jail with Bastille
        • Compare jail managers and OCI tooling
        • Publish a Bastille service through PF
        • Mount a ZFS dataset in a Bastille jail
        • Update and upgrade Bastille jails
        • Back up and restore a Bastille jail
        • Prepare bhyve and vm-bhyve
        • Choose NFS or Samba for file sharing
        • Choose ZFS backup automation
        • Operate a signed poudriere repository
        • Manage FreeBSD configuration with Ansible or Salt
        • Run Motion with webcamd on FreeBSD
        • Design a reverse proxy, certificates, and monitoring
    • FAQ
      • Troubleshooting
          • Recover an interrupted freebsd-update run
          • Resolve a package repository or ABI mismatch
          • Diagnose the FreeBSD boot path
          • Recover with a ZFS boot environment
          • Diagnose DNS, routing, and firewall paths
          • Diagnose network mbuf exhaustion
          • Bind a service to a low port without running it as root
          • Diagnose audio output or input
          • Diagnose webcamd, cuse, and a webcam
          • Fix USB device permissions without opening every device
      • About this handbook
      • Synopsis
      • Inspect the current policy
      • Select a branch
      • Change the official ports-package repository
      • Keep ports and packages coherent
      • Review the policy over time
      • Primary references

      Choose the quarterly or latest package branch

      Last reviewed
      13 August 2026
      Applies to
      15.1-RELEASE, 15.0-RELEASE, 14.4-RELEASE

      Synopsis #

      The quarterly package branch favors predictable changes. It accepts security fixes, bug fixes, and ports-framework corrections while generally excluding feature updates. A new quarterly branch is cut in January, April, July, and October. The latest branch follows the newest packages produced from the main Ports Collection.

      Quarterly is a suitable default for hosts where change control matters more than immediate feature releases. Latest is suitable when applications or desktop hardware support require newer package versions and the additional changes can be reviewed and tested.

      The branch is a policy for the repository, not a way to upgrade one application in isolation. See packages, ports, or poudriere when only one package needs custom options or a different build policy.

      Inspect the current policy #

      Record the effective ABI, repositories, and configuration before editing anything:

      $ pkg -vv
      $ pkg repositories
      

      Inspect repository files under both /etc/pkg/ and /usr/local/etc/pkg/repos/. Local overrides belong under /usr/local/etc/pkg/repos/; do not edit the release-supplied file in /etc/pkg/.

      Also identify repositories for packaged kernel modules. Since FreeBSD 14.3, official kernel-module repositories are release- and ports-branch-specific. A graphics or other out-of-tree kernel module must remain aligned with both the running release and the chosen ports branch.

      Select a branch #

      RequirementBranch
      Fewer feature changes between maintenance windowsQuarterly
      Default policy for an ordinary release installationQuarterly
      New application or desktop versions are requiredLatest
      A tested fleet already follows the main Ports CollectionLatest
      A locally checked-out quarterly Ports tree is mixed with packagesThe matching quarterly branch

      Do not select latest merely to fix a repository or ABI error. Diagnose that error first with the package mismatch guide .

      Change the official ports-package repository #

      Create the local repository directory if necessary:

      # mkdir -p /usr/local/etc/pkg/repos
      

      To select latest, place this override in /usr/local/etc/pkg/repos/FreeBSD.conf:

      FreeBSD-ports: {
          url: "pkg+https://pkg.FreeBSD.org/${ABI}/latest"
      }
      

      To select quarterly instead, use the corresponding branch path:

      FreeBSD-ports: {
          url: "pkg+https://pkg.FreeBSD.org/${ABI}/quarterly"
      }
      

      Repository names can differ on an upgraded or locally customized installation. The key in the override must match the repository being overridden; verify it with pkg -vv rather than assuming a name from an example.

      Force a catalogue refresh, then review the complete proposed transaction:

      # pkg update -f
      # pkg upgrade -n
      

      The dry run should show the expected branch transition. Unexpected repository changes, large removals, or many unrelated downgrades require investigation before running pkg upgrade without -n.

      Keep ports and packages coherent #

      The official Handbook warns against using a main-branch Ports Collection with quarterly binary packages because dependency versions can differ. When both must be used, keep the checked-out ports branch aligned with the binary repository branch.

      For durable custom options or a fleet of hosts, build packages from a deliberately selected ports branch with poudriere and let clients use that repository. Avoid an installation that silently alternates between official and private packages.

      Review the policy over time #

      Record the selected branch with the host’s maintenance documentation. Reconsider it when:

      • a quarterly branch changes at the beginning of a calendar quarter;
      • the operating system is upgraded;
      • a private poudriere repository replaces official packages;
      • packaged kernel modules are added;
      • an application requirement forces latest.

      Changing to latest does not change the base-system release and does not replace the supported-release upgrade policy .

      Primary references #

      • FreeBSD Handbook: Quarterly and Latest Ports Branches
      • FreeBSD Handbook: kernel module repositories
      • FreeBSD Handbook: using packages with the Ports Collection
      • pkg-repositories(8)
      • pkg-upgrade(8)

      Independent documentation. Not affiliated with or endorsed by the FreeBSD Project or the FreeBSD Foundation.

      Report a bug
      • Synopsis
      • Inspect the current policy
      • Select a branch
      • Change the official ports-package repository
      • Keep ports and packages coherent
      • Review the policy over time
      • Primary references