# libusb 1.0.30 — acceso a dispositivos USB desde espacio de usuario. Entra al corpus por una cadena
# larga y poco obvia: mutter → colord → libgusb → libusb. Autotools, estático.
#
# --with-pic, y NO es cosmético: colord construye libcolord.so/libcolorhug.so aunque se le pase
# -Ddefault_library=static (su meson pide shared_library explícito), y meter un .a sin PIC dentro de
# un .so lo rechaza el linker — «relocation R_X86_64_TPOFF32 ... cannot be used with -shared» y
# «recompile with -fPIC». Mismo remedio y misma razón que en recipes/libffi.toml, que lo aprendió
# con Mesa/libwayland-server. PIC es superset: el .a sigue sirviendo para enlazar ejecutables.
# (libgusb no lo necesita: meson compila los estáticos con b_staticpic=true por defecto.)
#
# --disable-udev: libusb puede enumerar y hacer hotplug por dos caminos, netlink+libudev o sysfs a
# secas. El corpus tiene libudev-zero, pero su hotplug es justamente lo que ese proyecto NO
# implementa completo; el camino sysfs no depende de nadie y alcanza de sobra para lo que llega hasta
# acá (colord listando sensores de calibración que este perfil ni siquiera enciende). Menos aristas
# en el cierre, y sin el riesgo del choque eudev/libudev-zero por el mismo .pc.
name    = "libusb"
version = "1.0.30"
license = "LGPL-2.1-or-later"

[source]
tarball = "https://github.com/libusb/libusb/releases/download/v1.0.30/libusb-1.0.30.tar.bz2"
sha256  = "fea36f34f9156400209595e300840767ab1a385ede1dc7ee893015aea9c6dbaf"

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

[build.phases]
configure = './configure --build=$CBUILD --host=$CHOST --prefix=/usr --disable-shared --enable-static --with-pic --disable-udev'
compile   = 'make'
install   = 'make DESTDIR=/out install'

[deps]
build = ["make"]
