48e41331a1
- ente-journalctl: bin nuevo en ente-journald-compat. Lee ~/.local/share/ente/journal/index.log, parse timestamp:source:unit:sha, filtra --unit/--source/--since/--grep/--tail, restituye blobs desde CAS y formatea (pretty | --json). Default extrae MESSAGE de journald native. - compat-machined: org.freedesktop.machine1.Manager con ListMachines/GetMachine/Register/Terminate. Lista vacía + NotFound — apps que llaman al boot ya no quedan en timeout. - compat-polkit: query_policy() consulta el bus interno por el cap POLKIT_DECISION_IFACE con blob (pid_be|uid_be|action_id_utf8). Si hay proveedor su byte de respuesta gobierna; si no, default-allow. Anuncia POLKIT_SERVICE_IFACE (separado para evitar recursión). - docs/gnome-boot-test.md: procedimiento end-to-end para arrancar GNOME con ente-zero como PID 1 en QEMU. scripts/build-rootfs.sh overlaya binarios + symlink /init. scripts/run-vm.sh boot QEMU con KVM y GTK. docs/seed-gnome-test.k Card Semilla con genesis para 8 shims + dbus-daemon + NetworkManager + gdm. 8 compat-shims operativos en paralelo cubriendo: logind, hostnamed, timedated, localed, journald, resolved, polkit, machined. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
156 lines
5.6 KiB
Plaintext
156 lines
5.6 KiB
Plaintext
# Card Semilla para el boot test de GNOME bajo Ente #0.
|
|
#
|
|
# Este archivo se valida con `kcl run` contra el schema en
|
|
# crates/ente-card/schema/card.k antes de que ente-zero lo cargue.
|
|
#
|
|
# Genesis declara la constelación mínima para que GNOME arranque sin
|
|
# systemd: D-Bus daemon, los 8 compat-shims, NetworkManager, gdm.
|
|
|
|
import .ente_card.schema.card
|
|
|
|
# Card "supervisor genérico" reutilizable — dispara un binario con Restart.
|
|
schema NativeRestart(EnteBase):
|
|
soma = SomaSpec {
|
|
rlimits = ResourceLimits {nofile = 16384}
|
|
}
|
|
supervision = Supervision {
|
|
kind = "Restart"
|
|
initial_ms = 100
|
|
max_ms = 30000
|
|
}
|
|
|
|
|
|
# ----- La Semilla -----
|
|
|
|
seed = EntityCard {
|
|
schema_version = 1
|
|
id = "01KQABOOTTESTSEEDFRACTAL00"
|
|
label = "boot-gnome-test"
|
|
provides = [
|
|
Capability {kind = "Spawn"}
|
|
Capability {kind = "Journal"}
|
|
]
|
|
soma = SomaSpec {}
|
|
payload = Payload {kind = "Virtual"}
|
|
supervision = Supervision {kind = "OneShot"}
|
|
|
|
genesis = [
|
|
# 1. dbus-daemon — pivote del system bus, todos los demás dependen de él.
|
|
EntityCard {
|
|
schema_version = 1
|
|
id = "01KQABOOTTESTDBUSDAEMON___"
|
|
label = "dbus-daemon"
|
|
soma = SomaSpec {}
|
|
payload = Payload {
|
|
kind = "Native"
|
|
exec = "/usr/bin/dbus-daemon"
|
|
argv = ["--system", "--nofork", "--nopidfile"]
|
|
}
|
|
supervision = Supervision {
|
|
kind = "Restart"
|
|
initial_ms = 100
|
|
max_ms = 30000
|
|
}
|
|
}
|
|
|
|
# 2-9. Los 8 compat-shims D-Bus.
|
|
EntityCard {
|
|
schema_version = 1
|
|
id = "01KQABOOTTESTLOGIND_______"
|
|
label = "compat-logind"
|
|
provides = [Capability {kind = "LegacyLogind"}]
|
|
soma = SomaSpec {}
|
|
payload = Payload {
|
|
kind = "Native"
|
|
exec = "/usr/local/bin/ente-logind-compat"
|
|
}
|
|
supervision = Supervision {kind = "Restart", initial_ms = 100, max_ms = 30000}
|
|
}
|
|
EntityCard {
|
|
schema_version = 1
|
|
id = "01KQABOOTTESTHOSTNAMED____"
|
|
label = "compat-hostnamed"
|
|
soma = SomaSpec {}
|
|
payload = Payload {kind = "Native", exec = "/usr/local/bin/ente-hostnamed-compat"}
|
|
supervision = Supervision {kind = "Restart", initial_ms = 100, max_ms = 30000}
|
|
}
|
|
EntityCard {
|
|
schema_version = 1
|
|
id = "01KQABOOTTESTTIMEDATED____"
|
|
label = "compat-timedated"
|
|
soma = SomaSpec {}
|
|
payload = Payload {kind = "Native", exec = "/usr/local/bin/ente-timedated-compat"}
|
|
supervision = Supervision {kind = "Restart", initial_ms = 100, max_ms = 30000}
|
|
}
|
|
EntityCard {
|
|
schema_version = 1
|
|
id = "01KQABOOTTESTLOCALED______"
|
|
label = "compat-localed"
|
|
soma = SomaSpec {}
|
|
payload = Payload {kind = "Native", exec = "/usr/local/bin/ente-localed-compat"}
|
|
supervision = Supervision {kind = "Restart", initial_ms = 100, max_ms = 30000}
|
|
}
|
|
EntityCard {
|
|
schema_version = 1
|
|
id = "01KQABOOTTESTJOURNALD_____"
|
|
label = "compat-journald"
|
|
provides = [Capability {kind = "Journal"}]
|
|
soma = SomaSpec {}
|
|
payload = Payload {kind = "Native", exec = "/usr/local/bin/ente-journald-compat"}
|
|
supervision = Supervision {kind = "Restart", initial_ms = 100, max_ms = 30000}
|
|
}
|
|
EntityCard {
|
|
schema_version = 1
|
|
id = "01KQABOOTTESTRESOLVED_____"
|
|
label = "compat-resolved"
|
|
soma = SomaSpec {}
|
|
payload = Payload {kind = "Native", exec = "/usr/local/bin/ente-resolved-compat"}
|
|
supervision = Supervision {kind = "Restart", initial_ms = 100, max_ms = 30000}
|
|
}
|
|
EntityCard {
|
|
schema_version = 1
|
|
id = "01KQABOOTTESTPOLKIT_______"
|
|
label = "compat-polkit"
|
|
soma = SomaSpec {}
|
|
payload = Payload {kind = "Native", exec = "/usr/local/bin/ente-polkit-compat"}
|
|
supervision = Supervision {kind = "Restart", initial_ms = 100, max_ms = 30000}
|
|
}
|
|
EntityCard {
|
|
schema_version = 1
|
|
id = "01KQABOOTTESTMACHINED_____"
|
|
label = "compat-machined"
|
|
soma = SomaSpec {}
|
|
payload = Payload {kind = "Native", exec = "/usr/local/bin/ente-machined-compat"}
|
|
supervision = Supervision {kind = "Restart", initial_ms = 100, max_ms = 30000}
|
|
}
|
|
|
|
# 10. NetworkManager — la mayoría de distros lo prefieren sobre networkd.
|
|
EntityCard {
|
|
schema_version = 1
|
|
id = "01KQABOOTTESTNETWORKMGR___"
|
|
label = "NetworkManager"
|
|
soma = SomaSpec {}
|
|
payload = Payload {
|
|
kind = "Native"
|
|
exec = "/usr/sbin/NetworkManager"
|
|
argv = ["--no-daemon"]
|
|
}
|
|
supervision = Supervision {kind = "Restart", initial_ms = 200, max_ms = 30000}
|
|
}
|
|
|
|
# 11. gdm — display manager. GNOME settings panels via gnome-shell.
|
|
EntityCard {
|
|
schema_version = 1
|
|
id = "01KQABOOTTESTGDMDAEMON____"
|
|
label = "gdm"
|
|
soma = SomaSpec {}
|
|
payload = Payload {
|
|
kind = "Native"
|
|
exec = "/usr/bin/gdm"
|
|
argv = ["--no-daemon"]
|
|
}
|
|
supervision = Supervision {kind = "Restart", initial_ms = 500, max_ms = 60000}
|
|
}
|
|
]
|
|
}
|