Browse Source

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.
Nick Mathewson 6 years ago
parent
commit
e3ad4957a8
2 changed files with 10 additions and 6 deletions
  1. 4 0
      changes/bug25679
  2. 6 6
      configure.ac

+ 4 - 0
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.

+ 6 - 6
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