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 1572Shell 203Rust 109Markdown 993728 Definiciones

⎇ 7c794568a963b18b68d747959e6bbd07cf2ebff7 recipes/liblouis.toml TOML · 70 líneas · 4.2 KB Historia crudo

accesibilidad: el BRAILLE, con displays y contracción 1c2c5a6db · Sergio ·

1# liblouis 3.39.0 — el traductor de braille LITERARIO. Es lo que separa «hay un display braille»
2# de «se puede leer cómodamente en braille».
3#
4# ══ QUÉ AÑADE, Y POR QUÉ NO ES UN LUJO ═════════════════════════════════════════════════════════
5# Sin liblouis, `brltty` escribe braille de ORDENADOR: una celda por carácter, uno a uno. Se puede
6# leer, pero ocupa el triple y nadie lee así un texto largo. El braille de verdad es **contraído**:
7# contracciones, signos compuestos y reglas que dependen del idioma y del contexto — «and» es una
8# celda, no tres. Eso son tablas, y liblouis es el motor que las aplica.
9#
10# ⇒ Entra junto con `brltty` y no después, por el mismo criterio que `libime-table` con el chino:
11# publicar el display sin el traductor sería dar la capacidad a medias y llamarla cerrada.
12#
13# ══ LO QUE CUESTA: NADA NUEVO ══════════════════════════════════════════════════════════════════
14# Medido sobre su `configure.ac`: su única dep externa es `yaml`, y va detrás de `--with-yaml`
15# (es para su suite de tests). ⇒ **cero deps nuevas en el corpus.**
16#
17# Se usa el tarball del RELEASE y no el archive del tag: trae `configure` ya generado y el lab no
18# tiene autoconf ni automake. Tercera vez que esa comprobación ahorra escribir un autoconf
19# (`pcaudiolib`, `speech-dispatcher`, ésta).
20#
21# `--enable-ucs4`: los `widechar` de 4 bytes. Con 2 bytes, los caracteres fuera del BMP —y buena
22# parte de las matemáticas y la notación musical braille están ahí— se truncan en silencio.
23name    = "liblouis"
24version = "3.39.0"
25license = "LGPL-2.1-or-later"
26
27[source]
28tarball = "https://github.com/liblouis/liblouis/releases/download/v3.39.0/liblouis-3.39.0.tar.gz"
29sha256  = "629fa8cb0dfd9ad457c5bf47a42f0953b673e62c8ad6b1d03ddc4e2bd20008f1"
30
31[build]
32compiler = "zig-cc"
33target   = "x86_64-linux-musl"
34link     = "dynamic"
35flags    = []
36
37[build.phases]
38configure = '''
39set -e
40[ -f ./configure ] || { echo "liblouis: el tarball no trae ./configure — ¿se cambió por el archive del tag?" >&2; exit 1; }
41./configure --build=$CBUILD --host=$CHOST --prefix=/usr --sysconfdir=/etc \
42  --enable-ucs4 --without-yaml --disable-static
43'''
44compile = 'make -j"$(nproc)"'
45# ⚠ EL GUARDIÁN DE LAS TABLAS ES EL PUNTO DE ESTA RECETA.
46#
47# `libllouis.so` sin sus tablas **carga, enlaza y traduce la identidad**: devolvería el texto sin
48# contraer y sin un solo error. Es exactamente la figura que este catálogo persigue —sellado, con
49# contenido, reproducible y sin la función que promete—, y acá es peor que en otros frentes porque
50# la promesa es que alguien que no ve pueda LEER.
51#
52# El piso de 100 no es un número inventado: upstream distribuye más de mil ficheros de tabla (una o
53# varias por idioma). Con una docena, algo se recortó; con cero, el motor es un `.so` mudo.
54install = '''
55set -e
56make install DESTDIR=/out
57so=$(find /out/usr/lib -name 'liblouis.so*' -type f 2>/dev/null | head -1)
58[ -n "$so" ] || { echo "liblouis: no quedó liblouis.so — brltty la carga dinámicamente" >&2; exit 1; }
59[ -f /out/usr/include/liblouis/liblouis.h ] || { echo "liblouis: falta include/liblouis/liblouis.h" >&2; find /out/usr/include -name 'liblouis*' >&2; exit 1; }
60t=$(find /out/usr/share/liblouis/tables -type f 2>/dev/null | wc -l)
61[ "$t" -gt 100 ] || { echo "liblouis: sólo $t fichero(s) de tabla — esperaba >100; sin tablas traduce la identidad EN SILENCIO" >&2; find /out/usr/share -maxdepth 3 2>/dev/null | head -20 >&2; exit 1; }
62# Y el `.pc`, que es como brltty la encuentra.
63[ -f /out/usr/lib/pkgconfig/liblouis.pc ] || { echo "liblouis: falta liblouis.pc — brltty no la detectaría" >&2; exit 1; }
64# `lou_translate` es la herramienta que permite comprobar a mano que traduce de verdad.
65[ -x /out/usr/bin/lou_translate ] || echo "liblouis: aviso — no quedó lou_translate; no es fatal, pero es la única forma de probar la traducción sin un display" >&2
66echo "liblouis: $(basename "$so") + $t tabla(s) + liblouis.pc"
67'''
68
69[deps]
70build = ["make", "pkgconf", "libtool"]