Repository navigation
fix: a Luban system's root is declared and its /xlings upstream is its store (2026.10.22.1) - #831
Conversation
…s store (2026.10.22.1) In a Luban system the compiler's sysroot / is the system itself (os-release ID=luban, /usr/lib/xlings-abi), and [xlings] upstream = ["/xlings"] reads the home its root record (/etc/xlings/usr) names when /xlings is not there: a system made on a host keeps its home at the path of the home that made it. Verified in a Luban KVM machine: mcpp self doctor without the sysroot or upstream warning, a first mcpp run of a new project in 4 s. Co-authored-by: speak-agent <248744407+speak-agent@users.noreply.github.com>
… (declared_system_root, system_home) -- mcpp names none of xlings' paths Co-authored-by: speak-agent <248744407+speak-agent@users.noreply.github.com>
…er virtio-fs, the bus, observability, xdesk, luban-os-ci; 2026.10.22.1 (#693) Luban OS ecosystem usability (design `.agents/docs/2026-10-21-luban-os-ecosystem-usability-design.md`), xlings 2026.10.22.1. One commit per checkpoint; with xim-pkgindex#1022, mcpp-community/mcpp#831 and luban-os/luban-os-ci#1. **xlings in a system** - K1: recipes are read in a Luban machine (the mount table names the filesystem; Landlock on uncached 9p; worker scratch local); an unset `XDG_DATA_DIRS` keeps its default. - K2/K4: one place decides where a change goes (`xlings.subos.situation`); a machine's broker carries `sudo xlings install/remove/update` and a user's store addition to the host; a user's own versions need no sudo, `xlings update` says `sudo xlings update`. - A user's view starts with the system's subos description (its doctor is clean); what xlings sets for a session (prompt facts) passes whatever the policy; an `/etc` file deleted under its mount is left out of a sandbox instead of failing it. **Machines** - K6: files over virtio-fs (a virtiofsd a share, `xim:virtiofsd` installed the first time, `--sandbox namespace` then `none`), 9p where it cannot be (no KVM, no daemon); `luban config --files`, said in `luban status`. Measured: `find /usr` 3955 → 359 ms, reading libraries 1041 → 130 ms. - Commands at once each run to their end; a machine started for commands powers off when the last ends (leases, under one lock); a command whose machine goes away says so; `--user` with a name the system lacks is refused, never root. - An archive's packages come along again (import read `{active, installed}` entries as versions and skipped all; the export now names each program's package); a sudo install survives `luban upgrade`. - K14: WSL's `/dev/dxg` probed and said. **The bus, observability, desktop** - openbus/XBus: routers, nodes, links across machines (`luban status --bus`), streams and regions, telemetry on every node (§8.3); a frame begun is finished before any other (macOS's small socket buffers). - The telemetry kit (metrics, flight recorder, logs, spans, Chrome traces); the i18n kit shared by xlings and xdesk. - K7: frames compressed across a narrow channel (opensal 0.6), damage merged. - K11/K13: xdesk bookmarks, collapse, minimap, title bars, free-window resize; the tour; every layout, window and interaction drivable headless and covered (`test_xdesk_interaction`). **CI and checks** - P2's xlings side: package checks `run`, `launcher`, `gui`, `sound`. - K15: the release candidate is dispatched to luban-os-ci's L2 when `LUBAN_OS_CI_TOKEN` is there; luban-os-ci's first local runs found the bugs above. - Recorded for later (design §15): K5 (`--store own`), J32 (a machine's new users cannot own their homes), J33 (a user view's install is active for everyone). Co-authored-by: speak-agent <248744407+speak-agent@users.noreply.github.com>
|
The one red check, Co-authored-by: speak-agent 248744407+speak-agent@users.noreply.github.com |
In a Luban system (xlings design
.agents/docs/2026-10-21-luban-os-ecosystem-usability-design.md§3.7, J5, M1):/is the system's own declared root (ID=lubanin/etc/os-releaseand/usr/lib/xlings-abi), somcpp self doctorno longer says it belongs to neither the mcpp home nor the project;[xlings] upstream = ["/xlings"](the editions'/etc/mcpp/config.toml) reads the store the system's root record (/etc/xlings/usr) names when/xlingsis not there -- a system made on a host keeps its home at the path of the home that made it.New module
mcpp.luban(a leaf over std) holds both facts;tests/unit/test_luban_root.cppcovers them against fixture trees.Verified in a Luban KVM machine (Luban Desktop):
mcpp self doctorshows neither warning, and a firstmcpp new demo && mcpp runtakes 4 s, reusing the system's gcc.Co-authored-by: speak-agent 248744407+speak-agent@users.noreply.github.com