gioser

sergio/takana

> Una distribución Linux construida con un laboratorio funcional y hermético en el > sótano, y una terminal mutable, clásica y anárquica en el piso de arriba — diseñada > desde el suelo para que una IA programadora entienda, modifique y co…

TOML 1385Shell 121Rust 75Markdown 682106 Definiciones

gnome onda 3: polkit SELLADO (b3:27d93b4c) — sólo librerías, el demonio ya lo pone arje

Primera de la cima. Da polkit-agent-1.pc (lo que gnome-shell enlaza en C) y los typelibs
Polkit-1.0 + PolkitAgent-1.0 (lo que su JS importa: gi://Polkit aparece en polkitAgent.js,
endSessionDialog.js, status/thunderbolt.js y environment.js — verificado, no supuesto).

-Dlibs-only=true y acá la opción SÍ recorta, al revés que en colord: el bloque `if not
libs_only` (:145-159) es justo el que pide expat, duktape y threads. Y no es un recorte a
desgana — la Semilla de arje ya trae compat-polkit implementando el servicio D-Bus; construir
polkitd sería competirle, no completarlo.

-Dsession_tracking=ConsoleKit no es preferencia por ConsoleKit: es la ÚNICA de las tres que no
exige una C-ABI de logind (logind→libsystemd, elogind→libelogind), y son LAS MISMAS funciones
sd-login que traban a mutter (sd_uid_get_display, sd_pidfd_get_session). Con libs-only ese
camino queda inerte. Cuando exista el shim, vuelve a `logind`.

-Dauthfw=shadow (no hay linux-pam). Isla dinámica, como manda la regla del registro único de
GType. Las 3 deps de tooling que faltaban salieron de precedentes ya escritos del frente:
gettext-tiny (msgfmt), py3-setuptools (distutils de g-ir-scanner) y glib-introspected
(Gio-2.0.gir para el scanner).

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

7de2ebd0301a89db3ba5f0f9879eef874ef466d0 · por sergio · (hace 2 meses) · padre 43ec9a693 · ver el árbol en este commit

Delta semántico

Ninguna definición cambió: el cambio es de texto, documentación o datos.

2 archivos · +91 −19

diff --git a/docs/state/build-state-gnome.json b/docs/state/build-state-gnome.json
index 4d819be5..16989aa3 100644
--- a/docs/state/build-state-gnome.json
+++ b/docs/state/build-state-gnome.json
@@ -1,14 +1,14 @@
 {
  "schema": "hammer-build-state/1",
  "totals": {
-  "recipes": 807,
-  "nodes": 807,
-  "sealed": 797,
+  "recipes": 808,
+  "nodes": 808,
+  "sealed": 798,
   "never": 8,
   "debt": 2
  },
  "by_class": {
-  "c": 173,
+  "c": 174,
   "go": 362,
   "gui": 40,
   "kernel": 6,
@@ -26,7 +26,7 @@
    "debt": 2
   },
   "incoming-gnome": {
-   "sealed": 39,
+   "sealed": 40,
    "never": 6
   }
  },
@@ -54,7 +54,7 @@
    "debt": 2
   }
  },
- "sin_perfil": 648,
+ "sin_perfil": 649,
  "orphan_deps": [],
  "topo_ok": true,
  "nodes": {
@@ -2754,7 +2754,7 @@
     "base",
     "cli"
    ],
-   "dependientes_total": 0
+   "dependientes_total": 1
   },
   "ddh": {
    "iname": "ddh",
@@ -4230,7 +4230,7 @@
     "escritorio-gnome",
     "escritorio-kde"
    ],
-   "dependientes_total": 80
+   "dependientes_total": 81
   },
   "gh": {
    "iname": "gh",
@@ -4717,7 +4717,7 @@
    "perfiles": [
     "escritorio-gnome"
    ],
-   "dependientes_total": 23
+   "dependientes_total": 24
   },
   "glib-introspected": {
    "iname": "glib-introspected",
@@ -4745,7 +4745,7 @@
    "perfiles": [
     "escritorio-gnome"
    ],
-   "dependientes_total": 6
+   "dependientes_total": 7
   },
   "glow": {
    "iname": "glow",
@@ -5155,7 +5155,7 @@
    "perfiles": [
     "escritorio-gnome"
    ],
-   "dependientes_total": 11
+   "dependientes_total": 12
   },
   "gobuster": {
    "iname": "gobuster",
@@ -8241,7 +8241,7 @@
     "escritorio-kde",
     "escritorio-mirada"
    ],
-   "dependientes_total": 72
+   "dependientes_total": 73
   },
   "libgcrypt": {
    "iname": "libgcrypt",
@@ -9435,7 +9435,7 @@
     "escritorio-kde",
     "escritorio-mirada"
    ],
-   "dependientes_total": 85
+   "dependientes_total": 86
   },
   "micro": {
    "iname": "micro",
@@ -10732,7 +10732,7 @@
     "escritorio-gnome",
     "escritorio-kde"
    ],
