[beast: 1/43] MISC: mkbuildid.sh: fix version extraction for -rcX releases
- From: Tim Janik <timj src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [beast: 1/43] MISC: mkbuildid.sh: fix version extraction for -rcX releases
- Date: Mon, 26 Jun 2017 23:27:23 +0000 (UTC)
commit 213ad362bf8b9e27353031219211233c8f3066c4
Author: Tim Janik <timj gnu org>
Date: Sat Jun 24 00:07:31 2017 +0200
MISC: mkbuildid.sh: fix version extraction for -rcX releases
Signed-off-by: Tim Janik <timj gnu org>
misc/mkbuildid.sh | 24 ++++++++++++++----------
1 files changed, 14 insertions(+), 10 deletions(-)
---
diff --git a/misc/mkbuildid.sh b/misc/mkbuildid.sh
index 0edcc6d..9c07dbf 100755
--- a/misc/mkbuildid.sh
+++ b/misc/mkbuildid.sh
@@ -9,8 +9,8 @@ SCRIPTNAME="$(basename "$0")" ; die() { e="$1"; shift; echo "$SCRIPTNAME: $*" >&
SCRIPTDIR="$(dirname "$(readlink -f "$0")")"
# Extract version, see: https://www.debian.org/doc/debian-policy/ch-controlfields.html#s-f-Version
-FALLBACK_VERSION="$(sed -nr "/^AC_INIT\b/{ s/^[^,]*,[^0-9]*([A-Za-z0-9.:~+-]*).*/\1/; p; }"
$SCRIPTDIR/../configure.ac)"
-test -n "$FALLBACK_VERSION" || die 7 "failed to detect AC_INIT in $SCRIPTDIR/../configure.ac"
+ACINIT_VERSION="$(sed -nr "/^AC_INIT\b/{ s/^[^,]*,[^0-9]*([A-Za-z0-9.:~+-]*).*/\1/; p; }"
$SCRIPTDIR/../configure.ac)"
+test -n "$ACINIT_VERSION" || die 7 "failed to detect AC_INIT in $SCRIPTDIR/../configure.ac"
test " $1" = " -p" && { PRINT=true; shift; } || PRINT=false
BUILDID_CC="$1"
@@ -18,16 +18,20 @@ BUILDID_HH="$2"
DOTGIT=`git rev-parse --git-dir 2>/dev/null` || true
gen_buildid() {
- test -e "$DOTGIT" || # Tarball: lacks git version info
- { printf %s "${FALLBACK_VERSION-0.0.0}+tarball" ; return ; }
+ # provide $ACINIT_VERSION for plain releases, otherwise
+ # provide $ACINIT_VERSION + monotonically increasing suffix + commitid
+ DESC=
COMMITID="${1-HEAD}"
- DESC=$(git describe --match '[0-9]*.*[0-9]' --abbrev=5 $COMMITID)
- test "$DESC" != "${DESC%%-*}" || # HEAD is on release tag
- { echo "$FALLBACK_VERSION" ; return ; }
- # HEAD has commits on top of last release tag, transform 1.2.3-7-gabc into version postfix
- GPOSTFIX="${DESC#*-}" # 0.0.0-7-gabc -> 7-gabc
+ test -e "$DOTGIT" && # Try 'git describe', shallow repos
will yield ''
+ DESC=$(git describe --match '[0-9]*.*[0-9]' --abbrev=5 $COMMITID 2>/dev/null)
+ test -e "$DOTGIT" -a -n "$DESC" || # Check for git and git's version info
+ { printf %s "${ACINIT_VERSION-0.0.0}+tarball" ; return ; } # otherwise treat as tarball
+ [[ "$DESC" =~ ([0-9]+[.][_#%+0-9.a-z-]*)-([0-9]+-g[a-f0-9]+)$ ]] || # Split version from git postfix
+ { echo "$ACINIT_VERSION" ; return ; } # failed to split, we're on a release
tag
+ # HEAD has commits on top of last release tag, transform e.g. 1.2.3-rc4-7-gabc into increasing suffix
+ GPOSTFIX="${BASH_REMATCH[2]}" # e.g. "7-gabc"
GPOSTFIX="+${GPOSTFIX//-/.}" # 7-gabc -> +7.gabc
- printf %s "$FALLBACK_VERSION$GPOSTFIX"
+ printf %s "$ACINIT_VERSION$GPOSTFIX"
}
BUILDID=$(gen_buildid HEAD)
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]