polkit (variante KDE) + polkit-qt-1 0.201.1: Plasma ya puede pedir autorización
Tercer y cuarto hueco de RUNTIME del triaje. Sin polkit-qt-1, Plasma no puede
elevar privilegios: ni montar un disco, ni cambiar ajustes del sistema.
Son DOS recetas porque hacía falta una segunda polkit. Hammer resuelve las deps
hermano→padre —la cola propia, después recipes/— y nunca cruza a una cola hermana,
así que la polkit de incoming-gnome es invisible desde incoming-kde. Y aunque se
viera no serviría: aquélla va con -Dintrospection=true contra glib-introspected,
que es la ISLA DINÁMICA del shell de GNOME (gjs importa gi://Polkit y necesita el
typelib). KDE enlaza las libs desde C++ y el typelib le sobra; traerlo obligaría a
meter gobject-introspection entero en la cola.
La nueva es homónima a propósito, mismo patrón deliberado que dbus (incoming-kde vs
raíz) y gmp (incoming-kde vs incoming-cosmic), con el mismo coste conocido:
store-gc no puede decidir por NOMBRE cuál de los dos sellados es el vigente. No la
renombré a polkit-kde porque el .pc que busca polkit-qt-1 es polkit-gobject-1, no
el nombre del paquete: renombrar sólo movería el problema al lector.
Radio medido antes de escribirla (yupana radio polkit): la de incoming-gnome tiene
6 dependientes transitivos y no se toca; la nueva, 0. Cero daño colateral.
Nada de esto necesitó descubrirse: glib-shared ya existía en la cola KDE y su
propio encabezado nombraba a polkit como uno de los motivos por los que se escribió.
── El guardián que sí hizo falta ────────────────────────────────────────────────
polkit-qt-1 sondea polkit con check_function_exists, que COMPILA Y ENLAZA. Si ese
enlace falla por algo del sandbox —y no porque la función falte—, cmake NO da
error: imprime «You have an older polkit-1 version» y define
POLKIT_QT_1_COMPATIBILITY_MODE. El build sella, el artefacto pesa lo esperado y la
autorización queda recortada sin que nadie se entere. La fase configure ahora
aborta si HAVE_POLKIT_SYSTEM_BUS_NAME_GET_USER_SYNC no llegó a 1 en el header
generado: polkit 127 tiene esa función, así que un 0 significa «el sondeo no pudo
enlazar», no «polkit es viejo». Pasó: no hay modo compatibilidad.
También va -DQT_MAJOR_VERSION=6 explícito. El default del CMakeLists es "5", y sin
la flag construiría bindings con otros nombres (polkit-qt5-1) que el dependiente
no encontraría hasta mucho después.
── Lo que esto NO enciende, a propósito ─────────────────────────────────────────
Los dos consumidores siguen esquivando polkit igual que antes:
· kauth construye con el backend polkit OPCIONAL apagado (cae al backend fake);
· plasma-workspace apaga el helper de Región&Idioma con -DGLIBC_LOCALE_GEN=OFF
-DGLIBC_LOCALE_PREGENERATED=ON, que es justo lo que evita el PolkitQt6-1
REQUIRED.
Encenderlos es otra decisión con su propio radio (plasma-workspace arrastra medio
escritorio). La pieza está puesta; la palanca no se toca sin pedirlo.
⚠ Y con las librerías viaja la postura de seguridad que ya declaraba
arje-polkit-compat: el demonio responde is_authorized=true a TODO. Estas libs son
la INTERFAZ que el escritorio espera, no la política. Queda repetido en las dos
recetas nuevas porque son las que ponen la pieza en manos del escritorio.
Las dos REPRODUCEN bit a bit (verificar-repro.sh 2/2). Los NEEDED de
libpolkit-qt6-core-1 son exactamente los esperados: Qt6DBus, Qt6Core,
libpolkit-gobject-1, gio/gobject/glib y libc.
corpus 788/788 · escritorio-kde 171/171 · grafo CIERRA · gate --check OK
Queda 1 wanted en KDE: xwayland — y ése no es deuda técnica sino una decisión
(X11 al tacho, Xwayland = compat opcional por-imagen, no en el core).
This commit is contained in:
@@ -2216,7 +2216,7 @@
|
||||
"escritorio-kde",
|
||||
"escritorio-sway"
|
||||
],
|
||||
"dependientes_total": 142
|
||||
"dependientes_total": 143
|
||||
},
|
||||
"cmctl": {
|
||||
"iname": "cmctl",
|
||||
@@ -4766,7 +4766,7 @@
|
||||
"escritorio-gnome",
|
||||
"escritorio-kde"
|
||||
],
|
||||
"dependientes_total": 100
|
||||
"dependientes_total": 101
|
||||
},
|
||||
"gh": {
|
||||
"iname": "gh",
|
||||
@@ -8393,7 +8393,7 @@
|
||||
"escritorio-mirada",
|
||||
"escritorio-sway"
|
||||
],
|
||||
"dependientes_total": 138
|
||||
"dependientes_total": 139
|
||||
},
|
||||
"libelogind": {
|
||||
"iname": "libelogind",
|
||||
@@ -8498,7 +8498,7 @@
|
||||
"escritorio-mirada",
|
||||
"escritorio-sway"
|
||||
],
|
||||
"dependientes_total": 98
|
||||
"dependientes_total": 100
|
||||
},
|
||||
"libffi-shared": {
|
||||
"iname": "libffi-shared",
|
||||
@@ -9712,7 +9712,7 @@
|
||||
"escritorio-mirada",
|
||||
"escritorio-sway"
|
||||
],
|
||||
"dependientes_total": 136
|
||||
"dependientes_total": 137
|
||||
},
|
||||
"mesa-llvmpipe": {
|
||||
"iname": "mesa-llvmpipe",
|
||||
@@ -9802,7 +9802,7 @@
|
||||
"escritorio-mirada",
|
||||
"escritorio-sway"
|
||||
],
|
||||
"dependientes_total": 116
|
||||
"dependientes_total": 117
|
||||
},
|
||||
"micro": {
|
||||
"iname": "micro",
|
||||
@@ -11350,7 +11350,7 @@
|
||||
"escritorio-mirada",
|
||||
"escritorio-sway"
|
||||
],
|
||||
"dependientes_total": 374
|
||||
"dependientes_total": 376
|
||||
},
|
||||
"plow": {
|
||||
"iname": "plow",
|
||||
@@ -11719,7 +11719,7 @@
|
||||
"escritorio-mirada",
|
||||
"escritorio-sway"
|
||||
],
|
||||
"dependientes_total": 283
|
||||
"dependientes_total": 285
|
||||
},
|
||||
"qrcp": {
|
||||
"iname": "qrcp",
|
||||
@@ -12274,7 +12274,7 @@
|
||||
"escritorio-mirada",
|
||||
"escritorio-sway"
|
||||
],
|
||||
"dependientes_total": 249
|
||||
"dependientes_total": 251
|
||||
},
|
||||
"sassc": {
|
||||
"iname": "sassc",
|
||||
@@ -14501,7 +14501,7 @@
|
||||
"escritorio-mirada",
|
||||
"escritorio-sway"
|
||||
],
|
||||
"dependientes_total": 147
|
||||
"dependientes_total": 148
|
||||
},
|
||||
"wayland-protocols": {
|
||||
"iname": "wayland-protocols",
|
||||
|
||||
@@ -2328,7 +2328,7 @@
|
||||
"escritorio-kde",
|
||||
"escritorio-sway"
|
||||
],
|
||||
"dependientes_total": 142
|
||||
"dependientes_total": 143
|
||||
},
|
||||
"cmctl": {
|
||||
"iname": "cmctl",
|
||||
@@ -4601,7 +4601,7 @@
|
||||
"escritorio-gnome",
|
||||
"escritorio-kde"
|
||||
],
|
||||
"dependientes_total": 100
|
||||
"dependientes_total": 101
|
||||
},
|
||||
"gh": {
|
||||
"iname": "gh",
|
||||
@@ -8658,7 +8658,7 @@
|
||||
"escritorio-mirada",
|
||||
"escritorio-sway"
|
||||
],
|
||||
"dependientes_total": 138
|
||||
"dependientes_total": 139
|
||||
},
|
||||
"libei": {
|
||||
"iname": "libei",
|
||||
@@ -8793,7 +8793,7 @@
|
||||
"escritorio-mirada",
|
||||
"escritorio-sway"
|
||||
],
|
||||
"dependientes_total": 98
|
||||
"dependientes_total": 100
|
||||
},
|
||||
"libffi-shared": {
|
||||
"iname": "libffi-shared",
|
||||
@@ -10369,7 +10369,7 @@
|
||||
"escritorio-mirada",
|
||||
"escritorio-sway"
|
||||
],
|
||||
"dependientes_total": 136
|
||||
"dependientes_total": 137
|
||||
},
|
||||
"mesa-llvmpipe": {
|
||||
"iname": "mesa-llvmpipe",
|
||||
@@ -10459,7 +10459,7 @@
|
||||
"escritorio-mirada",
|
||||
"escritorio-sway"
|
||||
],
|
||||
"dependientes_total": 116
|
||||
"dependientes_total": 117
|
||||
},
|
||||
"micro": {
|
||||
"iname": "micro",
|
||||
@@ -12131,7 +12131,7 @@
|
||||
"escritorio-mirada",
|
||||
"escritorio-sway"
|
||||
],
|
||||
"dependientes_total": 374
|
||||
"dependientes_total": 376
|
||||
},
|
||||
"plow": {
|
||||
"iname": "plow",
|
||||
@@ -12570,7 +12570,7 @@
|
||||
"escritorio-mirada",
|
||||
"escritorio-sway"
|
||||
],
|
||||
"dependientes_total": 283
|
||||
"dependientes_total": 285
|
||||
},
|
||||
"qrcp": {
|
||||
"iname": "qrcp",
|
||||
@@ -13125,7 +13125,7 @@
|
||||
"escritorio-mirada",
|
||||
"escritorio-sway"
|
||||
],
|
||||
"dependientes_total": 249
|
||||
"dependientes_total": 251
|
||||
},
|
||||
"sassc": {
|
||||
"iname": "sassc",
|
||||
@@ -15451,7 +15451,7 @@
|
||||
"escritorio-mirada",
|
||||
"escritorio-sway"
|
||||
],
|
||||
"dependientes_total": 147
|
||||
"dependientes_total": 148
|
||||
},
|
||||
"wayland-protocols": {
|
||||
"iname": "wayland-protocols",
|
||||
|
||||
@@ -1,18 +1,18 @@
|
||||
{
|
||||
"schema": "hammer-build-state/1",
|
||||
"totals": {
|
||||
"recipes": 976,
|
||||
"nodes": 978,
|
||||
"sealed": 976,
|
||||
"wanted": 2
|
||||
"recipes": 978,
|
||||
"nodes": 979,
|
||||
"sealed": 978,
|
||||
"wanted": 1
|
||||
},
|
||||
"by_class": {
|
||||
"c": 343,
|
||||
"c": 345,
|
||||
"go": 362,
|
||||
"gui": 36,
|
||||
"kernel": 6,
|
||||
"rust": 229,
|
||||
"wanted": 2
|
||||
"wanted": 1
|
||||
},
|
||||
"debt_by_class": {},
|
||||
"by_queue": {
|
||||
@@ -20,8 +20,8 @@
|
||||
"sealed": 770
|
||||
},
|
||||
"incoming-kde": {
|
||||
"sealed": 206,
|
||||
"wanted": 2
|
||||
"sealed": 208,
|
||||
"wanted": 1
|
||||
}
|
||||
},
|
||||
"by_profile": {
|
||||
@@ -37,8 +37,8 @@
|
||||
},
|
||||
"escritorio-kde": {
|
||||
"raices": 11,
|
||||
"clausura": 166,
|
||||
"sealed": 166
|
||||
"clausura": 171,
|
||||
"sealed": 171
|
||||
},
|
||||
"escritorio-mirada": {
|
||||
"raices": 14,
|
||||
@@ -46,7 +46,7 @@
|
||||
"sealed": 29
|
||||
}
|
||||
},
|
||||
"sin_perfil": 724,
|
||||
"sin_perfil": 720,
|
||||
"orphan_deps": [],
|
||||
"topo_ok": true,
|
||||
"nodes": {
|
||||
@@ -2449,7 +2449,7 @@
|
||||
"escritorio-kde",
|
||||
"escritorio-sway"
|
||||
],
|
||||
"dependientes_total": 142
|
||||
"dependientes_total": 143
|
||||
},
|
||||
"cmctl": {
|
||||
"iname": "cmctl",
|
||||
@@ -2970,7 +2970,7 @@
|
||||
"perfiles": [
|
||||
"escritorio-kde"
|
||||
],
|
||||
"dependientes_total": 115
|
||||
"dependientes_total": 117
|
||||
},
|
||||
"ddh": {
|
||||
"iname": "ddh",
|
||||
@@ -4781,7 +4781,7 @@
|
||||
"escritorio-gnome",
|
||||
"escritorio-kde"
|
||||
],
|
||||
"dependientes_total": 100
|
||||
"dependientes_total": 101
|
||||
},
|
||||
"gh": {
|
||||
"iname": "gh",
|
||||
@@ -5244,8 +5244,10 @@
|
||||
"state": "sealed",
|
||||
"blocked_by": [],
|
||||
"unblocks": 0,
|
||||
"perfiles": [],
|
||||
"dependientes_total": 10
|
||||
"perfiles": [
|
||||
"escritorio-kde"
|
||||
],
|
||||
"dependientes_total": 12
|
||||
},
|
||||
"glow": {
|
||||
"iname": "glow",
|
||||
@@ -12126,7 +12128,7 @@
|
||||
"escritorio-mirada",
|
||||
"escritorio-sway"
|
||||
],
|
||||
"dependientes_total": 138
|
||||
"dependientes_total": 139
|
||||
},
|
||||
"libepoxy": {
|
||||
"iname": "libepoxy",
|
||||
@@ -12210,7 +12212,7 @@
|
||||
"escritorio-mirada",
|
||||
"escritorio-sway"
|
||||
],
|
||||
"dependientes_total": 98
|
||||
"dependientes_total": 100
|
||||
},
|
||||
"libffi-shared": {
|
||||
"iname": "libffi-shared",
|
||||
@@ -13072,7 +13074,7 @@
|
||||
"perfiles": [
|
||||
"escritorio-kde"
|
||||
],
|
||||
"dependientes_total": 115
|
||||
"dependientes_total": 116
|
||||
},
|
||||
"libxml2": {
|
||||
"iname": "libxml2",
|
||||
@@ -13838,7 +13840,7 @@
|
||||
"escritorio-mirada",
|
||||
"escritorio-sway"
|
||||
],
|
||||
"dependientes_total": 136
|
||||
"dependientes_total": 137
|
||||
},
|
||||
"mesa-llvmpipe": {
|
||||
"iname": "mesa-llvmpipe",
|
||||
@@ -13928,7 +13930,7 @@
|
||||
"escritorio-mirada",
|
||||
"escritorio-sway"
|
||||
],
|
||||
"dependientes_total": 116
|
||||
"dependientes_total": 117
|
||||
},
|
||||
"micro": {
|
||||
"iname": "micro",
|
||||
@@ -15483,8 +15485,10 @@
|
||||
"state": "sealed",
|
||||
"blocked_by": [],
|
||||
"unblocks": 0,
|
||||
"perfiles": [],
|
||||
"dependientes_total": 11
|
||||
"perfiles": [
|
||||
"escritorio-kde"
|
||||
],
|
||||
"dependientes_total": 13
|
||||
},
|
||||
"peco": {
|
||||
"iname": "peco",
|
||||
@@ -15771,7 +15775,7 @@
|
||||
"escritorio-mirada",
|
||||
"escritorio-sway"
|
||||
],
|
||||
"dependientes_total": 374
|
||||
"dependientes_total": 376
|
||||
},
|
||||
"plasma-activities": {
|
||||
"iname": "plasma-activities",
|
||||
@@ -16553,19 +16557,65 @@
|
||||
"perfiles": [],
|
||||
"dependientes_total": 0
|
||||
},
|
||||
"polkit-qt-1": {
|
||||
"iname": "polkit-qt-1",
|
||||
"version": null,
|
||||
"link": null,
|
||||
"compiler": null,
|
||||
"deps": [],
|
||||
"cls": "wanted",
|
||||
"polkit": {
|
||||
"iname": "polkit",
|
||||
"version": "127",
|
||||
"link": "dynamic",
|
||||
"compiler": "zig-cc",
|
||||
"deps": [
|
||||
"meson",
|
||||
"samurai",
|
||||
"python3",
|
||||
"pkgconf",
|
||||
"gettext-tiny",
|
||||
"dbus",
|
||||
"glib-shared",
|
||||
"pcre2-shared",
|
||||
"zlib-shared",
|
||||
"libffi"
|
||||
],
|
||||
"cls": "c",
|
||||
"queue": "incoming-kde",
|
||||
"hash": null,
|
||||
"state": "wanted",
|
||||
"hash": "b3:04d30a79f113849bf2828cd4b6664bb382b8b17424cae906a2c5f7c98336e458",
|
||||
"state": "sealed",
|
||||
"blocked_by": [],
|
||||
"unblocks": 0,
|
||||
"perfiles": [],
|
||||
"perfiles": [
|
||||
"escritorio-kde"
|
||||
],
|
||||
"dependientes_total": 1
|
||||
},
|
||||
"polkit-qt-1": {
|
||||
"iname": "polkit-qt-1",
|
||||
"version": "0.201.1",
|
||||
"link": "dynamic",
|
||||
"compiler": "zig-cc",
|
||||
"deps": [
|
||||
"cmake",
|
||||
"samurai",
|
||||
"python3",
|
||||
"pkgconf",
|
||||
"qtbase",
|
||||
"dbus",
|
||||
"polkit",
|
||||
"glib-shared",
|
||||
"pcre2-shared",
|
||||
"zlib-shared",
|
||||
"libffi",
|
||||
"mesa",
|
||||
"libdrm",
|
||||
"libxkbcommon",
|
||||
"wayland"
|
||||
],
|
||||
"cls": "c",
|
||||
"queue": "incoming-kde",
|
||||
"hash": "b3:bc050ddcffc15fa6b34f98548719de442d204a6fa73dbd55abc128348fe37d6d",
|
||||
"state": "sealed",
|
||||
"blocked_by": [],
|
||||
"unblocks": 0,
|
||||
"perfiles": [
|
||||
"escritorio-kde"
|
||||
],
|
||||
"dependientes_total": 0
|
||||
},
|
||||
"pop": {
|
||||
@@ -17077,7 +17127,7 @@
|
||||
"escritorio-mirada",
|
||||
"escritorio-sway"
|
||||
],
|
||||
"dependientes_total": 283
|
||||
"dependientes_total": 285
|
||||
},
|
||||
"qcoro": {
|
||||
"iname": "qcoro",
|
||||
@@ -17382,7 +17432,7 @@
|
||||
"perfiles": [
|
||||
"escritorio-kde"
|
||||
],
|
||||
"dependientes_total": 118
|
||||
"dependientes_total": 119
|
||||
},
|
||||
"qtdeclarative": {
|
||||
"iname": "qt6-qtdeclarative",
|
||||
@@ -18221,7 +18271,7 @@
|
||||
"escritorio-mirada",
|
||||
"escritorio-sway"
|
||||
],
|
||||
"dependientes_total": 249
|
||||
"dependientes_total": 251
|
||||
},
|
||||
"sassc": {
|
||||
"iname": "sassc",
|
||||
@@ -20874,7 +20924,7 @@
|
||||
"escritorio-mirada",
|
||||
"escritorio-sway"
|
||||
],
|
||||
"dependientes_total": 147
|
||||
"dependientes_total": 148
|
||||
},
|
||||
"wayland-protocols": {
|
||||
"iname": "wayland-protocols",
|
||||
@@ -21702,8 +21752,10 @@
|
||||
"state": "sealed",
|
||||
"blocked_by": [],
|
||||
"unblocks": 0,
|
||||
"perfiles": [],
|
||||
"dependientes_total": 34
|
||||
"perfiles": [
|
||||
"escritorio-kde"
|
||||
],
|
||||
"dependientes_total": 36
|
||||
},
|
||||
"zola": {
|
||||
"iname": "zola",
|
||||
|
||||
@@ -2174,7 +2174,7 @@
|
||||
"escritorio-kde",
|
||||
"escritorio-sway"
|
||||
],
|
||||
"dependientes_total": 142
|
||||
"dependientes_total": 143
|
||||
},
|
||||
"cmctl": {
|
||||
"iname": "cmctl",
|
||||
@@ -4277,7 +4277,7 @@
|
||||
"escritorio-gnome",
|
||||
"escritorio-kde"
|
||||
],
|
||||
"dependientes_total": 100
|
||||
"dependientes_total": 101
|
||||
},
|
||||
"gh": {
|
||||
"iname": "gh",
|
||||
@@ -7841,7 +7841,7 @@
|
||||
"escritorio-mirada",
|
||||
"escritorio-sway"
|
||||
],
|
||||
"dependientes_total": 138
|
||||
"dependientes_total": 139
|
||||
},
|
||||
"libepoxy": {
|
||||
"iname": "libepoxy",
|
||||
@@ -7929,7 +7929,7 @@
|
||||
"escritorio-mirada",
|
||||
"escritorio-sway"
|
||||
],
|
||||
"dependientes_total": 98
|
||||
"dependientes_total": 100
|
||||
},
|
||||
"libffi-shared": {
|
||||
"iname": "libffi-shared",
|
||||
@@ -9078,7 +9078,7 @@
|
||||
"escritorio-mirada",
|
||||
"escritorio-sway"
|
||||
],
|
||||
"dependientes_total": 136
|
||||
"dependientes_total": 137
|
||||
},
|
||||
"mesa-llvmpipe": {
|
||||
"iname": "mesa-llvmpipe",
|
||||
@@ -9168,7 +9168,7 @@
|
||||
"escritorio-mirada",
|
||||
"escritorio-sway"
|
||||
],
|
||||
"dependientes_total": 116
|
||||
"dependientes_total": 117
|
||||
},
|
||||
"micro": {
|
||||
"iname": "micro",
|
||||
@@ -10625,7 +10625,7 @@
|
||||
"escritorio-mirada",
|
||||
"escritorio-sway"
|
||||
],
|
||||
"dependientes_total": 374
|
||||
"dependientes_total": 376
|
||||
},
|
||||
"plow": {
|
||||
"iname": "plow",
|
||||
@@ -10924,7 +10924,7 @@
|
||||
"escritorio-mirada",
|
||||
"escritorio-sway"
|
||||
],
|
||||
"dependientes_total": 283
|
||||
"dependientes_total": 285
|
||||
},
|
||||
"qrcp": {
|
||||
"iname": "qrcp",
|
||||
@@ -11479,7 +11479,7 @@
|
||||
"escritorio-mirada",
|
||||
"escritorio-sway"
|
||||
],
|
||||
"dependientes_total": 249
|
||||
"dependientes_total": 251
|
||||
},
|
||||
"sassc": {
|
||||
"iname": "sassc",
|
||||
@@ -13904,7 +13904,7 @@
|
||||
"escritorio-mirada",
|
||||
"escritorio-sway"
|
||||
],
|
||||
"dependientes_total": 147
|
||||
"dependientes_total": 148
|
||||
},
|
||||
"wayland-protocols": {
|
||||
"iname": "wayland-protocols",
|
||||
|
||||
+10
-10
@@ -2166,7 +2166,7 @@
|
||||
"escritorio-kde",
|
||||
"escritorio-sway"
|
||||
],
|
||||
"dependientes_total": 142
|
||||
"dependientes_total": 143
|
||||
},
|
||||
"cmctl": {
|
||||
"iname": "cmctl",
|
||||
@@ -4211,7 +4211,7 @@
|
||||
"escritorio-gnome",
|
||||
"escritorio-kde"
|
||||
],
|
||||
"dependientes_total": 100
|
||||
"dependientes_total": 101
|
||||
},
|
||||
"gh": {
|
||||
"iname": "gh",
|
||||
@@ -7703,7 +7703,7 @@
|
||||
"escritorio-mirada",
|
||||
"escritorio-sway"
|
||||
],
|
||||
"dependientes_total": 138
|
||||
"dependientes_total": 139
|
||||
},
|
||||
"libepoxy": {
|
||||
"iname": "libepoxy",
|
||||
@@ -7791,7 +7791,7 @@
|
||||
"escritorio-mirada",
|
||||
"escritorio-sway"
|
||||
],
|
||||
"dependientes_total": 98
|
||||
"dependientes_total": 100
|
||||
},
|
||||
"libffi-shared": {
|
||||
"iname": "libffi-shared",
|
||||
@@ -8940,7 +8940,7 @@
|
||||
"escritorio-mirada",
|
||||
"escritorio-sway"
|
||||
],
|
||||
"dependientes_total": 136
|
||||
"dependientes_total": 137
|
||||
},
|
||||
"mesa-llvmpipe": {
|
||||
"iname": "mesa-llvmpipe",
|
||||
@@ -9030,7 +9030,7 @@
|
||||
"escritorio-mirada",
|
||||
"escritorio-sway"
|
||||
],
|
||||
"dependientes_total": 116
|
||||
"dependientes_total": 117
|
||||
},
|
||||
"micro": {
|
||||
"iname": "micro",
|
||||
@@ -10487,7 +10487,7 @@
|
||||
"escritorio-mirada",
|
||||
"escritorio-sway"
|
||||
],
|
||||
"dependientes_total": 374
|
||||
"dependientes_total": 376
|
||||
},
|
||||
"plow": {
|
||||
"iname": "plow",
|
||||
@@ -10786,7 +10786,7 @@
|
||||
"escritorio-mirada",
|
||||
"escritorio-sway"
|
||||
],
|
||||
"dependientes_total": 283
|
||||
"dependientes_total": 285
|
||||
},
|
||||
"qrcp": {
|
||||
"iname": "qrcp",
|
||||
@@ -11341,7 +11341,7 @@
|
||||
"escritorio-mirada",
|
||||
"escritorio-sway"
|
||||
],
|
||||
"dependientes_total": 249
|
||||
"dependientes_total": 251
|
||||
},
|
||||
"sassc": {
|
||||
"iname": "sassc",
|
||||
@@ -13568,7 +13568,7 @@
|
||||
"escritorio-mirada",
|
||||
"escritorio-sway"
|
||||
],
|
||||
"dependientes_total": 147
|
||||
"dependientes_total": 148
|
||||
},
|
||||
"wayland-protocols": {
|
||||
"iname": "wayland-protocols",
|
||||
|
||||
@@ -0,0 +1,84 @@
|
||||
# polkit-qt-1 0.201.1 — los bindings Qt de polkit. Último de los cuatro huecos de RUNTIME del triaje
|
||||
# de la frontera que tiene sentido cerrar: sin él Plasma no puede PEDIR autorización — montar un
|
||||
# disco, cambiar ajustes del sistema, cualquier acción que necesite elevar privilegios.
|
||||
#
|
||||
# Los dos consumidores están escritos en el corpus y hoy lo esquivan a propósito:
|
||||
# · `kauth` construye con el backend polkit OPCIONAL apagado ⇒ cae al backend "fake" (no bloquea,
|
||||
# pero KAuth::Action no autoriza nada);
|
||||
# · `plasma-workspace` apaga el helper de Región&Idioma con
|
||||
# -DGLIBC_LOCALE_GEN=OFF -DGLIBC_LOCALE_PREGENERATED=ON, que es exactamente lo que evita el
|
||||
# `PolkitQt6-1 REQUIRED`.
|
||||
# Esta receta pone la pieza; ENCENDER esos dos es otra decisión, con su propio radio de re-hash
|
||||
# (plasma-workspace arrastra medio escritorio). Se deja explícito y sin tocar.
|
||||
#
|
||||
# ⚠ QUÉ SIGNIFICA "AUTORIZAR" ACÁ. El demonio no es polkitd sino `arje-polkit-compat`, que responde
|
||||
# `is_authorized = true` a TODO y deja traza. Estas librerías son la INTERFAZ que el escritorio
|
||||
# espera; la política real del fractal está en otro lado (SO_PEERCRED + capability grants). Ver
|
||||
# recipes/arje-polkit-compat.toml y recipes/incoming-kde/polkit.toml.
|
||||
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"
|
||||
# Contrastado contra el .sha256 que publica KDE al lado del tarball.
|
||||
sha256 = "95d8e2cae530c546d9437459deb8a1bea38d572f0f9772cc2860dc143637f256"
|
||||
|
||||
[build]
|
||||
compiler = "zig-cc"
|
||||
target = "x86_64-linux-musl"
|
||||
link = "dynamic"
|
||||
flags = []
|
||||
|
||||
[build.phases]
|
||||
# No lleva el wrapper `.zwrap` de las recetas KF6/Plasma: este proyecto usa cmake pelado
|
||||
# (GNUInstallDirs + CMakePackageConfigHelpers), no KDECompilerSettings, así que nadie inyecta el
|
||||
# `-Wl,--fatal-warnings` que zig ld no entiende.
|
||||
#
|
||||
# -DQT_MAJOR_VERSION=6 es OBLIGATORIO: el default del CMakeLists es "5". Sin él busca Qt5 y falla —
|
||||
# o peor, en una máquina con Qt5 construiría los bindings equivocados con nombres distintos
|
||||
# (polkit-qt5-1 en vez de polkit-qt6-1) y el fallo aparecería recién en el dependiente.
|
||||
# -DCMAKE_INSTALL_LIBDIR=lib para que el `.pc` caiga junto al de polkit, en /usr/lib/pkgconfig.
|
||||
configure = '''
|
||||
set -e
|
||||
cmake -B build -G Ninja -Wno-dev \
|
||||
-DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_PREFIX_PATH=/usr \
|
||||
-DCMAKE_INSTALL_LIBDIR=lib \
|
||||
-DQT_MAJOR_VERSION=6 \
|
||||
-DBUILD_EXAMPLES=OFF -DBUILD_TEST=OFF
|
||||
|
||||
# ── GUARDIÁN CONTRA UNA DEGRADACIÓN SILENCIOSA ─────────────────────────────────────────────────
|
||||
# El CMakeLists sondea polkit con `check_function_exists`, que COMPILA Y ENLAZA. Si ese enlace falla
|
||||
# por cualquier motivo del sandbox —y no por que la función no exista—, cmake no da error: imprime
|
||||
# «You have an older polkit-1 version» y define POLKIT_QT_1_COMPATIBILITY_MODE. El build sella, el
|
||||
# artefacto tiene el tamaño esperado y la autorización queda recortada sin que nadie se entere.
|
||||
# `HAVE_POLKIT_SYSTEM_BUS_NAME_GET_USER_SYNC` es el único de los tres sondeos que llega al header
|
||||
# generado, así que sirve de testigo: polkit 127 tiene esa función, luego un 0 acá significa que el
|
||||
# sondeo no pudo enlazar, no que polkit sea viejo.
|
||||
grep -q "define HAVE_POLKIT_SYSTEM_BUS_NAME_GET_USER_SYNC 1" build/core/polkitqt1-config.h || {
|
||||
echo "los sondeos check_function_exists NO enlazaron contra polkit ⇒ cmake habría activado" >&2
|
||||
echo "POLKIT_QT_1_COMPATIBILITY_MODE en silencio. Abortando." >&2
|
||||
exit 1
|
||||
}
|
||||
'''
|
||||
compile = "cmake --build build"
|
||||
install = '''
|
||||
set -e
|
||||
DESTDIR=/out cmake --install build
|
||||
|
||||
# Verificación por CONTENIDO: las tres librerías (core/gui/agent) con su SONAME, y el `.pc` con el
|
||||
# nombre de Qt6 —no el de Qt5— que es el que buscarán kauth y plasma-workspace.
|
||||
test -f /out/usr/lib/libpolkit-qt6-core-1.so.1
|
||||
test -f /out/usr/lib/libpolkit-qt6-gui-1.so.1
|
||||
test -f /out/usr/lib/libpolkit-qt6-agent-1.so.1
|
||||
test -s /out/usr/lib/pkgconfig/polkit-qt6-1.pc
|
||||
test -s /out/usr/lib/cmake/PolkitQt6-1/PolkitQt6-1Config.cmake
|
||||
'''
|
||||
|
||||
# `polkit` acá es la variante de ESTA cola (libs-only, sin introspección), no la de incoming-gnome:
|
||||
# hammer resuelve hermano→padre y no cruza colas hermanas. glib-shared/pcre2-shared/zlib-shared son
|
||||
# las variantes dinámicas de la cola KDE — el glib canónico es sólo `.a` y no entra en un `.so`.
|
||||
[deps]
|
||||
build = ["cmake", "samurai", "python3", "pkgconf", "qtbase", "dbus", "polkit",
|
||||
"glib-shared", "pcre2-shared", "zlib-shared", "libffi",
|
||||
"mesa", "libdrm", "libxkbcommon", "wayland"]
|
||||
@@ -0,0 +1,67 @@
|
||||
# polkit 127 — variante incoming-kde: SÓLO las librerías, SIN introspección.
|
||||
#
|
||||
# ── POR QUÉ UNA SEGUNDA RECETA Y NO REUSAR recipes/incoming-gnome/polkit.toml ───────────────────
|
||||
# Porque no se puede: hammer resuelve las deps hermano→padre (la cola propia, después `recipes/`) y
|
||||
# NUNCA cruza a una cola hermana. Desde incoming-kde, la de incoming-gnome es invisible. Y aunque se
|
||||
# pudiera, no serviría tal cual: aquella se construye con `-Dintrospection=true` contra
|
||||
# `glib-introspected`, que es la ISLA DINÁMICA del shell de GNOME (gjs importa `gi://Polkit` y por eso
|
||||
# necesita el typelib). KDE no importa nada por gjs: enlaza libpolkit-gobject-1 y libpolkit-agent-1
|
||||
# desde C++ y el typelib le sobra — traerlo obligaría a meter gobject-introspection entero en la cola.
|
||||
#
|
||||
# ⚠ HOMÓNIMA A PROPÓSITO. El artefacto se llama `polkit` igual que el de incoming-gnome, así que en el
|
||||
# store conviven dos `<hash>-polkit` con contenido distinto. Es el mismo patrón deliberado que ya
|
||||
# tienen `dbus` (incoming-kde vs raíz) y `gmp` (incoming-kde vs incoming-cosmic), y tiene el mismo
|
||||
# coste conocido: `store-gc` no puede decidir por NOMBRE cuál de los dos sellados es el vigente, sólo
|
||||
# por hash. No renombrarla a `polkit-kde` es deliberado: el `.pc` que busca polkit-qt-1 es
|
||||
# `polkit-gobject-1`, no el nombre del paquete, y renombrar sólo movería el problema al lector.
|
||||
#
|
||||
# ── LO QUE ESTA RECETA NO TRAE, Y NO ES UN OLVIDO ──────────────────────────────────────────────
|
||||
# `-Dlibs-only=true` deja fuera polkitd, y ahí la opción recorta de verdad: el bloque `if not
|
||||
# libs_only` del meson.build es justo el que pide expat y duktape (el motor JS de las reglas).
|
||||
# El demonio lo pone arje: `recipes/arje-polkit-compat.toml` implementa
|
||||
# `org.freedesktop.PolicyKit1` sobre el bus. Meter polkitd encima sería competirle, no completarlo.
|
||||
# ⚠ Y con ello viaja la postura de seguridad que ese shim declara: responde `is_authorized = true` a
|
||||
# TODO. Quien enlace estas librerías en esta distro está autorizado. Está escrito allá; lo repito acá
|
||||
# porque esta receta es la que pone las librerías en manos del escritorio.
|
||||
#
|
||||
# `-Dsession_tracking=ConsoleKit` NO es una preferencia por ConsoleKit: es la única de las tres
|
||||
# opciones que no exige una C-ABI de logind (`logind` pide libsystemd, `elogind` pide libelogind).
|
||||
# Con libs-only ese camino queda inerte —el seguimiento de sesión lo hace polkitd, que no
|
||||
# construimos—, así que la opción sólo sirve para que meson no salga a buscar una lib que no existe.
|
||||
name = "polkit"
|
||||
version = "127"
|
||||
license = "LGPL-2.0-or-later"
|
||||
|
||||
[source]
|
||||
# El .orig.tar.gz inmutable del pool de Debian. El proyecto se mudó a github.com/polkit-org/polkit y
|
||||
# sus `archive/refs/tags/*.tar.gz` son autogenerados ⇒ no deterministas (lección de cairo/iso-codes).
|
||||
tarball = "http://deb.debian.org/debian/pool/main/p/policykit-1/policykit-1_127.orig.tar.gz"
|
||||
sha256 = "9b7bc16f086479dcc626c575976568ba4a85d34297a750d8ab3d2e57f6d8b988"
|
||||
|
||||
[build]
|
||||
compiler = "zig-cc"
|
||||
target = "x86_64-linux-musl"
|
||||
link = "dynamic"
|
||||
flags = []
|
||||
|
||||
[build.phases]
|
||||
configure = "PKG_CONFIG_PATH=/usr/lib/pkgconfig PYTHONPATH=/usr/lib/python3.12/site-packages meson setup output --prefix=/usr --buildtype=release --wrap-mode=nodownload -Ddefault_library=shared -Dlibs-only=true -Dsession_tracking=ConsoleKit -Dauthfw=shadow -Dintrospection=false -Dexamples=false -Dtests=false -Dman=false -Dgtk_doc=false -Dgettext=false -Dc_args=-Wno-error=date-time"
|
||||
compile = "PYTHONPATH=/usr/lib/python3.12/site-packages ninja -C output"
|
||||
install = '''
|
||||
set -e
|
||||
PYTHONPATH=/usr/lib/python3.12/site-packages DESTDIR=/out meson install -C output --no-rebuild
|
||||
|
||||
# Verificación por CONTENIDO: lo que polkit-qt-1 busca son estos dos `.pc` y sus `.so` versionados.
|
||||
# Un polkit sin libpolkit-agent-1 instala, pesa y deja el fallo para el dependiente.
|
||||
test -s /out/usr/lib/pkgconfig/polkit-gobject-1.pc
|
||||
test -s /out/usr/lib/pkgconfig/polkit-agent-1.pc
|
||||
test -f /out/usr/lib/libpolkit-gobject-1.so.0
|
||||
test -f /out/usr/lib/libpolkit-agent-1.so.0
|
||||
'''
|
||||
|
||||
# glib-shared / pcre2-shared / zlib-shared: las variantes DINÁMICAS de la cola KDE. El glib canónico
|
||||
# es sólo `.a` sin PIC ⇒ no entra en un `.so`. Es la deuda Capa 0 que `glib-shared` existe para saldar
|
||||
# —y su propio encabezado ya nombraba a polkit como uno de los motivos por los que se escribió.
|
||||
[deps]
|
||||
build = ["meson", "samurai", "python3", "pkgconf", "gettext-tiny", "dbus",
|
||||
"glib-shared", "pcre2-shared", "zlib-shared", "libffi"]
|
||||
Reference in New Issue
Block a user