tawasuyu

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…

⎇ main recipes/libpng-pic.toml TOML · 40 siq'ikuna · 2.5 KB Ñawpa willay ch'uya

libpng-pic: la variante que faltaba entre la estatica y la .so 2b4999f68 · Sergio ·

1# libpng-pic 1.6.58 — variante ESTÁTICA pero PIC (`libpng16.a` compilada con -fPIC).
2#
3# ── EL HUECO QUE LLENA, ENTRE EL CANÓNICO Y LA -shared ──────────────────────────────────────────
4# El corpus tenía dos libpng y ninguna sirve para el caso de gdk-pixbuf:
5#
6#   `libpng`         → `--disable-shared`, objetos SIN PIC. Si el link acaba siendo dinámico:
7#                      «relocation R_X86_64_64 cannot be used against local symbol; recompile with -fPIC».
8#   `libpng-shared`  → sólo `libpng16.so`. Si el consumidor pide estático (`--prefer-static`):
9#                      «unable to find static system library 'png16'».
10#
11# Las dos las probé con gdk-pixbuf el 2026-08-21 y fallan por los extremos opuestos. La salida no es
12# elegir un extremo, es una `.a` que TAMBIÉN sea PIC: satisface a quien pide la estática por nombre
13# y además se puede reubicar dentro de un link dinámico. Es la misma clase de muro que deja a CPython
14# sin `_curses` («relocation R_X86_64_PC32 against symbol 'stdscr'»), así que esta variante es un
15# primer ladrillo de ese frente, no un parche de una receta.
16#
17# ── QUÉ CAMBIA RESPECTO A `recipes/libpng.toml` ─────────────────────────────────────────────────
18# Sólo el `configure`: se añade `--with-pic` (autoconf/libtool: compila los objetos del archivo
19# estático con -fPIC). Nada más — mismo tarball, mismo sha256, mismo compilador, mismas deps.
20#
21# NO toca al canónico ni lo reemplaza: nombre distinto ⇒ sin colisión, igual que `libpng-shared`
22# (ver la nota de promoción ahí). Vive en el CORPUS, no en una cola, porque la resolución de deps es
23# HERMANO→PADRE: una receta del corpus no vería una variante metida en `incoming-*`.
24name    = "libpng-pic"
25version = "1.6.58"
26license = "Libpng"
27[source]
28tarball = "https://downloads.sourceforge.net/libpng/libpng-1.6.58.tar.gz"
29sha256  = "8c9b05b675ca7301a458df2c2e46f26e1d41ff36b8863f8c33530bc58c2e6225"
30[build]
31compiler = "zig-cc"
32target   = "x86_64-linux-musl"
33link     = "static"
34flags    = []
35[build.phases]
36configure = './configure --build=$CBUILD --host=$CHOST --prefix=/usr --disable-shared --enable-static --with-pic CPPFLAGS=-I/usr/include LDFLAGS=-L/usr/lib'
37compile   = 'make LDFLAGS="-all-static -no-pie" -j"$(nproc)"'
38install   = 'make DESTDIR=/out install LDFLAGS="-all-static -no-pie"'
39[deps]
40build = ["zlib", "make"]