[tor-commits] [tor/master] Fix the default for TOR_RUST_DEPENDENCIES

nickm at torproject.org nickm at torproject.org
Thu Apr 5 12:21:48 UTC 2018


commit e3ad4957a8d06716d3e5dad9cda09ce236b941d1
Author: Nick Mathewson <nickm at torproject.org>
Date:   Fri Mar 30 08:53:58 2018 -0400

    Fix the default for TOR_RUST_DEPENDENCIES
    
    By default, we want to look at the crates directory of the
    submodule, not the toplevel of the submodule.  Fixes bug 25679;
    bugfix on 0.3.3.1-alpha.
---
 changes/bug25679 |  4 ++++
 configure.ac     | 12 ++++++------
 2 files changed, 10 insertions(+), 6 deletions(-)

diff --git a/changes/bug25679 b/changes/bug25679
new file mode 100644
index 000000000..9247a2915
--- /dev/null
+++ b/changes/bug25679
@@ -0,0 +1,4 @@
+  o Minor bugfixes (compilation, rust):
+    - Build correctly when the rust dependencies submodule is loaded,
+      but the TOR_RUST_DEPENDENCIES environment variable is not set.
+      Fixes bug 25679; bugfix on 0.3.3.1-alpha.
diff --git a/configure.ac b/configure.ac
index 2045e0d5f..143044956 100644
--- a/configure.ac
+++ b/configure.ac
@@ -440,23 +440,23 @@ if test "x$enable_rust" = "xyes"; then
     AC_MSG_CHECKING([rust crate dependencies])
     AC_ARG_VAR([TOR_RUST_DEPENDENCIES], [path to directory with local crate mirror])
     if test "x$TOR_RUST_DEPENDENCIES" = "x"; then
-      TOR_RUST_DEPENDENCIES="$srcdir/src/ext/rust/"
-      NEED_MOD=1
+      TOR_RUST_DEPENDENCIES="${srcdir}/src/ext/rust/crates"
     fi
+    dnl Check whether the path exists before we try to cd into it.
     if test ! -d "$TOR_RUST_DEPENDENCIES"; then
       AC_MSG_ERROR([Rust dependency directory $TOR_RUST_DEPENDENCIES does not exist. Specify a dependency directory using the TOR_RUST_DEPENDENCIES variable or allow cargo to fetch crates using --enable-cargo-online-mode.])
       ERRORED=1
     fi
+    dnl Make the path absolute, since we'll be using it from within a
+    dnl subdirectory.
+    TOR_RUST_DEPENDENCIES=$(cd "$TOR_RUST_DEPENDENCIES" ; pwd)
+
     for dep in $rust_crates; do
       if test ! -d "$TOR_RUST_DEPENDENCIES"/"$dep"; then
         AC_MSG_ERROR([Failure to find rust dependency $TOR_RUST_DEPENDENCIES/$dep. Specify a dependency directory using the TOR_RUST_DEPENDENCIES variable or allow cargo to fetch crates using --enable-cargo-online-mode.])
         ERRORED=1
       fi
     done
-    if test "x$NEED_MOD" = "x1"; then
-      dnl When looking for dependencies from cargo, pick right directory
-      TOR_RUST_DEPENDENCIES="../../src/ext/rust"
-    fi
     if test "x$ERRORED" = "x"; then
       AC_MSG_RESULT([yes])
     fi





More information about the tor-commits mailing list