mirror of
https://gitlab.freedesktop.org/pulseaudio/pulseaudio.git
synced 2025-10-29 05:40:23 -04:00
build-sys: Add some smarts to version extraction from git tags.
When we are dealing with a tag against a commit with other tags applied, then favour the first tag, not the last one. This allows us to tag a release as e.g. v1.0, v1.1-dev and v2.0-dev and get a version of 1.0 rather than the newer tags. This also removes support for git versions that do not accept the --match argument as we also now make use of the --contains arg which was added at the same time (I think) Additionally, the v variable is reset just incase it is already exported in the shell for some reason.
This commit is contained in:
parent
2a01bab3cc
commit
ba2e5f4442
1 changed files with 15 additions and 7 deletions
|
|
@ -1,6 +1,6 @@
|
|||
#!/bin/sh
|
||||
# Print a version string.
|
||||
scriptversion=2008-04-08.07
|
||||
scriptversion=2008-04-08.07.01
|
||||
|
||||
# Copyright (C) 2007-2008 Free Software Foundation
|
||||
#
|
||||
|
|
@ -76,6 +76,7 @@ esac
|
|||
tarball_version_file=$1
|
||||
nl='
|
||||
'
|
||||
v=
|
||||
|
||||
# First see if there is a tarball-only version file.
|
||||
# then try "git describe", then default.
|
||||
|
|
@ -95,13 +96,20 @@ if test -n "$v"
|
|||
then
|
||||
: # use $v
|
||||
elif test -d .git \
|
||||
&& v=`git describe --abbrev=4 --match='v*' HEAD 2>/dev/null \
|
||||
|| git describe --abbrev=4 HEAD 2>/dev/null` \
|
||||
&& case $v in
|
||||
v[0-9]*) ;;
|
||||
*) (exit 1) ;;
|
||||
esac
|
||||
&& v=`git describe --abbrev=4 --match='v[0-9]*' HEAD 2>/dev/null` \
|
||||
&& [ -n "$v" ]
|
||||
then
|
||||
# If we are on a "dev" tag, we need to check that it is not the same
|
||||
# reference as the a previous version tag (this only happens when we are
|
||||
# working with a release tag).
|
||||
# NB The below trick relies on the $v being an exact tag to work which
|
||||
# will only work when HEAD == tag. When further commits have been made on top
|
||||
# of the tag, the $v will be supplimented with the number of commits since
|
||||
# that tag and the commit ref of the most recent commit and thus will
|
||||
# fail the test below (as intended)
|
||||
v2=`git describe --abbrev=4 --match='v[0-9]\.[0-9]' --contains $v 2>/dev/null | cut -d'^' -f1`
|
||||
[ -n "$v2" ] && v=$v2
|
||||
|
||||
# Is this a new git that lists number of commits since the last
|
||||
# tag or the previous older version that did not?
|
||||
# Newer: v6.10-77-g0f8faeb
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue