Re: git-version-gen w/o git
Eric Blake <[email protected]>
| Newsgroups | gmane.comp.gnu.libtool.patches,gmane.comp.lib.gnulib.bugs |
|---|---|
| Organization | Red Hat |
| Message-ID | <[email protected]> |
[adding-gnulib]
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.
> rebuild = rebuild=:; revision=`$(lt__cd) $(srcdir) && $(git_version_gen) | sed 's|-.*$$||g'`
>
>
> @@ -128,8 +128,10 @@ $(ltversion_m4): $(ltversion_in) $(dotversion)
> done; \
> if $$rebuild; then \
> rm -f '$@'; \
> - if test -f '$(srcdir)/.serial'; then \
> - serial=`cat '$(srcdir)/.serial'`; \
> + if test -d '$(srcdir)/.git' && git --version >& /dev/null; then \
> + $(git_commit_count) > '$(srcdir)/.serial'; \
> + fi; \
> + serial=`cat '$(srcdir)/.serial'`; \
However, something like this would be useful in libtool.
> else \
> serial=`$(git_commit_count)`; \
> fi; \
>
>
>
> And then some support for that in gnulib:
>
> --- gnulib/build-aux/git-version-gen.orig 2012-10-02 17:10:58.935840500 +0200
> +++ gnulib/build-aux/git-version-gen 2012-10-18 14:41:57.458460000 +0200
> @@ -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
Again, I'm not sure if $fallback makes sense, since the .tarball-version
file is already supposed to provide that.
> 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 14:41:53.433652900 +0200
> @@ -1327,7 +1327,7 @@
>
> .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 \
However, this change probably makes sense in gnulib.
> git diff-index --name-only HEAD) \
> || exit 1; \
> @@ -1345,7 +1345,7 @@
> # 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 \
As does this (although wrapping both changes to avoid long lines would
be preferable).
> cd $(srcdir) && \
> git submodule --quiet foreach test '$$(git rev-parse $$sha1)' \
> = '$$(git merge-base origin $$sha1)' \
>
>
>
--
Eric Blake [email protected] +1-919-301-3266
Libvirt virtualization library http://libvirt.org
signature.asc
(application/pgp-signature, 617 B)
-----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.12 (GNU/Linux) Comment: Public key at http://people.redhat.com/eblake/eblake.gpg Comment: Using GnuPG with Mozilla - http://www.enigmail.net/ iQEcBAEBCAAGBQJQf/3OAAoJEKeha0olJ0Nq4vIH/irHx0iYbcR8wEEz3L3v+5Ef cBL0XJXvU+Z6ruUWRfjpcz557is+wkkMjDq4zS/D547bOzdN4ntyY36ChljUCuf/ bjHy2xPOELBhudKXJjMSraKAg5l0Dk3wkHRus6uvHvE1EVabM3YS9CSENVSi3KyE TmmUazr4GZeIIf7W/NeGtwWxY4ujvoEk6PWKQ3Rac9YITKwoAQnZ9Sj7WHMxexX1 ESFxwSg50VZ+F/FECCX4wXvXXptyo+wDIlYHdSKK3IKOGq9Z2xXOkwSMMe9DfmNG yCG/P6u/kTkoMfwyzzQOIhrPGyYXhGWBRU8kDbu9jpldDrTOivkhDmNinGr4Udw= =/jb/ -----END PGP SIGNATURE-----