Commit Graph

1657 Commits

Author SHA1 Message Date
vasilito 0fbf56b2cd chore: track kernel submodule pointer for scheme-id diagnostic 2026-07-15 12:39:06 +09:00
vasilito 8cdd2b799a chore: track kernel submodule pointer for kdup diagnostic 2026-07-15 06:48:47 +09:00
vasilito d888ed0dff revert(relibc): drop ineffective spawn-leak workarounds
The thr_fd.take() and mem::forget(proc_fd) workarounds were
intended to keep the parent's proc scheme handles alive after
posix_spawn returns, so the child's ld_so could use them via
AT_REDOX_*_FD auxv entries. The boot diagnostic shows the actual
relibc binary does NOT take the 'fork' / 'thread-0' kdup path
(those calls never appear in the kdup trace), so the workarounds
targeted a code path that was not running. The real fix is
kernel-side: each Context must hold a self-reference to its own
proc handle so the handle cannot be dropped while the context
is alive.
2026-07-15 06:48:47 +09:00
vasilito 08ee8c23f5 chore: track relibc submodule pointer for mem::forget proc_fd leak 2026-07-15 06:48:47 +09:00
vasilito f8d5f390d2 chore: track relibc submodule pointer for proc_fd leak fix 2026-07-15 06:48:47 +09:00
vasilito 2fa8b3b835 chore: track relibc submodule pointer for spawn leak fix 2026-07-15 06:48:47 +09:00
vasilito c08379e03e chore: track base submodule pointer for waitpid fix 2026-07-15 06:48:46 +09:00
vasilito fac69f9d03 fix(kernel): ProcUptime f64 → integer in soft-float build
Kernel is built with target-feature=+soft-float (no SSE), but the
upstream ProcUptime code used f64 in format!() which requires SSE
register return. This caused a build error:

  error: src/scheme/proc.rs:2047:32: ... SSE register return with
        SSE disabled

Replace the f64 arithmetic with integer math (seconds.milliseconds)
to make the kernel buildable on the redoxer cross-toolchain.
2026-07-15 06:48:46 +09:00
vasilito f93f9e8ea8 build-system: add redbear-bare to dispatch + integrate + build-all
The redbear-bare target (added in 48a6f4c20b) was not registered in
the build dispatchers. Running build-redbear.sh redbear-bare
silently exited with 'ERROR: Unknown config redbear-bare'.

Fix:
- build-redbear.sh: extend the case statement + usage block + error
  message to include redbear-bare
- integrate-redbear.sh: add config/redbear-bare.toml to the configs
  array so source-tree integration picks up the bare target too
- build-all-isos.sh: include redbear-bare in the targets list

This closes the gap where the bare target existed as a config file
and as a recipe branch (REDBEAR_BARE_INITFS) but was invisible to
the build dispatch layer.

(NO AI attribution)
2026-07-15 00:40:23 +09:00
vasilito b447c22da1 build-redbear.sh + redbear-bare: wire REDBEAR_BARE_INITFS to make
Round-25 fix landed the bare initfs conditional in
recipes/core/base-initfs/recipe.toml but the cookbook does NOT parse
[build.env] sections in TOML configs. The REDBEAR_BARE_INITFS=1
env var I put in redbear-bare.toml was silently ignored.

Fix: propagate REDBEAR_BARE_INITFS through build-redbear.sh's make live
invocation. When CONFIG=redbear-bare and the operator has not already
exported REDBEAR_BARE_INITFS, auto-set it to 1 so the bare initfs
branch is triggered. Also propagates any pre-existing REDBEAR_BARE_INITFS
through the make call (override-only).

Also rewrote the [build.env] section in redbear-bare.toml to a
comment-only section explaining the dispatch mechanism, since the
cookbook parser ignores it.

(NO AI attribution)
2026-07-14 23:39:18 +09:00
vasilito ff1aa97ca7 Revert "chore: track relibc submodule pointer update"
This reverts commit 4f102d1e2b.
2026-07-14 23:08:57 +09:00
vasilito 4f102d1e2b chore: track relibc submodule pointer update
Submodule local/sources/relibc moved from 7dee5480 to 7a8c7564
(operator-side work). Local + origin now in sync.

