Updating a jail by replacing it

This post is a proof-of-concept for creating a new jail instead of upgrading one in-place. I think the process is easier, given there are no packages installed in the jail.

Re https://github.com/FreshPorts/freshports/issues/622

Each ingress node in a FreshPorts instance contains a FreeBSD jail. It has some shell scripts, but no installed packages.

I think it will be easier and faster to deploy a new jail instead of upgrading.

For safety, the existing jail could be renamed for later deletion.

Let’s try this on my dvli jail.

In this post:

  • host – r730-01 – FreeBSD 14.2-RELEASE-p1
  • jail – dvl-ingress01 – FreeBSD 14.1

Preparation

Not much runs on an ingress node while idle:

[17:01 dvl-ingress01 dvl ~] % ps auwwx                 
USER         PID %CPU %MEM   VSZ   RSS TT  STAT STARTED    TIME COMMAND
dvl         2771  0.2  0.0 20588  6920  2  SsJ  16:56   0:00.16 -zsh (zsh)
root        2767  0.0  0.0 23020 10920  -  IsJ  16:56   0:00.04 sshd: dvl [priv] (sshd)
dvl         2770  0.0  0.0 23020 11220  -  SJ   16:56   0:00.02 sshd: dvl@pts/2 (sshd)
root       15303  0.0  0.0 12876  2712  -  SsJ  19Mar25 0:23.68 /usr/sbin/syslogd -s
nagios     15383  0.0  0.0 18564  7016  -  IsJ  19Mar25 0:21.56 /usr/local/sbin/nrpe -c /usr/local/etc/nrpe.cfg -d
root       15461  0.0  0.0 22832  9984  -  IsJ  19Mar25 0:03.54 sshd: /usr/sbin/sshd [listener] 0 of 10-100 startups (sshd)
root       15502  0.0  0.0 12916  2472  -  IsJ  19Mar25 0:05.43 /usr/sbin/cron -s
ingress    16074  0.0  0.0 12828  2276  -  IsJ  19Mar25 0:00.96 daemon: ingress[16075] (daemon)
ingress    16075  0.0  0.0 13376  2712  -  SJ   19Mar25 0:37.43 /bin/sh /usr/local/libexec/freshports-service/ingress.sh
freshports 16096  0.0  0.0 12828  2272  -  IsJ  19Mar25 0:00.45 daemon: freshports[16098] (daemon)
freshports 16098  0.0  0.0 13376  3024  -  SJ   19Mar25 7:06.44 /bin/sh /usr/local/libexec/freshports-service/freshports.sh
freshports 70124  0.0  0.0 12712  2132  -  SCJ  17:02   0:00.00 sleep 3
ingress    70131  0.0  0.0 12712  2132  -  SCJ  17:02   0:00.00 sleep 3
dvl        70140  0.0  0.0 13452  3092  2  R+J  17:02   0:00.00 ps auwwx
[17:02 dvl-ingress01 dvl ~] % 

Let’s stop the two main daemons, which, as you can see, are shell scripts. Small shell scripts. Easily replaced.

[17:02 dvl-ingress01 dvl ~] % date
Thu Mar 27 17:03:31 UTC 2025
[17:03 dvl-ingress01 dvl ~] % sudo service freshports stop                        
Stopping freshports.
Waiting for PIDS: 16096.
[17:03 dvl-ingress01 dvl ~] % sudo service ingress stop   
Stopping ingress.
Waiting for PIDS: 16074.
[17:03 dvl-ingress01 dvl ~] % ps auwwx                 
USER     PID %CPU %MEM   VSZ   RSS TT  STAT STARTED    TIME COMMAND
root    2767  0.0  0.0 23020 10920  -  IsJ  16:56   0:00.04 sshd: dvl [priv] (sshd)
dvl     2770  0.0  0.0 23020 11248  -  SJ   16:56   0:00.03 sshd: dvl@pts/2 (sshd)
root   15303  0.0  0.0 12876  2712  -  SsJ  19Mar25 0:23.68 /usr/sbin/syslogd -s
nagios 15383  0.0  0.0 18564  7016  -  IsJ  19Mar25 0:21.56 /usr/local/sbin/nrpe -c /usr/local/etc/nrpe.cfg -d
root   15461  0.0  0.0 22832  9984  -  IsJ  19Mar25 0:03.54 sshd: /usr/sbin/sshd [listener] 0 of 10-100 startups (sshd)
root   15502  0.0  0.0 12916  2472  -  IsJ  19Mar25 0:05.43 /usr/sbin/cron -s
dvl     2771  0.0  0.0 20588  6928  2  SsJ  16:56   0:00.18 -zsh (zsh)
dvl    74554  0.0  0.0 13452  3084  2  R+J  17:03   0:00.00 ps auwwx
[17:03 dvl-ingress01 dvl ~] % 

