atagen

macltok

public
Star0
Watch0

Commit 7515819c2f3e

tarball

atagen <boss@atagen.co>2026-10-22 13:08 UTC

8 files changed+54-40
deps: take the sdk fork as git dependencies instead of a path patch

Patches never reach dependents, so harness/web, malice and malice-worker each had to repeat the [patch.crates-io] block and keep a sibling clone at ../matrix-rust-sdk. Direct git deps on the fork rev carry through macltok, and the pinned url lets nix flake check fetch it. git-fetch-with-cli is set because libgit2 fails ssh auth to the fork host.
Modified file: .cargo/config.toml+3 additions
@@ -1,2 +1,5 @@
11 [target.wasm32-unknown-unknown]
22 rustflags = ["--cfg", "getrandom_backend=\"wasm_js\""]
3+
4+[net]
5+git-fetch-with-cli = true
Modified file: Cargo.lock+10 additions
@@ -2000,6 +2000,7 @@ dependencies = [
20002000 [[package]]
20012001 name = "matrix-sdk"
20022002 version = "0.18.0"
2003+source = "git+ssh://brewery@pls.lobotomise.me:33/atagen/matrix-rust-sdk?rev=cabc67b5cc0529bcf548c004f2e7c889aed6c4e5#cabc67b5cc0529bcf548c004f2e7c889aed6c4e5"
20032004 dependencies = [
20042005 "anymap2",
20052006 "aquamarine",
@@ -2062,6 +2063,7 @@ dependencies = [
20622063 [[package]]
20632064 name = "matrix-sdk-base"
20642065 version = "0.18.0"
2066+source = "git+ssh://brewery@pls.lobotomise.me:33/atagen/matrix-rust-sdk?rev=cabc67b5cc0529bcf548c004f2e7c889aed6c4e5#cabc67b5cc0529bcf548c004f2e7c889aed6c4e5"
20652067 dependencies = [
20662068 "as_variant",
20672069 "assert_matches",
@@ -2091,6 +2093,7 @@ dependencies = [
20912093 [[package]]
20922094 name = "matrix-sdk-common"
20932095 version = "0.18.0"
2096+source = "git+ssh://brewery@pls.lobotomise.me:33/atagen/matrix-rust-sdk?rev=cabc67b5cc0529bcf548c004f2e7c889aed6c4e5#cabc67b5cc0529bcf548c004f2e7c889aed6c4e5"
20942097 dependencies = [
20952098 "eyeball-im",
20962099 "futures-core",
@@ -2113,6 +2116,7 @@ dependencies = [
21132116 [[package]]
21142117 name = "matrix-sdk-crypto"
21152118 version = "0.18.0"
2119+source = "git+ssh://brewery@pls.lobotomise.me:33/atagen/matrix-rust-sdk?rev=cabc67b5cc0529bcf548c004f2e7c889aed6c4e5#cabc67b5cc0529bcf548c004f2e7c889aed6c4e5"
21162120 dependencies = [
21172121 "aes",
21182122 "aquamarine",
@@ -2153,6 +2157,7 @@ dependencies = [
21532157 [[package]]
21542158 name = "matrix-sdk-indexeddb"
21552159 version = "0.18.0"
2160+source = "git+ssh://brewery@pls.lobotomise.me:33/atagen/matrix-rust-sdk?rev=cabc67b5cc0529bcf548c004f2e7c889aed6c4e5#cabc67b5cc0529bcf548c004f2e7c889aed6c4e5"
21562161 dependencies = [
21572162 "async-trait",
21582163 "base64",
@@ -2184,6 +2189,7 @@ dependencies = [
21842189 [[package]]
21852190 name = "matrix-sdk-sqlite"
21862191 version = "0.18.0"
2192+source = "git+ssh://brewery@pls.lobotomise.me:33/atagen/matrix-rust-sdk?rev=cabc67b5cc0529bcf548c004f2e7c889aed6c4e5#cabc67b5cc0529bcf548c004f2e7c889aed6c4e5"
21872193 dependencies = [
21882194 "as_variant",
21892195 "async-trait",
@@ -2210,6 +2216,7 @@ dependencies = [
22102216 [[package]]
22112217 name = "matrix-sdk-store-encryption"
22122218 version = "0.18.0"
2219+source = "git+ssh://brewery@pls.lobotomise.me:33/atagen/matrix-rust-sdk?rev=cabc67b5cc0529bcf548c004f2e7c889aed6c4e5#cabc67b5cc0529bcf548c004f2e7c889aed6c4e5"
22132220 dependencies = [
22142221 "base64",
22152222 "blake3",
@@ -2230,6 +2237,7 @@ dependencies = [
22302237 [[package]]
22312238 name = "matrix-sdk-test"
22322239 version = "0.18.0"
2240+source = "git+ssh://brewery@pls.lobotomise.me:33/atagen/matrix-rust-sdk?rev=cabc67b5cc0529bcf548c004f2e7c889aed6c4e5#cabc67b5cc0529bcf548c004f2e7c889aed6c4e5"
22332241 dependencies = [
22342242 "as_variant",
22352243 "ctor",
@@ -2252,6 +2260,7 @@ dependencies = [
22522260 [[package]]
22532261 name = "matrix-sdk-test-macros"
22542262 version = "0.18.0"
2263+source = "git+ssh://brewery@pls.lobotomise.me:33/atagen/matrix-rust-sdk?rev=cabc67b5cc0529bcf548c004f2e7c889aed6c4e5#cabc67b5cc0529bcf548c004f2e7c889aed6c4e5"
22552264 dependencies = [
22562265 "quote",
22572266 "syn 2.0.119",
@@ -2260,6 +2269,7 @@ dependencies = [
22602269 [[package]]
22612270 name = "matrix-sdk-ui"
22622271 version = "0.18.0"
2272+source = "git+ssh://brewery@pls.lobotomise.me:33/atagen/matrix-rust-sdk?rev=cabc67b5cc0529bcf548c004f2e7c889aed6c4e5#cabc67b5cc0529bcf548c004f2e7c889aed6c4e5"
22632273 dependencies = [
22642274 "as_variant",
22652275 "async-rx",
Modified file: Cargo.toml+9 additions−21 deletions
@@ -26,11 +26,11 @@ indexeddb = [
2626 futures-util = { version = "0.3.31", default-features = false, features = ["std"] }
2727 http = "1"
2828 imbl = { version = "6.1.0", default-features = false }
29-matrix-sdk = { version = "0.18.0", default-features = false, features = ["e2e-encryption"] }
30-matrix-sdk-base = { version = "0.18.0", default-features = false }
31-matrix-sdk-crypto = { version = "0.18.0", default-features = false }
32-matrix-sdk-store-encryption = { version = "0.18.0", optional = true }
33-matrix-sdk-ui = { version = "0.18.0", default-features = false }
29+matrix-sdk = { git = "ssh://brewery@pls.lobotomise.me:33/atagen/matrix-rust-sdk", rev = "cabc67b5cc0529bcf548c004f2e7c889aed6c4e5", default-features = false, features = ["e2e-encryption"] }
30+matrix-sdk-base = { git = "ssh://brewery@pls.lobotomise.me:33/atagen/matrix-rust-sdk", rev = "cabc67b5cc0529bcf548c004f2e7c889aed6c4e5", default-features = false }
31+matrix-sdk-crypto = { git = "ssh://brewery@pls.lobotomise.me:33/atagen/matrix-rust-sdk", rev = "cabc67b5cc0529bcf548c004f2e7c889aed6c4e5", default-features = false }
32+matrix-sdk-store-encryption = { git = "ssh://brewery@pls.lobotomise.me:33/atagen/matrix-rust-sdk", rev = "cabc67b5cc0529bcf548c004f2e7c889aed6c4e5", optional = true }
33+matrix-sdk-ui = { git = "ssh://brewery@pls.lobotomise.me:33/atagen/matrix-rust-sdk", rev = "cabc67b5cc0529bcf548c004f2e7c889aed6c4e5", default-features = false }
3434 ruma = { version = "0.16.0", default-features = false, features = ["unstable-msc2545", "unstable-msc4095"] }
3535 serde = { version = "1.0.219", features = ["derive", "rc"], optional = true }
3636 thiserror = "2.0.16"
@@ -46,8 +46,8 @@ getrandom3 = { package = "getrandom", version = "0.3", features = ["wasm_js"] }
4646 getrandom4 = { package = "getrandom", version = "0.4", features = ["wasm_js"] }
4747 indexed_db_futures = { package = "matrix_indexed_db_futures", version = "0.7.0", optional = true, features = ["typed-arrays"] }
4848 js-sys = { version = "0.3.105", optional = true }
49-matrix-sdk = { version = "0.18.0", default-features = false, features = ["js"] }
50-matrix-sdk-ui = { version = "0.18.0", default-features = false, features = ["js"] }
49+matrix-sdk = { git = "ssh://brewery@pls.lobotomise.me:33/atagen/matrix-rust-sdk", rev = "cabc67b5cc0529bcf548c004f2e7c889aed6c4e5", default-features = false, features = ["js"] }
50+matrix-sdk-ui = { git = "ssh://brewery@pls.lobotomise.me:33/atagen/matrix-rust-sdk", rev = "cabc67b5cc0529bcf548c004f2e7c889aed6c4e5", default-features = false, features = ["js"] }
5151 # the sdk's own wasm reqwest leaves out stream, which the bounded media download needs
5252 reqwest = { version = "0.13.1", default-features = false, features = ["stream"] }
5353 uuid = { version = "1", features = ["js"] }
@@ -62,8 +62,8 @@ web-sys = { version = "0.3.105", optional = true, features = [
6262 ] }
6363
6464 [dev-dependencies]
65-matrix-sdk = { version = "0.18.0", default-features = false, features = ["testing"] }
66-matrix-sdk-test = "0.18.0"
65+matrix-sdk = { git = "ssh://brewery@pls.lobotomise.me:33/atagen/matrix-rust-sdk", rev = "cabc67b5cc0529bcf548c004f2e7c889aed6c4e5", default-features = false, features = ["testing"] }
66+matrix-sdk-test = { git = "ssh://brewery@pls.lobotomise.me:33/atagen/matrix-rust-sdk", rev = "cabc67b5cc0529bcf548c004f2e7c889aed6c4e5" }
6767 serde_json = "1.0.143"
6868 tokio = { version = "1.47.1", features = ["macros", "rt-multi-thread", "signal", "time"] }
6969 wiremock = "0.6.5"
@@ -77,15 +77,3 @@ unsafe_code = "forbid"
7777
7878 [lints.clippy]
7979 all = "warn"
80-
81-[patch.crates-io]
82-matrix-sdk = { path = "../matrix-rust-sdk/crates/matrix-sdk" }
83-matrix-sdk-base = { path = "../matrix-rust-sdk/crates/matrix-sdk-base" }
84-matrix-sdk-common = { path = "../matrix-rust-sdk/crates/matrix-sdk-common" }
85-matrix-sdk-crypto = { path = "../matrix-rust-sdk/crates/matrix-sdk-crypto" }
86-matrix-sdk-indexeddb = { path = "../matrix-rust-sdk/crates/matrix-sdk-indexeddb" }
87-matrix-sdk-sqlite = { path = "../matrix-rust-sdk/crates/matrix-sdk-sqlite" }
88-matrix-sdk-store-encryption = { path = "../matrix-rust-sdk/crates/matrix-sdk-store-encryption" }
89-matrix-sdk-test = { path = "../matrix-rust-sdk/testing/matrix-sdk-test" }
90-matrix-sdk-test-macros = { path = "../matrix-rust-sdk/testing/matrix-sdk-test-macros" }
91-matrix-sdk-ui = { path = "../matrix-rust-sdk/crates/matrix-sdk-ui" }
Modified file: docs/design-decisions.md+5 additions−5 deletions
@@ -408,11 +408,11 @@ included, lives in the state rather than only in an update
408408
409409 we build against a fork of matrix-rust-sdk, branch `macltok`, cut from the
410410 matrix-sdk 0.18.0 tag. turned down on 2026-09-26, taken up on 2026-10-22 once
411-it was holding back features every peer client has. every workspace that builds
412-macltok needs the same `[patch.crates-io]` block, since patches don't reach
413-dependents, and it keeps macltok off crates.io until upstream takes the patches.
414-a vendored copy of macltok should drop its own block, cargo ignores it there
415-and says so on every build
411+it was holding back features every peer client has. the sdk crates are git
412+dependencies pinned to a fork rev, so dependents get the fork through macltok
413+with no patch block of their own, and macltok stays off crates.io until
414+upstream takes the patches. a dependent naming matrix-sdk itself has to point
415+at the same rev or it gets a second sdk
416416
417417 it carries visibility and config changes, each small enough to be an upstream
418418 pr, and nothing that changes how the sdk behaves. if that stops being true,
Modified file: flake.nix+16 additions−4 deletions
@@ -60,7 +60,10 @@
6060 pname = "macltok";
6161 version = "0.1.0";
6262 src = self;
63- cargoLock.lockFile = ./Cargo.lock;
63+ cargoLock = {
64+ lockFile = ./Cargo.lock;
65+ allowBuiltinFetchGit = true;
66+ };
6467 SSL_CERT_FILE = "${pkgs.cacert}/etc/ssl/certs/ca-bundle.crt";
6568 };
6669 }
@@ -91,7 +94,10 @@
9194 pname = "macltok-sqlite-check";
9295 version = "0.1.0";
9396 src = self;
94- cargoLock.lockFile = ./Cargo.lock;
97+ cargoLock = {
98+ lockFile = ./Cargo.lock;
99+ allowBuiltinFetchGit = true;
100+ };
95101 buildFeatures = [
96102 "sqlite"
97103 "mirror"
@@ -104,7 +110,10 @@
104110 pname = "macltok-wasm-check";
105111 version = "0.1.0";
106112 src = self;
107- cargoLock.lockFile = ./Cargo.lock;
113+ cargoLock = {
114+ lockFile = ./Cargo.lock;
115+ allowBuiltinFetchGit = true;
116+ };
108117 buildPhase = ''
109118 runHook preBuild
110119 cargo check --offline --frozen --lib --target wasm32-unknown-unknown -j $NIX_BUILD_CORES
@@ -120,7 +129,10 @@
120129 version = "0.1.0";
121130 src = self;
122131 cargoRoot = "harness/web";
123- cargoLock.lockFile = ./harness/web/Cargo.lock;
132+ cargoLock = {
133+ lockFile = ./harness/web/Cargo.lock;
134+ allowBuiltinFetchGit = true;
135+ };
124136 nativeBuildInputs = with pkgs; [
125137 (wasmBindgenCli pkgs)
126138 firefox
Modified file: harness/web/.cargo/config.toml+3 additions
@@ -1,3 +1,6 @@
11 [target.wasm32-unknown-unknown]
22 runner = "wasm-bindgen-test-runner"
33 rustflags = ["--cfg", "getrandom_backend=\"wasm_js\""]
4+
5+[net]
6+git-fetch-with-cli = true
Modified file: harness/web/Cargo.lock+8 additions
@@ -1906,6 +1906,7 @@ dependencies = [
19061906 [[package]]
19071907 name = "matrix-sdk"
19081908 version = "0.18.0"
1909+source = "git+ssh://brewery@pls.lobotomise.me:33/atagen/matrix-rust-sdk?rev=cabc67b5cc0529bcf548c004f2e7c889aed6c4e5#cabc67b5cc0529bcf548c004f2e7c889aed6c4e5"
19091910 dependencies = [
19101911 "anymap2",
19111912 "aquamarine",
@@ -1965,6 +1966,7 @@ dependencies = [
19651966 [[package]]
19661967 name = "matrix-sdk-base"
19671968 version = "0.18.0"
1969+source = "git+ssh://brewery@pls.lobotomise.me:33/atagen/matrix-rust-sdk?rev=cabc67b5cc0529bcf548c004f2e7c889aed6c4e5#cabc67b5cc0529bcf548c004f2e7c889aed6c4e5"
19681970 dependencies = [
19691971 "as_variant",
19701972 "async-trait",
@@ -1990,6 +1992,7 @@ dependencies = [
19901992 [[package]]
19911993 name = "matrix-sdk-common"
19921994 version = "0.18.0"
1995+source = "git+ssh://brewery@pls.lobotomise.me:33/atagen/matrix-rust-sdk?rev=cabc67b5cc0529bcf548c004f2e7c889aed6c4e5#cabc67b5cc0529bcf548c004f2e7c889aed6c4e5"
19931996 dependencies = [
19941997 "eyeball-im",
19951998 "futures-core",
@@ -2012,6 +2015,7 @@ dependencies = [
20122015 [[package]]
20132016 name = "matrix-sdk-crypto"
20142017 version = "0.18.0"
2018+source = "git+ssh://brewery@pls.lobotomise.me:33/atagen/matrix-rust-sdk?rev=cabc67b5cc0529bcf548c004f2e7c889aed6c4e5#cabc67b5cc0529bcf548c004f2e7c889aed6c4e5"
20152019 dependencies = [
20162020 "aes",
20172021 "aquamarine",
@@ -2051,6 +2055,7 @@ dependencies = [
20512055 [[package]]
20522056 name = "matrix-sdk-indexeddb"
20532057 version = "0.18.0"
2058+source = "git+ssh://brewery@pls.lobotomise.me:33/atagen/matrix-rust-sdk?rev=cabc67b5cc0529bcf548c004f2e7c889aed6c4e5#cabc67b5cc0529bcf548c004f2e7c889aed6c4e5"
20542059 dependencies = [
20552060 "async-trait",
20562061 "base64",
@@ -2082,6 +2087,7 @@ dependencies = [
20822087 [[package]]
20832088 name = "matrix-sdk-sqlite"
20842089 version = "0.18.0"
2090+source = "git+ssh://brewery@pls.lobotomise.me:33/atagen/matrix-rust-sdk?rev=cabc67b5cc0529bcf548c004f2e7c889aed6c4e5#cabc67b5cc0529bcf548c004f2e7c889aed6c4e5"
20852091 dependencies = [
20862092 "as_variant",
20872093 "async-trait",
@@ -2108,6 +2114,7 @@ dependencies = [
21082114 [[package]]
21092115 name = "matrix-sdk-store-encryption"
21102116 version = "0.18.0"
2117+source = "git+ssh://brewery@pls.lobotomise.me:33/atagen/matrix-rust-sdk?rev=cabc67b5cc0529bcf548c004f2e7c889aed6c4e5#cabc67b5cc0529bcf548c004f2e7c889aed6c4e5"
21112118 dependencies = [
21122119 "base64",
21132120 "blake3",
@@ -2128,6 +2135,7 @@ dependencies = [
21282135 [[package]]
21292136 name = "matrix-sdk-ui"
21302137 version = "0.18.0"
2138+source = "git+ssh://brewery@pls.lobotomise.me:33/atagen/matrix-rust-sdk?rev=cabc67b5cc0529bcf548c004f2e7c889aed6c4e5#cabc67b5cc0529bcf548c004f2e7c889aed6c4e5"
21312139 dependencies = [
21322140 "as_variant",
21332141 "async-rx",
Modified file: harness/web/Cargo.toml−10 deletions
@@ -45,13 +45,3 @@ lto = true
4545 codegen-units = 1
4646 panic = "abort"
4747 strip = true
48-
49-[patch.crates-io]
50-matrix-sdk = { path = "../../../matrix-rust-sdk/crates/matrix-sdk" }
51-matrix-sdk-base = { path = "../../../matrix-rust-sdk/crates/matrix-sdk-base" }
52-matrix-sdk-common = { path = "../../../matrix-rust-sdk/crates/matrix-sdk-common" }
53-matrix-sdk-crypto = { path = "../../../matrix-rust-sdk/crates/matrix-sdk-crypto" }
54-matrix-sdk-indexeddb = { path = "../../../matrix-rust-sdk/crates/matrix-sdk-indexeddb" }
55-matrix-sdk-sqlite = { path = "../../../matrix-rust-sdk/crates/matrix-sdk-sqlite" }
56-matrix-sdk-store-encryption = { path = "../../../matrix-rust-sdk/crates/matrix-sdk-store-encryption" }
57-matrix-sdk-ui = { path = "../../../matrix-rust-sdk/crates/matrix-sdk-ui" }