(NO AI attribution)

# Conflicts:
#	local/sources/relibc
2026-07-14 18:30:18 +09:00
vasilito 05ae87bd61 merge: combine local Round-22 build system commit with origin/0.3.1 SUBMODULE-NORMALIZATION doc
Local had the SUBMODULE-NORMALIZATION doc + Round-22 build system commit
uncommitted; origin had the same doc pre-Round-22. This merge combines
both into a single linear history.

(NO AI attribution)

# Conflicts:
#	local/docs/SUBMODULE-NORMALIZATION-2026-07-13.md
2026-07-14 13:36:00 +09:00
vasilito e462d576f4 build-redbear.sh: enforce submodule/<name> branch on every fork worktree
Per local/AGENTS.md § "BRANCH AND SUBMODULE POLICY (ABSOLUTE)":\neach Red Bear fork worktree must be on the canonical\n"submodule/<name>" branch. Until now, the build system had NO\ncode enforcing this — drift was caught only by operator discipline\n(Round-21 hand-normalized 6 of 9 forks).\n\nAdd a new redbear_check_fork_branches() function called as a peer of\nthe existing dirty-source gate. It iterates REDBEAR_FORK_SOURCES,\nreads each fork worktree's current branch via 'git branch\n--show-current', and compares to 'submodule/<label>'. On mismatch\nthe build aborts with a clear error message and a documented fix\nrecipe. Escape hatch: REDBEAR_ALLOW_WRONG_BRANCH=1.
2026-07-14 13:00:52 +09:00
vasilito 441aba3d32 local/docs/SUBMODULE-NORMALIZATION-2026-07-13.md: operator handoff for fork branch normalization
6 of 9 local fork working-trees are on branches that violate local/AGENTS.md § "BRANCH AND SUBMODULE POLICY":
  - 4 forks on master (bootloader, libredox, redoxfs, userutils)
  - 2 forks on version-suffixed branches (installer, syscall)

Captures the exact 6-command fix, verification, and AGENTS.md policy citations. NO fallbacks, NO code changes — operator-only per "agents MUST NOT create new git branches" rule.

(NO AI attribution)
2026-07-14 12:41:17 +09:00
vasilito b135dfdcd9 local/docs/SUBMODULE-NORMALIZATION-2026-07-13.md: operator handoff for fork branch normalization
6 of 9 local fork working-trees are on branches that violate local/AGENTS.md § "BRANCH AND SUBMODULE POLICY":
  - 4 forks on master (bootloader, libredox, redoxfs, userutils)
  - 2 forks on version-suffixed branches (installer, syscall)

Captures the exact 6-command fix, verification, and AGENTS.md policy citations. NO fallbacks, NO code changes — operator-only per "agents MUST NOT create new git branches" rule.

(NO AI attribution)
2026-07-14 12:02:44 +09:00
vasilito 137da99644 scripts/bump-fork.sh: derive BRANCH_VERSION from git branch
The script uses '${BRANCH_VERSION:-0.0.0}' as the +rb suffix when
bumping a fork to a new upstream version. BRANCH_VERSION was never
set, so any fork bump would have produced 'X.Y.Z+rb0.0.0' instead
of the correct 'X.Y.Z+rb0.3.2' (or whichever branch is current).

Derive BRANCH_VERSION from 'git branch --show-current' using the same
pattern as local/scripts/build-redbear.sh:158-165. Falls back to
'0.0.0' if the branch name doesn't match semver (e.g., on 'master').

(NO AI attribution)
2026-07-14 11:53:39 +09:00
vasilito 314f655f37 chore: update base and kernel submodule pointers for fd-transfer diagnostics 2026-07-14 11:19:31 +09:00
vasilito e38b1bac27 chore: update base and relibc submodule pointers for FILETABLE fixes
- base: pipe2 FILETABLE desync fix (1e341ff7)

- relibc: open() FILETABLE-aware allocation fix (aeabac73)
2026-07-14 08:52:08 +09:00
vasilito adbea07ec8 track forked-component pointer updates + qt6-wayland-smoke gitlink
Submodule pointers for base and relibc moved (operator-side work).
recipes/wip/wayland/qt6-wayland-smoke remains a broken gitlink
(known; see local/docs/SESSION-2026-07-13-DOC-CLEANUP.md for carry-over).

