Deploying freshports-www-2.16.1

freshports-www-2.16.1 requires some database changes. This post outlines the updates on one host.

Since starting this post, there’s been a few updates, and now I’m deploying 2.16.2.6

This post was composed and amended over several upgrades. The inconsistencies you see in hostnames and prompts are related to that.

Stop processing

[14:59 stage-ingress01 dvl ~] % sudo service freshports stop     
Stopping freshports.
Waiting for PIDS: 26340.

[17:18 stage-ingress01 dvl ~] % sudo service ingress stop                                                   
Stopping ingress.
Waiting for PIDS: 73998.
[17:18 stage-ingress01 dvl ~] % 

Add the new ports.pkgversion column

[14:52 pg01 dvl ~/src/freshports-database-schema] % psql freshports.stage
psql (18.6)
Type "help" for help.

freshports.stage=# begin;
BEGIN
freshports.stage=*# \i updates-2026-09-28-pkgversion.ddl
ALTER TABLE
COMMENT
freshports.stage=*# commit;
COMMIT
freshports.stage=# 

DO NOT RUN

The previous notes to run updates-2026-09-15-extract-patch-depends-swap.ddl are incorrect.

It is no longer needed.

Package updates

On both the ingress and the nginx nodes, run pkg upgrade.

I’ve run pkg upgrade twice:

[11:15 x8dtu-ingress01 dvl ~] % sudo pkg upgrade
Updating FreeBSD-base repository catalogue...
FreeBSD-base repository is up to date.
Updating local repository catalogue...
[x8dtu-ingress01.vpn.unixathome.org] Fetching meta.conf: 100%     168 B   0.2 kB/s    00:01    
[x8dtu-ingress01.vpn.unixathome.org] Fetching data: 100%   363 KiB 371.8 kB/s    00:01    
Processing entries: 100%
local repository update completed. 1213 packages processed.
All repositories are up to date.
Checking for upgrades (25 candidates): 100%
Processing candidates (25 candidates): 100%
The following 28 package(s) will be affected (of 0 checked):

New packages to be INSTALLED:
	freshports-daemon-freshports: 2.0.16 [local]
	freshports-daemon-ingress: 2.0.4_15 [local]
	p5-freshports-ingress-modules: 2.3.1 [local]
	p5-freshports-ingress-scripts: 2.3.0.3 [local]

Installed packages to be UPGRADED:
	bind-tools: 9.20.27 -> 9.20.29 [local]
	ca_root_nss: 3.129 -> 3.131 [local]
	expat: 2.8.5 -> 2.9.0 [local]
	git-lite: 2.55.0 -> 2.56.0 [local]
	groff: 1.24.1_1 -> 1.24.2 [local]
	nagios-plugins: 2.4.4_1,1 -> 2.4.4_2,1 [local]
	openldap26-client: 2.6.15 -> 2.6.15_1 [local]
	p5-DBI: 1.654 -> 1.655 [local]
	p5-Email-Sender: 2.601 -> 2.603 [local]
	p5-HTTP-Cookies: 6.11 -> 6.12 [local]
	p5-LWP-MediaTypes: 6.04 -> 6.05 [local]
	p5-freshports-modules: 2.2.2 -> 2.3.0 [local]
	p5-freshports-scripts: 2.2.7 -> 2.3.0.1 [local]
	pcre2: 10.48 -> 10.49 [local]
	pflogsumm: 1.2.1,1 -> 1.3.0,1 [local]
	protobuf-c: 1.5.1_4 -> 1.5.2 [local]
	py314-pycparser: 2.23 -> 3.0 [local]
	py314-pygit2: 1.20.0 -> 1.20.1 [local]
	python314: 3.14.7 -> 3.14.8 [local]
	readline: 8.3.3 -> 8.3.6 [local]
	tmux: 3.7c -> 3.8 [local]

Installed packages to be REINSTALLED:
	cyrus-sasl-2.1.28_6 [local] (option changed: LMDB0 (added))
	freshports-ingress-metaport-0.1.1 [local] (direct dependency changed: freshports-daemon-freshports (added), freshports-daemon-ingress (added), freshports-freshports (removed), freshports-ingress (removed))
	mysql84-client-8.4.11_1 [local] (direct dependency changed: openldap26-client (origin changed))

Number of packages to be installed: 4
Number of packages to be upgraded: 21
Number of packages to be reinstalled: 3

The process will require 3 MiB more space.
71 MiB to be downloaded.

