Commit Graph
4 Commits
Author SHA1 Message Date
sergioandClaude Opus 5 487e155f74 licencias: leer el LICENSE de verdad cuando GitHub dice «no sé» — 1053 de 1141 (92%)
Último recurso mecánico, `scripts/licencias-texto.sh`: para las 60 recetas donde la API de
GitHub devuelve NOASSERTION (el repo TIENE un LICENSE pero licensee no lo reconoce: texto
retocado, encabezado propio, dos licencias en un fichero), baja el texto y lo clasifica acá.
34 identificadas — 16 MIT, 10 Apache-2.0, 7 BSD-2-Clause, 1 BSD-3-Clause.

SÓLO PERMISIVAS, Y NO ES PEREZA. MIT, Apache-2.0, BSD, ISC, MPL-2.0 y Unlicense se
reconocen por frases inconfundibles y NO tienen variantes -only/-or-later ⇒ reconocer el
texto da el SPDX completo.

La familia GPL se deja al humano A PROPÓSITO, y la razón es sutil: el COPYING de la GPL es
IDÉNTICO tanto si el proyecto es «sólo v3» como «v3 o posterior» — lo que las distingue vive
en las cabeceras de los fuentes. Y encima el propio COPYING incluye, en su apéndice «cómo
aplicar la licencia», la frase «or (at your option) any later version», así que buscarla da
SIEMPRE positivo y parecería evidencia siendo texto de plantilla. Es exactamente la trampa
de la regla del `.a` no-PIC, donde grep contaba reubicaciones de .debug_* y mentía.

Comprobado a mano un caso que daba mala espina: el LICENSE de `conftest` empieza
«Conftest — Write tests against your config files / Copyright (C) 2019 …», que es el formato
típico de una cabecera GPL. Leído entero, dice «Licensed under the Apache License, Version
2.0». La clasificación era correcta; la sospecha, barata.

Hashes verificados sobre las 36 tocadas: idénticos.

Quedan 88, ya sin vía mecánica: los repos donde ni la API ni el texto deciden, la familia
GPL sin desambiguar, y tarballs de sitios propios (gmplib, xiph, sr.ht, codeberg…).

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-07 14:06:59 -04:00
sergioandClaude Opus 4.8 ab49c3ed5f utf8proc: configure no-op para no auto-detectar CMake
Sin una `configure` explícita hammer auto-detecta CMake (utf8proc trae CMakeLists.txt además del
Makefile) y genera `cmake -S . -B _build …`. Sellaba en el laptop —cuyo rootfs Alpine trae cmake— y
moría en el worker con `cmake: not found`, porque su rootfs NO lo trae: los dos rootfs no son
iguales (291 binarios vs 279). El build real es el Makefile; la salida no es declarar cmake sino no
pedirlo.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-22 18:03:29 -04:00
sergioandClaude Opus 4.8 2f674b9825 recetas: declarar make/python3 en libevdev y utf8proc (deuda declarable)
`libinput` fallaba con "no suitable Python interpreter found" — un mensaje de AUTOTOOLS, y libinput
es meson puro: el que moría no era libinput sino su dep `libevdev`.

Causa raíz: el rootfs Alpine del worker NO trae python3; el del laptop SÍ. `libevdev` declaraba
sólo `pkgconf` pero su configure de autotools pide un intérprete Python y su compile es `make`, o
sea vivía de prestado del rootfs. Sellaba en el laptop y moría en el worker, arrastrando a libinput.
`utf8proc` es el mismo caso al desnudo: NO declaraba NADA y sus dos fases son `make`.

Es exactamente la deuda declarable del SDD 16 §harkaq: el store ya provee ambos ⇒ una línea en
`[deps]`. Se declara en vez de engordar el rootfs del worker porque así construyen en CUALQUIER
máquina, que es el punto; parchear el worker dejaría la receta igual de mentirosa.

Radio de re-sellado medido: 2 recetas (libevdev, utf8proc). El resto de la cadena afectada
(libinput, fcft, foot, mirada-*) ya estaba sin sellar.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-22 17:49:20 -04:00
sergio f44fa9bcb7 foot-chain: promover tllist/utf8proc/scdoc/fcft/foot a canónicas (índice 748)
Cierra el userland foundational: foot (terminal Wayland) + su cadena de libs → canónicas + repo
firmado. incoming-clib queda VACÍO (todo el base-system promovido). Front (d) COMPLETO a nivel build.
2026-07-11 01:37:51 -04:00