I have some repos which are specific to certain tasks.
Every time I upgrade major version (as I just did from FreeBSD 14.3 to FreeBSD 15.0), I need to remember to go in and add in those symlinks.
I forget just about every time. I get errors like this:
# pkg upgrade -f Updating local repository catalogue... pkg: Repository local has a wrong packagesite, need to re-create database pkg: Failed to fetch https://fedex.int.unixathome.org/packages/FreeBSD:15:amd64-mysql84//meta.conf: Failed writing received data to disk/application pkg: Failed to fetch https://fedex.int.unixathome.org/packages/FreeBSD:15:amd64-mysql84//meta.txz: Failed writing received data to disk/application repository local has no meta file, using default settings pkg: Failed to fetch https://fedex.int.unixathome.org/packages/FreeBSD:15:amd64-mysql84//data.pkg: Failed writing received data to disk/application pkg: Failed to fetch https://fedex.int.unixathome.org/packages/FreeBSD:15:amd64-mysql84//data.tzst: Failed writing received data to disk/application pkg: Failed to fetch https://fedex.int.unixathome.org/packages/FreeBSD:15:amd64-mysql84//packagesite.pkg: Failed writing received data to disk/application pkg: Failed to fetch https://fedex.int.unixathome.org/packages/FreeBSD:15:amd64-mysql84//packagesite.tzst: Failed writing received data to disk/application Unable to update repository local Error updating repositories!
I usually concentrate on the “Failed writing received data to disk/application” and overlook the “Failed to fetch”.
This is me, adding those symlinks, just now:
[13:23 pkg01 dvl /usr/local/poudriere/data/packages] % ls -l total 191 drwxr-xr-x 3 root wheel 15 2025.10.16 11:57 143amd64-default/ drwxr-xr-x 3 root wheel 13 2026.01.25 15:51 143amd64-default-mysql84/ drwxr-xr-x 3 root wheel 15 2026.02.10 04:49 143amd64-default-pg16/ drwxr-xr-x 3 root wheel 15 2026.02.10 05:02 143amd64-default-pg18/ drwxr-xr-x 3 root wheel 15 2026.02.10 05:39 143amd64-default-php82/ drwxr-xr-x 3 root wheel 15 2026.02.10 04:42 143amd64-default-primary/ drwxr-xr-x 3 root wheel 13 2026.02.09 04:50 143amd64-default-python312/ drwxr-xr-x 3 root wheel 13 2026.02.10 05:54 143amd64-default-python313/ drwxr-xr-x 3 root wheel 13 2026.02.10 06:08 143amd64-default-python314/ drwxr-xr-x 3 root wheel 15 2026.02.01 14:05 143amd64-default-testing/ drwxr-xr-x 3 root wheel 15 2026.02.10 04:42 143amd64-default-unifi/ drwxr-xr-x 3 root wheel 15 2025.11.03 16:09 143amd64-default-wikis/ drwxr-xr-x 3 root wheel 15 2025.10.15 12:49 143amd64-dvl/ drwxr-xr-x 3 root wheel 15 2026.02.07 16:38 143amd64-dvl-testing/ drwxr-xr-x 3 root wheel 13 2026.02.10 06:43 150amd64-default-pg16/ drwxr-xr-x 3 root wheel 13 2026.02.10 07:00 150amd64-default-pg18/ drwxr-xr-x 3 root wheel 13 2026.02.10 07:41 150amd64-default-php82/ drwxr-xr-x 3 root wheel 13 2026.02.10 06:38 150amd64-default-primary/ drwxr-xr-x 3 root wheel 13 2026.02.09 19:25 150amd64-default-python312/ drwxr-xr-x 3 root wheel 13 2026.02.10 07:59 150amd64-default-python313/ drwxr-xr-x 3 root wheel 13 2026.02.10 08:18 150amd64-default-python314/ drwxr-xr-x 3 root wheel 13 2026.02.10 06:38 150amd64-default-unifi/ lrwxr-xr-x 1 root wheel 24 2025.09.25 17:45 FreeBSD:14:amd64 -> 143amd64-default-primary lrwxr-xr-x 1 root wheel 22 2025.11.03 12:39 FreeBSD:14:amd64-default-unifi -> 143amd64-default-unifi lrwxr-xr-x 1 root wheel 24 2026.01.25 16:38 FreeBSD:14:amd64-mysql84 -> 143amd64-default-mysql84 lrwxr-xr-x 1 root wheel 21 2025.11.03 12:40 FreeBSD:14:amd64-pg16 -> 143amd64-default-pg16 lrwxr-xr-x 1 root wheel 21 2025.11.03 12:40 FreeBSD:14:amd64-pg18 -> 143amd64-default-pg18 lrwxr-xr-x 1 root wheel 24 2025.11.03 12:40 FreeBSD:14:amd64-primary -> 143amd64-default-primary lrwxr-xr-x 1 root wheel 24 2026.02.09 16:11 FreeBSD:15:amd64 -> 150amd64-default-primary [13:23 pkg01 dvl /usr/local/poudriere/data/packages] % sudo ln -s 150amd64-default-pg16 FreeBSD:15:amd64-pg16 [13:23 pkg01 dvl /usr/local/poudriere/data/packages] % sudo ln -s 150amd64-default-pg18 FreeBSD:15:amd64-pg18 [13:23 pkg01 dvl /usr/local/poudriere/data/packages] % sudo ln -s 150amd64-default-php82 FreeBSD:15:amd64-php82 [13:24 pkg01 dvl /usr/local/poudriere/data/packages] % sudo ln -s 150amd64-default-unifi FreeBSD:15:amd64-unifi
The symlinks I added at the bottom allow me to use this within my repo URL:
[13:31 mysql02 dvl ~] % pkg repos
local: {
url : "https://fedex.int.unixathome.org/packages/FreeBSD:15:amd64/",
enabled : yes,
priority : 0,
signature_type : "PUBKEY",
pubkey : "/etc/ssl/slocum.unixathome.org.cert"
}
[13:31 mysql02 dvl ~] % grep url /usr/local/etc/pkg/repos/local.conf
url: "https://fedex.int.unixathome.org/packages/${ABI}/"
[13:32 mysql02 dvl ~] %
As you can see, I’m using the macro ${ABI}, which expands to FreeBSD:15:amd64.
However, some jails need PostgreSQL 16 and some need PostgreSQL 18 – while they can exist in the same repo, some applications, net-mgmt/nrpe in particular, must be linked against one release. Hence, my PostgreSQL-specific repos. Similar reasons exist for the other suffixes you see above.











