Re: [PATCH] To make GIT-VERSION-FILE, search for git more widely
Show 36 quoted lines
> Problem: when git is installed into /usr/local/bin, running 'sudo make
> install' won't find git in $PATH (because sudo strips PATH, for instance
> on openSUSE 11.1, and doesn't include /usr/local/whatever).
>
> This causes GIT-VERSION-FILE to not find git for git describe, and fall
> back to DEF_VER.
>
> This in turn causes rebuilds of major parts of the system.
>
> This patch passes GIT through to the shell script, and additionally
> looks for the current version and in ${prefix}/bin.
>
> Signed-off-by: Matthias Andree <matthias.andree@gmx.de>
> ---
> GIT-VERSION-GEN | 7 ++++---
> Makefile | 6 +++++-
> 2 files changed, 9 insertions(+), 4 deletions(-)
>
> diff --git a/GIT-VERSION-GEN b/GIT-VERSION-GEN
> index 39cde78..66c171e 100755
> --- a/GIT-VERSION-GEN
> +++ b/GIT-VERSION-GEN
> @@ -2,6 +2,7 @@
>
> GVF=GIT-VERSION-FILE
> DEF_VER=v1.6.3.GIT
> +test -x "$GIT" || GIT=git
>
> LF='
> '
> @@ -12,12 +13,12 @@ if test -f version
> then
> VN=$(cat version) || VN="$DEF_VER"
> elif test -d .git -o -f .git &&
> - VN=$(git describe --abbrev=4 HEAD 2>/dev/null) &&
> + VN=$(${GIT} describe --abbrev=4 HEAD 2>/dev/null) &&+ VN=$(${GIT} describe --abbrev=4 HEAD 2>/dev/null) &&Show 27 quoted lines
> case "$VN" in
> *$LF*) (exit 1) ;;
> v[0-9]*)
> - git update-index -q --refresh
> - test -z "$(git diff-index --name-only HEAD --)" ||
> + ${GIT} update-index -q --refresh
> + test -z "$(${GIT} diff-index --name-only HEAD --)" ||
> VN="$VN-dirty" ;;
> esac
> then
> diff --git a/Makefile b/Makefile
> index 6e21643..8e34877 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -177,7 +177,11 @@ all::
> # away (some NTFS drivers seem to zero the contents in that scenario).
>
> GIT-VERSION-FILE: .FORCE-GIT-VERSION-FILE
> - @$(SHELL_PATH) ./GIT-VERSION-GEN
> + @{ GIT=./git$X ; type $$GIT >/dev/null 2>&1 ; } \
> + || { GIT=$(prefix)/bin/git$X ; type $$GIT >/dev/null 2>&1 ; }\
> + || GIT=git ; \
> + export GIT ; \
> + $(SHELL_PATH) ./GIT-VERSION-GEN
> -include GIT-VERSION-FILE
>
> uname_S := $(shell sh -c 'uname -s 2>/dev/null || echo not')--
DI Johannes Sixt
Leiter Softwareentwicklung
Viscovery Software GmbH
Landstrasse 11
A-4020 Linz, Austria
T: +43-1-532 0570-51
M: +43-676-8494 9571
F: +43-1-532 0570-33
j.sixt@viscovery.net
www.viscovery.net
t u r n y o u r d a t a i n t o r e a l v a l u e !