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…
licencias: campo `license` en la receta — de 0 a 228 de 1141, sin re-hashear nada
1# geoclue 2.8.2 — SÓLO `libgeoclue` y su typelib `Geoclue-2.0`, sin el demonio.
2#
3# POR QUÉ ENTRA: gnome-shell lo importa desde JavaScript sin condicional
4# (`js/misc/dependencies.js`: `import 'gi://Geoclue?version=2.0'`) — lo usa el indicador de
5# «ubicación en uso» del panel y el ajuste automático de zona horaria. Dep de RUNTIME del shell,
6# invisible a su grafo de build, destapada arrancando la sesión.
7#
8# `-Denable-backend=false` es la decisión de alcance de esta receta, y no es un recorte arbitrario:
9# el demonio (`src/`) es el que arrastra ModemManager (fuentes 3G/CDMA/GPS de módem), Avahi (NMEA por
10# red) y libsoup+json-glib (geolocalización por IP y por WiFi). La librería cliente no toca nada de
11# eso: habla con el servicio por D-Bus. Como acá lo que hace falta es el typelib, se construye la
12# mitad cliente y se deja escrito que la otra existe. Cuando haya un caso de uso real —ubicación de
13# verdad, no el ícono— hay que volver por el demonio y traer esas dependencias.
14#
15# Sin el backend quedan `public-api`, `interface`, `libgeoclue` y `data`. Se borran a mano:
16# · `subdir('demo')` → `where-am-i`, un ejecutable de ejemplo que nadie instala en una imagen.
17# · `subdir('po')` → el msgfmt de gettext-tiny aborta. SÉPTIMA vez en la campaña; ya no es un
18# gotcha, es la deuda de autorar el gettext de GNU.
19#
20# `-Dvapi=false` (no hay valac en el corpus) y `-Dgtk-doc=false`.
21#
22# ISLA DINÁMICA: el typelib nombra `libgeoclue-2.so.0` y gjs la dlopea.
23#
24# FUENTE: archivo de gitlab.freedesktop.org, como cairo/libdrm/libinput/pixman/modemmanager.
25name = "geoclue"
26version = "2.8.2"
27license = "GPL-2.0-or-later"
28
29[source]
30tarball = "https://gitlab.freedesktop.org/geoclue/geoclue/-/archive/2.8.2/geoclue-2.8.2.tar.gz"
31sha256 = "5435f7d48105fe89a4259f807658281e854881267254bcd4eeac6e26c222055b"
32
33[build]
34compiler = "zig-cc"
35target = "x86_64-linux-musl"
36link = "dynamic"
37
38[build.phases]
39configure = '''
40set -e
41sed -i "/^subdir('demo')$/d; /^subdir('po')$/d" meson.build
42PKG_CONFIG_PATH=/usr/lib/pkgconfig PYTHONPATH=/usr/lib/python3.12/site-packages meson setup output \
43 --prefix=/usr --buildtype=release --wrap-mode=nodownload \
44 -Ddefault_library=both -Denable-backend=false -Dlibgeoclue=true \
45 -Dintrospection=true -Dvapi=false -Dgtk-doc=false -Ddemo-agent=false \
46 -Dc_args=-Wno-error=date-time
47'''
48compile = "PYTHONPATH=/usr/lib/python3.12/site-packages ninja -C output"
49install = "PYTHONPATH=/usr/lib/python3.12/site-packages DESTDIR=/out meson install -C output --no-rebuild"
50
51[deps]
52build = ["meson", "samurai", "python3", "pkgconf", "gettext-tiny", "py3-setuptools", "gobject-introspection", "gi-foreign-girs", "glib", "glib-introspected", "libffi", "pcre2", "zlib-shared"]