Commit Graph

13 Commits

Author SHA1 Message Date
vasilito 299a86f6e3 bash: avoid subprocess spawns during interactive shell startup
On the live image, a fork/exec during login-shell startup can stall the
shell before its first prompt. Replace command substitutions with pure
builtins in the startup path:

- bash.bashrc: read /etc/redox_chroot with the 'read' builtin instead of
  $(cat ...)
- profile: derive the root prompt from EUID/USER/LOGNAME (set by
  login(1)) instead of $(id -u)
- skel/.bashrc: disable lesspipe and dircolors eval (both spawn
  subprocesses); keep the ls --color=auto alias
2026-07-20 09:05:32 +09:00
vasilito 9c97cefc57 recipes: adopt brush shell into local/recipes with Redox port patches
Port the brush shell (reubeno/brush) to Redox and adopt the recipe as a
Red Bear local recipe under local/recipes/shells/brush, with the standard
recipes/shells/brush -> ../../local/recipes/shells/brush overlay symlink so
it takes priority over any upstream WIP copy (per local/AGENTS.md "Local
recipe priority vs upstream WIP"). Removes the old recipes/wip/shells/brush.

The dependency tree did not build for Redox: nix 0.31 only partially
cfg-enables Redox and the libc crate's Redox module omits POSIX symbols that
relibc provides. Fixes are reviewable unified diffs under
local/recipes/shells/brush/patches/:

  nix-0.31-redox.patch   cfg-enable resource/Id/waitid/from_siginfo, rlimit
                         import + repr(i32), SaFlags width casts, pty.
  libc-0.2-redox.patch   add idtype_t, P_*/CLD_*, rusage, getrusage/waitid/
                         forkpty externs, siginfo child accessors.
  brush-umask-redox.patch  mode_t is signed on Redox; cast, not u32::from.

The recipe runs `cargo fetch` to materialise registry sources before
patching (they are only unpacked during the build), resolves the right
crate version from Cargo.lock (brush pulls both nix 0.26 and 0.31), and
applies each patch idempotently, failing loudly on version drift. The
binary target is named `brush` (not `brush-shell`), so install it
explicitly. Verified: cooks from a pristine cargo cache using only the
patch files. brush is shipped in redbear-mini as a package for in-image
validation; the login shell stays zsh until brush is runtime-proven.
2026-07-16 23:23:37 +09:00
vasilito 3bcf4cc196 fix: add [package].version to ALL 250+ non-WIP recipes (was missing)
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.
2026-07-12 19:08:00 +03:00
vasilito 9871d79aa4 phase 4.3: archive 2 kernel patches operator-superseded
Phase 4.3 patch-loss audit (the user's recurring concern about
'very important patches due to build system deficiencies') revealed
that since Round 4, the operator's own diagnosis work had made 2
patches obsolete. Per the user's 'upstream preferred' policy, when
the operator's own work supersedes a Red Bear patch, we archive.

P0-canary (operator-superseded):
- Original: Phase 1.0A absorbed the canary diagnostic into kernel
  commit 6e9613e6 ('diag: serial canary characters at kernel init
  checkpoints')
- Obsoleted by: 66a5243f ('diag: remove all diagnostic serial canary
  chars and info! debug logging')
- Reason: After the kernel build stabilized, the operator removed the
  diagnostic noise. The canary's purpose (early-boot serial output)
  is no longer needed.

P5-context-mod-sched (operator-abandoned):
- Original: Patches re-export SchedPolicy in src/context/mod.rs
- Obsoleted by: dc51e67d ('fix: remove unresolved SchedPolicy import
  (leftover from reverted ACPI commit)')
- Reason: The patch adds 'SchedPolicy' to a re-export but the
  SchedPolicy type itself doesn't exist in the fork. The patch
  is incomplete without a corresponding type definition; the
  operator's failed attempt to add the type was reverted.

Both moves follow AGENTS.md principle:
  'When upstream Redox already provides a package, crate, or
   subsystem for functionality that also exists in Red Bear local
   code, prefer the upstream Redox version by default.'

The patches were the operator's own work; when the operator decided
the work was no longer needed (cleanup, feature reversion), the
patches were retired. 'Upstream preferred' in spirit: Red Bear
prefers clean, well-tested upstream-equivalent functionality over
locally-maintained diagnostic noise and half-finished features.

After this commit:
  Active patches: 119 (was 121)
  Archived: 96 in legacy-superseded-2026-07-12/
  All forks: 0 orphans
2026-07-12 09:23:10 +03:00
vasilito 5474781a9b active build: bash 5.2.15 → 5.3 (latest stable) 2026-07-11 16:02:41 +03:00
vasilito f069dcfa18 conntrack: icmp_error_count 2026-07-09 10:19:22 +03:00
vasilito 04badb070e Fix zsh cross-compilation: --srcdir flag + awk permissions
Added --srcdir="${COOKBOOK_SOURCE}" to zsh configure flags to fix
the config.status error '/subs1.awk: Permission denied' during
cross-compilation. The error occurred because  was empty,
causing awk script paths to resolve to '/subs1.awk' instead of
the correct source directory path.

Also added chmod +x on Src/*.awk to ensure configure-generated
config.status can invoke awk scripts directly (autotools may try
to execute rather than interpret via awk -f).

This unblocks Phase 2.1 end-to-end build test.
2026-07-09 00:49:15 +03:00
vasilito 15d0707e74 feat: USB storage read/write proof + full Red Bear OS tree sync
Add redbear-usb-storage-check in-guest binary that validates USB mass
storage read and write I/O: discovers /scheme/disk/ devices, writes a
test pattern to sector 2048, reads it back, verifies match, restores
original content. Updates test-usb-storage-qemu.sh with write-proof
verification step.

Includes all accumulated Red Bear OS work: kernel patches, relibc
patches, driver infrastructure, DRM/GPU, KDE recipes, firmware,
validation tooling, build system hardening, and documentation.
2026-05-03 23:03:24 +01:00
vasilito a86717be2f state: 36/48 KDE packages build, 12 blocked — honest final state
The literal task 'build ALL KDE packages' cannot be 100% completed
because 12 packages require upstream dependencies not available on Redox:
- kirigami + plasma* (4): QML JIT disabled — no QQuickWindow/QQmlEngine
- kwin real build (1): Qt6::Sensors port needed
- breeze + kf6-kio + kf6-knewstuff + kde-cli-tools (4): source issues
- plasma extras (3): transitive blockers

What WAS completed:
- Cookbook topological sort fix (root cause — all deps now correct order)
- kf6-attica recipe (183 files, 2.4MB pkgar)
- 12 I2C/GPIO/UCSI daemons archived as durable patches
- Source archival system (make sources)
- Config + all docs synced, no contradictions
2026-04-30 01:54:09 +01:00
vasilito 6f5aa6010b Add kwin full source tree, greeter login, zsh, pcid service, and build system improvements 2026-04-26 22:31:07 +01:00
vasilito ed04c28b91 Refresh upstream recipe compatibility 2026-04-15 12:57:45 +01:00
vasilito 5b95e9aa9c Add runtime tools and Red Bear service wiring 2026-04-14 10:50:42 +01:00
vasilito 50b731f1b7 Red Bear OS — microkernel OS in Rust, based on Redox
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
2026-04-12 19:05:00 +01:00