I’m going to upgrade mkjail, which is only shell-scripts, no binaries. I will ignore the warning:

[17:04 dvl-ingress01 dvl ~] % sudo pkg upgrade mkjail
Updating local repository catalogue...
[dvl-ingress01.int.unixathome.org] Fetching meta.conf: 100%    179 B   0.2kB/s    00:01    
[dvl-ingress01.int.unixathome.org] Fetching data.pkg: 100%  375 KiB 384.4kB/s    00:01    
Processing entries:   0%
Newer FreeBSD version for package zfsnap:
To ignore this error set IGNORE_OSVERSION=yes
- package: 1402000
- running userland: 1401000
Ignore the mismatch and continue? [y/N]: y
Processing entries: 100%
local repository update completed. 1076 packages processed.
All repositories are up to date.
The following 1 package(s) will be affected (of 0 checked):

Installed packages to be UPGRADED:
	mkjail: 0.0.5 -> 0.0.8

Number of packages to be upgraded: 1

8 KiB to be downloaded.

Proceed with this action? [y/N]: y
[dvl-ingress01.int.unixathome.org] [1/1] Fetching mkjail-0.0.8.pkg: 100%    8 KiB   8.0kB/s    00:01    
Checking integrity... done (0 conflicting)
[dvl-ingress01.int.unixathome.org] [1/1] Upgrading mkjail from 0.0.5 to 0.0.8...
[dvl-ingress01.int.unixathome.org] [1/1] Extracting mkjail-0.0.8: 100%
You may need to manually remove /usr/local/etc/mkjail.conf if it is no longer needed.

I see I have not recently update this jail via mkjail:


[17:04 dvl-ingress01 dvl ~] % ls -l /var/db/mkjail
total 1
drwxr-xr-x 2 root wheel 2 2024.02.08 00:49 14.0-RELEASE/
drwxr-xr-x 3 root wheel 3 2024.02.08 00:47 releases/
[17:05 dvl-ingress01 dvl ~] % ls -l /var/db/mkjail/releases/amd64
total 1
drwxr-xr-x 2 root wheel 6 2024.02.08 00:49 14.0-RELEASE/
[17:06 dvl-ingress01 dvl ~] %

Fetching new data

This gets 14.2-RELEASE:

[17:06 dvl-ingress01 dvl ~] % sudo mkjail getrelease -v 14.2-RELEASE
Fetching release manifest...
MANIFEST                                              1046  B 7919 kBps    00s
Fetching release tarballs...
base.txz                                               196 MB   16 MBps    11s
src.txz                                                204 MB   19 MBps    11s
lib32.txz                                               59 MB 9353 kBps    07s
base.txz: sha256 verified
src.txz: sha256 verified
lib32.txz: sha256 verified
Extracting src for use in jail upgrades...
[17:08 dvl-ingress01 dvl ~] % ls -l /var/db/mkjail/releases/amd64   
total 1
drwxr-xr-x  2 root wheel 6 2024.02.08 00:49 14.0-RELEASE/
drwxr-xr-x  2 root wheel 6 2025.03.27 17:07 14.2-RELEASE/
[17:08 dvl-ingress01 dvl ~] % ls -l /var/db/mkjail/                 
total 2
drwxr-xr-x  2 root wheel 2 2024.02.08 00:49 14.0-RELEASE/
drwxr-xr-x  3 root wheel 3 2025.03.27 17:07 14.2-RELEASE/
drwxr-xr-x  3 root wheel 3 2024.02.08 00:47 releases/
[17:08 dvl-ingress01 dvl ~] % 

Remove / move the existing jail

An ingress node runs one jail:

[17:08 dvl-ingress01 dvl ~] % jls
   JID  IP Address      Hostname                      Path
    12  10.55.0.81      freshports                    /jails/freshports

I’m now thinking a better name is possible. This is where FreshPorts runs commands such as make -V PORTVERSION – it is a clean environment.

Stop the jail:

[17:09 dvl-ingress01 dvl ~] % sudo service jail stop
Stopping jails: freshports.

Rename it:

[17:09 dvl-ingress01 dvl ~] % zfs list
NAME                                                         USED  AVAIL  REFER  MOUNTPOINT
data02                                                      1.28T   410G    96K  none
data02/freshports                                            827G   410G    88K  none
data02/freshports/jailed                                     539G   410G    96K  none
data02/freshports/jailed/dvl-ingress01                       202G   410G    96K  none
data02/freshports/jailed/dvl-ingress01/distfiles              96K   410G    96K  none
data02/freshports/jailed/dvl-ingress01/jails                 200G   410G   116K  /jails
data02/freshports/jailed/dvl-ingress01/jails/freshports      200G   410G   200G  /jails/freshports
data02/freshports/jailed/dvl-ingress01/mkjail               1.81G   410G   908M  /var/db/mkjail
data02/freshports/jailed/dvl-ingress01/mkjail/14.2-RELEASE   943M   410G   943M  /var/db/mkjail/14.2-RELEASE
[17:09 dvl-ingress01 dvl ~] % sudo zfs rename data02/freshports/jailed/dvl-ingress01/jails/freshports data02/freshports/jailed/dvl-ingress01/jails/freshports.14.1
[17:09 dvl-ingress01 dvl ~] % ls -l /jails
total 9
drwxr-xr-x   3 root wheel  3 2024.02.08 00:47 freshports/
drwxr-xr-x  18 root wheel 34 2024.02.11 15:23 freshports.14.1/
[17:09 dvl-ingress01 dvl ~] % 

Oh, what’s in there?

[17:12 dvl-ingress01 dvl ~] % find /jails/freshports
/jails/freshports
/jails/freshports/usr
/jails/freshports/usr/local
/jails/freshports/usr/local/etc
/jails/freshports/usr/local/etc/pkg
/jails/freshports/usr/local/etc/pkg/repos
/jails/freshports/usr/local/etc/pkg/repos/FreeBSD.conf
/jails/freshports/usr/local/etc/pkg/repos/local.conf
[17:13 dvl-ingress01 dvl ~] % ls -l /jails/freshports/usr/local/etc/pkg/repos
total 5
-rw-r--r--  1 root wheel  25 2024.02.08 00:47 FreeBSD.conf
-rw-r--r--  1 root wheel 209 2024.02.08 00:47 local.conf
[17:13 dvl-ingress01 dvl ~] % 

We don’t need or use that stuff in this type of jail. I’m not sure why it was created.

[17:14 dvl-ingress01 dvl ~] % sudo rm -rf /jails/freshports
[17:14 dvl-ingress01 dvl ~] % ls -l /jails                                   
total 9
drwxr-xr-x  18 root wheel 34 2024.02.11 15:23 freshports.14.1/

OK, now ready to create the new jail.

Create new jail

Using my favorite tool:

[17:15 dvl-ingress01 dvl ~] % sudo mkjail create -v 14.2-RELEASE -j freshports -a amd64
Creating data02/freshports/jailed/dvl-ingress01/jails/freshports...
Extracting base into /jails/freshports...
Updating freshports jail...

