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 815Rust 56Shell 37Markdown 291229 Definitions

licencias: el detector borraba la evidencia que decia registrar

Consulta solo las recetas que HOY no tienen licencia, asi que su cosecha MENGUA
a cada pasada: lo sembrado ayer ya no sale en --faltan. Y reescribia el fichero
entero con la cosecha del dia. Hoy una pasada con CERO detecciones dejo
docs/licencias-detectadas.tsv en 0 filas y se llevo las 610 que documentaban de
donde salia cada licencia ya sembrada.

Salio con exit 0 diciendo «escrito» y «sembrar con». Un vacio que llega hasta el
final afirmando que todo fue bien — la regla 3 de CLAUDE.md, esta vez sobre el
registro de procedencia en vez de sobre un artefacto.

Ahora FUSIONA con lo registrado (la fila nueva gana) y se niega a sobrescribir
si el resultado pierde filas: un registro de evidencia que encoge es un fallo,
no un resultado. Con CON=0 lo dice y no invita a sembrar nada.

Y las cuatro de HashiCorp quedan declaradas: BUSL-1.1.

No es adivinado ni sale de la API —que devuelve NOASSERTION en las cuatro, y por
eso llevaban meses sin licencia—: es el texto del LICENSE del TAG QUE LA RECETA
PINEA, no el de la rama por defecto. consul v1.22.7, vault v1.21.4, nomad
v1.11.3 y packer v1.15.4 abren con «Business Source License 1.1».

⚠ BUSL-1.1 NO es una licencia libre: prohibe el uso en produccion que compita
con el producto de pago, y solo pasa a MPL-2.0 cuatro años despues de cada
version. Cuatro paquetes del catalogo publicable no son redistribuibles como si
fueran libres.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Xd5DComN9Nu47TBpYMBHBn

dba9ec47c5b4fa5918abdb35ac9466f1560ccd4f · by Sergio · (2 months ago) · parent 4996807db · browse the tree at this commit

Semantic delta

No definition changed: this change is text, documentation or data.

5 files · +35 −4

diff --git a/recipes/consul.toml b/recipes/consul.toml
index aeafc1f5..44786db1 100644
--- a/recipes/consul.toml
+++ b/recipes/consul.toml
@@ -4,6 +4,7 @@
 # - las deps van con su nombre NIX; remapealas a las recetas del corpus si difieren.
 name    = "consul"
 version = "1.22.7"
+license = "BUSL-1.1"
 
 [source]
 repo   = "https://github.com/hashicorp/consul"
diff --git a/recipes/nomad.toml b/recipes/nomad.toml
index 4753def1..ef0de16f 100644
--- a/recipes/nomad.toml
+++ b/recipes/nomad.toml
@@ -4,6 +4,7 @@
 # - las deps van con su nombre NIX; remapealas a las recetas del corpus si difieren.
 name    = "nomad"
 version = "1.11.3"
+license = "BUSL-1.1"
 
 [source]
 repo   = "https://github.com/hashicorp/nomad"
diff --git a/recipes/packer.toml b/recipes/packer.toml
index d3d2f295..2113e40c 100644
--- a/recipes/packer.toml
+++ b/recipes/packer.toml
@@ -4,6 +4,7 @@
 # - las deps van con su nombre NIX; remapealas a las recetas del corpus si difieren.
 name    = "packer"
 version = "1.15.4"
+license = "BUSL-1.1"
 
 [source]
 repo   = "https://github.com/hashicorp/packer"
diff --git a/recipes/vault.toml b/recipes/vault.toml
index 122f457c..38c7b30b 100644
--- a/recipes/vault.toml
+++ b/recipes/vault.toml
@@ -4,6 +4,7 @@
 # - las deps van con su nombre NIX; remapealas a las recetas del corpus si difieren.
 name    = "vault"
 version = "1.21.4"
+license = "BUSL-1.1"
 
 [source]
 repo   = "https://github.com/hashicorp/vault"
diff --git a/scripts/licencias-detectar.sh b/scripts/licencias-detectar.sh
index 16d96d42..a96d1500 100755
--- a/scripts/licencias-detectar.sh
+++ b/scripts/licencias-detectar.sh
@@ -84,9 +84,36 @@ SIN=$(wc -l < "$TMP/sin.tsv" 2>/dev/null || echo 0)
   echo "#"
   echo "# Formato: <receta><TAB><SPDX><TAB><owner/repo consultado>"
   echo "# Consultadas $TOT · con SPDX definido $CON · sin SPDX utilizable $SIN"
-  sort "$TMP/con.tsv" 2>/dev/null
-} > "$SALIDA"
+  # ── SE FUSIONA CON LO YA REGISTRADO, NO SE REEMPLAZA ─────────────────────────────────────────
+  # Este script consulta sólo las recetas que HOY no tienen licencia, así que su cosecha MENGUA a
+  # cada pasada: lo que sembró ayer ya no aparece en `--faltan`. Reescribir el fichero con la
+  # cosecha del día borraba la procedencia de todo lo anterior — el 2026-08-20 una pasada con CERO
+  # detecciones dejó el TSV en 0 filas y se llevó por delante las 610 que documentaban de dónde
+  # salía cada licencia ya sembrada. Y salió con éxito, diciendo «escrito» y «sembrar con»: un
+  # vacío que llega hasta el final afirmando que todo fue bien (regla 3 de CLAUDE.md).
+  # El fichero es el REGISTRO DE EVIDENCIA de lo detectado, no el parte de la última pasada.
+  { grep -v '^#' "$SALIDA" 2>/dev/null; cat "$TMP/con.tsv" 2>/dev/null; } \
+    | awk -F'\t' 'NF && !vista[$1]++' | sort
+} > "$TMP/salida.nueva"
+
+# El fichero sólo se reemplaza si el resultado NO PIERDE filas. Un registro de evidencia que encoge
+# es un fallo, no un resultado: se para y se dice, en vez de sobrescribir y avisar de nada.
+ANTES=$(grep -vc '^#' "$SALIDA" 2>/dev/null || echo 0)
+DESPUES=$(grep -vc '^#' "$TMP/salida.nueva" 2>/dev/null || echo 0)
+if [ "$DESPUES" -lt "$ANTES" ]; then
+  echo "!!  ABORTO: la fusión daría $DESPUES filas y $SALIDA tiene $ANTES. No lo sobrescribo."
+  echo "!!  La versión nueva queda en: $TMP/salida.nueva (se borra al salir; copiála si la querés)"
+  cp "$TMP/salida.nueva" "$SALIDA.rechazado" 2>/dev/null && echo "!!  copia en $SALIDA.rechazado"
+  exit 1
+fi
+mv "$TMP/salida.nueva" "$SALIDA"
 
 echo "==> con SPDX definido: $CON · descartadas por indefinido: $SIN"
-echo "==> escrito: $SALIDA"
-echo "==> sembrar con:  TABLA=$SALIDA ./scripts/licencias.sh --sembrar"
+if [ "$CON" -eq 0 ]; then
+  echo "==> NADA NUEVO que sembrar: las $SIN consultadas dan SPDX indefinido (NOASSERTION/other)."
+  echo "==> Ése es el residuo duro: hay que LEER el LICENSE del tag pineado."
+  echo "==> $SALIDA queda intacto con sus $DESPUES filas de evidencia previa."
+else
+  echo "==> escrito: $SALIDA ($DESPUES filas, $CON nuevas)"
+  echo "==> sembrar con:  TABLA=$SALIDA ./scripts/licencias.sh --sembrar"
+fi