So, the good news is that I resolved the libc NEEDED section thing. All is working now. As part of the stuff I've been putting off, I'm packging up the 1.6.1 tools (netbsd-make, netbsd-libc, etc), and will probably look at building some sort of netbsd-kernutils (things like ps, kill, etc, which are bound to the kernel interfaces). As part of this, I'd like to try to do some basic kernel packages. In considering this, I realized htat we have a potentially serious problem - if you install a new libc on an older-kernel system, it may well blow up in a way that cannot easily be recovered. So I've written a mini-policy covering a way to prevent this (in the absence of versioned Provides; we can't just Provide: netbsd-kernel (1.6.1) in any form). One thing to be careful of, and I'd like some refresher on this point, is whether the COMPAT stuff in the kernel can provide old interfaces sufficiently well that having, say, a -current kernel with COMPAT for 1.6.1 means you can sanely use 1.6.1 libc or kernel-reading tools. The proposed policy is attached, and I'd *really* like feedback on this, especially from folks who are more intimately familiar with NetBSD's kernel stuff. -- Joel Baker <email@example.com>
NetBSD requires that the kernel and core libraries stay in fairly tight sync; to this end, a special set of meta-packages are used for Provides (to work around the fact that Provides can't be versioned, and the fact that a given kernel can support older releases, but does not always do so). Kernels must always have a Provides entry for the specific image that they contain, of the form: netbsd-kernel-image-<version> (i.e., kernel-image-1.6.1) Additionally, kernels must have a Provides entry for *each* of the compatibility levels they are compiled to support. FIXME: document how to check this. These Provides entries are in the form: netbsd-kernel-image-compat-<version> Binaries or libraries that depend on or interact with kernel functionality should have a suitable Depends (or Pre-Depends or Build-Depends, as suitable) entry of the form: netbsd-kernel-image-compat-<version> This will ensure that they are only installed on systems with a kernel image that can support them. (It does not make it impossible to do something quite braindead, such as booting an older kernel with a newer libc, but it should in theory protect one from ending up in a state where a simple reboot to the appropriate kernel isn't possible).
Description: PGP signature