Browse Source

Merge remote-tracking branch 'public/bug2402_again' into maint-0.2.1

Nick Mathewson 14 years ago
parent
commit
32341ac467
5 changed files with 29 additions and 54 deletions
  1. 0 4
      changes/bug2402
  2. 6 0
      changes/bug2402_redux
  3. 13 47
      src/or/Makefile.am
  4. 10 1
      src/or/config.c
  5. 0 2
      src/or/router.c

+ 0 - 4
changes/bug2402

@@ -1,4 +0,0 @@
-  o Minor bugfixes (build)
-    - Do not include Git version tags as though they were SVN tags when
-      generating a tarball from inside a repository that has switched between
-      branches.  Bugfix on 0.2.1.15-rc; fixes bug 2402.

+ 6 - 0
changes/bug2402_redux

@@ -0,0 +1,6 @@
+  o Minor bugfixes
+    - Use micro-revision numbers in 0.2.1.x instead: apparently, they
+      were more used than we had known.  (Bugfix on 0.2.1.30).
+    - Instead of generating our micro-version numbers using SVN revisions,
+      use git revisions instead.  Bugfix on 0.2.1.15-rc; fixes bug 2402.
+

+ 13 - 47
src/or/Makefile.am

@@ -55,53 +55,19 @@ noinst_HEADERS = or.h eventdns.h eventdns_tor.h micro-revision.i
 tor_main.o: micro-revision.i
 
 micro-revision.i: FORCE
-	@svkdir=$$SVKROOT; 					\
-	if test "x$$svkdir" = x ; then 				\
-	  svkdir=$$HOME/.svk; 					\
-	fi; 							\
-	if test -d ../../.git && test -x "`which git 2>&1;true`" ; then \
-	  if test -d ../../.git/svn && test -x "`which git-svn 2>&1;true`" ; then \
-	    git-svn info ../../README | 			\
-	    sed -n 's/^Revision: \([0-9][0-9]*\).*/"\1"/p'      \
-	                                   > micro-revision.tmp \
-	        || true; 					\
-	  fi; 							\
-	elif test -d ../../.svn && test -x "`which svn 2>&1;true`" ; then \
-	  svn info ../.. |					\
-	  sed -n 's/^Revision: \([0-9][0-9]*\).*/"\1"/p' > micro-revision.tmp \
-	     || true;						\
-	elif test -x "`which svk 2>&1;true`" && test -d $$svkdir/local; then \
-	  location=../..;					\
-	  rev=x;						\
-	  while test x$$rev = xx; do				\
-	    x=`svk info $$location |				\
-	      sed -n 's/^Mirrored From:.*, Rev\. \([0-9][0-9]*\)/\1/p'`; \
-	    if test x$$x != x; then				\
-	      rev=$$x;						\
-	      break;						\
-	    else						\
-	      loc=`svk info $$location |			\
-		sed -n 's/^Copied From: \(.*\), Rev\. [0-9][0-9]*/\1/p' | \
-	        head -1`;					\
-	      if test x$$loc = x; then				\
-		break;						\
-	      else						\
-		location=/$$loc;				\
-	      fi;						\
-	    fi;							\
-	  done;							\
-	  if test x$$rev != xx; then				\
-	    echo \"$$rev\" > micro-revision.tmp;		\
-	  fi;							\
-	fi;							\
-	if test ! -f micro-revision.tmp ; then			\
-	  if test ! -f micro-revision.i ; then			\
-	    echo '""' > micro-revision.i;			\
-	  fi;							\
-	elif test ! -f micro-revision.i ||			\
-	  test x"`cat micro-revision.tmp`" != x"`cat micro-revision.i`"; then \
-	  mv micro-revision.tmp micro-revision.i;		\
-	fi; true
+       @rm -f micro-revision.tmp;                                      \
+       if test -d ../../.git && test -x "`which git 2>&1;true`"; then  \
+         HASH="`git rev-parse --short=16 HEAD`";                       \
+         echo \"$$HASH\" > micro-revision.tmp;                         \
+        fi;                                                            \
+       if test ! -f micro-revision.tmp ; then                          \
+         if test ! -f micro-revision.i ; then                          \
+           echo '""' > micro-revision.i;                               \
+         fi;                                                           \
+       elif test ! -f micro-revision.i ||                              \
+          test x"`cat micro-revision.tmp`" != x"`cat micro-revision.i`"; then \
+         mv micro-revision.tmp micro-revision.i;                       \
+        fi; true
 
 #Dummy target to ensure that micro-revision.i _always_ gets built.
 FORCE:

+ 10 - 1
src/or/config.c

@@ -827,7 +827,16 @@ static char *_version = NULL;
 const char *
 get_version(void)
 {
-  return VERSION;
+  if (_version == NULL) {
+    if (strlen(tor_svn_revision)) {
+      size_t len = strlen(VERSION)+strlen(tor_svn_revision)+16;
+      _version = tor_malloc(len);
+      tor_snprintf(_version, len, "%s (git-%s)", VERSION, tor_svn_revision);
+    } else {
+      _version = tor_strdup(VERSION);
+    }
+  }
+  return _version;
 }
 
 /** Release additional memory allocated in options

+ 0 - 2
src/or/router.c

@@ -1576,8 +1576,6 @@ router_guess_address_from_dir_headers(uint32_t *guess)
   return -1;
 }
 
-extern const char tor_svn_revision[]; /* from tor_main.c */
-
 /** Set <b>platform</b> (max length <b>len</b>) to a NUL-terminated short
  * string describing the version of Tor and the operating system we're
  * currently running on.