gioser

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 Definitions

⎇ 4e4a2c8d2a8fcd80dc7423a1a9bea913d79d2b8b recipes/incoming-gnome/gnome-shell-extension-dash-to-panel.toml TOML · 69 lines · 4.0 KB History raw

gnome: dash-to-panel, appindicator y gnome-tweaks — y la lista de activas sale de las recetas 4e4a2c8d2 · Sergio ·

1# dash-to-panel 73 — la barra de tareas: mueve el dash al panel superior y junta lanzadores,
2# ventanas abiertas y bandeja en una sola barra, al estilo Plasma/Windows 7+. Es, con diferencia, la
3# extensión que más cambia el uso diario de GNOME.
4#
5# Segunda extensión del catálogo; el patrón lo fijó `gnome-shell-extension-blur-my-shell` y su
6# cabecera explica por qué la fuente es el REPO y no el zip de extensions.gnome.org.
7# El tag `v73` es el que EGO sirve para shell 48 (preguntado a su API, no supuesto) y el
8# `metadata.json` del repo declara shell-version ["46","47","48","49","50"].
9#
10# ══ ACÁ SÍ SE USA EL `make install` DE UPSTREAM ════════════════════════════════════════════════
11# A diferencia de blur-my-shell —cuyo `make build` llama a `gnome-extensions pack`, el CLI que
12# nuestra receta del shell apaga— el Makefile de dash-to-panel tiene un `install` que HONRA
13# `DESTDIR` y hace exactamente lo que hace un paquete de distro:
14#   · el árbol de la extensión va a $DESTDIR/usr/share/gnome-shell/extensions/<uuid>/
15#   · y en modo «system» SACA de ahí `schemas/` y `locale/` para ponerlos en los directorios
16#     GLOBALES: /usr/share/glib-2.0/schemas y /usr/share/locale.
17# Se usa su install en vez de copiar a mano: es upstream quien decide qué entra y qué no.
18#
19# ⚠ Que el gschema termine en el directorio GLOBAL no es un detalle: lo compila el mismo
20# `glib-compile-schemas` que corre el lanzador al arrancar, junto con los del shell. Por eso esta
21# receta NO necesita compilarlo ella (y el Makefile igual lo compila para el `_build`).
22#
23# ⚠ `VERSION=73` SE PASA A MANO, y no es cosmético. Sin ella el Makefile hace
24# `git describe --tags HEAD` para deducirla, y el árbol se materializa con `git archive`, SIN `.git`
25# ⇒ la orden falla y `metadata.json` queda con el `"version": 9999` de marcador que trae el repo.
26# Es la misma razón por la que la receta de `tzdata` pasa `VERSION=2026b`.
27name    = "gnome-shell-extension-dash-to-panel"
28version = "73"
29# licencia: el fichero COPYING del commit pineado es el texto del GPL v2, y el `metadata.json` de
30# EGO no declara licencia. ⚠ La concesión está en la CABECERA de los fuentes (src/extension.js y
31# compañía): «either version 2 of the License, or (at your option) any later version» ⇒ -or-later.
32# No se dedujo del COPYING: su apéndice «How to Apply» contiene esa frase SIEMPRE, así que buscarla
33# ahí da positivo aunque el proyecto sea -only (la trampa que ya está documentada en el repo).
34license = "GPL-2.0-or-later"
35
36[source]
37repo   = "https://github.com/home-sweet-gnome/dash-to-panel"
38commit = "b31cbe1f3c9fa997b954b71199563fbedc2f3446"  # tag v73 (ADR 0006: commit fijo, nunca HEAD)
39
40[build]
41compiler = "zig-cc"
42target   = "x86_64-linux-musl"
43link     = "dynamic"
44
45[build.phases]
46# Nada que compilar en el sentido de C: `make all` sólo compila el gschema y los catálogos .po.
47configure = "true"
48compile   = 'make VERSION=73'
49install = '''
50set -e
51UUID="dash-to-panel@jderose9.github.com"
52make install DESTDIR=/out VERSION=73
53D="/out/usr/share/gnome-shell/extensions/$UUID"
54
55# Guardián: el `install` de upstream mueve cosas de sitio según DESTDIR, así que se comprueba el
56# resultado y no la intención. Un artefacto a medias sella igual y el fallo sale recién al arrancar
57# el escritorio (regla 3 de CLAUDE.md).
58test -s "$D/metadata.json"
59test -s "$D/extension.js"
60grep -q '"version": 73' "$D/metadata.json"   # falla si el sed de VERSION no corrió (quedaría 9999)
61grep -q '"48"' "$D/metadata.json"            # falla si un bump deja de soportar shell 48
62# El gschema tiene que haber ido al directorio GLOBAL, que es lo que compila el lanzador.
63test -s /out/usr/share/glib-2.0/schemas/org.gnome.shell.extensions.dash-to-panel.gschema.xml
64'''
65
66[deps]
67# `make` para el Makefile, `glib` por glib-compile-schemas y `gettext-tiny` por msgfmt. Ninguna es
68# una librería que la extensión enlace: no enlaza nada, es JavaScript.
69build = ["make", "glib", "pcre2", "libffi", "zlib", "gettext-tiny"]