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:
- upgrade only the GENERIC kernel package from my pkgbase set
- reboot
- upgrade all the remaining base system packages from my pkgbase set
- update the EFI boot loader from the just-installed FreeBSD-bootloader
- re-bootstrap pkg for the new userland from the public pkg.freebsd.org packages
- delete all non-base system packages to remove a few years of cruft
- install my minimal useful package list
- reboot again
- install all the toys
- celebrate
In practice I didn't quite follow this recipe, but close enough.
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.
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
# 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:
ca_root_nss: 3.115 [FreeBSD]
...