desktop-file-utils: cerrar el «abrir con»

update-desktop-database construye la caché MIME→APLICACIÓN (mimeinfo.cache). Comprobado antes
de escribir la receta: NINGÚN artefacto del store lo traía, así que esa caché no se construía
nunca. Con shared-mime-info (cerrado ayer) el escritorio sabe QUÉ TIPO es un fichero; sin ésta
seguía sin saber CON QUÉ abrirlo — el menú «abrir con» vacío y sin aplicación por defecto.

Misma familia que aquel hueco: falla en RUNTIME, no en build. gnome-shell, libadwaita y mutter
lo piden en nixpkgs y acá construyen tan contentos sin él, así que ninguna métrica de deuda
puede verlo.

Prueba del consumidor con 14 .desktop REALES de okular/dolphin/kate/konsole/spectacle:
  mimeinfo.cache de 2.368 bytes · 47 asociaciones
  application/pdf=okularApplication_pdf.desktop
  text/plain=okularApplication_txt.desktop;org.kde.kate.desktop;org.kde.kwrite.desktop
Los 4 binarios estáticos con 0 NEEDED (--prefer-static desde el principio, no tras el error).
REPRODUCE bit a bit · tarball en el mirror.

Va como RAÍZ en los CUATRO escritorios y no en , y la razón importa: escritorio-kde y
escritorio-gnome comparten CERO raíces con base y bash NO está en su clausura. escritorio-mirada
documenta que no hereda «a propósito, es slim»; esos dos no dicen nada, y sway sí hereda cli.
Declararla en los cuatro funciona con cualquiera de las dos lecturas. La asimetría en sí queda
para decidir aparte: hoy «KDE 302/302» significa «la capa de escritorio está completa», no «la
imagen está completa».

