La frontera queda en CERO huecos y cero pendientes, y el perfil escritorio-kde en 302/302
sellados. Los tres eran huecos de RUNTIME: KDE sellaba 1037/1037 con la autorización muerta,
los controles QML en estilo genérico y ninguna app X11 capaz de arrancar.
polkit-qt-1 0.201.1 — al conectarlo se vio lo que ninguna métrica decía: kauth NO traía plugin
de backend, ni siquiera el directorio. Ahora trae kf6/kauth/backend/kauth_backend_plugin.so con
el símbolo KAuth::Polkit1Backend. Cascada de 26 dependientes reconstruida, 26/26 sin fallos.
Añadirlo cambió la rama del CMake y pidió kwindowsystem y tras él las X11 — cada cosa dicha por
el configure al fallar, no supuesta.
qqc2-breeze-style 6.7.2 (la del stack Plasma, NO la 6.7.4 de nixpkgs: mezclar versiones de un
mismo release es pedir desajuste de ABI en los plugins QML, que se ve en runtime y no al
construir). Enganchado a plasma-workspace como deps.runtime, no build: es un plugin que Qt carga
por la ruta de imports. Verificado que runtime no re-hashea ⇒ cero rebuilds.
xwayland 24.1.13 — resultó ser una CADENA de seis: libfontenc, libXfont2, libxkbfile,
libxshmfence, xkbcomp y el servidor. Ninguna existía. Tres tropiezos con su lección:
· libxkbfile 1.2.0 ya no trae ./configure: es sólo meson. El resto de las libs X11 de la cola
son autotools, así que copiar su plantilla era lo natural y estaba mal.
· «checking for freetype2... no» culpaba a freetype, que estaba perfecta: freetype2.pc declara
Requires: zlib, libpng y pkg-config resuelve transitivamente. El mensaje señala al paquete
equivocado.
· libXfont2 construye una .so y moría en «recompile with -fPIC» contra la libfreetype.a
estática. Van las variantes -shared.
Y xkbcomp es el eslabón que NINGÚN build habría delatado: xwayland lo lanza como subproceso en
runtime (xkb/ddxLoad.c) y su meson lo pide con required:false, así que la receta compila igual
y el servidor arranca sin teclado. Se encontró leyendo la fuente.
⚠ Sin GLX, y no por preferencia: glx/meson.build:43 pide dependency('gl') y ninguna cola publica
gl.pc — las tres recetas de mesa van con glx y glvnd apagados por decisión anterior. Las apps
X11 corren en 2D. ⚠ Y el meson.build RAÍZ engaña: ahí build_glx sólo enciende una tabla hash y
parece gratis; yo mismo di la preocupación por infundada mirando el fichero equivocado.
Verificado: Xwayland arranca y se identifica («The X.Org Foundation Xwayland Version 24.1.13»),
las 6 REPRODUCEN bit a bit, los 5 grafos con deuda 0, y los 6 tarballs en el mirror.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014QPJteswQvP1L7zSBrQQe2
52 lines
2.3 KiB
TOML
52 lines
2.3 KiB
TOML
# polkit-qt-1 0.201.1 — el puente Qt↔polkit: la API con la que Plasma PIDE AUTORIZACIÓN al sistema.
|
|
# Sin él `kauth` no tiene backend y plasma-workspace no puede montar discos, cambiar ajustes del
|
|
# sistema ni nada que necesite elevar privilegios: el diálogo de contraseña no existe.
|
|
#
|
|
# POR QUÉ AHORA. Salió de `yupana frontera` (2026-09-08) como HUECO real: lo piden `kauth` y
|
|
# `plasma-workspace` y no había receta. Hueco de RUNTIME, no de build — KDE sellaba 1037/1037 sin él,
|
|
# así que ninguna métrica de deuda lo veía.
|
|
#
|
|
# Versionado PROPIO (0.201.1), no el de Plasma: es una librería aparte del ciclo de releases de KDE.
|
|
# Coincide con lo que nixpkgs pinea, que es quien lo reportó.
|
|
name = "polkit-qt-1"
|
|
version = "0.201.1"
|
|
license = "LGPL-2.1-or-later"
|
|
[source]
|
|
tarball = "https://download.kde.org/stable/polkit-qt-1/polkit-qt-1-0.201.1.tar.xz"
|
|
sha256 = "95d8e2cae530c546d9437459deb8a1bea38d572f0f9772cc2860dc143637f256"
|
|
[build]
|
|
compiler = "zig-cc"
|
|
target = "x86_64-linux-musl"
|
|
link = "dynamic"
|
|
flags = []
|
|
[build.phases]
|
|
configure = '''
|
|
ZW="$PWD/.zwrap"; mkdir -p "$ZW"
|
|
cat > "$ZW/cc" <<'W'
|
|
#!/bin/sh
|
|
a=""; for x in "$@"; do [ "$x" = "-Wl,--fatal-warnings" ] && continue; a="$a $x"; done
|
|
exec /opt/zig/zig cc -mcpu=baseline $a
|
|
W
|
|
cat > "$ZW/cxx" <<'W'
|
|
#!/bin/sh
|
|
a=""; for x in "$@"; do [ "$x" = "-Wl,--fatal-warnings" ] && continue; a="$a $x"; done
|
|
exec /opt/zig/zig c++ -mcpu=baseline $a
|
|
W
|
|
chmod +x "$ZW/cc" "$ZW/cxx"
|
|
cmake -B build -G Ninja -Wno-dev \
|
|
-DCMAKE_C_COMPILER="$ZW/cc" -DCMAKE_CXX_COMPILER="$ZW/cxx" -DCMAKE_ASM_COMPILER="$ZW/cc" \
|
|
-DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_PREFIX_PATH=/usr \
|
|
-DCMAKE_INTERPROCEDURAL_OPTIMIZATION=OFF \
|
|
-DBUILD_TESTING=OFF -DBUILD_EXAMPLES=OFF -DBUILD_TEST=OFF \
|
|
-DQT_MAJOR_VERSION=6
|
|
'''
|
|
compile = "cmake --build build"
|
|
install = "DESTDIR=/out cmake --install build"
|
|
[deps]
|
|
# Qt6 Core/DBus/Widgets (todos en qtbase) + polkit por pkg-config (polkit-gobject-1, polkit-agent-1).
|
|
# `glib`+`libffi`/`pcre2`/`zlib` porque polkit ES glib: su `.pc` los arrastra en Requires.
|
|
# ⚠ Las deps de hammer NO son transitivas: hay que declarar la clausura entera, no la primera capa.
|
|
build = ["cmake", "samurai", "python3", "pkgconf", "extra-cmake-modules", "qtbase",
|
|
"polkit", "glib", "libffi", "pcre2", "zlib", "dbus", "gettext-tiny",
|
|
"mesa", "libdrm", "libxkbcommon", "wayland"]
|