From 708dcc0d7312ed6192d752ca1efa613242c16483 Mon Sep 17 00:00:00 2001 From: slopbot9k Date: Tue, 20 Oct 2026 14:31:38 -0600 Subject: [PATCH 1/2] Require Rust 1.99.1 and pin the plugin releases built with it Rust releases before 1.98 strip release-profile debuginfo on Apple targets with the bundled rust-objcopy, which can leave the Mach-O __LINKEDIT string pool 4-byte aligned. Libraries built that way against the iOS 27 / macOS 27 SDKs are rejected by dyld ("mis-aligned LINKEDIT string pool") and by Xcode 27's ld. Rust 1.98.0 fixed the layout (rust-lang/rust#157750). All five Rust plugins now pin Rust 1.99.1, so pin the matching commits and the prebuilt releases produced with that toolchain: - tor_ffi_plugin 0.2.0 (e30ed0d), prebuilts native-0.2.0 - flutter_libepiccash d5cfb76, prebuilts native-0.3.0-1 - flutter_libmwc d8c5d54, prebuilts native-0.1.7 - frostdart c8be6a0 - xelis_wallet_flutter 8630a2c (cypherstack fork of v0.4.1) Install Rust 1.99.1 in every stage of the CI image, in the CI workflow and in the build docs in place of 1.89.0 / 1.90.0. tor_ffi_plugin 0.2.0 makes Tor.disable() the same operation as Tor.stop() and returns a Future, so TorService.disable() awaits a single stop instead of calling disable() unawaited and then stop(). Tor.start() now gives bootstrap a two-minute default deadline instead of waiting indefinitely; TorService.start() already reports the failure and rethrows. --- .github/workflows/build.yaml | 34 +++++++++---------- Dockerfile | 10 +++--- docs/building.md | 14 ++++---- pubspec.lock | 24 ++++++------- .../templates/pubspec.template.yaml | 24 ++++++------- .../TOR_tor_service_impl.template.dart | 3 +- 6 files changed, 54 insertions(+), 55 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 2d469eda5e..e49c9d5d06 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -817,8 +817,8 @@ jobs: - name: Install Rust toolchains run: | rustup toolchain install 1.85.1 - rustup toolchain install 1.89.0 - rustup default 1.89.0 + rustup toolchain install 1.99.1 + rustup default 1.99.1 - name: Configure app run: | @@ -903,8 +903,8 @@ jobs: - name: Install Rust toolchains run: | rustup toolchain install 1.85.1 - rustup toolchain install 1.89.0 - rustup default 1.89.0 + rustup toolchain install 1.99.1 + rustup default 1.99.1 - name: Configure app run: | @@ -978,10 +978,10 @@ jobs: - name: Install additional Rust toolchains run: | rustup toolchain install 1.85.1 - rustup toolchain install 1.89.0 - rustup default 1.89.0 - rustup target add aarch64-apple-ios --toolchain 1.89.0 - rustup target add x86_64-apple-ios --toolchain 1.89.0 + rustup toolchain install 1.99.1 + rustup default 1.99.1 + rustup target add aarch64-apple-ios --toolchain 1.99.1 + rustup target add x86_64-apple-ios --toolchain 1.99.1 - name: Configure app run: | @@ -1275,8 +1275,8 @@ jobs: - name: Install Rust toolchains run: | rustup toolchain install 1.85.1 - rustup toolchain install 1.89.0 - rustup default 1.89.0 + rustup toolchain install 1.99.1 + rustup default 1.99.1 - name: Configure app run: | @@ -1361,9 +1361,9 @@ jobs: - name: Install Rust toolchains run: | rustup toolchain install 1.85.1 - rustup toolchain install 1.89.0 - rustup default 1.89.0 - rustup target add aarch64-apple-darwin --toolchain 1.89.0 + rustup toolchain install 1.99.1 + rustup default 1.99.1 + rustup target add aarch64-apple-darwin --toolchain 1.99.1 cargo install cargo-lipo - name: Configure app @@ -1438,10 +1438,10 @@ jobs: - name: Install additional Rust toolchains run: | rustup toolchain install 1.85.1 - rustup toolchain install 1.89.0 - rustup default 1.89.0 - rustup target add aarch64-apple-ios --toolchain 1.89.0 - rustup target add x86_64-apple-ios --toolchain 1.89.0 + rustup toolchain install 1.99.1 + rustup default 1.99.1 + rustup target add aarch64-apple-ios --toolchain 1.99.1 + rustup target add x86_64-apple-ios --toolchain 1.99.1 - name: Configure app run: | diff --git a/Dockerfile b/Dockerfile index 2dd823fbb8..869eb51847 100644 --- a/Dockerfile +++ b/Dockerfile @@ -32,9 +32,9 @@ ENV RUSTUP_HOME=/usr/local/rustup \ PATH=/usr/local/cargo/bin:$PATH RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs \ - | sh -s -- -y --default-toolchain 1.89.0 --profile minimal --no-modify-path \ + | sh -s -- -y --default-toolchain 1.99.1 --profile minimal --no-modify-path \ && rustup install 1.85.1 1.71.0 stable --profile minimal \ - && rustup target add x86_64-unknown-linux-gnu --toolchain 1.89.0 \ + && rustup target add x86_64-unknown-linux-gnu --toolchain 1.99.1 \ && cargo install cargo-ndk \ && chmod -R a+rwX "$CARGO_HOME" "$RUSTUP_HOME" @@ -119,10 +119,10 @@ ENV RUSTUP_HOME=/usr/local/rustup \ PATH=/usr/local/cargo/bin:$PATH RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs \ - | sh -s -- -y --default-toolchain 1.89.0 --profile minimal --no-modify-path \ + | sh -s -- -y --default-toolchain 1.99.1 --profile minimal --no-modify-path \ && rustup target add \ aarch64-linux-android armv7-linux-androideabi i686-linux-android x86_64-linux-android \ - --toolchain 1.89.0 \ + --toolchain 1.99.1 \ && cargo install cargo-ndk \ && chmod -R a+rwX "$CARGO_HOME" "$RUSTUP_HOME" @@ -209,7 +209,7 @@ ENV RUSTUP_HOME=/usr/local/rustup \ PATH=/usr/local/cargo/bin:$PATH RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs \ - | sh -s -- -y --default-toolchain 1.90.0 --profile minimal --no-modify-path \ + | sh -s -- -y --default-toolchain 1.99.1 --profile minimal --no-modify-path \ && chmod -R a+rwX "$CARGO_HOME" "$RUSTUP_HOME" ENV PATH=/usr/local/go/bin:$PATH diff --git a/docs/building.md b/docs/building.md index b99734b4de..fac8cec032 100644 --- a/docs/building.md +++ b/docs/building.md @@ -55,8 +55,8 @@ Install [Rust](https://www.rust-lang.org/tools/install) via [rustup.rs](https:// ``` curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh source ~/.bashrc -rustup install 1.89.0 1.85.1 1.81.0 -rustup default 1.89.0 +rustup install 1.99.1 +rustup default 1.99.1 cargo install cargo-ndk ``` @@ -210,12 +210,12 @@ brew install brotli cairo coreutils gdbm gettext glib gmp libevent libidn2 libng ``` -Download and install [Rust](https://www.rust-lang.org/tools/install). [Rustup](https://rustup.rs/) is recommended for Rust setup. Use `rustc` to confirm successful installation. Install toolchains 1.81.0, 1.85.1, and 1.89.0 as well as `cbindgen` and `cargo-lipo` too. You will also have to add the platform target(s) `aarch64-apple-ios` and/or `aarch64-apple-darwin`. You can use the command(s): +Download and install [Rust](https://www.rust-lang.org/tools/install). [Rustup](https://rustup.rs/) is recommended for Rust setup. Use `rustc` to confirm successful installation. Install toolchain 1.99.1 as well as `cbindgen` and `cargo-lipo` too. You will also have to add the platform target(s) `aarch64-apple-ios` and/or `aarch64-apple-darwin`. You can use the command(s): ``` curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh source ~/.bashrc -rustup install 1.89.0 1.85.1 1.81.0 -rustup default 1.89.0 +rustup install 1.99.1 +rustup default 1.99.1 cargo install cargo-ndk cargo install cbindgen cargo-lipo rustup target add aarch64-apple-ios aarch64-apple-darwin @@ -309,8 +309,8 @@ Install Flutter 3.47.2 on your Windows host (not in WSL2) by [following their gu ### Rust Install [Rust](https://www.rust-lang.org/tools/install) on the Windows host (not in WSL2). Download the installer from [rustup.rs](https://rustup.rs), make sure it works on the commandline (you may need to open a new terminal), and install the following versions: ``` -rustup install 1.89.0 1.85.1 1.81.0 -rustup default 1.89.0 +rustup install 1.99.1 +rustup default 1.99.1 cargo install cargo-ndk ``` diff --git a/pubspec.lock b/pubspec.lock index 1b3b953206..23630de36f 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -1005,8 +1005,8 @@ packages: dependency: "direct main" description: path: "." - ref: "920ac94cf5295df3c3ae083c6a23ff602fb0f068" - resolved-ref: "920ac94cf5295df3c3ae083c6a23ff602fb0f068" + ref: d5cfb763fa62928a6e6265e1f4412738772151eb + resolved-ref: d5cfb763fa62928a6e6265e1f4412738772151eb url: "https://github.com/cypherstack/flutter_libepiccash.git" source: git version: "0.0.1" @@ -1014,8 +1014,8 @@ packages: dependency: "direct main" description: path: "." - ref: eec0f5ae0ee49d2d6e14c925d61e5d29dbd17be4 - resolved-ref: eec0f5ae0ee49d2d6e14c925d61e5d29dbd17be4 + ref: d8c5d5488cb00e21d0dc04ad306a65e2d54c4d3c + resolved-ref: d8c5d5488cb00e21d0dc04ad306a65e2d54c4d3c url: "https://github.com/cypherstack/flutter_libmwc.git" source: git version: "0.1.0" @@ -1218,8 +1218,8 @@ packages: dependency: "direct main" description: path: "." - ref: "3397cf62f30f1467aea781c23d84051441775f14" - resolved-ref: "3397cf62f30f1467aea781c23d84051441775f14" + ref: c8be6a0ea892d744adfacc8e97df891feca49707 + resolved-ref: c8be6a0ea892d744adfacc8e97df891feca49707 url: "https://github.com/cypherstack/frostdart.git" source: git version: "0.3.0" @@ -2378,11 +2378,11 @@ packages: dependency: "direct main" description: path: "." - ref: "5586bfa3c48e495bc00f9b56fa18869daf768573" - resolved-ref: "5586bfa3c48e495bc00f9b56fa18869daf768573" + ref: e30ed0d386a40ee4a999aeaf57aafd32921d601e + resolved-ref: e30ed0d386a40ee4a999aeaf57aafd32921d601e url: "https://github.com/cypherstack/tor.git" source: git - version: "0.1.0" + version: "0.2.0" tuple: dependency: "direct main" description: @@ -2669,9 +2669,9 @@ packages: dependency: "direct main" description: path: "." - ref: dc953e2f2e960b7ffbf636fc72ed2142a71ef963 - resolved-ref: dc953e2f2e960b7ffbf636fc72ed2142a71ef963 - url: "https://github.com/xelis-project/xelis-wallet-flutter.git" + ref: "8630a2cf28947497ec67b7535ddf1fac4cedbaa8" + resolved-ref: "8630a2cf28947497ec67b7535ddf1fac4cedbaa8" + url: "https://github.com/cypherstack/xelis-wallet-flutter.git" source: git version: "0.4.1" xml: diff --git a/scripts/app_config/templates/pubspec.template.yaml b/scripts/app_config/templates/pubspec.template.yaml index 60e89c7b7f..0a43bc4ca2 100644 --- a/scripts/app_config/templates/pubspec.template.yaml +++ b/scripts/app_config/templates/pubspec.template.yaml @@ -29,7 +29,7 @@ dependencies: # frostdart: # git: # url: https://github.com/cypherstack/frostdart.git -# ref: 3397cf62f30f1467aea781c23d84051441775f14 +# ref: c8be6a0ea892d744adfacc8e97df891feca49707 # %%END_ENABLE_FROST%% # %%ENABLE_XEL%% @@ -39,8 +39,8 @@ dependencies: # ref: f1e912cf549d311f6ccbb065b1d1d5c70f42b578 # v0.36.0 # xelis_wallet_flutter: # git: -# url: https://github.com/xelis-project/xelis-wallet-flutter.git -# ref: dc953e2f2e960b7ffbf636fc72ed2142a71ef963 # v0.4.1 +# url: https://github.com/cypherstack/xelis-wallet-flutter.git +# ref: 8630a2cf28947497ec67b7535ddf1fac4cedbaa8 # v0.4.1 + Rust 1.99.1 (cypherstack fork) # %%END_ENABLE_XEL%% # %%ENABLE_FIRO%% @@ -54,21 +54,21 @@ dependencies: # flutter_libepiccash: # git: # url: https://github.com/cypherstack/flutter_libepiccash.git -# ref: 920ac94cf5295df3c3ae083c6a23ff602fb0f068 +# ref: d5cfb763fa62928a6e6265e1f4412738772151eb # %%END_ENABLE_EPIC%% # %%ENABLE_MWC%% # flutter_libmwc: # git: # url: https://github.com/cypherstack/flutter_libmwc.git -# ref: eec0f5ae0ee49d2d6e14c925d61e5d29dbd17be4 +# ref: d8c5d5488cb00e21d0dc04ad306a65e2d54c4d3c # %%END_ENABLE_MWC%% # %%ENABLE_TOR%% # tor_ffi_plugin: # git: # url: https://github.com/cypherstack/tor.git -# ref: 5586bfa3c48e495bc00f9b56fa18869daf768573 +# ref: e30ed0d386a40ee4a999aeaf57aafd32921d601e # %%END_ENABLE_TOR%% # %%ENABLE_XMR%% @@ -375,16 +375,16 @@ dependency_overrides: # user_defines: # tor_ffi_plugin: # native_build: prebuilt -# prebuilt_manifest_url: "https://github.com/cypherstack/tor/releases/download/native-0.1.0/manifest.json" -# prebuilt_manifest_sha256: "00a988a2c0994dff300bb19493e935b0d4eae2b506d02af9dd69ddad65805a24" +# prebuilt_manifest_url: "https://github.com/cypherstack/tor/releases/download/native-0.2.0/manifest.json" +# prebuilt_manifest_sha256: "0008ecf60b52a5ba1ffecb2f5951a5d5c4bbffdb71ab470259d62d4abc314c4b" # flutter_libepiccash: # native_build: prebuilt -# prebuilt_manifest_url: "https://github.com/cypherstack/flutter_libepiccash/releases/download/native-0.3.0/manifest.json" -# prebuilt_manifest_sha256: "19be31940f7a58af98f315032d13c0a7c43a45bbcc86847587a6d1593985603a" +# prebuilt_manifest_url: "https://github.com/cypherstack/flutter_libepiccash/releases/download/native-0.3.0-1/manifest.json" +# prebuilt_manifest_sha256: "ab91bef838c8e658c5167e3ff6599eec1e0db24223de20394658a277913aec38" # flutter_libmwc: # native_build: prebuilt -# prebuilt_manifest_url: "https://github.com/cypherstack/flutter_libmwc/releases/download/native-0.1.0-1/manifest.json" -# prebuilt_manifest_sha256: "956fbf9a9d5d4624d9d7ea19fb4c07057c5612e32efa62f5f609a189ace16276" +# prebuilt_manifest_url: "https://github.com/cypherstack/flutter_libmwc/releases/download/native-0.1.7/manifest.json" +# prebuilt_manifest_sha256: "c83b8d57c4bde1f88d580587f8df91480bb083a95e58bbf0f0a3c47855e6522d" # %%END_ENABLE_NATIVE_PREBUILTS%% # For information on the generic Dart part of this file, see the diff --git a/tool/wl_templates/TOR_tor_service_impl.template.dart b/tool/wl_templates/TOR_tor_service_impl.template.dart index 63ee6ef0c5..959185c10a 100644 --- a/tool/wl_templates/TOR_tor_service_impl.template.dart +++ b/tool/wl_templates/TOR_tor_service_impl.template.dart @@ -115,8 +115,7 @@ class _TorServiceImpl extends TorService { return; } - _tor!.disable(); - await _tor?.stop(); + await _tor!.stop(); _updateStatusAndFireEvent( status: TorConnectionStatus.disconnected, From 6cb1d36cf547ecbd1f60baac321797d07c974882 Mon Sep 17 00:00:00 2001 From: slopbot9k Date: Mon, 26 Oct 2026 10:13:18 -0600 Subject: [PATCH 2/2] Format Tor template --- tool/wl_templates/TOR_tor_service_impl.template.dart | 1 + 1 file changed, 1 insertion(+) diff --git a/tool/wl_templates/TOR_tor_service_impl.template.dart b/tool/wl_templates/TOR_tor_service_impl.template.dart index 959185c10a..435885fb24 100644 --- a/tool/wl_templates/TOR_tor_service_impl.template.dart +++ b/tool/wl_templates/TOR_tor_service_impl.template.dart @@ -10,6 +10,7 @@ import '../../services/fusion_tor_service.dart'; import '../../services/tor_service.dart'; //ON import '../../utilities/logger.dart'; + //END_ON TorService get torService => _getInterface();