This is an automated email from the ASF dual-hosted git repository.

yuanz pushed a commit to branch master
in repository 
https://gitbox.apache.org/repos/asf/incubator-teaclave-trustzone-sdk.git

commit a2b7bb078e14da856b382bdcbe6dcd8590032331
Author: Thomas Hebb <t...@meta.com>
AuthorDate: Fri Apr 21 15:32:33 2023 -0400

    Rework rustup/toolchain installation
    
    Migrate "rust-toolchain", which sets a rustup toolchain override for the
    directory, to the newer "rust-toolchain.toml" format[1] and rewrite the
    toolchain-related logic in setup.sh. This has several benefits:
    
     - If the user already has rustup installed, we won't run the
       installation script again. That prevents us from messing with
       environments that set the rustup $PATH in a non-default way.
     - We no longer change rustup's system-wide default toolchain, which
       similarly prevents us from messing with the user's environment.
     - Thanks to the expanded capabilities of rust-toolchain.toml, users who
       build without first running "setup.sh" will get the components and
       targets they need in addition to the toolchain itself.
     - We now have a single source of truth for our preferred toolchain.
       setup.sh now just installs whatever's in rust-toolchain.toml instead
       of hardcoding a toolchain name.
    
    [1] https://rust-lang.github.io/rustup/overrides.html#the-toolchain-file
---
 .licenserc.yaml                        |  1 -
 rust-toolchain                         |  1 -
 .licenserc.yaml => rust-toolchain.toml | 24 +++++-------------------
 setup.sh                               | 22 +++++++++++++++-------
 4 files changed, 20 insertions(+), 28 deletions(-)

diff --git a/.licenserc.yaml b/.licenserc.yaml
index ccce5cc..c65f735 100644
--- a/.licenserc.yaml
+++ b/.licenserc.yaml
@@ -26,7 +26,6 @@ header:
     - '**/*.md'
     - 'LICENSE'
     - 'NOTICE'
-    - 'rust-toolchain'
     - '**/Cargo.lock'
     - '**/*.lds'
     - 'aarch64-unknown-optee-trustzone.json'
diff --git a/rust-toolchain b/rust-toolchain
deleted file mode 100644
index 513fbad..0000000
--- a/rust-toolchain
+++ /dev/null
@@ -1 +0,0 @@
-nightly-2021-09-20
diff --git a/.licenserc.yaml b/rust-toolchain.toml
similarity index 64%
copy from .licenserc.yaml
copy to rust-toolchain.toml
index ccce5cc..d482968 100644
--- a/.licenserc.yaml
+++ b/rust-toolchain.toml
@@ -15,23 +15,9 @@
 # specific language governing permissions and limitations
 # under the License.
 
-header:
-  license:
-    spdx-id: Apache-2.0
-    copyright-owner: Apache Software Foundation
+# Toolchain override for rustup
 
-  paths-ignore:
-    - 'dist'
-    - 'licenses'
-    - '**/*.md'
-    - 'LICENSE'
-    - 'NOTICE'
-    - 'rust-toolchain'
-    - '**/Cargo.lock'
-    - '**/*.lds'
-    - 'aarch64-unknown-optee-trustzone.json'
-    - 'arm-unknown-optee-trustzone.json'
-    - 'KEYS'
-    - 'DISCLAIMER-WIP'
-    - '.gitmodules'
-    - 'examples/tls_server-rs/ta/test-ca/**'
+[toolchain]
+channel = "nightly-2021-09-20"
+components = ["rust-src"]
+targets = ["aarch64-unknown-linux-gnu", "arm-unknown-linux-gnueabihf"]
diff --git a/setup.sh b/setup.sh
index 4f8586a..50030b9 100755
--- a/setup.sh
+++ b/setup.sh
@@ -24,15 +24,23 @@ set -xe
 cd "$(dirname "$0")"
 
 ##########################################
-# install Rust and select a proper version
-curl https://sh.rustup.rs -sSf | sh -s -- -y --default-toolchain 
nightly-2021-09-20
-source $HOME/.cargo/env
-rustup component add rust-src && rustup target install 
aarch64-unknown-linux-gnu arm-unknown-linux-gnueabihf
+# install rustup and stable Rust if needed
+if command -v rustup &>/dev/null ; then
+       rustup install stable
+else
+       curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
+       source "$HOME/.cargo/env"
+fi
+
+# Ensure the toolchain, components, and targets we've specified in
+# rust-toolchain.toml are ready to go. Since that file sets rustup's default
+# toolchain for the entire directory, all we need to do is run any
+# rustup-wrapped command to trigger installation. We've arbitrarily chosen
+# "cargo --version" since it has no other effect.
+cargo --version >/dev/null
 
 # install Xargo
-rustup default 1.56.0 && cargo +1.56.0 install xargo
-# switch to nightly
-rustup default nightly-2021-09-20
+cargo +stable install xargo
 
 ########################################################
 # initialize submodules: optee_os / optee_client / build


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@teaclave.apache.org
For additional commands, e-mail: commits-h...@teaclave.apache.org

Reply via email to