You're asking for a lot, and I am not prepared to spend the time it
would require. I have already updated x86/boot(8) and added a Xr
for mk.conf(5), and if someone wants to write a wiki page I will
happily review/edit it. wiz@ has already created a wiki page (see
https://wiki.netbsd.org/kernel_dir/) that may address some of your
concerns.
From this page it looks like kern + modules dir will lost modules arch/version information previously plainly visible in path?
I've also done my best here in this thread (and elsewhere) to make it
as clear as I can that this relates to KERNEL_DIR, and that is only
pertains to i386 and amd64. The option is entirely optional, but the
bootloader needs to cope with both "set" and "unset" environments, to
avoid a proliferation of boot images.
Most of the impact of KERNEL_DIR is already committed; this newest
proposal is minor and has minimal impact.
On Sun, 11 May 2025, Taylor R Campbell wrote:
>> Date: Sun, 11 May 2025 06:39:42 -0700 (PDT)
>> From: Paul Goyette <paul%whooppee.com@localhost>
>>
>> On Sun, 11 May 2025, Greg Troxel wrote:
>>
>>> Thus I suspect I am missing something.
>>
>> Yup, I think you're missing the fact that all of this relates to the
>> ratther new-ish KERNEL_DIR option, support for which was only recently
>> completed (by myself). KERNEL_DIR is described briefly in options(4),
>> and it is noted in both CHANGES and UPDATING.
>>
>> In short, KERNEL_DIR provides a mechanism to keep a kernel and its
>> associated modules together, addressing one of the most common
>> complaints about modules.
>>
>> Sorry for not making this more clear.
>
> I think it is important to
>
> (a) make this clear and obvious and intuitive, _and_
> (b) make sure we have tested any plausible transition paths that might
> happen.
>
> To that end, this present proposal aside (I haven't digested it, no
> comments about it), I would strongly suggest that you make a wiki page
> describing everything about the KERNEL_DIR changes (not just the terse
> summary in CHANGES, or the notes in UPDATING which are only for an
> audience of current users to maintain MKUPDATE=yes builds), including
> a systematic table of:
>
> 1. What has changed or will change in the standard bootloader?
> 2. What has changed or will change in a custom bootloader with any new
> build options?
> 3. What has changed or will change in an unmodified GENERIC kernel?
> 4. What has changed or will change in a custom kernel with any new
> build options?
> 5. What does/will sysinst do?
> 6. How are transitions/upgrades expected to happen? What will happen
> when a stock netbsd-10 installation is updated to a stock netbsd-11
> installation?
> 7. How have all of these scenarios been tested?
>
> We really need to make sure this doesn't become another /var/db/pkg
> renaming debacle that leaves everyone's machines in confusing
> inconsistent states requiring manual intervention.
>
> This type of change -- substantially altering the semantics of how the
> bootloader finds the kernel -- has an extremely high risk, not just of
> putting machines into confusing states, but of rendering them
> unbootable when you update the bootloader. And, if we were doing it
> again, I would ask that any changes be proposed to tech-kern and
> port-*, with all this relevant information, _before_ committing
> anything that affects default builds.
>
> (It's likely that there already are good answers to all of these
> questions, and you've already figured all this out -- it's just not
> clear to me from the CHANGES and UPDATING notes and the scattering of
> commit messages I've seen fly by, so I'm just asking for a clear
> picture to be presented in an obvious place to see how this will
> affect users.)
>
> !DSPAM:6820b69e284681540015745!
>
>
+---------------------+--------------------------+----------------------+
| Paul Goyette (.sig) | PGP Key fingerprint: | E-mail addresses: |
| (Retired) | 1B11 1849 721C 56C8 F63A | paul%whooppee.com@localhost |
| Software Developer | 6E2E 05FD 15CE 9F2D 5102 | pgoyette%netbsd.org@localhost |
| & Network Engineer | | pgoyette99%gmail.com@localhost |
+---------------------+--------------------------+----------------------+