Author: dougb
Date: Fri Nov 18 21:04:59 2011
New Revision: 227679
URL: http://svn.freebsd.org/changeset/base/227679

Log:
  MFC r213077:
  Simplify how we find the kernel source.
  
  MFC r222218:
  expr -> sh arithmetic expansion
  
  MFC r226863:
  Fix svnversion for svn 1.7.x by not looking for .svn in ${SYSDIR}
  (since it no longer exists). Instead, run svnversion if we can find
  the binary and test that the output looks like a version string.

Modified:
  stable/8/sys/conf/newvers.sh
Directory Properties:
  stable/8/sys/   (props changed)
  stable/8/sys/amd64/include/xen/   (props changed)
  stable/8/sys/cddl/contrib/opensolaris/   (props changed)
  stable/8/sys/contrib/dev/acpica/   (props changed)
  stable/8/sys/contrib/pf/   (props changed)

Modified: stable/8/sys/conf/newvers.sh
==============================================================================
--- stable/8/sys/conf/newvers.sh        Fri Nov 18 20:51:31 2011        
(r227678)
+++ stable/8/sys/conf/newvers.sh        Fri Nov 18 21:04:59 2011        
(r227679)
@@ -38,16 +38,16 @@ if [ "X${BRANCH_OVERRIDE}" != "X" ]; the
 fi
 RELEASE="${REVISION}-${BRANCH}"
 VERSION="${TYPE} ${RELEASE}"
+SYSDIR=$(dirname $0)/..
 
 if [ "X${PARAMFILE}" != "X" ]; then
        RELDATE=$(awk '/__FreeBSD_version.*propagated to newvers/ {print $3}' \
                ${PARAMFILE})
 else
        RELDATE=$(awk '/__FreeBSD_version.*propagated to newvers/ {print $3}' \
-               $(dirname $0)/../sys/param.h)
+               ${SYSDIR}/sys/param.h)
 fi
 
-
 b=share/examples/etc/bsd-style-copyright
 year=`date '+%Y'`
 # look for copyright template
@@ -87,51 +87,47 @@ touch version
 v=`cat version` u=${USER:-root} d=`pwd` h=${HOSTNAME:-`hostname`} t=`date`
 i=`${MAKE:-make} -V KERN_IDENT`
 
-case "$d" in
-*/sys/*)
-       SRCDIR=${d##*obj}
-       if [ -n "$MACHINE" ]; then
-               SRCDIR=${SRCDIR##/$MACHINE}
+for dir in /bin /usr/bin /usr/local/bin; do
+       if [ -x "${dir}/svnversion" ] ; then
+               svnversion=${dir}/svnversion
+               break
+       fi
+       if [ -d "${SYSDIR}/../.git" -a -x "${dir}/git" ] ; then
+               git_cmd="${dir}/git --git-dir=${SYSDIR}/../.git"
+               break
        fi
-       SRCDIR=${SRCDIR%%/sys/*}
+done
 
-       for dir in /bin /usr/bin /usr/local/bin; do
-               if [ -d "${SRCDIR}/sys/.svn" -a -x "${dir}/svnversion" ] ; then
-                       svnversion=${dir}/svnversion
-                       break
-               fi
-               if [ -d "${SRCDIR}/.git" -a -x "${dir}/git" ] ; then
-                       git_cmd="${dir}/git --git-dir=${SRCDIR}/.git"
-                       break
-               fi
-       done
+if [ -n "$svnversion" ] ; then
+       echo "$svnversion"
+       svn=`cd ${SYSDIR} && $svnversion`
+       case "$svn" in
+       [0-9]*) svn=" r${svn}" ;;
+       *)      unset svn ;;
+       esac
+fi
 
-       if [ -n "$svnversion" ] ; then
-               svn=" r`cd ${SRCDIR}/sys && $svnversion`"
-       fi
-       if [ -n "$git_cmd" ] ; then
-               git=`$git_cmd rev-parse --verify --short HEAD 2>/dev/null`
-               svn=`$git_cmd svn find-rev $git 2>/dev/null`
-               if [ -n "$svn" ] ; then
+if [ -n "$git_cmd" ] ; then
+       git=`$git_cmd rev-parse --verify --short HEAD 2>/dev/null`
+       svn=`$git_cmd svn find-rev $git 2>/dev/null`
+       if [ -n "$svn" ] ; then
+               svn=" r${svn}"
+               git="=${git}"
+       else
+               svn=`$git_cmd log | fgrep 'git-svn-id:' | head -1 | \
+                    sed -n 's/^.*@\([0-9][0-9]*\).*$/\1/p'`
+               if [ -n $svn ] ; then
                        svn=" r${svn}"
-                       git="=${git}"
+                       git="+${git}"
                else
-                       svn=`$git_cmd log | fgrep 'git-svn-id:' | head -1 | \
-                            sed -n 's/^.*@\([0-9][0-9]*\).*$/\1/p'`
-                       if [ -n $svn ] ; then
-                               svn=" r${svn}"
-                               git="+${git}"
-                       else
-                               git=" ${git}"
-                       fi
-               fi
-               if $git_cmd --work-tree=${SRCDIR} diff-index \
-                   --name-only HEAD | read dummy; then
-                       git="${git}-dirty"
+                       git=" ${git}"
                fi
        fi
-       ;;
-esac
+       if $git_cmd --work-tree=${SYSDIR}/.. diff-index \
+           --name-only HEAD | read dummy; then
+               git="${git}-dirty"
+       fi
+fi
 
 cat << EOF > vers.c
 $COPYRIGHT
@@ -147,4 +143,4 @@ int osreldate = ${RELDATE};
 char kern_ident[] = "${i}";
 EOF
 
-echo `expr ${v} + 1` > version
+echo $((v + 1)) > version
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to