[asterisk-commits] rmudgett: trunk r375192 - in /trunk: ./ build_tools/ include/asterisk/

SVN commits to the Asterisk project asterisk-commits at lists.digium.com
Thu Oct 18 15:13:21 CDT 2012


Author: rmudgett
Date: Thu Oct 18 15:13:17 2012
New Revision: 375192

URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=375192
Log:
build_tools: Allow Asterisk to report git SHAs in version string.

Make git more attractive for managing work-in-progress.  Especially
convenient when a potential patch set needs to be tested on multiple
platforms since one can use git to keep all the test environments in sync
independent of a subversion server.

Now the Asterisk version will show the exact git SHA5 that was used when
building (still appended by "M" if there are local modifications) from a
git clone of the Asterisk repository so the developer can more easily know
what is actually under test.

You will now get this:

  $ asterisk -V
  Asterisk GIT-1698298

Instead of this:

  $ asterisk -V
  Asterisk UNKNOWN__and_probably_unsupported

This has zero impact for those not using git with the exception of an
extra test in the configure script to gather git's path.  This is
necessary to prevent "sudo make install" from failing since git may not be
in the path in make's shell environment.

(closes issue ASTERISK-20483)
Reported by: Shaun Ruffell
Patches:
      0001-build_tools-Allow-Asterisk-to-report-git-SHAs-in-ver.patch (license #5417) patch uploaded by Shaun Ruffell
      Modified
........

Merged revisions 375189 from http://svn.asterisk.org/svn/asterisk/branches/1.8
........

Merged revisions 375190 from http://svn.asterisk.org/svn/asterisk/branches/10
........

Merged revisions 375191 from http://svn.asterisk.org/svn/asterisk/branches/11

Modified:
    trunk/   (props changed)
    trunk/Makefile
    trunk/build_tools/make_version
    trunk/configure
    trunk/configure.ac
    trunk/include/asterisk/autoconfig.h.in
    trunk/makeopts.in

Propchange: trunk/
------------------------------------------------------------------------------
Binary property 'branch-11-merged' - no diff available.

Modified: trunk/Makefile
URL: http://svnview.digium.com/svn/asterisk/trunk/Makefile?view=diff&rev=375192&r1=375191&r2=375192
==============================================================================
--- trunk/Makefile (original)
+++ trunk/Makefile Thu Oct 18 15:13:17 2012
@@ -226,7 +226,7 @@
   _ASTCFLAGS+=-Wcast-align -DSOLARIS -I../include/solaris-compat -I/opt/ssl/include -I/usr/local/ssl/include -D_XPG4_2 -D__EXTENSIONS__
 endif
 
-ASTERISKVERSION:=$(shell GREP=$(GREP) AWK=$(AWK) build_tools/make_version .)
+ASTERISKVERSION:=$(shell GREP=$(GREP) AWK=$(AWK) GIT=$(GIT) build_tools/make_version .)
 
 ifneq ($(wildcard .version),)
   ASTERISKVERSIONNUM:=$(shell $(AWK) -F. '{printf "%01d%02d%02d", $$1, $$2, $$3}' .version)

Modified: trunk/build_tools/make_version
URL: http://svnview.digium.com/svn/asterisk/trunk/build_tools/make_version?view=diff&rev=375192&r1=375191&r2=375192
==============================================================================
--- trunk/build_tools/make_version (original)
+++ trunk/build_tools/make_version Thu Oct 18 15:13:17 2012
@@ -2,7 +2,7 @@
 
 if [ -f ${1}/.version ]; then
     cat ${1}/.version
-elif [ -d .svn ]; then
+elif [ -d ${1}/.svn ]; then
     PARTS=`LANG=C svn info ${1} | ${GREP} URL | ${AWK} '{print $2;}' | sed -e 's:^.*/svn/asterisk/::' | sed -e 's:/: :g'`
     BRANCH=0
     TEAM=0
@@ -36,11 +36,7 @@
         fi
 
         if [ ${BRANCH} != 0 ] ; then
-            if [ -z "${RESULT}" ] ; then
-                RESULT="${PART}"
-            else
-                RESULT="${RESULT}-${PART}"
-            fi
+            RESULT="${RESULT}-${PART}"
             if [ ${FEATURE} != 0 ] ; then
                 RESULT="${RESULT}-${FEATURE_NAME}"
             fi
@@ -84,6 +80,104 @@
     else
         echo SVN-${RESULT}-r${REV}${BASE:+-${BASE}}
     fi
+elif [ -d ${1}/.git ]; then
+    if [ -z ${GIT} ]; then
+        GIT="git"
+    fi
+
+    if ! command -v ${GIT} >/dev/null 2>&1; then
+        echo "UNKNOWN__and_probably_unsupported"
+        exit 1
+    fi
+    # If the first log commit messages indicates that this is checked into
+    # subversion, we'll just use the SVN- form of the revision.
+    MODIFIED=""
+    SVN_REV=`${GIT} log --pretty=full -1 | grep -F "git-svn-id:" | sed -e "s/.*\@\([^\s]*\)\s.*/\1/g"`
+    if [ -z "$SVN_REV" ]; then
+        VERSION=GIT-`${GIT} describe --long --always --tags --dirty=M 2> /dev/null`
+        if [ $? -ne 0 ]; then
+            if [ "`${GIT} ls-files -m | wc -l`" != "0" ]; then
+                MODIFIED="M"
+            fi
+            # Some older versions of git do not support all the above
+            # options.
+            VERSION=GIT-`${GIT} rev-parse --short --verify HEAD`${MODIFIED}
+        fi
+        echo ${VERSION}
+    else
+        PARTS=`LANG=C ${GIT} log --pretty=full | grep -F "git-svn-id:" | head -1 | awk '{print $2;}' | sed -e s:^.*/svn/$2/:: | sed -e 's:/: :g' | sed -e 's/@.*$//g'`
+        BRANCH=0
+        TEAM=0
+        TAG=0
+        FEATURE=0
+
+        if [ "`${GIT} ls-files -m | wc -l`" != "0" ]; then
+            MODIFIED="M"
+        fi
+
+        for PART in $PARTS ; do
+            if [ ${TAG} != 0 ] ; then
+                if [ "${PART}" = "autotag_for_be" ] ; then
+                    continue
+                fi
+                if [ "${PART}" = "autotag_for_sx00i" ] ; then
+                    continue
+                fi
+                RESULT="${PART}"
+                break
+            fi
+
+            if [ ${BRANCH} != 0 ] ; then
+                RESULT="${RESULT}-${PART}"
+                if [ ${FEATURE} != 0 ] ; then
+                    RESULT="${RESULT}-${FEATURE_NAME}"
+                fi
+                break
+            fi
+
+            if [ ${TEAM} != 0 ] ; then
+                if [ -z "${RESULT}" ] ; then
+                    RESULT="${PART}"
+                else
+                    RESULT="${RESULT}-${PART}"
+                fi
+                continue
+            fi
+
+            if [ "${PART}" = "certified" ] ; then
+                FEATURE=1
+                FEATURE_NAME="cert"
+                continue
+            fi
+
+            if [ "${PART}" = "branches" ] ; then
+                BRANCH=1
+                RESULT="branch"
+                continue
+            fi
+
+            if [ "${PART}" = "tags" ] ; then
+                TAG=1
+                continue
+            fi
+
+            if [ "${PART}" = "team" ] ; then
+                TEAM=1
+                continue
+            fi
+
+            if [ "${PART}" = "trunk" ]; then
+                echo SVN-trunk-r${SVN_REV}${MODIFIED}
+                exit 0
+            fi
+        done
+
+        if [ ${TAG} != 0 ] ; then
+            echo ${RESULT}
+        else
+            echo SVN-${RESULT##-}-r${SVN_REV}${MODIFIED}
+        fi
+    fi
 else
     echo "UNKNOWN__and_probably_unsupported"
 fi

Modified: trunk/configure.ac
URL: http://svnview.digium.com/svn/asterisk/trunk/configure.ac?view=diff&rev=375192&r1=375191&r2=375192
==============================================================================
--- trunk/configure.ac (original)
+++ trunk/configure.ac Thu Oct 18 15:13:17 2012
@@ -263,6 +263,7 @@
 AC_PATH_PROG([KPATHSEA], [kpsewhich], :)
 AC_PATH_PROG([XMLLINT], [xmllint], :)
 AC_PATH_PROG([XMLSTARLET], [xmlstarlet], :)
+AC_PATH_PROG([GIT], [git], :)
 if test "${WGET}" != ":" ; then
   DOWNLOAD=${WGET}
 else if test "${CURL}" != ":" ; then

Modified: trunk/include/asterisk/autoconfig.h.in
URL: http://svnview.digium.com/svn/asterisk/trunk/include/asterisk/autoconfig.h.in?view=diff&rev=375192&r1=375191&r2=375192
==============================================================================
--- trunk/include/asterisk/autoconfig.h.in (original)
+++ trunk/include/asterisk/autoconfig.h.in Thu Oct 18 15:13:17 2012
@@ -848,19 +848,19 @@
 /* Define to 1 if you have the `strtoq' function. */
 #undef HAVE_STRTOQ
 
-/* Define to 1 if `ifr_ifru.ifru_hwaddr' is a member of `struct ifreq'. */
+/* Define to 1 if `ifr_ifru.ifru_hwaddr' is member of `struct ifreq'. */
 #undef HAVE_STRUCT_IFREQ_IFR_IFRU_IFRU_HWADDR
 
-/* Define to 1 if `uid' is a member of `struct sockpeercred'. */
+/* Define to 1 if `uid' is member of `struct sockpeercred'. */
 #undef HAVE_STRUCT_SOCKPEERCRED_UID
 
-/* Define to 1 if `st_blksize' is a member of `struct stat'. */
+/* Define to 1 if `st_blksize' is member of `struct stat'. */
 #undef HAVE_STRUCT_STAT_ST_BLKSIZE
 
-/* Define to 1 if `cr_uid' is a member of `struct ucred'. */
+/* Define to 1 if `cr_uid' is member of `struct ucred'. */
 #undef HAVE_STRUCT_UCRED_CR_UID
 
-/* Define to 1 if `uid' is a member of `struct ucred'. */
+/* Define to 1 if `uid' is member of `struct ucred'. */
 #undef HAVE_STRUCT_UCRED_UID
 
 /* Define to 1 if you have the mISDN Supplemental Services library. */
@@ -1137,9 +1137,6 @@
 
 /* Define to the one symbol short name of this package. */
 #undef PACKAGE_TARNAME
-
-/* Define to the home page for this package. */
-#undef PACKAGE_URL
 
 /* Define to the version of this package. */
 #undef PACKAGE_VERSION

Modified: trunk/makeopts.in
URL: http://svnview.digium.com/svn/asterisk/trunk/makeopts.in?view=diff&rev=375192&r1=375191&r2=375192
==============================================================================
--- trunk/makeopts.in (original)
+++ trunk/makeopts.in Thu Oct 18 15:13:17 2012
@@ -37,6 +37,7 @@
 SHA1SUM=@SHA1SUM@
 OPENSSL=@OPENSSL@
 LDCONFIG=@LDCONFIG@
+GIT=@GIT@
 
 BUILD_PLATFORM=@BUILD_PLATFORM@
 BUILD_CPU=@BUILD_CPU@




More information about the asterisk-commits mailing list