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