Proceed with this action? [y/N]: y
[x8dtu-ingress01.vpn.unixathome.org] [ 1/28] Fetching groff-1.24.2: 100%  5701 KiB   5.8 MB/s    00:01    
[x8dtu-ingress01.vpn.unixathome.org] [ 2/28] Fetching p5-DBI-1.655: 100%   805 KiB 824.7 kB/s    00:01    
[x8dtu-ingress01.vpn.unixathome.org] [ 3/28] Fetching p5-LWP-MediaTypes-6.05: 100%    18 KiB  18.2 kB/s    00:01    
[x8dtu-ingress01.vpn.unixathome.org] [ 4/28] Fetching protobuf-c-1.5.2: 100%   149 KiB 153.1 kB/s    00:01    
[x8dtu-ingress01.vpn.unixathome.org] [ 5/28] Fetching pflogsumm-1.3.0,1: 100%    45 KiB  46.3 kB/s    00:01    
[x8dtu-ingress01.vpn.unixathome.org] [ 6/28] Fetching python314-3.14.8: 100%    41 MiB   8.6 MB/s    00:05    
[x8dtu-ingress01.vpn.unixathome.org] [ 7/28] Fetching mysql84-client-8.4.11_1: 100%  6031 KiB   6.2 MB/s    00:01    
[x8dtu-ingress01.vpn.unixathome.org] [ 8/28] Fetching expat-2.9.0: 100%   134 KiB 137.4 kB/s    00:01    
[x8dtu-ingress01.vpn.unixathome.org] [ 9/28] Fetching p5-freshports-scripts-2.3.0.1: 100%    72 KiB  74.0 kB/s    00:01    
[x8dtu-ingress01.vpn.unixathome.org] [10/28] Fetching p5-Email-Sender-2.603: 100%    64 KiB  65.7 kB/s    00:01    
[x8dtu-ingress01.vpn.unixathome.org] [11/28] Fetching freshports-daemon-ingress-2.0.4_15: 100%    3682 B   3.7 kB/s    00:01    
[x8dtu-ingress01.vpn.unixathome.org] [12/28] Fetching p5-freshports-ingress-scripts-2.3.0.3: 100%    76 KiB  77.6 kB/s    00:01    
[x8dtu-ingress01.vpn.unixathome.org] [13/28] Fetching nagios-plugins-2.4.4_2,1: 100%   455 KiB 466.3 kB/s    00:01    
[x8dtu-ingress01.vpn.unixathome.org] [14/28] Fetching bind-tools-9.20.29: 100%  1586 KiB   1.6 MB/s    00:01    
[x8dtu-ingress01.vpn.unixathome.org] [15/28] Fetching freshports-ingress-metaport-0.1.1: 100%     643 B   0.6 kB/s    00:01    
[x8dtu-ingress01.vpn.unixathome.org] [16/28] Fetching ca_root_nss-3.131: 100%   238 KiB 243.8 kB/s    00:01    
[x8dtu-ingress01.vpn.unixathome.org] [17/28] Fetching git-lite-2.56.0: 100%  9347 KiB   9.6 MB/s    00:01    
[x8dtu-ingress01.vpn.unixathome.org] [18/28] Fetching tmux-3.8: 100%   589 KiB 603.0 kB/s    00:01    
[x8dtu-ingress01.vpn.unixathome.org] [19/28] Fetching freshports-daemon-freshports-2.0.16: 100%    5431 B   5.4 kB/s    00:01    
[x8dtu-ingress01.vpn.unixathome.org] [20/28] Fetching p5-HTTP-Cookies-6.12: 100%    21 KiB  21.1 kB/s    00:01    
[x8dtu-ingress01.vpn.unixathome.org] [21/28] Fetching py314-pygit2-1.20.1: 100%   322 KiB 329.4 kB/s    00:01    
[x8dtu-ingress01.vpn.unixathome.org] [22/28] Fetching pcre2-10.49: 100%  1489 KiB   1.5 MB/s    00:01    
[x8dtu-ingress01.vpn.unixathome.org] [23/28] Fetching p5-freshports-modules-2.3.0: 100%    73 KiB  74.7 kB/s    00:01    
[x8dtu-ingress01.vpn.unixathome.org] [24/28] Fetching cyrus-sasl-2.1.28_6: 100%  1042 KiB   1.1 MB/s    00:01    
[x8dtu-ingress01.vpn.unixathome.org] [25/28] Fetching openldap26-client-2.6.15_1: 100%  1099 KiB   1.1 MB/s    00:01    
[x8dtu-ingress01.vpn.unixathome.org] [26/28] Fetching readline-8.3.6: 100%   470 KiB 481.3 kB/s    00:01    
[x8dtu-ingress01.vpn.unixathome.org] [27/28] Fetching p5-freshports-ingress-modules-2.3.1: 100%    73 KiB  74.3 kB/s    00:01    
[x8dtu-ingress01.vpn.unixathome.org] [28/28] Fetching py314-pycparser-3.0: 100%   111 KiB 113.3 kB/s    00:01    
Checking integrity... done (6 conflicting)
  - freshports-daemon-ingress-2.0.4_15 [local] conflicts with freshports-ingress-2.0.4_15 [installed] on /usr/local/etc/freshports/ingress.sh.sample
  - p5-freshports-ingress-scripts-2.3.0.3 [local] conflicts with p5-freshports-scripts-2.2.7 [installed] on /jails/freshports/cat-descr.sh
  - p5-freshports-ingress-scripts-2.3.0.3 [local] conflicts with p5-freshports-scripts-2.3.0.1 [local] on /jails/freshports/cat-descr.sh
  - freshports-daemon-freshports-2.0.16 [local] conflicts with freshports-freshports-2.0.16 [installed] on /usr/local/etc/freshports/freshports.sh.sample
  - p5-freshports-ingress-modules-2.3.1 [local] conflicts with p5-freshports-modules-2.2.2 [installed] on /usr/local/etc/freshports/config.pm.sample
  - p5-freshports-ingress-modules-2.3.1 [local] conflicts with p5-freshports-modules-2.3.0 [local] on /usr/local/etc/freshports/config.pm.sample
