tawasuyu

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 1488Shell 182Rust 107Markdown 963619 Definiciones

⎇ 84e3737e10e17927380ed3e232e50cebfdd39123 recipes/incoming-gnome/hunspell-en.toml TOML · 64 líneas · 3.8 KB Historia crudo

gnome-text-editor: el censo decía 2 recetas y son 7, y la mitad es para que el corrector NO sea decorativo 0879d2eaf · Sergio ·

1# hunspell-en — los DICCIONARIOS en inglés (en_US y en_GB) para hunspell. Datos, no código: dos
2# ficheros de texto por idioma, un `.aff` con las reglas morfológicas y un `.dic` con las palabras.
3#
4# ── POR QUÉ UNA RECETA SÓLO PARA DOS FICHEROS ──────────────────────────────────────────────────
5# Porque sin ellos la cadena entera es decorativa. `hunspell` sabe corregir, `enchant` sabe
6# encontrar correctores, `libspelling` sabe pintar subrayados rojos — y con cero diccionarios
7# instalados la lista de idiomas sale vacía, el interruptor de «revisar ortografía» del editor se
8# enciende y no pasa nada. Motor sin combustible es la misma forma que «media cadena de secretos»:
9# todo contesta bien y no hace nada.
10#
11# ── ⚠ LA FUENTE PESA 110 MB PARA INSTALAR ~1 MB, Y ES DELIBERADO ───────────────────────────────
12# El tarball de `LibreOffice/dictionaries` trae los diccionarios de ~90 idiomas (110.623.165 bytes,
13# medido). De ahí se instalan sólo `en_US` y `en_GB`. Se eligió igual, sobre las alternativas:
14#   · SourceForge/wordlist publica `hunspell-en_US-*.zip` (~200 KB) — pero el fetcher de takana
15#     extrae con `tar` y NO sabe de `.zip` (`fetch.rs`: «extracción con tar»). Habría que tocar el
16#     fetcher, que es infraestructura compartida.
17#   · Debian tiene `hunspell-en-us` en tar.gz, pero su versión es de **2007**.
18#   · Los repos por-idioma (wooorm/dictionaries) son otro monolito, sin releases versionadas.
19# El de LibreOffice es el upstream canónico de facto —es de donde salen los de casi todas las
20# distros—, está etiquetado por release y es un tarball. Se paga una vez: el fetcher cachea el
21# tarball y el mirror (ADR 0013) lo guarda una sola vez para todos los idiomas.
22#
23# ⇒ **Añadir otro idioma es UNA LÍNEA en el `install` de abajo**, sin descargar nada nuevo. Ésa es
24# la otra mitad del argumento: la alternativa barata sería barata sólo para el inglés, y esta distro
25# se escribe en castellano. `es` (español), `pt`, `fr`, `de` e `it` están en el mismo tarball.
26# ⚠ NO se añaden hoy a propósito: cada idioma es una decisión de qué lleva la imagen —y de cuántos
27# MB—, y esta receta entra para destrabar el editor de texto, no para decidir el catálogo de
28# idiomas de la distro. Está escrito acá para que esa decisión sea visible y de una línea.
29#
30# ⚠ EL NOMBRE DEL DIRECTORIO IMPORTA: `enchant` busca en `${datadir}/hunspell` —su
31# `ENCHANT_HUNSPELL_DICT_DIR`, que su `configure.ac` fija como `${datadir}/hunspell`—, no en
32# `/usr/share/myspell` ni junto a la librería. Un diccionario instalado en el sitio equivocado es
33# indistinguible de uno no instalado.
34name    = "hunspell-en"
35version = "25.2.5.2"
36license = "LGPL-2.1-or-later AND MPL-1.1 AND BSD-3-Clause"
37
38[source]
39tarball = "https://github.com/LibreOffice/dictionaries/archive/refs/tags/libreoffice-25.2.5.2.tar.gz"
40sha256  = "cb9f172aae04efec384dd7193109b2d99852d825d70ad85d12c69639045c3ba6"
41
42[build]
43compiler = "zig-cc"
44target   = "x86_64-linux-musl"
45link     = "dynamic"
46
47[build.phases]
48configure = "true"
49compile   = "true"
50install   = '''
51set -e
52mkdir -p /out/usr/share/hunspell /out/usr/share/licenses/hunspell-en
53for d in en_US en_GB; do
54  cp -a "en/$d.aff" "en/$d.dic" /out/usr/share/hunspell/
55done
56cp -a en/README* en/LICENSE* en/COPYING* /out/usr/share/licenses/hunspell-en/ 2>/dev/null || true
57# Un diccionario vacío es un diccionario que no está (regla 3 del repo): se comprueba que el .dic
58# traiga palabras de verdad, no sólo que el fichero exista.
59test "$(wc -l < /out/usr/share/hunspell/en_US.dic)" -gt 1000
60test "$(wc -l < /out/usr/share/hunspell/en_GB.dic)" -gt 1000
61'''
62
63[deps]
64build = []