config: strip redbear-legacy-base.toml to the one needed override
Per-entry assessment (file was never deleted — no D commits in history;
continuously present, last touched Jul 16 by d5561184f0 which fixed
00_base.service zsh->mkdir and unblocked boot):
- KEEP 00_base.service (mkdir /tmp): base provides no 00_base.service;
the Jul-16 fix is the sole source and is required.
- REMOVE 20_audiod.service: redundant with base's identical oneshot_async.
- REMOVE zsh = {}: redundant with minimal.toml.
- REMOVE 00_pcid-spawner.service (type=oneshot): HARMFUL — the blocking
oneshot overrode the base recipe's fixed oneshot_async pcid-spawner,
re-introducing the boot-wedge the base recipe explicitly fixed. Base's
oneshot_async now wins (config /etc/init.d no longer shadows it).
Resolves the pcid-spawner service conflict (task T-7fdcd5e5).
This commit is contained in:
@@ -1,19 +1,24 @@
|
||||
# Red Bear OS overrides for base init services.
|
||||
#
|
||||
# 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. The retained 00_pcid-spawner.service unit name now
|
||||
# launches driver-manager so existing init ordering remains stable.
|
||||
# 00_pcid-spawner.service: compatibility wrapper for driver-manager. The base
|
||||
# recipe uses type="oneshot" which blocks init until pcid-spawner exits.
|
||||
# Running driver-manager here with oneshot_async keeps the historic unit
|
||||
# name for downstream `requires_weak` consumers while moving PCI driver
|
||||
# spawning to the manager that performs bind/channel handoff.
|
||||
# 00_base.service: stripped base setup (tmpdir only). The base recipe provides
|
||||
# no 00_base.service, so this override is the sole source. It MUST NOT use zsh:
|
||||
# a full interactive shell startup hangs an init oneshot here (before the login
|
||||
# stack even starts), whereas a simple dynamically-linked /usr binary like
|
||||
# mkdir/echo completes cleanly after switchroot. See the
|
||||
# usr-dynamic-service-spawn-hang investigation — the hang was zsh-specific,
|
||||
# not a general /usr spawn failure.
|
||||
#
|
||||
# Removed 2026-07-19 (consolidation):
|
||||
# - 20_audiod.service: redundant — base recipe's own 20_audiod.service is
|
||||
# already identical (oneshot_async).
|
||||
# - zsh = {}: redundant — already provided by minimal.toml.
|
||||
# - 00_pcid-spawner.service (type = "oneshot"): HARMFUL — this blocking
|
||||
# oneshot overrode the base recipe's fixed oneshot_async pcid-spawner,
|
||||
# re-introducing the boot-wedge the base recipe's comment explicitly warns
|
||||
# against ("a single slow/hanging driver wedges the whole boot right here").
|
||||
# The base recipe's oneshot_async version is the correct one and now wins.
|
||||
|
||||
[packages]
|
||||
zsh = {}
|
||||
|
||||
[[files]]
|
||||
path = "/etc/init.d/00_base.service"
|
||||
@@ -22,36 +27,7 @@ data = """
|
||||
description = "Base environment setup (tmpdir)"
|
||||
|
||||
[service]
|
||||
# Create the world-writable, sticky /tmp with mkdir (uutils, Rust). This must
|
||||
# NOT use zsh: a full interactive shell startup hangs the init oneshot here
|
||||
# (before the login stack even starts), whereas a simple dynamically-linked
|
||||
# /usr binary like mkdir/echo completes cleanly after switchroot. See the
|
||||
# usr-dynamic-service-spawn-hang investigation — the hang was zsh-specific,
|
||||
# not a general /usr spawn failure.
|
||||
cmd = "mkdir"
|
||||
args = ["-p", "-m", "a=rwxt", "/tmp"]
|
||||
type = "oneshot"
|
||||
"""
|
||||
|
||||
[[files]]
|
||||
path = "/etc/init.d/20_audiod.service"
|
||||
data = """
|
||||
[unit]
|
||||
description = "Audio multiplexer"
|
||||
default_dependencies = false
|
||||
|
||||
[service]
|
||||
cmd = "audiod"
|
||||
type = "oneshot_async"
|
||||
"""
|
||||
|
||||
[[files]]
|
||||
path = "/etc/init.d/00_pcid-spawner.service"
|
||||
data = """
|
||||
[unit]
|
||||
description = "PCI driver spawner"
|
||||
|
||||
[service]
|
||||
cmd = "pcid-spawner"
|
||||
type = "oneshot"
|
||||
"""
|
||||
|
||||
Reference in New Issue
Block a user