[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: pkg-config "Requires" fields and propagated inputs
From: |
Taylan Ulrich Bayırlı/Kammer |
Subject: |
Re: pkg-config "Requires" fields and propagated inputs |
Date: |
Thu, 26 Mar 2015 23:03:29 +0100 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/24.4 (gnu/linux) |
address@hidden (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,")