vasilito
99e5641127
feat: release-bump pipeline + external graphics version sync
...
Pipeline (3 operator asks):
- bump-release.sh: canonical orchestrator (forks + sources + external)
- upgrade-forks.sh --to=<tag>: rebase forks with diverged-mode guard
- bump-graphics-recipes.sh: map-driven group-aware graphics bumps
- check-external-versions.sh: drift checker for Qt6/KF6/Plasma/Mesa/Wayland
- refresh-fork-upstream-map.sh: append-only map updater with --check
- post-checkout-version-sync.sh + install-git-hooks.sh: opt-in branch hook
- external_version_lib.py: shared version-parsing/bumping library
- external-upstream-map.toml: ~80 external package entries
- bump-fork.sh: deprecated (REDBEAR_I_KNOW_BUMP_FORK_IS_DEPRECATED=1)
- RELEASE-BUMP-WORKFLOW.md: operator runbook
Quality fixes (8 defects from two independent audits):
- blake2b stable cache keys (was hash(), non-portable)
- atomic cache writes via os.replace
- version_sort_key pre-release demotion (was sorting after finals)
- apply_ver_transform re.error tolerance
- grep || true (pipefail abort)
- cd failure detection in upgrade-forks
- sed URL escape (injection hardening)
- refresh-fork-upstream-map last-row drop fix
Doc cleanup:
- Archive 5 obsolete plans to local/docs/archived/
- Remove 14 stale/superseded docs
- Update 18 docs to reference bump-release.sh and fix inbound links
- TOOLS.md drift fixes
2026-07-18 14:45:41 +09:00
vasilito
0ec7bd46bb
Phase 3: GPU 3D drivers + Phase 1-2 stability fixes — full rollup
...
ROLLUP of all Phase 1-3 work on branch 0.3.0, targeting a production-ready
console + full graphical desktop under Intel and Virgl/VirtIO-GPU.
=== Phase 1 — Stability ===
- fbcond: Enter key handler (scancode 0x1C→\n), display map buffering,
control-char filter in all 7 keymaps, write_event assert
- build-redbear.sh: auto-rebuild-prefix when fork timestamps are newer
than prefix/x86_64-unknown-redox/sysroot (was warning-only). Added
configurable REDBEAR_SKIP_PREFIX_REBUILD guard.
- build-redbear.sh: set explicit keymap '-K us' in console activation
- config/redbear-device-services.toml: remove spurious init.d service
files for redbear-acmd/ecmd/usbaudiod. These USB device daemons are
spawned dynamically by pcid-spawner, not as boot-time init services.
Starting them without args panicked the boot flow.
- relibc: grantpt/unlockpt/ptsname (then deduplicated against stdlib)
- userutils: cherry-pick upstream getty commit 2834434 (standard C
ptsname/grantpt/unlockpt)
- base fork: Russian (ЙЦУКЕН) keymap + inputd control-char filter
(K_ESC/K_BKSP/K_ENTER → \0, commit 73e44d81 in submodule/base)
=== Phase 2 — Login & Console ===
- login.rs: restored to 0.2.5-known-good liner-based prompt
- redbear-upower: removed tokio full/signal features → protection fault fix
- redbear-power: excluded temporarily (being fixed in other session)
- tlc version: updated to 0.3.0
=== Phase 3 — GPU/3D Drivers (commit 0898332f7a ) ===
Intel i915: FULLY implemented — real ring buffer + MMIO command
submission via GEM DMA → GGTT → i915 render ring, with hardware
head-pointer polling (2M iterations, 50µs backoff). Zero stubs.
VirtIO GPU/Virgl (VirtioTransport): 11 VIRTGPU ioctls (GETPARAM,
GET_CAPS, RESOURCE_CREATE, RESOURCE_INFO, CONTEXT_INIT, EXECBUFFER,
WAIT, TRANSFER_TO_HOST, TRANSFER_FROM_HOST, MAP, CREATE_BLOB) ported
from Linux 7.1 virtgpu_ioctl.c and virtgpu_vq.c.
- driver.rs: 8 virgl_* trait methods (default Unsupported)
- scheme.rs: 11 ioctl constants + 8 wire structures + dispatch
- virtio/transport.rs: PCI capability discovery, feature negotiation,
control+cursor virtqueue setup, vring descriptor building
- virtio/mod.rs: real implementations for all 8 virgl_* methods
- intel/mod.rs: explicit virgl Unsupported stubs
Other changes from active sessions: Cargo.toml version bumps, linux-kpi
headers, libpciaccess recipe, mesa/recipe.toml, kf6 patches, expat,
driver-manager, redbear-sessiond, redbear-compositor, cub, tlc, and
many other local recipes.
2026-07-09 20:29:28 +03:00
vasilito
f47ee4fb18
fix: change blocking oneshot services to oneshot_async, add init scheduler tracing
...
- pcid-spawner: oneshot -> oneshot_async (blocked boot in /usr phase)
- inputd: oneshot -> oneshot_async (unnecessary blocking during initfs)
- base: update submodule to b1a6bd8 (serial debug tracing for scheduler)
- run_mini1.sh: reduce QEMU memory 12G -> 2G for faster CI testing
2026-07-03 08:56:39 +03:00
vasilito
ffbe098ef8
config: add tlc to redbear-mini and redbear-full; create recipe symlink
...
TLC (Twilight Commander) was missing from both ISO configs. Added
tlc = {} to [packages] in redbear-mini.toml and redbear-full.toml.
Created missing symlink: recipes/tui/tlc -> ../../local/recipes/tui/tlc.
2026-06-19 11:47:25 +03:00
vasilito
06b316076f
restore driver-manager + pcid service + lost configs from 0.2.3→0.2.4 sync
...
Root cause: the 0.2.4 upstream sync silently removed driver-manager (our
in-house PCI driver orchestrator) and never added a pcid init service,
leaving /scheme/pci uncreated and breaking all PCI device enumeration.
Changes:
- base-initfs/recipe.toml: restore driver-manager dep, binary copy,
drivers.d/ config dir, set -eo pipefail
- redbear-device-services.toml: add driver-manager = {} to packages
- redbear-boot-stages.toml: restore from 0.2.3 (109 lines)
- protected-recipes.toml: restore from 0.2.3 (99 lines)
- redbear-mini.toml: add boot-stages to include chain
- driver-manager Cargo.toml: fix pcid path from symlink to physical
- base fork pointer: acdcb183 (adds 35_pcid.service to initfs)
- UPSTREAM-SYNC-PROCEDURE.md: document sync flaw, never-delete rule,
driver-manager rationale
- PACKAGE-BUILD-QUIRKS.md: document pcid/pcid-spawner architecture,
Redox flag values, kernel kcall on AcpiScheme
Verified: redbear-mini boots to login prompt in QEMU UEFI with working
PCI enumeration (6 devices), e1000d network driver, DHCP, driver-manager.
2026-06-19 11:39:24 +03:00
vasilito
f65bc145a1
fix: comprehensive boot warnings and exceptions — fixable silenced, unfixable diagnosed
...
Build system (5 gaps hardened):
- COOKBOOK_OFFLINE defaults to true (fork-mode)
- normalize_patch handles diff -ruN format
- New 'repo validate-patches' command (25/25 relibc patches)
- 14 patched Qt/Wayland/display recipes added to protected list
- relibc archive regenerated with current patch chain
Boot fixes (fixable):
- Full ISO EFI partition: 16 MiB → 1 MiB (matches mini, BIOS hardcoded 2 MiB offset)
- D-Bus system bus: absolute /usr/bin/dbus-daemon path (was skipped)
- redbear-sessiond: absolute /usr/bin/redbear-sessiond path (was skipped)
- daemon framework: silenced spurious INIT_NOTIFY warnings for oneshot_async services (P0-daemon-silence-init-notify.patch)
- udev-shim: demoted INIT_NOTIFY warning to INFO (expected for oneshot_async)
- relibc: comprehensive named semaphores (sem_open/close/unlink) replacing upstream todo!() stubs
- greeterd: Wayland socket timeout 15s → 30s (compositor DRM wait)
- greeter-ui: built and linked (header guard unification, sem_compat stubs removed)
- mc: un-ignored in both configs, fixed glib/libiconv/pcre2 transitive deps
- greeter config: removed stale keymapd dependency from display/greeter services
- prefix toolchain: relibc headers synced, _RELIBC_STDLIB_H guard unified
Unfixable (diagnosed, upstream):
- i2c-hidd: abort on no-I2C-hardware (QEMU) — process::exit → relibc abort
- kded6/greeter-ui: page fault 0x8 — Qt library null deref
- Thread panics fd != -1 — Rust std library on Redox
- DHCP timeout / eth0 MAC — QEMU user-mode networking
- hwrngd/thermald — no hardware RNG/thermal in VM
- live preload allocation — BIOS memory fragmentation, continues on demand
2026-05-05 20:20:37 +01:00
vasilito
b31fd7d3e5
feat: build system hardening — collision detection, validation gates, init path enforcement
...
5-phase hardening to prevent silent file-layer collisions (the D-Bus
regression class):
Phase 1: lint-config-paths.sh + make lint-config in depends.mk
Phase 2: CollisionTracker in installer (content-hash comparison)
Phase 3: installs manifests in recipe.toml + validate-file-ownership.sh
Phase 4: validate-init-services.sh + make validate in disk.mk
Phase 5: documentation (AGENTS.md, BUILD-SYSTEM-HARDENING-PLAN.md)
Both redbear-mini and redbear-full build and validate clean.
66 declared install paths in base, zero conflicts.
2026-05-03 22:25:22 +01:00
vasilito
05ce7625cf
Auto-detect CI/TUI mode for non-interactive environments and improve patch application robustness
...
- apply-patches.sh: add signature-marker checks for build-system patches
to handle cases where reverse-check fails but patch is already applied
- test-baremetal.sh: auto-disable TUI when stdout is not a terminal;
pass CI=1 to make
- test-live-iso-qemu.sh: pass CI=1 via env to prevent repo cook panic
- scripts/run.sh: auto-disable TUI when stdout is not a terminal;
pass CI=1 to qemu launch
- repo.rs: improve TUI initialization error messages (raw mode + alternate
screen) and rustfmt cleanups
- config.rs: auto-detect TTY presence for TUI enablement; use is_terminal()
instead of relying solely on CI env var
2026-04-26 22:51: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
20162fccf8
D-Bus Phase 3/4: upgrade sessiond, services, add StatusNotifierWatcher, consolidate configs
...
- redbear-sessiond: add Manager.Inhibit (pipe FD), CanPowerOff/CanReboot/
CanSuspend/CanHibernate/CanHybridSleep/CanSleep (return na), PowerOff/
Reboot/Suspend stubs, GetSessionByPID, ListUsers, ListSeats,
ListInhibitors, ActivateSession/LockSession/UnlockSession/TerminateSession
- redbear-sessiond: add Session SetIdleHint, SetLockedHint, SetType,
Terminate methods; wire PauseDevice/ResumeDevice/Lock/Unlock signal
emission via SignalEmitter injection; add dynamic device enumeration
scanning /scheme/drm/card* and /dev/input/event* at startup
- redbear-sessiond: replace infinite pending() with stoppable shutdown
via tokio watch channel + control socket shutdown command
- redbear-upower: add Changed signal emission with 30s periodic polling
and power state snapshot comparison
- redbear-notifications: add ActionInvoked signal, expand capabilities
to body + body-markup + actions
- redbear-polkit, redbear-udisks: replace pending() with stoppable
shutdown via signal handling + watch channel
- Add redbear-statusnotifierwatcher: new session bus service implementing
org.freedesktop.StatusNotifierWatcher for KDE system tray
- Add D-Bus activation file for StatusNotifierWatcher
- KWin session.cpp: try LogindSession before NoopSession fallback
- Consolidate config profiles: remove obsolete redbear-desktop, redbear-kde,
redbear-live-*, redbear-minimal-*, redbear-wayland configs; simplify
to three supported targets (redbear-full, redbear-mini, redbear-grub)
- Update DBUS-INTEGRATION-PLAN.md and DESKTOP-STACK-CURRENT-STATUS.md
with Phase 3/4 fragility assessment, KWin readiness matrix, and
completeness gap analysis
2026-04-25 12:01:25 +01:00
vasilito
e854bc98ea
Clarify build targets, add GRUB live configs, clean up docs
...
Consolidate compile target naming (redbear-live, redbear-grub-live-full,
etc.), add config/redbear-grub-live-full.toml, make redbear-live-full-grub
a legacy alias, update build-iso.sh to support all GRUB live targets, and
sync AGENTS.md/README.md build command documentation.
2026-04-25 00:39:15 +01:00
vasilito
cdd081c664
Integrate Red Bear boot and packaging updates
2026-04-22 10:22:09 +01:00
vasilito
c944c0aaa8
Update tracked configs and image helpers
2026-04-20 18:37:35 +01:00
vasilito
e3d776aa9a
Advance redbear-full Wayland, greeter, and Qt integration
...
Consolidate the active desktop path around redbear-full while landing the greeter/session stack and the runtime fixes needed to keep Wayland and KWin bring-up moving forward.
2026-04-19 17:59:58 +01:00
vasilito
12ceea8bcc
Refresh build infrastructure scripts and cross-tool wrappers
2026-04-18 17:58:22 +01:00
vasilito
05a31de115
Add build system ISO generation and QEMU improvements
2026-04-18 00:48:58 +01:00
vasilito
61f124b77f
Document overlay-aware script behavior
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
1667d5d349
Add fetch-all-sources.sh script to download all package sources
...
Downloads source for every package in a given config (or all configs). Supports --recipe NAME for single package, --list to show packages, and --status to check fetch state. Builds repo binary automatically if needed.
2026-04-12 20:19:28 +01:00
vasilito
43fd088349
Rename rbos → redbear everywhere, add redbear-info system tool
...
Replace all 'rbos'/'RBOS' references with 'redbear'/'Red Bear OS'
across the build system, scripts, docs, and configs. Renamed files:
rbos.ipxe → redbear.ipxe
assets/rbos-icon.png → assets/redbear-icon.png
recipes/system/rbos-info → recipes/system/redbear-info
Added redbear-info: a system tool that enumerates all Red Bear OS
custom components, checks runtime availability via scheme paths and
binary presence, and prints status/test info. Supports --verbose,
--json, and --test output modes. Zero external dependencies.
2026-04-12 19:46:54 +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