From 75b2565de69f054033415e9914456a571e4a95b8 Mon Sep 17 00:00:00 2001 From: Zac Bergquist Date: Wed, 7 Feb 2024 11:01:36 -0700 Subject: [PATCH 1/2] Add wasm32-unknown-unknown target to docker images wasm-pack will do this at build time if the target is not available, but by baking it into the image we avoid having to do it during each build. --- build.assets/Dockerfile | 1 + build.assets/Dockerfile-centos7 | 3 ++- build.assets/Dockerfile-node | 1 + 3 files changed, 4 insertions(+), 1 deletion(-) diff --git a/build.assets/Dockerfile b/build.assets/Dockerfile index c2708296d6ad7..03b5602464e0e 100644 --- a/build.assets/Dockerfile +++ b/build.assets/Dockerfile @@ -220,6 +220,7 @@ RUN curl --proto '=https' --tlsv1.2 -fsSL https://sh.rustup.rs | sh -s -- -y --p cargo --version && \ rustc --version && \ rustup component add rustfmt clippy && \ + rustup target add wasm32-unknown-unknown && \ if [ "$BUILDARCH" = "amd64" ]; then rustup target add aarch64-unknown-linux-gnu; fi ARG WASM_PACK_VERSION diff --git a/build.assets/Dockerfile-centos7 b/build.assets/Dockerfile-centos7 index 8add9304e5875..e96863b011a3c 100644 --- a/build.assets/Dockerfile-centos7 +++ b/build.assets/Dockerfile-centos7 @@ -254,7 +254,8 @@ USER ci RUN curl --proto '=https' --tlsv1.2 -fsSL https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain $RUST_VERSION && \ rustup --version && \ cargo --version && \ - rustc --version + rustc --version && \ + rustup target add wasm32-unknown-unknown # Install wasm-pack for targeting WebAssembly from Rust. ARG WASM_PACK_VERSION diff --git a/build.assets/Dockerfile-node b/build.assets/Dockerfile-node index 0506fdb5a504d..c72b24376980e 100644 --- a/build.assets/Dockerfile-node +++ b/build.assets/Dockerfile-node @@ -77,6 +77,7 @@ RUN curl --proto '=https' --tlsv1.2 -fsSL https://sh.rustup.rs | sh -s -- -y --p cargo --version && \ rustc --version && \ rustup component add rustfmt clippy && \ + rustup target add wasm32-unknown-unknown && \ if [ "$BUILDARCH" = "amd64" ]; then rustup target add aarch64-unknown-linux-gnu; fi # Install wasm-pack for targeting WebAssembly from Rust. From 6d960ed572ddb37791e2e6856ece4c99cf0daed2 Mon Sep 17 00:00:00 2001 From: Zac Bergquist Date: Wed, 7 Feb 2024 11:01:53 -0700 Subject: [PATCH 2/2] Update wasm-bindgen to 0.2.91 And make sure that we always install the version from the lockfile, which prevents wasm-pack from failing with --mode=no-install. --- Cargo.lock | 20 ++++++++++---------- Makefile | 4 ++-- web/packages/teleport/package.json | 4 ++-- web/packages/teleport/src/ironrdp/Cargo.toml | 2 +- 4 files changed, 15 insertions(+), 15 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 21c30205594bb..f159bd2656a25 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3068,9 +3068,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasm-bindgen" -version = "0.2.90" +version = "0.2.91" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1223296a201415c7fad14792dbefaace9bd52b62d33453ade1c5b5f07555406" +checksum = "c1e124130aee3fb58c5bdd6b639a0509486b0338acaaae0c84a5124b0f588b7f" dependencies = [ "cfg-if", "wasm-bindgen-macro", @@ -3078,9 +3078,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.90" +version = "0.2.91" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fcdc935b63408d58a32f8cc9738a0bffd8f05cc7c002086c6ef20b7312ad9dcd" +checksum = "c9e7e1900c352b609c8488ad12639a311045f40a35491fb69ba8c12f758af70b" dependencies = [ "bumpalo", "log", @@ -3105,9 +3105,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.90" +version = "0.2.91" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e4c238561b2d428924c49815533a8b9121c664599558a5d9ec51f8a1740a999" +checksum = "b30af9e2d358182b5c7449424f017eba305ed32a7010509ede96cdc4696c46ed" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -3115,9 +3115,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.90" +version = "0.2.91" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bae1abb6806dc1ad9e560ed242107c0f6c84335f1749dd4e8ddb012ebd5e25a7" +checksum = "642f325be6301eb8107a83d12a8ac6c1e1c54345a7ef1a9261962dfefda09e66" dependencies = [ "proc-macro2", "quote", @@ -3128,9 +3128,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-shared" -version = "0.2.90" +version = "0.2.91" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d91413b1c31d7539ba5ef2451af3f0b833a005eb27a631cec32bc0635a8602b" +checksum = "4f186bd2dcf04330886ce82d6f33dd75a7bfcf69ecf5763b89fcde53b6ac9838" [[package]] name = "web-sys" diff --git a/Makefile b/Makefile index fcf2a26eaa5c2..8441119bb0309 100644 --- a/Makefile +++ b/Makefile @@ -346,9 +346,9 @@ ifeq ("$(with_rdpclient)", "yes") .PHONY: rdpclient rdpclient: ifneq ("$(FIPS)","") - cargo build -p rdp-client --features=fips --release $(CARGO_TARGET) + cargo build -p rdp-client --features=fips --release --locked $(CARGO_TARGET) else - cargo build -p rdp-client --release $(CARGO_TARGET) + cargo build -p rdp-client --release --locked $(CARGO_TARGET) endif else .PHONY: rdpclient diff --git a/web/packages/teleport/package.json b/web/packages/teleport/package.json index 900be951fbf86..10f776e488665 100644 --- a/web/packages/teleport/package.json +++ b/web/packages/teleport/package.json @@ -5,7 +5,7 @@ "main": "index.js", "scripts": { "start": "yarn build-wasm && vite", - "build-wasm": "cargo install --locked wasm-bindgen-cli && wasm-pack build ./src/ironrdp --target web --mode no-install", + "build-wasm": "wasm-pack build ./src/ironrdp --target web", "build": "yarn build-wasm && vite build", "test": "npx jest", "tdd": "jest . --watch" @@ -35,4 +35,4 @@ "jest-websocket-mock": "^2.5.0", "ts-loader": "^9.4.2" } -} +} \ No newline at end of file diff --git a/web/packages/teleport/src/ironrdp/Cargo.toml b/web/packages/teleport/src/ironrdp/Cargo.toml index 329c5088c7a30..131d37f18e059 100644 --- a/web/packages/teleport/src/ironrdp/Cargo.toml +++ b/web/packages/teleport/src/ironrdp/Cargo.toml @@ -22,5 +22,5 @@ time = { version = "0.3", features = ["wasm-bindgen"] } tracing = "0.1.37" tracing-subscriber = { version = "0.3.16", features = ["time"] } tracing-web = "0.1.2" -wasm-bindgen = "0.2.84" +wasm-bindgen = "0.2.91" web-sys = { version = "0.3.67", features = ["ImageData"] }