Commit Graph
736 Commits
Author SHA1 Message Date
Sergio b1a0b3323e estado: cosecha granja 2026-09-05T16:02:07Z — avance del árbol KDE 2026-09-05 16:02:07 +00:00
Sergio b606bf988b targets.toml: atuq entra en los cuatro escritorios
Hasta ahora atuq estaba sellado y NO estaba en ninguna imagen. Es exactamente la lección que este
fichero ya aprendió con `foot` en el perfil de sway: una receta sellada que ningún perfil declara no
la lleva nadie, y la métrica de clausura no lo puede ver porque mide lo DECLARADO.

Va en los cuatro por el mismo motivo que `mpv` y desde el mismo sitio: vive en el CORPUS, y una
receta resuelve sibling-first y después el catálogo padre, así que las cuatro colas lo alcanzan.

Arrastra la cadena GTK3 en sus variantes `-shared`, y el comentario lo dice: con las estáticas,
libgtk-3 y libgdk-3 se llevaban cada una su copia de pango/cairo y el navegador no llegaba a pintar.

NOTA sobre la métrica: el grafo del hub sólo reporta base/cli/escritorio-mirada — los cuatro
escritorios no aparecen en `by_profile` porque sus raíces viven en las colas. Es previo a este
cambio y no lo introduce; queda anotado porque significa que esta declaración NO se ve todavía en
`build-state.json`.
2026-09-05 15:36:08 +00:00
Sergio eb20e1d91e estado: cosecha granja 2026-09-05T15:33:38Z — avance del árbol KDE 2026-09-05 15:33:38 +00:00
Sergio 6a5408adae estado: cosecha granja 2026-09-05T15:05:08Z — avance del árbol KDE 2026-09-05 15:05:08 +00:00
Sergio 9f79362201 estado: cosecha granja 2026-09-05T14:32:59Z — avance del árbol KDE 2026-09-05 14:32:59 +00:00
Sergio 5db1c7ec89 estado: cosecha granja 2026-09-05T14:02:07Z — avance del árbol KDE 2026-09-05 14:02:07 +00:00
Sergio 4b9f8aa392 estado: cosecha granja 2026-09-05T13:32:14Z — avance del árbol KDE 2026-09-05 13:32:14 +00:00
Sergio 323475a6f1 estado: cosecha granja 2026-09-05T13:02:07Z — avance del árbol KDE 2026-09-05 13:02:07 +00:00
Sergio af0e90ba8d estado: cosecha granja 2026-09-05T12:32:10Z — avance del árbol KDE 2026-09-05 12:32:10 +00:00
Sergio 0bda91a374 estado: cosecha granja 2026-09-05T12:02:20Z — avance del árbol KDE 2026-09-05 12:02:20 +00:00
Sergio 9250f07a56 estado: cosecha granja 2026-09-05T11:01:56Z — avance del árbol KDE 2026-09-05 11:01:56 +00:00
Sergio 14fbb42834 estado: cosecha granja 2026-09-05T10:31:58Z — avance del árbol KDE 2026-09-05 10:31:58 +00:00
Sergio 6d8bb7d901 estado: cosecha granja 2026-09-05T10:02:14Z — avance del árbol KDE 2026-09-05 10:02:14 +00:00
Sergio 901ed3ea02 estado: cosecha granja 2026-09-05T09:32:20Z — avance del árbol KDE 2026-09-05 09:32:20 +00:00
Sergio 9d0ed92b60 estado: cosecha granja 2026-09-05T09:02:08Z — avance del árbol KDE 2026-09-05 09:02:09 +00:00
Sergio 4843756757 estado: cosecha granja 2026-09-05T08:32:09Z — avance del árbol KDE 2026-09-05 08:32:09 +00:00
Sergio fcc99aabfb estado: cosecha granja 2026-09-05T08:02:07Z — avance del árbol KDE 2026-09-05 08:02:07 +00:00
Sergio 03f442de11 estado: cosecha granja 2026-09-05T07:32:10Z — avance del árbol KDE 2026-09-05 07:32:10 +00:00
Sergio e15be575ab estado: cosecha granja 2026-09-05T07:01:53Z — avance del árbol KDE 2026-09-05 07:01:53 +00:00
Sergio 3a0e7e7fbf estado: cosecha granja 2026-09-05T06:32:06Z — avance del árbol KDE 2026-09-05 06:32:06 +00:00
Sergio fb83528fed estado: cosecha granja 2026-09-05T06:02:10Z — avance del árbol KDE 2026-09-05 06:02:10 +00:00
Sergio 8ce3db0053 estado: cosecha granja 2026-09-05T05:32:08Z — avance del árbol KDE 2026-09-05 05:32:08 +00:00
Sergio a4af37e01d estado: cosecha granja 2026-09-05T05:01:58Z — avance del árbol KDE 2026-09-05 05:01:58 +00:00
Sergio f32fcb15d9 estado: cosecha granja 2026-09-05T04:32:12Z — avance del árbol KDE 2026-09-05 04:32:12 +00:00
Sergio 52e4dbe8cc estado: cosecha granja 2026-09-05T04:02:19Z — avance del árbol KDE 2026-09-05 04:02:19 +00:00
Sergio b38e121a6b estado: cosecha granja 2026-09-05T03:32:02Z — avance del árbol KDE 2026-09-05 03:32:02 +00:00
Sergio cb3ecd5a00 firefox pasa a clang+lld con LTO: la puerta de las optimizaciones costaba apk add lld, no una receta de LLVM
El SDD 26 estimó que habilitar PGO/LTO exigía una receta `llvm-toolchain` (clang+lld+libc++ desde
fuente). ERA CARO DE MÁS. Al mirar el lab en vez de suponerlo:

