Skip site navigation (1)Skip section navigation (2)
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>