X-Git-Url: http://git.pond.sub.org/?p=empserver;a=blobdiff_plain;f=build-aux%2Fgit-version-gen;h=f4e85924f5803510450fa3f97fecb9ade094f042;hp=0fa90636bd1e12517aea2a9760f5736588a361a9;hb=HEAD;hpb=d3a64a4f6e8aa1dc1ee027086aa9b280864e80e4 diff --git a/build-aux/git-version-gen b/build-aux/git-version-gen index 0fa90636b..f4e85924f 100755 --- a/build-aux/git-version-gen +++ b/build-aux/git-version-gen @@ -1,8 +1,8 @@ #!/bin/sh # Print a version string. -scriptversion=2012-03-18.17; # UTC +scriptversion=2019-10-13.15; # UTC -# Copyright (C) 2007-2012 Free Software Foundation, Inc. +# Copyright (C) 2007-2020 Free Software Foundation, Inc. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -15,9 +15,9 @@ scriptversion=2012-03-18.17; # UTC # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with this program. If not, see . +# along with this program. If not, see . -# This script is derived from GIT-VERSION-GEN from GIT: http://git.or.cz/. +# This script is derived from GIT-VERSION-GEN from GIT: https://git-scm.com/. # It may be run two ways: # - from a git repository in which the "git describe" command below # produces useful output (thus requiring at least one signed tag) @@ -72,9 +72,10 @@ scriptversion=2012-03-18.17; # UTC me=$0 +year=`expr "$scriptversion" : '\([^-]*\)'` version="git-version-gen $scriptversion -Copyright 2011 Free Software Foundation, Inc. +Copyright $year Free Software Foundation, Inc. There is NO warranty. You may redistribute this software under the terms of the GNU General Public License. For more information about these matters, see the files named COPYING." @@ -85,7 +86,9 @@ Print a version string. Options: - --prefix prefix of git tags (default 'v') + --prefix PREFIX prefix of git tags (default 'v') + --fallback VERSION + fallback version to use if \"git --version\" fails --help display this help and exit --version output version information and exit @@ -93,20 +96,22 @@ Options: 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";; + --prefix) shift; prefix=${1?};; + --fallback) shift; fallback=${1?};; -*) echo "$0: Unknown option '$1'." >&2 echo "$0: Try '--help' for more information." >&2 exit 1;; *) - if test -z "$tarball_version_file"; then + if test "x$tarball_version_file" = x; then tarball_version_file="$1" - elif test -z "$tag_sed_script"; then + elif test "x$tag_sed_script" = x; then tag_sed_script="$1" else echo "$0: extra non-option argument '$1'." >&2 @@ -116,7 +121,7 @@ while test $# -gt 0; do shift done -if test -z "$tarball_version_file"; then +if test "x$tarball_version_file" = x; then echo "$usage" exit 1 fi @@ -137,14 +142,12 @@ then v=`cat $tarball_version_file` || v= case $v in *$nl*) v= ;; # reject multi-line output - [0-9]*) ;; - *) v= ;; esac - test -z "$v" \ - && echo "$0: WARNING: $tarball_version_file is missing or damaged" 1>&2 + test "x$v" = x \ + && echo "$0: WARNING: $tarball_version_file is damaged" 1>&2 fi -if test -n "$v" +if test "x$v" != x then : # use $v # Otherwise, if there is at least one git commit involving the working @@ -163,9 +166,10 @@ then # tag or the previous older version that did not? # Newer: v6.10-77-g0f8faeb # Older: v6.10-g0f8faeb - case $v in - *-*-*) : git describe is okay three part flavor ;; - *-*) + vprefix=`expr "X$v" : 'X\(.*\)-g[^-]*$'` || vprefix=$v + case $vprefix in + *-*) : git describe is probably okay three part flavor ;; + *) : git describe is older two part flavor # Recreate the number of commits and rewrite such that the # result is the same as if we were using the newer version @@ -180,12 +184,14 @@ then ;; esac - # Change the first '-' to a '.', so version-comparing tools work properly. - # Remove the "g" in git describe's output string, to save a byte. - v=`echo "$v" | sed 's/-/./;s/\(.*\)-g/\1-/'`; + # Change the penultimate "-" to ".", for version-comparing tools. + # Remove the "g" to save a byte. + v=`echo "$v" | sed 's/-\([^-]*\)-g\([^-]*\)$/.\1-\2/'`; v_from_git=1 -else +elif test "x$fallback" = x || git --version >/dev/null 2>&1; then v=UNKNOWN +else + v=$fallback fi v=`echo "$v" |sed "s/^$prefix//"` @@ -193,8 +199,8 @@ v=`echo "$v" |sed "s/^$prefix//"` # Test whether to append the "-dirty" suffix only if the version # string we're using came from git. I.e., skip the test if it's "UNKNOWN" # or if it came from .tarball-version. -if test -n "$v_from_git"; then - # Don't declare a version "dirty" merely because a time stamp has changed. +if test "x$v_from_git" != x; then + # Don't declare a version "dirty" merely because a timestamp has changed. git update-index --refresh > /dev/null 2>&1 dirty=`exec 2>/dev/null;git diff-index --name-only HEAD` || dirty= @@ -209,12 +215,12 @@ if test -n "$v_from_git"; then fi # Omit the trailing newline, so that m4_esyscmd can use the result directly. -echo "$v" | tr -d "$nl" +printf %s "$v" # Local variables: -# eval: (add-hook 'write-file-hooks 'time-stamp) +# eval: (add-hook 'before-save-hook 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" -# time-stamp-time-zone: "UTC" +# time-stamp-time-zone: "UTC0" # time-stamp-end: "; # UTC" # End: