Solved Slightly outdated packages in latest FreeBSD 15.0-RELEASE

Hi all,
I’m running the latest FreeBSD release with a fresh installation using pkgbase. I’ve noticed that some of the packages seem slightly outdated compared to what I see on FreshPorts.
In FreeBSD 14.x and earlier, there used to be the distinction between quarterly and latest package branches. With pkgbase now in use, I’m wondering:
  • How can I verify that my system is actually tracking the main/latest package set?
  • Is there a recommended way to check or switch between quarterly and latest under pkgbase?
Thanks for any clarification!
 
/etc/pkg/FreeBSD.conf on a fresh install of 15-RELEASE suggests the default package repository is the 'quarterly' one. I think pkgbase gets updates the same way freebsd-update used to be in previous releases.
 
How can I verify that my system is actually tracking the main/latest package set?
All -RELEASE versions default to the quarterly packages, -STABLE and -CURRENT default to the latest repositories.

Is there a recommended way to check or switch between quarterly and latest under pkgbase?
Same as with any other version, the only difference is the 'name' of the repository. Before 15.0 it was "FreeBSD" (and "FreeBSD-kmods"), with 15.0 (and the addition of the pkgbase repositories) it changed to "FreeBSD-ports" and "FreeBSD-ports-kmods".

Code:
root@fbsd-test:~ # pkg repos
FreeBSD: {
    url             : "pkg+https://pkg.FreeBSD.org/FreeBSD:14:amd64/quarterly",
    enabled         : yes,
    priority        : 0,
    mirror_type     : "SRV",
    signature_type  : "FINGERPRINTS",
    fingerprints    : "/usr/share/keys/pkg"
  }
FreeBSD-kmods: {
    url             : "pkg+https://pkg.FreeBSD.org/FreeBSD:14:amd64/kmods_quarterly_3",
    enabled         : yes,
    priority        : 0,
    mirror_type     : "SRV",
    signature_type  : "FINGERPRINTS",
    fingerprints    : "/usr/share/keys/pkg"
  }
Code:
root@errol:~ # pkg repos
FreeBSD-ports: {
    url             : "pkg+https://pkg.FreeBSD.org/FreeBSD:15:amd64/quarterly",
    enabled         : yes,
    priority        : 0,
    mirror_type     : "SRV",
    signature_type  : "FINGERPRINTS",
    fingerprints    : "/usr/share/keys/pkg"
  }
FreeBSD-ports-kmods: {
    url             : "pkg+https://pkg.FreeBSD.org/FreeBSD:15:amd64/kmods_quarterly_0",
    enabled         : yes,
    priority        : 0,
    mirror_type     : "SRV",
    signature_type  : "FINGERPRINTS",
    fingerprints    : "/usr/share/keys/pkg"
  }
FreeBSD-base: {
    url             : "pkg+https://pkg.FreeBSD.org/FreeBSD:15:amd64/base_release_0",
    enabled         : no,
    priority        : 0,
    mirror_type     : "SRV",
    signature_type  : "FINGERPRINTS",
    fingerprints    : "/usr/share/keys/pkgbase-15"
  }

Note that quarterly packages aren't "outdated", the quarterly packages get a full refresh once every three months (hence their name) and only receive security updates during that three month period.

There is no quarterly/latest difference for the "FreeBSD-base" pkgbase repository, all -RELEASE versions only get security and/or errata updates.
 
Note that quarterly packages aren't "outdated", the quarterly packages get a full refresh once every three months (hence their name) and only receive security updates during that three month period.

There is no quarterly/latest difference for the "FreeBSD-base" pkgbase repository, all -RELEASE versions only get security and/or errata updates.
So if I understand this correctly there is no way to switch to latest pkg repo on a -RELEASE install correct? Is there any way to install a package that is on the latest repository on 15.0-RELEASE?
 
So if I understand this correctly there is no way to switch to latest pkg repo on a -RELEASE install correct?
I'm curious how you got to that conclusion.

