This is an automated email from the ASF dual-hosted git repository.
mssun pushed a commit to branch master
in repository
https://gitbox.apache.org/repos/asf/incubator-teaclave-trustzone-sdk.git
The following commit(s) were added to refs/heads/master by this push:
new c0b5801 Remove git submodules (#63)
c0b5801 is described below
commit c0b5801018f5e03d9f840d60a1a49ab048b9f1da
Author: Yuan Zhuang <[email protected]>
AuthorDate: Fri Mar 18 07:14:51 2022 +0800
Remove git submodules (#63)
* Remove git submodules
- Remove git submodules optee/ and rust/
- Initialize optee/ and rust/ submodules in setup.sh
- Update ci.yml
* Update the getting started documentation
* Remove .gitmodules
---
.github/workflows/ci.yml | 2 ++
.gitmodules | 21 ------------
README.md | 46 ++++++++++++++++++-------
optee/build | 1 -
optee/optee_client | 1 -
optee/optee_os | 1 -
rust/compiler-builtins | 1 -
rust/libc | 1 -
rust/rust | 1 -
setup.sh | 88 +++++++++++++++++++++++++++++++++++++++++++++---
10 files changed, 119 insertions(+), 44 deletions(-)
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index df22076..e5aa727 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -37,6 +37,7 @@ jobs:
ln -sf /root/.cargo ~/.cargo
- name: Building
run: |
+ ./setup.sh &&
source environment &&
make optee &&
. ~/.cargo/env &&
@@ -62,6 +63,7 @@ jobs:
ln -sf /root/.cargo ~/.cargo
- name: Building
run: |
+ ./setup.sh &&
source environment &&
make optee &&
. ~/.cargo/env &&
diff --git a/.gitmodules b/.gitmodules
deleted file mode 100644
index 48bfdb9..0000000
--- a/.gitmodules
+++ /dev/null
@@ -1,21 +0,0 @@
-[submodule "optee/build"]
- path = optee/build
- url = https://github.com/OP-TEE/build.git
-[submodule "optee/optee_os"]
- path = optee/optee_os
- url = https://github.com/OP-TEE/optee_os.git
-[submodule "optee/optee_client"]
- path = optee/optee_client
- url = https://github.com/OP-TEE/optee_client.git
-[submodule "rust/rust"]
- path = rust/rust
- url = https://github.com/mesalock-linux/rust.git
- branch = teaclave-trustzone-sdk-1.56.1
-[submodule "rust/libc"]
- path = rust/libc
- url = https://github.com/mesalock-linux/libc.git
- branch = teaclave-trustzone-sdk-0.2.99
-[submodule "rust/compiler-builtins"]
- path = rust/compiler-builtins
- url = https://github.com/mesalock-linux/compiler-builtins.git
- branch = teaclave-trustzone-sdk-0.1.44
diff --git a/README.md b/README.md
index d5cd63d..0c025c5 100644
--- a/README.md
+++ b/README.md
@@ -14,8 +14,10 @@ crates). Teaclave TrustZone SDK is a sub-project of [Apache
Teaclave (incubating
## Getting started
-To get started, you need to clone the project, initialize related submodules,
-and install building dependencies (The complete list of prerequisites can be
found here: [OP-TEE
Prerequisites](https://optee.readthedocs.io/en/latest/building/prerequisites.html)).
+#### 1. Clone the project and install building dependencies
+
+The complete list of prerequisites can be found here: [OP-TEE
Prerequisites](https://optee.readthedocs.io/en/latest/building/prerequisites.html).
+
Alternatively, you can use a docker container built with our
[Dockerfile](Dockerfile).
``` sh
@@ -32,16 +34,11 @@ $ sudo apt-get install android-tools-adb
android-tools-fastboot autoconf \
# clone the project
$ git clone [email protected]:apache/incubator-teaclave-trustzone-sdk.git
$ cd incubator-teaclave-trustzone-sdk
-# initialize related submodules and install Rust environment
-$ ./setup.sh
```
-By default, the `OPTEE_DIR` is `incubator-teaclave-trustzone-sdk/optee/`.
-``` sh
-# initialize OP-TEE submodule
-$ git submodule update --init -- optee
-```
-If you already have [OP-TEE repository](https://github.com/OP-TEE)
+#### 2. Install Rust environment and initialize related submodules
+
+* By default, the `OPTEE_DIR` is `incubator-teaclave-trustzone-sdk/optee/`.If
you already have [OP-TEE repository](https://github.com/OP-TEE)
cloned, you can set OP-TEE root directory:
``` sh
@@ -51,6 +48,16 @@ $ export OPTEE_DIR=path/to/your/optee/root/directory
Note that your OPTEE root directory should have `build/`, `optee_os/` and
`optee_client/` as sub-directory.
+
+
+* Run the script as follows to install Rust environment and set up submodules
in `optee/` and `rust/`.
+
+```
+$ ./setup.sh
+```
+
+#### 3. Set environment variables
+
Before building examples, the environment should be properly setup.
``` sh
@@ -65,6 +72,8 @@ $ export ARCH=arm
$ source environment
```
+#### 4. Build OP-TEE libraries
+
Then, download ARM toolchains and build OP-TEE libraries. Note that the OP-TEE
target is QEMUv8, and you can modify the Makefile to other targets accordingly.
@@ -72,12 +81,22 @@ target is QEMUv8, and you can modify the Makefile to other
targets accordingly.
$ make optee
```
-At last, you can get started with our examples.
+#### 5. Build Rust examples
+
+Run this command to build all Rust examples:
``` sh
$ make examples
```
+Collect all example CAs and TAs to `/incubator-teaclave-trustzone-sdk/out`:
+
+``` sh
+$ make examples-install
+```
+
+#### 6. Run Rust examples
+
Please read detailed
[instructions](https://teaclave.apache.org/trustzone-sdk-docs/getting-started-with-optee-for-qemu-armv8/)
to run these examples on OP-TEE for QEMU. For other supported devices, please
find
@@ -85,8 +104,9 @@ more documents
[here](https://optee.readthedocs.io/en/latest/general/platforms.h
## Documentation
-- [Getting Started with OPTEE for QEMU
ARMv8](docs/getting-started-with-optee-for-qemu-armv8.md)
-- [Overview of OP-TEE Rust Examples](docs/overview-of-optee-rust-examples.md)
+- [Getting Started with OPTEE for QEMU
ARMv8](https://teaclave.apache.org/trustzone-sdk-docs/getting-started-with-optee-for-qemu-armv8/)
+- [Overview of OP-TEE Rust
Examples](https://teaclave.apache.org/trustzone-sdk-docs/overview-of-optee-rust-examples/)
+- [Debugging OP-TEE
TA](https://teaclave.apache.org/trustzone-sdk-docs/debugging-optee-ta.md/)
- [Host API
Reference](https://teaclave.apache.org/api-docs/trustzone-sdk/optee-teec/)
- [TA API
Reference](https://teaclave.apache.org/api-docs/trustzone-sdk/optee-utee/)
diff --git a/optee/build b/optee/build
deleted file mode 160000
index 6a868e3..0000000
--- a/optee/build
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 6a868e301304a7b3cdf8c10b684331bf81b6af1d
diff --git a/optee/optee_client b/optee/optee_client
deleted file mode 160000
index 06db73b..0000000
--- a/optee/optee_client
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 06db73b3f3fdb8d23eceaedbc46c49c0b45fd1e2
diff --git a/optee/optee_os b/optee/optee_os
deleted file mode 160000
index d0b742d..0000000
--- a/optee/optee_os
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit d0b742d1564834dac903f906168d7357063d5459
diff --git a/rust/compiler-builtins b/rust/compiler-builtins
deleted file mode 160000
index 45a2e49..0000000
--- a/rust/compiler-builtins
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 45a2e4996fe732172004b292b07397f9a02265ab
diff --git a/rust/libc b/rust/libc
deleted file mode 160000
index 1ddfbbb..0000000
--- a/rust/libc
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 1ddfbbbc190bec0f5ec32b08e97585b34d0c6b09
diff --git a/rust/rust b/rust/rust
deleted file mode 160000
index 6abda66..0000000
--- a/rust/rust
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 6abda667852184641149d34da4730d96ba4f7d31
diff --git a/setup.sh b/setup.sh
index 4bfada5..04fb8d5 100755
--- a/setup.sh
+++ b/setup.sh
@@ -17,6 +17,9 @@
# specific language governing permissions and limitations
# under the License.
+set -xe
+
+##########################################
# 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
@@ -27,7 +30,84 @@ rustup default 1.44.0 && cargo +1.44.0 install xargo
# switch to nightly
rustup default nightly-2021-09-20
-# initialize Teaclave TrustZone SDK submodule
-git submodule update --init -- rust
-cd rust/compiler-builtins && git submodule update --init libm
-cd ../rust && git submodule update --init library/stdarch && git submodule
update --init library/backtrace
+########################################################
+# initialize submodules: optee_os / optee_client / build
+OPTEE_RELEASE_VERSION=3.16.0
+
+if [[ -z $OPTEE_DIR ]] || [[ $OPTEE_DIR==$PWD/optee ]]
+then
+ OPTEE_DIR=$PWD/optee
+ echo optee dir: $OPTEE_DIR
+ OPTEE_SUBMODULES=("optee_os" "optee_client" "build")
+
+ if [ ! -d $OPTEE_DIR ]
+ then
+ mkdir $OPTEE_DIR
+ else
+ rm -r $OPTEE_DIR/*
+ fi
+
+ # download optee release
+ echo "Downloading optee release..."
+ for submodule in ${OPTEE_SUBMODULES[*]}
+ do
+ echo "Downloading $submodule..."
+ curl --retry 5 -s -S \
+ -L
https://github.com/OP-TEE/$submodule/archive/refs/tags/$OPTEE_RELEASE_VERSION.tar.gz
\
+ -o $OPTEE_DIR/$OPTEE_RELEASE_VERSION.tar.gz
+ if [ ! $? -eq 0 ]
+ then
+ rm $OPTEE_DIR/$OPTEE_RELEASE_VERSION.tar.gz && \
+ echo "Download failed" && \
+ exit 1
+ fi
+ echo "Uncompressing $submodule..."
+ mkdir -p $OPTEE_DIR/$submodule && \
+ tar zxf $OPTEE_DIR/$OPTEE_RELEASE_VERSION.tar.gz \
+ -C $OPTEE_DIR/$submodule --strip-components 1
+ if [ ! $? -eq 0 ]
+ then
+ rm $OPTEE_DIR/$OPTEE_RELEASE_VERSION.tar.gz && \
+ rm -r $OPTEE_DIR/$submodule && \
+ echo "Downloaded file is damaged" && \
+ exit 1
+ fi
+ rm $OPTEE_DIR/$OPTEE_RELEASE_VERSION.tar.gz
+ done
+ echo "Download finished"
+else
+ echo "OPTEE_DIR has been set, omit to download optee submodules"
+fi
+
+
+########################################################
+# initialize submodules: rust / compiler-builtins / libc
+RUST_COMMIT_ID=6abda667852184641149d34da4730d96ba4f7d31
+COMPILER_BUILTINS_COMMIT_ID=45a2e4996fe732172004b292b07397f9a02265ab
+LIBC_COMMIT_ID=1ddfbbbc190bec0f5ec32b08e97585b34d0c6b09
+
+if [ ! -d rust/ ]
+then
+ mkdir rust/
+else
+ rm -r rust/*
+fi
+
+cd rust
+
+git clone https://github.com/mesalock-linux/rust.git && \
+ (cd rust && \
+ git checkout $RUST_COMMIT_ID && \
+ git submodule update --init library/stdarch && \
+ git submodule update --init library/backtrace)
+
+git clone https://github.com/mesalock-linux/compiler-builtins.git && \
+ (cd compiler-builtins && \
+ git checkout $COMPILER_BUILTINS_COMMIT_ID && \
+ git submodule update --init libm)
+
+git clone https://github.com/mesalock-linux/libc.git && \
+ (cd libc && \
+ git checkout $LIBC_COMMIT_ID)
+
+echo "Rust submodules initialized"
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]