The recipe adds a forkpty extern to the libc crate's Redox module (which
relibc provides but the libc crate does not declare) so nix 0.30.1's pty
module compiles. The sed anchor was `)-> c_int;` (no space), which
matched older libc formatting but NOT libc 0.2.189's multi-line openpty
close `) -> c_int;` (with space) — pulled in by the latest-upstream rule.
The sed silently no-op'd, forkpty was never declared, and nix failed with
"cannot find function forkpty in crate libc", breaking the mini build.
Fix: anchor `) *-> c_int;` (optional space) matches both the old and new
formatting. Verified: clean uutils-tar build compiles nix and finishes.
Note on the stale-rlib symptom seen during diagnosis: cargo fingerprints
registry crates by version, not source content, so a libc rlib compiled
while the anchor was broken (forkpty absent) is reused even after the
source is patched. A clean/target-wiped build recompiles correctly; the
anchor fix is the durable root fix.
Comprehensive fix — not a fallback. Each recipe now has explicit
[package] section with name and version. Version inference:
- Git-source recipes without rev/branch: '0.1.0' (Red Bear convention)
- Tar/git recipes with version in URL or dir name: extracted version
- Sysroot-copy recipes: matched to toolchain version
Affected: 250+ recipes across all categories (core, libs, dev, system,
kde, qt, drivers, gpu, drm, kernel, userspace, etc.) Every recipe
in the redbear-mini build chain that was missing [package] now has
explicit version metadata. Cookbook can now always determine a version
at packaging time, eliminating 'cannot guess version' failures.
No cookbook fallback hack — the source of truth is recipe metadata.
Derivative of Redox OS (https://www.redox-os.org) adding:
- AMD GPU driver (amdgpu) via LinuxKPI compat layer
- ext4 filesystem support (ext4d scheme daemon)
- ACPI fixes for AMD bare metal (x2APIC, DMAR, IVRS, MCFG)
- Custom branding (hostname, os-release, boot identity)
Build system is full upstream Redox with RBOS overlay in local/.
Patches for kernel, base, and relibc are symlinked from local/patches/
and protected from make clean/distclean. Custom recipes live in
local/recipes/ with symlinks into the recipes/ search path.
Build: make all CONFIG_NAME=redbear-full
Sync: ./local/scripts/sync-upstream.sh