CFT - Out of Tree Package Base (Round 2)
kris at ixsystems.com
kris at ixsystems.com
Fri Jul 5 21:30:52 UTC 2019
It’s been a few months since our earlier CFT. Since then we’ve had a Working Group at BSDCan, as well as feedback from different parties on our implementation of base-packages into the ports tree. Much of this feedback has been helpful, and we’ve incorporated it into a patch that’s in review:
Download 13-CURRENT (Updated weekly with full ports tree build)
Download 12-STABLE (Updated weekly with full ports tree build)
Here’s a quick recap of what’s changed since the initial CFT:
- Broken out critical libs -
(rtld/libc/libm/etc) into a ‘-bootstrap’ package, to minimize the risk that a crashed/aborted update will result in a non-bootable system
- Added FLAVORS support (Currently generic/minimal/nozfs) -
The testing images also show a “openzfs” option, which uses the ‘nozfs’ flavor to install, and loads sysutils/openzfs as the base system ZFS
- Added a ‘freebsd-update’ replacement, ‘base-update’. -
This utility handles the update process, similar to ‘freebsd-update’. If kernel updates are present, it will do those as stage 1 (Along with installed *-kmod packages) and prompt for a reboot. On next run, the -bootstrap and other userland packages will be updated in the correct order. Additionally there is a “merge” option, which will interactively walk the user through a mergemaster-style update of files in /etc which could not be automatically updated by pkg.
- Split userland package into smaller subset, allowing for small download sizes on slow connections, especially when only issuing updates -
When dealing with updates, and especially on smaller devices such as a RPI, this will make the initial update / download much more manageable. For security updates to libraries, (on amd64) the package tops out at about 8MB. (More details in the Phab review if you are curious)
So what’s next?
Still on our TODO is adding a script which will allow you to convert your existing FreeBSD installation over to managed by base packages. Additionally we intend to spin up a new weekly build for 12.0-RELEASE images/packages, allowing users to try out the migration / update process from 12.0 -> 12.1 and more real-world usage.
Lastly, we’re still trying to work through some issues with Portmgr to see about bringing this patch into the project in some form. Hopefully we can reach some sort of agreement on a path forward for this work, but in the meantime we’ll keep publishing updated images / packages weekly, since right now its nice to be using base packages in the real-world 😊
Thanks for reading. Appreciate feedback / review!
More information about the freebsd-pkgbase