From 0383dcbca31c036981e0fa2b6353ffe6be436e2b Mon Sep 17 00:00:00 2001 From: vasilito Date: Sun, 26 Jul 2026 23:31:19 +0900 Subject: [PATCH] brush: vendor as a local fork (path=source) to stop upstream auto-bump MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The brush recipe used an UNPINNED `git = "https://github.com/reubeno/brush"` source, so cookbook's fetch silently re-synced it to the latest upstream `main` on every build. It drifted onto reubeno/brush e985399 (PR #1249, which rewrote `read_input_line`), which made the Redox port patches reject; the patch-dirtied clone then failed cookbook's `git checkout` in the fetch step ("local changes would be overwritten") — surfacing as "brush does not compile". Vendor the working tree in-repo (RedBear convention: `[source] path = "source"`, as amdgpu/redox-drm/ext4d use) at reubeno/brush @ 897b373e — the commit right before #1249, where all four Redox patches (nix-0.31, libc-0.2, brush umask, brush runtime/input) apply cleanly. The shell is now a local fork under our control and can never auto-drift again. The brush-source patches are pre-applied in the vendored tree; the recipe keeps them (apply_patch idempotently skips an already-applied patch, so the source is never re-dirtied) as reviewable records of the Redox changes, and still applies the nix/libc patches to the fetched registry crates. Verified: `cook brush - successful` in a mini build. Co-Authored-By: Claude Opus 4.8 (1M context) --- local/recipes/shells/brush/recipe.toml | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/local/recipes/shells/brush/recipe.toml b/local/recipes/shells/brush/recipe.toml index e3f64bdc22..ecdb665792 100644 --- a/local/recipes/shells/brush/recipe.toml +++ b/local/recipes/shells/brush/recipe.toml @@ -3,7 +3,15 @@ name = "brush" version = "0.1.0" [source] -git = "https://github.com/reubeno/brush" +# Vendored local fork. brush was an UNPINNED upstream git source, so cookbook's +# fetch silently auto-bumped it to the latest reubeno/brush `main` on every +# build. That broke the Redox port whenever upstream refactored a patched region +# (e.g. read_input_line in PR #1249, commit e985399), because the patches then +# rejected. Vendoring the tree here pins the shell under our control so it never +# drifts again. Snapshot: reubeno/brush @ 897b373e08279f644438fb19438f156fc34647cd +# (the commit right before #1249, where all Redox patches apply cleanly). +# Upstream: https://github.com/reubeno/brush +path = "source" [build] template = "custom"