Date: Mon, 22 Sep 2025 21:36:04 +0000 From: Shawn Webb <shawn.webb@hardenedbsd.org> To: Colin Percival <cperciva@freebsd.org> Cc: "freebsd-current@freebsd.org" <freebsd-current@freebsd.org>, FreeBSD Release Engineering Team <re@freebsd.org> Subject: Re: Plan for "distribution set" deprecation Message-ID: <xtkzcgocu5uwhqqghp27k4wjqu3cl24y4n4jcwms43bj6udm5e@wmnwfbucjpod> In-Reply-To: <fd63e8df-3209-4b83-9dc5-5df4ec690bbf@freebsd.org>
index | next in thread | previous in thread | raw e-mail
[-- Attachment #1 --] On Mon, Sep 22, 2025 at 11:54:30AM -0700, Colin Percival wrote: > Hi everyone, > > With pkgbase landing in 15.0, I decided that it's time to announce the > timeline for deprecation of the legacy "distribution sets". Here's the > plan: > > 15.0-RELEASE: > * PKGBASE becomes the default in release/Makefile and a new NOPKGBASE > option is added. > * The installer supports both install options, with dist sets marked > as "legacy" in the pick-how-to-install menu. > * The disc1 images only contain a pkgbase repo; people who want to install > from disc1 without pkgbase will need an internet connection. > * The dvd images contain both dist sets and a pkgbase repo suitable for > offline installation with either mechanism. > * Traditional FreeBSD Update will work for the entire 15.x branch, including > security updates, since this is relatively easy to do as long as we have dist > sets. > * Work is underway to make freebsd-update behave as a wrapper around pkgbase > on pkgbase-enabled systems (right now it just refuses to do anything). > > 16-CURRENT around 2026Q4: > * NODISTSETS becomes the default in release/Makefile and a new DISTSETS > option is added to enable them. > * support for dist sets in the installer is disabled by default (build > option to re-enable). > > 16.0-RELEASE and later: > * Legacy distribution sets are not included on any release media. > * Install images only support pkgbase. > * Legacy FreeBSD Update does not exist on 16.x; users will need to > pkgbasify their 15.x systems before upgrading to 16.x. > * Code for distribution sets remains in the tree so that it can be used > by downstream projects which aren't on pkgbase yet. > > 17-CURRENT around 2028Q4: > * All the dist set code gets removed from main. > > Note that this is all about releases and binary updates; the traditional > process for updating from source (installworld and friends) is not expected > to change in the near future. It's possible that *eventually* that will > move to a "stage the world, package it, and then install the packages" > approach (just like ports moved from installing directly to "staging" over > a decade ago) but if that change happens there will be ample notice. Hey Colin, Thank you for your (and others!) work on this. I'm hoping that this bug can be resolved before PKGBASE is enabled by default for release generation: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=287877 For the life of me, I can't figure out why I'm hitting that bug downstream. I've made the changes I need to make to match on HardenedBSD-related packages (and can provide the diff if needed.) But even with those changes (mainly just `sed s/FreeBSD/HardenedBSD/g`) I'm still hitting that lua assertion. I haven't tried on regular FreeBSD, only HardenedBSD. But I suspect that since another FreeBSD user is hitting that assertion, it's likely not related to HardenedBSD. I have confirmed that the pkgbase repo that gets built does indeed include the right kernel package. Hence why I'm puzzled why that lua assertion is being tripped. This is the one thing preventing HardenedBSD from being a guinea pig in this pkgbase effort. Update after writing the bulk of the email: I just retried making release media (previous attempt was just a day or two before that bug report having been submitted). I hit the same assertion, but the release/scripts/pkgbase-stage.lua script has changed. New line number: 38. Below is the HardenedBSD version of the script (again, mainly just a branding change). The line numbers are included at the very left. ==== BEGIN lua script OUTPUT ==== 22 local function select_packages(pkg, media, all_libcompats) 23 local components = {} 24 local rquery = capture(pkg .. "rquery -U -r HardenedBSD-base %n") 25 for package in rquery:gmatch("[^\n]+") do 26 local set = package:match("^HardenedBSD%-set%-(.*)$") 27 if set then 28 components[set] = package 29 -- Kernels other than FreeBSD-kernel-generic are ignored 30 -- Note that on powerpc64 and powerpc64le the names are 31 -- slightly different. 32 elseif package:match("^HardenedBSD%-kernel%-hardenedbsd.*-dbg") then 33 components["kernel-dbg"] = package 34 elseif package:match("^HardenedBSD-kernel%-hardened.*") then 35 components["kernel"] = package 36 end 37 end 38 assert(components["kernel"]) 39 assert(components["base"]) 40 41 local selected = {} 42 if media == "disc" then ==== END lua script OUTPUT ==== That assertion, the assert(components["kernel"]) is what fails, even though the package is actually there. Thanks, -- Shawn Webb Cofounder / Security Engineer HardenedBSD Signal Username: shawn_webb.74 Tor-ified Signal: +1 303-901-1600 / shawn_webb_opsec.50 https://git.hardenedbsd.org/hardenedbsd/pubkeys/-/raw/master/Shawn_Webb/03A4CBEBB82EA5A67D9F3853FF2E67A277F8E1FA.pub.asc [-- Attachment #2 --] -----BEGIN PGP SIGNATURE----- iQIzBAABCAAdFiEEA6TL67gupaZ9nzhT/y5nonf44foFAmjRwTAACgkQ/y5nonf4 4fr45A//W08YHGBX2E9E3XKWVnOjB1CZ8sFF+OAZXFdw0kCNmVDvdiZawbhTDECx pnrzQDY8Ux1ev2bCVH7FaRIdcR00QfdN4OZrT9HYdVlqzhOxSmTOWaILDDkfCB3Q rSLI1d40TmNwD8Jk7WrHZ1KXxipNDZFRJsA8k3BIUo6op4mP9JEf2CN8kfk5SZdc NCeMBNwLHNM83UWcaA7ga2DDA3jLTnioZoljV4FzHHk4Fb5jKuf+htFiNbJL5Rbf c7Fo9U+Nn6zwU8yzeJkpSA/cRQbfXXfrnMi7uKJzQ4zP8XKG4vL94MS5xCx8W/HV yuxaTzI0seK9Y/PsaKRBPJSOoexwV5SdWMpfnggbLbhlFzHKtSKNgUUBPSNW0ENE ol+ng4cc/rSuyOXIODl8wXsqvw1rKrt228wiwLOrYSj9fQcXhR/lbnh22x5yMi1a gDXtKUNe8ckUNFwNGybRbsPDYPHxbb2B/k8lTTlSl00bnPI/QBo1upgI1CswY+39 bUgWtB8e/lyyPu8NGiEXx4a/tSsym7NjNn5awUS0iwYm76d59DRmiUNiIFM0SZ6I 30EwHrEpup7YQX/8JMSZp4IzGNF03VWqMq9w+pEH+1F3I9+MtkSkhAOxS+RP7bcM Khp1vBPYVwlLTNSeKCmuAjTehd5Jif61PDQt6BPZQrGXmu2qlAU= =7734 -----END PGP SIGNATURE-----help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?xtkzcgocu5uwhqqghp27k4wjqu3cl24y4n4jcwms43bj6udm5e>