-   "dependientes_total": 58
+   "dependientes_total": 59
   },
   "peco": {
    "iname": "peco",
@@ -10915,7 +10915,7 @@
     "escritorio-kde",
     "escritorio-mirada"
    ],
-   "dependientes_total": 300
+   "dependientes_total": 301
   },
   "plow": {
    "iname": "plow",
@@ -10983,6 +10983,35 @@
    "perfiles": [],
    "dependientes_total": 0
   },
+  "polkit": {
+   "iname": "polkit",
+   "version": "127",
+   "link": "dynamic",
+   "compiler": "zig-cc",
+   "deps": [
+    "meson",
+    "samurai",
+    "python3",
+    "pkgconf",
+    "gettext-tiny",
+    "py3-setuptools",
+    "gobject-introspection",
+    "glib",
+    "glib-introspected",
+    "dbus",
+    "libffi",
+    "pcre2",
+    "zlib"
+   ],
+   "cls": "c",
+   "queue": "incoming-gnome",
+   "hash": "b3:27d93b4c927b99c8afa6b06691ef01f879bb88cd64c95affeaeeb091f65e2050",
+   "state": "sealed",
+   "blocked_by": [],
+   "unblocks": 0,
+   "perfiles": [],
+   "dependientes_total": 0
+  },
   "pop": {
    "iname": "pop",
    "version": "0.2.1",
@@ -11238,7 +11267,7 @@
    "perfiles": [
     "escritorio-gnome"
    ],
-   "dependientes_total": 8
+   "dependientes_total": 9
   },
   "python3": {
    "iname": "python3",
@@ -11262,7 +11291,7 @@
     "escritorio-kde",
     "escritorio-mirada"
    ],
-   "dependientes_total": 243
+   "dependientes_total": 244
   },
   "qrcp": {
    "iname": "qrcp",
@@ -11808,7 +11837,7 @@
     "escritorio-kde",
     "escritorio-mirada"
    ],
-   "dependientes_total": 217
+   "dependientes_total": 218
   },
   "sassc": {
    "iname": "sassc",
@@ -14565,7 +14594,7 @@
     "escritorio-kde",
     "escritorio-mirada"
    ],
-   "dependientes_total": 96
+   "dependientes_total": 97
   },
   "zlib-ng": {
    "iname": "zlib-ng",
diff --git a/recipes/incoming-gnome/polkit.toml b/recipes/incoming-gnome/polkit.toml
new file mode 100644
index 00000000..ed089e47
--- /dev/null
+++ b/recipes/incoming-gnome/polkit.toml
@@ -0,0 +1,43 @@
+# polkit 127 — elevación de privilegios. gnome-shell lo exige por `polkit-agent-1` (meson.build:86)
+# y además lo usa DESDE JS: `gi://Polkit` aparece en js/ui/components/polkitAgent.js,
+# endSessionDialog.js, status/thunderbolt.js y environment.js.
+#
+# SÓLO LAS LIBRERÍAS (-Dlibs-only=true -Dsession_tracking=ConsoleKit -Dauthfw=shadow), y acá la opción sí recorta de verdad (a diferencia de lo que
+# pasó con colord): el bloque `if not libs_only` de meson.build:145-159 es exactamente el que pide
+# expat, duktape (el motor JS de las reglas) y threads. Sin polkitd no hace falta ninguno.
+#
+# Y NO ES UN RECORTE A DESGANO: el demonio ya lo pone arje. La Semilla `session-gnome` tiene un
+# `compat-polkit` (/usr/lib/arje/arje-polkit-compat) que implementa el servicio D-Bus; lo que falta
+# del lado del corpus es la librería que las aplicaciones enlazan y el typelib que el shell importa.
+# Meterse polkitd encima sería competirle a arje, no completarlo.
+#
+# -Dsession_tracking=ConsoleKit -Dauthfw=shadow NO es una preferencia por ConsoleKit: es la única de las tres
+# opciones que NO exige una C-ABI de logind. `logind` pide libsystemd y `elogind` pide libelogind
+# (meson.build:198-211), y son LAS MISMAS funciones sd-login que trabaN a mutter (sd_uid_get_display,
+# sd_pidfd_get_session). Con libs-only ese camino queda inerte: el seguimiento de sesión lo hace
+# polkitd, que no construimos. Cuando exista el shim de sd-login, esto puede volver a `logind`.
+#
+# ISLA DINÁMICA obligatoria: el typelib exige un .so real que gjs pueda dlopen(), y además cualquier
+# cosa que produzca .so y use GObject tiene que enlazar la glib .so — si no, dos registros de GType
+# (la lección que costó los SIGSEGV de colord).
+name    = "polkit"
+version = "127"
+
+[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"
+
+[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=true -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   = "PYTHONPATH=/usr/lib/python3.12/site-packages DESTDIR=/out meson install -C output --no-rebuild"
+
+[deps]
+build = ["meson", "samurai", "python3", "pkgconf", "gettext-tiny", "py3-setuptools", "gobject-introspection", "glib", "glib-introspected", "dbus", "libffi", "pcre2", "zlib"]