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: " 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