Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 8 Aug 2013 15:59:01 +0000 (UTC)
From:      Glen Barber <gjb@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r254094 - head/sys/conf
Message-ID:  <201308081559.r78Fx1h6034578@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: gjb
Date: Thu Aug  8 15:59:00 2013
New Revision: 254094
URL: http://svnweb.freebsd.org/changeset/base/254094

Log:
  When newvers.sh is run, it is possible that the svnversion
  (or svnliteversion) in the current lookup path is not what
  was used to check out the tree.  If an incompatible version
  is used, the svn revision number is not reported in uname(1).
  
  Run ${svnversion} on newvers.sh itself when evaluating if the
  svn(1) in use is compatible with the tree.  Fallback to an
  empty ${svnversion} if necessary.
  
  With this change, svnliteversion from base is only used
  if no compatible svnversion is found, so with this change,
  the version of svn(1) from the ports tree is evaluated first.
  
  Requested by:	many
  MFC after:	3 days
  X-MFC-To:	stable/9, releng/9.2 only

Modified:
  head/sys/conf/newvers.sh

Modified: head/sys/conf/newvers.sh
==============================================================================
--- head/sys/conf/newvers.sh	Thu Aug  8 11:53:47 2013	(r254093)
+++ head/sys/conf/newvers.sh	Thu Aug  8 15:59:00 2013	(r254094)
@@ -88,19 +88,31 @@ v=`cat version` u=${USER:-root} d=`pwd` 
 i=`${MAKE:-make} -V KERN_IDENT`
 compiler_v=$($(${MAKE:-make} -V CC) -v 2>&1 | grep 'version')
 
-if [ -x /usr/bin/svnliteversion ] ; then
-	svnversion=/usr/bin/svnliteversion
-fi
-
 for dir in /usr/bin /usr/local/bin; do
 	if [ ! -z "${svnversion}" ] ; then
 		break
 	fi
 	if [ -x "${dir}/svnversion" ] && [ -z ${svnversion} ] ; then
-		svnversion=${dir}/svnversion
-		break
+		# Run svnversion from ${dir} on this script; if return code
+		# is not zero, the checkout might not be compatible with the
+		# svnversion being used.
+		${dir}/svnversion $(basename ${0}) >/dev/null 2>&1
+		if [ $? -eq 0 ]; then
+			svnversion=${dir}/svnversion
+			break
+		fi
 	fi
 done
+
+if [ -z "${svnversion}" ] && [ -x /usr/bin/svnliteversion ] ; then
+	/usr/bin/svnversion $(basename ${0}) >/dev/null 2>&1
+	if [ $? -eq 0 ]; then
+		svnversion=/usr/bin/svnliteversion
+	else
+		svnversion=
+	fi
+fi
+
 for dir in /usr/bin /usr/local/bin; do
 	if [ -x "${dir}/p4" ] && [ -z ${p4_cmd} ] ; then
 		p4_cmd=${dir}/p4



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201308081559.r78Fx1h6034578>