src component not installed, skipped
Cannot identify running kernel
[17:16 dvl-ingress01 dvl ~] % ls -l /jails/          
total 17
drwxr-xr-x  18 root wheel 22 2025.03.27 17:15 freshports/
drwxr-xr-x  18 root wheel 34 2024.02.11 15:23 freshports.14.1/
[17:16 dvl-ingress01 dvl ~] % file /jails/freshports/bin/sh
/jails/freshports/bin/sh: ELF 64-bit LSB pie executable, x86-64, version 1 (FreeBSD), dynamically linked, interpreter /libexec/ld-elf.so.1, for FreeBSD 14.2, FreeBSD-style, stripped
[17:16 dvl-ingress01 dvl ~] % 

Done.

Populate the jail with required scripts and configuration

I feel this should be a package, because it installs files and scripts. Here is a comparison:

[17:58 dvl-ingress01 dvl ~] % ls /jails/freshports /jails/freshports.14.1 
/jails/freshports:
COPYRIGHT  bin/       boot/      dev/       etc/       lib/       libexec/   media/     mnt/       net/       proc/      rescue/    root/      sbin/      sys        tmp/       usr/       var/

/jails/freshports.14.1:
COPYRIGHT                      etc/                           make-generate-plist.sh         make-showconfig.sh             realpath.sh                    tmp/
bin/                           lib/                           make-master-port-test.sh       media/                         rescue/                        usr/
boot/                          libexec/                       make-master-sites-all.sh       mnt/                           root/                          var/
cat-descr.sh                   make-category-comment.sh       make-pkg-message-in.sh         net/                           sbin/                          vars.sh
dev/                           make-flavors-package-names.sh  make-port.sh                   proc/                          sys                            vars.sh.sample
[17:59 dvl-ingress01 dvl ~] % 

However, I know it’s installed by a script:

[18:00 dvl-ingress01 dvl /usr/local/libexec/freshports] % grep -r make-category-comment.sh *
Jail/refresh-jail-scripts.sh:SCRIPTS="cat-descr.sh make-apply-slist.sh make-category-comment.sh make-flavors-package-names.sh make-generate-plist.sh make-master-port-test.sh make-master-sites-all.sh make-port.sh make-showconfig.sh realpath.sh"
Jail/scripts/make-category-comment.sh:# expected usage: sudo /usr/sbin/jexec JAIL /make-category-comment.sh REPO_PATH CATEGORYDIR
Jail/create-jail-directories.sh:freshports      ALL=(ALL) NOPASSWD:/usr/sbin/chroot -u freshports ${JAILBASE} /make-category-comment.sh *

The script is Jail/refresh-jail-scripts.sh. Let’s have a look:

[18:29 dvl-ingress01 dvl /usr/local/libexec/freshports] % cd Jail                                                              
[18:30 dvl-ingress01 dvl /usr/local/libexec/freshports/Jail] % ls -l
total 27
-rw-r--r--  1 dvl dvl  537 2024.02.09 20:43 README.txt
-rwxr-xr-x  1 dvl dvl  431 2024.02.09 20:43 copy-scripts-into-jail.sh
-rwxr-xr-x  1 dvl dvl 2815 2024.02.09 20:43 create-jail-directories.sh
drwxr-xr-x  4 dvl dvl    5 2024.02.09 20:43 files/
-rwxr-xr-x  1 dvl dvl  756 2024.02.09 20:43 refresh-jail-scripts.sh
drwxr-xr-x  2 dvl dvl   13 2024.02.09 20:43 scripts/
[18:30 dvl-ingress01 dvl /usr/local/libexec/freshports/Jail] % cat README.txt 
FreshPorts now uses a jexec and a FreeBSD jail strategy for extracting information from the ports tree.

On non-dev jails, the scripts which are required in the jail are installed
by the package p5-freshports-scripts.

On dev environments, to install the scripts into the jail, issue the following command:

./copy-scripts-into-jail.sh /jails/freshports/

The scripts required for the jail will be copied to the base directory of
the jail.  These scripts are located in the scripts subdirectory relative to
the file you are reading now.
[18:30 dvl-ingress01 dvl /usr/local/libexec/freshports/Jail] % 