- `.dev-fs/alpine` YA TRAE clang22 + llvm22 22.1.8 — la MISMA major que usa el APKBUILD de Alpine
  para este mismo Firefox (`_llvmver=22`).
- `Compiler::Clang` YA EXISTE en hammer, cableado de punta a punta: `parse_compiler` lo acepta y
  `hammer-build/src/lib.rs` pone CC=clang, CXX=clang++ y AR=llvm-ar. NINGUNA receta lo usaba.
- Lo único que faltaba era `ld.lld`. `apk add lld` ⇒ lld22 22.1.8, dos paquetes, cero upgrades.

CON ESO CAEN LOS TRES MUROS QUE OBLIGABAN A gcc, sin perder lo que gcc daba: el sondeo de linker se
satisface con `--enable-linker=lld`, el `ar` lo pone hammer solo, y el `NEEDED` de la stdlib de C++
existe porque clang++ de Alpine usa la libstdc++ COMPARTIDA — la prueba no es teórica, Alpine
construye este Firefox con clang22 y sin libcxx en sus makedepends.

LA HUELLA DEL LAB NO SE MOVIÓ, Y SE MIDIÓ ANTES DE TOCAR NADA. `lld` no casa ningún prefijo de
TOOLCHAIN_PREFIXES (hammer-core/src/lab.rs), así que los 43 paquetes que entran en `hash_inputs`
salieron idénticos ⇒ los 837 artefactos sellados quedan intactos. Eso es lo que hace barato el
cambio HOY, y a la vez es un agujero escrito en los dos sitios: la versión de lld no es parte de la
identidad del artefacto, y sólo expone a las recetas `compiler="clang"`, que hoy es una. Meter
"lld" en la lista de prefijos es lo correcto y cuesta re-hashear el corpus entero: próxima campaña.

En el mozconfig entran, además de lld: `--enable-lto=cross`, `--enable-packed-relative-relocs` y
`--with-unsigned-addon-scopes=app,system`. El último no es cosmético: sin él un Firefox de release
rechaza las extensiones que la distro deja en distribution/extensions/, así que la capacidad de atuq
de shipear su propio `sct` se decide ACÁ, en la base, y no en el overlay del derivado.

PGO no entra en esta pasada y el porqué queda escrito en la receta: el perfil se junta corriendo el
navegador (Alpine y Arch usan xvfb-run; nosotros no tenemos X11 ⇒ sway headless) y el profdata NO es
determinista, así que tiene que sellarse como artefacto propio y consumirse por hash.

ThinLTO se capa con la misma cuenta que -j y por la misma razón que ella no es un literal: un número
fijo ataría el ArtifactHash a la RAM de quien escribió la receta.