(NO AI attribution)
2026-07-14 01:18:38 +03:00
vasilito aec5a71096 local/docs/BLUETOOTH-IMPLEMENTATION-PLAN.md: fix deleted + wrong-path cross-refs
D7 validation: INPUT-SCHEME-ENHANCEMENT.md + PROFILE-MATRIX.md deleted
during cleanup but still referenced. Replaced with local/docs/CONSOLE-TO-KDE-DESKTOP-PLAN.md (consolidation target).

(NO AI attribution)
2026-07-14 01:18:22 +03:00
vasilito ec9697f5d9 local/docs/DRM-MODERNIZATION-EXECUTION-PLAN.md: fix deleted + wrong-path cross-refs
D7 validation: 3 stale refs remained after cleanup.
- Removed DESKTOP-STACK-CURRENT-STATUS.md ref (file deleted)
- Removed docs/QUIRKS-IMPROVEMENT-PLAN.md ref (correct path is local/docs/)
- Verified all remaining refs resolve.

(NO AI attribution)
2026-07-14 01:18:21 +03:00
vasilito 757f5cfa53 local/docs/NETWORKING-IMPROVEMENT-PLAN.md: refresh fork SHAs to current HEADs
D7 validation found fork SHAs in this doc were stale vs the actual
local fork HEADs. Refreshed kernel/relibc rows to current; added
missing base row.

(NO AI attribution)
2026-07-14 01:18:10 +03:00
vasilito 88654e62c7 local/docs/SESSION-2026-07-13-DOC-CLEANUP.md: session-end state summary
Captures what was done this session (doc cleanup) and what carry-over issues remain (kernel fork at detached HEAD 2086faec with fix 22f5f622 in master; boot still fails at unit loading).

For handoff to next agent or operator.
2026-07-14 00:46:43 +03:00
vasilito 724923f6cc local/docs/CONSOLE-TO-KDE-DESKTOP-PLAN.md: D6 follow-up cleanups
D6 verification flagged 3 stale remnants missed by the Round-12 cleanup pass. Per ground-truth:

- Line 155: relibc "active patches" is stale. Core recipes use PATCHED-VIA-PATH-FORK; 26 patch files in local/patches/relibc/ are reference/archived only.
- Lines 1832, 1902: qtbase 6.11.0 bumped to 6.11.1 to match README and actual fork state.

(NO AI attribution)
2026-07-13 19:47:44 +03:00
vasilito d367a86083 docs: sync archived inventory with current files
Round-7 audit found stale entries for files deleted by c04da4f031 and ecf1f19d55, plus missing entries for files still present in the archive. Rewrote the inventory to match the filesystem and added the 2026-07-13 sync note.
2026-07-13 19:43:56 +03:00
vasilito e8f35c9869 local/docs/BLUETOOTH-IMPLEMENTATION-PLAN.md: remove AMD-FIRST-INTEGRATION.md reference
Per ground-truth: AMD-FIRST-INTEGRATION.md was deleted. Replaced the cross-ref at line 91.
2026-07-13 19:42:01 +03:00
vasilito 338892d3ec local/docs/ACPI-IMPROVEMENT-PLAN.md: remove references to deleted plans
Per ground-truth: BOOT-PROCESS-ASSESSMENT.md, IOMMU-SPEC-REFERENCE.md, and LINUX-BORROWING-RUST-IMPLEMENTATION-PLAN.md are gone. Replaced with "(deleted)" markers. Lines 73-74 (duplicate BOOT-PROCESS-ASSESSMENT.md refs) collapsed to a single marker.
2026-07-13 19:41:55 +03:00
vasilito 67507071c0 local/docs/DRM-MODERNIZATION-EXECUTION-PLAN.md: remove references to deleted plans
Per ground-truth: AMD-FIRST-INTEGRATION.md, HARDWARE-3D-ASSESSMENT.md, DMA-BUF-IMPROVEMENT-PLAN.md were deleted during the P0 archive cleanup. Replaced each occurrence with "(deleted)" markers.
2026-07-13 19:41:47 +03:00
vasilito 041bdb9e72 local/docs/ECOSYSTEM-ADAPTION-POLICY.md: refresh version table
Per fork-upstream-map.toml + ground-truth section A:
  syscall       -> upstream 0.9.0     (was claimed 0.7.5)
  libredox      -> upstream 0.1.18    (was claimed 0.1.13)
  redoxfs       -> upstream 0.9.1
  redox-scheme  -> upstream 0.11.2    (was claimed 0.11.0)
  relibc        -> upstream 0.2.5
  kernel        -> upstream 0.6.0
  bootloader    -> upstream 1.0.0
  installer     -> upstream 0.2.42
  userutils     -> upstream 0.1.0

