# ── ⚠ VERRUGA MEDIDA (2026-09-05), sin decidir ───────────────────────────────────────────────── # `usr/bin/sqlite3` —el shell de la CLI, NO `libsqlite3.so.0`— sale con `NEEDED libreadline.so.8`, y # el `readline` canónico del corpus es `.a`. O sea que en la imagen GNOME ese comando no carga: lo # resolvía contra el sysroot Alpine DEL LAB. Lo cazó `scripts/vigia-sonames.py`; las APPS están bien, # porque la librería no lo lleva. # # Las dos salidas cuestan cosas distintas y por eso no se decide de paso: # · construir `readline-shared` y sumarla de raíz a `escritorio-gnome` — 1 build nuevo, pero la # imagen carga una librería más sólo para que ande un comando. (`ncurses-shared` ya es raíz del # perfil, así que la cadena cierra.) # · configurar acá `--disable-readline` y no instalar una CLI que nadie pidió — más limpio, pero # re-hashea: `yupana radio sqlite-shared` da **6 dependientes en incoming-gnome** que caen a # deuda. # Se paga barato el día que sqlite-shared se re-selle por otro motivo. # sqlite-shared 3.46.1 — variante DINÁMICA de sqlite para la isla dinámica de GNOME. # # Por qué existe: el sqlite canónico (recipes/sqlite.toml) es `--disable-shared --enable-static` y su # libsqlite3.a NO es PIC (verificado: trae reubicaciones R_X86_64_32). libsoup 3.6 lo pide DURO # (meson.build:123-136 cae a `dependency('sqlite3')` sin `required:false`) y libsoup es un .so ⇒ # meter el .a no-PIC adentro corta con el mismo `relocation R_X86_64_32 ... recompile with -fPIC` # que frenó a mutter contra freetype. Mismo patrón y misma solución que zlib-shared/cairo-shared: # una variante hermana, sin tocar la canónica (su radio son cientos de sellados). # # El único cambio real frente a la canónica es --enable-shared --disable-static y sacar el # `-all-static -no-pie` de LDFLAGS, que es justo lo que impide producir un .so. Misma versión y mismo # tarball a propósito: el sqlite3.pc que consume libsoup declara la misma versión que el resto del # corpus, así que no se abre un skew de versiones entre el mundo estático y el dinámico. name = "sqlite-shared" version = "3.46.1" # licencia: MISMO sha256 de tarball que recipes/sqlite.toml, que ya declara `blessing` (la bendición del dominio público de SQLite) license = "blessing" [source] tarball = "https://sqlite.org/2024/sqlite-autoconf-3460100.tar.gz" sha256 = "67d3fe6d268e6eaddcae3727fce58fcc8e9c53869bdd07a0c61e38ddf2965071" [build] compiler = "zig-cc" target = "x86_64-linux-musl" link = "dynamic" [build.phases] configure = "./configure --prefix=/usr --enable-shared --disable-static" compile = 'make -j"$(nproc)"' install = "make install DESTDIR=/out" [deps] # ✅ DECIDIDA 2026-09-06, y la decisión cambió porque cambió el cálculo. La verruga de arriba dejaba # dos salidas sin elegir, y el argumento contra la primera era «la imagen carga una librería más sólo # para que ande un comando». Ya no es cierto: `python3` sale con el MISMO `NEEDED libreadline.so.8` # y es raíz de los cuatro perfiles, así que `readline-shared` entra en la clausura igual. El coste # marginal de arreglar además el `sqlite3` de la CLI es CERO. # `runtime` no entra en el ArtifactHash ⇒ no re-hashea, y los 6 dependientes que menciona la nota de # arriba no se tocan. Esa era la otra mitad del precio y tampoco se paga. runtime = ["readline-shared"] build = ["make", "pkgconf"]