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…

⎇ f147aab90eee9fa39e7992d7b5a0d48146a83344 recipes/musl-fts.toml TOML · 43 lines · 1.7 KB History raw

musl-fts: nueva receta — el fts(3) que musl no trae f147aab90 · Sergio ·

1# musl-fts 1.2.7 — el `fts(3)` de BSD/glibc, empaquetado aparte para musl.
2#
3# POR QUÉ EXISTE: musl no trae `fts`, y `libdwfl` de elfutils lo usa en
4# `linux-kernel-modules.c` (recorre /lib/modules). `dwarves` necesita libdwfl, así que la cadena
5# entera lo arrastra. Es lo que Alpine empaqueta como `musl-fts`. Tercera pieza del frente
6# libdw/musl, junto a `musl-obstack` y `argp-standalone`.
7#
8# ⚠ En la práctica sus símbolos casi nunca se ENLAZAN: `dwarves` no llama a `dwfl_linux_kernel_*`,
9# así que ese objeto no se saca del archive. Pero el fichero tiene que COMPILAR, y para eso hace
10# falta un `<fts.h>` de verdad con los campos (`fts_namelen`, `fts_name`, `fts_info`…) y las
11# constantes (FTS_NOSTAT, FTS_LOGICAL, FTS_SKIP, FTS_F…). Escribir ese header a mano es fácil de
12# hacer MAL en silencio; traer la implementación real es más honesto.
13#
14# Se compila a mano (sin autotools), igual que musl-obstack: es UN fichero .c.
15name    = "musl-fts"
16version = "1.2.7"
17license = "BSD-3-Clause"
18
19[source]
20tarball = "https://github.com/void-linux/musl-fts/archive/refs/tags/v1.2.7.tar.gz"
21sha256  = "49ae567a96dbab22823d045ffebe0d6b14b9b799925e9ca9274d47d26ff482a6"
22
23[build]
24compiler = "zig-cc"
25target   = "x86_64-linux-musl"
26link     = "static"
27
28[build.phases]
29# `fts.c` hace `#include "config.h"` (con comillas, a diferencia del de obstack que usa ángulos).
30configure = "printf '%s\\n' '/* minimo para musl */' > config.h"
31compile   = '''
32$CC -c -O2 -fPIC -I. -D_GNU_SOURCE fts.c -o fts.o
33ar rcs libfts.a fts.o
34'''
35install = '''
36mkdir -p /out/usr/lib /out/usr/include
37cp libfts.a /out/usr/lib/
38cp fts.h /out/usr/include/
39test -f /out/usr/lib/libfts.a && test -f /out/usr/include/fts.h
40'''
41
42[deps]
43build = ["binutils"]