4 D-Bus shims sustituyendo systemd: hostnamed, timedated, localed, journald
Patrón de compat-logind extendido a 4 servicios más que GNOME/KDE consultan al boot. Cada uno: anuncia al bus interno, intenta RequestName en system bus, degrada a idle si la policy lo bloquea, sirve método mientras esté arriba. - compat-hostnamed: org.freedesktop.hostname1. Properties read /etc/hostname, /etc/os-release, /sys/class/dmi/id/* y uname(). Setters log + cache. - compat-timedated: org.freedesktop.timedate1. Timezone via readlink /etc/localtime. ListTimezones desde /usr/share/zoneinfo. - compat-localed: org.freedesktop.locale1. Lee /etc/locale.conf, /etc/vconsole.conf, /etc/X11/xorg.conf.d/00-keyboard.conf. - compat-journald: stub datagram listener en /run/systemd/journal/socket y /dev/log. Decodifica syslog y journald native, emite tracing events. Dev seed los incluye condicionalmente. Verificado: los 5 shims (logind+4 nuevos) anunciados al bus interno con auth SO_PEERCRED. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -146,6 +146,23 @@ fn synthesize_dev_seed() -> EntityCard {
|
||||
genesis.push(card);
|
||||
}
|
||||
|
||||
// Constelación de shims D-Bus que reemplazan systemd: cada uno provee
|
||||
// un nombre `org.freedesktop.X1` que GNOME/KDE consultan al boot.
|
||||
for (label, bin) in &[
|
||||
("compat-hostnamed", "target/debug/ente-hostnamed-compat"),
|
||||
("compat-timedated", "target/debug/ente-timedated-compat"),
|
||||
("compat-localed", "target/debug/ente-localed-compat"),
|
||||
("compat-journald", "target/debug/ente-journald-compat"),
|
||||
] {
|
||||
if let Some(card) = optional_native_card(
|
||||
label, bin,
|
||||
std::collections::BTreeSet::new(),
|
||||
restart_supervision(),
|
||||
) {
|
||||
genesis.push(card);
|
||||
}
|
||||
}
|
||||
|
||||
EntityCard {
|
||||
schema_version: CARD_SCHEMA_VERSION,
|
||||
id: Ulid::new(),
|
||||
|
||||
Reference in New Issue
Block a user