summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Mathewson <nickm@torproject.org>2011-04-06 16:13:22 -0400
committerNick Mathewson <nickm@torproject.org>2011-04-06 16:13:22 -0400
commit32341ac467d5fe51fa674eed4ca20db61ff5486b (patch)
treeebf2e0eb03a837bcf625981ba60abc606941a5e5
parent0cdd2629418f019bda5fa2daa271aae4f7131fa6 (diff)
parent02d93caa09656b1ef73838608258afad5c090105 (diff)
downloadtor-32341ac467d5fe51fa674eed4ca20db61ff5486b.tar.gz
tor-32341ac467d5fe51fa674eed4ca20db61ff5486b.zip
Merge remote-tracking branch 'public/bug2402_again' into maint-0.2.1
-rw-r--r--changes/bug24024
-rw-r--r--changes/bug2402_redux6
-rw-r--r--src/or/Makefile.am60
-rw-r--r--src/or/config.c11
-rw-r--r--src/or/router.c2
5 files changed, 29 insertions, 54 deletions
diff --git a/changes/bug2402 b/changes/bug2402
deleted file mode 100644
index f16f6773e7..0000000000
--- a/changes/bug2402
+++ /dev/null
@@ -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.
diff --git a/changes/bug2402_redux b/changes/bug2402_redux
new file mode 100644
index 0000000000..84be04a021
--- /dev/null
+++ b/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.
+
diff --git a/src/or/Makefile.am b/src/or/Makefile.am
index ad2476ff15..51c1b0fb06 100644
--- a/src/or/Makefile.am
+++ b/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:
diff --git a/src/or/config.c b/src/or/config.c
index 209a92d159..9cd8149ce8 100644
--- a/src/or/config.c
+++ b/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
diff --git a/src/or/router.c b/src/or/router.c
index ba7be3d7d7..52bfa64e43 100644
--- a/src/or/router.c
+++ b/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.