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