From 6b105c7cee603ddd58a5361fc392aeefae686eca Mon Sep 17 00:00:00 2001 From: vasilito Date: Mon, 27 Jul 2026 15:54:28 +0900 Subject: [PATCH] config + ghost recipes: wire redbear-dnsd + document WIP stubs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit CRITICAL F21 from NETWORKING-AND-DRIVERS-CODE-ASSESSMENT-2026-07-27.md §3.6: redbear-dnsd was built but not wired into any config target. - config/redbear-mini.toml: added redbear-dnsd to [packages] list - config/redbear-mini.toml: added 11_dnsd.service init entry that requires_weak=10_dhcpd.service (DNS comes up after DHCP) - The service uses redbear-dnsd directly (not the old 'dnsd' name) WIP stubs documented per AGENTS.md 'WIP recipes MUST start with #TODO describing what is missing' (the previous minimal recipe.toml files violated this): - local/recipes/system/netd/recipe.toml: WIP skeleton for the Red Bear network event/notification daemon. Documents 4 gaps: source/ missing, scheme:netd contract, redbear-netctl integration, QEMU integration tests. - local/recipes/system/audiodevd/recipe.toml: WIP skeleton for the audio device aggregator. Documents 4 gaps: source/ missing, scheme:audiodev contract, audio backend integration, HDA tests. - local/recipes/system/usbd/recipe.toml: WIP skeleton for the USB device manager (distinct from the existing redbear-usb-hotplugd). Documents 4 gaps: source/ missing, scope split from usb-hotplugd, config integration, QEMU tests. These are NOT removed (per AGENTS.md 'Never delete to fix a build'). The right fix is implementation; this commit just brings them into WIP-policy compliance so the gap is explicit and trackable. --- config/redbear-mini.toml | 19 ++++++++++++++++ local/recipes/system/audiodevd/recipe.toml | 22 +++++++++++++++++++ local/recipes/system/netd/recipe.toml | 25 ++++++++++++++++++++-- local/recipes/system/usbd/recipe.toml | 23 ++++++++++++++++++++ 4 files changed, 87 insertions(+), 2 deletions(-) diff --git a/config/redbear-mini.toml b/config/redbear-mini.toml index d7a8660c21..bc62ffa0d2 100644 --- a/config/redbear-mini.toml +++ b/config/redbear-mini.toml @@ -41,6 +41,11 @@ redbear-traceroute = {} redbear-mtr = {} redbear-nmap = {} +# Caching DNS daemon (loopback listener + scheme:dns). Wired as a service +# below; see [init] section. Provides positive + negative caching and an +# mDNS responder so the loopback resolver hits cache before upstream. +redbear-dnsd = {} + # Wi-Fi control daemon (firmware-loader excluded — no firmware blobs in mini). redbear-wifictl = {} @@ -148,6 +153,20 @@ args = ["-f"] type = "oneshot_async" """ +[[files]] +path = "/etc/init.d/11_dnsd.service" +data = """ +[unit] +description = "Caching DNS daemon (loopback listener + scheme:dns)" +requires_weak = [ + "10_dhcpd.service", +] + +[service] +cmd = "redbear-dnsd" +type = "oneshot_async" +""" + [[files]] path = "/etc/issue" data = """ diff --git a/local/recipes/system/audiodevd/recipe.toml b/local/recipes/system/audiodevd/recipe.toml index def0f3f38c..1fe884b811 100644 --- a/local/recipes/system/audiodevd/recipe.toml +++ b/local/recipes/system/audiodevd/recipe.toml @@ -1,3 +1,24 @@ +# Red Bear audiodevd — WIP skeleton +# +#TODO audiodevd is the Red Bear audio device aggregator (analogous to +# Linux's PulseAudio/PipeWire daemon in role, not implementation). +# It multiplexes multiple audio backends (HDA, AC97, USB Audio Class) +# into a single scheme:audiodev. Per AGENTS.md "WIP recipes MUST start +# with `#TODO` describing what is missing", this header documents the +# gaps: +# +# - [ ] Source: `source/` directory does not yet exist. Building +# this recipe will fail at fetch. +# - [ ] Backend contract: scheme:audiodev (stream/connect/disconnect) +# is not yet defined. +# - [ ] Integration: HDA/AC97/USB audio drivers (ac97d, ihdad, +# redbear-usbaudiod) do not publish to audiodevd. +# - [ ] Tests: at least one integration test playing audio through +# a QEMU guest with a HDA emulation is required. +# +# The right fix is to implement the daemon. Track under +# `local/docs/NETWORKING-AND-DRIVERS-CODE-ASSESSMENT-2026-07-27.md §3.6 +# (ghost-recipe gap) until implementation lands. [package] name = "audiodevd" version = "0.3.1" @@ -7,3 +28,4 @@ path = "source" [build] template = "cargo" + diff --git a/local/recipes/system/netd/recipe.toml b/local/recipes/system/netd/recipe.toml index 125df34f39..32b2eefc56 100644 --- a/local/recipes/system/netd/recipe.toml +++ b/local/recipes/system/netd/recipe.toml @@ -1,8 +1,29 @@ +# Red Bear netd — WIP skeleton +# +#TODO netd is the Red Bear network event/notification daemon (analogous +# to Linux's `networkd` for netlink-driven interface events, link state +# changes, and address acquisition). This recipe exists as a WIP +# skeleton so the build pipeline can reference it once the implementation +# lands. Per AGENTS.md "WIP recipes MUST start with `#TODO` describing +# what is missing", this header documents the gaps: +# +# - [ ] Source: `source/` directory does not yet exist. The current +# recipe is a placeholder; building it will fail at fetch. +# - [ ] Scheme contract: scheme:netd (or wired into an existing +# scheme:netcfg extension) is not yet defined. +# - [ ] Integration: redbear-netctl does not subscribe to netd +# events; netd is not in any redbear-*.toml [packages] list. +# - [ ] Tests: at least one integration test against a QEMU guest +# with two NICs is required before promoting to non-WIP. +# +# The right fix is to implement the daemon. Track under +# `local/docs/NETWORKING-AND-DRIVERS-CODE-ASSESSMENT-2026-07-27.md §3.6 +# (ghost-recipe gap) until implementation lands. [source] path = "source" - [build] template = "cargo" - [package] +name = "netd" +version = "0.3.1" bins = ["netd"] diff --git a/local/recipes/system/usbd/recipe.toml b/local/recipes/system/usbd/recipe.toml index 59d3d00da3..77c866c424 100644 --- a/local/recipes/system/usbd/recipe.toml +++ b/local/recipes/system/usbd/recipe.toml @@ -1,3 +1,25 @@ +# Red Bear usbd — WIP skeleton +# +#TODO usbd is the Red Bear USB device manager (analogous to Linux's +# udevd for USB-class hotplug, but specifically for the USB subsystem +# surface: class-driver autospawn policy, persistent device naming, +# and a scheme:usb namespace). Per AGENTS.md "WIP recipes MUST start +# with `#TODO` describing what is missing", this header documents the +# gaps: +# +# - [ ] Source: `source/` directory does not yet exist. Building +# this recipe will fail at fetch. +# - [ ] Distinction: redbear-usb-hotplugd (exists) already handles +# USB hotplug events. usbd is a higher-level manager that +# owns class-driver autospawn policy and persistent naming. +# The exact split between the two is not yet finalized. +# - [ ] Integration: usbd is not in any redbear-*.toml [packages] list. +# - [ ] Tests: at least one integration test exercising USB +# hotplug against a QEMU guest is required. +# +# The right fix is to implement the daemon. Track under +# `local/docs/NETWORKING-AND-DRIVERS-CODE-ASSESSMENT-2026-07-27.md §3.6 +# (ghost-recipe gap) until implementation lands. [package] name = "usbd" version = "0.3.1" @@ -7,3 +29,4 @@ path = "source" [build] template = "cargo" +