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…

⎇ main recipes/noto-fonts-cjk.toml TOML · 69 siq'ikuna · 3.4 KB Ñawpa willay ch'uya

receta: las fuentes del mundo — la distro mostraba cuadraditos a la mayor parte de la humanidad de6d9f754 · Sergio ·

1# noto-fonts-cjk — chino, japonés y coreano. La mitad del hueco de fuentes que `noto-fonts` no tapa.
2#
3# ══ POR QUÉ ES UNA RECETA APARTE Y NO UNA LÍNEA EN `noto-fonts` ════════════════════════════════
4# El CJK de Noto vive en OTRO repositorio (`notofonts/noto-cjk`) y se publica en **`.zip`**. El
5# `fetch` de takana desempaqueta con `tar -x` (`takana-build/src/fetch.rs:685`): autodetecta el
6# compresor por la cabecera, pero no abre zip. Medido antes de escribir esto, no supuesto.
7#
8# ⚠ **Y DE AHÍ SALE EL ÚNICO PUNTO FEO DE ESTA RECETA, que conviene que esté escrito:** la fuente
9# es un **re-hospedaje de Alpine** (`dev.alpinelinux.org/archive/`), que es lo que ellos hicieron
10# por este mismo problema (`community/font-noto-cjk`). Está pineado por sha256, así que no puede
11# cambiar bajo nuestros pies — pero si Alpine lo retira, esta receta no puede reconstruirse desde
12# upstream sin resolver antes el zip.
13#
14# Las dos salidas, por si el día llega, y en orden de preferencia:
15#   1. **Que el `fetch` sepa abrir zip.** Es media docena de líneas en `fetch.rs` y desbloquea a
16#      muchos upstreams, no sólo a éste. Es la cura de raíz.
17#   2. El espejo de fuentes del ADR 0013 ya cubre la desaparición del origen: una vez bajado, el
18#      tarball vive en el espejo y el build no depende de que Alpine siga publicando.
19#
20# ══ QUÉ SE INSTALA: dos de siete, y es una decisión de PESO medida ═════════════════════════════
21# El tarball trae los **siete pesos** de `NotoSansCJK` como `.ttc` (Thin, Light, DemiLight,
22# Regular, Medium, Bold, Black): **298 MB descomprimidos, ~43 MB cada uno**. Un `.ttc` es una
23# colección: ese único fichero cubre chino simplificado, chino tradicional, japonés y coreano a la
24# vez.
25#
26# Se instalan **Regular y Bold** — ~86 MB. Los otros cinco pesos son tipografía fina que ninguna
27# app de la distro pide hoy, y 215 MB en cada imagen de escritorio para tenerlos no se paga solo.
28# Subirlo es una línea el día que algo los pida.
29#
30# ⚠ No hay Serif CJK en este tarball. Es un hueco conocido y menor: sin Sans CJK no se LEE nada;
31# sin Serif CJK se lee todo y un titular sale en palo seco.
32#
33# Data-only: fontconfig escanea `/usr/share/fonts` recursivamente, igual que con `dejavu-fonts`.
34name    = "noto-fonts-cjk"
35version = "0_git20220127"
36license = "OFL-1.1"
37
38[source]
39tarball = "https://dev.alpinelinux.org/archive/font-noto-cjk/font-noto-cjk-0_git20220127.tar.xz"
40sha256  = "fa2551276a47c4a8fa15b451318a3e8e3aedb9b99f4f55028bd024a1f026bd13"
41
42[build]
43compiler = "zig-cc"   # inerte: acá no se compila nada
44target   = "x86_64-linux-musl"
45link     = "dynamic"
46
47[build.phases]
48configure = "true"
49compile   = "true"
50# El guardián exige los DOS: un `.ttc` que no esté deja la mitad del caso sin cubrir y el artefacto
51# igual sellaría —con contenido, reproducible y mintiendo—, que es la figura de la regla 3.
52install = '''
53set -e
54mkdir -p /out/usr/share/fonts/noto-cjk
55n=0
56for peso in Regular Bold; do
57  f="NotoSansCJK-$peso.ttc"
58  if [ ! -f "$f" ]; then
59    echo "noto-fonts-cjk: falta $f en el árbol — ¿cambió el tarball? NO sello un artefacto a medias" >&2
60    exit 1
61  fi
62  cp "$f" /out/usr/share/fonts/noto-cjk/
63  n=$((n + 1))
64done
65echo "noto-fonts-cjk: $n colecciones instaladas (zh-Hans, zh-Hant, ja y ko en cada una)"
66'''
67
68[deps]
69build = []