Re: Linux 2.6.32-rc3

Linus Torvalds
2009-10-07T03:25:20Z

On Wed, 7 Oct 2009, Dave Airlie wrote:
>
> Why don't you just have the kernel version Linux-commitid?

That's actually what I personally do 99% of the time. And, in fact, it's
how CONFIG_LOCALVERSION_AUTO effectively works. It's very useful for doing
things like

gitk v$(uname -r)..

which really does work (well, apart from the "-dirty" case when I've
compiled a dirty kernel that has something that isn't committed). Try it.
It's a great way to see "what do I have in my current tree that I'm not
actually running".

So with CONFIG_LOCALVERSION_AUTO, you can largely pretend that you really
only have the git SHA1. The rest is "fluff" for people.

> why keep up the pretense that the 2.6.xx bit means anything outside of release?

Agreed. However, it _does_ mean something for releases.

And that is really how you should think of it. I update the kernel
Makefile for releases, and nothing else. If you compile a non-release
kernel, the version is meaningless - unless you have
CONFIG_LOCALVERSION_AUTO.

> You could just have the tarball generation scripts make it into a 2.6.31 but
> for everyone else we never see it.

Well, about a year ago I actually considered generating the version
entirely from the tags in the git tree, and do it entirely that way.

The reason I didn't is that even if it only makes sense for releases, it
is (a) tradition and (b) useful without (or across) SCM's and (c) human-
readable. In fact, I tend to like seeing things like

Linux version 2.6.32-rc2-00351-g58e57fb

in my dmesg outputs, because it does mean something _outside_ of just the
pure "git version" (the '58e57fb' part is sufficient as far as git is
concerned). It does have a very human-readable component to it: it's 351
commits after 2.6.32-rc2.

So I literally think that our current CONFIG_LOCALVERSION_AUTO includes
the best of both worlds. It has the "uniquely identifying" part, but it
also has a part that is human-readable and useful for that reason.

Linus