There was and still is a way to switch from quarterly to latest. Given that you are running 15.0-RELEASE, you have the default set to use quarterly (you can verify /etc/pkg/FreeBSD.conf having what is in https://cgit.freebsd.org/src/tree/usr.sbin/pkg/FreeBSD.conf.quarterly-release?h=releng/15.0).

Running a packaged base, /usr/local/etc/pkg/repos/FreeBSD.conf does only require:
Code:
FreeBSD-base: {
    enabled: yes,
}
This is what you should have already. If you want to be cautious and you are running ZFS-on-root, create a Boot Environment (BE); if not you can save the list of all (quarterly) packages you installed yourself: pkg prime-list.

To switch from quarterly to latest, in your local user configuration file, add the following for FreeBSD-ports and FreeBSD-ports-kmods.
/usr/local/etc/pkg/repos/FreeBSD.conf * :
Code:
FreeBSD-ports: {
    url:            "pkg+https://pkg.FreeBSD.org/${ABI}/latest",
    enabled:        yes,
}
FreeBSD-ports-kmods: {
    url:            "pkg+https://pkg.FreeBSD.org/${ABI}/kmods_latest_${VERSION_MINOR}",
    enabled:        yes,
}
FreeBSD-base: {
    enabled: yes,
}

Running pkg upgrade will upgrade all the packages that have a higer version number; those are practically all packages.

If you want to further scrutinise after that, use pkg version -vRL= and examine its output, you may find a lot of "orphaned" packages that you do not longer require.

___
* Strictly speaking, you don't need enabled: yes, for FreeBSD-ports and FreeBSD-ports-kmods because they are already enabled in /etc/pkg/FreeBSD.conf, however, as /usr/local/etc/pkg/repos/FreeBSD.conf is a user maintained configuration file, I prefer to have it "immediately" in sight.

You can verify your settings after the changes with pkg-repositories(8), it should look like:
Code:
 # pkg repositories
FreeBSD-ports: {
    url             : "pkg+https://pkg.FreeBSD.org/FreeBSD:15:amd64/latest",
    enabled         : yes,
    priority        : 0,
    mirror_type     : "SRV",
    signature_type  : "FINGERPRINTS",
    fingerprints    : "/usr/share/keys/pkg"
  }
FreeBSD-ports-kmods: {
    url             : "pkg+https://pkg.FreeBSD.org/FreeBSD:15:amd64/kmods_latest_0",
    enabled         : yes,
    priority        : 0,
    mirror_type     : "SRV",
    signature_type  : "FINGERPRINTS",
    fingerprints    : "/usr/share/keys/pkg"
  }
FreeBSD-base: {
    url             : "pkg+https://pkg.FreeBSD.org/FreeBSD:15:amd64/base_release_0",
    enabled         : yes,
    priority        : 0,
    mirror_type     : "SRV",
    signature_type  : "FINGERPRINTS",
    fingerprints    : "/usr/share/keys/pkgbase-15"
  }
 
So if I understand this correctly there is no way to switch to latest pkg repo on a -RELEASE install correct?
No, that's not what I said. I said a -RELEASE version is set to the quarterly package repositories BY DEFAULT, i.e. on a freshly installed system.
Is there any way to install a package that is on the latest repository on 15.0-RELEASE?
Yes, the same way you can switch to the latest repository on all previous -RELEASE versions. You only need to keep in mind the 'label' of the repository changed, FreeBSD -> FreeBSD-ports and FreeBSD-kmods -> FreeBSD-ports-kmods.
 
  • package repo configurations (.conf files) are read from different locations, defined by REPOS_DIR, defaulted to /etc/pkg and /usr/local/etc/pkg/repos.
  • as the configuration is read from the file, the later folder overrides repo fields, i.e. /etc/pkg can set URL-A for repo-X and /usr/local/etc/pkg/repos can change it to URL-B
One can use this mechanism to change cadence of the updates:
Code:
% grep -A1 '^FreeBSD-ports:' /etc/pkg/FreeBSD.conf /usr/local/etc/pkg/repos/FreeBSD.conf 
/etc/pkg/FreeBSD.conf:FreeBSD-ports: {
/etc/pkg/FreeBSD.conf-  url: "pkg+https://pkg.FreeBSD.org/${ABI}/quarterly",
--
/usr/local/etc/pkg/repos/FreeBSD.conf:FreeBSD-ports: { url: "pkg+https://pkg.FreeBSD.org/${ABI}/latest" }
 
Back
Top