[tor-commits] [tor/master] cargo-online-mode configure argument

nickm at torproject.org nickm at torproject.org
Fri May 19 13:28:24 UTC 2017


commit d6f9a4f11acdfc8efea19a1644f355cdb90bfbb5
Author: Sebastian Hahn <sebastian at torproject.org>
Date:   Tue May 2 05:06:45 2017 +0200

    cargo-online-mode configure argument
    
    Passing --enable-cargo-online-mode during configure allows cargo to make
    network requests while building Tor or running tests. If this flag is
    not supplied, the dependencies need to be available in the form of a
    local mirror.
---
 configure.ac                 | 8 ++++++++
 src/rust/tor_util/include.am | 2 +-
 src/test/include.am          | 3 ++-
 src/test/test_rust.sh        | 2 +-
 4 files changed, 12 insertions(+), 3 deletions(-)

diff --git a/configure.ac b/configure.ac
index d281903..1a780d3 100644
--- a/configure.ac
+++ b/configure.ac
@@ -57,6 +57,8 @@ AC_ARG_ENABLE(memory-sentinels,
    AS_HELP_STRING(--disable-memory-sentinels, [disable code that tries to prevent some kinds of memory access bugs. For fuzzing only.]))
 AC_ARG_ENABLE(rust,
    AS_HELP_STRING(--enable-rust, [enable rust integration]))
+AC_ARG_ENABLE(cargo-online-mode,
+   AS_HELP_STRING(--enable-cargo-online-mode, [Allow cargo to make network requests to fetch crates. For builds with rust only.]))
 
 if test "x$enable_coverage" != "xyes" -a "x$enable_asserts_in_tests" = "xno" ; then
     AC_MSG_ERROR([Can't disable assertions outside of coverage build])
@@ -267,6 +269,12 @@ if test "x$enable_rust" = "xyes"; then
   fi
 
   AC_DEFINE([HAVE_RUST], 1, [have Rust])
+  if test "x$enable_cargo_online_mode" = "xyes"; then
+    CARGO_ONLINE=
+  else
+    CARGO_ONLINE=--frozen
+  fi
+  AC_SUBST(CARGO_ONLINE)
 fi
 
 ifdef([AC_C_FLEXIBLE_ARRAY_MEMBER], [
diff --git a/src/rust/tor_util/include.am b/src/rust/tor_util/include.am
index 3b87764..863046b 100644
--- a/src/rust/tor_util/include.am
+++ b/src/rust/tor_util/include.am
@@ -7,6 +7,6 @@ EXTRA_DIST +=\
 src/rust/target/release/libtor_util.a: FORCE
 	( cd "$(abs_top_srcdir)/src/rust/tor_util" ; \
 		CARGO_TARGET_DIR="$(abs_top_builddir)/src/rust/target" \
-		$(CARGO) build --release --quiet --frozen )
+		$(CARGO) build --release --quiet $(CARGO_ONLINE) )
 
 FORCE:
diff --git a/src/test/include.am b/src/test/include.am
index 5fd61dd..c0aca8a 100644
--- a/src/test/include.am
+++ b/src/test/include.am
@@ -7,7 +7,8 @@ TESTS_ENVIRONMENT = \
 	export abs_top_srcdir="$(abs_top_srcdir)"; \
 	export builddir="$(builddir)"; \
 	export TESTING_TOR_BINARY="$(TESTING_TOR_BINARY)"; \
-	export CARGO="$(CARGO)";
+	export CARGO="$(CARGO)"; \
+	export CARGO_ONLINE="$(CARGO_ONLINE)";
 
 TESTSCRIPTS = \
 	src/test/fuzz_static_testcases.sh \
diff --git a/src/test/test_rust.sh b/src/test/test_rust.sh
index b41be97..7c71008 100755
--- a/src/test/test_rust.sh
+++ b/src/test/test_rust.sh
@@ -7,7 +7,7 @@ exitcode=0
 
 for crate in $crates; do
     cd "${abs_top_srcdir:-.}/src/rust/${crate}"
-    "${CARGO:-cargo}" test --frozen || exitcode=1
+    "${CARGO:-cargo}" test ${CARGO_ONLINE-"--frozen"} || exitcode=1
 done
 
 exit $exitcode





More information about the tor-commits mailing list