Nuevo ArtifactHash: b3:6f2a3b2f6db4452ed0d2d3f4e2ff7cd6562a86878d4360653859720be1c3d94d
(el firefox 154.0 sellado con gcc queda SUPERADO, no perdido).
2026-09-05 03:13:38 +00:00
Sergio 1a3b62b1f6 estado: cosecha granja 2026-09-05T02:33:35Z — avance del árbol KDE 2026-09-05 02:33:35 +00:00
Sergio ad01dea4c2 estado: cosecha granja 2026-09-05T02:02:02Z — avance del árbol KDE 2026-09-05 02:02:02 +00:00
Sergio fb917cbb79 estado: cosecha granja 2026-09-05T01:31:49Z — avance del árbol KDE 2026-09-05 01:31:49 +00:00
Sergio 067631fa52 estado: cosecha granja 2026-09-05T01:02:18Z — avance del árbol KDE 2026-09-05 01:02:18 +00:00
Sergio db0767b3cc estado: cosecha granja 2026-09-05T00:31:44Z — avance del árbol KDE 2026-09-05 00:31:44 +00:00
Sergio cd6181df94 estado: cosecha granja 2026-09-05T00:01:57Z — avance del árbol KDE 2026-09-05 00:01:57 +00:00
Sergio 6673a5b34c estado: cosecha granja 2026-09-04T23:32:09Z — avance del árbol KDE 2026-09-04 23:32:09 +00:00
Sergio 7083a0edfc estado: cosecha granja 2026-09-04T23:00:02Z — avance del árbol KDE 2026-09-04 23:00:02 +00:00
Sergio 688ea27f40 estado: cosecha granja 2026-09-04T22:31:53Z — avance del árbol KDE 2026-09-04 22:31:53 +00:00
Sergio caeee204a6 estado: cosecha granja 2026-09-04T22:02:03Z — avance del árbol KDE 2026-09-04 22:02:03 +00:00
Sergio 5776f63aed estado: cosecha granja 2026-09-04T21:31:52Z — avance del árbol KDE 2026-09-04 21:31:52 +00:00
Sergio e1f081b06b estado: cosecha granja 2026-09-04T20:32:59Z — avance del árbol KDE 2026-09-04 20:32:59 +00:00
Sergio e7e008e126 estado: cosecha granja 2026-09-04T20:03:06Z — avance del árbol KDE 2026-09-04 20:03:06 +00:00
Sergio 4ec49e9962 estado: cosecha granja 2026-09-04T19:33:12Z — avance del árbol KDE 2026-09-04 19:33:12 +00:00
Sergio 9f908090d5 estado: cosecha granja 2026-09-04T19:03:00Z — avance del árbol KDE 2026-09-04 19:03:00 +00:00
Sergio 8c15c2eaf4 estado: cosecha granja 2026-09-04T18:32:49Z — avance del árbol KDE 2026-09-04 18:32:49 +00:00
Sergio 188a45b1d5 estado: cosecha granja 2026-09-04T18:05:16Z — avance del árbol KDE 2026-09-04 18:05:16 +00:00
Sergio dc8aa7367e plataforma Gecko: cbindgen sube al corpus
Genera las cabeceras C++ de los componentes Rust de Gecko (Stylo, WebRender) y el
build de Firefox la exige. Mudanza gratis: [deps] vacío ⇒ no hay cierre que
cambiar, mismo ArtifactHash (b3:bd2e6ca6) en las dos rutas, radio 0.
2026-09-04 17:54:17 +00:00
Sergio 027d3a25ef plataforma Gecko: clang18 sube al corpus — bindgen necesita libclang
El build de Firefox corre bindgen sobre los headers de C++ y bindgen carga
libclang.so en RUNTIME. La receta ya existía —nació en incoming-cosmic por un
crate *-sys del portal, y su commit de origen dice «sólo libclang.so»— pero desde
el corpus no se alcanza una cola hermana. Sin esto no hay Firefox, ni Waterfox,
ni Zen.

Mudanza medida ANTES, no después: sus cinco deps (cmake, samurai, python3,
pkgconf, llvm18) viven sólo en el corpus, así que incoming-cosmic ya las resolvía
por caída al padre y el cierre no cambia. hammer hash dio el MISMO ArtifactHash
(b3:25d95279) en las dos rutas.
Verificado que xdg-desktop-portal-cosmic —su único dependiente— sigue SELLADO y
que la cola cosmic queda en 36/36 sin deuda: cero rebuilds.

Se MUEVE y no se copia: dos ficheros para un artefacto es el cuadro de las dos
glib esperando a que uno de los dos derive.
2026-09-04 17:53:03 +00:00
Sergio e684c26e52 targets: obs-studio entra al perfil escritorio-kde (274/274)
Una receta sellada que ningún perfil declara NO ESTÁ EN NINGUNA IMAGEN, y la
métrica de clausura no lo puede ver porque mide lo declarado — la lección que este
fichero ya aprendió con foot en sway y con las 22 apps KDE. OBS estaba sellado y
en ninguna imagen.

Entra SÓLO en escritorio-kde, y no por preferencia: su frontend es Qt6 y las 13
recetas Qt viven sólo en esa cola. Verificado con `yupana perfiles obs-studio`.
El perfil pasa de 263/263 a 274/274 — arrastra 11 nodos a la clausura, todos ya
sellados, y el grafo sigue cerrando.

De paso: el aviso de los «tres huecos de mpv» estaba repetido en los CUATRO
perfiles de escritorio y hoy quedó vencido en los cuatro (ALSA/PipeWire, Lua/OSC
y vaapi están cerrados). Corregidos los cuatro; el assert de count==1 fue lo que
destapó que no era uno solo.
2026-09-04 17:42:47 +00:00
Sergio 461f677368 estado: cosecha granja 2026-09-04T17:32:11Z — avance del árbol KDE 2026-09-04 17:32:11 +00:00
Sergio 554c59b1b5 estado: corpus 831/831 y KDE 1010/1010 tras OBS y sus 7 deps nuevas
Entran libglvnd, uthash, nlohmann-json, jansson, x264, simde, pciutils-shared y
mbedtls al corpus, y obs-studio a incoming-kde. Cero en deuda en los 7 perfiles.
2026-09-04 17:18:18 +00:00
Sergio 3f84cd761b estado: cosecha granja 2026-09-04T17:02:11Z — avance del árbol KDE 2026-09-04 17:02:11 +00:00