feat(arje): incluye CLIs admin en el initrd (brahman-status/busctl/brainctl)
Para "ver" la administración del init desde el shell que arrancó dentro
del initramfs hacían falta clientes que hablen los 4 sockets Unix. Los
exists como examples de cada crate; los empaquetamos ahora.
build-arje-initrd.sh:
- cargo build --example brahman-status -p brahman-admin
- cargo build --example busctl -p ente-bus
- cargo build --example brainctl -p ente-brain
- Copia los 3 a /usr/bin/ del initrd.
docs/arje-boot.md §6b reescrita con:
- Tabla de sockets corregida (defaults a /tmp/ cuando no hay
XDG_RUNTIME_DIR/TMPDIR, que es el caso en initrd).
- Cookbook de los 3 CLIs con ejemplos de sesión típica dentro de la VM.
- Nota para vendorear socat-static via EXTRA_BINS si querés conectar
crudo a un socket.
§1 layout actualizado con /usr/bin/{brahman-status,busctl,brainctl}.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
@@ -110,7 +110,16 @@ cargo build --release --target "$TARGET" \
|
||||
-p ente-binfmt-compat \
|
||||
-p ente-policy-provider
|
||||
|
||||
# 1b. Build de las CLI de administración. Son `[[example]]` de sus crates
|
||||
# respectivos — un solo binario cada una, sin estado propio.
|
||||
echo "[build-initrd] cargo build --release --target $TARGET de CLIs admin"
|
||||
cargo build --release --target "$TARGET" \
|
||||
--example brahman-status -p brahman-admin \
|
||||
--example busctl -p ente-bus \
|
||||
--example brainctl -p ente-brain
|
||||
|
||||
BIN_DIR="target/$TARGET/release"
|
||||
EX_DIR="target/$TARGET/release/examples"
|
||||
|
||||
# 2. Validar la seed. validate.sh corre el binario del host (release plain),
|
||||
# sólo verifica el schema — independiente del target.
|
||||
@@ -140,7 +149,7 @@ fi
|
||||
# 4. Stage root del initrd.
|
||||
STAGE="$(mktemp -d -t arje-initrd.XXXXXX)"
|
||||
trap 'rm -rf "$STAGE"' EXIT
|
||||
mkdir -p "$STAGE"/{bin,sbin,usr/sbin,etc,ente,proc,sys,dev,run,tmp,sys/fs/cgroup}
|
||||
mkdir -p "$STAGE"/{bin,sbin,usr/bin,usr/sbin,etc,ente,proc,sys,dev,run,tmp,sys/fs/cgroup}
|
||||
|
||||
# 5. Copiar binarios arje.
|
||||
install -m 0755 "$BIN_DIR/ente-zero" "$STAGE/sbin/ente-zero"
|
||||
@@ -153,6 +162,11 @@ for b in ente-echo ente-policy-provider \
|
||||
install -m 0755 "$BIN_DIR/$b" "$STAGE/usr/sbin/$b"
|
||||
done
|
||||
|
||||
# 5b. CLIs de administración → /usr/bin (no /usr/sbin: no son services).
|
||||
for e in brahman-status busctl brainctl; do
|
||||
install -m 0755 "$EX_DIR/$e" "$STAGE/usr/bin/$e"
|
||||
done
|
||||
|
||||
# 6. Userspace mínimo. Con binarios musl-static no necesitamos vendorear
|
||||
# libc/ld-linux. Las dos rutas:
|
||||
# (a) busybox-static apuntado por $BUSYBOX_BIN → 1 binario, todo simlink.
|
||||
|
||||
Reference in New Issue
Block a user