Files
Sergio 0e35652fb1 un solo NetworkManager (y KDE recupera WiFi) + upower al corpus sin arrastrar polkit
── 1. Se RETIRA incoming-kde/networkmanager.toml ───────────────────────────────────────────────
  networkmanager-qt  b3:78bbdcda00d758fb3cc3a0be7da6a67395dfbe0e4d55c5d8e5cf8afaf728ff72
  plasma-nm          b3:496a9ff7794ae5d89ac2842bdfbca38c25c91df37465a049db7cf75ee0041b82

Ayer se promovió NetworkManager al corpus CON WiFi porque la variante de KDE iba con -Dwifi=false,
y quedaron dos. Esto cierra el arco: retirada la de la cola, `networkmanager-qt` resuelve al PADRE
y la distro tiene UNO solo. Consecuencia concreta: **KDE pasa a tener WiFi**, porque su applet
hablaba con un demonio construido sin soporte inalámbrico.

Medido con `yupana radio` antes de borrar: 2 rebuilds (networkmanager-qt, plasma-nm), los dos en
la cola KDE. Y comprobado sobre el ARTEFACTO del corpus que publica lo que nm-qt pide —`libnm.pc`
y `usr/include/libnm`— antes de quitarle el suelo. Los dos sellan.

── 2. upower al corpus: COSMIC dibujaba una batería sin nadie que se la contara ────────────────
  libgudev  b3:87ca5e73…  ·  udev-pc  b3:fa880b5c…   (hash IDÉNTICO desde las dos partes ⇒ cache-hit)
  upower    b3:c82e655ff7011150f21f9413433c518f12c827c52ecf6f9fc3484f75d85c155c

Ayer escribí que esta cadena eran «3 promociones, una de ellas polkit, decisión de arquitectura».
Fui a mirar y polkit SALE de la ecuación con una perilla: la variante de KDE va `-Dpolkit=enabled`
«porque polkit YA está sellada» —cierto EN ESA COLA y falso desde el corpus—, y apagarlo cuesta
poco medido en FUNCIÓN: polkit en upower sólo gobierna las acciones privilegiadas (suspender e
hibernar por org.freedesktop.UPower, además deprecadas: hoy eso lo hace logind). Reportar batería,
carga, tiempo restante y línea de corriente NO pasa por polkit, que es justo lo que COSMIC quiere.

Se corrigió además la frase del comentario heredado que decía `-Dpolkit=enabled` al lado de un flag
que ahora dice `disabled`: una nota que desmiente al código de al lado es peor que no tener nota.
Y se le añadió su [[service]] (el corpus no lo traía; el label/id son los mismos que en GNOME a
propósito: el ULID identifica al SERVICIO, no al artefacto). No mueve el hash.

Comprobadas las NEEDED de upowerd con provee.py: libupower-glib, libffi.so.8, libz.so.1,
libudev.so.1 — las cuatro las publica el corpus y ya estaban en [deps]. Sin NEEDED colgante.

── 3. targets.toml ─────────────────────────────────────────────────────────────────────────────
  escritorio-kde     servicios += NetworkManager  (llegaba por clausura de plasma-nm y NADIE lo
                                                   arrancaba: el applet sobre un demonio apagado)
  escritorio-cosmic  paquetes  += upower · servicios += upowerd

⚠ Y se CORRIGE la nota de ayer que decía «NO declarar networkmanager en escritorio-kde porque
plasma-nm ya arrastra la variante de la cola». Ya no hay variante de cola.
2026-09-13 21:15:14 +00:00

54 lines
2.3 KiB
TOML

# ⚠ COPIA EN LA COLA KDE (2026-09-09). El original vive en `incoming-gnome/`, y las colas NO se ven
# entre sí: una receta resuelve HERMANO→corpus y nunca de reojo a otra cola. `upower` la necesita
# para que KDE tenga batería y perfiles de energía (powerdevil habla con upower por D-Bus).
# Sus deps son sólo `pkgconf`, que está en el corpus ⇒ **el ArtifactHash es el MISMO que el de la
# copia de GNOME** (verificado): un solo artefacto en el store, cero builds nuevos.
# udev-pc — el `udev.pc` que falta, y nada más.
#
# QUÉ ES: mutter pide DOS pkg-config distintos para su backend nativo (meson.build:262-264):
# `libudev` (la librería, que da libudev-zero) y `udev` (metadata: la variable `udevdir`, dónde van
# las reglas). libudev-zero provee el primero y no el segundo — no tiene por qué: es una libudev sin
# udevd. En distros con systemd el `udev.pc` lo pone systemd; en las que no, lo pone eudev.
#
# POR QUÉ UNA RECETA APARTE Y NO AGREGARLO A libudev-zero: `yupana radio libudev-zero` da **51
# sellados cayendo a deuda**, en las cinco imágenes (base, cli y los tres escritorios). Un fichero de
# 4 líneas no justifica reconstruir medio catálogo. Esta receta instala SÓLO el .pc, así que no pisa
# nada de libudev-zero y las dos conviven en el mismo cierre.
#
# LA FUENTE es el tarball de libudev-zero a propósito, aunque no se compile nada de él: `[source]` es
# obligatorio en el esquema de receta, y atarla a su upstream natural deja claro de quién es
# compañera. El .pc se escribe acá porque libudev-zero no lo trae.
#
# udevdir=/usr/lib/udev es la ruta real de esta distro: la Semilla de arje arranca /usr/bin/udevd y
# ahí busca sus reglas. mutter sólo usa el valor para saber dónde instalar las suyas.
name = "udev-pc"
version = "1.0.4"
license = "ISC"
[source]
tarball = "https://github.com/illiliti/libudev-zero/archive/refs/tags/1.0.4.tar.gz"
sha256 = "10148cfd6047d387bf71eca72cd19c177084224d96434a118d8def6e0a3d6316"
[build]
compiler = "zig-cc"
target = "x86_64-linux-musl"
link = "dynamic"
[build.phases]
compile = 'true'
install = '''
set -e
mkdir -p /out/usr/share/pkgconfig
cat > /out/usr/share/pkgconfig/udev.pc <<'PC'
prefix=/usr
udevdir=${prefix}/lib/udev
Name: udev
Description: udev device manager (metadata; la libreria la provee libudev-zero)
Version: 252
PC
'''
[deps]
build = ["pkgconf"]