Let’s try it:

[18:32 dvl-ingress01 dvl /usr/local/libexec/freshports/Jail] % sudo ./copy-scripts-into-jail.sh /jails/freshports
This entry is required in scripts/config.sh:
FRESHPORTS_JAIL_BASE_DIR="/jails/freshports"
This entry is required in /usr/local/etc/freshports/config.pm
$FreshPorts::Config::JailBaseDir = ${JAILBASE}

Since this is an update, the variables mentioned in the output are already configured:

[18:33 dvl-ingress01 dvl /usr/local/libexec/freshports/Jail] % sudo grep FRESHPORTS_JAIL_BASE_DIR /usr/local/etc/freshports/config.sh
FRESHPORTS_JAIL_BASE_DIR="/jails/$FRESHPORTS_JAIL_NAME"
# This is relative to FRESHPORTS_JAIL_BASE_DIR

[18:34 dvl-ingress01 dvl /usr/local/libexec/freshports/Jail] % sudo grep FRESHPORTS_JAIL_NAME /usr/local/etc/freshports/config.sh
FRESHPORTS_JAIL_NAME="freshports"
FRESHPORTS_JAIL_BASE_DIR="/jails/$FRESHPORTS_JAIL_NAME"

[18:33 dvl-ingress01 dvl /usr/local/libexec/freshports/Jail] % sudo grep JailBaseDir /usr/local/etc/freshports/config.pm
$FreshPorts::Config::JailBaseDir                  = "/jails/$FreshPorts::Config::JailName";

What do we have now?

This seems to match now:

[18:35 dvl-ingress01 dvl ~] % ls /jails/freshports /jails/freshports.14.1     
/jails/freshports:
COPYRIGHT                      etc/                           make-generate-plist.sh         make-showconfig.sh             realpath.sh                    tmp/
bin/                           lib/                           make-master-port-test.sh       media/                         rescue/                        usr/
boot/                          libexec/                       make-master-sites-all.sh       mnt/                           root/                          var/
cat-descr.sh                   make-category-comment.sh       make-pkg-message-in.sh         net/                           sbin/                          vars.sh.sample
dev/                           make-flavors-package-names.sh  make-port.sh                   proc/                          sys

/jails/freshports.14.1:
COPYRIGHT                      etc/                           make-generate-plist.sh         make-showconfig.sh             realpath.sh                    tmp/
bin/                           lib/                           make-master-port-test.sh       media/                         rescue/                        usr/
boot/                          libexec/                       make-master-sites-all.sh       mnt/                           root/                          var/
cat-descr.sh                   make-category-comment.sh       make-pkg-message-in.sh         net/                           sbin/                          vars.sh
dev/                           make-flavors-package-names.sh  make-port.sh                   proc/                          sys                            vars.sh.sample

But see there, we’re missing vars.sh.

Copy in the only real configuration file

Let’s get vars.sh:

[18:35 dvl-ingress01 dvl ~] % sudo cp -i /jails/freshports.14.1/vars.sh /jails/freshports/
[18:37 dvl-ingress01 dvl ~] % cat /jails/freshports/vars.sh
#!/bin/sh
#
# This file contains any constants needed by the other scripts
# usually, you don't need to change these values
#

MAKE=/usr/bin/make
LOCALBASE=/nonexistentlocal
X11BASE=/nonexistentx
[18:37 dvl-ingress01 dvl ~] % 

Start the new jail

Very straight forward:

[18:37 dvl-ingress01 dvl ~] % sudo service jail start
Starting jails: freshports.
[18:38 dvl-ingress01 dvl ~] % jls
   JID  IP Address      Hostname                      Path
  1525  10.55.0.81      freshports                    /jails/freshports
[18:38 dvl-ingress01 dvl ~] % 

Oh, we need the ports tree.

