journal-query CLI, machined, polkit con grants reales, GNOME boot test
- 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>
This commit is contained in:
@@ -18,6 +18,20 @@ pub const ENV_BUS_SOCK: &str = "ENTE_BUS_SOCK";
|
||||
pub const ENV_ENTE_ID: &str = "ENTE_ID";
|
||||
pub const MAX_FRAME: usize = 1 << 20; // 1 MiB — protección contra OOM
|
||||
|
||||
/// Interface UUID para decisiones de policy. Un Ente independiente
|
||||
/// (separado de polkit-compat) se anuncia como proveedor de
|
||||
/// `Capability::Endpoint { interface: POLKIT_DECISION_IFACE, version: 1 }`
|
||||
/// para arbitrar autorizaciones. Recibe blob:
|
||||
/// `pid_be | uid_be | action_id_utf8` → responde 1 byte: 1=allow, 0=deny.
|
||||
pub const POLKIT_DECISION_IFACE: ente_card::InterfaceId =
|
||||
ente_card::InterfaceId([0xb0; 16]);
|
||||
|
||||
/// Interface UUID auto-anunciado por compat-polkit. Diferente al de
|
||||
/// decisión para evitar recursión (polkit-compat invoca DECISION pero
|
||||
/// no es proveedor de DECISION; se anuncia como SERVICE).
|
||||
pub const POLKIT_SERVICE_IFACE: ente_card::InterfaceId =
|
||||
ente_card::InterfaceId([0xa4; 16]);
|
||||
|
||||
/// Credenciales del peer extraídas vía SO_PEERCRED al accept del bus.
|
||||
/// Imposibles de falsear desde el cliente — el kernel las inyecta.
|
||||
/// Definidas aquí (no en ente-zero) porque conceptualmente son atributo
|
||||
|
||||
Reference in New Issue
Block a user