Updated lines 14-42 with current upstream versions. Line 32 claim about "no upstream consumer has migrated to 0.8.x" updated to reflect syscall fork is now on upstream 0.9.0.

(NO AI attribution)
2026-07-13 19:40:42 +03:00
vasilito c22569b28a docs: advance 0.3.0 to 0.3.1 2026-07-13 19:39:05 +03:00
vasilito 5805b18e9b docs: refresh fork state table
Lines 298-311 had 8 fork HEAD SHAs from 2026-07-07 (+rb0.3.0 era) that have since advanced. Per ground-truth section A:\n  base        4d09ab7f\n  bootloader  c78c3a6\n  installer   1e9dcde\n  kernel      22f5f622\n  libredox    b99b204\n  redoxfs     b78a791\n  relibc      11a1f8bc\n  syscall     6e4e5bd   (+rb0.3.1)\n  userutils   0dc0cb7\n\nAll forks now use +rb0.3.1 suffix. Line 311 "intentionally kept at +rb0.3.0" updated to "kept at +rb0.3.1".
2026-07-13 19:38:24 +03:00
vasilito c97a8c759c docs: remove dangling archived doc refs
Updated the live USB and threading plans to reference the restored live copies instead of deleted archived paths.
2026-07-13 19:28:13 +03:00
vasilito e784cbc988 docs: restore archived validation and quirks plans
Moved the two docs back under local/docs because live documentation still treats them as active references.
2026-07-13 19:27:51 +03:00
vasilito 6f8dd561e2 scripts: extend check-prefix-freshness.sh with dead-symlink scan
The verify-overlay-integrity.sh script has two blind spots for stale
symlink detection:
  1. find recipes -maxdepth 3 misses paths at depth 4+
  2. only checks targets under /local/recipes/, misses /local/patches/

This adds a parallel scan that finds all dangling symlinks under recipes/
without maxdepth, classifies them by target path, and reports each with a
suggested action. Pure diagnostic — does not modify any files.

Enables preventive detection of the recipes/wip/x11/mesa-x11/source
orphan and recipes/core/base/redox.patch pointer-rot that triggered the
build integrity warnings on this session's rebuilds.

(NO AI attribution in commit message.)
2026-07-13 19:25:14 +03:00
vasilito 43f53a65be fix: add boot to login test 2026-07-13 17:38:38 +03:00
vasilito bf8f012eff fix: add pipe2 init invariant check 2026-07-13 17:38:12 +03:00
vasilito 829e1b87f5 fix: add prefix freshness diagnostic 2026-07-13 17:37:49 +03:00
vasilito bebb5a8ef9 fix: overlay integrity — remove stale patch symlinks and expectations
Archived mega-patches (kernel/redox.patch, base/redox.patch, relibc/redox.patch,
installer/redox.patch, bootloader/redox.patch, P2-boot-runtime-fixes) were
consolidated into modular P0-...P9- patches during Phase 2/3 cleanup but the
integrity checker still expected them. Removed from EXPECTED_PATCH_SYMLINKS
and CRITICAL_PATCHES arrays. Fixed qt6-wayland-smoke symlink.

