gioser

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…

TOML 604Rust 56Shell 36Markdown 281227 Definiciones

⎇ 2e85dfc8a38be7abbdabbedf2cd799923e947b8c recipes/util-linux.toml TOML · 76 líneas · 2.7 KB Historia crudo

harkaq: declarar deps medidas por el kernel (cosecha automática) 8f94b8a25 · sergio ·

1# Importada de nixpkgs por `hammer import-nix` (Etapa G). PUNTO DE PARTIDA, no final:
2# de-Alpinizada al lab de hammer (zig-cc / musl estático). Objetivo mínimo:
3# mount/umount/lsblk/blkid/fdisk/lscpu (utilería base del sistema).
4name    = "util-linux"
5version = "2.42.2"
6
7[source]
8tarball = "https://www.kernel.org/pub/linux/utils/util-linux/v2.42/util-linux-2.42.2.tar.xz"
9sha256  = "03a05d3adf9602ef128f2da05b84b3205ce60c351e5737c0370f74000679ce8a"
10
11[build]
12compiler = "zig-cc"
13target   = "x86_64-linux-musl"
14link     = "static"
15flags    = []
16
17[build.phases]
18# fase configure EXPLÍCITA: si la receta no la define, hammer autogenera su propio
19# `./configure --prefix=/usr` (sin nuestros --disable-*) e ignora estos flags.
20#
21# ESTÁTICO: libtool se COME el `-static` de LDFLAGS (lo lee como "static libtool
22# libs", no como link real) ⇒ el único camino a binarios musl 100% estáticos es
23# `--enable-static-programs`, que SÓLO soporta
24# blkid,fdisk,losetup,mount,nsenter,partx,sfdisk,umount,unshare. Produce
25# {mount,umount,blkid,fdisk}.static (verificados corriendo en el host). lsblk y
26# lscpu NO están en esa lista ⇒ quedan dinámicos-musl: construyen y corren en la
27# distro musl, pero en un host glibc segfaultean por loader-skew (no verificables
28# acá). El resto de binarios (lsblk/lscpu/...) son musl-dinámicos.
29configure = '''
30./configure \
31	--build=$CBUILD \
32	--host=$CHOST \
33	--prefix=/usr \
34	--localstatedir=/var \
35	--sysconfdir=/etc \
36	--disable-shared \
37	--enable-static \
38	--enable-static-programs=blkid,fdisk,mount,umount \
39	--disable-nls \
40	--disable-rpath \
41	--disable-liblastlog2 \
42	--disable-pylibmount \
43	--disable-makeinstall-setuid \
44	--disable-makeinstall-chown \
45	--without-python \
46	--without-systemd \
47	--without-systemdsystemunitdir \
48	--without-udev \
49	--without-cryptsetup \
50	--without-ncursesw \
51	--without-ncurses \
52	--without-tinfo \
53	--without-readline \
54	--without-libz \
55	--without-selinux \
56	--without-audit \
57	--without-econf
58'''
59compile = '''
60# zig cc traduce `-mcpu=baseline` a un `-mcpu=` VACÍO en modo preprocesador
61# (`-dM -E -`), que zig rechaza. Los generadores errnos.h/syscalls.h de
62# util-linux invocan `$(CC) -dM -E -` ⇒ filtramos ese flag (irrelevante para
63# extraer #defines) sólo en esos dos scripts; el resto del build lo conserva.
64for f in tools/all_errnos tools/all_syscalls; do
65	sed -i 's#^"$@" -MD#a=(); for x in "$@"; do [ "$x" = "-mcpu=baseline" ] || a+=("$x"); done\n"${a[@]}" -MD#' "$f"
66done
67make
68'''
69install = '''
70make DESTDIR="/out" install
71'''
72
73# deps de Alpine/nix remapeadas al catálogo canónico. AUSENTES quitadas:
74# autoconf/automake/po4a/libxcrypt/sqlite/linux-pam/libcap-ng/systemd-minimal-libs.
75[deps]
76build = ["linux-headers", "busybox", "make"]