From 2a309ee11f617d6c6a31bf316e53c79247befe0f Mon Sep 17 00:00:00 2001 From: Ryan Newton Date: Wed, 27 May 2026 05:59:28 -0700 Subject: [PATCH] scx_cake: bump version + scx_cargo to fix crates.io install MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Commits 97cf25fe ("scx_cake: fix lib paths") + 11cb5f25 ("scx_cake: bump version") landed the symlink-based path fix for scx_cake — the same pattern as scx_cosmos commit 605c7d2c. That fixed the original `clang: error: no such file or directory: '../../../lib/arena.bpf.c'` that blocked installing scx_cake 1.1.1 from crates.io. However scx_cake 1.1.2 still cannot install from crates.io. Unlike scx_cosmos (which only bundles pmu.bpf.c), scx_cake bundles sdt_alloc.bpf.c and sdt_task.bpf.c, both of which now use the scx_err_loc/scx_err/scx_out_loc macros introduced in commit 73b45430 ("lib: move allocators to BPF streams reporting", 2026-05-13). Those macros live in scheds/include/lib/alloc/bpf_helpers_local.h, which ships inside the scx_cargo crate's bpf_h tarball. But the scx_cargo crate on crates.io is still 1.1.1 (published 2026-05-13, before the streams refactor), so its bundled bpf_helpers_local.h lacks those macros — making any cake 1.1.2 install from crates.io fail with: src/bpf/lib/sdt_alloc.bpf.c:45:2: error: call to undeclared function 'scx_err_loc' Fix this by re-publishing scx_cargo with the current (post-streams) bpf_h, and bumping cake to consume it: * rust/scx_cargo: 1.1.1 -> 1.1.2 (no code change, picks up the new bpf_helpers_local.h via the bpf_h -> ../../scheds/include symlink that gets resolved at `cargo package` time) * scheds/rust/scx_cake: 1.1.2 -> 1.1.3, build-dep scx_cargo "1.1.1" -> "1.1.2" Validation ---------- Local validation simulates the post-publish state without actually publishing: 1. cargo package -p scx_cargo -p scx_cake --no-verify # both build 2. extract both tarballs side by side under /tmp/cake-install-sim/ 3. in extracted scx_cake-1.1.3/, inject [patch.crates-io] scx_cargo = { path = "../scx_cargo-1.1.2" } 4. cargo build # succeeds: scx_err_loc resolves via the new bpf_h # tar that scx_cargo 1.1.2 ships (Step 3 is the post-extract simulation of how cargo install will resolve scx_cargo 1.1.2 from crates.io once published — the contents inside the extracted tarballs are exactly what the registry would serve.) Release ordering: scx_cargo 1.1.2 must be published before scx_cake 1.1.3 so cargo can resolve the new build-dep version. Signed-off-by: Ryan Newton --- Cargo.lock | 4 ++-- rust/scx_cargo/Cargo.toml | 2 +- scheds/rust/scx_cake/Cargo.toml | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 33e83df780..b5c22c5f0d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3635,7 +3635,7 @@ dependencies = [ [[package]] name = "scx_cake" -version = "1.1.2" +version = "1.1.3" dependencies = [ "anyhow", "arboard", @@ -3660,7 +3660,7 @@ dependencies = [ [[package]] name = "scx_cargo" -version = "1.1.1" +version = "1.1.2" dependencies = [ "anyhow", "bindgen 0.72.1", diff --git a/rust/scx_cargo/Cargo.toml b/rust/scx_cargo/Cargo.toml index 91f5304034..333fe95e69 100644 --- a/rust/scx_cargo/Cargo.toml +++ b/rust/scx_cargo/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "scx_cargo" -version = "1.1.1" +version = "1.1.2" edition = "2021" authors = ["Tejun Heo "] license = "GPL-2.0-only" diff --git a/scheds/rust/scx_cake/Cargo.toml b/scheds/rust/scx_cake/Cargo.toml index 029b098e68..7359d5d4a4 100644 --- a/scheds/rust/scx_cake/Cargo.toml +++ b/scheds/rust/scx_cake/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "scx_cake" -version = "1.1.2" +version = "1.1.3" authors = ["RitzDaCat"] edition = "2021" description = "A sched_ext scheduler applying CAKE bufferbloat concepts to CPU scheduling" @@ -28,7 +28,7 @@ tachyonfx = "0.25" nix = { version = "0.31", features = ["signal", "poll"] } [build-dependencies] -scx_cargo = { path = "../../../rust/scx_cargo", version = "1.1.1" } +scx_cargo = { path = "../../../rust/scx_cargo", version = "1.1.2" } [[bin]] name = "scx_cake"