Last active 1757205434

Revision 6d9347e80a68ddb7ea2d0bb0f2b9b9c4592c279a

plan.md Raw

updating 15.0-CURRENT from ~ 3 weeks ago to 15.0-ALPHA1

NB I built my own pkgbase set, based off stable/15 @ 0b3d82579a01db4c5d874cda1ac468bb8f26c109

The overall plan is:

  1. upgrade only the GENERIC kernel package from my pkgbase set
  2. reboot
  3. upgrade all the remaining base system packages from my pkgbase set
  4. update the EFI boot loader from the just-installed FreeBSD-bootloader
  5. re-bootstrap pkg for the new userland from the public pkg.freebsd.org packages
  6. delete all non-base system packages to remove a few years of cruft
  7. install my minimal useful package list
  8. reboot again
  9. install all the toys
  10. celebrate

In practice I didn't quite follow this recipe, but close enough.

upgrade.md Raw

upgrade just the kernel first, and reboot

# pkg upgrade -r pkg-base FreeBSD-kernel-generic
Updating pkg-base repository catalogue...
pkg-base repository is up to date.
pkg-base is up to date.
The following 1 package(s) will be affected (of 0 checked):

Installed packages to be UPGRADED:
        FreeBSD-kernel-generic: 15.snap20250610163850 -> 15.0.1.20250906130029 [pkg-base]

Number of packages to be upgraded: 1

The operation will free 5 MiB.
45 MiB to be downloaded.

Proceed with this action? [y/N]: y
[1/1] Fetching FreeBSD-kernel-generic-15.0.1.20250906130029.pkg: 100%   45 MiB   9.4MB/s    00:05
Checking integrity... done (0 conflicting)
[1/1] Upgrading FreeBSD-kernel-generic from 15.snap20250610163850 to 15.0.1.20250906130029...
[1/1] Extracting FreeBSD-kernel-generic-15.0.1.20250906130029: 100%

reboot ok

pkg upgrade -r pkg-base -g FreeBSD-\*
Updating pkg-base repository catalogue...
pkg-base repository is up to date.
pkg-base is up to date.
The following 277 package(s) will be affected (of 0 checked):

New packages to be INSTALLED:
        FreeBSD-bmake: 15.0.1.20250906130029 [pkg-base]

Installed packages to be UPGRADED:
        FreeBSD-acct: 15.snap20250724142936 -> 15.0.1.20250906130029 [pkg-base]
...     FreeBSD-zoneinfo: 15.snap20250724142936 -> 15.0.1.20250906130029 [pkg-base]

Number of packages to be installed: 1
Number of packages to be upgraded: 276

The operation will free 19 MiB.
147 MiB to be downloaded.

