A hack I've been wanting for a while: when building a -dev version

from an SVN repository, use the current svn revision in the platform
string and in the output of --version.



svn:r9976
This commit is contained in:
Nick Mathewson
2007-04-16 23:56:31 +00:00
parent 362fbc79d2
commit bfac679cd4
7 changed files with 47 additions and 5 deletions
+14
View File
@@ -28,3 +28,17 @@ test_LDADD = ../common/libor.a ../common/libor-crypto.a
noinst_HEADERS = or.h eventdns.h eventdns_tor.h
tor_main.o: micro-revision.i
micro-revision.i: FORCE
rm -f micro-revision.i; \
if test -d ../../.svn ; then \
svn info ../.. | \
sed -n 's/^Revision: \([0-9][0-9]*\).*/"\1"/p' > micro-revision.i \
|| true; \
fi; \
if test ! -f micro-revision.i; then \
echo '""' > micro-revision.i; \
fi
FORCE:
+9 -1
View File
@@ -2982,6 +2982,8 @@ check_nickname_list(const char *lst, const char *name, char **msg)
return r;
}
extern const char tor_svn_revision[]; /* from main.c */
/** Read a configuration file into <b>options</b>, finding the configuration
* file location based on the command line. After loading the options,
* validate them for consistency, then take actions based on them.
@@ -3018,7 +3020,13 @@ options_init_from_torrc(int argc, char **argv)
}
if (argc > 1 && (!strcmp(argv[1],"--version"))) {
printf("Tor version %s.\n",VERSION);
char vbuf[128];
if (tor_svn_revision && strlen(tor_svn_revision)) {
tor_snprintf(vbuf, sizeof(vbuf), " (r%s)", tor_svn_revision);
} else {
vbuf[0] = 0;
}
printf("Tor version %s%s.\n",VERSION,vbuf);
if (argc > 2 && (!strcmp(argv[2],"--version"))) {
print_svn_version();
}
+13 -2
View File
@@ -1172,6 +1172,8 @@ router_guess_address_from_dir_headers(uint32_t *guess)
return -1;
}
extern const char tor_svn_revision[]; /* from 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.
@@ -1179,8 +1181,17 @@ router_guess_address_from_dir_headers(uint32_t *guess)
void
get_platform_str(char *platform, size_t len)
{
tor_snprintf(platform, len, "Tor %s on %s",
VERSION, get_uname());
char svn_version_buf[128];
if (!strcmpend(VERSION, "-dev") &&
tor_svn_revision && strlen(tor_svn_revision)) {
tor_snprintf(svn_version_buf, sizeof(svn_version_buf), " (r%s)",
tor_svn_revision);
} else {
svn_version_buf[0] = 0;
}
tor_snprintf(platform, len, "Tor %s%s on %s",
VERSION, svn_version_buf, get_uname());
return;
}
+2
View File
@@ -5,6 +5,8 @@
const char test_c_id[] =
"$Id$";
const char tor_svn_revision[] = "";
/**
* \file test.c
* \brief Unit tests for many pieces of the lower level Tor modules.
+4
View File
@@ -5,6 +5,10 @@
const char tor_main_c_id[] =
"$Id$";
const char tor_svn_revision[] =
#include "micro-revision.i"
"";
/**
* \file tor_main.c
* \brief Stub module containing a main() function. Allows unit