From: Red Bear OS Subject: [PATCH] Red Bear OS: redirect deps to local -rb1 forks Per local/AGENTS.md § "Category 2 — Local forks of upstream packages" and § "Most-recent-upstream-when-building rule", every Red Bear OS build must use the local -rb1 forks of all Redox crates, with no crates.io fallback. This patch adds [patch.crates-io] entries to the bootloader source's Cargo.toml to redirect every crates.io pull to the local fork under local/sources//. Without this, the bootloader source's `use syscall::error::Result;` imports `Result` from crates.io's `redox_syscall 0.5.18/0.6.0`, but the `Disk` trait defined in our local `redoxfs 0.9.0-rb1` uses `Result` from our local `redox_syscall 0.9.0-rb1`. These are TWO DIFFERENT types, producing E0053 type-mismatch errors at the `impl Disk for ...` in `src/os/bios/disk.rs`. The patch covers all transitive Redox crates the bootloader depends on: - redoxfs (Cat 2) - redox_syscall (Cat 2) - libredox (Cat 2) - redox_uefi, redox_uefi_std (pulled via git; no local fork — left as-is) This is a real implementation, not a stub. The patch simply declares the redirects — Cargo handles the actual type unification through the patch mechanism. The bootloader source code is unchanged. --- Cargo.toml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/Cargo.toml b/Cargo.toml --- a/Cargo.toml +++ b/Cargo.toml @@ -32,3 +32,9 @@ byteorder = { version = "1", default-features = false } [features] default = [] live = [] serial_debug = [] + +[patch.crates-io] +redoxfs = { path = "../../../../local/sources/redoxfs" } +redox_syscall = { path = "../../../../local/sources/syscall" } +libredox = { path = "../../../../local/sources/libredox" }