Proceed with this action? [y/N]: y
[1/277] Fetching FreeBSD-nvme-tools-15.0.1.20250906130029.pkg: 100%   75 KiB  77.0kB/s    00:01
...
[277/277] Fetching FreeBSD-mlx-tools-man-15.0.1.20250906130029.pkg: 100%    2 KiB   2.4kB/s    00:01
Checking integrity... done (22 conflicting)
  - FreeBSD-toolchain-man-15.0.1.20250906130029 [pkg-base] conflicts with FreeBSD-clang-man-15.snap20250724142936 [installed] on /usr/share/man/man1/ar.1.gz
  - FreeBSD-toolchain-man-15.0.1.20250906130029 [pkg-base] conflicts with FreeBSD-utilities-man-15.snap20250724142936 [installed] on /usr/share/man/man1/strings.1.gz
  - FreeBSD-lp-man-15.0.1.20250906130029 [pkg-base] conflicts with FreeBSD-utilities-man-15.snap20250724142936 [installed] on /usr/share/man/man5/hosts.lpd.5.gz
  - FreeBSD-clibs-man-15.0.1.20250906130029 [pkg-base] conflicts with FreeBSD-utilities-man-15.snap20250724142936 [installed] on /usr/share/man/man3/ARB16_ENTRY.3.gz
  - FreeBSD-rc-man-15.0.1.20250906130029 [pkg-base] conflicts with FreeBSD-utilities-man-15.snap20250724142936 [installed] on /usr/share/man/man5/rc.conf.5.gz
  - FreeBSD-smbutils-man-15.0.1.20250906130029 [pkg-base] conflicts with FreeBSD-utilities-man-15.snap20250724142936 [installed] on /usr/share/man/man5/nsmb.conf.5.gz
  - FreeBSD-pf-man-15.0.1.20250906130029 [pkg-base] conflicts with FreeBSD-utilities-man-15.snap20250724142936 [installed] on /usr/share/man/man5/pf.conf.5.gz
  - FreeBSD-csh-15.0.1.20250906130029 [pkg-base] conflicts with FreeBSD-utilities-15.snap20250724142936 [installed] on /usr/share/nls/de_DE.UTF-8/tcsh.cat
  - FreeBSD-kerberos-man-15.0.1.20250906130029 [pkg-base] conflicts with FreeBSD-kerberos-lib-man-15.snap20250724142936 [installed] on /usr/share/man/man1/krb5-config.1.gz
  - FreeBSD-runtime-man-15.0.1.20250906130029 [pkg-base] conflicts with FreeBSD-utilities-man-15.snap20250724142936 [installed] on /usr/share/man/man1/alias.1.gz
  - FreeBSD-acct-man-15.0.1.20250906130029 [pkg-base] conflicts with FreeBSD-utilities-man-15.snap20250724142936 [installed] on /usr/share/man/man5/acct.5.gz
  - FreeBSD-toolchain-15.0.1.20250906130029 [pkg-base] conflicts with FreeBSD-clang-15.snap20250724142936 [installed] on /usr/bin/ar
  - FreeBSD-toolchain-15.0.1.20250906130029 [pkg-base] conflicts with FreeBSD-utilities-15.snap20250724142936 [installed] on /usr/bin/strings
  - FreeBSD-clang-man-15.0.1.20250906130029 [pkg-base] conflicts with FreeBSD-utilities-man-15.snap20250724142936 [installed] on /usr/share/man/man5/ar.5.gz
  - FreeBSD-clibs-15.0.1.20250906130029 [pkg-base] conflicts with FreeBSD-utilities-15.snap20250724142936 [installed] on /usr/share/doc/ncurses/hackguide.html
  - FreeBSD-ssh-man-15.0.1.20250906130029 [pkg-base] conflicts with FreeBSD-utilities-man-15.snap20250724142936 [installed] on /usr/share/man/man5/moduli.5.gz
  - FreeBSD-ufs-man-15.0.1.20250906130029 [pkg-base] conflicts with FreeBSD-utilities-man-15.snap20250724142936 [installed] on /usr/share/man/man5/fs.5.gz
  - FreeBSD-ee-15.0.1.20250906130029 [pkg-base] conflicts with FreeBSD-utilities-15.snap20250724142936 [installed] on /usr/share/misc/init.ee
  - FreeBSD-yp-man-15.0.1.20250906130029 [pkg-base] conflicts with FreeBSD-utilities-man-15.snap20250724142936 [installed] on /usr/share/man/man8/NIS.8.gz
  - FreeBSD-bmake-15.0.1.20250906130029 [pkg-base] conflicts with FreeBSD-utilities-15.snap20250724142936 [installed] on /usr/bin/bmake
  - FreeBSD-periodic-man-15.0.1.20250906130029 [pkg-base] conflicts with FreeBSD-utilities-man-15.snap20250724142936 [installed] on /usr/share/man/man5/periodic.conf.5.gz
  - FreeBSD-openssl-man-15.0.1.20250906130029 [pkg-base] conflicts with FreeBSD-openssl-lib-man-15.snap20250724142936 [installed] on /usr/share/openssl/man/man3/ACCESS_DESCRIPTION_free.3.gz
Checking integrity... done (0 conflicting)
Conflicts with the existing packages have been found.
One more solver iteration is needed to resolve them.
The following 279 package(s) will be affected (of 0 checked):

New packages to be INSTALLED:
        FreeBSD-bmake: 15.0.1.20250906130029 [pkg-base]

Installed packages to be UPGRADED:
        FreeBSD-acct: 15.snap20250724142936 -> 15.0.1.20250906130029 [pkg-base]
...     FreeBSD-zoneinfo: 15.snap20250724142936 -> 15.0.1.20250906130029 [pkg-base]

Installed packages to be REMOVED:
        FreeBSD-kerberos-lib-man: 15.snap20250724142936
        FreeBSD-openssl-lib-man: 15.snap20250724142936

Number of packages to be removed: 2
Number of packages to be installed: 1
Number of packages to be upgraded: 276

The operation will free 21 MiB.