Cannot solve problem using SAT solver, trying another plan
Checking integrity... done (0 conflicting)
Conflicts with the existing packages have been found.
One more solver iteration is needed to resolve them.
The following 23 package(s) will be affected (of 0 checked):

Installed packages to be UPGRADED:
	bind-tools: 9.20.27 -> 9.20.29 [local]
	ca_root_nss: 3.129 -> 3.131 [local]
	expat: 2.8.5 -> 2.9.0 [local]
	git-lite: 2.55.0 -> 2.56.0 [local]
	groff: 1.24.1_1 -> 1.24.2 [local]
	nagios-plugins: 2.4.4_1,1 -> 2.4.4_2,1 [local]
	openldap26-client: 2.6.15 -> 2.6.15_1 [local]
	p5-DBI: 1.654 -> 1.655 [local]
	p5-Email-Sender: 2.601 -> 2.603 [local]
	p5-HTTP-Cookies: 6.11 -> 6.12 [local]
	p5-LWP-MediaTypes: 6.04 -> 6.05 [local]
	p5-freshports-modules: 2.2.2 -> 2.3.0 [local]
	p5-freshports-scripts: 2.2.7 -> 2.3.0.1 [local]
	pcre2: 10.48 -> 10.49 [local]
	pflogsumm: 1.2.1,1 -> 1.3.0,1 [local]
	protobuf-c: 1.5.1_4 -> 1.5.2 [local]
	py314-pycparser: 2.23 -> 3.0 [local]
	py314-pygit2: 1.20.0 -> 1.20.1 [local]
	python314: 3.14.7 -> 3.14.8 [local]
	readline: 8.3.3 -> 8.3.6 [local]
	tmux: 3.7c -> 3.8 [local]

Installed packages to be REINSTALLED:
	cyrus-sasl-2.1.28_6 [local] (option changed: LMDB0 (added))
	mysql84-client-8.4.11_1 [local] (direct dependency changed: openldap26-client (origin changed))

Number of packages to be upgraded: 21
Number of packages to be reinstalled: 2

The process will require 2 MiB more space.

