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.
 
Back
Top