taylanbayi...@gmail.com (Taylan Ulrich "Bayırlı/Kammer") writes:
> P.S.: I'll see if I can write a tool that compares the union of the > Requires[.private] fields of all .pc files in a package to the package's > propagated inputs, so we can detect mismatches automatically. So here's a first version. https://notabug.org/taylanub/guix/src/master/missing-propagated-inputs.scm Sample output from my system is below; evidently it's open to some improvement. Maybe I should try to move to a strategy that calls pkg-config instead of parsing the files in Guile, but it might be nontrivial to get the PKG_CONFIG_PATH right for each call, and doing many execs might be too slow, so I'll first see how much further I can get with this strategy. $ ./pre-inst-env guile -c '((@ (guix missing-propagated-inputs) print-missing-propagated-inputs))' "fftw": ("-lfftw3" "-lm") "fftwf": ("-lfftw3f" "-lm") "apr": ("-ldl" "-lpthread" "-lcrypt" "-lrt" "-lapr-${APR_MAJOR_VERSION}") "apr-util": ("apr-1" "-laprutil-${APRUTIL_MAJOR_VERSION}") "portaudio": ("-lpthread" "-lm" "-lasound") "libbs2b": ("-lm") "jack2": ("-ljack") "soxr": ("-lsoxr-lsr") "avahi": ("glib-2.0" "avahi-client" "avahi-glib" "gobject-2.0" "-lavahi-client" "-lavahi-common" "-lavahi-core" "-lavahi-glib" "-lavahi-gobject") "libatomic-ops": ("-latomic_ops") "libcdio-paranoia": ("-lm" "-lcdio_cdda" "-lcdio_paranoia") "libcdio": ("-lm" "-lcdio++" "-liso9660" "-liso9660++" "-ludf") "guile": ("-lgc" "-lffi") "xz": ("-llzma") "curl": ("-lz" "-lldap" "-llber" "-lgss" "-lgnutls" "-lnettle" "-lssh2" "-lidn") "cyrus-sasl": ("-lsasl2" "-lresolv" "-ldl") "sqlite": ("-lsqlite3" "-lpthread" "-ldl") "freetype": ("-lbz2") "fontconfig": ("freetype2") "gd": ("-lfreetype" "-lpng15" "-lm" "-lz") "lcms": ("-llcms2" "-lm") "glu": ("gl" "-lm") "ftgl": ("freetype2" "-lm" "-lGL" "-lGLU") "s2tc": ("-ltxc_dxtn") "mesa": ("xcb-dri3" "xcb-dri2" "libudev" "-lEGL" "-ldl" "-lpthread" "-lm" "-lgbm" "-lGL" "-lOSMesa" "-lxatracker") "dbus": ("-lpthread") "glib": ("gobject-2.0" "gmodule-no-export-2.0" "gobject-2.0,gio-2.0" "-lgio-2.0" "-lresolv" "-lz" "-lgmodule-2.0" "-ldl" "-lgobject-2.0" "-lffi" "-lgthread-2.0") "gnutls": ("libtasn1," "hogweed," "nettle," "-lgmp") "nspr": ("-lnspr4" "-lplc4" "-lplds4") "nss": ("-lnssutil3" "-lnss3" "-lsmime3" "-lssl3") "pango": ("gobject-2.0" "glib-2.0" "gmodule-no-export-2.0" "fontconfig" "freetype2" "xft" "pangoft2" "-lpangocairo-1.0" "-lpangoft2-1.0" "-lpangoxft-1.0") "cairo": ("xcb-shm" "xcb-render" "cairo-xlib" "freetype2" "gobject-2.0" "-lcairo-gobject" "-lz") "harfbuzz": ("icu-uc" "-lharfbuzz-icu") "guile": ("-lgc" "-lffi") "icu4c": ("icu-uc" "icu-i18n" "icu-le" "-licui18n" "-licuio" "-licule" "-liculx" "-licudata" "-licuuc") "leptonica": ("-llept") "openjpeg": ("-lopenjp2" "-lm") "libpng": ("-lpng15" "-lm") "libtiff": ("-lz" "-ljpeg" "-llzma") "libwebp": ("-lm" "-lwebpdecoder" "-lwebpdemux" "-lwebpmux") "libunwind": ("libunwind-generic" "-lunwind-coredump" "-lunwind-generic" "-lunwind-ptrace" "-lunwind-setjmp") "libusb": ("-lusb-1.0" "-lrt") "util-linux": ("uuid" "blkid" "-lblkid" "-lmount" "-lsmartcols" "-luuid") "alsa-lib": ("-lasound" "-lrt" "-lpthread" "-ldl" "-lm") "eudev": ("gobject-2.0" "glib-2.0," "-lgudev-1.0" "-ludev") "kmod": ("-lz" "-llzma") "luajit": ("-l${libname}" "-ldl" "-lm") "nettle": ("-lhogweed") "tesseract-ocr": ("lept" "-lpthread" "-llept" "-ltesseract") "openssl": ("libcrypto" "libssl" "-lcrypto" "-ldl" "-lssl") "pciutils": ("-lpci") "pcre": ("libpcre" "-lpcrecpp" "-lpcreposix") "libsndfile": ("-lvorbisenc" "-lFLAC") "pulseaudio": ("glib-2.0" "libpulse" "-lpulse-mainloop-glib" "-lpulsecommon-6.0" "-lpulse-simple" "-lpulse") "python": ("-lutil" "-ldl" "-lpthread" "-lpython2.7") "python": ("-lutil" "-ldl" "-lpthread" "-lpython3.3m") "libxkbcommon": ("xcb-xkb" "xcb" "-lxkbcommon-x11") "tcl": ("-lm" "-lieee" "-lpthread" "-ldl") "enca": ("-lm") "libdvdnav": ("dvdread" "-lpthread") "vapoursynth": ("python-3.3" "libavcodec" "libavutil," "libswscale," "-lvapoursynth-script" "-lpython3.3m" "-ldl" "-lswscale" "-lavutil") "libvpx": ("-lm" "-lpthread") "ffmpeg": ("libavutil" "libswresample" "libavcodec" "libavformat" "libavresample" "libpostproc" "libswscale" "libavfilter" "-lavcodec" "-lz" "-lbz2" "-llzma" "-lm" "-lass" "-lbluray" "-lcaca" "-lfreetype" "-lfontconfig" "-lmp3lame" "-lopus" "-lpulse" "-lquvi" "-lsoxr" "-lspeex" "-logg" "-ltheoradec" "-ltheoraenc" "-ltwolame" "-lvorbis" "-lvorbisenc" "-lvpx" "-lxvidcore" "-lopenal" "-lcdio" "-lcdio_cdda" "-lcdio_paranoia" "-lavdevice" "-lavfilter" "-lavformat" "-lavresample" "-lavutil" "-lpostproc" "-lswresample" "-lswscale") "libcaca": ("-lcaca++" "-lz") "libva": ("-lva-${display}" "-lva-tpi") "libbluray": ("-lfreetype" "-lfontconfig" "-lxml2" "-ldl") "libdvdnav": ("dvdread" "-lpthread") "libass": ("freetype2" "enca," "-lm") "libdrm": ("-ldrm_intel" "-ldrm_nouveau" "-ldrm_radeon" "-lkms") "libvorbis": ("-lm" "-lvorbisenc" "-lvorbisfile") "libtheora": ("theoradec," "-ltheoradec" "-ltheoraenc") "speex": ("-lm" "-lspeexdsp") "ao": ("-ldl" "-lpthread") "flac": ("-lFLAC++" "-lm") "opus": ("-lm") "libxml2": ("-lm") "libxslt": ("libxml-2.0" "-lgpg-error" "-lgcrypt" "-lm" "-ldl" "-lz" "-lxml2" "-lexslt") "libxrender": ("x11" "xproto") "libsm": ("xproto") "libxfixes": ("xproto" "x11") "libxscrnsaver": ("xext" "x11" "-lXss") "xcb-util-renderutil": ("xcb-render" "-lxcb-render-util") "libxv": ("xproto" "xext" "x11") "xcb-util-image": ("xcb-shm" "-lxcb-image") "libxxf86vm": ("x11") "libxcb": ("xcb-xfixes" "xcb-sync" "xcb-randr" "xcb-render" "xcb-shape" "xcb-shm" "xcb-xv" "-lxcb-composite" "-lxcb-damage" "-lxcb-dpms" "-lxcb-dri2" "-lxcb-dri3" "-lxcb-glx" "-lxcb-present" "-lxcb-randr" "-lxcb-record" "-lxcb-render" "-lxcb-res" "-lxcb-screensaver" "-lxcb-shape" "-lxcb-shm" "-lxcb-sync" "-lxcb-xevie" "-lxcb-xf86dri" "-lxcb-xfixes" "-lxcb-xinerama" "-lxcb-xkb" "-lxcb-xprint" "-lxcb-xtest" "-lxcb-xv" "-lxcb-xvmc") "libx11": ("xproto" "-lX11-xcb" "-lpthread") "xcb-util-wm": ("-lxcb-ewmh" "-lxcb-icccm") "libxtst": ("xextproto" "xext" "x11") "libxdmcp": ("xproto") "xcb-util-keysyms": ("-lxcb-keysyms") "libxinerama": ("xext" "x11") "libxext": ("x11") "libxft": ("xproto" "freetype2" "fontconfig," "xrender,")