From 9ad7cc629e20e4cdb5420e20addae8909e83d610 Mon Sep 17 00:00:00 2001 From: edef Date: Sun, 19 Nov 2023 05:23:53 +0000 Subject: [PATCH] fix(tvix): patch futures::AsyncBufReadExt::fill_buf This fixes EOF handling for buffered readers. Link: https://github.com/rust-lang/futures-rs/pull/2801 Change-Id: Ie98ca6a3e1de38500b0195e9b62511501acb1d2c Reviewed-on: https://cl.tvl.fyi/c/depot/+/10086 Reviewed-by: flokli Tested-by: BuildkiteCI --- tvix/Cargo.lock | 24 ++++++------------ tvix/Cargo.nix | 56 ++++++++++++++++++++++++++++++++++++------ tvix/Cargo.toml | 11 +++++++++ tvix/crate-hashes.json | 8 ++++++ tvix/default.nix | 9 +++++++ 5 files changed, 84 insertions(+), 24 deletions(-) diff --git a/tvix/Cargo.lock b/tvix/Cargo.lock index d949c954b..72da96074 100644 --- a/tvix/Cargo.lock +++ b/tvix/Cargo.lock @@ -819,8 +819,7 @@ dependencies = [ [[package]] name = "futures-channel" version = "0.3.29" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff4dd66668b557604244583e3e1e1eada8c5c2e96a6d0d6653ede395b78bbacb" +source = "git+https://github.com/edef1c/futures-rs?rev=23e25061f2261794d6d611675a6372c96b70fa85#23e25061f2261794d6d611675a6372c96b70fa85" dependencies = [ "futures-core", "futures-sink", @@ -829,14 +828,12 @@ dependencies = [ [[package]] name = "futures-core" version = "0.3.29" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb1d22c66e66d9d72e1758f0bd7d4fd0bee04cad842ee34587d68c07e45d088c" +source = "git+https://github.com/edef1c/futures-rs?rev=23e25061f2261794d6d611675a6372c96b70fa85#23e25061f2261794d6d611675a6372c96b70fa85" [[package]] name = "futures-executor" version = "0.3.29" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f4fb8693db0cf099eadcca0efe2a5a22e4550f98ed16aba6c48700da29597bc" +source = "git+https://github.com/edef1c/futures-rs?rev=23e25061f2261794d6d611675a6372c96b70fa85#23e25061f2261794d6d611675a6372c96b70fa85" dependencies = [ "futures-core", "futures-task", @@ -846,14 +843,12 @@ dependencies = [ [[package]] name = "futures-io" version = "0.3.29" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8bf34a163b5c4c52d0478a4d757da8fb65cabef42ba90515efee0f6f9fa45aaa" +source = "git+https://github.com/edef1c/futures-rs?rev=23e25061f2261794d6d611675a6372c96b70fa85#23e25061f2261794d6d611675a6372c96b70fa85" [[package]] name = "futures-macro" version = "0.3.29" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53b153fd91e4b0147f4aced87be237c98248656bb01050b96bf3ee89220a8ddb" +source = "git+https://github.com/edef1c/futures-rs?rev=23e25061f2261794d6d611675a6372c96b70fa85#23e25061f2261794d6d611675a6372c96b70fa85" dependencies = [ "proc-macro2 1.0.67", "quote 1.0.26", @@ -863,20 +858,17 @@ dependencies = [ [[package]] name = "futures-sink" version = "0.3.29" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e36d3378ee38c2a36ad710c5d30c2911d752cb941c00c72dbabfb786a7970817" +source = "git+https://github.com/edef1c/futures-rs?rev=23e25061f2261794d6d611675a6372c96b70fa85#23e25061f2261794d6d611675a6372c96b70fa85" [[package]] name = "futures-task" version = "0.3.29" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "efd193069b0ddadc69c46389b740bbccdd97203899b48d09c5f7969591d6bae2" +source = "git+https://github.com/edef1c/futures-rs?rev=23e25061f2261794d6d611675a6372c96b70fa85#23e25061f2261794d6d611675a6372c96b70fa85" [[package]] name = "futures-util" version = "0.3.29" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a19526d624e703a3179b3d322efec918b6246ea0fa51d41124525f00f1cc8104" +source = "git+https://github.com/edef1c/futures-rs?rev=23e25061f2261794d6d611675a6372c96b70fa85#23e25061f2261794d6d611675a6372c96b70fa85" dependencies = [ "futures-channel", "futures-core", diff --git a/tvix/Cargo.nix b/tvix/Cargo.nix index 53a1e9642..261ff74c9 100644 --- a/tvix/Cargo.nix +++ b/tvix/Cargo.nix @@ -2407,7 +2407,12 @@ rec { crateName = "futures-channel"; version = "0.3.29"; edition = "2018"; - sha256 = "1jxsifvrbqzdadk0svbax71cba5d3qg3wgjq8i160mxmd1kdckgz"; + workspace_member = null; + src = pkgs.fetchgit { + url = "https://github.com/edef1c/futures-rs"; + rev = "23e25061f2261794d6d611675a6372c96b70fa85"; + sha256 = "082d1f2201slvpl36v30lq8dchp5kh91yx64j9n9amf3bsdaf98r"; + }; dependencies = [ { name = "futures-core"; @@ -2434,7 +2439,12 @@ rec { crateName = "futures-core"; version = "0.3.29"; edition = "2018"; - sha256 = "1308bpj0g36nhx2y6bl4mm6f1gnh9xyvvw2q2wpdgnb6dv3247gb"; + workspace_member = null; + src = pkgs.fetchgit { + url = "https://github.com/edef1c/futures-rs"; + rev = "23e25061f2261794d6d611675a6372c96b70fa85"; + sha256 = "082d1f2201slvpl36v30lq8dchp5kh91yx64j9n9amf3bsdaf98r"; + }; features = { "default" = [ "std" ]; "portable-atomic" = [ "dep:portable-atomic" ]; @@ -2446,7 +2456,12 @@ rec { crateName = "futures-executor"; version = "0.3.29"; edition = "2018"; - sha256 = "1g4pjni0sw28djx6mlcfz584abm2lpifz86cmng0kkxh7mlvhkqg"; + workspace_member = null; + src = pkgs.fetchgit { + url = "https://github.com/edef1c/futures-rs"; + rev = "23e25061f2261794d6d611675a6372c96b70fa85"; + sha256 = "082d1f2201slvpl36v30lq8dchp5kh91yx64j9n9amf3bsdaf98r"; + }; dependencies = [ { name = "futures-core"; @@ -2476,7 +2491,12 @@ rec { crateName = "futures-io"; version = "0.3.29"; edition = "2018"; - sha256 = "1ajsljgny3zfxwahba9byjzclrgvm1ypakca8z854k2w7cb4mwwb"; + workspace_member = null; + src = pkgs.fetchgit { + url = "https://github.com/edef1c/futures-rs"; + rev = "23e25061f2261794d6d611675a6372c96b70fa85"; + sha256 = "082d1f2201slvpl36v30lq8dchp5kh91yx64j9n9amf3bsdaf98r"; + }; features = { "default" = [ "std" ]; }; @@ -2486,7 +2506,12 @@ rec { crateName = "futures-macro"; version = "0.3.29"; edition = "2018"; - sha256 = "1nwd18i8kvpkdfwm045hddjli0n96zi7pn6f99zi9c74j7ym7cak"; + workspace_member = null; + src = pkgs.fetchgit { + url = "https://github.com/edef1c/futures-rs"; + rev = "23e25061f2261794d6d611675a6372c96b70fa85"; + sha256 = "082d1f2201slvpl36v30lq8dchp5kh91yx64j9n9amf3bsdaf98r"; + }; procMacro = true; dependencies = [ { @@ -2509,7 +2534,12 @@ rec { crateName = "futures-sink"; version = "0.3.29"; edition = "2018"; - sha256 = "05q8jykqddxzp8nwf00wjk5m5mqi546d7i8hsxma7hiqxrw36vg3"; + workspace_member = null; + src = pkgs.fetchgit { + url = "https://github.com/edef1c/futures-rs"; + rev = "23e25061f2261794d6d611675a6372c96b70fa85"; + sha256 = "082d1f2201slvpl36v30lq8dchp5kh91yx64j9n9amf3bsdaf98r"; + }; features = { "default" = [ "std" ]; "std" = [ "alloc" ]; @@ -2520,7 +2550,12 @@ rec { crateName = "futures-task"; version = "0.3.29"; edition = "2018"; - sha256 = "1qmsss8rb5ppql4qvd4r70h9gpfcpd0bg2b3qilxrnhdkc397lgg"; + workspace_member = null; + src = pkgs.fetchgit { + url = "https://github.com/edef1c/futures-rs"; + rev = "23e25061f2261794d6d611675a6372c96b70fa85"; + sha256 = "082d1f2201slvpl36v30lq8dchp5kh91yx64j9n9amf3bsdaf98r"; + }; features = { "default" = [ "std" ]; "std" = [ "alloc" ]; @@ -2531,7 +2566,12 @@ rec { crateName = "futures-util"; version = "0.3.29"; edition = "2018"; - sha256 = "0141rkqh0psj4h8x8lgsl1p29dhqr7z2wcixkcbs60z74kb2d5d1"; + workspace_member = null; + src = pkgs.fetchgit { + url = "https://github.com/edef1c/futures-rs"; + rev = "23e25061f2261794d6d611675a6372c96b70fa85"; + sha256 = "082d1f2201slvpl36v30lq8dchp5kh91yx64j9n9amf3bsdaf98r"; + }; dependencies = [ { name = "futures-channel"; diff --git a/tvix/Cargo.toml b/tvix/Cargo.toml index 23486a921..167e0aa2e 100644 --- a/tvix/Cargo.toml +++ b/tvix/Cargo.toml @@ -36,3 +36,14 @@ members = [ [profile.release-with-debug] inherits = "release" debug = true + +[patch.crates-io] +# https://github.com/rust-lang/futures-rs/pull/2801 +futures-channel = { git = "https://github.com/edef1c/futures-rs", rev = "23e25061f2261794d6d611675a6372c96b70fa85" } +futures-core = { git = "https://github.com/edef1c/futures-rs", rev = "23e25061f2261794d6d611675a6372c96b70fa85" } +futures-executor = { git = "https://github.com/edef1c/futures-rs", rev = "23e25061f2261794d6d611675a6372c96b70fa85" } +futures-io = { git = "https://github.com/edef1c/futures-rs", rev = "23e25061f2261794d6d611675a6372c96b70fa85" } +futures-macro = { git = "https://github.com/edef1c/futures-rs", rev = "23e25061f2261794d6d611675a6372c96b70fa85" } +futures-sink = { git = "https://github.com/edef1c/futures-rs", rev = "23e25061f2261794d6d611675a6372c96b70fa85" } +futures-task = { git = "https://github.com/edef1c/futures-rs", rev = "23e25061f2261794d6d611675a6372c96b70fa85" } +futures-util = { git = "https://github.com/edef1c/futures-rs", rev = "23e25061f2261794d6d611675a6372c96b70fa85" } diff --git a/tvix/crate-hashes.json b/tvix/crate-hashes.json index 0681bfda7..02203fac7 100644 --- a/tvix/crate-hashes.json +++ b/tvix/crate-hashes.json @@ -1,5 +1,13 @@ { "fuse-backend-rs 0.10.5 (git+https://github.com/griff/fuse-backend-rs?branch=macfuse-fix#70b835cada7e1f18e5cbb13f6c4b698ba203c820)": "107iaw8zqsz888xh9nkq3vvki1c1rqqqg0mncdplradhhn7wp3kp", + "futures-channel 0.3.29 (git+https://github.com/edef1c/futures-rs?rev=23e25061f2261794d6d611675a6372c96b70fa85#23e25061f2261794d6d611675a6372c96b70fa85)": "082d1f2201slvpl36v30lq8dchp5kh91yx64j9n9amf3bsdaf98r", + "futures-core 0.3.29 (git+https://github.com/edef1c/futures-rs?rev=23e25061f2261794d6d611675a6372c96b70fa85#23e25061f2261794d6d611675a6372c96b70fa85)": "082d1f2201slvpl36v30lq8dchp5kh91yx64j9n9amf3bsdaf98r", + "futures-executor 0.3.29 (git+https://github.com/edef1c/futures-rs?rev=23e25061f2261794d6d611675a6372c96b70fa85#23e25061f2261794d6d611675a6372c96b70fa85)": "082d1f2201slvpl36v30lq8dchp5kh91yx64j9n9amf3bsdaf98r", + "futures-io 0.3.29 (git+https://github.com/edef1c/futures-rs?rev=23e25061f2261794d6d611675a6372c96b70fa85#23e25061f2261794d6d611675a6372c96b70fa85)": "082d1f2201slvpl36v30lq8dchp5kh91yx64j9n9amf3bsdaf98r", + "futures-macro 0.3.29 (git+https://github.com/edef1c/futures-rs?rev=23e25061f2261794d6d611675a6372c96b70fa85#23e25061f2261794d6d611675a6372c96b70fa85)": "082d1f2201slvpl36v30lq8dchp5kh91yx64j9n9amf3bsdaf98r", + "futures-sink 0.3.29 (git+https://github.com/edef1c/futures-rs?rev=23e25061f2261794d6d611675a6372c96b70fa85#23e25061f2261794d6d611675a6372c96b70fa85)": "082d1f2201slvpl36v30lq8dchp5kh91yx64j9n9amf3bsdaf98r", + "futures-task 0.3.29 (git+https://github.com/edef1c/futures-rs?rev=23e25061f2261794d6d611675a6372c96b70fa85#23e25061f2261794d6d611675a6372c96b70fa85)": "082d1f2201slvpl36v30lq8dchp5kh91yx64j9n9amf3bsdaf98r", + "futures-util 0.3.29 (git+https://github.com/edef1c/futures-rs?rev=23e25061f2261794d6d611675a6372c96b70fa85#23e25061f2261794d6d611675a6372c96b70fa85)": "082d1f2201slvpl36v30lq8dchp5kh91yx64j9n9amf3bsdaf98r", "test-generator 0.3.0 (git+https://github.com/JamesGuthrie/test-generator.git?rev=82e799979980962aec1aa324ec6e0e4cad781f41#82e799979980962aec1aa324ec6e0e4cad781f41)": "08brp3qqa55hijc7xby3lam2cc84hvx1zzfqv6lj7smlczh8k32y", "wu-manber 0.1.0 (git+https://github.com/tvlfyi/wu-manber.git#0d5b22bea136659f7de60b102a7030e0daaa503d)": "1zhk83lbq99xzyjwphv2qrb8f8qgfqwa5bbbvyzm0z0bljsjv0pd" } \ No newline at end of file diff --git a/tvix/default.nix b/tvix/default.nix index 339a657ef..30235b438 100644 --- a/tvix/default.nix +++ b/tvix/default.nix @@ -74,6 +74,15 @@ let "fuse-backend-rs" "test-generator" "wu-manber" + + "futures-channel" + "futures-core" + "futures-executor" + "futures-io" + "futures-macro" + "futures-sink" + "futures-task" + "futures-util" ]); }; in