Poudriere symlinks for repos

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.

Website Pin Facebook Twitter Myspace Friendfeed Technorati del.icio.us Digg Google StumbleUpon Premium Responsive

Leave a Comment

Scroll to Top