Overlay integrity check now PASSES (0 errors).
2026-07-12 23:49:04 +03:00
vasilito 1354b8d81f fix: base fork — remove FEXEC_STEP reference (removed from relibc) 2026-07-12 23:46:30 +03:00
vasilito 28edba9be6 fix: relibc — add sys_timerfd cbindgen config for header generation
relibc has full Rust implementation of timerfd_create/timerfd_settime/
timerfd_gettime but lacked cbindgen.toml. cbindgen skipped the directory
entirely so <sys/timerfd.h> was never installed.

Required for Qt6 QSocketNotifier and many C programs.
2026-07-12 19:19:49 +03:00
vasilito 637da791ff fix: rename cxx → gcc13/gcc-native (resolve package name conflict)
recipes/dev/gcc13 was claiming name='cxx' — conflicted with
local/recipes/dev/gcc-native also claiming 'cxx'. Renamed to match
directory names for unique package identification by the cookbook.
2026-07-12 19:15:26 +03: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 9560ace643 fix: guard-recipes.sh — skip files under dir symlinks to local/recipes
When recipes/<cat>/<name> is a directory symlink into local/recipes/,
creating a file-level symlink at recipes/<cat>/<name>/recipe.toml
resolves through the dir symlink and CORRUPTS the real file at
local/recipes/<cat>/<name>/recipe.toml (replaces it with a broken
self-referencing symlink).

This was the root cause of 186 'broken recipe.toml' auto-repairs
on every build. Called via apply-patches.sh line 369.
2026-07-12 18:59:19 +03:00
vasilito 2097fb48f1 fix: add [package].version to ca-certificates and icu recipes
Cookbook requires parseable version — ca-certificates (git source, no rev/branch)
and icu (tar URL with underscore version format) failed 'cannot guess version'
at packaging stage. Added explicit [package] sections:
- ca-certificates: version 0.1.0
- icu: version 75.1
2026-07-12 18:39:02 +03:00
vasilito fd90ce9fdd fix: widen recipe.toml auto-repair to cover recipes/ tree
Broken recipe.toml corruption also affects tracked symlinks in
recipes/ tree (e.g. recipes/libs/libxau/recipe.toml). Extended
the auto-repair find to cover both local/recipes/ and recipes/.
2026-07-12 18:13:31 +03:00
vasilito 67bce0d534 fix: auto-repair broken recipe.toml symlinks in build preflight
Detects broken recipe.toml symlinks in local/recipes/ (self-referencing
corruption from unknown source) and auto-restores from git before build.
Prevents 'Package not found' errors when recipe.toml files are unreadable.
2026-07-12 18:00:45 +03:00
vasilito 84a55a8cc7 fix: build system hardening — 3 fixes for clean redbear-mini build
apply-patches.sh: 005-qtbase signature now checks correct path
(recipes/wip/qt/qtbase, not recipes/libs/qtbase) and respects
local recipe override. Qt is desktop-only (redbear-full target).

check-fork-drift.sh: skip diverged forks (kernel, bootloader, installer)
to suppress spurious DRIFT warnings. These forks intentionally diverge
from upstream per fork-upstream-map.toml.

integrate-redbear.sh: add safety guard — refuse to symlink any path
ending in 'recipe.toml'. 185 local recipe.toml files were corrupted
into broken self-referencing symlinks by an earlier build session.
All restored from git. Guard prevents reoccurrence.
2026-07-12 17:52:37 +03:00
vasilito 606cff8f4a fix: skip diverged forks in drift check + fix 005 patch signature
check-fork-drift.sh: diverged forks (kernel, bootloader, installer)
are intentionally ahead of upstream — skip them to suppress spurious
DRIFT warnings during build preflight.

apply-patches.sh: 005-qtbase patch signature now checks correct path
(recipes/wip/qt/qtbase/recipe.toml) and respects local recipe override.
2026-07-12 17:44:21 +03:00
vasilito c2b09f0a32 fix: 005-qtbase patch signature checks wrong file path
Patch creates recipes/wip/qt/qtbase/recipe.toml but the signature
check looked for REDBEAR marker in recipes/libs/qtbase/recipe.toml
(wrong path). Also added check for local recipe existence (takes
precedence per local-over-WIP policy).

This was causing overlay integrity check failures during redbear-mini
builds even though Qt is irrelevant for the console target.
2026-07-12 17:43:12 +03:00