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…
⎇ 84e3737e10e17927380ed3e232e50cebfdd39123
recipes/incoming-gnome/e2fsprogs-shared.toml
Historia
crudo
udisks: el cierre de bloque entero pasa a variantes -shared, y parted se cae de la cadena
1# e2fsprogs-shared 1.47.4 — SÓLO las librerías compartidas `libext2fs.so` y `libe2p.so`, para la
2# isla dinámica. Ni una sola de las 31 herramientas (`mke2fs`, `e2fsck`, `dumpe2fs`…): ésas las da
3# `recipes/e2fsprogs.toml` y duplicarlas sería tener dos `mke2fs` distintos en el mismo store.
4#
5# ── QUIÉN LAS PIDE ────────────────────────────────────────────────────────────────────────────
6# El plugin `fs` de `libblockdev` (`configure.ac:247`, `PKG_CHECK_MODULES([EXT2FS], [ext2fs e2p])`),
7# que es el que udisks usa para **montar** — `bd_fs_mount()`, `udiskslinuxfilesystem.c:1036` — y
8# para etiquetar y comprobar sistemas de ficheros. Sin ese plugin no hay montaje: no es un extra.
9#
10# ── POR QUÉ NO SIRVE LA CANÓNICA, MEDIDO ──────────────────────────────────────────────────────
11# `recipes/e2fsprogs.toml` construye con `--disable-elf-shlibs --enable-static`, y sus `.a` no son
12# PIC (`libext2fs.a` 422 reubicaciones `R_X86_64_32` fuera de `.debug`, `libe2p.a` 313) ⇒ no entran
13# en el `.so` de un plugin. Es el mismo remedio que `libblkid-shared` y `lz4-shared`.
14#
15# ── ⚠ EL BORRADO DEL `install` NO ES COSMÉTICO ────────────────────────────────────────────────
16# Este árbol construye e instala también `libblkid` y `libuuid` **pese a `--disable-libblkid
17# --disable-libuuid`** — está medido sobre el artefacto de la canónica, que los trae igual. Si esta
18# receta los publicara, habría dos proveedores de `blkid.pc` en el catálogo y la versión que ve un
19# build dependería del ORDEN de su lista de deps, que es exactamente la trampa que
20# `libblockdev.toml` documenta haber pisado. Se borran, y la sonda lo comprueba.
21# Las herramientas y `libss` (la consola de `debugfs`) se van por lo mismo: esta receta publica dos
22# librerías, no una distribución paralela de e2fsprogs.
23name = "e2fsprogs-shared"
24version = "1.47.4"
25license = "GPL-2.0-only AND LGPL-2.0-only AND BSD-3-Clause"
26
27[source]
28tarball = "https://github.com/tytso/e2fsprogs/archive/v1.47.4.tar.gz"
29sha256 = "9f82eaa7002673291629077b80ee005cadfcd49854907a22007fed70b0ef596e"
30
31[build]
32compiler = "zig-cc"
33target = "x86_64-linux-musl"
34link = "dynamic"
35
36[build.phases]
37configure = '''
38CFLAGS='-O2 -fPIC' ./configure \
39 --build=$CBUILD --host=$CHOST \
40 --prefix=/usr --sysconfdir=/etc --localstatedir=/var \
41 --with-udev-rules-dir=no \
42 --enable-elf-shlibs --disable-static \
43 --disable-fsck --disable-uuidd --disable-libuuid --disable-libblkid \
44 --disable-fuse2fs --disable-nls
45'''
46compile = 'make RDYNAMIC= -j"$(nproc)"'
47install = '''
48set -e
49make DESTDIR=/out install install-libs RDYNAMIC=
50rm -rf /out/usr/bin /out/usr/sbin /out/usr/share/man /out/usr/share/info /out/etc
51rm -f /out/usr/lib/libblkid.* /out/usr/lib/pkgconfig/blkid.pc
52rm -rf /out/usr/include/blkid
53rm -f /out/usr/lib/libuuid.* /out/usr/lib/pkgconfig/uuid.pc
54rm -rf /out/usr/include/uuid
55rm -f /out/usr/lib/libss.* /out/usr/lib/pkgconfig/ss.pc
56rm -rf /out/usr/include/ss
57# Regla 3: que existan Y sean lo que dicen ser.
58test -f /out/usr/lib/libext2fs.so
59test -f /out/usr/lib/libe2p.so
60test -f /out/usr/lib/pkgconfig/ext2fs.pc
61test -f /out/usr/lib/pkgconfig/e2p.pc
62test ! -e /out/usr/lib/pkgconfig/blkid.pc
63test ! -e /out/usr/bin/mke2fs
64'''
65
66[deps]
67build = ["make", "pkgconf", "libuuid-shared", "libblkid-shared"]