Merge nucleic/lucid-lunar-wren-wxyw into dev
This commit is contained in:
@@ -0,0 +1,9 @@
|
|||||||
|
# Installed via dpkg -i in a finish hook, after every Debian package is configured
|
||||||
|
# (build-rootfs.sh). nash-default-shell MUST be last-stage: its divert flips /bin/sh to
|
||||||
|
# nash, and anything configured after the flip runs under nash — so the divert is the
|
||||||
|
# image's final configure step (mirrors the base tier).
|
||||||
|
#
|
||||||
|
# naros-tier-vm is deliberately NOT here: it is apt-installed at firstboot from the hosted
|
||||||
|
# repo (NAROS.md §7.4), which is what shrinks the provisioning script to the meta + glue.
|
||||||
|
nash-default-shell
|
||||||
|
naros-tier-base
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
# Base Nucleic layer baked into the naros-vm rootfs so nash is the forced shell and the
|
||||||
|
# hosted apt repo is trusted from the very first boot. The vsock agent (nucleic-linux-agent)
|
||||||
|
# and the rest of the tier arrive at firstboot via `apt install naros-tier-vm` (NAROS.md
|
||||||
|
# §7.4), so they are intentionally NOT baked here — this mirrors the base tier's layer.
|
||||||
|
nash
|
||||||
|
naros-init
|
||||||
|
naros
|
||||||
|
naros-keyring
|
||||||
@@ -0,0 +1,22 @@
|
|||||||
|
# naros-vm headless tier — bootable base + systemd (NAROS.md §7.4, milestone N4).
|
||||||
|
#
|
||||||
|
# The VM boots the naros base userspace with **systemd as PID 1** (§5: the VM flavor keeps
|
||||||
|
# systemd). This list is deliberately just the bootable minimum: the base utility set plus
|
||||||
|
# systemd/udev. Everything Nucleic-specific beyond the base layer — the vsock agent, the
|
||||||
|
# `agent` sudoers, and (N5) the GNOME 50 desktop stack — arrives at FIRSTBOOT via
|
||||||
|
# `apt install naros-tier-vm` (§7.4), NOT baked here.
|
||||||
|
#
|
||||||
|
# No linux-image: the VM boots an externally-sourced kernel + initrd whose matching modules
|
||||||
|
# ride the two-phase payload (LINUX_VM.md; the kernel/initrd flow is a narOS non-goal to
|
||||||
|
# change). A Debian kernel here would drag a whole second linux-image.
|
||||||
|
ca-certificates
|
||||||
|
curl
|
||||||
|
git
|
||||||
|
openssh-client
|
||||||
|
iproute2
|
||||||
|
# systemd as PID 1 + the networking/udev a bootable guest needs to reach the hosted apt
|
||||||
|
# repo at firstboot. dbus/sudo are pulled in by naros-tier-vm, not baked.
|
||||||
|
systemd
|
||||||
|
systemd-sysv
|
||||||
|
systemd-resolved
|
||||||
|
udev
|
||||||
@@ -4,9 +4,10 @@ Architecture: all
|
|||||||
Maintainer: Nucleic <[email protected]>
|
Maintainer: Nucleic <[email protected]>
|
||||||
Section: metapackages
|
Section: metapackages
|
||||||
Priority: optional
|
Priority: optional
|
||||||
Depends: naros-tier-base, systemd, dbus, sudo
|
Depends: naros-tier-base, nucleic-linux-agent, systemd, dbus, sudo
|
||||||
Description: narOS VM guest tier — headless scope (NAROS.md §4, §7.4, milestone N4)
|
Description: narOS VM guest tier — headless scope (NAROS.md §4, §7.4, milestone N4)
|
||||||
The bootable-guest surface. Headless scope for now: systemd (the VM flavor
|
The bootable-guest surface, apt-installed at firstboot onto the naros base
|
||||||
keeps it as PID 1), dbus, sudo. nucleic-linux-agent packaging, the firstboot
|
rootfs the two-phase build boots (§7.4). Headless scope: systemd (the VM flavor
|
||||||
provisioning glue, and the GNOME 50 desktop stack (naros-desktop, N5) land in
|
keeps it as PID 1), dbus, sudo, and the vsock control-plane agent
|
||||||
later milestones and will extend this meta.
|
(nucleic-linux-agent) so linux_vm_exec works with no provisioner hand-install.
|
||||||
|
The GNOME 50 desktop stack (naros-desktop, N5) lands later and extends this meta.
|
||||||
|
|||||||
@@ -0,0 +1,13 @@
|
|||||||
|
Package: nucleic-linux-agent
|
||||||
|
Version: @VERSION@
|
||||||
|
Architecture: @ARCH@
|
||||||
|
Maintainer: Nucleic <[email protected]>
|
||||||
|
Section: admin
|
||||||
|
Priority: optional
|
||||||
|
Description: Nucleic Linux guest vsock control-plane agent (NAROS.md §3.1, §7.4)
|
||||||
|
The dependency-free static-C agent that answers the host over AF_VSOCK
|
||||||
|
(NDJSON, port 2035): ping + the streaming exec sub-protocol linux_vm_exec
|
||||||
|
speaks. Pulled in by naros-tier-vm (apt-installed at firstboot) so a booted
|
||||||
|
guest is reachable with no hand-install; started by its systemd unit as root in the
|
||||||
|
disposable, NAT-isolated guest. Computer-use (screen capture + HID) is entirely
|
||||||
|
host-side over virtio-gpu/USB, so this agent is needed only for exec.
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
# The enable symlink ships in the package (honored on next boot), so image builds need no
|
||||||
|
# action here. On a LIVE system (the §7.3 apt-install conversion path), pick the unit up and
|
||||||
|
# start it now. Guarded on a running systemd so it is a no-op inside the mmdebstrap chroot.
|
||||||
|
set -e
|
||||||
|
if [ "$1" = "configure" ] && [ -d /run/systemd/system ]; then
|
||||||
|
systemctl daemon-reload || true
|
||||||
|
systemctl enable --now nucleic-linux-agent.service || true
|
||||||
|
fi
|
||||||
|
exit 0
|
||||||
@@ -0,0 +1,21 @@
|
|||||||
|
# Stage the prebuilt static nucleic-linux-agent binary (the guest vsock control-plane
|
||||||
|
# agent, built per-arch from guest/nucleic-linux-agent/src/agent.c) plus its systemd unit
|
||||||
|
# and a static enable symlink. The unit is the single source in guest/…/systemd — staged
|
||||||
|
# here so the deb and the pre-narOS Ubuntu payload path can never drift.
|
||||||
|
#
|
||||||
|
# The enable symlink is shipped statically (not via `systemctl enable` in a postinst) so it
|
||||||
|
# takes effect inside the mmdebstrap chroot, where no systemd is running (NAROS.md §4).
|
||||||
|
stage() {
|
||||||
|
local dest="$1" arch="$2"
|
||||||
|
local bin="$OS_DIR/dist/bin/nucleic-linux-agent-$arch"
|
||||||
|
local unit="$OS_DIR/../guest/nucleic-linux-agent/systemd/nucleic-linux-agent.service"
|
||||||
|
if [ ! -x "$bin" ]; then
|
||||||
|
echo "prebuilt binary missing: $bin" > "$dest/.skip-reason"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
install -D -m 0755 "$bin" "$dest/usr/local/bin/nucleic-linux-agent"
|
||||||
|
install -D -m 0644 "$unit" "$dest/usr/lib/systemd/system/nucleic-linux-agent.service"
|
||||||
|
install -d "$dest/etc/systemd/system/multi-user.target.wants"
|
||||||
|
ln -sf /usr/lib/systemd/system/nucleic-linux-agent.service \
|
||||||
|
"$dest/etc/systemd/system/multi-user.target.wants/nucleic-linux-agent.service"
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user