rustup: handle rustup for sudo and su

If rustup is in use, and a user uses sudo or su for the make
install, the install may fail with a "no default toolchain"
error.

To prevent this, detect at configure if rustup is being used,
then set RUSTUP_HOME for all calls to cargo.
pull/4292/head
Jason Ish 6 years ago
parent 1b6eee829f
commit 389272f4c7

@ -2407,6 +2407,26 @@ fi
else
AC_SUBST([CARGO_HOME], [$CARGO_HOME])
fi
# Check for rustup. RUSTUP_HOME needs to be set if rustup is in
# use, and a user uses sudo (depending on configuration), or su to
# perform the install
rustup_home_path="no"
if test "x$RUSTUP_HOME" != "x"; then
rustup_home_path="$RUSTUP_HOME"
else
AC_PATH_PROG(have_rustup, rustup, "no")
if test "x$have_rustup" != "xno"; then
rustup_home_path=$($have_rustup show home 2>/dev/null || echo "no")
fi
fi
rustup_home=""
if test "x$rustup_home_path" != "xno"; then
rustup_home="RUSTUP_HOME=\$(RUSTUP_HOME_PATH)"
fi
AC_SUBST([RUSTUP_HOME_PATH], [$rustup_home_path])
AC_SUBST([rustup_home])
AC_CHECK_FILES([$srcdir/rust/vendor], [have_rust_vendor="yes"])
if test "x$have_rust_vendor" = "xyes"; then
rust_vendor_comment=""

@ -33,13 +33,13 @@ if HAVE_PYTHON
endif
if HAVE_CYGPATH
rustpath=`cygpath -a -t mixed $(abs_top_builddir)`
cd $(top_srcdir)/rust && \
cd $(top_srcdir)/rust && @rustup_home@ \
CARGO_HOME="$(CARGO_HOME)" \
CARGO_TARGET_DIR="$$rustpath/rust/target" \
$(CARGO) build $(RELEASE) $(FROZEN) \
--features "$(RUST_FEATURES)"
else
cd $(top_srcdir)/rust && \
cd $(top_srcdir)/rust && @rustup_home@ \
CARGO_HOME="$(CARGO_HOME)" \
CARGO_TARGET_DIR="$(abs_top_builddir)/rust/target" \
$(CARGO) build $(RELEASE) $(FROZEN) \
@ -53,14 +53,15 @@ distclean-local: clean-local
rm -rf vendor gen Cargo.lock
check:
CARGO_HOME="$(CARGO_HOME)" $(CARGO) test
CARGO_HOME="$(CARGO_HOME)" @rustup_home@ $(CARGO) test
Cargo.lock: Cargo.toml
CARGO_HOME="$(CARGO_HOME)" $(CARGO) generate-lockfile
CARGO_HOME="$(CARGO_HOME)" @rustup_home@ $(CARGO) \
generate-lockfile
if HAVE_CARGO_VENDOR
vendor:
CARGO_HOME="$(CARGO_HOME)" $(CARGO) vendor > /dev/null
CARGO_HOME="$(CARGO_HOME)" @rustup_home@ $(CARGO) vendor > /dev/null
else
vendor:
endif

Loading…
Cancel
Save