Re: git-version-gen w/o git

Peter Rosin <[email protected]>
Newsgroups gmane.comp.lib.gnulib.bugs,gmane.comp.gnu.libtool.patches
Message-ID <[email protected]>
Hi Eric!

On 2012-10-18 15:02, Eric Blake wrote:
> [adding-gnulib]

I'm not subscribed, please (continue to) keep me in CC.

> On 10/18/2012 06:50 AM, Peter Rosin wrote:
>> Hi!
>>
>> I used to use a libtool git checkout from a platform that lacks
>> git [MSYS], but that broke at some point. I would like something
>> like the below to unbreak my work flow.
>>
>> Please?
>>
>> Cheers,
>> Peter
>>
>> diff --git a/Makefile.am b/Makefile.am
>> index 176325c..3bcb419 100644
>> --- a/Makefile.am
>> +++ b/Makefile.am
>> @@ -46,7 +46,7 @@ EXTRA_LTLIBRARIES	=
>>  # Using `cd' in backquotes may print the directory name, use this instead:
>>  lt__cd		= CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
>>  
>> -git_version_gen = '$(SHELL)' '$(aux_dir)/git-version-gen' '.tarball-version'
>> +git_version_gen = '$(SHELL)' '$(aux_dir)/git-version-gen' '--fallback' '$(VERSION)' '.tarball-version'
> 
> I'm not sure that makes sense - git-version-gen is ALREADY supposed to
> use the contents of .tarball-version as the fallback version.

No, .tarball-version is the primary source, or the "fallfront" as
some call it :-) Once you create that file you will no longer
attempt to run git, even if you switch back to the platform that
created the git checkout in the first place.

Here's an update of the gnulib parts, with long lines wrapped and
a scriptversion update.

--- gnulib/build-aux/git-version-gen.orig	2012-10-02 17:10:58.935840500 +0200
+++ gnulib/build-aux/git-version-gen	2012-10-18 15:47:40.711565800 +0200
@@ -1,6 +1,6 @@
 #!/bin/sh
 # Print a version string.
-scriptversion=2012-03-18.17; # UTC
+scriptversion=2012-10-18.13; # UTC
 
 # Copyright (C) 2007-2012 Free Software Foundation, Inc.
 #
@@ -86,6 +86,7 @@
 Options:
 
    --prefix           prefix of git tags (default 'v')
+   --fallback         fallback version to use if \"git --version\" fails
 
    --help             display this help and exit
    --version          output version information and exit
@@ -93,12 +94,14 @@
 Running without arguments will suffice in most cases."
 
 prefix=v
+fallback=
 
 while test $# -gt 0; do
   case $1 in
     --help) echo "$usage"; exit 0;;
     --version) echo "$version"; exit 0;;
     --prefix) shift; prefix="$1";;
+    --fallback) shift; fallback="$1";;
     -*)
       echo "$0: Unknown option '$1'." >&2
       echo "$0: Try '--help' for more information." >&2
@@ -184,8 +187,10 @@
     # Remove the "g" in git describe's output string, to save a byte.
     v=`echo "$v" | sed 's/-/./;s/\(.*\)-g/\1-/'`;
     v_from_git=1
-else
+elif test -z "$fallback" || git --version >& /dev/null; then
     v=UNKNOWN
+else
+    v=$fallback
 fi
 
 v=`echo "$v" |sed "s/^$prefix//"`
--- gnulib/top/maint.mk.orig	2012-10-02 17:10:43.846614700 +0200
+++ gnulib/top/maint.mk	2012-10-18 15:26:50.200179600 +0200
@@ -1327,7 +1327,8 @@
 
 .PHONY: no-submodule-changes
 no-submodule-changes:
-	$(AM_V_GEN)if test -d $(srcdir)/.git; then			\
+	$(AM_V_GEN)if test -d $(srcdir)/.git				\
+		&& git --version >& /dev/null; then \			\
 	  diff=$$(cd $(srcdir) && git submodule -q foreach		\
 		  git diff-index --name-only HEAD)			\
 	    || exit 1;							\
@@ -1345,7 +1346,8 @@
 # cannot be built from a fresh clone.
 .PHONY: public-submodule-commit
 public-submodule-commit:
-	$(AM_V_GEN)if test -d $(srcdir)/.git; then			\
+	$(AM_V_GEN)if test -d $(srcdir)/.git				\
+		&& git --version >& /dev/null; then			\
 	  cd $(srcdir) &&						\
 	  git submodule --quiet foreach test '$$(git rev-parse $$sha1)'	\
 	      = '$$(git merge-base origin $$sha1)'			\
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.