Proceed with this action? [y/N]:y
Checking integrity... done (0 conflicting)
[1/500] Deinstalling FreeBSD-acct-man-15.snap20250724142936...
[1/500] Deleting files for FreeBSD-acct-man-15.snap20250724142936: 100%
...
[221/500] Deleting files for FreeBSD-zfs-15.snap20250724142936: 100%
[222/500] Upgrading FreeBSD-apm from 15.snap20250724142936 to 15.0.1.20250906130029...
[222/500] Extracting FreeBSD-apm-15.0.1.20250906130029: 100%
...
[449/500] Installing FreeBSD-certctl-15.0.1.20250906130029...
[449/500] Extracting FreeBSD-certctl-15.0.1.20250906130029: 100%
[450/500] Installing FreeBSD-caroot-15.0.1.20250906130029...
[450/500] Extracting FreeBSD-caroot-15.0.1.20250906130029: 100%
pkg: Cannot runscript POST-INSTALL:No such file or directory  <---------- woops
[451/500] Installing FreeBSD-certctl-man-15.0.1.20250906130029...
[451/500] Extracting FreeBSD-certctl-man-15.0.1.20250906130029: 100%
...
[472/500] Installing FreeBSD-ssh-15.0.1.20250906130029...
[472/500] Extracting FreeBSD-ssh-15.0.1.20250906130029:   0%
pkg: Impossible to merge configuration file: /etc/ssh/moduli <----------- woops
...
[500/500] Installing FreeBSD-zfs-man-15.0.1.20250906130029...
[500/500] Extracting FreeBSD-zfs-man-15.0.1.20250906130029: 100%

update EFI loader from FreeBSD-bootloader package

# cp /boot/efi/EFI/FreeBSD/current.efi   /boot/efi/EFI/FreeBSD/lastgood.efi
# cp /boot/loader.efi /boot/efi/EFI/FreeBSD/current.efi

delete userland

# pkg prime-origins | sort | uniq > /etc/15.lst
### trim a few things
# pkg delete $(egrep -v \# /etc/15.lst)
# pkg autoremove
Checking integrity... done (0 conflicting)
Deinstallation has been requested for the following 521 packages:

Installed packages to be REMOVED:
        Box2D: 2.4.1
...     FreeBSD-libsqlite3-lib32: 15.snap20250815041637  <--- interesting
        FreeBSD-runtime-lib32: 15.snap20250825085356     <--- interesting
...

# pkg delete $(pkg info |egrep -v ^FreeBSD | cut -wf 1 | egrep -v pkg-)
Checking integrity... done (0 conflicting)
Deinstallation has been requested for the following 532 packages (of 0 packages in the universe):

Installed packages to be REMOVED:
        abseil: 20250127.0
...     zstd: 1.5.7

Number of packages to be removed: 532

The operation will free 17 GiB.

Proceed with deinstalling packages? [y/N]:y
...

# pkg info |egrep -v ^FreeBSD | cut -wf 1
pkg-2.2.2

bootstrap pkg again and essential tools

# pkg-static bootstrap -f
pkg(8) is already installed. Forcing reinstallation through pkg(7).
The package management tool is not yet installed on your system.
Do you want to fetch and install it now? [y/N]: y
Bootstrapping pkg from pkg+https://pkg.FreeBSD.org/FreeBSD:15:amd64/latest, please wait...

# pkg install -r FreeBSD tmux rsync neovim htop fish ripgrep fd-find zoxide doas tarsnap \
  ca_root_nss haproxy-lua zerotier
Updating FreeBSD repository catalogue...
FreeBSD repository is up to date.
FreeBSD is up to date.
The following 34 package(s) will be affected (of 0 checked):

New packages to be INSTALLED:
        compat14x-amd64: 14.2.1402000.20250811 [FreeBSD]
        doas: 6.3p12 [FreeBSD]
...
Number of packages to be installed: 34

The process will require 115 MiB more space.
27 MiB to be downloaded.

Proceed with this action? [y/N]: y
...

reboot here & see if this all works

Indeed it does. Install the rest while enjoying a well-deserved beverage.

yolo-upgrade-14-to-15.md Raw

Naive Upgrade 14.3 non-pkgbase to 15 pkgbase

This would almost certainly be better with pkgbasify but YOLO gotta YOLO

# pkg -o ABI=FreeBSD:15:amd64 upgrade -r pkg-base FreeBSD-kernel-generic
# shutdown -r now

That worked, let's keep going. Gotta bootstrap pkg first tho.. nope why isn't ABI respected?


# pkg -o ABI=FreeBSD:15:amd64  bootstrap -f
pkg: Setting ABI requires setting OSVERSION, guessing the OSVERSION as: 1500000
pkg: Warning: Major OS version upgrade detected.  Running "pkg bootstrap -f" recommended
pkg(8) is already installed. Forcing reinstallation through pkg(7).
The package management tool is not yet installed on your system.
Do you want to fetch and install it now? [y/N]: y
Bootstrapping pkg from pkg+https://pkg.FreeBSD.org/FreeBSD:14:amd64/latest, please wait...
^C

