unofficial mirror of guix-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: taylanbayirli@gmail.com (Taylan Ulrich Bayırlı/Kammer)
To: guix-devel@gnu.org
Subject: Re: pkg-config "Requires" fields and propagated inputs
Date: Thu, 26 Mar 2015 23:03:29 +0100	[thread overview]
Message-ID: <87iodnh0we.fsf@taylan.uni.cx> (raw)
In-Reply-To: <87d2444stf.fsf@taylan.uni.cx> ("Taylan Ulrich \=\?utf-8\?Q\?\=5C\=22Bay\=C4\=B1rl\=C4\=B1\=2FKammer\=5C\=22\=22's\?\= message of "Thu, 19 Mar 2015 21:48:28 +0100")

taylanbayirli@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,")

  parent reply	other threads:[~2015-03-26 22:03 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-03-19 20:48 pkg-config "Requires" fields and propagated inputs Taylan Ulrich Bayırlı/Kammer
2015-03-24 20:57 ` Ludovic Courtès
2015-03-24 22:52   ` Taylan Ulrich Bayırlı/Kammer
2015-03-25 16:56     ` Ludovic Courtès
2015-03-25 19:48       ` Taylan Ulrich Bayırlı/Kammer
2015-03-26 22:03 ` Taylan Ulrich Bayırlı/Kammer [this message]
2015-03-31 12:14   ` Ludovic Courtès
2015-04-29 20:17     ` Taylan Ulrich Bayırlı/Kammer
2015-05-03 19:48       ` Ludovic Courtès
2015-05-03 20:57         ` Taylan Ulrich Bayırlı/Kammer

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://guix.gnu.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87iodnh0we.fsf@taylan.uni.cx \
    --to=taylanbayirli@gmail.com \
    --cc=guix-devel@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).