Proceed with this action? [y/N]: y
Checking integrity... done (0 conflicting)
[x8dtu-ingress01.vpn.unixathome.org] [ 1/23] Upgrading ca_root_nss from 3.129 to 3.131...
[x8dtu-ingress01.vpn.unixathome.org] [ 1/23] Extracting ca_root_nss-3.131: 100%
certctl: legacy directory /etc/ssl/blacklisted can safely be deleted
[x8dtu-ingress01.vpn.unixathome.org] [ 2/23] Reinstalling cyrus-sasl-2.1.28_6...
*** Updated user `cyrus'.
[x8dtu-ingress01.vpn.unixathome.org] [ 2/23] Extracting cyrus-sasl-2.1.28_6: 100%
[x8dtu-ingress01.vpn.unixathome.org] [ 3/23] Upgrading expat from 2.8.5 to 2.9.0...
[x8dtu-ingress01.vpn.unixathome.org] [ 3/23] Extracting expat-2.9.0: 100%
[x8dtu-ingress01.vpn.unixathome.org] [ 4/23] Upgrading groff from 1.24.1_1 to 1.24.2...
[x8dtu-ingress01.vpn.unixathome.org] [ 4/23] Extracting groff-1.24.2: 100%
[x8dtu-ingress01.vpn.unixathome.org] [ 5/23] Upgrading openldap26-client from 2.6.15 to 2.6.15_1...
[x8dtu-ingress01.vpn.unixathome.org] [ 5/23] Extracting openldap26-client-2.6.15_1: 100%
[x8dtu-ingress01.vpn.unixathome.org] [ 6/23] Reinstalling mysql84-client-8.4.11_1...
[x8dtu-ingress01.vpn.unixathome.org] [ 6/23] Extracting mysql84-client-8.4.11_1: 100%
[x8dtu-ingress01.vpn.unixathome.org] [ 7/23] Upgrading p5-DBI from 1.654 to 1.655...
[x8dtu-ingress01.vpn.unixathome.org] [ 7/23] Extracting p5-DBI-1.655: 100%
[x8dtu-ingress01.vpn.unixathome.org] [ 8/23] Upgrading p5-Email-Sender from 2.601 to 2.603...
[x8dtu-ingress01.vpn.unixathome.org] [ 8/23] Extracting p5-Email-Sender-2.603: 100%
[x8dtu-ingress01.vpn.unixathome.org] [ 9/23] Upgrading p5-HTTP-Cookies from 6.11 to 6.12...
[x8dtu-ingress01.vpn.unixathome.org] [ 9/23] Extracting p5-HTTP-Cookies-6.12: 100%
[x8dtu-ingress01.vpn.unixathome.org] [10/23] Upgrading p5-LWP-MediaTypes from 6.04 to 6.05...
[x8dtu-ingress01.vpn.unixathome.org] [10/23] Extracting p5-LWP-MediaTypes-6.05: 100%
[x8dtu-ingress01.vpn.unixathome.org] [11/23] Upgrading pcre2 from 10.48 to 10.49...
[x8dtu-ingress01.vpn.unixathome.org] [11/23] Extracting pcre2-10.49: 100%
[x8dtu-ingress01.vpn.unixathome.org] [12/23] Upgrading git-lite from 2.55.0 to 2.56.0...
===> Creating groups
Using existing group 'git_daemon'
===> Creating users
Using existing user 'git_daemon'
[x8dtu-ingress01.vpn.unixathome.org] [12/23] Extracting git-lite-2.56.0: 100%
[x8dtu-ingress01.vpn.unixathome.org] [13/23] Upgrading pflogsumm from 1.2.1,1 to 1.3.0,1...
[x8dtu-ingress01.vpn.unixathome.org] [13/23] Extracting pflogsumm-1.3.0,1: 100%
[x8dtu-ingress01.vpn.unixathome.org] [14/23] Upgrading protobuf-c from 1.5.1_4 to 1.5.2...
[x8dtu-ingress01.vpn.unixathome.org] [14/23] Extracting protobuf-c-1.5.2: 100%
[x8dtu-ingress01.vpn.unixathome.org] [15/23] Upgrading bind-tools from 9.20.27 to 9.20.29...
[x8dtu-ingress01.vpn.unixathome.org] [15/23] Extracting bind-tools-9.20.29: 100%
[x8dtu-ingress01.vpn.unixathome.org] [16/23] Upgrading nagios-plugins from 2.4.4_1,1 to 2.4.4_2,1...
[x8dtu-ingress01.vpn.unixathome.org] [16/23] Extracting nagios-plugins-2.4.4_2,1: 100%
[x8dtu-ingress01.vpn.unixathome.org] [17/23] Upgrading readline from 8.3.3 to 8.3.6...
[x8dtu-ingress01.vpn.unixathome.org] [17/23] Extracting readline-8.3.6: 100%
[x8dtu-ingress01.vpn.unixathome.org] [18/23] Upgrading python314 from 3.14.7 to 3.14.8...
[x8dtu-ingress01.vpn.unixathome.org] [18/23] Extracting python314-3.14.8: 100%
[x8dtu-ingress01.vpn.unixathome.org] [19/23] Upgrading p5-freshports-modules from 2.2.2 to 2.3.0...
===> Creating groups
Using existing group 'freshports'
Using existing group 'ingress'
===> Creating users
Using existing user 'freshports'
===> Creating homedir(s)
Using existing user 'ingress'
===> Creating homedir(s)
[x8dtu-ingress01.vpn.unixathome.org] [19/23] Extracting p5-freshports-modules-2.3.0: 100%
[x8dtu-ingress01.vpn.unixathome.org] [20/23] Upgrading py314-pycparser from 2.23 to 3.0...
[x8dtu-ingress01.vpn.unixathome.org] [20/23] Extracting py314-pycparser-3.0: 100%
[x8dtu-ingress01.vpn.unixathome.org] [21/23] Upgrading py314-pygit2 from 1.20.0 to 1.20.1...
[x8dtu-ingress01.vpn.unixathome.org] [21/23] Extracting py314-pygit2-1.20.1: 100%
[x8dtu-ingress01.vpn.unixathome.org] [22/23] Upgrading p5-freshports-scripts from 2.2.7 to 2.3.0.1...
===> Creating groups
Using existing group 'freshports'
Using existing group 'ingress'
===> Creating users
Using existing user 'freshports'
===> Creating homedir(s)
Using existing user 'ingress'
===> Creating homedir(s)
[x8dtu-ingress01.vpn.unixathome.org] [22/23] Extracting p5-freshports-scripts-2.3.0.1: 100%
[x8dtu-ingress01.vpn.unixathome.org] [23/23] Upgrading tmux from 3.7c to 3.8...
[x8dtu-ingress01.vpn.unixathome.org] [23/23] Extracting tmux-3.8: 100%
=====
Message from nagios-plugins-2.4.4_2,1:

--
===>   NOTICE:

The nagios-plugins port currently does not have a maintainer. As a result, it is
more likely to have unresolved issues, not be up-to-date, or even be removed in
the future. To volunteer to maintain this port, please create an issue at:

https://bugs.freebsd.org/bugzilla

More information about port maintainership is available at:

https://docs.freebsd.org/en/articles/contributing/#ports-contributing
You may need to manually remove /usr/local/etc/freshports/config.pm if it is no longer needed.
You may need to manually remove /usr/local/etc/freshports/config.sh if it is no longer needed.
You may need to manually remove /usr/local/etc/syslog.d/freshports.conf if it is no longer needed.
You may need to manually remove /usr/local/etc/newsyslog.conf.d/freshports.conf if it is no longer needed.
=====
Message from tmux-3.8:

--
tmux must be restarted after upgrading.

If you see the following message when you try to attach, it likely means
you forgot to restart tmux:

  open terminal failed: not a terminal
[11:18 x8dtu-ingress01 dvl ~] % sudo pkg upgrade
Updating FreeBSD-base repository catalogue...
FreeBSD-base repository is up to date.
Updating local repository catalogue...
local repository is up to date.
All repositories are up to date.
Checking for upgrades (2 candidates): 100%
Processing candidates (2 candidates): 100%
Checking integrity... done (4 conflicting)
  - freshports-daemon-ingress-2.0.4_15 [local] conflicts with freshports-ingress-2.0.4_15 [installed] on /usr/local/etc/freshports/ingress.sh.sample
  - p5-freshports-ingress-scripts-2.3.0.3 [local] conflicts with p5-freshports-scripts-2.3.0.1 [installed] on /jails/freshports/cat-descr.sh
  - freshports-daemon-freshports-2.0.16 [local] conflicts with freshports-freshports-2.0.16 [installed] on /usr/local/etc/freshports/freshports.sh.sample
  - p5-freshports-ingress-modules-2.3.1 [local] conflicts with p5-freshports-modules-2.3.0 [installed] on /usr/local/etc/freshports/config.pm.sample
Checking integrity... done (0 conflicting)
The following 9 package(s) will be affected (of 0 checked):

New packages to be INSTALLED:
	freshports-daemon-freshports: 2.0.16 [local]
	freshports-daemon-ingress: 2.0.4_15 [local]
	p5-freshports-ingress-modules: 2.3.1 [local]
	p5-freshports-ingress-scripts: 2.3.0.3 [local]

Installed packages to be REINSTALLED:
	freshports-ingress-metaport-0.1.1 [local] (direct dependency changed: freshports-daemon-freshports (added), freshports-daemon-ingress (added), freshports-freshports (removed), freshports-ingress (removed))

Installed packages to be REMOVED:
	freshports-freshports: 2.0.16
	freshports-ingress: 2.0.4_15
	p5-freshports-modules: 2.3.0
	p5-freshports-scripts: 2.3.0.1

Number of packages to be removed: 4
Number of packages to be installed: 4
Number of packages to be reinstalled: 1

Proceed with this action? [y/N]: y
[x8dtu-ingress01.vpn.unixathome.org] [ 1/10] Deinstalling freshports-ingress-metaport-0.1.1...
[x8dtu-ingress01.vpn.unixathome.org] [ 2/10] Deinstalling freshports-freshports-2.0.16...
[x8dtu-ingress01.vpn.unixathome.org] [ 2/10] Deleting files for freshports-freshports-2.0.16: 100%
==> You should manually remove the "freshports" user
==> You should manually remove the "freshports" group
[x8dtu-ingress01.vpn.unixathome.org] [ 3/10] Deinstalling freshports-ingress-2.0.4_15...
[x8dtu-ingress01.vpn.unixathome.org] [ 3/10] Deleting files for freshports-ingress-2.0.4_15: 100%
==> You should manually remove the "ingress" user
==> You should manually remove the "ingress" group
[x8dtu-ingress01.vpn.unixathome.org] [ 4/10] Deinstalling p5-freshports-scripts-2.3.0.1...
[x8dtu-ingress01.vpn.unixathome.org] [ 4/10] Deleting files for p5-freshports-scripts-2.3.0.1: 100%
==> You should manually remove the "freshports" user
==> You should manually remove the "ingress" user
==> You should manually remove the "freshports" group
==> You should manually remove the "ingress" group
[x8dtu-ingress01.vpn.unixathome.org] [ 5/10] Deinstalling p5-freshports-modules-2.3.0...
[x8dtu-ingress01.vpn.unixathome.org] [ 5/10] Deleting files for p5-freshports-modules-2.3.0: 100%
==> You should manually remove the "freshports" user
==> You should manually remove the "ingress" user
==> You should manually remove the "freshports" group
==> You should manually remove the "ingress" group
[x8dtu-ingress01.vpn.unixathome.org] [ 6/10] Installing p5-freshports-ingress-modules-2.3.1...
===> Creating groups
Using existing group 'freshports'
Using existing group 'ingress'
===> Creating users
Using existing user 'freshports'
===> Creating homedir(s)
Using existing user 'ingress'
===> Creating homedir(s)
[x8dtu-ingress01.vpn.unixathome.org] [ 6/10] Extracting p5-freshports-ingress-modules-2.3.1: 100%
[x8dtu-ingress01.vpn.unixathome.org] [ 7/10] Installing p5-freshports-ingress-scripts-2.3.0.3...
===> Creating groups
Using existing group 'freshports'
Using existing group 'ingress'
===> Creating users
Using existing user 'freshports'
===> Creating homedir(s)
Using existing user 'ingress'
===> Creating homedir(s)
[x8dtu-ingress01.vpn.unixathome.org] [ 7/10] Extracting p5-freshports-ingress-scripts-2.3.0.3: 100%
[x8dtu-ingress01.vpn.unixathome.org] [ 8/10] Installing freshports-daemon-freshports-2.0.16...
===> Creating groups
Using existing group 'freshports'
===> Creating users
Using existing user 'freshports'
===> Creating homedir(s)
[x8dtu-ingress01.vpn.unixathome.org] [ 8/10] Extracting freshports-daemon-freshports-2.0.16: 100%
[x8dtu-ingress01.vpn.unixathome.org] [ 9/10] Installing freshports-daemon-ingress-2.0.4_15...
===> Creating groups
Using existing group 'ingress'
===> Creating users
Using existing user 'ingress'
===> Creating homedir(s)
[x8dtu-ingress01.vpn.unixathome.org] [ 9/10] Extracting freshports-daemon-ingress-2.0.4_15: 100%
[x8dtu-ingress01.vpn.unixathome.org] [10/10] Installing freshports-ingress-metaport-0.1.1...
You may need to manually remove /usr/local/etc/syslog.d/freshports-daemon.conf if it is no longer needed.
You may need to manually remove /usr/local/etc/syslog.d/ingress-daemon.conf if it is no longer needed.
You may need to manually remove /usr/local/etc/freshports/config.sh if it is no longer needed.
You may need to manually remove /usr/local/etc/syslog.d/freshports.conf if it is no longer needed.
You may need to manually remove /usr/local/etc/newsyslog.conf.d/freshports.conf if it is no longer needed.
You may need to manually remove /usr/local/etc/freshports/config.pm if it is no longer needed.
[11:18 x8dtu-ingress01 dvl ~] % sudo pkg upgrade
Updating FreeBSD-base repository catalogue...
FreeBSD-base repository is up to date.
Updating local repository catalogue...
local repository is up to date.
All repositories are up to date.
Checking for upgrades (1 candidates): 100%
Processing candidates (1 candidates): 100%
Checking integrity... done (0 conflicting)
Your packages are up to date.

You should have:

% pkg info -x freshports
freshports-daemon-freshports-2.0.16
freshports-daemon-ingress-2.0.4_15
freshports-helper_scripts-0.0.6
freshports-ingress-metaport-0.1.1
freshports-periodics-1.1.1_1
p5-freshports-ingress-modules-2.3.0
p5-freshports-ingress-scripts-2.3.0.2
p5-freshports-verify-2.2.0
py314-freshports-git-proc-commit-0.2.3

Scripts

After updating the webserver packages, run this:

[23:40 r720-02-nginx01 dvl ~] % cd /usr/local/www/freshports
[23:41 r720-02-nginx01 dvl /usr/local/www/freshports] % sudo rm locale/*/LC_MESSAGES/freshports.mo ; sudo ./scripts/i18n-compile.sh && sudo service php_fpm reload

zsh: no matches found: locale/*/LC_MESSAGES/freshports.mo
de_DE: translation changed
locale/fr_CA/LC_MESSAGES/freshports.po:8: warning: header field 'Language-Team' missing in header
fr_CA: translation changed
pt_BR: translation changed
tr_TR: translation changed
zh_CN: translation changed
Performing sanity check on php-fpm configuration:

Warning: Failed loading Zend extension 'opcache.so' (tried: /usr/local/lib/php/20250925/opcache.so (Cannot open "/usr/local/lib/php/20250925/opcache.so"), /usr/local/lib/php/20250925/opcache.so.so (Cannot open "/usr/local/lib/php/20250925/opcache.so.so")) in Unknown on line 0
[12-Oct-2026 23:42:05] NOTICE: configuration file /usr/local/etc/php-fpm.conf test is successful [23:42 r720-02-nginx01 dvl /usr/local/www/freshports] %

If you see that cache issue, sudo pkg autoremove will probably fix it.

Configuration updates

On the ingress node, refresh /usr/local/etc/freshports/config.sh by comparing it with config.sh.sample

Specifically, you’ll need to add:

WATCHGOOSE_COMPARE_INDEX
REFRESHFROMINDEXFLAG
INDEX_JAIL_NAME
INDEX_JAIL_BASE_DIR
SUDO

In the same directory, make sure config.pm is up to date. Items to convert are:

# For the fp-listen daemon
$FreshPorts::Config::RefreshFromIndexFlag

On the nginx (webserver) node, /usr/local/etc/freshports/constants.local.php needs an update (see constants.local.php.sample). Items include:

INCLUDE_GOOGLE_GTAG
LOGIN_TO_SEARCH
SEARCH_GATE_SECRET

Populate

SEARCH_GATE_SECRET

with the output of openssl rand -hex 32

0e18cc46668d31fc00f75b42a4bd85012c225af521d85f7344519bb7fc3767d4

Verify make-port.sh

Expect this:

[17:13 stage-ingress01 dvl /usr/local/libexec/freshports/Jail/scripts] % md5 make-port.sh /jails/freshports/make-port.sh
MD5 (make-port.sh) = 6b55d50b6f4d54a8255f06ac526870b3
MD5 (/jails/freshports/make-port.sh) = 6b55d50b6f4d54a8255f06ac526870b3

Deploy a new index jail on the ingress node

See Creating a jail within an ingress jail

Populate the newly created pkgversion column

While we just created pkgversion, we’ve already created the build_run_depends column. Now we need populate both of them.

[17:34 stage-ingress01 dvl ~] % sudo su -l freshports
$ cd /usr/local/libexec/freshports
$ /usr/local/libexec/freshports/set-pkgversion-build-run-depends.pl --dryrun --limit 20
/usr/local/libexec/freshports/set-pkgversion-build-run-depends.pl starts
set-pkgversion-build-run-depends.pl accessibility/accerciser: pkgversion '3.48.0' build_run_depends ''
set-pkgversion-build-run-depends.pl accessibility/accesskit-c: pkgversion '0.17.1_7' build_run_depends ''
set-pkgversion-build-run-depends.pl accessibility/at-spi2-core: pkgversion '2.60.4' build_run_depends ''
set-pkgversion-build-run-depends.pl accessibility/atkmm: pkgversion '2.28.5' build_run_depends ''
set-pkgversion-build-run-depends.pl accessibility/caribou: pkgversion '0.4.21.78_2' build_run_depends ''
set-pkgversion-build-run-depends.pl accessibility/darkman: pkgversion '2.3.1_6' build_run_depends ''
set-pkgversion-build-run-depends.pl accessibility/eflite: pkgversion '0.4.1' build_run_depends ''
set-pkgversion-build-run-depends.pl accessibility/feedbackd: pkgversion '0.7.0' build_run_depends ''
set-pkgversion-build-run-depends.pl accessibility/gammastep: pkgversion '2.0.11' build_run_depends ''
set-pkgversion-build-run-depends.pl accessibility/hyprsunset: pkgversion '0.4.0_1' build_run_depends ''
set-pkgversion-build-run-depends.pl accessibility/kdeaccessibility: pkgversion '26.08.2' build_run_depends ''
set-pkgversion-build-run-depends.pl accessibility/kmag: pkgversion '26.08.2' build_run_depends ''
set-pkgversion-build-run-depends.pl accessibility/kmousetool: pkgversion '26.08.2' build_run_depends ''
set-pkgversion-build-run-depends.pl accessibility/kmouth: pkgversion '26.08.2' build_run_depends ''
set-pkgversion-build-run-depends.pl accessibility/libqaccessibilityclient: pkgversion '0.6.0' build_run_depends ''
set-pkgversion-build-run-depends.pl accessibility/libspeechprovider: pkgversion '1.0.3' build_run_depends ''
set-pkgversion-build-run-depends.pl accessibility/libspiel: pkgversion '1.0.4' build_run_depends ''
set-pkgversion-build-run-depends.pl accessibility/linux-c7-at-spi2-atk: pkgversion '2.26.2' build_run_depends ''
set-pkgversion-build-run-depends.pl accessibility/linux-c7-at-spi2-core: pkgversion '2.28.0' build_run_depends ''
set-pkgversion-build-run-depends.pl accessibility/linux-c7-atk: pkgversion '2.28.1_1' build_run_depends ''
set-pkgversion-build-run-depends.pl ends: 20 ports read, 0 unchanged, 0 make could not answer for (dry run, nothing written)
$

If that looks well, let’s go:

$ /usr/local/libexec/freshports/set-pkgversion-build-run-depends.pl

That might take about 90 minutes to run.

It also helps to set this signal to tell cronjobs etc not to run…. but the script above observes that flag, so set it (via another ssh session) after starting the script.

% sudo touch /var/db/freshports/signals/OFFLINE
% 

Verify the backfill

Run the dry run again. Every port should now be reported as unchanged, which shows that a second run writes nothing:

$ /usr/local/libexec/freshports/set-pkgversion-build-run-depends.pl --dryrun --limit 200
/usr/local/libexec/freshports/set-pkgversion-build-run-depends.pl starts
set-pkgversion-build-run-depends.pl accessibility/accerciser: unchanged
set-pkgversion-build-run-depends.pl accessibility/accesskit-c: unchanged
set-pkgversion-build-run-depends.pl accessibility/at-spi2-core: unchanged
...
set-pkgversion-build-run-depends.pl archivers/pear-Horde_Compress_Fast: unchanged
set-pkgversion-build-run-depends.pl archivers/pear-Horde_Pack: unchanged
set-pkgversion-build-run-depends.pl ends: 200 ports read, 200 unchanged, 0 make could not answer for (dry run, nothing written)
$

If any port is reported as changed, stop and investigate before going further.

For kmod ports, the framework puts ${OSVERSION} into PKGVERSION, so audio/oss is a good port to spot-check. It should be unchanged:

$ /usr/local/libexec/freshports/set-pkgversion-build-run-depends.pl --dryrun --from audio/oss --limit 1
/usr/local/libexec/freshports/set-pkgversion-build-run-depends.pl starts
set-pkgversion-build-run-depends.pl audio/oss: unchanged
set-pkgversion-build-run-depends.pl ends: 1 ports read, 1 unchanged, 0 make could not answer for (dry run, nothing written)
$

The stored value should contain the OSVERSION of the host’s freshports jail. Here, that’s 1501000:

freshports.stage=# SELECT P.pkgversion FROM ports P JOIN element E ON E.id = P.element_id JOIN categories C ON C.id = P.category_id WHERE C.name = 'audio' AND E.name = 'oss' AND element_pathname(E.id) LIKE '/ports/head/%';
     pkgversion      
---------------------
 4.2.b2019.1501000_5
(1 row)

freshports.stage=#

You might also add the head/branch query as a third check, since it gives the whole-tree picture:

freshports.stage=# SELECT element_pathname(E.id) LIKE '/ports/head/%' AS on_head, count(*) AS total, count(*) FILTER (WHERE P.pkgversion IS NULL) AS null_pkgversion FROM ports P JOIN element E ON E.id = P.element_id WHERE E.status = 'A' GROUP BY 1;
 on_head | total | null_pkgversion 
---------+-------+-----------------
 f       | 48144 |           48142
 t       | 35237 |               0
(2 rows)

If you include it, add a sentence explaining the numbers. Head should have zero NULLs. Branch ports are filled in only as they’re refreshed, so most of them stay NULL for now.

Other checks

[17:27 stage-ingress01 dvl ~] % md5 /usr/local/etc/sudoers.d/sudoers-freshports-jexec
MD5 (/usr/local/etc/sudoers.d/sudoers-freshports-jexec) = f0640e7c389e1200d66909a68a412fb3

Restarting stuff

sudo rm /var/db/freshports/signals/OFFLINE
sudo service ingress start
sudo service freshports start
Website Pin Facebook Twitter Myspace Friendfeed Technorati del.icio.us Digg Google StumbleUpon Premium Responsive

Leave a Comment

Scroll to Top