Triaje: huecos 2 → 1 (queda ). Clausuras 303/182/160/205, todas selladas.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014QPJteswQvP1L7zSBrQQe2
This commit is contained in:
Sergio
2026-09-09 13:40:46 +00:00
co-authored by Claude Opus 5
parent d6a43465c9
commit 248fa8e991
9 changed files with 293 additions and 78 deletions
+46 -16
View File
@@ -1,14 +1,14 @@
{
"schema": "hammer-build-state/1",
"totals": {
"recipes": 893,
"nodes": 895,
"sealed": 893,
"recipes": 894,
"nodes": 896,
"sealed": 894,
"ajeno": 2
},
"by_class": {
"ajeno": 2,
"c": 231,
"c": 232,
"go": 362,
"gui": 41,
"kernel": 6,
@@ -17,7 +17,7 @@
"debt_by_class": {},
"by_queue": {
"corpus": {
"sealed": 865,
"sealed": 866,
"ajeno": 2
},
"incoming-cosmic": {
@@ -36,9 +36,9 @@
"sealed": 81
},
"escritorio-cosmic": {
"raices": 42,
"clausura": 159,
"sealed": 159
"raices": 43,
"clausura": 160,
"sealed": 160
},
"escritorio-mirada": {
"raices": 17,
@@ -3698,6 +3698,36 @@
"perfiles": [],
"dependientes_total": 0
},
"desktop-file-utils": {
"iname": "desktop-file-utils",
"version": "0.28",
"link": "static",
"compiler": "zig-cc",
"deps": [
"glib",
"libffi",
"meson",
"pcre2",
"pkgconf",
"python3",
"samurai",
"zlib"
],
"cls": "c",
"queue": "corpus",
"foreign": false,
"hash": "b3:590be503bc92262cee563d97c675022979e6c98fd205f2344129102c5cae43ec",
"state": "sealed",
"blocked_by": [],
"unblocks": 0,
"perfiles": [
"escritorio-cosmic",
"escritorio-gnome",
"escritorio-kde",
"escritorio-sway"
],
"dependientes_total": 0
},
"devspace": {
"iname": "devspace",
"version": "6.3.21",
@@ -6044,7 +6074,7 @@
"escritorio-kde",
"escritorio-sway"
],
"dependientes_total": 32
"dependientes_total": 33
},
"glib-shared": {
"iname": "glib-shared",
@@ -9753,7 +9783,7 @@
"escritorio-mirada",
"escritorio-sway"
],
"dependientes_total": 108
"dependientes_total": 109
},
"libffi-shared": {
"iname": "libffi-shared",
@@ -11369,7 +11399,7 @@
"escritorio-mirada",
"escritorio-sway"
],
"dependientes_total": 123
"dependientes_total": 124
},
"micro": {
"iname": "micro",
@@ -12965,7 +12995,7 @@
"escritorio-kde",
"escritorio-sway"
],
"dependientes_total": 80
"dependientes_total": 81
},
"pcre2-shared": {
"iname": "pcre2-shared",
@@ -13227,7 +13257,7 @@
"escritorio-mirada",
"escritorio-sway"
],
"dependientes_total": 394
"dependientes_total": 395
},
"plow": {
"iname": "plow",
@@ -13696,7 +13726,7 @@
"escritorio-mirada",
"escritorio-sway"
],
"dependientes_total": 313
"dependientes_total": 314
},
"qrcp": {
"iname": "qrcp",
@@ -14311,7 +14341,7 @@
"escritorio-mirada",
"escritorio-sway"
],
"dependientes_total": 265
"dependientes_total": 266
},
"sassc": {
"iname": "sassc",
@@ -17899,7 +17929,7 @@
"escritorio-mirada",
"escritorio-sway"
],
"dependientes_total": 112
"dependientes_total": 113
},
"zlib-ng": {
"iname": "zlib-ng",
+45 -15
View File
@@ -1,14 +1,14 @@
{
"schema": "hammer-build-state/1",
"totals": {
"recipes": 919,
"nodes": 921,
"sealed": 919,
"recipes": 920,
"nodes": 922,
"sealed": 920,
"ajeno": 2
},
"by_class": {
"ajeno": 2,
"c": 271,
"c": 272,
"go": 362,
"gui": 47,
"kernel": 6,
@@ -17,7 +17,7 @@
"debt_by_class": {},
"by_queue": {
"corpus": {
"sealed": 856,
"sealed": 857,
"ajeno": 2
},
"incoming-gnome": {
@@ -36,9 +36,9 @@
"sealed": 80
},
"escritorio-gnome": {
"raices": 23,
"clausura": 181,
"sealed": 181
"raices": 24,
"clausura": 182,
"sealed": 182
},
"escritorio-mirada": {
"raices": 17,
@@ -3363,6 +3363,36 @@
"perfiles": [],
"dependientes_total": 0
},
"desktop-file-utils": {
"iname": "desktop-file-utils",
"version": "0.28",
"link": "static",
"compiler": "zig-cc",
"deps": [
"glib",
"libffi",
"meson",
"pcre2",
"pkgconf",
"python3",
"samurai",
"zlib"
],
"cls": "c",
"queue": "corpus",
"foreign": false,
"hash": "b3:590be503bc92262cee563d97c675022979e6c98fd205f2344129102c5cae43ec",
"state": "sealed",
"blocked_by": [],
"unblocks": 0,
"perfiles": [
"escritorio-cosmic",
"escritorio-gnome",
"escritorio-kde",
"escritorio-sway"
],
"dependientes_total": 0
},
"devspace": {
"iname": "devspace",
"version": "6.3.21",
@@ -10035,7 +10065,7 @@
"escritorio-mirada",
"escritorio-sway"
],
"dependientes_total": 108
"dependientes_total": 109
},
"libffi-shared": {
"iname": "libffi-shared",
@@ -12029,7 +12059,7 @@
"escritorio-mirada",
"escritorio-sway"
],
"dependientes_total": 123
"dependientes_total": 124
},
"micro": {
"iname": "micro",
@@ -13794,7 +13824,7 @@
"escritorio-kde",
"escritorio-sway"
],
"dependientes_total": 80
"dependientes_total": 81
},
"pcre2-shared": {
"iname": "pcre2-shared",
@@ -14056,7 +14086,7 @@
"escritorio-mirada",
"escritorio-sway"
],
"dependientes_total": 394
"dependientes_total": 395
},
"plow": {
"iname": "plow",
@@ -14600,7 +14630,7 @@
"escritorio-mirada",
"escritorio-sway"
],
"dependientes_total": 313
"dependientes_total": 314
},
"qrcp": {
"iname": "qrcp",
@@ -15215,7 +15245,7 @@
"escritorio-mirada",
"escritorio-sway"
],
"dependientes_total": 265
"dependientes_total": 266
},
"sassc": {
"iname": "sassc",
@@ -18937,7 +18967,7 @@
"escritorio-mirada",
"escritorio-sway"
],
"dependientes_total": 112
"dependientes_total": 113
},
"zlib-ng": {
"iname": "zlib-ng",
+46 -16
View File
@@ -1,14 +1,14 @@
{
"schema": "hammer-build-state/1",
"totals": {
"recipes": 1044,
"nodes": 1045,
"sealed": 1044,
"recipes": 1045,
"nodes": 1046,
"sealed": 1045,
"ajeno": 1
},
"by_class": {
"ajeno": 1,
"c": 398,
"c": 399,
"go": 362,
"gui": 45,
"kernel": 6,
@@ -17,7 +17,7 @@
"debt_by_class": {},
"by_queue": {
"corpus": {
"sealed": 851,
"sealed": 852,
"ajeno": 1
},
"incoming-kde": {
@@ -36,9 +36,9 @@
"sealed": 76
},
"escritorio-kde": {
"raices": 47,
"clausura": 302,
"sealed": 302
"raices": 48,
"clausura": 303,
"sealed": 303
},
"escritorio-mirada": {
"raices": 17,
@@ -3479,6 +3479,36 @@
"perfiles": [],
"dependientes_total": 0
},
"desktop-file-utils": {
"iname": "desktop-file-utils",
"version": "0.28",
"link": "static",
"compiler": "zig-cc",
"deps": [
"glib",
"libffi",
"meson",
"pcre2",
"pkgconf",
"python3",
"samurai",
"zlib"
],
"cls": "c",
"queue": "corpus",
"foreign": false,
"hash": "b3:590be503bc92262cee563d97c675022979e6c98fd205f2344129102c5cae43ec",
"state": "sealed",
"blocked_by": [],
"unblocks": 0,
"perfiles": [
"escritorio-cosmic",
"escritorio-gnome",
"escritorio-kde",
"escritorio-sway"
],
"dependientes_total": 0
},
"devspace": {
"iname": "devspace",
"version": "6.3.21",
@@ -6097,7 +6127,7 @@
"escritorio-kde",
"escritorio-sway"
],
"dependientes_total": 32
"dependientes_total": 33
},
"glib-shared": {
"iname": "glib-shared",
@@ -13690,7 +13720,7 @@
"escritorio-mirada",
"escritorio-sway"
],
"dependientes_total": 108
"dependientes_total": 109
},
"libffi-shared": {
"iname": "libffi-shared",
@@ -15820,7 +15850,7 @@
"escritorio-mirada",
"escritorio-sway"
],
"dependientes_total": 123
"dependientes_total": 124
},
"micro": {
"iname": "micro",
@@ -17731,7 +17761,7 @@
"escritorio-kde",
"escritorio-sway"
],
"dependientes_total": 80
"dependientes_total": 81
},
"pcre2-shared": {
"iname": "pcre2-shared",
@@ -18061,7 +18091,7 @@
"escritorio-mirada",
"escritorio-sway"
],
"dependientes_total": 394
"dependientes_total": 395
},
"plasma-activities": {
"iname": "plasma-activities",
@@ -19542,7 +19572,7 @@
"escritorio-mirada",
"escritorio-sway"
],
"dependientes_total": 313
"dependientes_total": 314
},
"qcoro": {
"iname": "qcoro",
@@ -20767,7 +20797,7 @@
"escritorio-mirada",
"escritorio-sway"
],
"dependientes_total": 265
"dependientes_total": 266
},
"sassc": {
"iname": "sassc",
@@ -24971,7 +25001,7 @@
"escritorio-mirada",
"escritorio-sway"
],
"dependientes_total": 112
"dependientes_total": 113
},
"zlib-ng": {
"iname": "zlib-ng",
+46 -16
View File
@@ -1,14 +1,14 @@
{
"schema": "hammer-build-state/1",
"totals": {
"recipes": 878,
"nodes": 880,
"sealed": 878,
"recipes": 879,
"nodes": 881,
"sealed": 879,
"ajeno": 2
},
"by_class": {
"ajeno": 2,
"c": 236,
"c": 237,
"go": 362,
"gui": 41,
"kernel": 6,
@@ -17,7 +17,7 @@
"debt_by_class": {},
"by_queue": {
"corpus": {
"sealed": 866,
"sealed": 867,
"ajeno": 2
},
"incoming-wlr": {
@@ -41,9 +41,9 @@
"sealed": 41
},
"escritorio-sway": {
"raices": 75,
"clausura": 204,
"sealed": 204
"raices": 76,
"clausura": 205,
"sealed": 205
}
},
"sin_perfil": 648,
@@ -3235,6 +3235,36 @@
"perfiles": [],
"dependientes_total": 0
},
"desktop-file-utils": {
"iname": "desktop-file-utils",
"version": "0.28",
"link": "static",
"compiler": "zig-cc",
"deps": [
"glib",
"libffi",
"meson",
"pcre2",
"pkgconf",
"python3",
"samurai",
"zlib"
],
"cls": "c",
"queue": "corpus",
"foreign": false,
"hash": "b3:590be503bc92262cee563d97c675022979e6c98fd205f2344129102c5cae43ec",
"state": "sealed",
"blocked_by": [],
"unblocks": 0,
"perfiles": [
"escritorio-cosmic",
"escritorio-gnome",
"escritorio-kde",
"escritorio-sway"
],
"dependientes_total": 0
},
"devspace": {
"iname": "devspace",
"version": "6.3.21",
@@ -5659,7 +5689,7 @@
"escritorio-kde",
"escritorio-sway"
],
"dependientes_total": 32
"dependientes_total": 33
},
"glib-shared": {
"iname": "glib-shared",
@@ -9402,7 +9432,7 @@
"escritorio-mirada",
"escritorio-sway"
],
"dependientes_total": 108
"dependientes_total": 109
},
"libffi-shared": {
"iname": "libffi-shared",
@@ -10992,7 +11022,7 @@
"escritorio-mirada",
"escritorio-sway"
],
"dependientes_total": 123
"dependientes_total": 124
},
"micro": {
"iname": "micro",
@@ -12591,7 +12621,7 @@
"escritorio-kde",
"escritorio-sway"
],
"dependientes_total": 80
"dependientes_total": 81
},
"pcre2-shared": {
"iname": "pcre2-shared",
@@ -12853,7 +12883,7 @@
"escritorio-mirada",
"escritorio-sway"
],
"dependientes_total": 394
"dependientes_total": 395
},
"plow": {
"iname": "plow",
@@ -13278,7 +13308,7 @@
"escritorio-mirada",
"escritorio-sway"
],
"dependientes_total": 313
"dependientes_total": 314
},
"qrcp": {
"iname": "qrcp",
@@ -13893,7 +13923,7 @@
"escritorio-mirada",
"escritorio-sway"
],
"dependientes_total": 265
"dependientes_total": 266
},
"sassc": {
"iname": "sassc",
@@ -17698,7 +17728,7 @@
"escritorio-mirada",
"escritorio-sway"
],
"dependientes_total": 112
"dependientes_total": 113
},
"zlib-ng": {
"iname": "zlib-ng",
+39 -14
View File
@@ -1,14 +1,14 @@
{
"schema": "hammer-build-state/1",
"totals": {
"recipes": 867,
"nodes": 869,
"sealed": 867,
"recipes": 868,
"nodes": 870,
"sealed": 868,
"ajeno": 2
},
"by_class": {
"ajeno": 2,
"c": 225,
"c": 226,
"go": 362,
"gui": 41,
"kernel": 6,
@@ -17,7 +17,7 @@
"debt_by_class": {},
"by_queue": {
"corpus": {
"sealed": 867,
"sealed": 868,
"ajeno": 2
}
},
@@ -38,7 +38,7 @@
"sealed": 41
}
},
"sin_perfil": 648,
"sin_perfil": 649,
"orphan_deps": [],
"topo_ok": true,
"nodes": {
@@ -3227,6 +3227,31 @@
"perfiles": [],
"dependientes_total": 0
},
"desktop-file-utils": {
"iname": "desktop-file-utils",
"version": "0.28",
"link": "static",
"compiler": "zig-cc",
"deps": [
"glib",
"libffi",
"meson",
"pcre2",
"pkgconf",
"python3",
"samurai",
"zlib"
],
"cls": "c",
"queue": "corpus",
"foreign": false,
"hash": "b3:590be503bc92262cee563d97c675022979e6c98fd205f2344129102c5cae43ec",
"state": "sealed",
"blocked_by": [],
"unblocks": 0,
"perfiles": [],
"dependientes_total": 0
},
"devspace": {
"iname": "devspace",
"version": "6.3.21",
@@ -5573,7 +5598,7 @@
"escritorio-kde",
"escritorio-sway"
],
"dependientes_total": 32
"dependientes_total": 33
},
"glib-shared": {
"iname": "glib-shared",
@@ -9285,7 +9310,7 @@
"escritorio-mirada",
"escritorio-sway"
],
"dependientes_total": 108
"dependientes_total": 109
},
"libffi-shared": {
"iname": "libffi-shared",
@@ -10875,7 +10900,7 @@
"escritorio-mirada",
"escritorio-sway"
],
"dependientes_total": 123
"dependientes_total": 124
},
"micro": {
"iname": "micro",
@@ -12474,7 +12499,7 @@
"escritorio-kde",
"escritorio-sway"
],
"dependientes_total": 80
"dependientes_total": 81
},
"pcre2-shared": {
"iname": "pcre2-shared",
@@ -12736,7 +12761,7 @@
"escritorio-mirada",
"escritorio-sway"
],
"dependientes_total": 394
"dependientes_total": 395
},
"plow": {
"iname": "plow",
@@ -13161,7 +13186,7 @@
"escritorio-mirada",
"escritorio-sway"
],
"dependientes_total": 313
"dependientes_total": 314
},
"qrcp": {
"iname": "qrcp",
@@ -13776,7 +13801,7 @@
"escritorio-mirada",
"escritorio-sway"
],
"dependientes_total": 265
"dependientes_total": 266
},
"sassc": {
"iname": "sassc",
@@ -17267,7 +17292,7 @@
"escritorio-mirada",
"escritorio-sway"
],
"dependientes_total": 112
"dependientes_total": 113
},
"zlib-ng": {
"iname": "zlib-ng",
+2 -1
View File
@@ -289,7 +289,8 @@ perfiles = ["escritorio-cosmic", "escritorio-gnome", "escritorio-kde", "escritor
piden = ["libffi"]
[candidato."desktop-file-utils"]
veredicto = "hueco"
veredicto = "provisto"
provee = "desktop-file-utils"
porque = "lo piden 3 recetas"
perfiles = ["escritorio-gnome"]
piden = ["gnome-shell", "libadwaita", "mutter"]
+1
View File
@@ -68,3 +68,4 @@ libXfont2 297f66a9b864360a53e1495199c3f53c04c78db2616df8da6e37c5dbef87eb32 2026-
xkbcomp ae4a27e7b8b6672ba0ffd2ddba8127f4b5f84b50358b0c3337d0bf0281873225 2026-09-08 reproduce
xwayland d43f7ba02a1f9f4b2cf01e1d03610020779991fb13adbd804f5dd3007244bf3d 2026-09-08 reproduce
bash-completion 86e9716873c35d1e8a4bc1b6317d3f37d5bc7b3d7c12132ae3a3ee7a24bcebaf 2026-09-09 reproduce
desktop-file-utils 590be503bc92262cee563d97c675022979e6c98fd205f2344129102c5cae43ec 2026-09-09 reproduce
1 # repro-verificado.tsv — qué artefactos se comprobaron que REPRODUCEN bit a bit, y cuándo.
68 xkbcomp
69 xwayland
70 bash-completion
71 desktop-file-utils
+28
View File
@@ -77,6 +77,13 @@ cola = "incoming-kde"
# Raíces del rootfs de metal (docs/HANDOFF-noche-kde-2026-07-14.md:135). El resto del escritorio
# —137 artefactos hidratados— es CLAUSURA de estas 7, no lista a mano.
paquetes = [
# `desktop-file-utils` (2026-09-09): `update-desktop-database` construye la caché
# MIME→APLICACIÓN. Con `shared-mime-info` el escritorio ya sabe QUÉ TIPO es un fichero; sin
# ésta sigue sin saber CON QUÉ abrirlo — el menú «abrir con» sale vacío y no hay aplicación
# por defecto para ningún tipo. Va como RAÍZ en los CUATRO escritorios y no en `base`,
# porque kde/gnome/cosmic NO heredan base: declararla acá funciona con cualquiera de las dos
# lecturas del modelo de composición.
"desktop-file-utils",
"plasma-workspace", "kwin", "kscreenlocker", "breeze", "frameworkintegration",
"qqc2-desktop-style", "plasma-integration",
# Huecos de RUNTIME confirmados por el triaje de la frontera (2026-07-22). Ninguno bloquea un
@@ -269,6 +276,13 @@ cola = "incoming-gnome"
# Dos documentos del repo diciendo cosas opuestas, y el que se mira primero es el grafo.
# Si algún día se autora GTK3, se vuelven a añadir acá y el objetivo reaparece solo.
paquetes = [
# `desktop-file-utils` (2026-09-09): `update-desktop-database` construye la caché
# MIME→APLICACIÓN. Con `shared-mime-info` el escritorio ya sabe QUÉ TIPO es un fichero; sin
# ésta sigue sin saber CON QUÉ abrirlo — el menú «abrir con» sale vacío y no hay aplicación
# por defecto para ningún tipo. Va como RAÍZ en los CUATRO escritorios y no en `base`,
# porque kde/gnome/cosmic NO heredan base: declararla acá funciona con cualquiera de las dos
# lecturas del modelo de composición.
"desktop-file-utils",
"mutter", "gnome-shell", "gjs",
"gsettings-desktop-schemas", "gnome-desktop", "xdg-desktop-portal-gnome",
# ── LA PRIMERA APP DE USUARIO FINAL QUE COMPARTEN LOS CUATRO ESCRITORIOS ──────────────────────
@@ -433,6 +447,13 @@ cola = "incoming-cosmic"
# el binario `cosmic-workspaces`, y el AppID tampoco lleva el sufijo. Se lista por el nombre de la
# RECETA, que es el del repo.
paquetes = [
# `desktop-file-utils` (2026-09-09): `update-desktop-database` construye la caché
# MIME→APLICACIÓN. Con `shared-mime-info` el escritorio ya sabe QUÉ TIPO es un fichero; sin
# ésta sigue sin saber CON QUÉ abrirlo — el menú «abrir con» sale vacío y no hay aplicación
# por defecto para ningún tipo. Va como RAÍZ en los CUATRO escritorios y no en `base`,
# porque kde/gnome/cosmic NO heredan base: declararla acá funciona con cualquiera de las dos
# lecturas del modelo de composición.
"desktop-file-utils",
"cosmic-comp", "cosmic-session", "cosmic-settings-daemon",
"cosmic-panel", "cosmic-launcher", "cosmic-app-library", "cosmic-workspaces-epoch",
"cosmic-notifications", "cosmic-osd", "cosmic-bg", "cosmic-idle",
@@ -596,6 +617,13 @@ hereda = ["cli"]
# el grafo siguiendo las aristas de deps. Escribirla a mano sería justo lo que targets.toml existe
# para no hacer.
paquetes = [
# `desktop-file-utils` (2026-09-09): `update-desktop-database` construye la caché
# MIME→APLICACIÓN. Con `shared-mime-info` el escritorio ya sabe QUÉ TIPO es un fichero; sin
# ésta sigue sin saber CON QUÉ abrirlo — el menú «abrir con» sale vacío y no hay aplicación
# por defecto para ningún tipo. Va como RAÍZ en los CUATRO escritorios y no en `base`,
# porque kde/gnome/cosmic NO heredan base: declararla acá funciona con cualquiera de las dos
# lecturas del modelo de composición.
"desktop-file-utils",
# el compositor y sus utilidades propias
"sway",
# lo que hace que se USE y no sólo arranque
+40
View File
@@ -0,0 +1,40 @@
# desktop-file-utils 0.28 — las tres herramientas de freedesktop sobre ficheros `.desktop`:
# update-desktop-database construye `mimeinfo.cache`, la caché MIME→APLICACIÓN
# desktop-file-validate valida un .desktop contra la especificación
# desktop-file-install instala uno, normalizándolo
#
# POR QUÉ ERA UN HUECO, y por qué es el compañero de `shared-mime-info`. Aquella receta (cerrada el
# 2026-09-08) le dio al escritorio la base de datos que dice QUÉ TIPO es un fichero. Ésta le da la
# que dice CON QUÉ ABRIRLO: sin `mimeinfo.cache` el menú «abrir con» sale vacío y no hay aplicación
# por defecto para ningún tipo. Comprobado antes de escribir la receta: NINGÚN artefacto del store
# traía `update-desktop-database`, así que esa caché no se construía nunca.
#
# Como el otro, falla en RUNTIME y no en build — gnome-shell, libadwaita y mutter lo piden en nixpkgs
# y acá construyen tan contentos sin él. Ninguna métrica de deuda puede ver un hueco así; salió del
# triaje de la frontera (2026-09-09).
#
# Va al CORPUS porque lo necesitan las cuatro imágenes de escritorio, no una cola.
name = "desktop-file-utils"
version = "0.28"
license = "GPL-2.0-or-later"
[source]
tarball = "https://www.freedesktop.org/software/desktop-file-utils/releases/desktop-file-utils-0.28.tar.xz"
sha256 = "4401d4e231d842c2de8242395a74a395ca468cd96f5f610d822df33594898a70"
[build]
compiler = "zig-cc"
target = "x86_64-linux-musl"
link = "static"
[build.phases]
# `--prefer-static` además de link=static: gobierna con qué se enlazan los EJECUTABLES, que acá son
# todo el paquete. Es la lección de json-glib, aplicada antes del error y no después.
configure = "PKG_CONFIG_PATH=/usr/lib/pkgconfig meson setup output --prefix=/usr --buildtype=release --wrap-mode=nodownload --prefer-static"
compile = "ninja -C output"
install = "DESTDIR=/out meson install -C output --no-rebuild"
[deps]
# `libffi`/`pcre2`/`zlib` son la clausura de pkg-config que declara el `.pc` de glib en
# Requires.private; las deps de hammer NO son transitivas.
build = ["meson", "samurai", "python3", "pkgconf", "glib", "libffi", "pcre2", "zlib"]