Subject: Re: OK to put `uname -r` in "Release:" field of "send-pr"?
To: Luke Mewburn <lukem@netbsd.org>
From: Frederick Bruckman <fredb@immanent.net>
List: tech-userlevel
Date: 10/18/2001 21:48:01
On Fri, 19 Oct 2001, Luke Mewburn wrote:

> On Thu, Oct 18, 2001 at 12:28:31PM -0500, Frederick Bruckman wrote:
> > Would anyone object if I change the "send-pr" Makefile to put the (build
> > time) result of `uname -r` into the "send-pr" script itself?

> 1. With the current method, we get DEFAULT_RELEASE from
>    gnu/usr.bin/send-pr/Makefile, which is "<NetBSD current source date>"
>    for -current, and a more specific version for a release.

Evidently, that's difficult for releng to keep up with! 3 PR's have
been filed for the same thing (DEFAULT_RELEASE in send-pr 1.5.2 says
"NetBSD 1.5.1"), and I sent an email to releng -- no response. The fix
suggested in PR 14217 is a laudable effort to make this maintenance
free in the future.

> 2. With `uname -r` at run-time, we get the kernel version of the running
>    kernel, which might be newer than userland.

> 3. With `uname -r` at build time, we get the kernel version from that
>    time of build. At best this reflects the status of the send-pr
>    build.

For the normal case, where you "cvs update" the sources, then upgrade
the kernel, then upgrade userland, it doesn't matter...

>    Also suggesting `ident foo` output for a program (and possibly
>    that of any referenced shared libraries - a tool which uses
>    file(1), ldd(1), and ident(1) would be useful here) could be of
>    assistance.

I thought of the former, but I couldn't think of a message that fits
the pattern (one-line and concise).

> Out of these, I'd argue for `2.' as the solution.  (Running system
> `uname -r`, update the send-pr prompts to remind people about
> kernel<->userland version skew)

OK. I realize now, the bad thing about `3', is that it would do
entirely the wrong thing for cross-builds.

I also thought of getting __NetBSD_Version__ out of <sys/param.h> and
massaging it, but that's complicated, and it still fails if the kernel
and userland are out of sync.

> (As a medium term project, we should ensure that we provide full
> CVS version strings in kernel source files. I compile with full
> debugging symbols (both kernel and userland), and for my kernels
> I only get CVS ids for ipfilter, some wscons stuff, and one audio
> driver. Something's not right there (IMHO)...)

I guess that means adding

#include <sys/cdefs.h>
__KERNEL_RCSID(0, "$NetBSD$");

to lots and lots of files in syssrc?

Frederick