Currently scripts/setlocalversion is a Perl script that tries to figure
out the current git commit ID of a repo without using git. It also
imports Digest::MD5 without using it and generally is too big for the
small task it does. :] And it always reports a git ID, even when the
HEAD is tagged -- this is a bug.
This patch replaces it with a Bourne Shell script that uses git
commands to do the same. I can't come up with a scenario where someone
would use a git repo and refuse to install git core at the same time,
so I think it's reasonable to assume git is available.
The new script also reports uncommitted changes by adding -git_dirty to
the version string. Obviously you can't see from that _what_ has been
changed from the last commit, so it's more of a reminder that you
forgot to commit something.
The script is easily extensible: simply add a check for Mercurial (or
whatever) below the git check.
Note: the script doesn't print a newline char anymore. That's only
because it was easier to implement it that way, not a feature (or bug).
'make kernelrelease' doesn't care.
Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx>
Acked-by: Ryan Anderson <ryan@michonline.com>
Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
If CONFIG_AUTO_LOCALVERSION is set, the user is using a git-based tree, and the
current HEAD is not referred to by any tags in .git/refs/tags/, append -g and
the first 8 characters of the commit to the version string. This makes it
easier to use git-bisect, and/or to do a daily build, without trampling on your
older, working builds, or accidentally setting up conflicting sets of modules.
Signed-off-by: Ryan Anderson <ryan@michonline.com>
Signed-off-by: Sam Ravnborg <sam@ravnborg.org>