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
	
	 Colin Guthrie
						Colin Guthrie