[18:38 dvl-ingress01 dvl ~] % ls /jails/freshports.14.1/usr/ports
CHANGES          Makefile         UPDATING         benchmarks/      databases/       emulators/       german/          java/            multimedia/      polish/          security/        www/             x11-servers/
CONTRIBUTING.md  Mk/              accessibility/   biology/         deskutils/       filesystems/     graphics/        korean/          net/             ports-mgmt/      shells/          x11/             x11-themes/
COPYRIGHT        README           arabic/          cad/             devel/           finance/         hebrew/          lang/            net-im/          portuguese/      sysutils/        x11-clocks/      x11-toolkits/
GIDs             Templates/       archivers/       chinese/         distfiles/       french/          hungarian/       mail/            net-mgmt/        print/           textproc/        x11-drivers/     x11-wm/
Keywords/        Tools/           astro/           comms/           dns/             ftp/             irc/             math/            net-p2p/         russian/         ukrainian/       x11-fm/
MOVED            UIDs             audio/           converters/      editors/         games/           japanese/        misc/            news/            science/         vietnamese/      x11-fonts/
[18:39 dvl-ingress01 dvl ~] % 

Putting the ports tree outside the jail

Damn. This needs some thinking. Why do a fresh clone of 221948 files when we have it sitting right there.

What I could do is make it a nullfs mount… and part of the jail start/stop script is to mount/umount it.

Creation

Let’s do this:

[18:43 dvl-ingress01 dvl ~freshports] % sudo git clone https://git.FreeBSD.org/ports.git
Cloning into 'ports'...
remote: Enumerating objects: 6517384, done.
remote: Counting objects: 100% (201318/201318), done.
remote: Compressing objects: 100% (151414/151414), done.
remote: Total 6517384 (delta 105594), reused 91098 (delta 49076), pack-reused 6316066 (from 1)
Receiving objects: 100% (6517384/6517384), 1.36 GiB | 10.09 MiB/s, done.
Resolving deltas: 100% (3923561/3923561), done.
Checking objects: 100% (16777216/16777216), done.
Updating files: 100% (163545/163545), done.
[18:53 dvl-ingress01 dvl ~freshports] % ls -l
total 27
drwxr-xr-x   4 www        freshports  4 2024.02.07 16:10 cache/
drwxrwxr-x   7 freshports freshports  7 2024.02.14 21:28 message-queues/
drwxr-xr-x  24 freshports freshports 24 2024.03.10 04:41 packagesite/
drwxr-xr-x  70 root       wheel      82 2025.03.27 18:53 ports/
drwxr-xr-x   2 freshports freshports  2 2025.03.27 18:00 signals/
drwxrwxr-x   2 freshports freshports  2 2024.02.09 20:12 tmp/
[18:58 dvl-ingress01 dvl ~freshports] % 

Now, for mounting, I need to modify /etc/jail.conf to include:

mount.fstab = "/etc/fstab.$name"

I suspect I need to update something in the host_init repo for that.

I created this file:

[19:16 dvl-ingress01 dvl ~freshports] % cat /etc/fstab.freshports    
# Mount the ports tree into the jail
#
/var/db/freshports/ports /jails/freshports/usr/ports    nullfs  rw,nosuid,noexec  0   0

And created this directory, which I think could be part of jail.conf:

[19:15 dvl-ingress01 dvl ~freshports] % sudo mkdir /jails/freshports/usr/ports

With a restart:

[19:16 dvl-ingress01 dvl ~freshports] % sudo service jail restart             
Stopping jails:.
Starting jails: freshports.

We have ports:

[19:16 dvl-ingress01 dvl ~freshports] % ls -l /jails/freshports/usr/ports
total 2982
-rw-r--r--     1 root wheel 147738 2025.03.27 18:52 CHANGES
-rw-r--r--     1 root wheel    727 2025.03.27 18:52 CONTRIBUTING.md
-rw-r--r--     1 root wheel   1412 2025.03.27 18:52 COPYRIGHT
-rw-r--r--     1 root wheel  13148 2025.03.27 18:52 GIDs
drwxr-xr-x     2 root wheel     23 2025.03.27 18:52 Keywords/
-rw-r--r--     1 root wheel 418299 2025.03.27 18:52 MOVED
-rw-r--r--     1 root wheel   7285 2025.03.27 18:52 Makefile
drwxr-xr-x     6 root wheel     25 2025.03.27 18:52 Mk/
-rw-r--r--     1 root wheel   1259 2025.03.27 18:52 README
drwxr-xr-x     3 root wheel     11 2025.03.27 18:52 Templates/
drwxr-xr-x     3 root wheel      5 2025.03.27 18:52 Tools/
-rw-r--r--     1 root wheel  46297 2025.03.27 18:52 UIDs
-rw-r--r--     1 root wheel 144039 2025.03.27 18:52 UPDATING
drwxr-xr-x    36 root wheel     37 2025.03.27 18:52 accessibility/
drwxr-xr-x    11 root wheel     13 2025.03.27 18:52 arabic/
drwxr-xr-x   304 root wheel    305 2025.03.27 18:52 archivers/
drwxr-xr-x   148 root wheel    149 2025.03.27 18:52 astro/
drwxr-xr-x   900 root wheel    901 2025.03.27 18:52 audio/
drwxr-xr-x   120 root wheel    121 2025.03.27 18:52 benchmarks/
drwxr-xr-x   258 root wheel    259 2025.03.27 18:52 biology/
drwxr-xr-x   163 root wheel    164 2025.03.27 18:52 cad/
drwxr-xr-x   134 root wheel    136 2025.03.27 18:52 chinese/
drwxr-xr-x   237 root wheel    238 2025.03.27 18:52 comms/
drwxr-xr-x   191 root wheel    192 2025.03.27 18:52 converters/
drwxr-xr-x  1113 root wheel   1114 2025.03.27 18:52 databases/
drwxr-xr-x   320 root wheel    321 2025.03.27 18:52 deskutils/
drwxr-xr-x  8437 root wheel   8438 2025.03.27 18:52 devel/
drwxr-xr-x   246 root wheel    247 2025.03.27 18:52 dns/
drwxr-xr-x   297 root wheel    298 2025.03.27 18:52 editors/
drwxr-xr-x   198 root wheel    199 2025.03.27 18:52 emulators/
drwxr-xr-x   143 root wheel    144 2025.03.27 18:52 filesystems/
drwxr-xr-x   161 root wheel    162 2025.03.27 18:52 finance/
drwxr-xr-x    15 root wheel     17 2025.03.27 18:52 french/
drwxr-xr-x   101 root wheel    102 2025.03.27 18:52 ftp/
drwxr-xr-x  1186 root wheel   1187 2025.03.27 18:52 games/
drwxr-xr-x    22 root wheel     24 2025.03.27 18:52 german/
drwxr-xr-x  1309 root wheel   1310 2025.03.27 18:52 graphics/
drwxr-xr-x     9 root wheel     11 2025.03.27 18:52 hebrew/
drwxr-xr-x     9 root wheel     11 2025.03.27 18:52 hungarian/
drwxr-xr-x    97 root wheel     98 2025.03.27 18:52 irc/
drwxr-xr-x   309 root wheel    311 2025.03.27 18:52 japanese/
drwxr-xr-x   107 root wheel    108 2025.03.27 18:52 java/
drwxr-xr-x    52 root wheel     54 2025.03.27 18:52 korean/
drwxr-xr-x   403 root wheel    404 2025.03.27 18:52 lang/
drwxr-xr-x   764 root wheel    765 2025.03.27 18:52 mail/
drwxr-xr-x  1303 root wheel   1304 2025.03.27 18:52 math/
drwxr-xr-x   695 root wheel    696 2025.03.27 18:52 misc/
drwxr-xr-x   419 root wheel    420 2025.03.27 18:52 multimedia/
drwxr-xr-x  1721 root wheel   1722 2025.03.27 18:53 net/
drwxr-xr-x   181 root wheel    182 2025.03.27 18:52 net-im/
drwxr-xr-x   437 root wheel    438 2025.03.27 18:52 net-mgmt/
drwxr-xr-x   113 root wheel    114 2025.03.27 18:52 net-p2p/
drwxr-xr-x    67 root wheel     68 2025.03.27 18:53 news/
drwxr-xr-x    13 root wheel     15 2025.03.27 18:53 polish/
drwxr-xr-x    86 root wheel     87 2025.03.27 18:53 ports-mgmt/
drwxr-xr-x    11 root wheel     13 2025.03.27 18:53 portuguese/
drwxr-xr-x   273 root wheel    274 2025.03.27 18:53 print/
drwxr-xr-x    34 root wheel     36 2025.03.27 18:53 russian/
drwxr-xr-x   529 root wheel    530 2025.03.27 18:53 science/
drwxr-xr-x  1432 root wheel   1433 2025.03.27 18:53 security/
drwxr-xr-x    82 root wheel     83 2025.03.27 18:53 shells/
drwxr-xr-x  1605 root wheel   1606 2025.03.27 18:53 sysutils/
drwxr-xr-x  2232 root wheel   2233 2025.03.27 18:53 textproc/
drwxr-xr-x    11 root wheel     13 2025.03.27 18:53 ukrainian/
drwxr-xr-x    18 root wheel     20 2025.03.27 18:53 vietnamese/
drwxr-xr-x  2645 root wheel   2646 2025.03.27 18:53 www/
drwxr-xr-x   677 root wheel    678 2025.03.27 18:53 x11/
drwxr-xr-x    48 root wheel     49 2025.03.27 18:53 x11-clocks/
drwxr-xr-x    27 root wheel     28 2025.03.27 18:53 x11-drivers/
drwxr-xr-x    32 root wheel     33 2025.03.27 18:53 x11-fm/
drwxr-xr-x   355 root wheel    356 2025.03.27 18:53 x11-fonts/
drwxr-xr-x     8 root wheel      9 2025.03.27 18:53 x11-servers/
drwxr-xr-x   172 root wheel    173 2025.03.27 18:53 x11-themes/
drwxr-xr-x   271 root wheel    272 2025.03.27 18:53 x11-toolkits/
drwxr-xr-x   133 root wheel    134 2025.03.27 18:53 x11-wm/

Testing the new jail / ports tree location

I started both daemons:

[19:16 dvl-ingress01 dvl ~freshports] % sudo sevice ingress start        
sudo: sevice: command not found
[19:21 dvl-ingress01 dvl ~freshports] % sudo service ingress start
Starting ingress.

There were some commits to process:

[19:21 dvl-ingress01 dvl ~freshports] % ls ~ingress/message-queues/incoming 
2025.03.27.17.50.11.000000.5949b3d67897eab5dcf5067a2abd06f80d4975a2.xml  2025.03.27.19.06.37.000004.a9097e0cd9ee6794deea0015289aae24f8176916.xml  2025.03.27.19.13.44.000002.d5989f4c12aba99d1c2e6b35fa1940bebdb0d979.xml
2025.03.27.18.18.39.000001.c43637b0ab08aff4f8dc7147145350edf4c26c13.xml  2025.03.27.19.09.11.000005.7eb19a67e08cec39e733e1ffd8c63898bdfa7992.xml  2025.03.27.19.17.25.000003.07105474453006fc1ab49aeadbd985b6a63467d0.xml
2025.03.27.19.04.40.000002.50ae2c8097c3e958091528fefe546d5672811e62.xml  2025.03.27.19.13.30.000000.6062db928a5893fb741b1e07628c1caff99c29a3.xml  2025.03.27.19.18.41.000006.479a60b5e07751ed86e6d49de086da3d0ad99785.xml
2025.03.27.19.05.09.000003.359023517d8acafb9e7298aec77438d8888ba89d.xml  2025.03.27.19.13.37.000001.8fa08edebcecb32467ae1821c6749800027dd70d.xml

Eventually, everything caught up.

Not the end

Now that I have a proof of concept, I’ll try it out on dev, then try to script it for test.

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

Leave a Comment

Scroll to Top