Migrate all init scripts from legacy format to .service TOML units

Convert 14 config files from the legacy init script format (plain-text
commands) to the systemd-style TOML .service format. The init daemon
supports both formats; this eliminates the legacy path entirely so that
all services use the richer, more structured TOML unit format.

Key changes per config:
- base.toml: split 00_base into 00_base.service (tmpdir) + 00_sudo.service
  (sudo daemon); remove redundant 00_drivers and 10_net (handled by
  existing .service files from the base recipe)
- minimal.toml: split 30_console into 29_activate_console.service +
  30_console.service + 31_debug_console.service
- desktop-minimal.toml: convert 20_display and 30_console to .service,
  add 29_activate_console and 31_debug_console overrides
- x11.toml: convert 10_dbus, 10_xenv, 20_orbital, 30_console
- redoxer.toml: split 10_net into 10_smolnetd.service + 10_dhcpd.service,
  convert 30_redoxer
- redbear-legacy-*.toml: update override references to .service paths
- acid.toml, auto-test.toml, os-test.toml, sys-build.toml: direct conversions
This commit is contained in:
2026-04-25 12:20:09 +01:00
parent dc69317ddf
commit 61e1a1335c
14 changed files with 302 additions and 113 deletions
+15 -23
View File
@@ -1,15 +1,11 @@
# Red Bear OS overrides for legacy base init scripts.
# Red Bear OS overrides for base init services.
#
# 00_base: tmpdir setup + sudo --daemon. ipcd and ptyd are started by the
# systemd-style services in base recipe's init.d/ (00_ipcd.service,
# 00_ptyd.service). The old "notify" calls have been removed because
# the "notify" binary does not exist — they always failed silently.
# sudo --daemon is kept here because 00_sudo.service exists in the base
# recipe but is not wired into any target that gets scheduled.
# 00_drivers: removed — pcid-spawner is started by 00_pcid-spawner.service from
# the base recipe. The legacy script was redundant.
# 10_net: blanked — replaced by per-config network services (e.g. redbear-live-mini's
# 10_smolnetd.service + 10_dhcpd.service).
# 00_base.service: stripped base setup (tmpdir only, no sudo — sudo runs from
# base.toml's 00_sudo.service). ipcd and ptyd are started by
# 00_ipcd.service and 00_ptyd.service from the base recipe.
# 00_drivers / 10_net: no longer overridden — the legacy scripts were removed
# from base.toml. pcid-spawner is started by 00_pcid-spawner.service
# from the base recipe; smolnetd/dhcpd have their own .service files.
# 00_pcid-spawner.service: overridden to oneshot_async. The base recipe uses
# type="oneshot" which blocks init until pcid-spawner exits. On real
# hardware (and QEMU), pcid-spawner can hang waiting for a PCI device
@@ -18,21 +14,17 @@
# services while drivers spawn in the background.
[[files]]
path = "/usr/lib/init.d/00_base"
path = "/usr/lib/init.d/00_base.service"
data = """
# clear and recreate tmpdir with 0o1777 permission
rm -rf /tmp
mkdir -m a=rwxt /tmp
[unit]
description = "Base environment setup (tmpdir)"
[service]
cmd = "ion"
args = ["-c", "rm -rf /tmp; mkdir -m a=rwxt /tmp"]
type = "oneshot"
"""
[[files]]
path = "/usr/lib/init.d/00_drivers"
data = ""
[[files]]
path = "/usr/lib/init.d/10_net"
data = ""
[[files]]
path = "/etc/init.d/20_audiod.service"
data = """