2007-11-17 04:24:21

by Gabriel C

[permalink] [raw]
Subject: bug in scripts/setlocalversion

Hi,

I've build by 'accident' and stable kernel inside a git repo and noticed an strange bug.

setlocalversion will append a git revision to the kernel even is not an git one.

to reproduce create some dir and cd in there:

git init
git config user.email "[email protected]"
git config user.name "blah"

touch a b c
git add *
git commit -a

git rev-parse --verify HEAD 2
7e671bce0cdc4ace727794dc79d5b426551ae5b8

now get any kernel tarball from kernel.org , unpack and build it with make V=1


--($:/work/crazy/bug/linux-2.6.24-rc2)-- LC_ALL=C; ls -d .git
/usr/bin/ls: cannot access .git: No such file or directory

( we are not git )

...

--($:/work/crazy/bug/linux-2.6.24-rc2)-- make V=1
rm -f include/config/kernel.release
echo 2.6.24-rc2-g7e671bce > include/config/kernel.release <-- buggy

...

Possible fix is to add and check before :

# Check for git and a git repo.
if head=`git rev-parse --verify HEAD 2>/dev/null`; then

which actually is missing the 'git' check ;)

if [ -d ".git" ]; then
if head=`git rev-parse --verify HEAD 2>/dev/null`; then
...
fi


or some git magic command I don't know yet =)


Regards,

Gabriel