# libuuid-shared 2.42.2 — SÓLO libuuid.so del tarball de util-linux, para la isla dinámica.
#
# evolution-data-server pide `uuid` como REQUERIDA (CMakeLists.txt:424) para generar los UID de
# contactos y eventos. El util-linux canónico la provee, pero es `--disable-shared --enable-static`
# y su libuuid.a no es PIC (verificado) ⇒ no entra en libedataserver.so.
#
# La variante NO reconstruye util-linux entero: --disable-all-programs apaga los ~100 binarios
# (mount, fdisk, lsblk…) y --enable-libuuid deja exactamente una librería. Es deliberado que esta
# receta sea angosta y no un "util-linux-shared": el canónico tiene un radio grande y una lista
# larga de --without-* elegidos para el userland estático; duplicar todo eso para conseguir un .so
# de 30 KB sería copiar una superficie que después hay que mantener en dos lugares.
#
# El sed de -mcpu=baseline se conserva del canónico: zig cc traduce ese flag a un `-mcpu=` VACÍO en
# modo preprocesador (`-dM -E -`) y los generadores errnos.h/syscalls.h lo invocan así.
name    = "libuuid-shared"
version = "2.42.2"

[source]
tarball = "https://www.kernel.org/pub/linux/utils/util-linux/v2.42/util-linux-2.42.2.tar.xz"
sha256  = "03a05d3adf9602ef128f2da05b84b3205ce60c351e5737c0370f74000679ce8a"

[build]
compiler = "zig-cc"
target   = "x86_64-linux-musl"
link     = "dynamic"
flags    = []

[build.phases]
configure = '''
./configure \
	--build=$CBUILD --host=$CHOST \
	--prefix=/usr \
	--enable-shared --disable-static \
	--disable-all-programs \
	--enable-libuuid \
	--disable-nls --disable-rpath \
	--without-python --without-systemd --without-systemdsystemunitdir \
	--without-udev --without-ncursesw --without-ncurses --without-tinfo \
	--without-readline --without-libz --without-selinux --without-audit --without-econf
'''
compile = '''
for f in tools/all_errnos tools/all_syscalls; do
	[ -f "$f" ] || continue
	sed -i 's#^"$@" -MD#a=(); for x in "$@"; do [ "$x" = "-mcpu=baseline" ] || a+=("$x"); done\n"${a[@]}" -MD#' "$f"
done
make -j"$(nproc)"
'''
install = 'make DESTDIR=/out install'

[deps]
build = ["linux-headers", "make", "pkgconf"]
