On Mon, 2011-08-22 at 14:54 -0500, Jonathan Nieder wrote: > Ben Hutchings wrote: > > > I think the problem is that many generic scripts that attempt to > > capture the kernel version will not use 'uname -a', 'uname -rv', or > > similar. If they were to use /proc/version, that would be sufficient, > > but then the uname commands probably work for almost every other > > distribution. A generic script won't check package status (which > > in any case doesn't necessarily match the running kernel version). > > > > (We have an even worse problem with kernel tracebacks; they only show > > the release e.g. '2.6.32-5-amd64'. But we could change that too.) > > Thanks for explaining. I fear this gets into thorny territory quickly > --- the ideal behavior would be > > $ uname -r > 3.0.0-2 > > but it is not uncommon to want to examine the linux-image-$(uname -r) > package and various scripts assume that modules live in > /lib/modules/$(uname -r). Thus a proper fix involves finding a way > for (out-of-tree) modules to be shared between kernels with different > ABI as long as they are compatible with the module, so the ABI version > could be bumped for every stable update. Which is something that was > wanted anyway.
Right.
> In the short term, though, some hack like the following could help, to
> tweak "uname -v" output. (And maybe including UTS_VERSION in
> tracebacks as an additional patch, as you mentioned.)
[...]
We already patch scripts/mkcompile_h to add the Debian-specific
information to /proc/version (see debian/patches/debian/version.patch).
We definitely shouldn't replace any information in custom builds from
linux-source-*, but there isn't generally enough space to append the
full Debian version. So I would suggest something like:
--- a/scripts/mkcompile_h
+++ b/scripts/mkcompile_h
@@ -58,6 +58,13 @@
if [ -n "$SMP" ] ; then CONFIG_FLAGS="SMP"; fi
if [ -n "$PREEMPT" ] ; then CONFIG_FLAGS="$CONFIG_FLAGS PREEMPT"; fi
UTS_VERSION="$UTS_VERSION $CONFIG_FLAGS $TIMESTAMP"
+
+DISTRIBUTION=$(lsb_release -is 2>/dev/null)
+DISTRIBUTION=${DISTRIBUTION:-Debian}
+
+if [ "$DISTRIBUTION_OFFICIAL_BUILD" ]; then
+ UTS_VERSION="#0 $DISTRIBUTION $DISTRIBUTION_VERSION"
+fi
# Truncate to maximum length
--- END ---
Ben.
signature.asc
Description: This is a digitally signed message part

