Differences between pkg.freebsd.org release_N repositories, e.g. release_5 vs quarterly

Hello,

I am trying to understand the intended meaning and use of the release_N package repositories under pkg.freebsd.org.

For example, for FreeBSD 13 amd64 there are, among others:


Both folders contain packagesite.pkg files containing all the pacakges metadata information.

The distinction between latest and quarterly is documented: if I understood it correctly latest follows the current ports tree more closely, while quarterly follows the quarterly ports branch and does not include new features but fixes and important security updates.

What I have not found clearly documented is the role of the release_N directories.

In the FreeBSD 13 example, my assumption is that:

release_5 = package repository corresponding to FreeBSD 13.5-RELEASE

and more generally:
release_0 = 13.0-RELEASE
release_1 = 13.1-RELEASE
...
release_5 = 13.5-RELEASE

Is that correct?

I would also like to understand the intended use case. Are these release_N repositories meant as release-time package snapshots, mainly useful for reproducing the package set available around a specific FreeBSD RELEASE? Or are they intended to be used as normal repositories for systems running that release?

For example, can a system or jail be configured explicitly to use:


instead of:


in /usr/local/etc/pkg/repos/FreeBSD.conf?

Something like:

FreeBSD: {
url: "pkg+https://pkg.freebsd.org/FreeBSD:13:amd64/release_5",
mirror_type: "srv",
signature_type: "fingerprints",
fingerprints: "/usr/share/keys/pkg",
enabled: yes
}
 
M.E. as far as I know the:
  • latest
  • quarterly
  • release_N
Refer to the ports (13+) / kmods (in 14+, prefixed with kmods_) based binary packages. Where the N matches the minor of each major release. I.e. latest and quarterly are compiled using the stable/MAJOR branch (for freebsd/src) and release_N is compiled against the releng branch of that major branch (freebsd/src). (source: https://docs.freebsd.org/en/books/handbook/ports/#quarterly-latest-branch)

Starting with 14, you will also have:
  • base_latest
  • base_weekly
  • base_release_N
Where it refers to the binary packages for the base FreeBSD system. Where base_latest and base_weekly are for packages tracking stable/MAJOR built twice a day (base_latest) or weekly on sunday (base_weekly) and base_release_N for packages built against (releng/MAJOR.MINOR). (source: https://docs.freebsd.org/en/books/handbook/cutting-edge/#_upgrading_a_host_using_freebsd_base )

Edit: Updated with clarification about 13 kmods repo. Thanks SirDice
 
M.E. as far as I know the:
  • latest
  • quarterly
  • release_N
Refer to the ports (13+) / kmods (in 14+, prefixed with kmods_) based binary packages. Where the N matches the minor of each major release. I.e. latest and quarterly are compiled using the stable/MAJOR branch (for freebsd/src) and release_N is compiled against the releng branch of that major branch (freebsd/src). (source: https://docs.freebsd.org/en/books/handbook/ports/#quarterly-latest-branch)

Starting with 14, you will also have:
  • base_latest
  • base_weekly
  • base_release_N
Where it refers to the binary packages for the base FreeBSD system. Where base_latest and base_weekly are for packages tracking stable/MAJOR built twice a day (base_latest) or weekly on sunday (base_weekly) and base_release_N for packages built against (releng/MAJOR.MINOR). (source: https://docs.freebsd.org/en/books/handbook/cutting-edge/#_upgrading_a_host_using_freebsd_base )

Edit: Updated with clarification about 13 kmods repo. Thanks SirDice

So there are two branches:

1. stable/MAJOR branch (latest / quarterly)
2. releng branch (release_N)

just for the shake of simplicity lets stay on FreeBSD13 and we ignore the kmods beginning in FreeBSD14.

1. what are the differences between both branches?
2. when one or the other shall be used?
3. And, is it possible to use release_N as pkg source?
 
I think it all depends on your risk calculation, the official explanation is:

4.4.2. Quarterly and Latest Ports Branches​

The Quarterly branch provides users with a more predictable and stable experience for port and package installation and upgrades.This is done essentially by only allowing non-feature updates.Quarterly branches aim to receive security fixes (that may be version updates, or backports of commits), bug fixes and ports compliance or framework changes.The Quarterly branch is cut from HEAD at the beginning of every (yearly) quarter in January, April, July, and October.Branches are named according to the year (YYYY) and quarter (Q1-4) they are created in.For example, the quarterly branch created in January 2023, is named 2023Q1.And the Latest branch provides the latest versions of the packages to the users.

My own risk calculation allows me to be on stable/15 but not on current (i.e. 16). releng/14.4 and releng/15.x is doable for me but lower than that my hardware has issues.
You may have different priorities.

As for 13, the currently supported versions are 15.0 (soon 15.1), 14.4 and 14.3 (see: https://www.freebsd.org/security/#sup )
I don't know for how long are ports supposed to be built for non supported versions of FreeBSD.
 
So there are two branches:

1. stable/MAJOR branch (latest / quarterly)
2. releng branch (release_N)

just for the shake of simplicity lets stay on FreeBSD13 and we ignore the kmods beginning in FreeBSD14.

1. what are the differences between both branches?
2. when one or the other shall be used?
3. And, is it possible to use release_N as pkg source?
There are 2 supported branches for ports. latest and quarterly.

latest is the main (master) branch for cutting edge, development.

quarterly are branched from latest per every quarter and only the latest one (2026Q2 at Jun.12, 2026) is supported and gets build fixes and runtime fixes broken by base FreeBSD upgrades and security fixes only.

And as far as I know, release_N are created specifically to be included in FreeBSD-(major).(minor)-RELEASE-(arch)-discdvd1.iso{.xz} release images and never gets updates.
No images other than *-discdvd1.iso* contains pre-built pkgs.

For *-RELEASE, pkg are defaulted to quarterly, while stable/* and main (aka *-CURRENT) default to latest. This is because users of stable/* and main are expected to be developers, porters or early adopters.

Edit: dvd1, not disc1.
 
There are 2 supported branches for ports. latest and quarterly.

latest is the main (master) branch for cutting edge, development.

quarterly are branched from latest per every quarter and only the latest one (2026Q2 at Jun.12, 2026) is supported and gets build fixes and runtime fixes broken by base FreeBSD upgrades and security fixes only.

And as far as I know, release_N are created specifically to be included in FreeBSD-(major).(minor)-RELEASE-(arch)-disc1.iso{.xz} release images and never gets updates.
No images other than *-disc1.iso* contains pre-built pkgs.

For *-RELEASE, pkg are defaulted to quarterly, while stable/* and main (aka *-CURRENT) default to latest. This is because users of stable/* and main are expected to be developers, porters or early adopters.
pkg.freebsd.org contains:

- latest (with a packagesite.pkg with around 35000 packages ~150Gb).
- quarterly (with a packagesite.pkg with around 35000 packages ~150Gb).
- release_N folders (with a similar but not identical packagesite.pkg, also with around 35000 packages ~150Gb)

the explanations and documentation focus on latest/quarterly, yet they do not explain why there is a packagesite.pkg in release_n folders,

surely there is a reason and a use case, and that is what i would like to understand

If the purpose of release_n is just to provide packages for the dvd iso, why 150Gb and the whole 35000 packages set?
 
Other images; cd1, (mini)-memstick, bootonly, don't contain packages. You can pick packages to install at some point in the installer, but as far as I know those come from the default repositories ('quarterly' on -RELEASE and 'latest' on -STABLE and -CURRENT).
 
Back
Top