diff --git a/docs/state/build-state-cosmic.json b/docs/state/build-state-cosmic.json index c556bc24..bd18c0bd 100644 --- a/docs/state/build-state-cosmic.json +++ b/docs/state/build-state-cosmic.json @@ -1,12 +1,12 @@ { "schema": "hammer-build-state/1", "totals": { - "recipes": 833, - "nodes": 833, - "sealed": 833 + "recipes": 834, + "nodes": 834, + "sealed": 834 }, "by_class": { - "c": 181, + "c": 182, "go": 362, "gui": 34, "kernel": 6, @@ -15,7 +15,7 @@ "debt_by_class": {}, "by_queue": { "corpus": { - "sealed": 786 + "sealed": 787 }, "incoming-cosmic": { "sealed": 47 @@ -846,7 +846,7 @@ "escritorio-mirada", "escritorio-sway" ], - "dependientes_total": 42 + "dependientes_total": 43 }, "biome": { "iname": "biome", @@ -4766,7 +4766,7 @@ "escritorio-gnome", "escritorio-kde" ], - "dependientes_total": 98 + "dependientes_total": 99 }, "gh": { "iname": "gh", @@ -5204,9 +5204,10 @@ "perfiles": [ "escritorio-cosmic", "escritorio-gnome", + "escritorio-kde", "escritorio-sway" ], - "dependientes_total": 24 + "dependientes_total": 25 }, "glib-shared": { "iname": "glib-shared", @@ -8497,7 +8498,7 @@ "escritorio-mirada", "escritorio-sway" ], - "dependientes_total": 97 + "dependientes_total": 98 }, "libffi-shared": { "iname": "libffi-shared", @@ -9004,9 +9005,10 @@ "unblocks": 0, "perfiles": [ "escritorio-cosmic", - "escritorio-gnome" + "escritorio-gnome", + "escritorio-kde" ], - "dependientes_total": 10 + "dependientes_total": 11 }, "libxml2-shared": { "iname": "libxml2-shared", @@ -9800,7 +9802,7 @@ "escritorio-mirada", "escritorio-sway" ], - "dependientes_total": 115 + "dependientes_total": 116 }, "micro": { "iname": "micro", @@ -11104,7 +11106,7 @@ "escritorio-kde", "escritorio-sway" ], - "dependientes_total": 73 + "dependientes_total": 74 }, "pcre2-shared": { "iname": "pcre2-shared", @@ -11348,7 +11350,7 @@ "escritorio-mirada", "escritorio-sway" ], - "dependientes_total": 372 + "dependientes_total": 373 }, "plow": { "iname": "plow", @@ -11717,7 +11719,7 @@ "escritorio-mirada", "escritorio-sway" ], - "dependientes_total": 281 + "dependientes_total": 282 }, "qrcp": { "iname": "qrcp", @@ -12272,7 +12274,7 @@ "escritorio-mirada", "escritorio-sway" ], - "dependientes_total": 247 + "dependientes_total": 248 }, "sassc": { "iname": "sassc", @@ -12512,6 +12514,35 @@ ], "dependientes_total": 0 }, + "shared-mime-info": { + "iname": "shared-mime-info", + "version": "2.5.1", + "link": "static", + "compiler": "zig-cc", + "deps": [ + "binutils", + "meson", + "samurai", + "python3", + "pkgconf", + "gettext-tiny", + "glib", + "libxml2", + "pcre2", + "libffi", + "zlib" + ], + "cls": "c", + "queue": "corpus", + "hash": "b3:c6513399906bc433b6a9523749ed74b15e78ad3fb88cae9fa4085d6d4cddb109", + "state": "sealed", + "blocked_by": [], + "unblocks": 0, + "perfiles": [ + "escritorio-kde" + ], + "dependientes_total": 0 + }, "shellharden": { "iname": "shellharden", "version": "4.3.1", @@ -15108,7 +15139,7 @@ "escritorio-mirada", "escritorio-sway" ], - "dependientes_total": 96 + "dependientes_total": 97 }, "zlib-ng": { "iname": "zlib-ng", diff --git a/docs/state/build-state-gnome.json b/docs/state/build-state-gnome.json index 0f6f1dd1..7b69640b 100644 --- a/docs/state/build-state-gnome.json +++ b/docs/state/build-state-gnome.json @@ -1,12 +1,12 @@ { "schema": "hammer-build-state/1", "totals": { - "recipes": 858, - "nodes": 858, - "sealed": 858 + "recipes": 859, + "nodes": 859, + "sealed": 859 }, "by_class": { - "c": 220, + "c": 221, "go": 362, "gui": 40, "kernel": 6, @@ -15,7 +15,7 @@ "debt_by_class": {}, "by_queue": { "corpus": { - "sealed": 779 + "sealed": 780 }, "incoming-gnome": { "sealed": 79 @@ -933,7 +933,7 @@ "escritorio-mirada", "escritorio-sway" ], - "dependientes_total": 42 + "dependientes_total": 43 }, "biome": { "iname": "biome", @@ -4601,7 +4601,7 @@ "escritorio-gnome", "escritorio-kde" ], - "dependientes_total": 98 + "dependientes_total": 99 }, "gh": { "iname": "gh", @@ -8793,7 +8793,7 @@ "escritorio-mirada", "escritorio-sway" ], - "dependientes_total": 97 + "dependientes_total": 98 }, "libffi-shared": { "iname": "libffi-shared", @@ -9664,9 +9664,10 @@ "unblocks": 0, "perfiles": [ "escritorio-cosmic", - "escritorio-gnome" + "escritorio-gnome", + "escritorio-kde" ], - "dependientes_total": 10 + "dependientes_total": 11 }, "libxml2-shared": { "iname": "libxml2-shared", @@ -10458,7 +10459,7 @@ "escritorio-mirada", "escritorio-sway" ], - "dependientes_total": 115 + "dependientes_total": 116 }, "micro": { "iname": "micro", @@ -11905,7 +11906,7 @@ "escritorio-kde", "escritorio-sway" ], - "dependientes_total": 73 + "dependientes_total": 74 }, "peco": { "iname": "peco", @@ -12130,7 +12131,7 @@ "escritorio-mirada", "escritorio-sway" ], - "dependientes_total": 372 + "dependientes_total": 373 }, "plow": { "iname": "plow", @@ -12569,7 +12570,7 @@ "escritorio-mirada", "escritorio-sway" ], - "dependientes_total": 281 + "dependientes_total": 282 }, "qrcp": { "iname": "qrcp", @@ -13124,7 +13125,7 @@ "escritorio-mirada", "escritorio-sway" ], - "dependientes_total": 247 + "dependientes_total": 248 }, "sassc": { "iname": "sassc", @@ -13364,6 +13365,35 @@ ], "dependientes_total": 0 }, + "shared-mime-info": { + "iname": "shared-mime-info", + "version": "2.5.1", + "link": "static", + "compiler": "zig-cc", + "deps": [ + "binutils", + "meson", + "samurai", + "python3", + "pkgconf", + "gettext-tiny", + "glib", + "libxml2", + "pcre2", + "libffi", + "zlib" + ], + "cls": "c", + "queue": "corpus", + "hash": "b3:c6513399906bc433b6a9523749ed74b15e78ad3fb88cae9fa4085d6d4cddb109", + "state": "sealed", + "blocked_by": [], + "unblocks": 0, + "perfiles": [ + "escritorio-kde" + ], + "dependientes_total": 0 + }, "shellharden": { "iname": "shellharden", "version": "4.3.1", @@ -16109,7 +16139,7 @@ "escritorio-mirada", "escritorio-sway" ], - "dependientes_total": 96 + "dependientes_total": 97 }, "zlib-ng": { "iname": "zlib-ng", diff --git a/docs/state/build-state-kde.json b/docs/state/build-state-kde.json index 4948b088..7939e6d7 100644 --- a/docs/state/build-state-kde.json +++ b/docs/state/build-state-kde.json @@ -1,27 +1,27 @@ { "schema": "hammer-build-state/1", "totals": { - "recipes": 974, + "recipes": 975, "nodes": 978, - "sealed": 974, - "wanted": 4 + "sealed": 975, + "wanted": 3 }, "by_class": { - "c": 341, + "c": 342, "go": 362, "gui": 36, "kernel": 6, "rust": 229, - "wanted": 4 + "wanted": 3 }, "debt_by_class": {}, "by_queue": { "corpus": { - "sealed": 769 + "sealed": 770 }, "incoming-kde": { "sealed": 205, - "wanted": 4 + "wanted": 3 } }, "by_profile": { @@ -37,8 +37,8 @@ }, "escritorio-kde": { "raices": 11, - "clausura": 163, - "sealed": 163 + "clausura": 165, + "sealed": 165 }, "escritorio-mirada": { "raices": 14, @@ -46,7 +46,7 @@ "sealed": 29 } }, - "sin_perfil": 726, + "sin_perfil": 725, "orphan_deps": [], "topo_ok": true, "nodes": { @@ -961,7 +961,7 @@ "escritorio-mirada", "escritorio-sway" ], - "dependientes_total": 42 + "dependientes_total": 43 }, "biome": { "iname": "biome", @@ -4781,7 +4781,7 @@ "escritorio-gnome", "escritorio-kde" ], - "dependientes_total": 98 + "dependientes_total": 99 }, "gh": { "iname": "gh", @@ -5219,9 +5219,10 @@ "perfiles": [ "escritorio-cosmic", "escritorio-gnome", + "escritorio-kde", "escritorio-sway" ], - "dependientes_total": 24 + "dependientes_total": 25 }, "glib-shared": { "iname": "glib-shared", @@ -12209,7 +12210,7 @@ "escritorio-mirada", "escritorio-sway" ], - "dependientes_total": 97 + "dependientes_total": 98 }, "libffi-shared": { "iname": "libffi-shared", @@ -13927,7 +13928,7 @@ "escritorio-mirada", "escritorio-sway" ], - "dependientes_total": 115 + "dependientes_total": 116 }, "micro": { "iname": "micro", @@ -15466,7 +15467,7 @@ "escritorio-kde", "escritorio-sway" ], - "dependientes_total": 73 + "dependientes_total": 74 }, "pcre2-shared": { "iname": "pcre2-shared", @@ -15770,7 +15771,7 @@ "escritorio-mirada", "escritorio-sway" ], - "dependientes_total": 372 + "dependientes_total": 373 }, "plasma-activities": { "iname": "plasma-activities", @@ -17076,7 +17077,7 @@ "escritorio-mirada", "escritorio-sway" ], - "dependientes_total": 281 + "dependientes_total": 282 }, "qcoro": { "iname": "qcoro", @@ -18192,7 +18193,7 @@ "escritorio-mirada", "escritorio-sway" ], - "dependientes_total": 247 + "dependientes_total": 248 }, "sassc": { "iname": "sassc", @@ -18434,17 +18435,31 @@ }, "shared-mime-info": { "iname": "shared-mime-info", - "version": null, - "link": null, - "compiler": null, - "deps": [], - "cls": "wanted", - "queue": "incoming-kde", - "hash": null, - "state": "wanted", + "version": "2.5.1", + "link": "static", + "compiler": "zig-cc", + "deps": [ + "binutils", + "meson", + "samurai", + "python3", + "pkgconf", + "gettext-tiny", + "glib", + "libxml2", + "pcre2", + "libffi", + "zlib" + ], + "cls": "c", + "queue": "corpus", + "hash": "b3:c6513399906bc433b6a9523749ed74b15e78ad3fb88cae9fa4085d6d4cddb109", + "state": "sealed", "blocked_by": [], "unblocks": 0, - "perfiles": [], + "perfiles": [ + "escritorio-kde" + ], "dependientes_total": 0 }, "shellharden": { @@ -21626,7 +21641,7 @@ "escritorio-mirada", "escritorio-sway" ], - "dependientes_total": 96 + "dependientes_total": 97 }, "zlib-ng": { "iname": "zlib-ng", diff --git a/docs/state/build-state-wlr.json b/docs/state/build-state-wlr.json index 9c7eae79..7bc14f18 100644 --- a/docs/state/build-state-wlr.json +++ b/docs/state/build-state-wlr.json @@ -1,12 +1,12 @@ { "schema": "hammer-build-state/1", "totals": { - "recipes": 801, - "nodes": 801, - "sealed": 801 + "recipes": 802, + "nodes": 802, + "sealed": 802 }, "by_class": { - "c": 172, + "c": 173, "go": 362, "gui": 32, "kernel": 6, @@ -15,7 +15,7 @@ "debt_by_class": {}, "by_queue": { "corpus": { - "sealed": 786 + "sealed": 787 }, "incoming-wlr": { "sealed": 15 @@ -827,7 +827,7 @@ "escritorio-mirada", "escritorio-sway" ], - "dependientes_total": 42 + "dependientes_total": 43 }, "biome": { "iname": "biome", @@ -4277,7 +4277,7 @@ "escritorio-gnome", "escritorio-kde" ], - "dependientes_total": 98 + "dependientes_total": 99 }, "gh": { "iname": "gh", @@ -4715,9 +4715,10 @@ "perfiles": [ "escritorio-cosmic", "escritorio-gnome", + "escritorio-kde", "escritorio-sway" ], - "dependientes_total": 24 + "dependientes_total": 25 }, "glow": { "iname": "glow", @@ -7928,7 +7929,7 @@ "escritorio-mirada", "escritorio-sway" ], - "dependientes_total": 97 + "dependientes_total": 98 }, "libffi-shared": { "iname": "libffi-shared", @@ -8390,9 +8391,10 @@ "unblocks": 0, "perfiles": [ "escritorio-cosmic", - "escritorio-gnome" + "escritorio-gnome", + "escritorio-kde" ], - "dependientes_total": 10 + "dependientes_total": 11 }, "libxml2-shared": { "iname": "libxml2-shared", @@ -9166,7 +9168,7 @@ "escritorio-mirada", "escritorio-sway" ], - "dependientes_total": 115 + "dependientes_total": 116 }, "micro": { "iname": "micro", @@ -10431,7 +10433,7 @@ "escritorio-kde", "escritorio-sway" ], - "dependientes_total": 73 + "dependientes_total": 74 }, "peco": { "iname": "peco", @@ -10623,7 +10625,7 @@ "escritorio-mirada", "escritorio-sway" ], - "dependientes_total": 372 + "dependientes_total": 373 }, "plow": { "iname": "plow", @@ -10922,7 +10924,7 @@ "escritorio-mirada", "escritorio-sway" ], - "dependientes_total": 281 + "dependientes_total": 282 }, "qrcp": { "iname": "qrcp", @@ -11477,7 +11479,7 @@ "escritorio-mirada", "escritorio-sway" ], - "dependientes_total": 247 + "dependientes_total": 248 }, "sassc": { "iname": "sassc", @@ -11717,6 +11719,35 @@ ], "dependientes_total": 0 }, + "shared-mime-info": { + "iname": "shared-mime-info", + "version": "2.5.1", + "link": "static", + "compiler": "zig-cc", + "deps": [ + "binutils", + "meson", + "samurai", + "python3", + "pkgconf", + "gettext-tiny", + "glib", + "libxml2", + "pcre2", + "libffi", + "zlib" + ], + "cls": "c", + "queue": "corpus", + "hash": "b3:c6513399906bc433b6a9523749ed74b15e78ad3fb88cae9fa4085d6d4cddb109", + "state": "sealed", + "blocked_by": [], + "unblocks": 0, + "perfiles": [ + "escritorio-kde" + ], + "dependientes_total": 0 + }, "shellharden": { "iname": "shellharden", "version": "4.3.1", @@ -14525,7 +14556,7 @@ "escritorio-mirada", "escritorio-sway" ], - "dependientes_total": 96 + "dependientes_total": 97 }, "zlib-ng": { "iname": "zlib-ng", diff --git a/docs/state/build-state.json b/docs/state/build-state.json index 6c0ad98d..4bea9b06 100644 --- a/docs/state/build-state.json +++ b/docs/state/build-state.json @@ -1,12 +1,12 @@ { "schema": "hammer-build-state/1", "totals": { - "recipes": 787, - "nodes": 787, - "sealed": 787 + "recipes": 788, + "nodes": 788, + "sealed": 788 }, "by_class": { - "c": 158, + "c": 159, "go": 362, "gui": 32, "kernel": 6, @@ -15,7 +15,7 @@ "debt_by_class": {}, "by_queue": { "corpus": { - "sealed": 787 + "sealed": 788 } }, "by_profile": { @@ -819,7 +819,7 @@ "escritorio-mirada", "escritorio-sway" ], - "dependientes_total": 42 + "dependientes_total": 43 }, "biome": { "iname": "biome", @@ -4211,7 +4211,7 @@ "escritorio-gnome", "escritorio-kde" ], - "dependientes_total": 98 + "dependientes_total": 99 }, "gh": { "iname": "gh", @@ -4649,9 +4649,10 @@ "perfiles": [ "escritorio-cosmic", "escritorio-gnome", + "escritorio-kde", "escritorio-sway" ], - "dependientes_total": 24 + "dependientes_total": 25 }, "glow": { "iname": "glow", @@ -7790,7 +7791,7 @@ "escritorio-mirada", "escritorio-sway" ], - "dependientes_total": 97 + "dependientes_total": 98 }, "libffi-shared": { "iname": "libffi-shared", @@ -8252,9 +8253,10 @@ "unblocks": 0, "perfiles": [ "escritorio-cosmic", - "escritorio-gnome" + "escritorio-gnome", + "escritorio-kde" ], - "dependientes_total": 10 + "dependientes_total": 11 }, "libxml2-shared": { "iname": "libxml2-shared", @@ -9028,7 +9030,7 @@ "escritorio-mirada", "escritorio-sway" ], - "dependientes_total": 115 + "dependientes_total": 116 }, "micro": { "iname": "micro", @@ -10293,7 +10295,7 @@ "escritorio-kde", "escritorio-sway" ], - "dependientes_total": 73 + "dependientes_total": 74 }, "peco": { "iname": "peco", @@ -10485,7 +10487,7 @@ "escritorio-mirada", "escritorio-sway" ], - "dependientes_total": 372 + "dependientes_total": 373 }, "plow": { "iname": "plow", @@ -10784,7 +10786,7 @@ "escritorio-mirada", "escritorio-sway" ], - "dependientes_total": 281 + "dependientes_total": 282 }, "qrcp": { "iname": "qrcp", @@ -11339,7 +11341,7 @@ "escritorio-mirada", "escritorio-sway" ], - "dependientes_total": 247 + "dependientes_total": 248 }, "sassc": { "iname": "sassc", @@ -11579,6 +11581,35 @@ ], "dependientes_total": 0 }, + "shared-mime-info": { + "iname": "shared-mime-info", + "version": "2.5.1", + "link": "static", + "compiler": "zig-cc", + "deps": [ + "binutils", + "meson", + "samurai", + "python3", + "pkgconf", + "gettext-tiny", + "glib", + "libxml2", + "pcre2", + "libffi", + "zlib" + ], + "cls": "c", + "queue": "corpus", + "hash": "b3:c6513399906bc433b6a9523749ed74b15e78ad3fb88cae9fa4085d6d4cddb109", + "state": "sealed", + "blocked_by": [], + "unblocks": 0, + "perfiles": [ + "escritorio-kde" + ], + "dependientes_total": 0 + }, "shellharden": { "iname": "shellharden", "version": "4.3.1", @@ -14059,7 +14090,7 @@ "escritorio-mirada", "escritorio-sway" ], - "dependientes_total": 96 + "dependientes_total": 97 }, "zlib-ng": { "iname": "zlib-ng", diff --git a/recipes/shared-mime-info.toml b/recipes/shared-mime-info.toml new file mode 100644 index 00000000..a46e7f48 --- /dev/null +++ b/recipes/shared-mime-info.toml @@ -0,0 +1,86 @@ +# shared-mime-info 2.5.1 — la BASE DE DATOS MIME de freedesktop: qué tipo de fichero es cada cosa, +# con qué icono se dibuja y con qué app se abre. Es el hueco de RUNTIME nº1 del triaje de la frontera +# (docs/state/frontera-triaje.toml): ninguna receta la pide para CONSTRUIR —por eso el escritorio +# sellaba 163/163 sin ella— pero sin la base el KDE arranca sin tipos de fichero, sin asociaciones y +# con iconos genéricos. Qt6 (QMimeDatabase) y GLib (g_content_type_*) la leen los dos de +# /usr/share/mime; GLib EXIGE el `mime.cache` binario, así que la receta no se conforma con instalar +# el XML: lo compila (ver la fase install). +# +# ── POR QUÉ VIVE EN LA RAÍZ Y NO EN incoming-kde ──────────────────────────────────────────────── +# `targets.toml` la declara bajo `escritorio-kde` porque ahí se detectó el hueco, pero no tiene nada +# de KDE: es freedesktop puro y GNOME/COSMIC la quieren igual (ver el comentario de gdk-pixbuf, que +# hoy la ESQUIVA con -Dgio_sniffing=false). En `recipes/` la ven los cinco grafos; en incoming-kde +# sólo la vería `--kde`. +name = "shared-mime-info" +version = "2.5.1" +license = "GPL-2.0-or-later" + +[source] +# GIT, no tarball, A PROPÓSITO: freedesktop no publica downloads de release para este proyecto —la +# API de releases sólo ofrece los `-/archive/` autogenerados de GitLab, y esos NO son estables byte +# a byte, así que un sha256 pinneado sobre ellos se rompe solo (mismo criterio que wlr-randr). +# El commit es el tag 2.5.1 PELADO (`git rev-parse 2.5.1^{commit}`): en este repo el tag es un +# objeto tag, y el pin tiene que ser el commit (misma trampa que las 4 del mirror, ADR 0013). +repo = "https://gitlab.freedesktop.org/xdg/shared-mime-info.git" +commit = "fd8ab89c20093f1bfba8fa9e302ba584fffd0fd7" + +[build] +compiler = "zig-cc" +target = "x86_64-linux-musl" +link = "static" +# El valor de este paquete son DATOS (384 KB de XML + la caché binaria); el único ejecutable es +# update-mime-database. Nace con el split de debug puesto para que reproduzca desde el día uno: +# es la deriva conocida del corpus (rutas /src dentro de .debug_*, ver why-differs). +strip_debug = true + +[build.phases] +# ── las cuatro perillas, y por qué ────────────────────────────────────────────────────────────── +# -Dbuild-tools=true update-mime-database: es lo que compila el XML a mime.cache. LO QUEREMOS. +# -Dbuild-tests=false el suite pide `xmllint`, que nuestra libxml2 no instala (--without-python, +# binario aparte); y los binarios de test ni se instalan. +# -Dbuild-spec=false la especificación en HTML pide `xmlto` + docbook-xsl: no están en el lab +# y son documentación, no distro. +# -Dbuild-translations=false el corpus no tiene un gettext real (sólo gettext-tiny), así que no hay +# .mo que fusionar. Ver abajo: esto NO se lleva la base de datos puesta. +# -Dupdate-mimedb=false es el DEFAULT y lo dejo explícito: esa opción corre update-mime-database +# dentro de `meson install`, y el propio upstream avisa que no se enciende +# con DESTDIR (apuntaría al /usr real). Lo corremos a mano contra /out. +# +# ⚠ `i18n.merge_file` de data/meson.build es INCONDICIONAL: no lo apaga `-Dbuild-translations=false`, +# porque es el paso que PRODUCE freedesktop.org.xml —el payload entero— y no un extra de i18n. Eso +# obliga a tener un `msgfmt` que entienda `--xml`. El del corpus es el de gettext-tiny, y hace +# exactamente lo correcto acá: copia el `--template` al `-o`. Verificado a mano sobre el template +# real (384036 bytes, copia byte a byte). Y es correcto, no una degradación disimulada: desde 2.x el +# template ya es XML válido —las traducciones se marcan con reglas ITS externas, no con elementos +# `<_comment>`— así que sin catálogos la salida de un msgfmt real ES el template. Comprobado: cero +# ocurrencias de `<_`. La base sale en inglés, que es lo mismo que hace el resto del corpus (nls off). +configure = "PKG_CONFIG_PATH=/usr/lib/pkgconfig PYTHONPATH=/usr/lib/python3.12/site-packages meson setup output --prefix=/usr --buildtype=release --wrap-mode=nodownload --prefer-static -Ddefault_library=static -Dbuild-tools=true -Dbuild-tests=false -Dbuild-spec=false -Dbuild-translations=false -Dupdate-mimedb=false" +compile = "PYTHONPATH=/usr/lib/python3.12/site-packages ninja -C output" +install = ''' +set -e +PYTHONPATH=/usr/lib/python3.12/site-packages DESTDIR=/out meson install -C output --no-rebuild + +# ── el paso que convierte un nombre en un artefacto ───────────────────────────────────────────── +# `meson install` deja el XML fuente en /usr/share/mime/packages/ y NADA MÁS. Los consumidores no +# leen ese XML: leen los índices que genera update-mime-database (mime.cache, globs2, magic, +# aliases, subclasses, treemagic…). Sin este paso el artefacto pasa todas las verificaciones de +# presencia —directorio con contenido, ficheros no vacíos— y el escritorio sigue sin saber qué es un +# .png. Es justo la forma de vacío que la regla 3 del repo describe: llega hasta el final diciendo +# que todo fue bien. +test -x /out/usr/bin/update-mime-database +/out/usr/bin/update-mime-database /out/usr/share/mime + +# Verificación por CONTENIDO, no por presencia: mime.cache vacío o de 0 tipos es indistinguible de +# un éxito si sólo se mira que el fichero exista. +test -s /out/usr/share/mime/mime.cache +test -s /out/usr/share/mime/globs2 +grep -q "^image/png$" /out/usr/share/mime/types +echo " mime: $(wc -l < /out/usr/share/mime/types) tipos, $(wc -l < /out/usr/share/mime/globs2) globs" +''' + +# `binutils` por `strip_debug = true` (el paso de strip del lab usa su `strip --strip-debug`). +# `gettext-tiny` por el msgfmt --xml de arriba: no es opcional, sin él no hay freedesktop.org.xml. +# pcre2/libffi/zlib son el `.pc Requires` de glib y gio, no un capricho: el link es estático y sin +# ellos update-mime-database no cierra (patrón `.pc Requires`→`[deps]`). +[deps] +build = ["binutils", "meson", "samurai", "python3", "pkgconf", "gettext-tiny", "glib", "libxml2", "pcre2", "libffi", "zlib"]