# pkg-static -o ABI=FreeBSD:15:amd64  bootstrap -f
pkg-static: Setting ABI requires setting OSVERSION, guessing the OSVERSION as: 1500000
pkg-static: Warning: Major OS version upgrade detected.  Running "pkg bootstrap -f" recommended
pkg(8) is already installed. Forcing reinstallation through pkg(7).
The package management tool is not yet installed on your system.
Do you want to fetch and install it now? [y/N]: y
Bootstrapping pkg from pkg+https://pkg.FreeBSD.org/FreeBSD:14:amd64/latest, please wait...
^C
# pkg -o ABI=FreeBSD:15:amd64 update
pkg: Setting ABI requires setting OSVERSION, guessing the OSVERSION as: 1500000
pkg: Warning: Major OS version upgrade detected.  Running "pkg bootstrap -f" recommended
Updating FreeBSD repository catalogue...
pkg: Repository FreeBSD has a wrong packagesite, need to re-create database
Fetching meta.conf: 100%    179 B   0.2kB/s    00:01
Fetching data.pkg: 100%   10 MiB   1.1MB/s    00:10
Processing entries:   0%
Newer FreeBSD version for package ztop:
To ignore this error set IGNORE_OSVERSION=yes
- package: 1500063
- running userland: 1500000
Ignore the mismatch and continue? [y/N]: y
Processing entries: 100%
FreeBSD repository update completed. 36250 packages processed.
Updating FreeBSD-base repository catalogue...
Fetching meta.conf: 100%    179 B   0.2kB/s    00:01
Fetching data.pkg: 100%   60 KiB  61.9kB/s    00:01
Processing entries: 100%
FreeBSD-base repository update completed. 572 packages processed.
Updating pkg-base repository catalogue...
pkg-base repository is up to date.
Updating pkg repository catalogue...
pkg: Repository pkg has a wrong packagesite, need to re-create database
Fetching meta.conf: 100%    179 B   0.2kB/s    00:01
Fetching data.pkg: 100%  438 KiB 448.4kB/s    00:01
Processing entries: 100%
pkg repository update completed. 1427 packages processed.
All repositories are up to date.

that seems better?

OK I'm expecting this to break midway through.

# pkg -o ABI=FreeBSD:15:amd64 install -r pkg-base -g FreeBSD-\*

OK it didn't bork, so lets add the loader and clean up

# cp /boot/loader.efi /boot/efi/efi/freebsd/loader.efi
# rm -rf (fd pkgsave / |grep -v /etc |head -10000)
# rm -rf (fd pkgsave / |grep -v /etc |head -10000)
# rm -rf (fd pkgsave / |grep -v /etc |head -10000)

now etc

# cd /etc/
# rm rc.d/*.pkgsave defaults/*.pkgsave ssl/*.pkgsave mtree/*.pkgsave rc.*.pkgsave ttys.pkgsave
# rm devd/*.pkgsave net*.pkgsave mail/*.pkgsave periodic/*/*.pkgsave
# rm devd.conf.pkgsave gettytab.pkgsave gss/mech.pkgsave inetd.conf.pkgsave \
  newsyslog.conf.d/opensm.conf.pkgsave pam.d/ftp.pkgsave pccard_ether.pkgsave \
  phones.pkgsave pkg/FreeBSD.conf.pkgsave printcap.pkgsave protocols.pkgsave \
  rc.pkgsave regdomain.xml.pkgsave remote.pkgsave services.pkgsave shells.pkgsave \
# mv sysctl.conf.pkgsave sysctl.conf

now serious stuff

# mv master.passwd.pkgsave master.passwd
# mv group.pkgsave group
# vipw
vipw: password list updated
# rm ssh/moduli.pkgsave

append these custom settings to sshd_config

Port 2200
PermitRootLogin prohibit-password
KbdInteractiveAuthentication no
UsePAM no
UseDNS no

lets see if this boots (15.0-ALPHA1 but old userland)... it does! well well.

now we can do the pkg dance from before:

  • bootstrap
  • stash list of packages
  • upgrade everything
# pkg-static bootstrap -f
pkg-static: Warning: Major OS version upgrade detected.  Running "pkg bootstrap -f" recommended
pkg(8) is already installed. Forcing reinstallation through pkg(7).
The package management tool is not yet installed on your system.
Do you want to fetch and install it now? [y/N]: y
Bootstrapping pkg from pkg+https://pkg.FreeBSD.org/FreeBSD:15:amd64/latest, please wait...
Verifying signature with trusted certificate pkg.freebsd.org.2013102301... done
Installing pkg-2.2.2...
package pkg is already installed, forced install
Extracting pkg-2.2.2: 100%
# pkg prime-origins | sort | uniq > /etc/packages.lst
# pkg delete (pkg info | egrep -v '^(FreeBSD|pkg)-' | cut -wf 1)
# pkg prime-origins | sort | uniq
base
ports-mgmt/pkg