# pciutils-shared 3.15.0 — variante DINÁMICA de pciutils: sella `libpci.so.3` + `libpci.pc`. # # La canónica (`recipes/pciutils.toml`) va `SHARED=no` e instala SÓLO binarios (`bin/`, `sbin/`, # `share/`): sirve para el `lspci` del userland, pero no publica librería. Medido con # `scripts/provee.py`: **`libpci.so` no lo publicaba NINGUNA cola**. # # Entra por OBS: `plugins/obs-ffmpeg/cmake/dependencies.cmake:20` hace `find_package(Libpci)` y # obs-ffmpeg es EL plugin de codificación — no tiene perilla para apagarlo, así que sin esto no hay # OBS. (Lo usa para identificar la GPU por su ID PCI y elegir el encoder por hardware.) # # ══ POR QUÉ UNA VARIANTE Y NO TOCAR LA CANÓNICA ════════════════════════════════════════════════ # Es el patrón de `zlib-shared`: la canónica la consumen otros por su binario y cambiarle `SHARED` # le movería el ArtifactHash a todo el que la declare. Una variante deja la canónica intacta. # # **Y NO COLISIONAN**, que es la condición que hace legítimo tener dos: esta receta instala # únicamente bajo `usr/lib/` (la `.so`, su symlink y el `.pc`), y la canónica no pone NADA ahí — su # `usr/` sólo tiene `bin`, `sbin` y `share`. Dos artefactos que se reparten rutas disjuntas conviven; # dos que se pisan son el cuadro de las dos glib. Se verifica listando el `usr/lib` de las dos, no # suponiéndolo. # # `ZLIB=no HWDB=no DNS=no` igual que la canónica: sin ellos el `.so` arrastraría libz y libudev y # haría resolución DNS de IDs, que ni OBS ni nadie acá le pide. name = "pciutils-shared" version = "3.15.0" license = "GPL-2.0" [source] tarball = "https://github.com/pciutils/pciutils/archive/refs/tags/v3.15.0.tar.gz" sha256 = "06f467642057599acf396bc17340452fac3308f1e08be19e0c32587e42d7017b" [build] compiler = "zig-cc" target = "x86_64-linux-musl" link = "dynamic" flags = [] [build.phases] compile = ''' make OPT="-fPIC -O2" ZLIB=no SHARED=yes PREFIX=/usr \ IDSDIR=/usr/share/misc MANDIR=/usr/share/man HWDB=no DNS=no \ all ''' # `install-lib` y no `install`: el target completo instalaría además los binarios, que ya sella la # receta canónica — y ahí sí habría dos artefactos peleando por `/usr/sbin/lspci`. install = ''' make PREFIX=/usr DESTDIR=/out SHARED=yes ZLIB=no HWDB=no DNS=no \ IDSDIR=/usr/share/misc MANDIR=/usr/share/man \ install-lib ''' [deps] build = ["linux-headers", "make", "pkgconf"]