Adds .gitmodules entries for local/sources/{base,bootloader,installer,
libredox,redoxfs,relibc,syscall,userutils} — all pointing at
https://gitea.redbearos.org/vasilito/RedBear-OS.git with
branch = submodule/<name>. Previously only 'kernel' was declared.
After this commit, a fresh clone followed by
'git submodule update --init --recursive' resolves all 9 component
sources from the canonical RedBear-OS repo's submodule/<name>
branches.
Removes the dangling gitlinks for the 4 components whose per-component
Gitea repos were empty (0 commits): local/sources/ctrlc,
local/sources/libpciaccess, local/sources/redox-drm, local/sources/sysinfo.
These were cleaned because the upstream per-component repo had no source
content; if any of these components is revived in the future, declare
a new 'submodule/<name>' branch on RedBear-OS and re-add the .gitmodules
entry.
Updates local/AGENTS.md § Migration status to reflect the completed state.
Per local/AGENTS.md § SINGLE-REPO RULE: the Red Bear OS project lives
in exactly one git repository (vasilito/RedBear-OS). Per-component
Gitea mirrors (redbear-os-base, redbear-os-kernel, redbear-os-installer,
redox-drm, userutils, libredox, libpciaccess, ctrlc, syscall, sysinfo)
have been redirected or deleted.
For each per-component repo with source content, the working-tree HEAD
was pushed as a 'submodule/<component>' branch on RedBear-OS:
- submodule/base
- submodule/bootloader
- submodule/installer
- submodule/kernel
- submodule/libredox
- submodule/redoxfs
- submodule/relibc
- submodule/syscall
- submodule/userutils
The .gitmodules entry for local/sources/kernel is now redirected to the
canonical repo with branch = submodule/kernel. The other submodule
.gitmodules entries remain to be added in a follow-up.
Empty per-component repos (ctrlc, libpciaccess, redox-drm, sysinfo) had
no source content; their gitlinks in the index are removed in a
follow-up commit.
Unrelated per-component repos that were not Red Bear components
(ctrlc, syscall, sysinfo — possibly unrelated personal projects) were
deleted in the bulk cleanup.
Gitea state under vasilito/ is now exactly: RedBear-OS, hiperiso.
Adds:
- local/scripts/redirect-to-submodules.sh
- local/scripts/delete-per-component-repos.sh
Updates:
- .gitmodules (kernel → RedBear-OS#submodule/kernel)
- local/AGENTS.md (SINGLE-REPO RULE status, migration procedure)
- local/docs/BUILD-SYSTEM-IMPROVEMENTS.md §11 (resolved)
- local/docs/QUIRKS-AUDIT.md (drop dead links)
- local/docs/SLEEP-IMPLEMENTATION-PLAN.md (mark historical)
- CHANGELOG.md (mark historical references)
- AGENTS.md: add cache system to STRUCTURE, WHERE TO LOOK, BUILD FLOW,
BUILD COMMANDS (--force-rebuild), and CONVENTIONS (dep_hashes.toml,
binary store restore, package_groups syntax)
- CHANGELOG.md: comprehensive entry for Phase 1-3 + kernel MWAIT +
ninja-build Redox support
- local/AGENTS.md: note installer fork adds package groups support
- BUILD-CACHE-PLAN.md: fix TOML syntax (underscores not hyphens),
update all phases to COMPLETE with implementation details, add cache
flow diagram, add verification results
The previous "outer: bump local/sources/{kernel,base} submodules"
commit (9381ed4fd) showed the diff for the kernel gitlink in
git show output, but the outer repo's .gitmodules file did NOT
register local/sources/kernel as a real submodule. This meant the
pointer change in 9381ed4fd was a working-tree-only edit, never
actually committed to the outer repo's index.
This commit rectifies the inconsistency: register
local/sources/kernel in .gitmodules pointing at the Red Bear gitea
fork (https://gitea.redbearos.org/vasilito/redbear-os-kernel.git),
then bump it to the Phase G.3 commit (19010ce) which adds the
MWAIT idle_loop.
For the LG Gram 2025 / Arrow Lake-H this matters: the existing
enable_and_halt() path lands the CPU in C1 only. The new MWAIT
idle_loop enters the deepest available C-state (C6/C7/C8/C9/C10/S0iX),
which dramatically reduces idle power on real hardware.
Note: local/sources/base is a separate git repo without a
.gitmodules entry; it works in practice because the
"outer: bump local/sources/{kernel,base} submodules" commit
captures its diff as a subproject change in the commit object,
but the working tree is never updated. A follow-up could add a
.gitmodules entry for base too, but the current approach has
worked for the prior base commits (8cd4f69's diff-via-base
and earlier 4f2a043 re-sync).
This is the SECOND commit to track the same kernel submodule
bump (cf. 9381ed4fd which only captured the change in tree
state). The previous commit was effectively informational only;
this one makes the change permanent in the outer index.