freshports-www-2.16.1 requires some database changes. This post outlines the updates on one host.
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.
Add 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=# \q
Package updates
On both the ingress and the nginx nodes, run pkg upgrade. 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.1 p5-freshports-verify-2.2.0 py314-freshports-git-proc-commit-0.2.3
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) $
That might take about 90 minutes to run.
If that looks well, let’s go:
$ /usr/local/libexec/freshports/set-pkgversion-build-run-depends.pl
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











