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

⎇ 8b1673d689b25a7854e74067da850d4a8f8a09ea recipes/shared-mime-info.toml TOML · 54 líneas · 3.5 KB Historia crudo

shared-mime-info: cerrar el primer hueco de la frontera 71bdb5ec5 · Sergio ·

1# shared-mime-info 2.4 — la base de datos MIME de freedesktop: qué tipo tiene un fichero y con qué
2# se abre. Sin ella el escritorio no resuelve asociaciones, iconos por tipo ni «abrir con», y GIO cae
3# a adivinar por extensión.
4#
5# POR QUÉ AHORA. Salió de `yupana frontera` (2026-09-08) como HUECO real: `kcoreaddons` la pide y no
6# había receta. Es un hueco de RUNTIME, no de build — KDE sella 1037/1037 sin ella, y por eso no la
7# veía ninguna métrica de deuda. Va al CORPUS y no a `incoming-kde` porque la necesitan las cuatro
8# imágenes de escritorio, y una receta resuelve sibling-first y después el catálogo PADRE, nunca una
9# cola hermana (mismo criterio que `xkeyboard-config`).
10#
11# ⚠ EL TARBALL DE GITLAB NO TRAE EL SUBMÓDULO `xdgmime`, y está bien. `.gitmodules` lo declara y el
12# directorio llega VACÍO, pero `meson.build` lo busca con `required: false` y sólo para la suite de
13# tests (`print-mime-data`, `test-mime-data`, `test-mime`). Con `build-tests=false` no se echa en
14# falta: lo único que hace es imprimir un warning. Comprobado leyendo meson.build:26-47 antes de
15# construir, no después de que fallara.
16#
17# `build-translations=false` por la misma razón que json-glib: las traducciones piden un `msgfmt`
18# completo y el corpus sólo tiene gettext-tiny.
19name    = "shared-mime-info"
20version = "2.4"
21license = "GPL-2.0-or-later"
22
23[source]
24# Archive de GitLab pineado por sha256, como ca-certificates/cairo/libdrm. El pin ES la guarda: si
25# GitLab regenera el tarball con otros bytes, el fetch falla RUIDOSAMENTE en vez de construir otra
26# cosa. El blob va al mirror (ADR 0013) para que un upstream caído no deje la receta irreconstruible.
27tarball = "https://gitlab.freedesktop.org/xdg/shared-mime-info/-/archive/2.4/shared-mime-info-2.4.tar.bz2"
28sha256  = "32dc32ae39ff1c1bf8434dd3b36770b48538a1772bc0298509d034f057005992"
29
30[build]
31compiler = "zig-cc"
32target   = "x86_64-linux-musl"
33link     = "static"
34
35[build.phases]
36# `--prefer-static` NO es redundante con link=static: gobierna con qué se enlazan los EJECUTABLES
37# (acá `update-mime-database`), que es justo lo que se le escapaba a json-glib — declaraba estático
38# y salía dinámico contra `libc.so`, o sea un binario que no corre fuera del sandbox.
39# `update-mimedb=true` (upstream lo trae en false) para que el ARTEFACTO traiga la `mime.cache` ya
40# compilada. Sin ella el paquete son datos crudos: GIO y KDE leen `mime.cache`, no el XML, y alguien
41# tendría que acordarse de correr `update-mime-database` al armar cada imagen. Medido: la caché son
42# ~157 KB y 26 directorios de media-type generados desde el XML que instala esta misma receta.
43configure = "PKG_CONFIG_PATH=/usr/lib/pkgconfig meson setup output --prefix=/usr --buildtype=release --wrap-mode=nodownload --prefer-static -Dbuild-tests=false -Dbuild-translations=false -Dupdate-mimedb=true"
44compile   = "ninja -C output"
45install   = "DESTDIR=/out meson install -C output --no-rebuild"
46
47[deps]
48# `libffi`/`pcre2`/`zlib` son la clausura de pkg-config que declara el `.pc` de glib en
49# `Requires.private` — sin ellas el link estático muere buscando símbolos de glib.
50# `gettext-tiny` por su `msgfmt`: `data/meson.build` usa `i18n.merge_file` para generar
51# `freedesktop.org.xml` desde el `.in`, y eso NO lo gobierna `build-translations` — corre siempre,
52# porque no traduce cadenas de UI sino que arma el fichero de datos. Sin msgfmt el configure muere
53# con «Program 'msgfmt' not found» aunque las traducciones estén apagadas.
54build = ["meson", "samurai", "python3", "pkgconf", "libxml2", "glib", "libffi", "pcre2", "zlib", "gettext-tiny"]