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…
corpus: uthash, nlohmann-json, jansson y x264 — las 4 deps que a OBS le faltaban
1# jansson 2.14.1 — JSON en C. Entra por OBS: `libobs` la usa para leer/escribir sus perfiles y
2# escenas.
3#
4# CMake y no autotools: el tarball de release trae `configure`, pero la fuente por commit (ADR 0006)
5# NO — `configure` lo genera `autoreconf`, que pediría el stack autotools entero en `[deps]`. El
6# árbol trae `CMakeLists.txt` de primera clase, así que se usa ése y el cierre queda en cmake+ninja.
7#
8# `-DJANSSON_BUILD_DOCS=OFF` porque su default ON invoca sphinx, que no está en el corpus; y
9# `-DJANSSON_WITHOUT_TESTS=ON` para no compilar el árbol de tests, que no aporta al artefacto.
10#
11# ⚠ LA PERILLA ES `JANSSON_BUILD_SHARED_LIBS`, **NO** `BUILD_SHARED_LIBS`. jansson declara la suya
12# propia (`CMakeLists.txt:5`, default OFF) y NO mira la estándar de CMake. Con `-DBUILD_SHARED_LIBS=ON`
13# el build sale con exit 0 y sella un artefacto que trae SÓLO `libjansson.a` — o sea que la receta
14# dice `link = "dynamic"` y el artefacto es estático, y nadie se entera hasta que un `.so` que la
15# consume muere por PIC. Verificado mirando el `usr/lib/` del artefacto, no el código de salida:
16# es la misma familia que el `link=static` que miente por libtool.
17#
18# Fuente por commit: `v2.14.1` es un tag ANOTADO ⇒ esto es el `^{}` pelado.
19name = "jansson"
20version = "2.14.1"
21license = "MIT"
22
23[source]
24repo = "https://github.com/akheron/jansson.git"
25commit = "ed5cae4ed0621ef409510f94270c9f8f263736d0"
26
27[build]
28compiler = "zig-cc"
29target = "x86_64-linux-musl"
30# DINÁMICO: OBS carga `libobs.so` y sus plugins como objetos compartidos, y una jansson `.a` sin PIC
31# dentro de un `.so` es el fallo que ya costó caro en gdk-pixbuf. Compartida y sin sorpresas.
32link = "dynamic"
33flags = []
34
35[build.phases]
36configure = 'cmake -B build -G Ninja -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release -DJANSSON_BUILD_SHARED_LIBS=ON -DJANSSON_BUILD_DOCS=OFF -DJANSSON_WITHOUT_TESTS=ON -DJANSSON_EXAMPLES=OFF'
37compile = 'cmake --build build'
38install = 'DESTDIR=/out cmake --install build'
39
40[deps]
41build = ["cmake", "samurai", "pkgconf"]