diff --git a/configure.ac b/configure.ac index d281903fcc..1a780d3c3b 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 3b877649a3..863046b929 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 5fd61dd3e6..c0aca8afe2 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 b41be978b9..7c71008e02 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