summary refs log tree commit diff
path: root/pkgs/development/libraries
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/development/libraries')
-rw-r--r--pkgs/development/libraries/SDL_sixel/default.nix3
-rw-r--r--pkgs/development/libraries/Xaw3d/default.nix3
-rw-r--r--pkgs/development/libraries/afflib/default.nix3
-rw-r--r--pkgs/development/libraries/agg/default.nix3
-rw-r--r--pkgs/development/libraries/at-spi2-atk/default.nix3
-rw-r--r--pkgs/development/libraries/at-spi2-core/default.nix3
-rw-r--r--pkgs/development/libraries/audio/jamomacore/default.nix3
-rw-r--r--pkgs/development/libraries/audio/libbs2b/default.nix3
-rw-r--r--pkgs/development/libraries/audio/libsmf/default.nix3
-rw-r--r--pkgs/development/libraries/audio/lilv/default.nix3
-rw-r--r--pkgs/development/libraries/audio/lv2/default.nix3
-rw-r--r--pkgs/development/libraries/audio/lv2/unstable.nix3
-rw-r--r--pkgs/development/libraries/audio/ntk/default.nix18
-rw-r--r--pkgs/development/libraries/audio/raul/default.nix3
-rw-r--r--pkgs/development/libraries/audio/rtmidi/default.nix3
-rw-r--r--pkgs/development/libraries/audio/sratom/default.nix3
-rw-r--r--pkgs/development/libraries/audio/suil/default.nix3
-rw-r--r--pkgs/development/libraries/audio/vamp/default.nix3
-rw-r--r--pkgs/development/libraries/audiofile/default.nix10
-rw-r--r--pkgs/development/libraries/babl/default.nix4
-rw-r--r--pkgs/development/libraries/biblesync/default.nix3
-rw-r--r--pkgs/development/libraries/blitz/default.nix3
-rw-r--r--pkgs/development/libraries/box2d/default.nix3
-rw-r--r--pkgs/development/libraries/ccrtp/1.8.nix3
-rw-r--r--pkgs/development/libraries/ccrtp/default.nix2
-rw-r--r--pkgs/development/libraries/check/default.nix8
-rw-r--r--pkgs/development/libraries/ctl/default.nix3
-rw-r--r--pkgs/development/libraries/ctpl/default.nix3
-rw-r--r--pkgs/development/libraries/dbus-cplusplus/default.nix3
-rw-r--r--pkgs/development/libraries/dbus/default.nix4
-rw-r--r--pkgs/development/libraries/directfb/default.nix4
-rw-r--r--pkgs/development/libraries/dotconf/default.nix3
-rw-r--r--pkgs/development/libraries/drumstick/default.nix15
-rw-r--r--pkgs/development/libraries/easyloggingpp/default.nix23
-rw-r--r--pkgs/development/libraries/enchant/default.nix3
-rw-r--r--pkgs/development/libraries/exosip/default.nix2
-rw-r--r--pkgs/development/libraries/fflas-ffpack/1.nix4
-rw-r--r--pkgs/development/libraries/fflas-ffpack/default.nix4
-rw-r--r--pkgs/development/libraries/ffmpeg-sixel/default.nix2
-rw-r--r--pkgs/development/libraries/ffmpegthumbnailer/default.nix4
-rw-r--r--pkgs/development/libraries/flite/default.nix2
-rw-r--r--pkgs/development/libraries/fontconfig/2.10.nix3
-rw-r--r--pkgs/development/libraries/fontconfig/default.nix3
-rw-r--r--pkgs/development/libraries/frei0r/default.nix3
-rw-r--r--pkgs/development/libraries/ganv/default.nix3
-rw-r--r--pkgs/development/libraries/gcab/default.nix3
-rw-r--r--pkgs/development/libraries/gdata-sharp/default.nix3
-rw-r--r--pkgs/development/libraries/gdome2/default.nix3
-rw-r--r--pkgs/development/libraries/geoclue/2.0.nix14
-rw-r--r--pkgs/development/libraries/geoclue/default.nix3
-rw-r--r--pkgs/development/libraries/givaro/3.7.nix3
-rw-r--r--pkgs/development/libraries/givaro/3.nix3
-rw-r--r--pkgs/development/libraries/givaro/default.nix3
-rw-r--r--pkgs/development/libraries/glib/default.nix4
-rw-r--r--pkgs/development/libraries/globalplatform/default.nix3
-rw-r--r--pkgs/development/libraries/globalplatform/gppcscconnectionplugin.nix3
-rw-r--r--pkgs/development/libraries/gnet/default.nix3
-rw-r--r--pkgs/development/libraries/gnome-sharp/default.nix3
-rw-r--r--pkgs/development/libraries/gobject-introspection/default.nix3
-rw-r--r--pkgs/development/libraries/goffice/0.8.nix3
-rw-r--r--pkgs/development/libraries/goocanvas/default.nix3
-rw-r--r--pkgs/development/libraries/grail/default.nix3
-rw-r--r--pkgs/development/libraries/granite/default.nix3
-rw-r--r--pkgs/development/libraries/gstreamer/legacy/gnonlin/default.nix3
-rw-r--r--pkgs/development/libraries/gstreamer/legacy/gstreamer/default.nix3
-rw-r--r--pkgs/development/libraries/gtdialog/default.nix5
-rw-r--r--pkgs/development/libraries/gtk+/3.x.nix4
-rw-r--r--pkgs/development/libraries/gtk-sharp/2.0.nix3
-rw-r--r--pkgs/development/libraries/gtk-sharp/3.0.nix3
-rw-r--r--pkgs/development/libraries/gtkdatabox/default.nix2
-rw-r--r--pkgs/development/libraries/gtkimageview/default.nix3
-rw-r--r--pkgs/development/libraries/gtkmathview/default.nix3
-rw-r--r--pkgs/development/libraries/gtkspell/default.nix3
-rw-r--r--pkgs/development/libraries/gtkspellmm/default.nix2
-rw-r--r--pkgs/development/libraries/gts/default.nix3
-rw-r--r--pkgs/development/libraries/gusb/default.nix3
-rw-r--r--pkgs/development/libraries/gvfs/default.nix7
-rw-r--r--pkgs/development/libraries/hidapi/default.nix3
-rw-r--r--pkgs/development/libraries/hivex/default.nix3
-rw-r--r--pkgs/development/libraries/hotpatch/default.nix37
-rw-r--r--pkgs/development/libraries/hyena/default.nix3
-rw-r--r--pkgs/development/libraries/icu/58.nix14
-rw-r--r--pkgs/development/libraries/icu/59.nix4
-rw-r--r--pkgs/development/libraries/icu/base.nix (renamed from pkgs/development/libraries/icu/default.nix)16
-rw-r--r--pkgs/development/libraries/ignition-transport/generic.nix3
-rw-r--r--pkgs/development/libraries/ilixi/default.nix3
-rw-r--r--pkgs/development/libraries/jansson/default.nix4
-rw-r--r--pkgs/development/libraries/java/classpath/default.nix3
-rw-r--r--pkgs/development/libraries/java/jzmq/default.nix4
-rw-r--r--pkgs/development/libraries/kdb/default.nix29
-rw-r--r--pkgs/development/libraries/keybinder/default.nix3
-rw-r--r--pkgs/development/libraries/keybinder3/default.nix3
-rw-r--r--pkgs/development/libraries/kmsxx/default.nix29
-rw-r--r--pkgs/development/libraries/kproperty/default.nix29
-rw-r--r--pkgs/development/libraries/kreport/default.nix27
-rw-r--r--pkgs/development/libraries/languagemachines/frog.nix3
-rw-r--r--pkgs/development/libraries/languagemachines/frogdata.nix3
-rw-r--r--pkgs/development/libraries/languagemachines/libfolia.nix3
-rw-r--r--pkgs/development/libraries/languagemachines/mbt.nix3
-rw-r--r--pkgs/development/libraries/languagemachines/ticcutils.nix3
-rw-r--r--pkgs/development/libraries/languagemachines/timbl.nix3
-rw-r--r--pkgs/development/libraries/languagemachines/timblserver.nix3
-rw-r--r--pkgs/development/libraries/languagemachines/ucto.nix3
-rw-r--r--pkgs/development/libraries/languagemachines/uctodata.nix3
-rw-r--r--pkgs/development/libraries/lasso/default.nix3
-rw-r--r--pkgs/development/libraries/ldb/default.nix3
-rw-r--r--pkgs/development/libraries/lensfun/default.nix3
-rw-r--r--pkgs/development/libraries/libabw/default.nix3
-rw-r--r--pkgs/development/libraries/libast/default.nix2
-rw-r--r--pkgs/development/libraries/libaudclient/default.nix3
-rw-r--r--pkgs/development/libraries/libav/default.nix5
-rw-r--r--pkgs/development/libraries/libavc1394/default.nix2
-rw-r--r--pkgs/development/libraries/libbladeRF/default.nix3
-rw-r--r--pkgs/development/libraries/libcanberra/default.nix3
-rw-r--r--pkgs/development/libraries/libcangjie/default.nix3
-rw-r--r--pkgs/development/libraries/libcdio/0.82.nix3
-rw-r--r--pkgs/development/libraries/libcdio/default.nix3
-rw-r--r--pkgs/development/libraries/libcec/default.nix3
-rw-r--r--pkgs/development/libraries/libchamplain/default.nix3
-rw-r--r--pkgs/development/libraries/libcmis/default.nix3
-rw-r--r--pkgs/development/libraries/libdrm/default.nix4
-rw-r--r--pkgs/development/libraries/libe-book/default.nix6
-rw-r--r--pkgs/development/libraries/libebur128/default.nix3
-rw-r--r--pkgs/development/libraries/libee/default.nix3
-rw-r--r--pkgs/development/libraries/libfakekey/default.nix3
-rw-r--r--pkgs/development/libraries/libfm/default.nix3
-rw-r--r--pkgs/development/libraries/libfreefare/default.nix3
-rw-r--r--pkgs/development/libraries/libftdi/1.x.nix3
-rw-r--r--pkgs/development/libraries/libgig/default.nix3
-rw-r--r--pkgs/development/libraries/libgnurl/default.nix18
-rw-r--r--pkgs/development/libraries/libgringotts/default.nix3
-rw-r--r--pkgs/development/libraries/libgudev/default.nix3
-rw-r--r--pkgs/development/libraries/libguestfs/default.nix3
-rw-r--r--pkgs/development/libraries/libiec61883/default.nix2
-rw-r--r--pkgs/development/libraries/libinfinity/default.nix3
-rw-r--r--pkgs/development/libraries/libinput/default.nix33
-rw-r--r--pkgs/development/libraries/libinput/udev-absolute-path.patch21
-rw-r--r--pkgs/development/libraries/libiodbc/default.nix3
-rw-r--r--pkgs/development/libraries/libjreen/default.nix3
-rw-r--r--pkgs/development/libraries/liblastfmSF/default.nix2
-rw-r--r--pkgs/development/libraries/liblogging/default.nix3
-rw-r--r--pkgs/development/libraries/liblqr-1/default.nix2
-rw-r--r--pkgs/development/libraries/liblscp/default.nix3
-rw-r--r--pkgs/development/libraries/libmatroska/default.nix6
-rw-r--r--pkgs/development/libraries/libmbim/default.nix3
-rw-r--r--pkgs/development/libraries/libmcs/default.nix3
-rw-r--r--pkgs/development/libraries/libmediainfo/default.nix8
-rw-r--r--pkgs/development/libraries/libmesode/default.nix3
-rw-r--r--pkgs/development/libraries/libmicrohttpd/default.nix3
-rw-r--r--pkgs/development/libraries/libmongo-client/default.nix3
-rw-r--r--pkgs/development/libraries/libmrss/default.nix2
-rw-r--r--pkgs/development/libraries/libmtp/default.nix2
-rw-r--r--pkgs/development/libraries/libmusicbrainz/5.x.nix3
-rw-r--r--pkgs/development/libraries/libmwaw/default.nix6
-rw-r--r--pkgs/development/libraries/libmx/default.nix3
-rw-r--r--pkgs/development/libraries/libnetfilter_cthelper/default.nix3
-rw-r--r--pkgs/development/libraries/libnetfilter_cttimeout/default.nix3
-rw-r--r--pkgs/development/libraries/libnetfilter_queue/default.nix3
-rw-r--r--pkgs/development/libraries/libnih/default.nix3
-rw-r--r--pkgs/development/libraries/libnotify/default.nix4
-rw-r--r--pkgs/development/libraries/libodfgen/default.nix5
-rw-r--r--pkgs/development/libraries/libofx/default.nix3
-rw-r--r--pkgs/development/libraries/liboggz/default.nix2
-rw-r--r--pkgs/development/libraries/libosinfo/default.nix3
-rw-r--r--pkgs/development/libraries/libotr/default.nix3
-rw-r--r--pkgs/development/libraries/libpar2/default.nix3
-rw-r--r--pkgs/development/libraries/libpng/default.nix8
-rw-r--r--pkgs/development/libraries/libpseudo/default.nix3
-rw-r--r--pkgs/development/libraries/libpst/default.nix3
-rw-r--r--pkgs/development/libraries/libqalculate/default.nix4
-rw-r--r--pkgs/development/libraries/libqmi/default.nix3
-rw-r--r--pkgs/development/libraries/libqrencode/default.nix3
-rw-r--r--pkgs/development/libraries/librdf/default.nix3
-rw-r--r--pkgs/development/libraries/librelp/default.nix3
-rw-r--r--pkgs/development/libraries/librep/default.nix3
-rw-r--r--pkgs/development/libraries/librevenge/default.nix5
-rw-r--r--pkgs/development/libraries/librevisa/default.nix3
-rw-r--r--pkgs/development/libraries/libsearpc/default.nix3
-rw-r--r--pkgs/development/libraries/libserialport/default.nix3
-rw-r--r--pkgs/development/libraries/libsigcxx/1.2.nix3
-rw-r--r--pkgs/development/libraries/libsndfile/default.nix3
-rw-r--r--pkgs/development/libraries/libspatialite/default.nix3
-rw-r--r--pkgs/development/libraries/libspotify/default.nix3
-rw-r--r--pkgs/development/libraries/libstrophe/default.nix3
-rw-r--r--pkgs/development/libraries/libtap/default.nix2
-rw-r--r--pkgs/development/libraries/libtar/default.nix3
-rw-r--r--pkgs/development/libraries/libtermkey/default.nix3
-rw-r--r--pkgs/development/libraries/libtiger/default.nix3
-rw-r--r--pkgs/development/libraries/libtorrent-rasterbar/generic.nix5
-rw-r--r--pkgs/development/libraries/libtsm/default.nix3
-rw-r--r--pkgs/development/libraries/libtxc_dxtn/default.nix3
-rw-r--r--pkgs/development/libraries/libtxc_dxtn_s2tc/default.nix3
-rw-r--r--pkgs/development/libraries/libui/default.nix3
-rw-r--r--pkgs/development/libraries/libunique/3.x.nix3
-rw-r--r--pkgs/development/libraries/libunique/default.nix3
-rw-r--r--pkgs/development/libraries/libusb1/default.nix2
-rw-r--r--pkgs/development/libraries/libuv/default.nix4
-rw-r--r--pkgs/development/libraries/libvdpau/default.nix3
-rw-r--r--pkgs/development/libraries/libviper/default.nix3
-rw-r--r--pkgs/development/libraries/libvirt-glib/default.nix3
-rw-r--r--pkgs/development/libraries/libvisual/default.nix3
-rw-r--r--pkgs/development/libraries/libvterm/default.nix3
-rw-r--r--pkgs/development/libraries/libwmf/default.nix3
-rw-r--r--pkgs/development/libraries/libwnck/3.x.nix3
-rw-r--r--pkgs/development/libraries/libwnck/default.nix3
-rw-r--r--pkgs/development/libraries/libwps/default.nix3
-rw-r--r--pkgs/development/libraries/libx86/non-x86.patch2
-rw-r--r--pkgs/development/libraries/libxdg-basedir/default.nix24
-rw-r--r--pkgs/development/libraries/libxkbcommon/default.nix3
-rw-r--r--pkgs/development/libraries/loudmouth/default.nix2
-rw-r--r--pkgs/development/libraries/luaffi/default.nix3
-rw-r--r--pkgs/development/libraries/mailcore2/default.nix3
-rw-r--r--pkgs/development/libraries/mapnik/default.nix8
-rw-r--r--pkgs/development/libraries/mediastreamer/msopenh264.nix4
-rw-r--r--pkgs/development/libraries/mesa-glu/default.nix2
-rw-r--r--pkgs/development/libraries/mesa/default.nix23
-rw-r--r--pkgs/development/libraries/mono-zeroconf/default.nix3
-rw-r--r--pkgs/development/libraries/movit/default.nix3
-rw-r--r--pkgs/development/libraries/mps/default.nix3
-rw-r--r--pkgs/development/libraries/mygui/default.nix3
-rw-r--r--pkgs/development/libraries/ndn-cxx/default.nix3
-rw-r--r--pkgs/development/libraries/neardal/default.nix3
-rw-r--r--pkgs/development/libraries/neon/0.29.nix3
-rw-r--r--pkgs/development/libraries/neon/default.nix3
-rw-r--r--pkgs/development/libraries/nspr/default.nix4
-rw-r--r--pkgs/development/libraries/nss/default.nix58
-rw-r--r--pkgs/development/libraries/nss_wrapper/default.nix3
-rw-r--r--pkgs/development/libraries/ntdb/default.nix3
-rw-r--r--pkgs/development/libraries/opal/default.nix3
-rw-r--r--pkgs/development/libraries/opencollada/default.nix3
-rw-r--r--pkgs/development/libraries/openct/default.nix3
-rw-r--r--pkgs/development/libraries/opencv/3.x.nix4
-rw-r--r--pkgs/development/libraries/opencv/default.nix2
-rw-r--r--pkgs/development/libraries/openexr/default.nix3
-rw-r--r--pkgs/development/libraries/openwsman/default.nix3
-rw-r--r--pkgs/development/libraries/pangox-compat/default.nix3
-rw-r--r--pkgs/development/libraries/pangoxsl/default.nix2
-rw-r--r--pkgs/development/libraries/pcl/default.nix18
-rw-r--r--pkgs/development/libraries/phonon/default.nix33
-rw-r--r--pkgs/development/libraries/pkcs11helper/default.nix3
-rw-r--r--pkgs/development/libraries/pocketsphinx/default.nix3
-rw-r--r--pkgs/development/libraries/polkit/default.nix4
-rw-r--r--pkgs/development/libraries/portaudio/default.nix3
-rw-r--r--pkgs/development/libraries/postgis/default.nix26
-rw-r--r--pkgs/development/libraries/protobuf/generic-v3.nix3
-rw-r--r--pkgs/development/libraries/protobuf/generic.nix3
-rw-r--r--pkgs/development/libraries/protobufc/generic.nix3
-rw-r--r--pkgs/development/libraries/ptlib/default.nix3
-rw-r--r--pkgs/development/libraries/qt-4.x/4.8/default.nix34
-rw-r--r--pkgs/development/libraries/qt-5/5.6/qtmultimedia.nix3
-rw-r--r--pkgs/development/libraries/qt-5/5.6/qtwebkit/qtwebkit-icu-59.patch86
-rw-r--r--pkgs/development/libraries/qt-5/5.6/qtwebkit/series1
-rw-r--r--pkgs/development/libraries/qt-5/5.9/fetch.sh2
-rw-r--r--pkgs/development/libraries/qt-5/5.9/qtbase/darwin-series3
-rw-r--r--pkgs/development/libraries/qt-5/5.9/qtbase/default.nix20
-rw-r--r--pkgs/development/libraries/qt-5/5.9/qtbase/mkspecs-common-mac.patch11
-rw-r--r--pkgs/development/libraries/qt-5/5.9/qtbase/mkspecs-features-mac.patch278
-rw-r--r--pkgs/development/libraries/qt-5/5.9/qtmultimedia.nix3
-rw-r--r--pkgs/development/libraries/qt-5/5.9/srcs.nix320
-rw-r--r--pkgs/development/libraries/qt-5/qtbase-setup-hook-darwin.sh6
-rw-r--r--pkgs/development/libraries/rdkafka/default.nix3
-rw-r--r--pkgs/development/libraries/rep-gtk/default.nix3
-rw-r--r--pkgs/development/libraries/rubberband/default.nix3
-rw-r--r--pkgs/development/libraries/serd/default.nix3
-rw-r--r--pkgs/development/libraries/shibboleth-sp/default.nix4
-rw-r--r--pkgs/development/libraries/silgraphite/default.nix22
-rw-r--r--pkgs/development/libraries/silgraphite/graphite2.nix3
-rw-r--r--pkgs/development/libraries/snack/default.nix3
-rw-r--r--pkgs/development/libraries/sord/default.nix3
-rw-r--r--pkgs/development/libraries/spatialite-tools/default.nix3
-rw-r--r--pkgs/development/libraries/spdlog/default.nix15
-rw-r--r--pkgs/development/libraries/sphinxbase/default.nix3
-rw-r--r--pkgs/development/libraries/srtp/default.nix2
-rw-r--r--pkgs/development/libraries/startup-notification/default.nix3
-rw-r--r--pkgs/development/libraries/subunit/default.nix3
-rw-r--r--pkgs/development/libraries/svrcore/default.nix3
-rw-r--r--pkgs/development/libraries/sword/default.nix3
-rw-r--r--pkgs/development/libraries/talloc/default.nix3
-rw-r--r--pkgs/development/libraries/tdb/default.nix3
-rw-r--r--pkgs/development/libraries/telepathy/glib/default.nix3
-rw-r--r--pkgs/development/libraries/tevent/default.nix3
-rw-r--r--pkgs/development/libraries/thrift/default.nix3
-rw-r--r--pkgs/development/libraries/tk/generic.nix3
-rw-r--r--pkgs/development/libraries/twolame/default.nix2
-rw-r--r--pkgs/development/libraries/ucommon/default.nix2
-rw-r--r--pkgs/development/libraries/uhttpmock/default.nix3
-rw-r--r--pkgs/development/libraries/unibilium/default.nix3
-rw-r--r--pkgs/development/libraries/usbredir/default.nix3
-rw-r--r--pkgs/development/libraries/v8/3.24.10.nix6
-rw-r--r--pkgs/development/libraries/v8/6_x.nix171
-rw-r--r--pkgs/development/libraries/v8/generic.nix79
-rwxr-xr-xpkgs/development/libraries/v8/update.sh47
-rw-r--r--pkgs/development/libraries/vaapi-vdpau/default.nix3
-rw-r--r--pkgs/development/libraries/vapoursynth-mvtools/default.nix3
-rw-r--r--pkgs/development/libraries/vulkan-loader/default.nix4
-rw-r--r--pkgs/development/libraries/webkitgtk/2.16.nix4
-rw-r--r--pkgs/development/libraries/wt/default.nix3
-rw-r--r--pkgs/development/libraries/xml-security-c/default.nix3
-rw-r--r--pkgs/development/libraries/xmlsec/default.nix4
-rw-r--r--pkgs/development/libraries/zeitgeist/default.nix3
-rw-r--r--pkgs/development/libraries/zimg/default.nix3
301 files changed, 1729 insertions, 721 deletions
diff --git a/pkgs/development/libraries/SDL_sixel/default.nix b/pkgs/development/libraries/SDL_sixel/default.nix
index 5b8e887c2ee..6279bfcb428 100644
--- a/pkgs/development/libraries/SDL_sixel/default.nix
+++ b/pkgs/development/libraries/SDL_sixel/default.nix
@@ -13,7 +13,8 @@ stdenv.mkDerivation rec {
 
   configureFlags = [ "--enable-video-sixel" ];
 
-  buildInputs = [ pkgconfig libsixel ];
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ libsixel ];
 
   meta = with stdenv.lib; {
     description = "A cross-platform multimedia library, that supports sixel graphics on consoles";
diff --git a/pkgs/development/libraries/Xaw3d/default.nix b/pkgs/development/libraries/Xaw3d/default.nix
index 50399f62d0a..8cadc7290aa 100644
--- a/pkgs/development/libraries/Xaw3d/default.nix
+++ b/pkgs/development/libraries/Xaw3d/default.nix
@@ -8,7 +8,8 @@ stdenv.mkDerivation {
       ];
     sha256 = "099kx6ni5vkgr3kf40glif8m6r1m1hq6hxqlqrblaj1w5cphh8hi";
   };
-  buildInputs = [imake gccmakedep libXpm libXp bison flex pkgconfig];
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [imake gccmakedep libXpm libXp bison flex];
   propagatedBuildInputs = [xlibsWrapper libXmu];
 
   meta = {
diff --git a/pkgs/development/libraries/afflib/default.nix b/pkgs/development/libraries/afflib/default.nix
index 7c697d3e60c..b398af0db34 100644
--- a/pkgs/development/libraries/afflib/default.nix
+++ b/pkgs/development/libraries/afflib/default.nix
@@ -13,7 +13,8 @@ stdenv.mkDerivation rec {
     sha256 = "0piwkmg7jn64h57cjf5cybyvyqxj2k752g9vrf4ycds7nhvvbnb6";
   };
 
-  buildInputs = [ zlib curl expat fuse openssl autoreconfHook python ];
+  nativeBuildInputs = [ autoreconfHook ];
+  buildInputs = [ zlib curl expat fuse openssl python ];
 
   meta = {
     homepage = http://afflib.sourceforge.net/;
diff --git a/pkgs/development/libraries/agg/default.nix b/pkgs/development/libraries/agg/default.nix
index 8b8d3a29193..2edf4e23226 100644
--- a/pkgs/development/libraries/agg/default.nix
+++ b/pkgs/development/libraries/agg/default.nix
@@ -7,7 +7,8 @@ stdenv.mkDerivation rec {
     url = "http://www.antigrain.com/${name}.tar.gz";
     sha256 = "07wii4i824vy9qsvjsgqxppgqmfdxq0xa87i5yk53fijriadq7mb";
   };
-  buildInputs = [ autoconf automake libtool pkgconfig freetype SDL libX11 ];
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ autoconf automake libtool freetype SDL libX11 ];
 
   # fix build with new automake, from Gentoo ebuild
   preConfigure = ''
diff --git a/pkgs/development/libraries/at-spi2-atk/default.nix b/pkgs/development/libraries/at-spi2-atk/default.nix
index 3aef90594a1..e2350cf2cd1 100644
--- a/pkgs/development/libraries/at-spi2-atk/default.nix
+++ b/pkgs/development/libraries/at-spi2-atk/default.nix
@@ -12,7 +12,8 @@ stdenv.mkDerivation rec {
     sha256 = "d25e528e1406a10c7d9b675aa15e638bcbf0a122ca3681f655a30cce83272fb9";
   };
 
-  buildInputs = [ python pkgconfig popt atk libX11 libICE xorg.libXtst libXi
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ python popt atk libX11 libICE xorg.libXtst libXi
                   intltool dbus_glib at_spi2_core libSM ];
 
   meta = with stdenv.lib; {
diff --git a/pkgs/development/libraries/at-spi2-core/default.nix b/pkgs/development/libraries/at-spi2-core/default.nix
index bd8588f9771..95de186a29a 100644
--- a/pkgs/development/libraries/at-spi2-core/default.nix
+++ b/pkgs/development/libraries/at-spi2-core/default.nix
@@ -14,8 +14,9 @@ stdenv.mkDerivation rec {
 
   outputs = [ "out" "dev" ];
 
+  nativeBuildInputs = [ pkgconfig ];
   buildInputs = [
-    python pkgconfig popt  intltool dbus_glib
+    python popt  intltool dbus_glib
     libX11 xextproto libSM libICE libXtst libXi
     gobjectIntrospection
   ];
diff --git a/pkgs/development/libraries/audio/jamomacore/default.nix b/pkgs/development/libraries/audio/jamomacore/default.nix
index 5dac4d8e592..7057b020d42 100644
--- a/pkgs/development/libraries/audio/jamomacore/default.nix
+++ b/pkgs/development/libraries/audio/jamomacore/default.nix
@@ -11,7 +11,8 @@ stdenv.mkDerivation rec {
     sha256 = "1hb9b6qc18rsvzvixgllknn756m6zwcn22c79rdibbyz1bhrcnln";
   };
 
-  buildInputs = [ pkgconfig alsaLib portaudio portmidi libsndfile cmake libxml2 ];
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ alsaLib portaudio portmidi libsndfile cmake libxml2 ];
 
   meta = {
     description = "A C++ platform for building dynamic and reflexive systems with an emphasis on audio and media";
diff --git a/pkgs/development/libraries/audio/libbs2b/default.nix b/pkgs/development/libraries/audio/libbs2b/default.nix
index a21f698fa89..3a4c363e23c 100644
--- a/pkgs/development/libraries/audio/libbs2b/default.nix
+++ b/pkgs/development/libraries/audio/libbs2b/default.nix
@@ -9,7 +9,8 @@ stdenv.mkDerivation rec {
     sha256 = "0vz442kkjn2h0dlxppzi4m5zx8qfyrivq581n06xzvnyxi5rg6a7";
   };
 
-  buildInputs = [ pkgconfig libsndfile ];
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ libsndfile ];
 
   hardeningDisable = [ "format" ];
 
diff --git a/pkgs/development/libraries/audio/libsmf/default.nix b/pkgs/development/libraries/audio/libsmf/default.nix
index dce2e363cda..fe0e0854a32 100644
--- a/pkgs/development/libraries/audio/libsmf/default.nix
+++ b/pkgs/development/libraries/audio/libsmf/default.nix
@@ -8,7 +8,8 @@ stdenv.mkDerivation rec {
     sha256 = "1527pcc1vd0l5iks2yw8m0bymcrnih2md5465lwpzw0wgy4rky7n";
   };
 
-  buildInputs = [ autoreconfHook glib pkgconfig ];
+  nativeBuildInputs = [ autoreconfHook pkgconfig ];
+  buildInputs = [ glib ];
 
   meta = with stdenv.lib; {
     description = "A C library for reading and writing Standard MIDI Files";
diff --git a/pkgs/development/libraries/audio/lilv/default.nix b/pkgs/development/libraries/audio/lilv/default.nix
index 87ff0bdb0b6..427625d6fc6 100644
--- a/pkgs/development/libraries/audio/lilv/default.nix
+++ b/pkgs/development/libraries/audio/lilv/default.nix
@@ -9,7 +9,8 @@ stdenv.mkDerivation rec {
     sha256 = "08m5a372pr1l7aii9s3pic5nm68gynx1n1bc7bnlswziq6qnbv7p";
   };
 
-  buildInputs = [ lv2 pkgconfig python serd sord sratom ];
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ lv2 python serd sord sratom ];
 
   configurePhase = "${python.interpreter} waf configure --prefix=$out";
 
diff --git a/pkgs/development/libraries/audio/lv2/default.nix b/pkgs/development/libraries/audio/lv2/default.nix
index dafd39efee9..3df8f5e3078 100644
--- a/pkgs/development/libraries/audio/lv2/default.nix
+++ b/pkgs/development/libraries/audio/lv2/default.nix
@@ -9,7 +9,8 @@ stdenv.mkDerivation rec {
     sha256 = "0chxwys3vnn3nxc9x2vchm74s9sx0vfra6y893byy12ci61jc1dq";
   };
 
-  buildInputs = [ gtk2 libsndfile pkgconfig python ];
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ gtk2 libsndfile python ];
 
   configurePhase = "${python.interpreter} waf configure --prefix=$out";
 
diff --git a/pkgs/development/libraries/audio/lv2/unstable.nix b/pkgs/development/libraries/audio/lv2/unstable.nix
index 034282c4f3a..595dd9e0a53 100644
--- a/pkgs/development/libraries/audio/lv2/unstable.nix
+++ b/pkgs/development/libraries/audio/lv2/unstable.nix
@@ -10,7 +10,8 @@ stdenv.mkDerivation rec {
     sha256 = "1sx39j0gary2nayzv7xgqcra7z1rcw9hrafkji05aksdwf7q0pdm";
   };
 
-  buildInputs = [ gtk2 libsndfile pkgconfig python ];
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ gtk2 libsndfile python ];
 
   configurePhase = "${python.interpreter} waf configure --prefix=$out";
 
diff --git a/pkgs/development/libraries/audio/ntk/default.nix b/pkgs/development/libraries/audio/ntk/default.nix
index 35144862ce9..6e7cb8d020b 100644
--- a/pkgs/development/libraries/audio/ntk/default.nix
+++ b/pkgs/development/libraries/audio/ntk/default.nix
@@ -1,16 +1,18 @@
-{ stdenv, fetchgit, cairo, libjpeg, libXft, pkgconfig, python2 }:
+{ stdenv, fetchFromGitHub, cairo, libjpeg, libXft, pkgconfig, python2 }:
 
 stdenv.mkDerivation rec {
   name = "ntk-${version}";
-  version = "2017-04-22";
-  src = fetchgit {
-    url = "git://git.tuxfamily.org/gitroot/non/fltk.git";
-    rev = "92365eca0f9a6f054abc70489c009aba0fcde0ff";
-    sha256 = "0pph7hf07xaa011zr40cs62f3f7hclfbv5kcrl757gcp2s5pi2iq";
+  version = "1.3.1000";
+  src = fetchFromGitHub {
+    owner = "original-male";
+    repo = "ntk";
+    rev = "v${version}";
+    sha256 = "0j38mhnfqy6swcrnc5zxcwlqi8b1pgklyghxk6qs1lf4japv2zc0";
   };
 
+  nativeBuildInputs = [ pkgconfig ];
   buildInputs = [
-    cairo libjpeg libXft pkgconfig python2
+    cairo libjpeg libXft python2
   ];
 
   buildPhase = ''
@@ -27,7 +29,7 @@ stdenv.mkDerivation rec {
     version = "${version}";
     homepage = http://non.tuxfamily.org/;
     license = stdenv.lib.licenses.lgpl21;
-    maintainers = [ stdenv.lib.maintainers.magnetophon ];
+    maintainers = with stdenv.lib.maintainers; [ magnetophon nico202 ];
     platforms = stdenv.lib.platforms.linux;
   };
 }
diff --git a/pkgs/development/libraries/audio/raul/default.nix b/pkgs/development/libraries/audio/raul/default.nix
index 94102c38549..b0b0c6bc59a 100644
--- a/pkgs/development/libraries/audio/raul/default.nix
+++ b/pkgs/development/libraries/audio/raul/default.nix
@@ -10,7 +10,8 @@ stdenv.mkDerivation rec {
     sha256 = "1lby508fb0n8ks6iz959sh18fc37br39d6pbapwvbcw5nckdrxwj";
   };
 
-  buildInputs = [ boost gtk2 pkgconfig python ];
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ boost gtk2 python ];
 
   configurePhase = "${python.interpreter} waf configure --prefix=$out";
 
diff --git a/pkgs/development/libraries/audio/rtmidi/default.nix b/pkgs/development/libraries/audio/rtmidi/default.nix
index b41db495dba..022c5504596 100644
--- a/pkgs/development/libraries/audio/rtmidi/default.nix
+++ b/pkgs/development/libraries/audio/rtmidi/default.nix
@@ -11,7 +11,8 @@ stdenv.mkDerivation rec {
     sha256 = "11pl45lp8sq5xkpipwk622w508nw0qcxr03ibicqn1lsws0hva96";
   };
 
-  buildInputs = [ autoconf automake libtool libjack2 alsaLib pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ autoconf automake libtool libjack2 alsaLib ];
 
   preConfigure = ''
     ./autogen.sh --no-configure
diff --git a/pkgs/development/libraries/audio/sratom/default.nix b/pkgs/development/libraries/audio/sratom/default.nix
index 816baa5221e..d30cb1d369e 100644
--- a/pkgs/development/libraries/audio/sratom/default.nix
+++ b/pkgs/development/libraries/audio/sratom/default.nix
@@ -9,7 +9,8 @@ stdenv.mkDerivation rec {
     sha256 = "0hrxd9i66s06bpn6i3s9ka95134g3sm8yscmif7qgdzhyjqw42j4";
   };
 
-  buildInputs = [ lv2 pkgconfig python serd sord ];
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ lv2 python serd sord ];
 
   configurePhase = "${python.interpreter} waf configure --prefix=$out";
 
diff --git a/pkgs/development/libraries/audio/suil/default.nix b/pkgs/development/libraries/audio/suil/default.nix
index 8864d710174..b2cfb0be8be 100644
--- a/pkgs/development/libraries/audio/suil/default.nix
+++ b/pkgs/development/libraries/audio/suil/default.nix
@@ -16,7 +16,8 @@ stdenv.mkDerivation rec {
     sha256 = "1kji3lhha26qr6xm9j8ic5c40zbrrb5qnwm2qxzmsfxgmrz29wkf";
   };
 
-  buildInputs = [ gtk2 lv2 pkgconfig python serd sord sratom ]
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ gtk2 lv2 python serd sord sratom ]
     ++ (lib.optionals withQt4 [ qt4 ])
     ++ (lib.optionals withQt5 (with qt5; [ qtbase qttools ]));
 
diff --git a/pkgs/development/libraries/audio/vamp/default.nix b/pkgs/development/libraries/audio/vamp/default.nix
index f4c4220a879..8cae07e2949 100644
--- a/pkgs/development/libraries/audio/vamp/default.nix
+++ b/pkgs/development/libraries/audio/vamp/default.nix
@@ -13,7 +13,8 @@ rec {
       sha256 = "178kfgq08cmgdzv7g8dwyjp4adwx8q04riimncq4nqkm8ng9ywbv";
     };
 
-    buildInputs = [ pkgconfig libsndfile ];
+  nativeBuildInputs = [ pkgconfig ];
+    buildInputs = [ libsndfile ];
 
     meta = with stdenv.lib; {
       description = "Audio processing plugin system for plugins that extract descriptive information from audio data";
diff --git a/pkgs/development/libraries/audiofile/default.nix b/pkgs/development/libraries/audiofile/default.nix
index 78867881dc3..a7576e07f2d 100644
--- a/pkgs/development/libraries/audiofile/default.nix
+++ b/pkgs/development/libraries/audiofile/default.nix
@@ -3,10 +3,12 @@
 stdenv.mkDerivation rec {
   name = "audiofile-0.3.6";
 
-  nativeBuildInputs = stdenv.lib.optional stdenv.isLinux alsaLib;
-
-  buildInputs = (stdenv.lib.optional stdenv.isDarwin CoreServices) ++
-                (stdenv.lib.optional stdenv.isDarwin AudioUnit);
+  buildInputs =
+    stdenv.lib.optionals stdenv.isLinux [
+      alsaLib
+    ] ++ stdenv.lib.optionals stdenv.isDarwin [
+      CoreServices AudioUnit
+    ];
 
   src = fetchurl {
     url = "http://audiofile.68k.org/${name}.tar.gz";
diff --git a/pkgs/development/libraries/babl/default.nix b/pkgs/development/libraries/babl/default.nix
index 54a84487671..133b39d0797 100644
--- a/pkgs/development/libraries/babl/default.nix
+++ b/pkgs/development/libraries/babl/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl }:
 
 stdenv.mkDerivation rec {
-  name = "babl-0.1.28";
+  name = "babl-0.1.34";
 
   src = fetchurl {
     url = "http://ftp.gtk.org/pub/babl/0.1/${name}.tar.bz2";
-    sha256 = "00w6xfcv960c98qvxv81gcbj8l1jiab9sggmdl77m19awwiyvwv3";
+    sha256 = "0nwakj313l2dh5npx18avkg4z17i2prkxbl6vj547a08n6ry1gsy";
   };
 
   meta = with stdenv.lib; { 
diff --git a/pkgs/development/libraries/biblesync/default.nix b/pkgs/development/libraries/biblesync/default.nix
index 9cf4bb22e58..e6702d0db64 100644
--- a/pkgs/development/libraries/biblesync/default.nix
+++ b/pkgs/development/libraries/biblesync/default.nix
@@ -11,7 +11,8 @@ stdenv.mkDerivation rec{
     sha256 = "0190q2da0ppif2242lahl8xfz01n9sijy60aq1a0545qcp0ilvl8";
   };
 
-  buildInputs = [ pkgconfig cmake libuuid ];
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ cmake libuuid ];
 
   meta = {
     homepage = http://www.crosswire.org/wiki/BibleSync;
diff --git a/pkgs/development/libraries/blitz/default.nix b/pkgs/development/libraries/blitz/default.nix
index 498c8f005f0..5ae9ead9ced 100644
--- a/pkgs/development/libraries/blitz/default.nix
+++ b/pkgs/development/libraries/blitz/default.nix
@@ -31,7 +31,8 @@ stdenv.mkDerivation rec {
 
   patches = [ ./blitz-gcc47.patch ./blitz-testsuite-stencil-et.patch ];
 
-  buildInputs = [ pkgconfig gfortran texinfo ]
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ gfortran texinfo ]
     ++ optional (boost != null) boost;
 
   configureFlags =
diff --git a/pkgs/development/libraries/box2d/default.nix b/pkgs/development/libraries/box2d/default.nix
index 25d291da332..61f0fac7ffd 100644
--- a/pkgs/development/libraries/box2d/default.nix
+++ b/pkgs/development/libraries/box2d/default.nix
@@ -12,8 +12,9 @@ stdenv.mkDerivation rec {
 
   sourceRoot = "Box2D-${version}/Box2D";
 
+  nativeBuildInputs = [ pkgconfig ];
   buildInputs = [
-    unzip cmake mesa freeglut libX11 xproto inputproto libXi pkgconfig
+    unzip cmake mesa freeglut libX11 xproto inputproto libXi
   ];
 
   cmakeFlags = [ "-DBOX2D_INSTALL=ON" "-DBOX2D_BUILD_SHARED=ON" ];
diff --git a/pkgs/development/libraries/ccrtp/1.8.nix b/pkgs/development/libraries/ccrtp/1.8.nix
index 0bdffc9d357..bd83a5c79d5 100644
--- a/pkgs/development/libraries/ccrtp/1.8.nix
+++ b/pkgs/development/libraries/ccrtp/1.8.nix
@@ -8,7 +8,8 @@ stdenv.mkDerivation {
     sha256 = "0wr4dandlfajhmg90nqyvwv61ikn9vdycji001310y3c4zfysprn";
   };
 
-  buildInputs = [ openssl pkgconfig libgcrypt commoncpp2 ];
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ openssl libgcrypt commoncpp2 ];
 
   patches = [ ./gcc-4.6-fix.patch ];
 
diff --git a/pkgs/development/libraries/ccrtp/default.nix b/pkgs/development/libraries/ccrtp/default.nix
index 13a9259fdec..5df7c2279c5 100644
--- a/pkgs/development/libraries/ccrtp/default.nix
+++ b/pkgs/development/libraries/ccrtp/default.nix
@@ -8,7 +8,7 @@ stdenv.mkDerivation rec {
     sha256 = "17ili8l7zqbbkzr1rcy4hlnazkf50mds41wg6n7bfdsx3c7cldgh";
   };
 
-  buildInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ];
   propagatedBuildInputs = [ ucommon openssl libgcrypt ];
 
   configureFlags = [
diff --git a/pkgs/development/libraries/check/default.nix b/pkgs/development/libraries/check/default.nix
index 3bfcde57422..1db991f63fe 100644
--- a/pkgs/development/libraries/check/default.nix
+++ b/pkgs/development/libraries/check/default.nix
@@ -4,11 +4,11 @@
 
 stdenv.mkDerivation rec {
   name = "check-${version}";
-  version = "0.10.0";
+  version = "0.11.0";
 
   src = fetchurl {
-    url = "mirror://sourceforge/check/${version}/check-${version}.tar.gz";
-    sha256 = "0lhhywf5nxl3dd0hdakra3aasl590756c9kmvyifb3vgm9k0gxgm";
+    url = "https://github.com/libcheck/check/releases/download/${version}/check-${version}.tar.gz";
+    sha256 = "05jn1pgb7hqb937xky2147nnq3r4qy5wwr79rddpax3bms5a9xr4";
   };
 
   # Test can randomly fail: http://hydra.nixos.org/build/7243912
@@ -28,7 +28,7 @@ stdenv.mkDerivation rec {
          can be used within source code editors and IDEs.
       '';
 
-    homepage = http://check.sourceforge.net/;
+    homepage = https://libcheck.github.io/check/;
 
     license = licenses.lgpl2Plus;
     platforms = platforms.all;
diff --git a/pkgs/development/libraries/ctl/default.nix b/pkgs/development/libraries/ctl/default.nix
index 4d30afe6818..a4f49dea59a 100644
--- a/pkgs/development/libraries/ctl/default.nix
+++ b/pkgs/development/libraries/ctl/default.nix
@@ -8,7 +8,8 @@ stdenv.mkDerivation {
 
   src = source.src;
 
-  buildInputs = [ cmake pkgconfig libtiff ilmbase openexr ];
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ cmake libtiff ilmbase openexr ];
 
   meta = with stdenv.lib; {
     description = "Color Transformation Language";
diff --git a/pkgs/development/libraries/ctpl/default.nix b/pkgs/development/libraries/ctpl/default.nix
index 6ee04ae5795..fd8fa1a994d 100644
--- a/pkgs/development/libraries/ctpl/default.nix
+++ b/pkgs/development/libraries/ctpl/default.nix
@@ -9,7 +9,8 @@ stdenv.mkDerivation rec {
     sha256 = "1yr92xv9n6kgyixwg9ps4zb404ic5pgb171k4bi3mv9p6k8gv59s";
   };
 
-  buildInputs = [ pkgconfig glib ];
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ glib ];
 
   meta = with stdenv.lib; {
     homepage = http://ctpl.tuxfamily.org/;
diff --git a/pkgs/development/libraries/dbus-cplusplus/default.nix b/pkgs/development/libraries/dbus-cplusplus/default.nix
index 5bf9832843b..ee7afbbf252 100644
--- a/pkgs/development/libraries/dbus-cplusplus/default.nix
+++ b/pkgs/development/libraries/dbus-cplusplus/default.nix
@@ -16,7 +16,8 @@ stdenv.mkDerivation rec {
     sha256 = "0rwcz9pvc13b3yfr0lkifnfz0vb5q6dg240bzgf37ni4s8rpc72g";
   })];
 
-  buildInputs = [ dbus glib pkgconfig expat ];
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ dbus glib expat ];
 
   configureFlags = "--disable-ecore";
 
diff --git a/pkgs/development/libraries/dbus/default.nix b/pkgs/development/libraries/dbus/default.nix
index 17a5c65376b..aa2af9a2ebc 100644
--- a/pkgs/development/libraries/dbus/default.nix
+++ b/pkgs/development/libraries/dbus/default.nix
@@ -6,8 +6,8 @@ assert x11Support -> libX11 != null
                   && libSM != null;
 
 let
-  version = "1.10.22";
-  sha256 = "15vv9gz5i4f5l7h0d045qz5iyvl89hjk2k83lb4vbizd7qg41cg2";
+  version = "1.10.24";
+  sha256 = "06ydmrg76l1kwl3190d72zpiy3qxy248x6gskxbj9qiqfsr4w63i";
 
 self = stdenv.mkDerivation {
     name = "dbus-${version}";
diff --git a/pkgs/development/libraries/directfb/default.nix b/pkgs/development/libraries/directfb/default.nix
index b4dd865dec0..fc533c277bb 100644
--- a/pkgs/development/libraries/directfb/default.nix
+++ b/pkgs/development/libraries/directfb/default.nix
@@ -16,9 +16,9 @@ stdenv.mkDerivation {
     inherit (s) url sha256;
   };
 
-  nativeBuildInputs = [ perl ];
+  nativeBuildInputs = [ perl pkgconfig ];
 
-  buildInputs = [ pkgconfig zlib libjpeg freetype giflib libpng ]
+  buildInputs = [ zlib libjpeg freetype giflib libpng ]
     ++ stdenv.lib.optional enableSDL SDL
     ++ stdenv.lib.optionals enableX11 (with xorg; [
       xproto libX11 libXext #xextproto
diff --git a/pkgs/development/libraries/dotconf/default.nix b/pkgs/development/libraries/dotconf/default.nix
index 61a85c7cd60..efadff6a113 100644
--- a/pkgs/development/libraries/dotconf/default.nix
+++ b/pkgs/development/libraries/dotconf/default.nix
@@ -11,7 +11,8 @@ stdenv.mkDerivation rec {
     sha256 = "1sc95hw5k2xagpafny0v35filmcn05k1ds5ghkldfpf6xw4hakp7";
   };
 
-  buildInputs = [ autoreconfHook ];
+  nativeBuildInputs = [ autoreconfHook ];
+  buildInputs = [ ];
 
   meta = with stdenv.lib; {
     description = "A configuration parser library";
diff --git a/pkgs/development/libraries/drumstick/default.nix b/pkgs/development/libraries/drumstick/default.nix
index 7ec72afc2bf..a46c6bab647 100644
--- a/pkgs/development/libraries/drumstick/default.nix
+++ b/pkgs/development/libraries/drumstick/default.nix
@@ -15,25 +15,12 @@ stdenv.mkDerivation rec {
 
   enableParallelBuilding = true;
 
-  # Prevent the manpage builds from attempting to access the Internet.
-  prePatch = ''
-    substituteInPlace cmake_admin/CreateManpages.cmake --replace \
-      http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl \
-      ${docbook_xsl}/xml/xsl/docbook/manpages/docbook.xsl
-
-    for xml in doc/*.xml.in; do
-      substituteInPlace "$xml" --replace \
-        http://www.docbook.org/xml/4.5/docbookx.dtd \
-        ${docbook_xml_dtd_45}/xml/dtd/docbook/docbookx.dtd
-    done
-  '';
-
   #Temporarily remove drumstick-piano; Gives segment fault. Submitted ticket
   postInstall = ''
     rm $out/bin/drumstick-vpiano
     '';
 
-  nativeBuildInputs = [ cmake pkgconfig ];
+  nativeBuildInputs = [ cmake pkgconfig docbook_xsl docbook_xml_dtd_45 docbook_xml_dtd_45 ];
   buildInputs = [
     alsaLib doxygen fluidsynth qt5.qtbase qt5.qtsvg
   ];
diff --git a/pkgs/development/libraries/easyloggingpp/default.nix b/pkgs/development/libraries/easyloggingpp/default.nix
new file mode 100644
index 00000000000..fe14a1b2b77
--- /dev/null
+++ b/pkgs/development/libraries/easyloggingpp/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchFromGitHub, cmake, gtest }:
+stdenv.mkDerivation rec {
+  name = "easyloggingpp-${version}";
+  version = "9.95.0";
+  src = fetchFromGitHub {
+    owner = "muflihun";
+    repo = "easyloggingpp";
+    rev = "v${version}";
+    sha256 = "0gzmznw6ffag9x55lixxffy6x7mvb7691x0md4q9rbh88zkws7kq";
+  };
+  nativeBuildInputs = [cmake];
+  buildInputs = [gtest];
+  cmakeFlags = [ "-Dtest=ON" "-Dbuild_static_lib=ON"];
+  NIX_CFLAGS_COMPILE = "-std=c++11" +
+    stdenv.lib.optionalString stdenv.isLinux " -pthread";
+  meta = {
+    description = "C++ logging library";
+    homepage = https://muflihun.github.io/easyloggingpp/;
+    license = stdenv.lib.licenses.mit;
+    maintainers = with stdenv.lib.maintainers; [acowley];
+    platforms = stdenv.lib.platforms.all;
+  };
+}
diff --git a/pkgs/development/libraries/enchant/default.nix b/pkgs/development/libraries/enchant/default.nix
index 02a422c2c84..7363a023935 100644
--- a/pkgs/development/libraries/enchant/default.nix
+++ b/pkgs/development/libraries/enchant/default.nix
@@ -10,7 +10,8 @@ stdenv.mkDerivation rec {
     sha256 = "0zq9yw1xzk8k9s6x83n1f9srzcwdavzazn3haln4nhp9wxxrxb1g";
   };
   
-  buildInputs = [aspell pkgconfig glib hunspell hspell];
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [aspell glib hunspell hspell];
   
   meta = {
     homepage = http://www.abisource.com/enchant;
diff --git a/pkgs/development/libraries/exosip/default.nix b/pkgs/development/libraries/exosip/default.nix
index a5dba0c94f1..240f3c136ef 100644
--- a/pkgs/development/libraries/exosip/default.nix
+++ b/pkgs/development/libraries/exosip/default.nix
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
   };
  
   nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [ libosip openssl pkgconfig ];
+  buildInputs = [ libosip openssl ];
       
   meta = with stdenv.lib; {
     license = licenses.gpl2Plus;
diff --git a/pkgs/development/libraries/fflas-ffpack/1.nix b/pkgs/development/libraries/fflas-ffpack/1.nix
index e5b0592daab..5efa378ff5f 100644
--- a/pkgs/development/libraries/fflas-ffpack/1.nix
+++ b/pkgs/development/libraries/fflas-ffpack/1.nix
@@ -7,8 +7,8 @@ stdenv.mkDerivation rec {
     url = "http://linalg.org/fflas-ffpack-${version}.tar.gz";
     sha256 = "02fr675278c65hfiy1chb903j4ix9i8yni1xc2g5nmsjcaf9vra9";
   };
-  buildInputs = [autoreconfHook givaro_3_7 openblas gmpxx];
-  nativeBuildInputs = [pkgconfig];
+  nativeBuildInputs = [ autoreconfHook pkgconfig ];
+  buildInputs = [ givaro_3_7 openblas gmpxx];
   configureFlags = "--with-blas=-lopenblas --with-gmp=${gmpxx.dev} --with-givaro=${givaro_3_7}";
   meta = {
     inherit version;
diff --git a/pkgs/development/libraries/fflas-ffpack/default.nix b/pkgs/development/libraries/fflas-ffpack/default.nix
index 22f4b6ceef0..0e4e897e27a 100644
--- a/pkgs/development/libraries/fflas-ffpack/default.nix
+++ b/pkgs/development/libraries/fflas-ffpack/default.nix
@@ -9,8 +9,8 @@ stdenv.mkDerivation rec {
     rev = "v${version}";
     sha256 = "0k1f4pb7azrm6ajncvg7vni7ixfmn6fssd5ld4xddbi6jqbsf9rd";
   };
-  buildInputs = [autoreconfHook givaro (liblapack.override {shared = true;}) openblas];
-  nativeBuildInputs = [pkgconfig];
+  nativeBuildInputs = [ autoreconfHook pkgconfig ];
+  buildInputs = [ givaro (liblapack.override {shared = true;}) openblas];
   configureFlags = "--with-blas-libs=-lopenblas --with-lapack-libs=-llapack";
   meta = {
     inherit version;
diff --git a/pkgs/development/libraries/ffmpeg-sixel/default.nix b/pkgs/development/libraries/ffmpeg-sixel/default.nix
index dced5582cf6..a3ce9ea9c2b 100644
--- a/pkgs/development/libraries/ffmpeg-sixel/default.nix
+++ b/pkgs/development/libraries/ffmpeg-sixel/default.nix
@@ -13,8 +13,8 @@ stdenv.mkDerivation rec {
     sha256 = "00s2lggfdj2ibpngpyqqg7360p7yb69ys1ppg59yvv0m0mxk5x3k";
   };
 
+  nativeBuildInputs = [ pkgconfig ];
   buildInputs = [
-    pkgconfig
     libsixel
     yasm
   ];
diff --git a/pkgs/development/libraries/ffmpegthumbnailer/default.nix b/pkgs/development/libraries/ffmpegthumbnailer/default.nix
index c6167252866..9e76c1e6400 100644
--- a/pkgs/development/libraries/ffmpegthumbnailer/default.nix
+++ b/pkgs/development/libraries/ffmpegthumbnailer/default.nix
@@ -1,4 +1,4 @@
-{ pkgs, fetchFromGitHub, stdenv, ffmpeg, cmake, libpng, pkgconfig
+{ pkgs, fetchFromGitHub, stdenv, ffmpeg, cmake, libpng, pkgconfig, libjpeg
 }:
 
 stdenv.mkDerivation rec {
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs = [ cmake pkgconfig ];
-  buildInputs = [ ffmpeg libpng ];
+  buildInputs = [ ffmpeg libpng libjpeg ];
 
   meta = with stdenv.lib;  {
     homepage = https://github.com/dirkvdb/ffmpegthumbnailer;
diff --git a/pkgs/development/libraries/flite/default.nix b/pkgs/development/libraries/flite/default.nix
index bf690c020cb..483f02f823f 100644
--- a/pkgs/development/libraries/flite/default.nix
+++ b/pkgs/development/libraries/flite/default.nix
@@ -8,7 +8,7 @@ stdenv.mkDerivation rec {
     sha256 = "197cc2a1f045b1666a29a9b5f035b3d676db6db94a4439d99a03b65e551ae2e0";
   };
 
-  buildInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ];
 
   configureFlags = ''
     --enable-shared
diff --git a/pkgs/development/libraries/fontconfig/2.10.nix b/pkgs/development/libraries/fontconfig/2.10.nix
index 7eaba8f75ec..3f3c04b15a3 100644
--- a/pkgs/development/libraries/fontconfig/2.10.nix
+++ b/pkgs/development/libraries/fontconfig/2.10.nix
@@ -13,7 +13,8 @@ stdenv.mkDerivation rec {
   outputs = [ "bin" "dev" "lib" "out" ]; # $out contains all the config
 
   propagatedBuildInputs = [ freetype ];
-  buildInputs = [ pkgconfig expat ];
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ expat ];
 
   configureFlags = [
     "--sysconfdir=/etc"
diff --git a/pkgs/development/libraries/fontconfig/default.nix b/pkgs/development/libraries/fontconfig/default.nix
index f176aa0878c..9c4116c8f0b 100644
--- a/pkgs/development/libraries/fontconfig/default.nix
+++ b/pkgs/development/libraries/fontconfig/default.nix
@@ -45,7 +45,8 @@ stdenv.mkDerivation rec {
   outputs = [ "bin" "dev" "lib" "out" ]; # $out contains all the config
 
   propagatedBuildInputs = [ freetype ];
-  buildInputs = [ pkgconfig expat ];
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ expat ];
 
   configureFlags = [
     "--with-cache-dir=/var/cache/fontconfig" # otherwise the fallback is in $out/
diff --git a/pkgs/development/libraries/frei0r/default.nix b/pkgs/development/libraries/frei0r/default.nix
index 9614762ef2a..1c0c4c3ace8 100644
--- a/pkgs/development/libraries/frei0r/default.nix
+++ b/pkgs/development/libraries/frei0r/default.nix
@@ -9,7 +9,8 @@ stdenv.mkDerivation rec {
     sha256 = "0pji26fpd0dqrx1akyhqi6729s394irl73dacnyxk58ijqq4dhp0";
   };
 
-  buildInputs = [ autoconf cairo opencv pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ autoconf cairo opencv ];
 
   meta = with stdenv.lib; {
     homepage = http://frei0r.dyne.org;
diff --git a/pkgs/development/libraries/ganv/default.nix b/pkgs/development/libraries/ganv/default.nix
index 7530d82a7e3..5a21af6a2b3 100644
--- a/pkgs/development/libraries/ganv/default.nix
+++ b/pkgs/development/libraries/ganv/default.nix
@@ -10,7 +10,8 @@ stdenv.mkDerivation rec {
     sha256 = "0xmbykdl42jn9cgzrqrys5lng67d26nk5xq10wkkvjqldiwdck56";
   };
 
-  buildInputs = [ graphviz gtk2 gtkmm2 pkgconfig python ];
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ graphviz gtk2 gtkmm2 python ];
 
   configurePhase = "${python.interpreter} waf configure --prefix=$out";
 
diff --git a/pkgs/development/libraries/gcab/default.nix b/pkgs/development/libraries/gcab/default.nix
index 11308a93337..38a36fc4e54 100644
--- a/pkgs/development/libraries/gcab/default.nix
+++ b/pkgs/development/libraries/gcab/default.nix
@@ -9,7 +9,8 @@ stdenv.mkDerivation rec {
     sha256 = "1vxdsiky3492zlyrym02sdwf09y19rl2z5h5iin7qm0wizw5wvm1";
   };
 
-  buildInputs = [ intltool gobjectIntrospection pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ intltool gobjectIntrospection ];
 
   meta = with stdenv.lib; {
     platforms = platforms.linux;
diff --git a/pkgs/development/libraries/gdata-sharp/default.nix b/pkgs/development/libraries/gdata-sharp/default.nix
index e9f5898e2ea..40e9b0ed90d 100644
--- a/pkgs/development/libraries/gdata-sharp/default.nix
+++ b/pkgs/development/libraries/gdata-sharp/default.nix
@@ -12,7 +12,8 @@ in stdenv.mkDerivation rec {
     sha256 = "0b0rvgg3xsbbg2fdrpz0ywsy9rcahlyfskndaagd3yzm83gi6bhk";
   };
 
-  buildInputs = [ pkgconfig mono newtonsoft-json ];
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ mono newtonsoft-json ];
 
   sourceRoot = "svn-r1217/clients/cs";
 
diff --git a/pkgs/development/libraries/gdome2/default.nix b/pkgs/development/libraries/gdome2/default.nix
index e9643da221e..306f228051b 100644
--- a/pkgs/development/libraries/gdome2/default.nix
+++ b/pkgs/development/libraries/gdome2/default.nix
@@ -15,7 +15,8 @@ stdenv.mkDerivation {
 
   hardeningDisable = [ "format" ];
 
-  buildInputs = [pkgconfig glib libxml2 gtkdoc];
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ glib libxml2 gtkdoc];
   propagatedBuildInputs = [glib libxml2];
   patches = [ ./xml-document.patch ];
 
diff --git a/pkgs/development/libraries/geoclue/2.0.nix b/pkgs/development/libraries/geoclue/2.0.nix
index 8cc06f9269e..64d61d64bb6 100644
--- a/pkgs/development/libraries/geoclue/2.0.nix
+++ b/pkgs/development/libraries/geoclue/2.0.nix
@@ -1,19 +1,23 @@
 { fetchurl, stdenv, intltool, libintlOrEmpty, pkgconfig, glib, json_glib, libsoup, geoip
-, dbus, dbus_glib, modemmanager, avahi
+, dbus, dbus_glib, modemmanager, avahi, glib_networking, wrapGAppsHook
 }:
 
 with stdenv.lib;
 
 stdenv.mkDerivation rec {
-  name = "geoclue-2.4.3";
+  name = "geoclue-2.4.7";
 
   src = fetchurl {
     url = "http://www.freedesktop.org/software/geoclue/releases/2.4/${name}.tar.xz";
-    sha256 = "0pk07k65dlw37nz8z5spksivsv5nh96xmbi336rf2yfxf2ldpadd";
+    sha256 = "19hfmr8fa1js8ynazdyjxlyrqpjn6m1719ay70ilga4rayxrcyyi";
   };
 
+  nativeBuildInputs = [
+    pkgconfig intltool wrapGAppsHook
+  ];
+
   buildInputs = libintlOrEmpty ++
-   [ intltool pkgconfig glib json_glib libsoup geoip
+   [ glib json_glib libsoup geoip
      dbus dbus_glib avahi
    ] ++ optionals (!stdenv.isDarwin) [ modemmanager ];
 
@@ -31,7 +35,7 @@ stdenv.mkDerivation rec {
 
   NIX_CFLAGS_COMPILE = optionalString stdenv.isDarwin " -lintl";
 
-  propagatedBuildInputs = [ dbus dbus_glib glib ];
+  propagatedBuildInputs = [ dbus dbus_glib glib glib_networking ];
 
   meta = with stdenv.lib; {
     description = "Geolocation framework and some data providers";
diff --git a/pkgs/development/libraries/geoclue/default.nix b/pkgs/development/libraries/geoclue/default.nix
index 433a1722e76..f7529000539 100644
--- a/pkgs/development/libraries/geoclue/default.nix
+++ b/pkgs/development/libraries/geoclue/default.nix
@@ -8,7 +8,8 @@ stdenv.mkDerivation rec {
     sha256 = "15j619kvmdgj2hpma92mkxbzjvgn8147a7500zl3bap9g8bkylqg";
   };
 
-  buildInputs = [ pkgconfig libxml2 gnome2.GConf libxslt glib_networking ];
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ libxml2 gnome2.GConf libxslt glib_networking ];
 
   propagatedBuildInputs = [dbus glib dbus_glib];
 
diff --git a/pkgs/development/libraries/givaro/3.7.nix b/pkgs/development/libraries/givaro/3.7.nix
index 9907ae24f2c..3101bc64333 100644
--- a/pkgs/development/libraries/givaro/3.7.nix
+++ b/pkgs/development/libraries/givaro/3.7.nix
@@ -7,7 +7,8 @@ stdenv.mkDerivation rec {
     url = "https://forge.imag.fr/frs/download.php/370/givaro-${version}.tar.gz";
     sha256 = "0lf5cnbyr27fw7klc3zabkb1979dn67jmrjz6pa3jzw2ng74x9b3";
   };
-  buildInputs = [autoconf automake libtool autoreconfHook gmpxx];
+  nativeBuildInputs = [ autoreconfHook ];
+  buildInputs = [autoconf automake libtool gmpxx];
   meta = {
     inherit version;
     description = ''A C++ library for arithmetic and algebraic computations'';
diff --git a/pkgs/development/libraries/givaro/3.nix b/pkgs/development/libraries/givaro/3.nix
index bb0fd0e0898..d73a448f166 100644
--- a/pkgs/development/libraries/givaro/3.nix
+++ b/pkgs/development/libraries/givaro/3.nix
@@ -7,7 +7,8 @@ stdenv.mkDerivation rec {
     url = "https://forge.imag.fr/frs/download.php/592/givaro-${version}.tar.gz";
     sha256 = "1822ksv8653a84hvcz0vxl3nk8dqz7d41ys8rplq0zjjmvb2i5yq";
   };
-  buildInputs = [autoconf automake libtool autoreconfHook gmpxx];
+  nativeBuildInputs = [ autoreconfHook ];
+  buildInputs = [autoconf automake libtool gmpxx];
   meta = {
     inherit version;
     description = ''A C++ library for arithmetic and algebraic computations'';
diff --git a/pkgs/development/libraries/givaro/default.nix b/pkgs/development/libraries/givaro/default.nix
index d9a8624b2ea..335afa566db 100644
--- a/pkgs/development/libraries/givaro/default.nix
+++ b/pkgs/development/libraries/givaro/default.nix
@@ -9,7 +9,8 @@ stdenv.mkDerivation rec {
     rev = "v${version}";
     sha256 = "04n1lyc823z3l1d7mnmqpc9z1pkn646szjchasbfkn74m7cb0qz7";
   };
-  buildInputs = [autoconf automake libtool autoreconfHook gmpxx];
+  nativeBuildInputs = [ autoreconfHook ];
+  buildInputs = [autoconf automake libtool gmpxx];
   meta = {
     inherit version;
     description = ''A C++ library for arithmetic and algebraic computations'';
diff --git a/pkgs/development/libraries/glib/default.nix b/pkgs/development/libraries/glib/default.nix
index 39140eaf519..b82fd5f1e29 100644
--- a/pkgs/development/libraries/glib/default.nix
+++ b/pkgs/development/libraries/glib/default.nix
@@ -43,7 +43,7 @@ let
   '';
 
   ver_maj = "2.54";
-  ver_min = "0";
+  ver_min = "1";
 in
 
 stdenv.mkDerivation rec {
@@ -51,7 +51,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "mirror://gnome/sources/glib/${ver_maj}/${name}.tar.xz";
-    sha256 = "fe22998ff0394ec31e6e5511c379b74011bee61a4421bca7fcab223dfbe0fc6a";
+    sha256 = "50c01b1419324f10fbf9b9709ec2164b18586968bdce7540583bf32302cf47a3";
   };
 
   patches = optional stdenv.isDarwin ./darwin-compilation.patch
diff --git a/pkgs/development/libraries/globalplatform/default.nix b/pkgs/development/libraries/globalplatform/default.nix
index a7dd47aaeb4..5b55a09db62 100644
--- a/pkgs/development/libraries/globalplatform/default.nix
+++ b/pkgs/development/libraries/globalplatform/default.nix
@@ -9,7 +9,8 @@ stdenv.mkDerivation rec {
     sha256 = "191s9005xbc7i90bzjk4rlw15licd6m0rls9fxli8jyymz2021zy";
   };
 
-  buildInputs = [ zlib pkgconfig openssl pcsclite ];
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ zlib openssl pcsclite ];
 
   meta = with stdenv.lib; {
     homepage = https://sourceforge.net/p/globalplatform/wiki/Home/;
diff --git a/pkgs/development/libraries/globalplatform/gppcscconnectionplugin.nix b/pkgs/development/libraries/globalplatform/gppcscconnectionplugin.nix
index f147305220c..10df82196c2 100644
--- a/pkgs/development/libraries/globalplatform/gppcscconnectionplugin.nix
+++ b/pkgs/development/libraries/globalplatform/gppcscconnectionplugin.nix
@@ -9,7 +9,8 @@ stdenv.mkDerivation rec {
     sha256 = "0d3vcrh9z55rbal0dchmj661pqqrav9c400bx1c46grcl1q022ad";
   };
 
-  buildInputs = [ pkgconfig globalplatform openssl pcsclite ];
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ globalplatform openssl pcsclite ];
 
   meta = with stdenv.lib; {
     homepage = https://sourceforge.net/p/globalplatform/wiki/Home/;
diff --git a/pkgs/development/libraries/gnet/default.nix b/pkgs/development/libraries/gnet/default.nix
index 6b05bda1b3a..c9431420194 100644
--- a/pkgs/development/libraries/gnet/default.nix
+++ b/pkgs/development/libraries/gnet/default.nix
@@ -9,7 +9,8 @@ stdenv.mkDerivation {
     sha256 = "1cy78kglzi235md964ikvm0rg801bx0yk9ya8zavndjnaarzqq87";
   };
 
-  buildInputs = [ pkgconfig autoconf automake glib libtool ];
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ autoconf automake glib libtool ];
 
   preConfigure = "./autogen.sh";
 
diff --git a/pkgs/development/libraries/gnome-sharp/default.nix b/pkgs/development/libraries/gnome-sharp/default.nix
index f95d0720d83..d80144b3d71 100644
--- a/pkgs/development/libraries/gnome-sharp/default.nix
+++ b/pkgs/development/libraries/gnome-sharp/default.nix
@@ -7,7 +7,8 @@ stdenv.mkDerivation {
     sha256 = "0cfvs7hw67fp0wimskqd0gdfx323gv6hi0c5pf59krnmhdrl6z8p";
   };
 
-  buildInputs = [ pkgconfig gtk2 mono gtk-sharp-2_0 ]
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ gtk2 mono gtk-sharp-2_0 ]
   ++ (with gnome2; [ libart_lgpl gnome_vfs libgnome libgnomecanvas libgnomeui]);
 
   patches = [ ./Makefile.in.patch ];
diff --git a/pkgs/development/libraries/gobject-introspection/default.nix b/pkgs/development/libraries/gobject-introspection/default.nix
index 4c1f6135b49..b26ae9c9d61 100644
--- a/pkgs/development/libraries/gobject-introspection/default.nix
+++ b/pkgs/development/libraries/gobject-introspection/default.nix
@@ -23,7 +23,8 @@ stdenv.mkDerivation rec {
   outputBin = "dev";
   outputMan = "dev"; # tiny pages
 
-  buildInputs = [ flex bison pkgconfig python setupHook/*move .gir*/ ]
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ flex bison python setupHook/*move .gir*/ ]
     ++ libintlOrEmpty
     ++ stdenv.lib.optional stdenv.isDarwin cctools;
   propagatedBuildInputs = [ libffi glib ];
diff --git a/pkgs/development/libraries/goffice/0.8.nix b/pkgs/development/libraries/goffice/0.8.nix
index 2da683fcbeb..e050a615dd1 100644
--- a/pkgs/development/libraries/goffice/0.8.nix
+++ b/pkgs/development/libraries/goffice/0.8.nix
@@ -13,8 +13,9 @@ stdenv.mkDerivation rec {
   # fix linking error: undefined reference to pcre_info
   patches = [ ./pcre_info.patch ]; # inspired by https://bugs.php.net/bug.php?id=60986
 
+  nativeBuildInputs = [ pkgconfig ];
   buildInputs = [
-    pkgconfig libglade bzip2 libart intltool gettext
+    libglade bzip2 libart intltool gettext
     gconf libgnomeui pcre
   ];
 
diff --git a/pkgs/development/libraries/goocanvas/default.nix b/pkgs/development/libraries/goocanvas/default.nix
index 080b781ca31..0f9b3f85fcd 100644
--- a/pkgs/development/libraries/goocanvas/default.nix
+++ b/pkgs/development/libraries/goocanvas/default.nix
@@ -10,7 +10,8 @@ stdenv.mkDerivation rec {
     sha256 = "07kicpcacbqm3inp7zq32ldp95mxx4kfxpaazd0x5jk7hpw2w1qw";
   };
 
-  buildInputs = [ gtk2 cairo glib pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ gtk2 cairo glib ];
 
   meta = { 
     description = "Canvas widget for GTK+ based on the the Cairo 2D library";
diff --git a/pkgs/development/libraries/grail/default.nix b/pkgs/development/libraries/grail/default.nix
index c8b1c0bdd9b..a48490ffae5 100644
--- a/pkgs/development/libraries/grail/default.nix
+++ b/pkgs/development/libraries/grail/default.nix
@@ -10,7 +10,8 @@ stdenv.mkDerivation rec {
     sha256 = "1wwx5ibjdz5pyd0f5cd1n91y67r68dymxpm2lgd829041xjizvay";
   };
 
-  buildInputs = [ pkgconfig python3 frame ]
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ python3 frame ]
   ++ stdenv.lib.optionals enableX11 [xorg.libX11 xorg.libXtst xorg.libXext xorg.libXi xorg.libXfixes];
 
   configureFlags = stdenv.lib.optional enableX11 "--with-x11";
diff --git a/pkgs/development/libraries/granite/default.nix b/pkgs/development/libraries/granite/default.nix
index ee453963376..be869063111 100644
--- a/pkgs/development/libraries/granite/default.nix
+++ b/pkgs/development/libraries/granite/default.nix
@@ -9,7 +9,8 @@ stdenv.mkDerivation rec {
     sha256 = "1pf4jkz3xyn1sqv70063im80ayb5kdsqwqwx11dc7vgypsl458cm";
   };
   cmakeFlags = "-DINTROSPECTION_GIRDIR=share/gir-1.0/ -DINTROSPECTION_TYPELIBDIR=lib/girepository-1.0";
-  buildInputs = [perl cmake vala pkgconfig gobjectIntrospection glib gtk3 gnome3.libgee gettext];
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [perl cmake vala gobjectIntrospection glib gtk3 gnome3.libgee gettext];
   meta = {
     description = "An extension to GTK+ used by elementary OS";
     longDescription = "An extension to GTK+ that provides several useful widgets and classes to ease application development. Designed for elementary OS.";
diff --git a/pkgs/development/libraries/gstreamer/legacy/gnonlin/default.nix b/pkgs/development/libraries/gstreamer/legacy/gnonlin/default.nix
index 608be653889..402074a4e5f 100644
--- a/pkgs/development/libraries/gstreamer/legacy/gnonlin/default.nix
+++ b/pkgs/development/libraries/gstreamer/legacy/gnonlin/default.nix
@@ -11,7 +11,8 @@ stdenv.mkDerivation rec {
     sha256 = "0dc9kvr6i7sh91cyhzlbx2bchwg84rfa4679ccppzjf0y65dv8p4";
   };
 
-  buildInputs = [ gst-plugins-base gstreamer pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ gst-plugins-base gstreamer ];
 
   meta = {
     homepage = https://gstreamer.freedesktop.org/modules/gnonlin.html;
diff --git a/pkgs/development/libraries/gstreamer/legacy/gstreamer/default.nix b/pkgs/development/libraries/gstreamer/legacy/gstreamer/default.nix
index c20d32e810c..55d34a3fada 100644
--- a/pkgs/development/libraries/gstreamer/legacy/gstreamer/default.nix
+++ b/pkgs/development/libraries/gstreamer/legacy/gstreamer/default.nix
@@ -13,7 +13,8 @@ stdenv.mkDerivation rec {
 
   outputs = [ "out" "dev" ];
 
-  buildInputs = [ perl bison flex pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ perl bison flex ];
   propagatedBuildInputs = [ glib libxml2 ] ++ libintlOrEmpty;
 
   patchPhase = ''
diff --git a/pkgs/development/libraries/gtdialog/default.nix b/pkgs/development/libraries/gtdialog/default.nix
index 8a023be5629..d6f745d399d 100644
--- a/pkgs/development/libraries/gtdialog/default.nix
+++ b/pkgs/development/libraries/gtdialog/default.nix
@@ -9,13 +9,14 @@ let
     url="http://foicica.com/gtdialog/download/gtdialog_1.3.zip";
     sha256="0y7sln877940bpj0s38cs5s97xg8csnaihh18lmnchf7c2kkbxpq";
   };
+  nativeBuildInputs = [ pkgconfig ];
   buildInputs = [
-    cdk unzip gtk2 glib ncurses pkgconfig
+    cdk unzip gtk2 glib ncurses
   ];
 in
 stdenv.mkDerivation {
   inherit (s) name version;
-  inherit buildInputs;
+  inherit nativeBuildInputs buildInputs;
   src = fetchurl {
     inherit (s) url sha256;
   };
diff --git a/pkgs/development/libraries/gtk+/3.x.nix b/pkgs/development/libraries/gtk+/3.x.nix
index f5d75177963..1d0930d8d03 100644
--- a/pkgs/development/libraries/gtk+/3.x.nix
+++ b/pkgs/development/libraries/gtk+/3.x.nix
@@ -13,7 +13,7 @@ with stdenv.lib;
 
 let
   ver_maj = "3.22";
-  ver_min = "21";
+  ver_min = "24";
   version = "${ver_maj}.${ver_min}";
 in
 stdenv.mkDerivation rec {
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "mirror://gnome/sources/gtk+/${ver_maj}/gtk+-${version}.tar.xz";
-    sha256 = "1bd3c1a85cfb4db112cabb5379abb05a1a94fe43052d309d573493fca00e6b87";
+    sha256 = "cbb16e4cfc928ab8f5f22f7290616f95f6ebc8c97cc724a2007b07ced833592b";
   };
 
   outputs = [ "out" "dev" ];
diff --git a/pkgs/development/libraries/gtk-sharp/2.0.nix b/pkgs/development/libraries/gtk-sharp/2.0.nix
index ca6c4d0dfa6..5b3ca828a3f 100644
--- a/pkgs/development/libraries/gtk-sharp/2.0.nix
+++ b/pkgs/development/libraries/gtk-sharp/2.0.nix
@@ -32,8 +32,9 @@ stdenv.mkDerivation {
     done
   '';
 
+  nativeBuildInputs = [ pkgconfig ];
   buildInputs = [
-    pkgconfig mono glib pango gtk2 GConf libglade libgnomecanvas
+    mono glib pango gtk2 GConf libglade libgnomecanvas
     libgtkhtml libgnomeui libgnomeprint libgnomeprintui gtkhtml libxml2
   ];
 
diff --git a/pkgs/development/libraries/gtk-sharp/3.0.nix b/pkgs/development/libraries/gtk-sharp/3.0.nix
index 459f37afc7f..3a473d6303a 100644
--- a/pkgs/development/libraries/gtk-sharp/3.0.nix
+++ b/pkgs/development/libraries/gtk-sharp/3.0.nix
@@ -31,8 +31,9 @@ stdenv.mkDerivation {
   #   done
   # '';
 
+  nativeBuildInputs = [ pkgconfig ];
   buildInputs = [
-    pkgconfig mono glib pango gtk3 GConf libglade libgnomecanvas
+    mono glib pango gtk3 GConf libglade libgnomecanvas
     libgtkhtml libgnomeui libgnomeprint libgnomeprintui gtkhtml libxml2
   ];
 
diff --git a/pkgs/development/libraries/gtkdatabox/default.nix b/pkgs/development/libraries/gtkdatabox/default.nix
index 82c4f25f66c..de5fd8343e3 100644
--- a/pkgs/development/libraries/gtkdatabox/default.nix
+++ b/pkgs/development/libraries/gtkdatabox/default.nix
@@ -8,7 +8,7 @@ stdenv.mkDerivation rec {
     sha256 = "0h20685bzw5j5h6mw8c6apbrbrd9w518c6xdhr55147px11nhnkl";
   };
 
-  buildInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ];
 
   propagatedBuildInputs = [ gtk2 ];
 
diff --git a/pkgs/development/libraries/gtkimageview/default.nix b/pkgs/development/libraries/gtkimageview/default.nix
index eb0ba2db103..20584c3850a 100644
--- a/pkgs/development/libraries/gtkimageview/default.nix
+++ b/pkgs/development/libraries/gtkimageview/default.nix
@@ -8,7 +8,8 @@ stdenv.mkDerivation rec {
     sha256 = "1if3yh5z6nkv5wnkk0qyy9pkk03vn5rqbfk23q87kj39pqscgr37";
   };
 
-  buildInputs = [ pkgconfig gtk2 ];
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ gtk2 ];
 
   preConfigure = ''
     sed '/DEPRECATED_FLAGS/d' -i configure
diff --git a/pkgs/development/libraries/gtkmathview/default.nix b/pkgs/development/libraries/gtkmathview/default.nix
index e36d77142e9..12b9181a952 100644
--- a/pkgs/development/libraries/gtkmathview/default.nix
+++ b/pkgs/development/libraries/gtkmathview/default.nix
@@ -13,7 +13,8 @@ stdenv.mkDerivation {
     sha256 = "0hwcamf5fi35frg7q6kgisc9v0prqbhsplb2gl55cg3av9sh3hqx";
   };
 
-  buildInputs = [pkgconfig t1lib glib gmetadom libxml2 popt];
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ t1lib glib gmetadom libxml2 popt];
   propagatedBuildInputs = [gtk2 t1lib];
 
   patches = [ ./gcc-4.3-build-fixes.patch ./gcc-4.4-build-fixes.patch ];
diff --git a/pkgs/development/libraries/gtkspell/default.nix b/pkgs/development/libraries/gtkspell/default.nix
index 22b96abf642..22094f3a3f6 100644
--- a/pkgs/development/libraries/gtkspell/default.nix
+++ b/pkgs/development/libraries/gtkspell/default.nix
@@ -8,7 +8,8 @@ stdenv.mkDerivation {
     sha256 = "00hdv28bp72kg1mq2jdz1sdw2b8mb9iclsp7jdqwpck705bdriwg";
   };
   
-  buildInputs = [aspell pkgconfig gtk2 enchant intltool];
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [aspell gtk2 enchant intltool];
 
   meta = {
     platforms = stdenv.lib.platforms.unix;
diff --git a/pkgs/development/libraries/gtkspellmm/default.nix b/pkgs/development/libraries/gtkspellmm/default.nix
index be2ae044022..04456b44019 100644
--- a/pkgs/development/libraries/gtkspellmm/default.nix
+++ b/pkgs/development/libraries/gtkspellmm/default.nix
@@ -21,8 +21,8 @@ stdenv.mkDerivation rec {
     gtkspell3
   ];
 
+  nativeBuildInputs = [ pkgconfig ];
   buildInputs = [
-    pkgconfig
     gtk3 glib glibmm gtkmm3
   ];
 
diff --git a/pkgs/development/libraries/gts/default.nix b/pkgs/development/libraries/gts/default.nix
index 17ab80ce586..59b3a34f7bd 100644
--- a/pkgs/development/libraries/gts/default.nix
+++ b/pkgs/development/libraries/gts/default.nix
@@ -10,7 +10,8 @@ stdenv.mkDerivation rec {
     sha256 = "07mqx09jxh8cv9753y2d2jsv7wp8vjmrd7zcfpbrddz3wc9kx705";
   };
 
-  buildInputs = [ glib pkgconfig ] ++ stdenv.lib.optional (stdenv.system == "x86_64-darwin") gettext;
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ glib ] ++ stdenv.lib.optional (stdenv.system == "x86_64-darwin") gettext;
 
   meta = {
     homepage = http://gts.sourceforge.net/;
diff --git a/pkgs/development/libraries/gusb/default.nix b/pkgs/development/libraries/gusb/default.nix
index 0157fa1762c..93f24b0f722 100644
--- a/pkgs/development/libraries/gusb/default.nix
+++ b/pkgs/development/libraries/gusb/default.nix
@@ -14,8 +14,9 @@ stdenv.mkDerivation rec {
 
   preConfigure = "./autogen.sh";
 
+  nativeBuildInputs = [ pkgconfig ];
   buildInputs = [
-    pkgconfig autoconf automake libtool which gtkdoc gettext gobjectIntrospection libxslt
+    autoconf automake libtool which gtkdoc gettext gobjectIntrospection libxslt
     systemd vala_0_23 glib
   ];
 
diff --git a/pkgs/development/libraries/gvfs/default.nix b/pkgs/development/libraries/gvfs/default.nix
index 11c3134e10b..6eb341d66bc 100644
--- a/pkgs/development/libraries/gvfs/default.nix
+++ b/pkgs/development/libraries/gvfs/default.nix
@@ -16,12 +16,15 @@ stdenv.mkDerivation rec {
     sha256 = "e752e7bb46e64e4025f63428d4f5247e3e5c0d0b5eeb4f81dbf1cd7b75f59d7b";
   };
 
-  nativeBuildInputs = [ pkgconfig intltool libtool ];
+  nativeBuildInputs = [
+    pkgconfig intltool libtool
+    libxml2 libxslt docbook_xsl
+  ];
 
   buildInputs =
     [ makeWrapper glib dbus udev libgudev udisks2 libgcrypt
       libgphoto2 avahi libarchive fuse libcdio
-      libxml2 libxslt docbook_xsl samba libmtp libcap polkit
+      samba libmtp libcap polkit
       # ToDo: a ligther version of libsoup to have FTP/HTTP support?
     ] ++ stdenv.lib.optionals gnomeSupport (with gnome; [
       gtk libsoup libgnome_keyring gconf gcr
diff --git a/pkgs/development/libraries/hidapi/default.nix b/pkgs/development/libraries/hidapi/default.nix
index 80085759a76..51c369f7c2d 100644
--- a/pkgs/development/libraries/hidapi/default.nix
+++ b/pkgs/development/libraries/hidapi/default.nix
@@ -11,7 +11,8 @@ stdenv.mkDerivation rec {
     sha256 = "13d5jkmh9nh4c2kjch8k8amslnxapa9vkqzrk1z6rqmw8qgvzbkj";
   };
 
-  buildInputs = [ autoreconfHook pkgconfig ]
+  nativeBuildInputs = [ autoreconfHook pkgconfig ];
+  buildInputs = [ ]
     ++ stdenv.lib.optionals stdenv.isLinux [ udev libusb ];
 
   propagatedBuildInputs = stdenv.lib.optionals stdenv.isDarwin (with darwin.apple_sdk.frameworks; [ IOKit Cocoa ]);
diff --git a/pkgs/development/libraries/hivex/default.nix b/pkgs/development/libraries/hivex/default.nix
index eced02fd33e..7b4b9866d04 100644
--- a/pkgs/development/libraries/hivex/default.nix
+++ b/pkgs/development/libraries/hivex/default.nix
@@ -12,8 +12,9 @@ stdenv.mkDerivation rec {
 
   patches = [ ./hivex-syms.patch ];
 
+  nativeBuildInputs = [ pkgconfig ];
   buildInputs = [
-    pkgconfig autoreconfHook makeWrapper
+    autoreconfHook makeWrapper
     perl libxml2 IOStringy
   ];
 
diff --git a/pkgs/development/libraries/hotpatch/default.nix b/pkgs/development/libraries/hotpatch/default.nix
new file mode 100644
index 00000000000..df3581cc809
--- /dev/null
+++ b/pkgs/development/libraries/hotpatch/default.nix
@@ -0,0 +1,37 @@
+{ stdenv, fetchFromGitHub, cmake }:
+
+stdenv.mkDerivation rec {
+  name = "hotpatch-0.2";
+
+  src = fetchFromGitHub {
+    owner = "vikasnkumar";
+    repo = "hotpatch";
+    rev = "4b65e3f275739ea5aa798d4ad083c4cb10e29149";
+    sha256 = "169vdh55wsbn6fl58lpzqx64v6ifzh7krykav33x1d9hsk98qjqh";
+  };
+
+  enableParallelBuilding = true;
+  doCheck = true;
+
+  nativeBuildInputs = [ cmake ];
+
+  preConfigure = ''
+    substituteInPlace test/loader.c \
+      --replace \"/lib64/ld-linux-x86-64.so.2 \""$(cat $NIX_CC/nix-support/dynamic-linker)" \
+      --replace \"/lib/ld-linux-x86-64.so.2 \""$(cat $NIX_CC/nix-support/dynamic-linker)" \
+      --replace \"/lib/ld-linux.so.2 \""$(cat $NIX_CC/nix-support/dynamic-linker)" \
+      --replace \"/lib32/ld-linux.so.2 \""$(cat $NIX_CC/nix-support/dynamic-linker)"
+  '';
+
+  checkPhase = ''
+    LD_LIBRARY_PATH=$(pwd)/src make test
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Hot patching executables on Linux using .so file injection";
+    homepage = src.meta.homepage;
+    license = licenses.bsd3;
+    maintainers = [ maintainers.gnidorah ];
+    platforms = ["i686-linux" "x86_64-linux"];
+  };
+}
diff --git a/pkgs/development/libraries/hyena/default.nix b/pkgs/development/libraries/hyena/default.nix
index 2c1ca6aeb1e..edd35bd27e4 100644
--- a/pkgs/development/libraries/hyena/default.nix
+++ b/pkgs/development/libraries/hyena/default.nix
@@ -9,8 +9,9 @@ stdenv.mkDerivation rec {
     sha256 = "eb7154a42b6529bb9746c39272719f3168d6363ed4bad305a916ed7d90bc8de9";
   };
 
+  nativeBuildInputs = [ pkgconfig ];
   buildInputs = [
-    pkgconfig mono gtk-sharp-2_0
+    mono gtk-sharp-2_0
   ];
 
   postPatch = ''
diff --git a/pkgs/development/libraries/icu/58.nix b/pkgs/development/libraries/icu/58.nix
new file mode 100644
index 00000000000..e5b80f4b270
--- /dev/null
+++ b/pkgs/development/libraries/icu/58.nix
@@ -0,0 +1,14 @@
+args @ { stdenv, fetchurl, fetchpatch, fixDarwinDylibNames }:
+let
+  keywordFix = fetchurl {
+    url = "http://bugs.icu-project.org/trac/changeset/39484?format=diff";
+    name = "icu-changeset-39484.diff";
+    sha256 = "0hxhpgydalyxacaaxlmaddc1sjwh65rsnpmg0j414mnblq74vmm8";
+  };
+in
+import ./base.nix {
+  version = "58.2";
+  sha256 = "036shcb3f8bm1lynhlsb4kpjm9s9c2vdiir01vg216rs2l8482ib";
+  patches = [ keywordFix ];
+  patchFlags = "-p4";
+} args
diff --git a/pkgs/development/libraries/icu/59.nix b/pkgs/development/libraries/icu/59.nix
new file mode 100644
index 00000000000..9ca66ca525f
--- /dev/null
+++ b/pkgs/development/libraries/icu/59.nix
@@ -0,0 +1,4 @@
+import ./base.nix {
+  version = "59.1";
+  sha256 = "1zkmbg2932ggvpgjp8pys0cj6z8bw087y8858009shkrjfpzscki";
+}
diff --git a/pkgs/development/libraries/icu/default.nix b/pkgs/development/libraries/icu/base.nix
index 173c9bb58ad..78e0c574044 100644
--- a/pkgs/development/libraries/icu/default.nix
+++ b/pkgs/development/libraries/icu/base.nix
@@ -1,16 +1,8 @@
+{ version, sha256, patches ? [], patchFlags ? "" }:
 { stdenv, fetchurl, fetchpatch, fixDarwinDylibNames }:
 
 let
   pname = "icu4c";
-  version = "58.2";
-
-  # this patch should no longer be needed in 58.3
-  # https://bugs.gentoo.org/show_bug.cgi?id=599142#c14
-  keywordFix = fetchurl {
-    url = "http://bugs.icu-project.org/trac/changeset/39484?format=diff";
-    name = "icu-changeset-39484.diff";
-    sha256 = "0hxhpgydalyxacaaxlmaddc1sjwh65rsnpmg0j414mnblq74vmm8";
-  };
 in
 stdenv.mkDerivation {
   name = pname + "-" + version;
@@ -18,7 +10,7 @@ stdenv.mkDerivation {
   src = fetchurl {
     url = "http://download.icu-project.org/files/${pname}/${version}/${pname}-"
       + (stdenv.lib.replaceChars ["."] ["_"] version) + "-src.tgz";
-    sha256 = "036shcb3f8bm1lynhlsb4kpjm9s9c2vdiir01vg216rs2l8482ib";
+    inherit sha256;
   };
 
   outputs = [ "out" "dev" ];
@@ -33,9 +25,7 @@ stdenv.mkDerivation {
     echo Source root reset to ''${sourceRoot}
   '';
 
-  patchFlags = "-p4";
-
-  patches = [ keywordFix ];
+  inherit patchFlags patches;
 
   preConfigure = ''
     sed -i -e "s|/bin/sh|${stdenv.shell}|" configure
diff --git a/pkgs/development/libraries/ignition-transport/generic.nix b/pkgs/development/libraries/ignition-transport/generic.nix
index 5edbf9e4551..8206338fb08 100644
--- a/pkgs/development/libraries/ignition-transport/generic.nix
+++ b/pkgs/development/libraries/ignition-transport/generic.nix
@@ -9,7 +9,8 @@ stdenv.mkDerivation rec {
   name = "ign-transport-${version}";
   inherit src;
 
-  buildInputs = [ cmake protobuf zeromq pkgconfig
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ cmake protobuf zeromq
     utillinux # we need utillinux/e2fsprogs uuid/uuid.h
   ];
 
diff --git a/pkgs/development/libraries/ilixi/default.nix b/pkgs/development/libraries/ilixi/default.nix
index 6fd204c236f..0213148d693 100644
--- a/pkgs/development/libraries/ilixi/default.nix
+++ b/pkgs/development/libraries/ilixi/default.nix
@@ -11,7 +11,8 @@ stdenv.mkDerivation rec {
     sha256 = "1kmdmqf68jiv7y6as41bhbgdy70yy2i811a3l6kccbazlzpif34v";
   };
 
-  buildInputs = [ pkgconfig directfb libsigcxx libxml2 fontconfig ];
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ directfb libsigcxx libxml2 fontconfig ];
 
   configureFlags = ''
     --enable-log-debug --enable-debug --enable-trace --with-examples
diff --git a/pkgs/development/libraries/jansson/default.nix b/pkgs/development/libraries/jansson/default.nix
index 70ed2d00fea..2fbb2e3948c 100644
--- a/pkgs/development/libraries/jansson/default.nix
+++ b/pkgs/development/libraries/jansson/default.nix
@@ -1,11 +1,11 @@
 {stdenv, fetchurl}:
 
 stdenv.mkDerivation rec {
-  name = "jansson-2.9";
+  name = "jansson-2.10";
 
   src = fetchurl {
     url = "http://www.digip.org/jansson/releases/${name}.tar.gz";
-    sha256 = "19fjgfwjfj99rqa3kf96x5rssj88siazggksgrikd6h4r9sd1l0a";
+    sha256 = "0iv4rxsnamqm3ldpg7dyhjq0x9cp023nc7ac820jdd3pwb8ml8bq";
   };
 
   meta = with stdenv.lib; {
diff --git a/pkgs/development/libraries/java/classpath/default.nix b/pkgs/development/libraries/java/classpath/default.nix
index 9fb2a2a2e3a..82e02d06906 100644
--- a/pkgs/development/libraries/java/classpath/default.nix
+++ b/pkgs/development/libraries/java/classpath/default.nix
@@ -10,7 +10,8 @@ stdenv.mkDerivation rec {
 
   patches = [ ./missing-casts.patch ];
 
-  buildInputs = [ javac jvm antlr pkgconfig gtk2 gconf ecj ];
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ javac jvm antlr gtk2 gconf ecj ];
 
   configurePhase = ''
     # GCJ tries to compile all of Classpath during the `configure' run when
diff --git a/pkgs/development/libraries/java/jzmq/default.nix b/pkgs/development/libraries/java/jzmq/default.nix
index 9a5527b5a13..7d229d2577a 100644
--- a/pkgs/development/libraries/java/jzmq/default.nix
+++ b/pkgs/development/libraries/java/jzmq/default.nix
@@ -11,8 +11,8 @@ stdenv.mkDerivation rec {
     sha256 = "1wlzs604mgmqmrgpk4pljx2nrlxzdfi3r8k59qlm90fx8qkqkc63";
   };
 
-  nativeBuildInputs = [ autoreconfHook ];
-  buildInputs = [ pkgconfig zeromq3 jdk ];
+  nativeBuildInputs = [ autoreconfHook pkgconfig ];
+  buildInputs = [ zeromq3 jdk ];
 
   preConfigure = ''
     ${if stdenv.system == "x86_64-darwin" then
diff --git a/pkgs/development/libraries/kdb/default.nix b/pkgs/development/libraries/kdb/default.nix
new file mode 100644
index 00000000000..399d5914c2d
--- /dev/null
+++ b/pkgs/development/libraries/kdb/default.nix
@@ -0,0 +1,29 @@
+{
+  mkDerivation, lib, fetchurl,
+  extra-cmake-modules,
+  qtbase, qttranslations, kcoreaddons, python2, sqlite, postgresql, libmysql
+}:
+
+mkDerivation rec {
+  pname = "kdb";
+  version = "3.0.2";
+  name = "${pname}-${version}";
+
+  src = fetchurl {
+    url = "mirror://kde/stable/${pname}/src/${name}.tar.xz";
+    sha256 = "1n11xhqk3sf4a5nzvnrnj7bj21yqqqkm2d1xzfx3q82fkyah8s49";
+  };
+
+  nativeBuildInputs = [ extra-cmake-modules ];
+
+  buildInputs = [ qttranslations kcoreaddons python2 sqlite postgresql libmysql ];
+
+  propagatedBuildInputs = [ qtbase ];
+
+  meta = with lib; {
+    description = "A database connectivity and creation framework for various database vendors";
+    license = licenses.lgpl2;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ zraexy ];
+  };
+}
diff --git a/pkgs/development/libraries/keybinder/default.nix b/pkgs/development/libraries/keybinder/default.nix
index 838affca77a..5ce1b8ec13c 100644
--- a/pkgs/development/libraries/keybinder/default.nix
+++ b/pkgs/development/libraries/keybinder/default.nix
@@ -14,8 +14,9 @@ in stdenv.mkDerivation rec {
     sha256 = "0kkplz5snycik5xknwq1s8rnmls3qsp32z09mdpmaacydcw7g3cf";
   };
 
+  nativeBuildInputs = [ pkgconfig ];
   buildInputs = [
-    autoconf automake libtool pkgconfig gnome3.gnome_common gtk_doc gnome3.gtk3
+    autoconf automake libtool gnome3.gnome_common gtk_doc gnome3.gtk3
     python pygobject3 pygtk lua libX11 libXext libXrender gobjectIntrospection gtk2
   ];
 
diff --git a/pkgs/development/libraries/keybinder3/default.nix b/pkgs/development/libraries/keybinder3/default.nix
index cfc8590c639..f4158f7edbb 100644
--- a/pkgs/development/libraries/keybinder3/default.nix
+++ b/pkgs/development/libraries/keybinder3/default.nix
@@ -13,8 +13,9 @@ stdenv.mkDerivation rec {
     sha256 = "1jdcrfhvqffhc2h69197wkpc5j5synk5mm8rqhz27qfrfhh4vf0q";
   };
 
+  nativeBuildInputs = [ pkgconfig ];
   buildInputs = [
-    autoconf automake libtool pkgconfig gnome3.gnome_common gtk_doc
+    autoconf automake libtool gnome3.gnome_common gtk_doc
     libX11 libXext libXrender gobjectIntrospection gtk3
   ];
 
diff --git a/pkgs/development/libraries/kmsxx/default.nix b/pkgs/development/libraries/kmsxx/default.nix
new file mode 100644
index 00000000000..490732c3802
--- /dev/null
+++ b/pkgs/development/libraries/kmsxx/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchFromGitHub, cmake, pkgconfig, libdrm, python }:
+
+stdenv.mkDerivation rec {
+  name = "kmsxx-2017-10-10";
+
+  src = fetchFromGitHub {
+    owner = "tomba";
+    repo = "kmsxx";
+    fetchSubmodules = true;
+    rev = "f32b82c17cd357ae1c8ed2636266113955293feb";
+    sha256 = "14panqdqq83wh6wym5afdiyrr78mb12ga63pgrppj27kgv398yjj";
+  };
+
+  enableParallelBuilding = true;
+
+  nativeBuildInputs = [ cmake pkgconfig ];
+  buildInputs = [ libdrm python ];
+
+  pythonPath = [ ];
+  passthru.python = python;
+
+  meta = with stdenv.lib; {
+    description = "C++11 library, utilities and python bindings for Linux kernel mode setting";
+    homepage = https://github.com/tomba/kmsxx;
+    license = licenses.mpl20;
+    maintainers = with maintainers; [ gnidorah ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/development/libraries/kproperty/default.nix b/pkgs/development/libraries/kproperty/default.nix
new file mode 100644
index 00000000000..52b5d944b41
--- /dev/null
+++ b/pkgs/development/libraries/kproperty/default.nix
@@ -0,0 +1,29 @@
+{
+  mkDerivation, lib, fetchurl,
+  extra-cmake-modules,
+  qtbase, kconfig, kcoreaddons, kwidgetsaddons, kguiaddons
+}:
+
+mkDerivation rec {
+  pname = "kproperty";
+  version = "3.0.2";
+  name = "${pname}-${version}";
+
+  src = fetchurl {
+    url = "mirror://kde/stable/${pname}/src/${name}.tar.xz";
+    sha256 = "1hzkvdap7dzpnxlp4rfg5f24fhqjpqm2hlvv88gj4c0scbp73ynm";
+  };
+
+  nativeBuildInputs = [ extra-cmake-modules ];
+
+  buildInputs = [ kconfig kcoreaddons kwidgetsaddons kguiaddons ];
+
+  propagatedBuildInputs = [ qtbase ];
+
+  meta = with lib; {
+    description = "A property editing framework with editor widget similar to what is known from Qt Designer";
+    license = licenses.lgpl2;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ zraexy ];
+  };
+}
diff --git a/pkgs/development/libraries/kreport/default.nix b/pkgs/development/libraries/kreport/default.nix
new file mode 100644
index 00000000000..561e964c961
--- /dev/null
+++ b/pkgs/development/libraries/kreport/default.nix
@@ -0,0 +1,27 @@
+{
+  mkDerivation, lib, fetchurl,
+  extra-cmake-modules,
+  qtbase, qtdeclarative, qtwebkit, kconfig, kcoreaddons, kwidgetsaddons, kguiaddons, kproperty, marble, python2
+}:
+
+mkDerivation rec {
+  pname = "kreport";
+  version = "3.0.2";
+  name = "${pname}-${version}";
+
+  src = fetchurl {
+    url = "mirror://kde/stable/${pname}/src/${name}.tar.xz";
+    sha256 = "1zd3vhf26cyp8xrq11awm9pmhnk88ppyc0riyr0gxj8y703ahkp0";
+  };
+
+  nativeBuildInputs = [ extra-cmake-modules ];
+
+  buildInputs = [ qtdeclarative qtwebkit kconfig kcoreaddons kwidgetsaddons kguiaddons kproperty marble python2 ];
+
+  meta = with lib; {
+    description = "A framework for creation and generation of reports in multiple formats";
+    license = licenses.lgpl2;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ zraexy ];
+  };
+}
diff --git a/pkgs/development/libraries/languagemachines/frog.nix b/pkgs/development/libraries/languagemachines/frog.nix
index c80c28eb14b..725bc714db2 100644
--- a/pkgs/development/libraries/languagemachines/frog.nix
+++ b/pkgs/development/libraries/languagemachines/frog.nix
@@ -13,7 +13,8 @@ stdenv.mkDerivation {
   version = release.version;
   src = fetchurl { inherit (release) url sha256;
                    name = "frog-${release.version}.tar.gz"; };
-  buildInputs = [ automake autoconf libtool pkgconfig autoconf-archive
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ automake autoconf libtool autoconf-archive
                   libxml2 icu
                   languageMachines.ticcutils
                   languageMachines.timbl
diff --git a/pkgs/development/libraries/languagemachines/frogdata.nix b/pkgs/development/libraries/languagemachines/frogdata.nix
index d9578c380e6..42d14d08335 100644
--- a/pkgs/development/libraries/languagemachines/frogdata.nix
+++ b/pkgs/development/libraries/languagemachines/frogdata.nix
@@ -13,7 +13,8 @@ stdenv.mkDerivation {
   version = release.version;
   src = fetchurl { inherit (release) url sha256;
                    name = "frogdata-${release.version}.tar.gz"; };
-  buildInputs = [ automake autoconf libtool pkgconfig autoconf-archive
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ automake autoconf libtool autoconf-archive
                 ];
 
   preConfigure = ''
diff --git a/pkgs/development/libraries/languagemachines/libfolia.nix b/pkgs/development/libraries/languagemachines/libfolia.nix
index 9cddbdd22d9..d5c232ae776 100644
--- a/pkgs/development/libraries/languagemachines/libfolia.nix
+++ b/pkgs/development/libraries/languagemachines/libfolia.nix
@@ -12,7 +12,8 @@ stdenv.mkDerivation {
   version = release.version;
   src = fetchurl { inherit (release) url sha256;
                    name = "libfolia-${release.version}.tar.gz"; };
-  buildInputs = [ automake autoconf libtool pkgconfig autoconf-archive libxml2 icu languageMachines.ticcutils ];
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ automake autoconf libtool autoconf-archive libxml2 icu languageMachines.ticcutils ];
   preConfigure = "sh bootstrap.sh";
 
   meta = with stdenv.lib; {
diff --git a/pkgs/development/libraries/languagemachines/mbt.nix b/pkgs/development/libraries/languagemachines/mbt.nix
index 0ba7e686e43..2ffabac1ede 100644
--- a/pkgs/development/libraries/languagemachines/mbt.nix
+++ b/pkgs/development/libraries/languagemachines/mbt.nix
@@ -13,7 +13,8 @@ stdenv.mkDerivation {
   version = release.version;
   src = fetchurl { inherit (release) url sha256;
                    name = "mbt-${release.version}.tar.gz"; };
-  buildInputs = [ automake autoconf libtool pkgconfig autoconf-archive
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ automake autoconf libtool autoconf-archive
                   libxml2
                   languageMachines.ticcutils
                   languageMachines.timbl
diff --git a/pkgs/development/libraries/languagemachines/ticcutils.nix b/pkgs/development/libraries/languagemachines/ticcutils.nix
index f1cb62e6802..738e53556ba 100644
--- a/pkgs/development/libraries/languagemachines/ticcutils.nix
+++ b/pkgs/development/libraries/languagemachines/ticcutils.nix
@@ -11,7 +11,8 @@ stdenv.mkDerivation {
   version = release.version;
   src = fetchurl { inherit (release) url sha256;
                    name = "ticcutils-${release.version}.tar.gz"; };
-  buildInputs = [ automake autoconf libtool pkgconfig autoconf-archive libxml2
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ automake autoconf libtool autoconf-archive libxml2
                   # optional:
                   zlib bzip2 libtar
                   # broken but optional: boost
diff --git a/pkgs/development/libraries/languagemachines/timbl.nix b/pkgs/development/libraries/languagemachines/timbl.nix
index 6a60996dc60..d12c970d4dc 100644
--- a/pkgs/development/libraries/languagemachines/timbl.nix
+++ b/pkgs/development/libraries/languagemachines/timbl.nix
@@ -13,7 +13,8 @@ stdenv.mkDerivation {
   version = release.version;
   src = fetchurl { inherit (release) url sha256;
                    name = "timbl-${release.version}.tar.gz"; };
-  buildInputs = [ automake autoconf libtool pkgconfig autoconf-archive
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ automake autoconf libtool autoconf-archive
                   libxml2
                   languageMachines.ticcutils
                 ];
diff --git a/pkgs/development/libraries/languagemachines/timblserver.nix b/pkgs/development/libraries/languagemachines/timblserver.nix
index d8659c9a86b..7a07e9f33a8 100644
--- a/pkgs/development/libraries/languagemachines/timblserver.nix
+++ b/pkgs/development/libraries/languagemachines/timblserver.nix
@@ -13,7 +13,8 @@ stdenv.mkDerivation {
   version = release.version;
   src = fetchurl { inherit (release) url sha256;
                    name = "timblserver-${release.version}.tar.gz"; };
-  buildInputs = [ automake autoconf libtool pkgconfig autoconf-archive
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ automake autoconf libtool autoconf-archive
                   libxml2
                   languageMachines.ticcutils
                   languageMachines.timbl
diff --git a/pkgs/development/libraries/languagemachines/ucto.nix b/pkgs/development/libraries/languagemachines/ucto.nix
index d60bca41272..5c12a2142cc 100644
--- a/pkgs/development/libraries/languagemachines/ucto.nix
+++ b/pkgs/development/libraries/languagemachines/ucto.nix
@@ -13,7 +13,8 @@ stdenv.mkDerivation {
   version = release.version;
   src = fetchurl { inherit (release) url sha256;
                    name = "ucto-${release.version}.tar.gz"; };
-  buildInputs = [ automake autoconf libtool pkgconfig autoconf-archive
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ automake autoconf libtool autoconf-archive
                   icu libxml2
                   languageMachines.ticcutils
                   languageMachines.libfolia
diff --git a/pkgs/development/libraries/languagemachines/uctodata.nix b/pkgs/development/libraries/languagemachines/uctodata.nix
index 33037dbb87f..56b6448d253 100644
--- a/pkgs/development/libraries/languagemachines/uctodata.nix
+++ b/pkgs/development/libraries/languagemachines/uctodata.nix
@@ -12,7 +12,8 @@ stdenv.mkDerivation {
   version = release.version;
   src = fetchurl { inherit (release) url sha256;
                    name = "uctodata-${release.version}.tar.gz"; };
-  buildInputs = [ automake autoconf libtool pkgconfig autoconf-archive ];
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ automake autoconf libtool autoconf-archive ];
   preConfigure = "sh bootstrap.sh";
 
   meta = with stdenv.lib; {
diff --git a/pkgs/development/libraries/lasso/default.nix b/pkgs/development/libraries/lasso/default.nix
index a16a1f431a6..09001b6a6f0 100644
--- a/pkgs/development/libraries/lasso/default.nix
+++ b/pkgs/development/libraries/lasso/default.nix
@@ -11,7 +11,8 @@ stdenv.mkDerivation rec {
 
   };
 
-  buildInputs = [ autoconf automake autoreconfHook glib gobjectIntrospection gtk_doc libtool libxml2 libxslt openssl pkgconfig python27Packages.six xmlsec zlib ];
+  nativeBuildInputs = [ autoreconfHook pkgconfig ];
+  buildInputs = [ autoconf automake glib gobjectIntrospection gtk_doc libtool libxml2 libxslt openssl python27Packages.six xmlsec zlib ];
 
   configurePhase = ''
     ./configure --with-pkg-config=$PKG_CONFIG_PATH \
diff --git a/pkgs/development/libraries/ldb/default.nix b/pkgs/development/libraries/ldb/default.nix
index 54196ae48ff..4f2785675f0 100644
--- a/pkgs/development/libraries/ldb/default.nix
+++ b/pkgs/development/libraries/ldb/default.nix
@@ -12,8 +12,9 @@ stdenv.mkDerivation rec {
 
   outputs = [ "out" "dev" ];
 
+  nativeBuildInputs = [ pkgconfig ];
   buildInputs = [
-    python pkgconfig readline tdb talloc tevent popt
+    python readline tdb talloc tevent popt
     libxslt docbook_xsl docbook_xml_dtd_42
   ];
 
diff --git a/pkgs/development/libraries/lensfun/default.nix b/pkgs/development/libraries/lensfun/default.nix
index bd740b75758..5791b0808b4 100644
--- a/pkgs/development/libraries/lensfun/default.nix
+++ b/pkgs/development/libraries/lensfun/default.nix
@@ -9,7 +9,8 @@ stdenv.mkDerivation rec {
     sha256 = "0cfk8jjhs9nbfjfdy98plrj9ayi59aph0nx6ppslgjhlcvacm2xf";
   };
 
-  buildInputs = [ pkgconfig glib zlib libpng cmake gnumake3 ];
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ glib zlib libpng cmake gnumake3 ];
 
   configureFlags = "-v";
 
diff --git a/pkgs/development/libraries/libabw/default.nix b/pkgs/development/libraries/libabw/default.nix
index 42abb3d297c..71a28085541 100644
--- a/pkgs/development/libraries/libabw/default.nix
+++ b/pkgs/development/libraries/libabw/default.nix
@@ -15,7 +15,8 @@ stdenv.mkDerivation rec {
     sed -i 's,^CPPFLAGS.*,\0 -DBOOST_ERROR_CODE_HEADER_ONLY -DBOOST_SYSTEM_NO_DEPRECATED,' src/lib/Makefile.in
   '';
 
-  buildInputs = [ boost doxygen gperf pkgconfig librevenge libxml2 perl ];
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ boost doxygen gperf librevenge libxml2 perl ];
 
   meta = with stdenv.lib; {
     homepage = https://wiki.documentfoundation.org/DLP/Libraries/libabw;
diff --git a/pkgs/development/libraries/libast/default.nix b/pkgs/development/libraries/libast/default.nix
index 745736559ab..900bcac4156 100644
--- a/pkgs/development/libraries/libast/default.nix
+++ b/pkgs/development/libraries/libast/default.nix
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
     sha256 = "1w7bs46r4lykfd83kc3bg9i1rxzzlb4ydk23ikf8mx8avz05q1aj";
   };
 
-  buildInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ];
 
   meta = with stdenv.lib; {
     description = "Library of Assorted Spiffy Things";
diff --git a/pkgs/development/libraries/libaudclient/default.nix b/pkgs/development/libraries/libaudclient/default.nix
index 8b3522e2092..81e32ab2c93 100644
--- a/pkgs/development/libraries/libaudclient/default.nix
+++ b/pkgs/development/libraries/libaudclient/default.nix
@@ -9,7 +9,8 @@ stdenv.mkDerivation rec {
     sha256 = "0nhpgz0kg8r00z54q5i96pjk7s57krq3fvdypq496c7fmlv9kdap";
   };
 
-  buildInputs = [ pkgconfig glib dbus_glib ];
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ glib dbus_glib ];
 
   meta = with stdenv.lib; {
     description = "Legacy D-Bus client library for Audacious";
diff --git a/pkgs/development/libraries/libav/default.nix b/pkgs/development/libraries/libav/default.nix
index 0d075efcd96..90d7583673a 100644
--- a/pkgs/development/libraries/libav/default.nix
+++ b/pkgs/development/libraries/libav/default.nix
@@ -29,7 +29,7 @@ let
   result = {
     libav_0_8 = libavFun "0.8.20" "0c7a2417c3a01eb74072691bb93ce802ae1be08f";
     libav_11  = libavFun "11.10"  "38db6721ca8423682e4d614c170eccc33ba32e00";
-    libav_12  = libavFun "12.1"   "df048240318b888e3938f649422b967f62e43e3c";
+    libav_12  = libavFun "12.2"   "3784b15f88076ca0ab8fb6b0377e975b83a5c9f5";
   };
 
   libavFun = version : sha1 : stdenv.mkDerivation rec {
@@ -70,7 +70,8 @@ let
       ++ optional freetypeSupport "--enable-libfreetype"
       ;
 
-    buildInputs = [ pkgconfig lame yasm zlib bzip2 SDL ]
+  nativeBuildInputs = [ pkgconfig ];
+    buildInputs = [ lame yasm zlib bzip2 SDL ]
       ++ [ perl ] # for install-man target
       ++ optional mp3Support lame
       ++ optional speexSupport speex
diff --git a/pkgs/development/libraries/libavc1394/default.nix b/pkgs/development/libraries/libavc1394/default.nix
index ab8b507e98b..726e9573d37 100644
--- a/pkgs/development/libraries/libavc1394/default.nix
+++ b/pkgs/development/libraries/libavc1394/default.nix
@@ -8,7 +8,7 @@ stdenv.mkDerivation rec {
     sha256 = "0lsv46jdqvdx5hx92v0z2cz3yh6212pz9gk0k3513sbaa04zzcbw";
   };
 
-  buildInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ];
   propagatedBuildInputs = [ libraw1394 ];
 
   meta = { 
diff --git a/pkgs/development/libraries/libbladeRF/default.nix b/pkgs/development/libraries/libbladeRF/default.nix
index 1411474195d..8948a74ad63 100644
--- a/pkgs/development/libraries/libbladeRF/default.nix
+++ b/pkgs/development/libraries/libbladeRF/default.nix
@@ -12,7 +12,8 @@ stdenv.mkDerivation rec {
     sha256 = "1y00hqsmqaix4dql8mb75zx87zvn8b483yxv53x9qyjspksbs60c";
   };
 
-  buildInputs = [ pkgconfig cmake git doxygen help2man tecla libusb1 udev ];
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ cmake git doxygen help2man tecla libusb1 udev ];
 
   # Fixup shebang
   prePatch = "patchShebangs host/utilities/bladeRF-cli/src/cmd/doc/generate.bash";
diff --git a/pkgs/development/libraries/libcanberra/default.nix b/pkgs/development/libraries/libcanberra/default.nix
index 25be4802699..1b2cf4084f9 100644
--- a/pkgs/development/libraries/libcanberra/default.nix
+++ b/pkgs/development/libraries/libcanberra/default.nix
@@ -9,8 +9,9 @@ stdenv.mkDerivation rec {
     sha256 = "0wps39h8rx2b00vyvkia5j40fkak3dpipp1kzilqla0cgvk73dn2";
   };
 
+  nativeBuildInputs = [ pkgconfig ];
   buildInputs = [
-    pkgconfig libtool alsaLib libpulseaudio libvorbis gtk libcap
+    libtool alsaLib libpulseaudio libvorbis gtk libcap
     /*gstreamer gst-plugins-base*/      # ToDo: gstreamer not found (why?), add (g)udev?
   ];
 
diff --git a/pkgs/development/libraries/libcangjie/default.nix b/pkgs/development/libraries/libcangjie/default.nix
index 4692cf6aac1..6838362c794 100644
--- a/pkgs/development/libraries/libcangjie/default.nix
+++ b/pkgs/development/libraries/libcangjie/default.nix
@@ -10,7 +10,8 @@ stdenv.mkDerivation rec {
     sha256 = "0i5svvcx099fc9hh5dvr3gpb1041v6vn5fnylxy82zjy239114lg";
   };
 
-  buildInputs = [ automake autoconf libtool m4 pkgconfig sqlite ];
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ automake autoconf libtool m4 sqlite ];
 
   configureScript = "./autogen.sh";
   
diff --git a/pkgs/development/libraries/libcdio/0.82.nix b/pkgs/development/libraries/libcdio/0.82.nix
index 632ee916135..a4b2e6078d2 100644
--- a/pkgs/development/libraries/libcdio/0.82.nix
+++ b/pkgs/development/libraries/libcdio/0.82.nix
@@ -8,7 +8,8 @@ stdenv.mkDerivation rec {
     sha256 = "0fax1dzy84dzs20bmpq2gfw6hc1x2x9mhk53wynhcycjw3l3vjqs";
   };
 
-  buildInputs = [ libcddb pkgconfig ncurses help2man ]
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ libcddb ncurses help2man ]
     ++ stdenv.lib.optional stdenv.isDarwin libiconv;
 
   # Disabled because one test (check_paranoia.sh) fails.
diff --git a/pkgs/development/libraries/libcdio/default.nix b/pkgs/development/libraries/libcdio/default.nix
index 74c95704bbf..f7596b9c702 100644
--- a/pkgs/development/libraries/libcdio/default.nix
+++ b/pkgs/development/libraries/libcdio/default.nix
@@ -8,7 +8,8 @@ stdenv.mkDerivation rec {
     sha256 = "1a6x2c5bvpnkn7lhmxkjgz4axmh93m1clrlv41s1wzkc48lnc9zq";
   };
 
-  buildInputs = [ libcddb pkgconfig ncurses help2man ]
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ libcddb ncurses help2man ]
     ++ stdenv.lib.optional stdenv.isDarwin libiconv;
 
   # Disabled because one test (check_paranoia.sh) fails.
diff --git a/pkgs/development/libraries/libcec/default.nix b/pkgs/development/libraries/libcec/default.nix
index 15c40b43040..e60f5e316bd 100644
--- a/pkgs/development/libraries/libcec/default.nix
+++ b/pkgs/development/libraries/libcec/default.nix
@@ -10,7 +10,8 @@ stdenv.mkDerivation {
     sha256 = "09xsw9hfymzl9fi9r2r8n5cxk80fc00x9drsy1r59pgbycqxvf5q";
   };
 
-  buildInputs = [ cmake pkgconfig udev libcec_platform ];
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ cmake udev libcec_platform ];
 
   cmakeFlags = [ "-DBUILD_SHARED_LIBS=1" ];
 
diff --git a/pkgs/development/libraries/libchamplain/default.nix b/pkgs/development/libraries/libchamplain/default.nix
index 67302f330b9..f6d6c5b803e 100644
--- a/pkgs/development/libraries/libchamplain/default.nix
+++ b/pkgs/development/libraries/libchamplain/default.nix
@@ -11,7 +11,8 @@ stdenv.mkDerivation rec {
     sha256 = "13snnka1jqc5qrgij8bm22xy02pncf3dn5ij3jh4rrpzq7g1sqpi";
   };
 
-  buildInputs = [ pkgconfig gobjectIntrospection ];
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ gobjectIntrospection ];
 
   propagatedBuildInputs = [ glib gtk3 cairo clutter_gtk sqlite libsoup ];
 
diff --git a/pkgs/development/libraries/libcmis/default.nix b/pkgs/development/libraries/libcmis/default.nix
index 6e0007111bc..9ab42c7fd1d 100644
--- a/pkgs/development/libraries/libcmis/default.nix
+++ b/pkgs/development/libraries/libcmis/default.nix
@@ -11,7 +11,8 @@ stdenv.mkDerivation rec {
 
   patches = [ ./gcc5.patch ];
 
-  buildInputs = [ boost libxml2 pkgconfig curl autoreconfHook ];
+  nativeBuildInputs = [ autoreconfHook pkgconfig ];
+  buildInputs = [ boost libxml2 curl ];
   configureFlags = "--without-man --with-boost=${boost.dev} --disable-werror --disable-tests";
 
   # Cppcheck cannot find all the include files (use --check-config for details)
diff --git a/pkgs/development/libraries/libdrm/default.nix b/pkgs/development/libraries/libdrm/default.nix
index c62d31a1e26..4903d8e66df 100644
--- a/pkgs/development/libraries/libdrm/default.nix
+++ b/pkgs/development/libraries/libdrm/default.nix
@@ -8,7 +8,7 @@ stdenv.mkDerivation rec {
     sha256 = "1minzvsyz5hgm6ixpj8ysa6jsv7vm8qc8nx390jxdsk0v9ljd983";
   };
 
-  outputs = [ "out" "dev" ];
+  outputs = [ "out" "dev" "bin" ];
 
   nativeBuildInputs = [ pkgconfig ];
   buildInputs = [ libpthreadstubs libpciaccess valgrind-light ];
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
   preConfigure = stdenv.lib.optionalString stdenv.isDarwin
     "echo : \\\${ac_cv_func_clock_gettime=\'yes\'} > config.cache";
 
-  configureFlags = [ ]
+  configureFlags = [ "--enable-install-test-programs" ]
     ++ stdenv.lib.optionals (stdenv.isArm || stdenv.isAarch64) [ "--enable-tegra-experimental-api" "--enable-etnaviv-experimental-api" ]
     ++ stdenv.lib.optional stdenv.isDarwin "-C";
 
diff --git a/pkgs/development/libraries/libe-book/default.nix b/pkgs/development/libraries/libe-book/default.nix
index 1e374b8ad1f..3c900f86917 100644
--- a/pkgs/development/libraries/libe-book/default.nix
+++ b/pkgs/development/libraries/libe-book/default.nix
@@ -12,8 +12,10 @@ let
     url="mirror://sourceforge/project/libebook/libe-book-0.1.2/libe-book-0.1.2.tar.xz";
     sha256="1v48pd32r2pfysr3a3igc4ivcf6vvb26jq4pdkcnq75p70alp2bz";
   };
+
+  nativeBuildInputs = [ pkgconfig ];
   buildInputs = [
-    gperf pkgconfig librevenge libxml2 boost icu cppunit zlib
+    gperf librevenge libxml2 boost icu cppunit zlib
   ];
 
   # Boost 1.59 compatability fix
@@ -24,7 +26,7 @@ let
 in
 stdenv.mkDerivation {
   inherit (s) name version;
-  inherit buildInputs postPatch;
+  inherit nativeBuildInputs buildInputs postPatch;
   src = fetchurl {
     inherit (s) url sha256;
   };
diff --git a/pkgs/development/libraries/libebur128/default.nix b/pkgs/development/libraries/libebur128/default.nix
index e5461d90dd9..8281036e749 100644
--- a/pkgs/development/libraries/libebur128/default.nix
+++ b/pkgs/development/libraries/libebur128/default.nix
@@ -11,7 +11,8 @@ stdenv.mkDerivation rec {
     sha256 = "19vy3ldbf931hjvn9jf9dvw1di3yx9ljxyk2yp5cnac1wqiza3jm";
   };
 
-  buildInputs = [ cmake speexdsp pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ cmake speexdsp ];
 
   meta = with stdenv.lib; {
     description = "Implementation of the EBU R128 loudness standard";
diff --git a/pkgs/development/libraries/libee/default.nix b/pkgs/development/libraries/libee/default.nix
index a34ff5edbe2..7eb5df4c7ec 100644
--- a/pkgs/development/libraries/libee/default.nix
+++ b/pkgs/development/libraries/libee/default.nix
@@ -7,7 +7,8 @@ stdenv.mkDerivation {
     sha256 = "09xhgzmsq0g3jsyj24vy67bhzk2fv971w5ixdkhfwgar70cw1nn0";
   };
 
-  buildInputs = [pkgconfig libestr];
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ libestr];
 
   meta = {
     homepage = http://www.libee.org/;
diff --git a/pkgs/development/libraries/libfakekey/default.nix b/pkgs/development/libraries/libfakekey/default.nix
index 4e74762f3f9..6aca1d2be6d 100644
--- a/pkgs/development/libraries/libfakekey/default.nix
+++ b/pkgs/development/libraries/libfakekey/default.nix
@@ -9,7 +9,8 @@ stdenv.mkDerivation rec {
     sha256 = "10msplyn535hmzbmbdnx4zc20hkaw6d81if5lzxs82k8sq2mkx9k";
   };
 
-  buildInputs = [ libX11 libXi libXtst pkgconfig xextproto ];
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ libX11 libXi libXtst xextproto ];
 
   meta = with stdenv.lib; {
     description = "X virtual keyboard library";
diff --git a/pkgs/development/libraries/libfm/default.nix b/pkgs/development/libraries/libfm/default.nix
index d42425c8e18..851ee7f326b 100644
--- a/pkgs/development/libraries/libfm/default.nix
+++ b/pkgs/development/libraries/libfm/default.nix
@@ -16,7 +16,8 @@ stdenv.mkDerivation rec {
     sha256 = "0nlvfwh09gbq8bkbvwnw6iqr918rrs9gc9ljb9pjspyg408bn1n7";
   };
 
-  buildInputs = [ glib gtk intltool pango pkgconfig vala_0_34 ]
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ glib gtk intltool pango vala_0_34 ]
                 ++ optional (!extraOnly) menu-cache;
 
   configureFlags = [ (optional extraOnly "--with-extra-only")
diff --git a/pkgs/development/libraries/libfreefare/default.nix b/pkgs/development/libraries/libfreefare/default.nix
index 291f20a5db2..2e8fad3db82 100644
--- a/pkgs/development/libraries/libfreefare/default.nix
+++ b/pkgs/development/libraries/libfreefare/default.nix
@@ -10,7 +10,8 @@ stdenv.mkDerivation rec {
     sha256 = "0r5wfvwgf35lb1v65wavnwz2wlfyfdims6a9xpslf4lsm4a1v8xz";
   };
 
-  buildInputs = [ pkgconfig libnfc openssl ] ++ stdenv.lib.optional stdenv.isDarwin libobjc;
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ libnfc openssl ] ++ stdenv.lib.optional stdenv.isDarwin libobjc;
 
   meta = with stdenv.lib; {
     description = "The libfreefare project aims to provide a convenient API for MIFARE card manipulations";
diff --git a/pkgs/development/libraries/libftdi/1.x.nix b/pkgs/development/libraries/libftdi/1.x.nix
index 17cf93473d6..353c82aa193 100644
--- a/pkgs/development/libraries/libftdi/1.x.nix
+++ b/pkgs/development/libraries/libftdi/1.x.nix
@@ -16,7 +16,8 @@ stdenv.mkDerivation rec {
     sha256 = "1x41mbzh4qy7mrv2n86r2cr176rx03iacn0a99c3dkzv9g4rb34s";
   };
 
-  buildInputs = with stdenv.lib; [ cmake pkgconfig confuse ]
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = with stdenv.lib; [ cmake confuse ]
     ++ optionals cppSupport [ boost ]
     ++ optionals pythonSupport [ python swig ]
     ++ optionals docSupport [ doxygen ];
diff --git a/pkgs/development/libraries/libgig/default.nix b/pkgs/development/libraries/libgig/default.nix
index fd6e4a7aa48..4adb7e53578 100644
--- a/pkgs/development/libraries/libgig/default.nix
+++ b/pkgs/development/libraries/libgig/default.nix
@@ -10,7 +10,8 @@ stdenv.mkDerivation rec {
     sha256 = "0i7sj3zm6banl5avjdxblx0mlbxxzbsbr4x5hsl2fhrdsv5dnxhc";
   };
 
-  buildInputs = [ autoconf automake libsndfile libtool pkgconfig libuuid ];
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ autoconf automake libsndfile libtool libuuid ];
 
   preConfigure = "make -f Makefile.cvs";
 
diff --git a/pkgs/development/libraries/libgnurl/default.nix b/pkgs/development/libraries/libgnurl/default.nix
index e46da4dc9fb..33276b424e7 100644
--- a/pkgs/development/libraries/libgnurl/default.nix
+++ b/pkgs/development/libraries/libgnurl/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchurl, autoreconfHook, perl, zlib, gnutls, gss, openssl
-, libssh2, libidn, libpsl, openldap }:
+, libidn }:
 
 stdenv.mkDerivation rec {
   version = "7.54.1";
@@ -12,20 +12,20 @@ stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs = [ autoreconfHook ];
-  buildInputs = [ perl gnutls gss openssl zlib libidn libssh2 libpsl openldap ];
+  buildInputs = [ perl gnutls gss openssl zlib libidn ];
 
   preConfigure = ''
     sed -e 's|/usr/bin|/no-such-path|g' -i.bak configure
   '';
 
   configureFlags = [
-    "--with-zlib"
-    "--with-gssapi"
-    "--with-libssh2"
-    "--with-libidn"
-    "--with-libpsl"
-    "--enable-ldap"
-    "--enable-ldaps"
+    "--enable-ipv6" "--with-gnutls" "--without-libmetalink" "--without-winidn"
+    "--without-librtmp" "--without-nghttp2" "--without-nss" "--without-cyassl"
+    "--without-polarssl" "--without-ssl" "--without-winssl"
+    "--without-darwinssl" "--disable-sspi" "--disable-ntlm-wb" "--disable-ldap"
+    "--disable-rtsp" "--disable-dict" "--disable-telnet" "--disable-tftp"
+    "--disable-pop3" "--disable-imap" "--disable-smtp" "--disable-gopher"
+    "--disable-file" "--disable-ftp" "--disable-smb"
   ];
 
   meta = with stdenv.lib; {
diff --git a/pkgs/development/libraries/libgringotts/default.nix b/pkgs/development/libraries/libgringotts/default.nix
index 93ad88f0021..1da6cffe3f2 100644
--- a/pkgs/development/libraries/libgringotts/default.nix
+++ b/pkgs/development/libraries/libgringotts/default.nix
@@ -9,7 +9,8 @@ stdenv.mkDerivation rec {
     sha256 = "1bzfnpf2gwc2bisbrw06s63g9z9v4mh1n9ksqr6pbgj2prz7bvlk";
   };
 
-  buildInputs = [ pkgconfig zlib bzip2 libmcrypt libmhash ];
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ zlib bzip2 libmcrypt libmhash ];
 
   meta = with stdenv.lib; {
     description = "A small library to encapsulate data in an encrypted structure";
diff --git a/pkgs/development/libraries/libgudev/default.nix b/pkgs/development/libraries/libgudev/default.nix
index 5b29c23fa6e..ef2a44bf183 100644
--- a/pkgs/development/libraries/libgudev/default.nix
+++ b/pkgs/development/libraries/libgudev/default.nix
@@ -9,7 +9,8 @@ stdenv.mkDerivation rec {
     sha256 = "15iz0qp57qy5pjrblsn36l0chlncqggqsg8h8i8c71499afzj7iv";
   };
 
-  buildInputs = [ pkgconfig udev glib ];
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ udev glib ];
 
   # There's a dependency cycle with umockdev and the tests fail to LD_PRELOAD anyway.
   configureFlags = [ "--disable-umockdev" ];
diff --git a/pkgs/development/libraries/libguestfs/default.nix b/pkgs/development/libraries/libguestfs/default.nix
index 73424902cd0..bfdd0cf8fd7 100644
--- a/pkgs/development/libraries/libguestfs/default.nix
+++ b/pkgs/development/libraries/libguestfs/default.nix
@@ -18,8 +18,9 @@ stdenv.mkDerivation rec {
     sha256 = "0dhb69b7svjgnrmbyvizdz5vsgsrr95ypz0qvp3kz83jyj6sa76m";
   };
 
+  nativeBuildInputs = [ pkgconfig ];
   buildInputs = [
-    makeWrapper pkgconfig autoreconfHook ncurses cpio gperf perl
+    makeWrapper autoreconfHook ncurses cpio gperf perl
     cdrkit flex bison qemu pcre augeas libxml2 acl libcap libcap_ng libconfig
     systemd fuse yajl libvirt gmp readline file hivex libintlperl GetoptLong
     SysVirt numactl xen libapparmor getopt perlPackages.ModuleBuild
diff --git a/pkgs/development/libraries/libiec61883/default.nix b/pkgs/development/libraries/libiec61883/default.nix
index 2cba1b0dd3c..2ad59e698d0 100644
--- a/pkgs/development/libraries/libiec61883/default.nix
+++ b/pkgs/development/libraries/libiec61883/default.nix
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
     sha256 = "7c7879c6b9add3148baea697dfbfdcefffbc8ac74e8e6bcf46125ec1d21b373a";
   };
 
-  buildInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ];
 
   propagatedBuildInputs = [ libraw1394 ];
 
diff --git a/pkgs/development/libraries/libinfinity/default.nix b/pkgs/development/libraries/libinfinity/default.nix
index b55e0104f70..835c7d6f226 100644
--- a/pkgs/development/libraries/libinfinity/default.nix
+++ b/pkgs/development/libraries/libinfinity/default.nix
@@ -18,7 +18,8 @@ in stdenv.mkDerivation rec {
     sha256 = "1idsxb6rz4i55g3vi2sv7hmm57psbccpb57yc4jgphaq6ydgqsr6";
   };
 
-  buildInputs = [ pkgconfig glib libxml2 gsasl libidn gss libintlOrEmpty ]
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ glib libxml2 gsasl libidn gss libintlOrEmpty ]
     ++ optional gtkWidgets gtk2
     ++ optional documentation gtkdoc
     ++ optional avahiSupport avahi
diff --git a/pkgs/development/libraries/libinput/default.nix b/pkgs/development/libraries/libinput/default.nix
index 1cc275b3048..0f0e6726032 100644
--- a/pkgs/development/libraries/libinput/default.nix
+++ b/pkgs/development/libraries/libinput/default.nix
@@ -1,49 +1,40 @@
-{ stdenv, fetchurl, pkgconfig
-, libevdev, mtdev, udev, libwacom
+{ stdenv, fetchurl, pkgconfig, meson, ninja, libevdev, mtdev, udev, libwacom
 , documentationSupport ? false, doxygen ? null, graphviz ? null # Documentation
 , eventGUISupport ? false, cairo ? null, glib ? null, gtk3 ? null # GUI event viewer support
-, testsSupport ? false, check ? null, valgrind ? null
-, autoconf, automake
-}:
+, testsSupport ? false, check ? null, valgrind ? null }:
 
 assert documentationSupport -> doxygen != null && graphviz != null;
 assert eventGUISupport -> cairo != null && glib != null && gtk3 != null;
 assert testsSupport -> check != null && valgrind != null;
 
-let
-  mkFlag = optSet: flag: if optSet then "--enable-${flag}" else "--disable-${flag}";
-in
-
-with stdenv.lib;
-stdenv.mkDerivation rec {
+let mkFlag = c: flag: if c then "-D${flag}=true" else "-D${flag}=false";
+in with stdenv.lib; stdenv.mkDerivation rec {
   name = "libinput-${version}";
-  version = "1.7.3";
+  version = "1.8.3";
 
   src = fetchurl {
-    url = "http://www.freedesktop.org/software/libinput/${name}.tar.xz";
-    sha256 = "07fbzxddvhjcch43hdxb24sj7ri96zzpcjalvsicmw0i4wnn2v89";
+    url = "https://freedesktop.org/software/libinput/${name}.tar.xz";
+    sha256 = "0b8l2dmzzm20xf2hw1dr9gnzd3fah9jz5f216p2ajw895zsy5qig";
   };
 
   outputs = [ "out" "dev" ];
 
-  configureFlags = [
+  mesonFlags = [
     (mkFlag documentationSupport "documentation")
-    (mkFlag eventGUISupport "event-gui")
+    (mkFlag eventGUISupport "debug-gui")
     (mkFlag testsSupport "tests")
   ];
 
-  nativeBuildInputs = [ pkgconfig ];
+  patches = [ ./udev-absolute-path.patch ];
 
-  buildInputs = [ libevdev mtdev libwacom autoconf automake ]
+  nativeBuildInputs = [ meson ninja pkgconfig ];
+  buildInputs = [ libevdev mtdev libwacom ]
     ++ optionals eventGUISupport [ cairo glib gtk3 ]
     ++ optionals documentationSupport [ doxygen graphviz ]
     ++ optionals testsSupport [ check valgrind ];
 
   propagatedBuildInputs = [ udev ];
 
-  patches = [ ./udev-absolute-path.patch ];
-  patchFlags = [ "-p0" ];
-
   meta = {
     description = "Handles input devices in Wayland compositors and provides a generic X.Org input driver";
     homepage    = http://www.freedesktop.org/wiki/Software/libinput;
diff --git a/pkgs/development/libraries/libinput/udev-absolute-path.patch b/pkgs/development/libraries/libinput/udev-absolute-path.patch
index 2d3fa966b29..4b6bfc96d5a 100644
--- a/pkgs/development/libraries/libinput/udev-absolute-path.patch
+++ b/pkgs/development/libraries/libinput/udev-absolute-path.patch
@@ -1,12 +1,11 @@
---- configure.ac	2016-05-27 14:00:25.248388226 +0200
-+++ configure.ac	2016-05-27 14:01:28.228943416 +0200
-@@ -214,7 +214,8 @@ AM_CONDITIONAL(BUILD_DOCS, [test "x$buil
- # Used by the udev rules so we can use callouts during testing without
- # installing everything first. Default is the empty string so the installed
- # rule will use udev's default path. Override is in udev/Makefile.am
--AC_SUBST(UDEV_TEST_PATH, "")
-+UDEV_TEST_PATH="${UDEV_DIR}/"
-+AC_SUBST(UDEV_TEST_PATH)
- AC_PATH_PROG(SED, [sed])
+--- a/meson.build	2017-09-25 11:37:07.787726521 +0000
++++ b/meson.build	2017-09-25 11:38:48.958233247 +0000
+@@ -100,7 +100,7 @@
+      args : model_quirks)
  
- AC_CONFIG_FILES([Makefile
+ udev_rules_config = configuration_data()
+-udev_rules_config.set('UDEV_TEST_PATH', '')
++udev_rules_config.set('UDEV_TEST_PATH', udev_dir + '/')
+ configure_file(input : 'udev/80-libinput-device-groups.rules.in',
+ 	       output : '80-libinput-device-groups.rules',
+ 	       install : true,
diff --git a/pkgs/development/libraries/libiodbc/default.nix b/pkgs/development/libraries/libiodbc/default.nix
index 6f833ec81a9..267d3097c99 100644
--- a/pkgs/development/libraries/libiodbc/default.nix
+++ b/pkgs/development/libraries/libiodbc/default.nix
@@ -8,7 +8,8 @@ stdenv.mkDerivation rec {
     sha256 = "16hjb6fcval85gnkgkxfhw4c5h3pgf86awyh8p2bhnnvzc0ma5hq";
   };
 
-  buildInputs = stdenv.lib.optionals useGTK [ gtk2 pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = stdenv.lib.optionals useGTK [ gtk2 ];
 
   preBuild =
     ''
diff --git a/pkgs/development/libraries/libjreen/default.nix b/pkgs/development/libraries/libjreen/default.nix
index d539c61a4c9..2167b447703 100644
--- a/pkgs/development/libraries/libjreen/default.nix
+++ b/pkgs/development/libraries/libjreen/default.nix
@@ -9,7 +9,8 @@ stdenv.mkDerivation rec {
     sha256 = "14nwwk40xx8w6x7yaysgcr0lgzhs7l064f7ikp32s5y9a8mmp582";
   };
 
-  buildInputs = [ cmake qt4 pkgconfig gsasl ];
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ cmake qt4 gsasl ];
   enableParallelBuilding = true;
 
   meta = {
diff --git a/pkgs/development/libraries/liblastfmSF/default.nix b/pkgs/development/libraries/liblastfmSF/default.nix
index efe93ec02df..73d996c5ec8 100644
--- a/pkgs/development/libraries/liblastfmSF/default.nix
+++ b/pkgs/development/libraries/liblastfmSF/default.nix
@@ -3,7 +3,7 @@
 stdenv.mkDerivation rec {
   name = "liblastfm-SF-0.5";
 
-  buildInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ];
 
   propagatedBuildInputs = [ curl openssl ];
 
diff --git a/pkgs/development/libraries/liblogging/default.nix b/pkgs/development/libraries/liblogging/default.nix
index aa75acb7d6d..4667a6e7601 100644
--- a/pkgs/development/libraries/liblogging/default.nix
+++ b/pkgs/development/libraries/liblogging/default.nix
@@ -10,7 +10,8 @@ stdenv.mkDerivation rec {
     sha256 = "02w94j344q0ywlj4mdf9fnzwggdsn3j1yn43sdlsddvr29lw239i";
   };
 
-  buildInputs = [ pkgconfig systemd ];
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ systemd ];
 
   configureFlags = [
     "--enable-rfc3195"
diff --git a/pkgs/development/libraries/liblqr-1/default.nix b/pkgs/development/libraries/liblqr-1/default.nix
index e505871eb02..4b445c93175 100644
--- a/pkgs/development/libraries/liblqr-1/default.nix
+++ b/pkgs/development/libraries/liblqr-1/default.nix
@@ -8,7 +8,7 @@ stdenv.mkDerivation rec {
     sha256 = "0dzikxzjz5zmy3vnydh90aqk23q0qm8ykx6plz6p4z90zlp84fhp";
   };
 
-  buildInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ];
   propagatedBuildInputs = [ glib ];
 
   meta = with stdenv.lib; {
diff --git a/pkgs/development/libraries/liblscp/default.nix b/pkgs/development/libraries/liblscp/default.nix
index a1cbf9250c4..c89b21de0d6 100644
--- a/pkgs/development/libraries/liblscp/default.nix
+++ b/pkgs/development/libraries/liblscp/default.nix
@@ -10,7 +10,8 @@ stdenv.mkDerivation rec {
     sha256 = "0jgdy9gi9n8x2pqrbll9158vhx8293lnxv8vzl0szcincslgk7hi";
   };
 
-  buildInputs = [ autoconf automake libtool pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ autoconf automake libtool ];
 
   preConfigure = "make -f Makefile.svn";
 
diff --git a/pkgs/development/libraries/libmatroska/default.nix b/pkgs/development/libraries/libmatroska/default.nix
index 9ad959ae22e..764f4442e6c 100644
--- a/pkgs/development/libraries/libmatroska/default.nix
+++ b/pkgs/development/libraries/libmatroska/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, pkgconfig, libebml }:
 
 stdenv.mkDerivation rec {
-  name = "libmatroska-1.4.7";
+  name = "libmatroska-1.4.8";
 
   src = fetchurl {
-    url = "http://dl.matroska.org/downloads/libmatroska/${name}.tar.bz2";
-    sha256 = "1yi5cnv13nhl27xyqayd5l3sf0j3swfj3apzibv71yg9pariwi26";
+    url = "http://dl.matroska.org/downloads/libmatroska/${name}.tar.xz";
+    sha256 = "14n9sw974prr3yp4yjb7aadi6x2yz5a0hjw8fs3qigy5shh2piyq";
   };
 
   nativeBuildInputs = [ pkgconfig ];
diff --git a/pkgs/development/libraries/libmbim/default.nix b/pkgs/development/libraries/libmbim/default.nix
index 92902cd27d7..1c8e65dafd4 100644
--- a/pkgs/development/libraries/libmbim/default.nix
+++ b/pkgs/development/libraries/libmbim/default.nix
@@ -14,7 +14,8 @@ stdenv.mkDerivation rec {
     patchShebangs .
   '';
 
-  buildInputs = [ pkgconfig glib udev libgudev python ];
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ glib udev libgudev python ];
 
   meta = with stdenv.lib; {
     homepage = http://www.freedesktop.org/software/libmbim/;
diff --git a/pkgs/development/libraries/libmcs/default.nix b/pkgs/development/libraries/libmcs/default.nix
index 23f333562dc..a457adfed80 100644
--- a/pkgs/development/libraries/libmcs/default.nix
+++ b/pkgs/development/libraries/libmcs/default.nix
@@ -8,7 +8,8 @@ stdenv.mkDerivation rec {
     sha256 = "1knmgxrg2kxdlin8qyf6351943ldg8myllwf860af58x1wncxc74";
   };
 
-  buildInputs = [ pkgconfig libmowgli ];
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ libmowgli ];
   
   meta = {
     description = "A library and set of userland tools which abstract the storage of configuration settings away from userland applications";
diff --git a/pkgs/development/libraries/libmediainfo/default.nix b/pkgs/development/libraries/libmediainfo/default.nix
index cc6f5205d92..9e4b23a0919 100644
--- a/pkgs/development/libraries/libmediainfo/default.nix
+++ b/pkgs/development/libraries/libmediainfo/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, autoreconfHook, pkgconfig, libzen, zlib }:
 
 stdenv.mkDerivation rec {
-  version = "0.7.97";
+  version = "0.7.99";
   name = "libmediainfo-${version}";
   src = fetchurl {
-    url = "http://mediaarea.net/download/source/libmediainfo/${version}/libmediainfo_${version}.tar.xz";
-    sha256 = "0rpxxbszi7i4hspdzdif9inhlwxdkf0iggaim6682clqb6pv7sld";
+    url = "https://mediaarea.net/download/source/libmediainfo/${version}/libmediainfo_${version}.tar.xz";
+    sha256 = "126nkxrzs6dxzm3hzx6smvw6xgrqr3zs6hdqvl2xmvqy10p8z6pc";
   };
 
   nativeBuildInputs = [ autoreconfHook pkgconfig ];
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
 
   meta = with stdenv.lib; {
     description = "Shared library for mediainfo";
-    homepage = http://mediaarea.net/;
+    homepage = https://mediaarea.net/;
     license = licenses.bsd2;
     platforms = platforms.unix;
     maintainers = [ maintainers.devhell ];
diff --git a/pkgs/development/libraries/libmesode/default.nix b/pkgs/development/libraries/libmesode/default.nix
index 9dae423efd7..1becd0ee8ef 100644
--- a/pkgs/development/libraries/libmesode/default.nix
+++ b/pkgs/development/libraries/libmesode/default.nix
@@ -11,7 +11,8 @@ stdenv.mkDerivation rec {
     sha256 = "1zb1x422zkpnxrz9d2b7pmi8ms60lbw49yh78mydqfypsmj2iyfh";
   };
 
-  buildInputs = [ autoreconfHook openssl expat libtool pkgconfig check ];
+  nativeBuildInputs = [ autoreconfHook pkgconfig ];
+  buildInputs = [ openssl expat libtool check ];
 
   dontDisableStatic = true;
 
diff --git a/pkgs/development/libraries/libmicrohttpd/default.nix b/pkgs/development/libraries/libmicrohttpd/default.nix
index ec03032105f..68156c0c217 100644
--- a/pkgs/development/libraries/libmicrohttpd/default.nix
+++ b/pkgs/development/libraries/libmicrohttpd/default.nix
@@ -9,7 +9,8 @@ stdenv.mkDerivation rec {
   };
 
   outputs = [ "out" "dev" "devdoc" "info" ];
-  buildInputs = [ libgcrypt curl gnutls pkgconfig ]
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ libgcrypt curl gnutls ]
     ++ stdenv.lib.optionals stdenv.isDarwin [ libiconv libintlOrEmpty ];
 
   preCheck = ''
diff --git a/pkgs/development/libraries/libmongo-client/default.nix b/pkgs/development/libraries/libmongo-client/default.nix
index 4cbc51ea678..343622e8d5c 100644
--- a/pkgs/development/libraries/libmongo-client/default.nix
+++ b/pkgs/development/libraries/libmongo-client/default.nix
@@ -10,7 +10,8 @@ stdenv.mkDerivation rec {
     sha256 = "1cjx06i3gd9zkyvwm2ysjrf0hkhr7bjg3c27s7n0y31j10igfjp0";
   };
 
-  buildInputs = [ autoreconfHook pkgconfig ];
+  nativeBuildInputs = [ autoreconfHook pkgconfig ];
+  buildInputs = [ ];
   propagatedBuildInputs = [ glib ];
 
   postPatch = ''
diff --git a/pkgs/development/libraries/libmrss/default.nix b/pkgs/development/libraries/libmrss/default.nix
index 865330fdda7..b0adcf23754 100644
--- a/pkgs/development/libraries/libmrss/default.nix
+++ b/pkgs/development/libraries/libmrss/default.nix
@@ -8,7 +8,7 @@ stdenv.mkDerivation {
     sha256 = "02r1bgj8qlkn63xqfi5yq8y7wrilxcnkycaag8qskhg5ranic507";
   };
 
-  buildInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ];
   propagatedBuildInputs = [ curl libnxml ];
 
   meta = {
diff --git a/pkgs/development/libraries/libmtp/default.nix b/pkgs/development/libraries/libmtp/default.nix
index 8892b016fe8..9cac26bf2be 100644
--- a/pkgs/development/libraries/libmtp/default.nix
+++ b/pkgs/development/libraries/libmtp/default.nix
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
   outputs = [ "bin" "dev" "out" ];
 
   propagatedBuildInputs = [ libusb1 ];
-  buildInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ];
 
   # tried to install files to /lib/udev, hopefully OK
   configureFlags = [ "--with-udev=$$bin/lib/udev" ];
diff --git a/pkgs/development/libraries/libmusicbrainz/5.x.nix b/pkgs/development/libraries/libmusicbrainz/5.x.nix
index 4765e90c6df..f197d5bcef9 100644
--- a/pkgs/development/libraries/libmusicbrainz/5.x.nix
+++ b/pkgs/development/libraries/libmusicbrainz/5.x.nix
@@ -4,7 +4,8 @@ stdenv.mkDerivation rec {
   version = "5.1.0";
   name = "libmusicbrainz-${version}";
 
-  buildInputs = [ cmake neon libdiscid libxml2 pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ cmake neon libdiscid libxml2 ];
 
   src = fetchFromGitHub {
     owner  = "metabrainz";
diff --git a/pkgs/development/libraries/libmwaw/default.nix b/pkgs/development/libraries/libmwaw/default.nix
index b833945d511..e1ac659683c 100644
--- a/pkgs/development/libraries/libmwaw/default.nix
+++ b/pkgs/development/libraries/libmwaw/default.nix
@@ -9,13 +9,15 @@ let
     url="https://netcologne.dl.sourceforge.net/project/libmwaw/libmwaw/libmwaw-0.3.10/libmwaw-0.3.10.tar.xz";
     sha256="087j6kx03ggvqwpl944nnf75qkvi9bag8b0z59phg66gbz0s0imj";
   };
+
+  nativeBuildInputs = [ pkgconfig ];
   buildInputs = [
-    boost pkgconfig cppunit zlib libwpg libwpd librevenge
+    boost cppunit zlib libwpg libwpd librevenge
   ];
 in
 stdenv.mkDerivation {
   inherit (s) name version;
-  inherit buildInputs;
+  inherit nativeBuildInputs buildInputs;
   src = fetchurl {
     inherit (s) url sha256;
   };
diff --git a/pkgs/development/libraries/libmx/default.nix b/pkgs/development/libraries/libmx/default.nix
index 49760f7fc53..897a769b014 100644
--- a/pkgs/development/libraries/libmx/default.nix
+++ b/pkgs/development/libraries/libmx/default.nix
@@ -31,8 +31,9 @@ stdenv.mkDerivation rec {
 
   configureScript = "sh autogen.sh";
 
+  nativeBuildInputs = [ pkgconfig ];
   buildInputs = [
-    pkgconfig automake autoconf libtool
+    automake autoconf libtool
     intltool
     gobjectIntrospection glib
     gtk2 gtk_doc clutter clutter_gtk
diff --git a/pkgs/development/libraries/libnetfilter_cthelper/default.nix b/pkgs/development/libraries/libnetfilter_cthelper/default.nix
index 97319840975..fa94fa549e4 100644
--- a/pkgs/development/libraries/libnetfilter_cthelper/default.nix
+++ b/pkgs/development/libraries/libnetfilter_cthelper/default.nix
@@ -9,7 +9,8 @@ stdenv.mkDerivation rec {
     sha256 = "07618e71c4d9a6b6b3dc1986540486ee310a9838ba754926c7d14a17d8fccf3d";
   };
 
-  buildInputs = [ pkgconfig libmnl ];
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ libmnl ];
 
   meta = {
     description = "Userspace library that provides the programming interface to the user-space connection tracking helper infrastructure";
diff --git a/pkgs/development/libraries/libnetfilter_cttimeout/default.nix b/pkgs/development/libraries/libnetfilter_cttimeout/default.nix
index 2920cbd9785..f30e12a4163 100644
--- a/pkgs/development/libraries/libnetfilter_cttimeout/default.nix
+++ b/pkgs/development/libraries/libnetfilter_cttimeout/default.nix
@@ -9,7 +9,8 @@ stdenv.mkDerivation rec {
     sha256 = "aeab12754f557cba3ce2950a2029963d817490df7edb49880008b34d7ff8feba";
   };
 
-  buildInputs = [ pkgconfig libmnl ];
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ libmnl ];
 
   meta = {
     description = "Userspace library that provides the programming interface to the connection tracking timeout infrastructure";
diff --git a/pkgs/development/libraries/libnetfilter_queue/default.nix b/pkgs/development/libraries/libnetfilter_queue/default.nix
index fa4a0f11ef4..5de9409b729 100644
--- a/pkgs/development/libraries/libnetfilter_queue/default.nix
+++ b/pkgs/development/libraries/libnetfilter_queue/default.nix
@@ -8,7 +8,8 @@ stdenv.mkDerivation rec {
     sha256 = "0chsmj9ky80068vn458ijz9sh4sk5yc08dw2d6b8yddybpmr1143";
   };
 
-  buildInputs = [ pkgconfig libmnl libnfnetlink ];
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ libmnl libnfnetlink ];
 
   meta = {
     homepage = http://www.netfilter.org/projects/libnetfilter_queue/;
diff --git a/pkgs/development/libraries/libnih/default.nix b/pkgs/development/libraries/libnih/default.nix
index fdbc2ac8800..4903d54b4a3 100644
--- a/pkgs/development/libraries/libnih/default.nix
+++ b/pkgs/development/libraries/libnih/default.nix
@@ -10,7 +10,8 @@ stdenv.mkDerivation rec {
     sha256 = "01glc6y7z1g726zwpvp2zm79pyb37ki729jkh45akh35fpgp4xc9";
   };
 
-  buildInputs = [ pkgconfig dbus expat ];
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ dbus expat ];
 
   meta = {
     description = "A small library for C application development";
diff --git a/pkgs/development/libraries/libnotify/default.nix b/pkgs/development/libraries/libnotify/default.nix
index 41a9cf518e4..fbde49a54d0 100644
--- a/pkgs/development/libraries/libnotify/default.nix
+++ b/pkgs/development/libraries/libnotify/default.nix
@@ -14,8 +14,8 @@ stdenv.mkDerivation rec {
   # disable tests as we don't need to depend on gtk+(2/3)
   configureFlags = [ "--disable-tests" ];
 
-  nativeBuildInputs = [ pkgconfig autoreconfHook ];
-  buildInputs = [ glib gdk_pixbuf gobjectIntrospection ];
+  nativeBuildInputs = [ pkgconfig autoreconfHook gobjectIntrospection ];
+  buildInputs = [ glib gdk_pixbuf ];
 
   meta = {
     homepage = https://developer.gnome.org/notification-spec/;
diff --git a/pkgs/development/libraries/libodfgen/default.nix b/pkgs/development/libraries/libodfgen/default.nix
index 341ef372351..8a3e22ef31f 100644
--- a/pkgs/development/libraries/libodfgen/default.nix
+++ b/pkgs/development/libraries/libodfgen/default.nix
@@ -9,13 +9,14 @@ let
     url="mirror://sourceforge/project/libwpd/libodfgen/libodfgen-0.1.6/libodfgen-0.1.6.tar.xz";
     sha256="1sdr42f0bigip14zhs51m0zdwwzzl1mwmk882l4khpph8jmi1ch3";
   };
+  nativeBuildInputs = [ pkgconfig ];
   buildInputs = [
-    boost pkgconfig cppunit zlib libwpg libwpd librevenge
+    boost cppunit zlib libwpg libwpd librevenge
   ];
 in
 stdenv.mkDerivation {
   inherit (s) name version;
-  inherit buildInputs;
+  inherit nativeBuildInputs buildInputs;
   src = fetchurl {
     inherit (s) url sha256;
   };
diff --git a/pkgs/development/libraries/libofx/default.nix b/pkgs/development/libraries/libofx/default.nix
index 7927dba8983..77c04994956 100644
--- a/pkgs/development/libraries/libofx/default.nix
+++ b/pkgs/development/libraries/libofx/default.nix
@@ -9,7 +9,8 @@ stdenv.mkDerivation rec {
   };
 
   configureFlags = [ "--with-opensp-includes=${opensp}/include/OpenSP" ];
-  buildInputs = [ opensp pkgconfig libxml2 curl ];
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ opensp libxml2 curl ];
 
   meta = { 
     description = "Opensource implementation of the Open Financial eXchange specification";
diff --git a/pkgs/development/libraries/liboggz/default.nix b/pkgs/development/libraries/liboggz/default.nix
index ed46919f26c..f6fe9ecd03a 100644
--- a/pkgs/development/libraries/liboggz/default.nix
+++ b/pkgs/development/libraries/liboggz/default.nix
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
 
   propagatedBuildInputs = [ libogg ];
 
-  buildInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ];
 
   meta = {
     homepage = https://xiph.org/oggz/;
diff --git a/pkgs/development/libraries/libosinfo/default.nix b/pkgs/development/libraries/libosinfo/default.nix
index b0b22aa18e7..db534d20c89 100644
--- a/pkgs/development/libraries/libosinfo/default.nix
+++ b/pkgs/development/libraries/libosinfo/default.nix
@@ -10,8 +10,9 @@ stdenv.mkDerivation rec {
     sha256 = "1vcg8ylh7q69s9y6hj94dqfffwfbann3i28yqgfc01navf6yl07s";
   };
 
+  nativeBuildInputs = [ pkgconfig ];
   buildInputs = [
-    pkgconfig intltool gobjectIntrospection libsoup libxslt check vala_0_23
+    intltool gobjectIntrospection libsoup libxslt check vala_0_23
   ];
 
   meta = with stdenv.lib; {
diff --git a/pkgs/development/libraries/libotr/default.nix b/pkgs/development/libraries/libotr/default.nix
index ba7a0af0bf5..9be217a800d 100644
--- a/pkgs/development/libraries/libotr/default.nix
+++ b/pkgs/development/libraries/libotr/default.nix
@@ -8,7 +8,8 @@ stdenv.mkDerivation rec {
     sha256 = "1x8rliydhbibmzwdbyr7pd7n87m2jmxnqkpvaalnf4154hj1hfwb";
   };
 
-  buildInputs = [ autoreconfHook ];
+  nativeBuildInputs = [ autoreconfHook ];
+  buildInputs = [ ];
   propagatedBuildInputs = [ libgcrypt ];
 
   meta = with stdenv.lib; {
diff --git a/pkgs/development/libraries/libpar2/default.nix b/pkgs/development/libraries/libpar2/default.nix
index 1c88167078f..6d7606428f6 100644
--- a/pkgs/development/libraries/libpar2/default.nix
+++ b/pkgs/development/libraries/libpar2/default.nix
@@ -10,7 +10,8 @@ stdenv.mkDerivation rec {
     sha256 = "1m4ncws1h03zq7zyqbaymvjzzbh1d3lc4wb1aksrdf0ync76yv9i";
   };
 
-  buildInputs = [ pkgconfig libsigcxx ];
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ libsigcxx ];
 
   patches = [ ./libpar2-0.4-external-verification.patch ];
 
diff --git a/pkgs/development/libraries/libpng/default.nix b/pkgs/development/libraries/libpng/default.nix
index 94a9aa37ad9..c4a6a246b90 100644
--- a/pkgs/development/libraries/libpng/default.nix
+++ b/pkgs/development/libraries/libpng/default.nix
@@ -5,12 +5,12 @@
 assert zlib != null;
 
 let
-  version = "1.6.31";
-  patchVersion = "1.6.31";
-  sha256 = "0hcbxv9qf4f9q7brrk0ndag526glr8lii43grssv45j9w0nn0ai3";
+  version = "1.6.34";
+  patchVersion = "1.6.34";
+  sha256 = "1xjr0v34fyjgnhvaa1zixcpx5yvxcg4zwvfh0fyklfyfj86rc7ig";
   patch_src = fetchurl {
     url = "mirror://sourceforge/libpng-apng/libpng-${patchVersion}-apng.patch.gz";
-    sha256 = "0f10ih658j514vpvsli0pk378vcmjn78g52cssyg92r4k1r19rla";
+    sha256 = "1ha4npf9mfrzp0srg8a5amks5ww84xzfpjbsj8k3yjjpai798qg6";
   };
   whenPatched = stdenv.lib.optionalString apngSupport;
 
diff --git a/pkgs/development/libraries/libpseudo/default.nix b/pkgs/development/libraries/libpseudo/default.nix
index 34e9bb12754..c04c8d724d0 100644
--- a/pkgs/development/libraries/libpseudo/default.nix
+++ b/pkgs/development/libraries/libpseudo/default.nix
@@ -16,7 +16,8 @@ stdenv.mkDerivation rec {
     mkdir -p $out/lib
   '';
 
-  buildInputs = [ pkgconfig glib ncurses ];
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ glib ncurses ];
 
   meta = with stdenv.lib; {
     homepage = http://libpseudo.sourceforge.net/;
diff --git a/pkgs/development/libraries/libpst/default.nix b/pkgs/development/libraries/libpst/default.nix
index 9eb3d345ecb..b19008449ab 100644
--- a/pkgs/development/libraries/libpst/default.nix
+++ b/pkgs/development/libraries/libpst/default.nix
@@ -9,7 +9,8 @@ stdenv.mkDerivation rec {
       sha256 = "1m378vxh1sf9ry8k11x773xpy5f6cab5gkzqglz0jp9hc431r60r";
     };
 
-  buildInputs = [ autoreconfHook boost python2 libgsf pkgconfig bzip2
+  nativeBuildInputs = [ autoreconfHook pkgconfig ];
+  buildInputs = [ boost python2 libgsf bzip2
     xmlto gettext imagemagick doxygen
   ];
 
diff --git a/pkgs/development/libraries/libqalculate/default.nix b/pkgs/development/libraries/libqalculate/default.nix
index f16f51105d4..0e67f970b76 100644
--- a/pkgs/development/libraries/libqalculate/default.nix
+++ b/pkgs/development/libraries/libqalculate/default.nix
@@ -3,11 +3,11 @@
 
 stdenv.mkDerivation rec {
   name = "libqalculate-${version}";
-  version = "2.0.0";
+  version = "2.1.0";
 
   src = fetchurl {
     url = "https://github.com/Qalculate/libqalculate/archive/v${version}.tar.gz";
-    sha256 = "1ziw48djccsgfcjd1h3834sihr89pyb3mna096cpm47bc71saqvh";
+    sha256 = "036f284bssvavyz6pgpcdafvxa59h2wdrh8xl7nmxxnw9v7n2n7l";
   };
 
   outputs = [ "out" "dev" "doc" ];
diff --git a/pkgs/development/libraries/libqmi/default.nix b/pkgs/development/libraries/libqmi/default.nix
index 2e316a30a01..afa8a0451ac 100644
--- a/pkgs/development/libraries/libqmi/default.nix
+++ b/pkgs/development/libraries/libqmi/default.nix
@@ -14,7 +14,8 @@ stdenv.mkDerivation rec {
     patchShebangs .
   '';
 
-  buildInputs = [ pkgconfig glib python libgudev libmbim ];
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ glib python libgudev libmbim ];
 
   configureFlags = ["--enable-mbim-qmux" ];
 
diff --git a/pkgs/development/libraries/libqrencode/default.nix b/pkgs/development/libraries/libqrencode/default.nix
index a5e4c4410c0..337d9423aa3 100644
--- a/pkgs/development/libraries/libqrencode/default.nix
+++ b/pkgs/development/libraries/libqrencode/default.nix
@@ -11,7 +11,8 @@ stdenv.mkDerivation rec {
     sha256 = "0wiagx7i8p9zal53smf5abrnh9lr31mv0p36wg017401jrmf5577";
   };
 
-  buildInputs = [ autoconf automake pkgconfig libtool SDL2 libpng ];
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ autoconf automake libtool SDL2 libpng ];
 
   propagatedBuildInputs = [ SDL2 libpng ];
 
diff --git a/pkgs/development/libraries/librdf/default.nix b/pkgs/development/libraries/librdf/default.nix
index 945e11d1bce..8f8a54337f2 100644
--- a/pkgs/development/libraries/librdf/default.nix
+++ b/pkgs/development/libraries/librdf/default.nix
@@ -14,7 +14,8 @@ stdenv.mkDerivation rec {
   preAutoreconf = "rm m4/*";
   postPatch = "sed -i -e 's:usr/local:usr:' examples/{instances,remove}_test.c";
 
-  buildInputs = [ pkgconfig autoreconfHook ladspaH openssl zlib ];
+  nativeBuildInputs = [ autoreconfHook pkgconfig ];
+  buildInputs = [ ladspaH openssl zlib ];
 
   propagatedBuildInputs = [ librdf_raptor2 ];
 
diff --git a/pkgs/development/libraries/librelp/default.nix b/pkgs/development/libraries/librelp/default.nix
index dce85331c1b..adc00b56a28 100644
--- a/pkgs/development/libraries/librelp/default.nix
+++ b/pkgs/development/libraries/librelp/default.nix
@@ -8,7 +8,8 @@ stdenv.mkDerivation rec {
     sha256 = "1mvvxqfsfg96rb6xv3fw7mcsqmyfnsb74sc53gnhpcpp4h2p6m83";
   };
 
-  buildInputs = [ pkgconfig gnutls zlib ];
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ gnutls zlib ];
 
   meta = with stdenv.lib; {
     homepage = http://www.librelp.com/;
diff --git a/pkgs/development/libraries/librep/default.nix b/pkgs/development/libraries/librep/default.nix
index cb61982da09..c74a7981458 100644
--- a/pkgs/development/libraries/librep/default.nix
+++ b/pkgs/development/libraries/librep/default.nix
@@ -15,7 +15,8 @@ stdenv.mkDerivation rec {
     sha256 = "1k6c0hmyzxh8459r790slh9vv9vwy9d7w3nlmrqypbx9mk855hgy";
   };
 
-  buildInputs = [ pkgconfig autoreconfHook readline texinfo ];
+  nativeBuildInputs = [ autoreconfHook pkgconfig ];
+  buildInputs = [ readline texinfo ];
   propagatedBuildInputs = [ gdbm gmp libffi ];
 
   configureFlags = [
diff --git a/pkgs/development/libraries/librevenge/default.nix b/pkgs/development/libraries/librevenge/default.nix
index ac5feb1ddc8..3523eb5c37b 100644
--- a/pkgs/development/libraries/librevenge/default.nix
+++ b/pkgs/development/libraries/librevenge/default.nix
@@ -9,13 +9,14 @@ let
     url="mirror://sourceforge/project/libwpd/librevenge/librevenge-0.0.4/librevenge-0.0.4.tar.xz";
     sha256="1cj76cz4mqcy2mgv9l5xlc95bypyk8zbq0ls9cswqrs2y0lhfgwk";
   };
+  nativeBuildInputs = [ pkgconfig ];
   buildInputs = [
-    boost pkgconfig cppunit zlib
+    boost cppunit zlib
   ];
 in
 stdenv.mkDerivation {
   inherit (s) name version;
-  inherit buildInputs;
+  inherit nativeBuildInputs buildInputs;
   src = fetchurl {
     inherit (s) url sha256;
   };
diff --git a/pkgs/development/libraries/librevisa/default.nix b/pkgs/development/libraries/librevisa/default.nix
index 756a53d5ee5..bc39a077e0c 100644
--- a/pkgs/development/libraries/librevisa/default.nix
+++ b/pkgs/development/libraries/librevisa/default.nix
@@ -10,7 +10,8 @@ stdenv.mkDerivation rec {
     sha256 = "0bjzq23s3xzw0l9qx4l8achrx5id8xdd6r52lvdl4a28dxzbcfhq";
   };
 
-  buildInputs = [ pkgconfig libusb1 ];
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ libusb1 ];
 
   meta = with stdenv.lib; {
     description = "Implementation of the VISA standard (for instrument control)";
diff --git a/pkgs/development/libraries/libsearpc/default.nix b/pkgs/development/libraries/libsearpc/default.nix
index 0457c0eb9c4..3898071c858 100644
--- a/pkgs/development/libraries/libsearpc/default.nix
+++ b/pkgs/development/libraries/libsearpc/default.nix
@@ -14,7 +14,8 @@ stdenv.mkDerivation rec
 
   patches = [ ./libsearpc.pc.patch ];
 
-  buildInputs = [ automake autoconf pkgconfig libtool python2Packages.python python2Packages.simplejson ];
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ automake autoconf libtool python2Packages.python python2Packages.simplejson ];
   propagatedBuildInputs = [ glib jansson ];
 
   preConfigure = "./autogen.sh";
diff --git a/pkgs/development/libraries/libserialport/default.nix b/pkgs/development/libraries/libserialport/default.nix
index ab10e34e230..812847ea123 100644
--- a/pkgs/development/libraries/libserialport/default.nix
+++ b/pkgs/development/libraries/libserialport/default.nix
@@ -8,7 +8,8 @@ stdenv.mkDerivation rec {
     sha256 = "17ajlwgvyyrap8z7f16zcs59pksvncwbmd3mzf98wj7zqgczjaja";
   };
 
-  buildInputs = [ pkgconfig udev ];
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ udev ];
 
   meta = with stdenv.lib; {
     description = "Cross-platform shared library for serial port access";
diff --git a/pkgs/development/libraries/libsigcxx/1.2.nix b/pkgs/development/libraries/libsigcxx/1.2.nix
index 842471a263d..9fc6ff86773 100644
--- a/pkgs/development/libraries/libsigcxx/1.2.nix
+++ b/pkgs/development/libraries/libsigcxx/1.2.nix
@@ -8,7 +8,8 @@ stdenv.mkDerivation rec {
     sha256 = "099224v5y0y1ggqrfc8vga8afr3nb93iicn7cj8xxgsrwa83s5nr";
   };
 
-  buildInputs = [pkgconfig m4];
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ m4];
 
   meta = {
     homepage = http://libsigc.sourceforge.net/;
diff --git a/pkgs/development/libraries/libsndfile/default.nix b/pkgs/development/libraries/libsndfile/default.nix
index 21710375ed7..53d927219e2 100644
--- a/pkgs/development/libraries/libsndfile/default.nix
+++ b/pkgs/development/libraries/libsndfile/default.nix
@@ -33,7 +33,8 @@ stdenv.mkDerivation rec {
     })
   ];
 
-  buildInputs = [ pkgconfig flac libogg libvorbis ]
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ flac libogg libvorbis ]
     ++ stdenv.lib.optionals stdenv.isDarwin [ Carbon AudioToolbox ];
 
   enableParallelBuilding = true;
diff --git a/pkgs/development/libraries/libspatialite/default.nix b/pkgs/development/libraries/libspatialite/default.nix
index d5e72cae5fc..19ccc9159a3 100644
--- a/pkgs/development/libraries/libspatialite/default.nix
+++ b/pkgs/development/libraries/libspatialite/default.nix
@@ -10,7 +10,8 @@ stdenv.mkDerivation rec {
     sha256 = "0b9ipmp09y2ij7yajyjsh0zcwps8n5g88lzfzlkph33lail8l4wz";
   };
 
-  buildInputs = [ pkgconfig libxml2 sqlite zlib proj geos libiconv ];
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ libxml2 sqlite zlib proj geos libiconv ];
 
   configureFlags = "--disable-freexl";
 
diff --git a/pkgs/development/libraries/libspotify/default.nix b/pkgs/development/libraries/libspotify/default.nix
index 951a939cbfb..3a01ff2944d 100644
--- a/pkgs/development/libraries/libspotify/default.nix
+++ b/pkgs/development/libraries/libspotify/default.nix
@@ -63,7 +63,8 @@ else stdenv.mkDerivation {
       '' else stdenv.mkDerivation {
         name = "libspotify-samples-${version}";
         src = libspotify.src;
-        buildInputs = [ pkgconfig libspotify readline ]
+  nativeBuildInputs = [ pkgconfig ];
+        buildInputs = [ libspotify readline ]
           ++ stdenv.lib.optional (!stdenv.isDarwin) alsaLib;
         postUnpack = "sourceRoot=$sourceRoot/share/doc/libspotify/examples";
         patchPhase = "cp ${apiKey} appkey.c";
diff --git a/pkgs/development/libraries/libstrophe/default.nix b/pkgs/development/libraries/libstrophe/default.nix
index 76aa014392b..0d014cb22a8 100644
--- a/pkgs/development/libraries/libstrophe/default.nix
+++ b/pkgs/development/libraries/libstrophe/default.nix
@@ -11,7 +11,8 @@ stdenv.mkDerivation rec {
     sha256 = "099iv13c03y1dsn2ngdhfx2cnax0aj2gfh00w55hlzpvmjm8dsml";
   };
 
-  buildInputs = [ automake autoconf openssl expat libtool pkgconfig check ];
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ automake autoconf openssl expat libtool check ];
 
   dontDisableStatic = true;
 
diff --git a/pkgs/development/libraries/libtap/default.nix b/pkgs/development/libraries/libtap/default.nix
index b1dfa5ba7e4..2671199ab0e 100644
--- a/pkgs/development/libraries/libtap/default.nix
+++ b/pkgs/development/libraries/libtap/default.nix
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec{
     sha256 = "1ms1770cx8c6q3lhn1chkzy12vzmjgvlms7cqhd2d3260j2wwv5s";
   };
 
-  buildInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ];
   propagatedBuildInputs = [ cmake perl ];
 
   meta = {
diff --git a/pkgs/development/libraries/libtar/default.nix b/pkgs/development/libraries/libtar/default.nix
index 212a3a23939..992bad020ea 100644
--- a/pkgs/development/libraries/libtar/default.nix
+++ b/pkgs/development/libraries/libtar/default.nix
@@ -24,7 +24,8 @@ stdenv.mkDerivation rec {
       (fp "th_get_size-unsigned-int"  "1ravbs5yrfac98mnkrzciw9hd2fxq4dc07xl3wx8y2pv1bzkwm41")
     ];
 
-  buildInputs = [ autoreconfHook ];
+  nativeBuildInputs = [ autoreconfHook ];
+  buildInputs = [ ];
 
   meta = with stdenv.lib; {
     description = "C library for manipulating POSIX tar files";
diff --git a/pkgs/development/libraries/libtermkey/default.nix b/pkgs/development/libraries/libtermkey/default.nix
index 97bc98b22d8..429cc5d9f18 100644
--- a/pkgs/development/libraries/libtermkey/default.nix
+++ b/pkgs/development/libraries/libtermkey/default.nix
@@ -13,7 +13,8 @@ stdenv.mkDerivation rec {
   makeFlags = [ "PREFIX=$(out)" ]
     ++ stdenv.lib.optional stdenv.isDarwin "LIBTOOL=${libtool}/bin/libtool";
 
-  buildInputs = [ libtool pkgconfig ncurses ];
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ libtool ncurses ];
 
   meta = with lib; {
     description = "Terminal keypress reading library";
diff --git a/pkgs/development/libraries/libtiger/default.nix b/pkgs/development/libraries/libtiger/default.nix
index deab3043035..3a67e1267e2 100644
--- a/pkgs/development/libraries/libtiger/default.nix
+++ b/pkgs/development/libraries/libtiger/default.nix
@@ -8,7 +8,8 @@ stdenv.mkDerivation rec {
     sha256 = "0rj1bmr9kngrgbxrjbn4f4f9pww0wmf6viflinq7ava7zdav4hkk";
   };
 
-  buildInputs = [ libkate pango cairo pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ libkate pango cairo ];
 
   meta = {
     homepage = http://code.google.com/p/libtiger/;
diff --git a/pkgs/development/libraries/libtorrent-rasterbar/generic.nix b/pkgs/development/libraries/libtorrent-rasterbar/generic.nix
index d0b69e0348f..351ec3e7733 100644
--- a/pkgs/development/libraries/libtorrent-rasterbar/generic.nix
+++ b/pkgs/development/libraries/libtorrent-rasterbar/generic.nix
@@ -15,9 +15,8 @@ stdenv.mkDerivation rec {
     inherit sha256;
   };
 
-  nativeBuildInputs = [automake autoconf libtool ];
-
-  buildInputs = [ boost pkgconfig openssl zlib python libiconv geoip ];
+  nativeBuildInputs = [ automake autoconf libtool pkgconfig ];
+  buildInputs = [ boost openssl zlib python libiconv geoip ];
 
   preConfigure = "./autotool.sh";
 
diff --git a/pkgs/development/libraries/libtsm/default.nix b/pkgs/development/libraries/libtsm/default.nix
index bac29bc0ca8..58b052b8fae 100644
--- a/pkgs/development/libraries/libtsm/default.nix
+++ b/pkgs/development/libraries/libtsm/default.nix
@@ -8,7 +8,8 @@ stdenv.mkDerivation rec {
     sha256 = "01ygwrsxfii0pngfikgqsb4fxp8n1bbs47l7hck81h9b9bc1ah8i";
   };
 
-  buildInputs = [ libxkbcommon pkgconfig ] ++ lib.optionals stdenv.isDarwin [
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ libxkbcommon ] ++ lib.optionals stdenv.isDarwin [
     autoreconfHook
   ];
 
diff --git a/pkgs/development/libraries/libtxc_dxtn/default.nix b/pkgs/development/libraries/libtxc_dxtn/default.nix
index 170af8f172e..82aba6b89f5 100644
--- a/pkgs/development/libraries/libtxc_dxtn/default.nix
+++ b/pkgs/development/libraries/libtxc_dxtn/default.nix
@@ -10,7 +10,8 @@ stdenv.mkDerivation rec {
     sha256 = "0q5fjaknl7s0z206dd8nzk9bdh8g4p23bz7784zrllnarl90saa5";
   };
 
-  buildInputs = [ autoreconfHook mesa ];
+  nativeBuildInputs = [ autoreconfHook ];
+  buildInputs = [ mesa ];
 
   meta = {
     homepage = http://dri.freedesktop.org/wiki/S3TC;
diff --git a/pkgs/development/libraries/libtxc_dxtn_s2tc/default.nix b/pkgs/development/libraries/libtxc_dxtn_s2tc/default.nix
index 654bdd2e61f..387dbb22a81 100644
--- a/pkgs/development/libraries/libtxc_dxtn_s2tc/default.nix
+++ b/pkgs/development/libraries/libtxc_dxtn_s2tc/default.nix
@@ -10,7 +10,8 @@ stdenv.mkDerivation rec {
     sha256 = "0ibfdib277fhbqvxzan0bmglwnsl1y1rw2g8skvz82l1sfmmn752";
   };
 
-  buildInputs = [ autoreconfHook mesa ];
+  nativeBuildInputs = [ autoreconfHook ];
+  buildInputs = [ mesa ];
 
   meta = {
     description = "A patent-free S3TC compatible implementation";
diff --git a/pkgs/development/libraries/libui/default.nix b/pkgs/development/libraries/libui/default.nix
index 4db64186850..2f8963db0cd 100644
--- a/pkgs/development/libraries/libui/default.nix
+++ b/pkgs/development/libraries/libui/default.nix
@@ -13,7 +13,8 @@ in
       sha256 = "1lpbfa298c61aarlzgp7vghrmxg1274pzxh1j9isv8x758gk6mfn";
     };
 
-    buildInputs = [ cmake pkgconfig ] ++
+  nativeBuildInputs = [ pkgconfig ];
+    buildInputs = [ cmake ] ++
       (if stdenv.isDarwin then [darwin.apple_sdk.frameworks.Cocoa] else [gtk3]);
 
     preConfigure = stdenv.lib.optionalString stdenv.isDarwin ''
diff --git a/pkgs/development/libraries/libunique/3.x.nix b/pkgs/development/libraries/libunique/3.x.nix
index 8d1077ee6a0..b0066fa75f2 100644
--- a/pkgs/development/libraries/libunique/3.x.nix
+++ b/pkgs/development/libraries/libunique/3.x.nix
@@ -17,7 +17,8 @@ stdenv.mkDerivation rec {
     sha256 = "0f70lkw66v9cj72q0iw1s2546r6bwwcd8idcm3621fg2fgh2rw58";
   };
 
-  buildInputs = [ pkgconfig dbus dbus_glib gtk3 gobjectIntrospection gtkdoc docbook_xml_dtd_45 docbook_xsl libxslt libxml2 ];
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ dbus dbus_glib gtk3 gobjectIntrospection gtkdoc docbook_xml_dtd_45 docbook_xsl libxslt libxml2 ];
 
   meta = {
     homepage = https://wiki.gnome.org/Attic/LibUnique;
diff --git a/pkgs/development/libraries/libunique/default.nix b/pkgs/development/libraries/libunique/default.nix
index ebf81c67be0..a5adaa9ac17 100644
--- a/pkgs/development/libraries/libunique/default.nix
+++ b/pkgs/development/libraries/libunique/default.nix
@@ -15,7 +15,8 @@ stdenv.mkDerivation rec {
     ./1.1.6-include-terminator.patch
   ];
 
-  buildInputs = [ pkgconfig glib gtk2 dbus_glib ];
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ glib gtk2 dbus_glib ];
 
   # don't make deprecated usages hard errors
   preBuild = ''substituteInPlace unique/dbus/Makefile --replace -Werror ""'';
diff --git a/pkgs/development/libraries/libusb1/default.nix b/pkgs/development/libraries/libusb1/default.nix
index 5a76a93b8e3..dd2f1edc5f2 100644
--- a/pkgs/development/libraries/libusb1/default.nix
+++ b/pkgs/development/libraries/libusb1/default.nix
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
 
   outputs = [ "out" "dev" ]; # get rid of propagating systemd closure
 
-  buildInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ];
   propagatedBuildInputs =
     stdenv.lib.optional stdenv.isLinux systemd ++
     stdenv.lib.optionals stdenv.isDarwin [ libobjc IOKit ];
diff --git a/pkgs/development/libraries/libuv/default.nix b/pkgs/development/libraries/libuv/default.nix
index 50d588dad79..8dea502a4ff 100644
--- a/pkgs/development/libraries/libuv/default.nix
+++ b/pkgs/development/libraries/libuv/default.nix
@@ -2,14 +2,14 @@
 , ApplicationServices, CoreServices }:
 
 stdenv.mkDerivation rec {
-  version = "1.14.1";
+  version = "1.15.0";
   name = "libuv-${version}";
 
   src = fetchFromGitHub {
     owner = "libuv";
     repo = "libuv";
     rev = "v${version}";
-    sha256 = "1121qvnvpcabq1bl2k41jq8r2hn2x123csiaf7s9vrq66bbxgfdx";
+    sha256 = "092hxqjvbb6d03h3msc38359w2kixba1ansyrsbyqq8iqiqwnkw0";
   };
 
   postPatch = let
diff --git a/pkgs/development/libraries/libvdpau/default.nix b/pkgs/development/libraries/libvdpau/default.nix
index 79863f40dff..ceb42fe2bfc 100644
--- a/pkgs/development/libraries/libvdpau/default.nix
+++ b/pkgs/development/libraries/libvdpau/default.nix
@@ -10,7 +10,8 @@ stdenv.mkDerivation rec {
 
   outputs = [ "out" "dev" ];
 
-  buildInputs = with xorg; [ pkgconfig dri2proto libXext ];
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = with xorg; [ dri2proto libXext ];
 
   propagatedBuildInputs = [ xorg.libX11 ];
 
diff --git a/pkgs/development/libraries/libviper/default.nix b/pkgs/development/libraries/libviper/default.nix
index 90c1f07da5a..6ca3d997e65 100644
--- a/pkgs/development/libraries/libviper/default.nix
+++ b/pkgs/development/libraries/libviper/default.nix
@@ -16,7 +16,8 @@ stdenv.mkDerivation rec {
     mkdir -p $out/lib
   '';
 
-  buildInputs = [pkgconfig glib ncurses gpm];
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ glib ncurses gpm];
 
   meta = with stdenv.lib; {
     homepage = http://libviper.sourceforge.net/;
diff --git a/pkgs/development/libraries/libvirt-glib/default.nix b/pkgs/development/libraries/libvirt-glib/default.nix
index 8cebaeee2af..e41ab5fe5a3 100644
--- a/pkgs/development/libraries/libvirt-glib/default.nix
+++ b/pkgs/development/libraries/libvirt-glib/default.nix
@@ -13,8 +13,9 @@ in stdenv.mkDerivation rec {
     sha256 = "0iwa5sdbii52pjpdm5j37f67sdmf0kpcky4liwhy1nf43k85i4fa";
   };
 
+  nativeBuildInputs = [ pkgconfig ];
   buildInputs = [
-    pkgconfig libvirt glib libxml2 intltool libtool yajl nettle libgcrypt
+    libvirt glib libxml2 intltool libtool yajl nettle libgcrypt
     python pygobject2 gobjectIntrospection libcap_ng numactl xen libapparmor
   ];
 
diff --git a/pkgs/development/libraries/libvisual/default.nix b/pkgs/development/libraries/libvisual/default.nix
index 50a4c7c8f24..8bac0f41dde 100644
--- a/pkgs/development/libraries/libvisual/default.nix
+++ b/pkgs/development/libraries/libvisual/default.nix
@@ -8,7 +8,8 @@ stdenv.mkDerivation rec {
     sha256 = "1my1ipd5k1ixag96kwgf07bgxkjlicy9w22jfxb2kq95f6wgsk8b";
   };
 
-  buildInputs = [ pkgconfig glib ];
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ glib ];
 
   hardeningDisable = [ "format" ];
 
diff --git a/pkgs/development/libraries/libvterm/default.nix b/pkgs/development/libraries/libvterm/default.nix
index e58d964a625..472539ea24b 100644
--- a/pkgs/development/libraries/libvterm/default.nix
+++ b/pkgs/development/libraries/libvterm/default.nix
@@ -17,7 +17,8 @@ stdenv.mkDerivation rec {
     mkdir -p $out/lib
   '';
 
-  buildInputs = [ pkgconfig glib ncurses ];
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ glib ncurses ];
 
   meta = with stdenv.lib; {
     homepage = http://libvterm.sourceforge.net/;
diff --git a/pkgs/development/libraries/libwmf/default.nix b/pkgs/development/libraries/libwmf/default.nix
index 5683e88b020..eed0c77af80 100644
--- a/pkgs/development/libraries/libwmf/default.nix
+++ b/pkgs/development/libraries/libwmf/default.nix
@@ -9,7 +9,8 @@ stdenv.mkDerivation {
     sha256 = "1y3wba4q8pl7kr51212jwrsz1x6nslsx1gsjml1x0i8549lmqd2v";
   };
 
-  buildInputs = [ zlib imagemagick libpng pkgconfig glib freetype libjpeg libxml2 ];
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ zlib imagemagick libpng glib freetype libjpeg libxml2 ];
 
   patches = [
     ./CVE-2006-3376.patch ./CVE-2009-1364.patch
diff --git a/pkgs/development/libraries/libwnck/3.x.nix b/pkgs/development/libraries/libwnck/3.x.nix
index 094edc36bbb..ed775fb4593 100644
--- a/pkgs/development/libraries/libwnck/3.x.nix
+++ b/pkgs/development/libraries/libwnck/3.x.nix
@@ -13,7 +13,8 @@ stdenv.mkDerivation {
 
   patches = [ ./install_introspection_to_prefix.patch ];
 
-  buildInputs = [ pkgconfig intltool ];
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ intltool ];
   propagatedBuildInputs = [ libX11 gtk3 ];
 
   meta = {
diff --git a/pkgs/development/libraries/libwnck/default.nix b/pkgs/development/libraries/libwnck/default.nix
index 6e0809664cf..25454137410 100644
--- a/pkgs/development/libraries/libwnck/default.nix
+++ b/pkgs/development/libraries/libwnck/default.nix
@@ -15,7 +15,8 @@ stdenv.mkDerivation rec {
   outputs = [ "out" "dev" "devdoc" ];
   outputBin = "dev";
 
-  buildInputs = [ pkgconfig gtk2 intltool xorg.libX11 xorg.libXres ];
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ gtk2 intltool xorg.libX11 xorg.libXres ];
   # ?another optional: startup-notification
 
   configureFlags = [ "--disable-introspection" ]; # not needed anywhere AFAIK
diff --git a/pkgs/development/libraries/libwps/default.nix b/pkgs/development/libraries/libwps/default.nix
index b165631e23e..73fe5b55ab4 100644
--- a/pkgs/development/libraries/libwps/default.nix
+++ b/pkgs/development/libraries/libwps/default.nix
@@ -9,7 +9,8 @@ stdenv.mkDerivation rec {
     sha256 = "0v1a0hj96i4jhb5833336s4zcslzb6md5cnmnrvgywx8cmw40c0c";
   };
 
-  buildInputs = [ boost pkgconfig librevenge zlib ];
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ boost librevenge zlib ];
 
   meta = with stdenv.lib; {
     homepage = http://libwps.sourceforge.net/;
diff --git a/pkgs/development/libraries/libx86/non-x86.patch b/pkgs/development/libraries/libx86/non-x86.patch
index 0d41cd737f0..286057c4ba8 100644
--- a/pkgs/development/libraries/libx86/non-x86.patch
+++ b/pkgs/development/libraries/libx86/non-x86.patch
@@ -5,7 +5,7 @@ diff -Naur libx86-1.1+ds1.orig/Makefile libx86-1.1+ds1/Makefile
  ifeq ($(BACKEND),x86emu)
  	OBJECTS += thunk.o x86emu/decode.o x86emu/debug.o x86emu/fpu.o \
  	x86emu/ops.o x86emu/ops2.o x86emu/prim_ops.o x86emu/sys.o
-+	CFLAGS += -DX86EMU
++	CFLAGS += -DX86EMU -fno-delete-null-pointer-checks
  else
  	OBJECTS += lrmi.o
  endif
diff --git a/pkgs/development/libraries/libxdg-basedir/default.nix b/pkgs/development/libraries/libxdg-basedir/default.nix
index a8a6200519e..f0e63efc0d1 100644
--- a/pkgs/development/libraries/libxdg-basedir/default.nix
+++ b/pkgs/development/libraries/libxdg-basedir/default.nix
@@ -1,16 +1,24 @@
-{stdenv, fetchurl}:
+{stdenv, fetchurl, fetchpatch}:
 
 stdenv.mkDerivation rec {
-  name = "libxdg-basedir-1.0.2";
+  name = "libxdg-basedir-1.2.0";
   src = fetchurl {
-    url = "http://n.ethz.ch/student/nevillm/download/libxdg-basedir/${name}.tar.gz";
-    sha256 = "0fibbzba228gdk05lfi8cgfrsp80a2gnjbwka0pzpkig0fz8pp9i";
+    url = "https://nevill.ch/libxdg-basedir/downloads/${name}.tar.gz";
+    sha256 = "2757a949618742d80ac59ee2f0d946adc6e71576406cdf798e6ced507708cdf4";
   };
 
-  meta = {
-    homepage = http://n.ethz.ch/student/nevillm/download/libxdg-basedir/;
+  patches = [
+    # Overflow bug
+    (fetchpatch {
+      url = "https://github.com/devnev/libxdg-basedir/commit/14e000f696ef8b83264b0ca4407669bdb365fb23.patch";
+      sha256 = "0lpy1ijir0x0hhb0fz0w5vxy1wl1cw9kkd6gva0rkp41i6vrp2wq";
+    })
+  ];
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/devnev/libxdg-basedir;
     description = "Implementation of the XDG Base Directory specification";
-    license = "BSD";
-    platforms = stdenv.lib.platforms.unix;
+    license = licenses.mit;
+    platforms = platforms.unix;
   };
 }
diff --git a/pkgs/development/libraries/libxkbcommon/default.nix b/pkgs/development/libraries/libxkbcommon/default.nix
index 486d52a2e27..fd61ae84028 100644
--- a/pkgs/development/libraries/libxkbcommon/default.nix
+++ b/pkgs/development/libraries/libxkbcommon/default.nix
@@ -10,7 +10,8 @@ stdenv.mkDerivation rec {
 
   outputs = [ "out" "dev" ];
 
-  buildInputs = [ pkgconfig yacc flex xkeyboard_config libxcb ];
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ yacc flex xkeyboard_config libxcb ];
 
   configureFlags = [
     "--with-xkb-config-root=${xkeyboard_config}/etc/X11/xkb"
diff --git a/pkgs/development/libraries/loudmouth/default.nix b/pkgs/development/libraries/loudmouth/default.nix
index 775b515dc7f..762d23e240a 100644
--- a/pkgs/development/libraries/loudmouth/default.nix
+++ b/pkgs/development/libraries/loudmouth/default.nix
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
 
   propagatedBuildInputs = [ openssl libidn glib zlib ];
 
-  buildInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ];
 
   meta = {
     description = "A lightweight C library for the Jabber protocol";
diff --git a/pkgs/development/libraries/luaffi/default.nix b/pkgs/development/libraries/luaffi/default.nix
index 38dfba4c462..1e4cf11d1fa 100644
--- a/pkgs/development/libraries/luaffi/default.nix
+++ b/pkgs/development/libraries/luaffi/default.nix
@@ -9,7 +9,8 @@ stdenv.mkDerivation {
     sha256 = "1hv1y9i66p473hfy36nqj220sfrxdmbd75c1gpjvpk8073vx55ac";
   };
 
-  buildInputs = [ lua pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ lua ];
 
   patches = [
     ./makefile-errors.patch
diff --git a/pkgs/development/libraries/mailcore2/default.nix b/pkgs/development/libraries/mailcore2/default.nix
index 03a940801e9..0a64c7c0429 100644
--- a/pkgs/development/libraries/mailcore2/default.nix
+++ b/pkgs/development/libraries/mailcore2/default.nix
@@ -14,8 +14,9 @@ stdenv.mkDerivation rec {
     sha256 = "1k0l59cdk8np4pff1my07dp7ivf3nchlhcpvm9xizp0my9rqgbxb";
   };
 
+  nativeBuildInputs = [ pkgconfig ];
   buildInputs = [
-    libetpan cmake icu cyrus_sasl libctemplate libuchardet pkgconfig glib
+    libetpan cmake icu cyrus_sasl libctemplate libuchardet glib
     libtidy libxml2 libuuid openssl
   ];
 
diff --git a/pkgs/development/libraries/mapnik/default.nix b/pkgs/development/libraries/mapnik/default.nix
index 96dbc094b55..0546bdc6359 100644
--- a/pkgs/development/libraries/mapnik/default.nix
+++ b/pkgs/development/libraries/mapnik/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchzip
+{ stdenv, fetchzip, fetchpatch
 , boost, cairo, freetype, gdal, harfbuzz, icu, libjpeg, libpng, libtiff
 , libwebp, libxml2, proj, python2, scons, sqlite, zlib
 
@@ -16,6 +16,12 @@ stdenv.mkDerivation rec {
     sha256 = "189wsd6l6awblkiha666l1sdyp7ifmnfsa87y0j37rvym6w4r065";
   };
 
+  patches = [(fetchpatch {
+    name = "icu-59.diff";
+    url = https://github.com/mapnik/mapnik/commit/9e58c890430d.diff;
+    sha256 = "0h546qq8g19gw9s4979hla9vkq5kcwh3q45ryajyjhmlr2z9fi6p";
+  })];
+
   # a distinct dev output makes python-mapnik fail
   outputs = [ "out" ];
 
diff --git a/pkgs/development/libraries/mediastreamer/msopenh264.nix b/pkgs/development/libraries/mediastreamer/msopenh264.nix
index 47b7029927c..f49b7ba2c4b 100644
--- a/pkgs/development/libraries/mediastreamer/msopenh264.nix
+++ b/pkgs/development/libraries/mediastreamer/msopenh264.nix
@@ -12,8 +12,8 @@ stdenv.mkDerivation rec {
     sha256 = "001km4xy1ifwbg1c19ncc75h867fzfcxy9pxvl4pxqb64169xc1k";
   };
 
-  buildInputs = [ autoreconfHook pkgconfig mediastreamer openh264 ];
-  nativeBuildInputs = [ cmake ];
+  nativeBuildInputs = [ autoreconfHook cmake pkgconfig ];
+  buildInputs = [ mediastreamer openh264 ];
 
   meta = with stdenv.lib; {
     description = "H.264 encoder/decoder plugin for mediastreamer2";
diff --git a/pkgs/development/libraries/mesa-glu/default.nix b/pkgs/development/libraries/mesa-glu/default.nix
index 06d9994a529..9a6441956db 100644
--- a/pkgs/development/libraries/mesa-glu/default.nix
+++ b/pkgs/development/libraries/mesa-glu/default.nix
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
     echo 'Cflags: -I''${includedir}' >> glu.pc.in
   '';
 
-  buildInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ];
   propagatedBuildInputs = [ mesa_noglu ];
 
   outputs = [ "out" "dev" ];
diff --git a/pkgs/development/libraries/mesa/default.nix b/pkgs/development/libraries/mesa/default.nix
index 2d253f7cd45..0fde0192726 100644
--- a/pkgs/development/libraries/mesa/default.nix
+++ b/pkgs/development/libraries/mesa/default.nix
@@ -1,10 +1,10 @@
 { stdenv, fetchurl, fetchpatch, lib
 , pkgconfig, intltool, autoreconfHook, substituteAll
-, file, expat, libdrm, xorg, wayland, openssl
+, file, expat, libdrm, xorg, wayland, wayland-protocols, openssl
 , llvmPackages, libffi, libomxil-bellagio, libva
-, libelf, libvdpau, valgrind-light
+, libelf, libvdpau, valgrind-light, python2
 , grsecEnabled ? false
-, enableRadv ? false
+, enableRadv ? true
 # Texture floats are patented, see docs/patents.txt, so we don't enable them for full Mesa.
 # It's overridden for mesa_drivers.
 , enableTextureFloats ? false
@@ -36,7 +36,7 @@ let
     then ["nouveau" "freedreno" "vc4" "etnaviv" "imx"]
     else if stdenv.isAarch64
     then ["nouveau" "vc4" ]
-    else ["i915" "r300" "r600" "radeonsi" "nouveau"];
+    else ["svga" "i915" "r300" "r600" "radeonsi" "nouveau"];
   defaultDriDrivers =
     if (stdenv.isArm || stdenv.isAarch64)
     then ["nouveau"]
@@ -51,8 +51,7 @@ let gallium_ = galliumDrivers; dri_ = driDrivers; vulkan_ = vulkanDrivers; in
 
 let
   galliumDrivers =
-    ["svga"]
-    ++ (if gallium_ == null
+    (if gallium_ == null
           then defaultGalliumDrivers
           else gallium_)
     ++ ["swrast"];
@@ -67,7 +66,7 @@ let
 in
 
 let
-  version = "17.1.10";
+  version = "17.2.2";
   branch  = head (splitString "." version);
   driverLink = "/run/opengl-driver" + optionalString stdenv.isi686 "-32";
 in
@@ -82,7 +81,7 @@ stdenv.mkDerivation {
       "ftp://ftp.freedesktop.org/pub/mesa/older-versions/${branch}.x/${version}/mesa-${version}.tar.xz"
       "https://launchpad.net/mesa/trunk/${version}/+download/mesa-${version}.tar.xz"
     ];
-    sha256 = "cbc0d681cc4df47d8deb5a36f45b420978128522fd665b2cd4c7096316f11bdb";
+    sha256 = "10jplvxg7rlbp7569w08z0igwlsjjfb7q3n07zgfr8d5sr224lng";
   };
 
   prePatch = "patchShebangs .";
@@ -140,19 +139,19 @@ stdenv.mkDerivation {
     "--disable-opencl"
   ];
 
-  nativeBuildInputs = [ pkgconfig file ];
+  nativeBuildInputs = [ autoreconfHook intltool pkgconfig file ];
 
   propagatedBuildInputs = with xorg;
     [ libXdamage libXxf86vm ]
     ++ optional stdenv.isLinux libdrm;
 
   buildInputs = with xorg; [
-    autoreconfHook intltool expat llvmPackages.llvm
+    expat llvmPackages.llvm
     glproto dri2proto dri3proto presentproto
     libX11 libXext libxcb libXt libXfixes libxshmfence
-    libffi wayland libvdpau libelf libXvMC
+    libffi wayland wayland-protocols libvdpau libelf libXvMC
     libomxil-bellagio libva libpthreadstubs openssl/*or another sha1 provider*/
-    valgrind-light
+    valgrind-light python2
   ];
 
 
diff --git a/pkgs/development/libraries/mono-zeroconf/default.nix b/pkgs/development/libraries/mono-zeroconf/default.nix
index 12b15c4937d..444ec9dac2b 100644
--- a/pkgs/development/libraries/mono-zeroconf/default.nix
+++ b/pkgs/development/libraries/mono-zeroconf/default.nix
@@ -9,7 +9,8 @@ stdenv.mkDerivation rec {
     sha256 = "1qfp4qvsx7rc2shj1chi2y7fxn10rwi70rw2y54b2i8a4jq7gpkb";
   };
 
-  buildInputs = [ pkgconfig which mono ];
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ which mono ];
 
   dontStrip = true;
 
diff --git a/pkgs/development/libraries/movit/default.nix b/pkgs/development/libraries/movit/default.nix
index a344b8fa92f..d85d4f44407 100644
--- a/pkgs/development/libraries/movit/default.nix
+++ b/pkgs/development/libraries/movit/default.nix
@@ -15,7 +15,8 @@ stdenv.mkDerivation rec {
 
   propagatedBuildInputs = [ eigen epoxy ];
 
-  buildInputs = [ SDL fftw gtest pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ SDL fftw gtest ];
 
   meta = with stdenv.lib; {
     description = "High-performance, high-quality video filters for the GPU";
diff --git a/pkgs/development/libraries/mps/default.nix b/pkgs/development/libraries/mps/default.nix
index 852946e7e40..4e4ddfb6389 100644
--- a/pkgs/development/libraries/mps/default.nix
+++ b/pkgs/development/libraries/mps/default.nix
@@ -9,7 +9,8 @@ stdenv.mkDerivation rec {
     sha256 = "1k7vnanpgawnj84x2xs6md57pfib9p7c3acngqzkl3c2aqw8qay0";
   };
 
-  buildInputs = [ autoreconfHook sqlite ];
+  nativeBuildInputs = [ autoreconfHook ];
+  buildInputs = [ sqlite ];
 
   meta = {
     description = "A flexible memory management and garbage collection library";
diff --git a/pkgs/development/libraries/mygui/default.nix b/pkgs/development/libraries/mygui/default.nix
index 6e4b3e6a862..715d2cb90f4 100644
--- a/pkgs/development/libraries/mygui/default.nix
+++ b/pkgs/development/libraries/mygui/default.nix
@@ -16,7 +16,8 @@ in stdenv.mkDerivation rec {
 
   enableParallelBuilding = true;
 
-  buildInputs = [ libX11 unzip cmake ois freetype libuuid boost pkgconfig (if withOgre then ogre else mesa) ];
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ libX11 unzip cmake ois freetype libuuid boost (if withOgre then ogre else mesa) ];
 
   # Tools are disabled due to compilation failures.
   cmakeFlags = [ "-DMYGUI_BUILD_TOOLS=OFF" "-DMYGUI_BUILD_DEMOS=OFF" "-DMYGUI_RENDERSYSTEM=${renderSystem}" ];
diff --git a/pkgs/development/libraries/ndn-cxx/default.nix b/pkgs/development/libraries/ndn-cxx/default.nix
index 8df9715a4f4..ee7d4765fb2 100644
--- a/pkgs/development/libraries/ndn-cxx/default.nix
+++ b/pkgs/development/libraries/ndn-cxx/default.nix
@@ -9,7 +9,8 @@ stdenv.mkDerivation {
     rev = "4c32e748863d5165cc0e3d6b54a8383f4836cdf1";
     sha256 = "18szs3j3ig8wlcqngran0daxaj7j2qsmch0212ids6fymj1hgax4";
   };
-  buildInputs = [ openssl doxygen boost sqlite cryptopp pkgconfig python pythonPackages.sphinx];
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ openssl doxygen boost sqlite cryptopp python pythonPackages.sphinx];
   preConfigure = ''
     patchShebangs waf
     ./waf configure \
diff --git a/pkgs/development/libraries/neardal/default.nix b/pkgs/development/libraries/neardal/default.nix
index 9f46305c1b5..e0adb312677 100644
--- a/pkgs/development/libraries/neardal/default.nix
+++ b/pkgs/development/libraries/neardal/default.nix
@@ -10,7 +10,8 @@ stdenv.mkDerivation rec {
     sha256 = "12qwg7qiw2wfpaxfg2fjkmj5lls0g33xp6w433g8bnkvwlq4s29g";
   };
 
-  buildInputs = [ autoconf automake libtool pkgconfig glib readline makeWrapper ];
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ autoconf automake libtool glib readline makeWrapper ];
 
   preConfigure = ''
     substituteInPlace "ncl/Makefile.am" --replace "noinst_PROGRAMS" "bin_PROGRAMS"
diff --git a/pkgs/development/libraries/neon/0.29.nix b/pkgs/development/libraries/neon/0.29.nix
index fbd0c053f04..e393d50bf9d 100644
--- a/pkgs/development/libraries/neon/0.29.nix
+++ b/pkgs/development/libraries/neon/0.29.nix
@@ -24,7 +24,8 @@ stdenv.mkDerivation rec {
 
   patches = optionals stdenv.isDarwin [ ./0.29.6-darwin-fix-configure.patch ];
 
-  buildInputs = [libxml2 pkgconfig openssl]
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [libxml2 openssl]
     ++ stdenv.lib.optional compressionSupport zlib;
 
   configureFlags = ''
diff --git a/pkgs/development/libraries/neon/default.nix b/pkgs/development/libraries/neon/default.nix
index e0156be5da5..2351e3b0800 100644
--- a/pkgs/development/libraries/neon/default.nix
+++ b/pkgs/development/libraries/neon/default.nix
@@ -24,7 +24,8 @@ stdenv.mkDerivation rec {
 
   patches = optionals stdenv.isDarwin [ ./0.29.6-darwin-fix-configure.patch ];
 
-  buildInputs = [libxml2 pkgconfig openssl]
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [libxml2 openssl]
     ++ stdenv.lib.optional compressionSupport zlib;
 
   configureFlags = ''
diff --git a/pkgs/development/libraries/nspr/default.nix b/pkgs/development/libraries/nspr/default.nix
index c2aea07d102..8f7bebf649c 100644
--- a/pkgs/development/libraries/nspr/default.nix
+++ b/pkgs/development/libraries/nspr/default.nix
@@ -1,14 +1,14 @@
 { stdenv, fetchurl
 , CoreServices ? null }:
 
-let version = "4.15"; in
+let version = "4.16"; in
 
 stdenv.mkDerivation {
   name = "nspr-${version}";
 
   src = fetchurl {
     url = "mirror://mozilla/nspr/releases/v${version}/src/nspr-${version}.tar.gz";
-    sha256 = "101dksqm1z0hzd7ap82ccbxjr48s6q3xhshdl81qkj6hqdmy1p97";
+    sha256 = "1l9wlnb9y0bzicv448jjl9kssqn044dc2qrkwzp4ll35fvch4ccv";
   };
 
   outputs = [ "out" "dev" ];
diff --git a/pkgs/development/libraries/nss/default.nix b/pkgs/development/libraries/nss/default.nix
index 80975c8ef5d..5f0918d6451 100644
--- a/pkgs/development/libraries/nss/default.nix
+++ b/pkgs/development/libraries/nss/default.nix
@@ -9,11 +9,11 @@ let
 
 in stdenv.mkDerivation rec {
   name = "nss-${version}";
-  version = "3.31";
+  version = "3.32.1";
 
   src = fetchurl {
-    url = "mirror://mozilla/security/nss/releases/NSS_3_31_RTM/src/${name}.tar.gz";
-    sha256 = "0pd643a8ns7q5az5ai3ascrw666i2kbfiyy1c9hlhw9jd8jn21g9";
+    url = "mirror://mozilla/security/nss/releases/NSS_3_32_1_RTM/src/${name}.tar.gz";
+    sha256 = "0lj6c94102aa81bnjisnix09zfjly9aa1d6vrzxmcjmzynkrrrad";
   };
 
   buildInputs = [ perl zlib sqlite ];
@@ -25,37 +25,13 @@ in stdenv.mkDerivation rec {
   '';
 
   patches =
-    [ # Install a nss.pc (pkgconfig) file and nss-config script
-      # Upstream issue: https://bugzilla.mozilla.org/show_bug.cgi?id=530672
-      (fetchurl {
-        name = "nss-3.28-gentoo-fixups.patch";
-        url = "https://gitweb.gentoo.org/repo/gentoo.git/plain/"
-            + "dev-libs/nss/files/nss-3.28-gentoo-fixups.patch"
-            + "?id=05c31f8cca591b3ce8219e4def7c26c7b1b130d6";
-        sha256 = "0z58axd1n7vq4kdp5mrb3dsg6di39a1g40s3shl6n2dzs14c1y2q";
-      })
+    [
       # Based on http://patch-tracker.debian.org/patch/series/dl/nss/2:3.15.4-1/85_security_load.patch
       ./85_security_load.patch
     ];
 
   patchFlags = "-p0";
 
-  postPatch = ''
-    # Fix up the patch from Gentoo.
-    sed -i \
-      -e "/^PREFIX =/s|= /usr|= $out|" \
-      -e '/@libdir@/s|gentoo/nss|lib|' \
-      -e '/ln -sf/d' \
-      nss/config/Makefile
-
-    # Note for spacing/tab nazis: The TAB characters are intentional!
-    cat >> nss/config/Makefile <<INSTALL_TARGET
-    install:
-    	mkdir -p \$(DIST)/lib/pkgconfig
-    	cp nss.pc \$(DIST)/lib/pkgconfig
-    INSTALL_TARGET
-  '';
-
   outputs = [ "out" "dev" "tools" ];
 
   preConfigure = "cd nss";
@@ -79,9 +55,31 @@ in stdenv.mkDerivation rec {
     mv $out/*.OBJ/* $out/
     rmdir $out/*.OBJ
 
-    cp -av config/nss-config $out/bin/nss-config
-
     ln -s lib $out/lib64
+
+    # Upstream issue: https://bugzilla.mozilla.org/show_bug.cgi?id=530672
+    # https://gitweb.gentoo.org/repo/gentoo.git/plain/dev-libs/nss/files/nss-3.32-gentoo-fixups.patch?id=af1acce6c6d2c3adb17689261dfe2c2b6771ab8a
+    NSS_MAJOR_VERSION=`grep "NSS_VMAJOR" lib/nss/nss.h | awk '{print $3}'`
+    NSS_MINOR_VERSION=`grep "NSS_VMINOR" lib/nss/nss.h | awk '{print $3}'`
+    NSS_PATCH_VERSION=`grep "NSS_VPATCH" lib/nss/nss.h | awk '{print $3}'`
+    PREFIX="$out"
+
+    mkdir -p $out/lib/pkgconfig
+    sed -e "s,%prefix%,$PREFIX," \
+        -e "s,%exec_prefix%,$PREFIX," \
+        -e "s,%libdir%,$PREFIX/lib64," \
+        -e "s,%includedir%,$dev/include/nss," \
+        -e "s,%NSS_VERSION%,$NSS_MAJOR_VERSION.$NSS_MINOR_VERSION.$NSS_PATCH_VERSION,g" \
+        -e "s,%NSPR_VERSION%,4.16,g" \
+        pkg/pkg-config/nss.pc.in > $out/lib/pkgconfig/nss.pc
+    chmod 0644 $out/lib/pkgconfig/nss.pc
+
+    sed -e "s,@prefix@,$PREFIX," \
+        -e "s,@MOD_MAJOR_VERSION@,$NSS_MAJOR_VERSION," \
+        -e "s,@MOD_MINOR_VERSION@,$NSS_MINOR_VERSION," \
+        -e "s,@MOD_PATCH_VERSION@,$NSS_PATCH_VERSION," \
+        pkg/pkg-config/nss-config.in > $out/bin/nss-config
+    chmod 0755 $out/bin/nss-config
   '';
 
   postFixup = ''
diff --git a/pkgs/development/libraries/nss_wrapper/default.nix b/pkgs/development/libraries/nss_wrapper/default.nix
index 8f3a313b21d..9051d96eff7 100644
--- a/pkgs/development/libraries/nss_wrapper/default.nix
+++ b/pkgs/development/libraries/nss_wrapper/default.nix
@@ -8,7 +8,8 @@ stdenv.mkDerivation rec {
     sha256 = "0bysdijvi9n0jk74iklbfhbp0kvv81a727lcfd5q03q2hkzjfm18";
   };
 
-  buildInputs = [ cmake pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ cmake ];
 
   meta = with stdenv.lib; {
     description = "A wrapper for the user, group and hosts NSS API";
diff --git a/pkgs/development/libraries/ntdb/default.nix b/pkgs/development/libraries/ntdb/default.nix
index 80e683a32ae..d26b15176aa 100644
--- a/pkgs/development/libraries/ntdb/default.nix
+++ b/pkgs/development/libraries/ntdb/default.nix
@@ -10,8 +10,9 @@ stdenv.mkDerivation rec {
     sha256 = "0jdzgrz5sr25k83yrw7wqb3r0yj1v04z4s3lhsmnr5z6n5ifhyl1";
   };
 
+  nativeBuildInputs = [ pkgconfig ];
   buildInputs = [
-    python pkgconfig readline gettext libxslt docbook_xsl docbook_xml_dtd_42
+    python readline gettext libxslt docbook_xsl docbook_xml_dtd_42
   ];
 
   preConfigure = ''
diff --git a/pkgs/development/libraries/opal/default.nix b/pkgs/development/libraries/opal/default.nix
index 36a4c3b0bb6..f86e4d12097 100644
--- a/pkgs/development/libraries/opal/default.nix
+++ b/pkgs/development/libraries/opal/default.nix
@@ -9,7 +9,8 @@ stdenv.mkDerivation rec {
     sha256 = "f208985003461b2743575eccac13ad890b3e5baac35b68ddef17162460aff864";
   };
 
-  buildInputs = [ pkgconfig ptlib srtp libtheora speex
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ ptlib srtp libtheora speex
                   ffmpeg x264 cyrus_sasl openldap openssl expat unixODBC ];
   propagatedBuildInputs = [ speex ]; 
 
diff --git a/pkgs/development/libraries/opencollada/default.nix b/pkgs/development/libraries/opencollada/default.nix
index 160599837c5..5ce30b03969 100644
--- a/pkgs/development/libraries/opencollada/default.nix
+++ b/pkgs/development/libraries/opencollada/default.nix
@@ -12,7 +12,8 @@ stdenv.mkDerivation rec {
     sha256 = "0gpjvzcfyilb96x5ywajxgkw42ipwp4my36z9cq686bd9vpp3q0g";
   };
 
-  buildInputs = [ cmake pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ cmake ];
 
   propagatedBuildInputs = [ libxml2 pcre ];
 
diff --git a/pkgs/development/libraries/openct/default.nix b/pkgs/development/libraries/openct/default.nix
index aafdd60e415..5eb08ecd601 100644
--- a/pkgs/development/libraries/openct/default.nix
+++ b/pkgs/development/libraries/openct/default.nix
@@ -25,7 +25,8 @@ stdenv.mkDerivation rec {
     "--sysconfdir=/etc"
   ];
 
-  buildInputs = [ autoreconfHook pkgconfig pcsclite libusb doxygen libxslt ];
+  nativeBuildInputs = [ autoreconfHook pkgconfig ];
+  buildInputs = [ pcsclite libusb doxygen libxslt ];
 
   preInstall = ''
     mkdir -p $out/etc
diff --git a/pkgs/development/libraries/opencv/3.x.nix b/pkgs/development/libraries/opencv/3.x.nix
index f6811b13717..8596ab6de88 100644
--- a/pkgs/development/libraries/opencv/3.x.nix
+++ b/pkgs/development/libraries/opencv/3.x.nix
@@ -14,8 +14,8 @@
 , enableGtk3      ? false, gtk3
 , enableFfmpeg    ? false, ffmpeg
 , enableGStreamer ? false, gst_all_1
-, enableEigen     ? false, eigen
-, enableOpenblas  ? false, openblas
+, enableEigen     ? true, eigen
+, enableOpenblas  ? true, openblas
 , enableCuda      ? false, cudatoolkit, gcc5
 , enableTesseract ? false, tesseract, leptonica
 , AVFoundation, Cocoa, QTKit
diff --git a/pkgs/development/libraries/opencv/default.nix b/pkgs/development/libraries/opencv/default.nix
index d7824dbed34..aadd108620a 100644
--- a/pkgs/development/libraries/opencv/default.nix
+++ b/pkgs/development/libraries/opencv/default.nix
@@ -9,7 +9,7 @@
 , enableJPEG2K ? true, jasper
 , enableFfmpeg ? false, ffmpeg
 , enableGStreamer ? false, gst_all
-, enableEigen ? false, eigen
+, enableEigen ? true, eigen
 , darwin
 }:
 
diff --git a/pkgs/development/libraries/openexr/default.nix b/pkgs/development/libraries/openexr/default.nix
index 22cc5b416e7..27a9860c868 100644
--- a/pkgs/development/libraries/openexr/default.nix
+++ b/pkgs/development/libraries/openexr/default.nix
@@ -14,7 +14,8 @@ stdenv.mkDerivation rec {
     ./bootstrap
   '';
 
-  buildInputs = [ autoconf automake libtool pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ autoconf automake libtool ];
   propagatedBuildInputs = [ ilmbase zlib ];
 
   enableParallelBuilding = true;
diff --git a/pkgs/development/libraries/openwsman/default.nix b/pkgs/development/libraries/openwsman/default.nix
index 0eb940c119e..b179ca8803c 100644
--- a/pkgs/development/libraries/openwsman/default.nix
+++ b/pkgs/development/libraries/openwsman/default.nix
@@ -9,7 +9,8 @@ stdenv.mkDerivation rec {
     sha256 = "0gw2dsjxzpchg3s85kplwgp9xhd9l7q4fh37iy7r203pvir4k6s4";
   };
 
-  buildInputs = [ autoconf automake libtool pkgconfig libxml2 curl cmake pam sblim-sfcc ];
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ autoconf automake libtool libxml2 curl cmake pam sblim-sfcc ];
 
   cmakeFlags = [
     "-DCMAKE_BUILD_RUBY_GEM=no"
diff --git a/pkgs/development/libraries/pangox-compat/default.nix b/pkgs/development/libraries/pangox-compat/default.nix
index eb3c1202367..8154fca29e8 100644
--- a/pkgs/development/libraries/pangox-compat/default.nix
+++ b/pkgs/development/libraries/pangox-compat/default.nix
@@ -8,7 +8,8 @@ stdenv.mkDerivation rec {
     sha256 = "0ip0ziys6mrqqmz4n71ays0kf5cs1xflj1gfpvs4fgy2nsrr482m";
   };
 
-  buildInputs = [ pkgconfig glib pango libX11 ];
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ glib pango libX11 ];
 
   meta = {
     description = "A compatibility library for pango>1.30.*";
diff --git a/pkgs/development/libraries/pangoxsl/default.nix b/pkgs/development/libraries/pangoxsl/default.nix
index 38f1496062e..aae6ed0f688 100644
--- a/pkgs/development/libraries/pangoxsl/default.nix
+++ b/pkgs/development/libraries/pangoxsl/default.nix
@@ -7,8 +7,8 @@ stdenv.mkDerivation {
     sha256 = "1wcd553nf4nwkrfrh765cyzwj9bsg7zpkndg2hjs8mhwgx04lm8n";
   };
 
+  nativeBuildInputs = [ pkgconfig ];
   buildInputs = [
-    pkgconfig
     glib
     pango
   ];
diff --git a/pkgs/development/libraries/pcl/default.nix b/pkgs/development/libraries/pcl/default.nix
index b9762e284e6..59f674789e4 100644
--- a/pkgs/development/libraries/pcl/default.nix
+++ b/pkgs/development/libraries/pcl/default.nix
@@ -1,33 +1,29 @@
-{ stdenv, fetchFromGitHub, cmake, qhull, flann, boost, vtk, eigen, pkgconfig, qt4
+{ stdenv, fetchFromGitHub, cmake, qhull, flann, boost, vtk, eigen, pkgconfig, qtbase
 , libusb1, libpcap, libXt, libpng, Cocoa, AGL, cf-private, OpenGL
 }:
 
 stdenv.mkDerivation rec {
-  name = "pcl-1.8.0";
+  name = "pcl-1.8.1";
 
   src = fetchFromGitHub {
     owner = "PointCloudLibrary";
     repo = "pcl";
     rev = name;
-    sha256 = "1pki4y7mc2dryxc8wa7rs4hg74qab80rpy90jnw3j8fzf09kxcll";
+    sha256 = "05wvqqi2fyk5innw4mg356r71c1hmc9alc7xkf4g81ds3b3867xq";
   };
 
   enableParallelBuilding = true;
 
-  buildInputs = [ cmake qhull flann boost eigen pkgconfig libusb1 libpcap
-                  libpng vtk qt4 libXt ]
+  nativeBuildInputs = [ pkgconfig cmake ];
+  buildInputs = [ qhull flann boost eigen libusb1 libpcap
+                  libpng vtk qtbase libXt ]
+
     ++ stdenv.lib.optionals stdenv.isDarwin [ Cocoa AGL cf-private ];
   cmakeFlags = stdenv.lib.optionals stdenv.isDarwin [
     "-DCMAKE_OSX_SYSROOT=" "-DCMAKE_OSX_DEPLOYMENT_TARGET="
     "-DOPENGL_INCLUDE_DIR=${OpenGL}/Library/Frameworks"
   ];
 
-  preConfigure = stdenv.lib.optionalString stdenv.isDarwin ''
-    NIX_CFLAGS_COMPILE=$(echo "$NIX_CFLAGS_COMPILE" | sed "s,[[:space:]]*-F$NIX_STORE/[[:alnum:]]*-CF-osx-[[:digit:].]*/Library/Frameworks,,g")
-    sed -i 's,^\(      target_link_libraries("''${LIB_NAME}" "-framework Cocoa")\),\1\n      target_link_libraries("''${LIB_NAME}" "/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation"),' visualization/CMakeLists.txt
-    sed -i 's,^\(set(SUBSYS_DEPS common io kdtree geometry search)\),\1\nset(CMAKE_OSX_SYSROOT "")\nset(CMAKE_OSX_DEPLOYMENT_TARGET ""),' visualization/CMakeLists.txt
-  '';
-
   meta = {
     homepage = http://pointclouds.org/;
     description = "Open project for 2D/3D image and point cloud processing";
diff --git a/pkgs/development/libraries/phonon/default.nix b/pkgs/development/libraries/phonon/default.nix
index 171acea90b3..2cb2dde33f7 100644
--- a/pkgs/development/libraries/phonon/default.nix
+++ b/pkgs/development/libraries/phonon/default.nix
@@ -7,6 +7,9 @@ with lib;
 
 let
   v = "4.9.1";
+
+  soname = if withQt5 then "phonon4qt5" else "phonon";
+  buildsystemdir = "share/cmake/${soname}";
 in
 
 assert withQt5 -> qtbase != null;
@@ -36,17 +39,41 @@ stdenv.mkDerivation rec {
     [ cmake pkgconfig ]
     ++ optional withQt5 extra-cmake-modules;
 
+  outputs = [ "out" "dev" ];
+
   NIX_CFLAGS_COMPILE = "-fPIC";
 
   cmakeFlags =
     [ "-DCMAKE_BUILD_TYPE=${if debug then "Debug" else "Release"}" ]
     ++ optional withQt5 "-DPHONON_BUILD_PHONON4QT5=ON";
 
+  preConfigure = ''
+    cmakeFlags+=" -DPHONON_QT_MKSPECS_INSTALL_DIR=''${!outputDev}/mkspecs"
+    cmakeFlags+=" -DPHONON_QT_IMPORTS_INSTALL_DIR=''${!outputBin}/$qtQmlPrefix"
+    cmakeFlags+=" -DPHONON_QT_PLUGIN_INSTALL_DIR=''${!outputBin}/$qtPluginPrefix/designer"
+  '';
+
   postPatch = ''
     sed -i PhononConfig.cmake.in \
         -e "/get_filename_component(rootDir/ s/^.*$//" \
-        -e "/^set(PHONON_INCLUDE_DIR/ s,\''${rootDir},''${!outputDev}," \
-        -e "/^set(PHONON_LIBRARY_DIR/ s,\''${rootDir}/,," \
-        -e "/^set(PHONON_BUILDSYSTEM_DIR/ s,\''${rootDir},''${!outputDev},"
+        -e "/^set(PHONON_INCLUDE_DIR/ s|\''${rootDir}/||" \
+        -e "/^set(PHONON_LIBRARY_DIR/ s|\''${rootDir}/||" \
+        -e "/^set(PHONON_BUILDSYSTEM_DIR/ s|\''${rootDir}|''${!outputDev}|"
+
+    sed -i cmake/FindPhononInternal.cmake \
+        -e "/set(INCLUDE_INSTALL_DIR/ c set(INCLUDE_INSTALL_DIR \"''${!outputDev}/include\")"
+
+    ${optionalString withQt5 ''
+    sed -i cmake/FindPhononInternal.cmake \
+        -e "/set(PLUGIN_INSTALL_DIR/ c set(PLUGIN_INSTALL_DIR \"$qtPluginPrefix/..\")"
+    ''}
+
+    sed -i CMakeLists.txt \
+        -e "/set(BUILDSYSTEM_INSTALL_DIR/ c set(BUILDSYSTEM_INSTALL_DIR \"''${!outputDev}/${buildsystemdir}\")"
+  '';
+
+  postFixup = ''
+    sed -i "''${!outputDev}/lib/pkgconfig/${soname}.pc" \
+        -e "/^exec_prefix=/ c exec_prefix=''${!outputBin}/bin"
   '';
 }
diff --git a/pkgs/development/libraries/pkcs11helper/default.nix b/pkgs/development/libraries/pkcs11helper/default.nix
index f59c538856c..9d7d7552cfc 100644
--- a/pkgs/development/libraries/pkcs11helper/default.nix
+++ b/pkgs/development/libraries/pkcs11helper/default.nix
@@ -11,7 +11,8 @@ stdenv.mkDerivation rec {
     sha256 = "17a2cssycl7fh44xikmhszigx57vvn0h2sjsnmsy3772kfj796b1";
   };
 
-  buildInputs = [ pkgconfig openssl autoreconfHook ];
+  nativeBuildInputs = [ autoreconfHook pkgconfig ];
+  buildInputs = [ openssl ];
 
   meta = with stdenv.lib; {
     homepage = https://www.opensc-project.org/opensc/wiki/pkcs11-helper;
diff --git a/pkgs/development/libraries/pocketsphinx/default.nix b/pkgs/development/libraries/pocketsphinx/default.nix
index bc37cfb3d18..f892540ae5c 100644
--- a/pkgs/development/libraries/pocketsphinx/default.nix
+++ b/pkgs/development/libraries/pocketsphinx/default.nix
@@ -16,7 +16,8 @@ stdenv.mkDerivation rec {
 
   propagatedBuildInputs = [ sphinxbase ];
 
-  buildInputs = [ pkgconfig python27 swig2 ];
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ python27 swig2 ];
 
   meta = {
     description = "Voice recognition library written in C";
diff --git a/pkgs/development/libraries/polkit/default.nix b/pkgs/development/libraries/polkit/default.nix
index 804bca5f8a5..aef627f8f1f 100644
--- a/pkgs/development/libraries/polkit/default.nix
+++ b/pkgs/development/libraries/polkit/default.nix
@@ -42,10 +42,10 @@ stdenv.mkDerivation rec {
   outputs = [ "bin" "dev" "out" ]; # small man pages in $bin
 
   nativeBuildInputs =
-    [ gtk_doc pkgconfig autoreconfHook ]
+    [ gtk_doc pkgconfig autoreconfHook intltool gobjectIntrospection ]
     ++ [ libxslt docbook_xsl docbook_xml_dtd_412 ]; # man pages
   buildInputs =
-    [ glib expat pam intltool spidermonkey_17 gobjectIntrospection ]
+    [ glib expat pam spidermonkey_17 gobjectIntrospection ]
     ++ stdenv.lib.optional useSystemd systemd;
 
   # Ugly hack to overwrite hardcoded directories
diff --git a/pkgs/development/libraries/portaudio/default.nix b/pkgs/development/libraries/portaudio/default.nix
index 41f29a1a6b1..c55d1711321 100644
--- a/pkgs/development/libraries/portaudio/default.nix
+++ b/pkgs/development/libraries/portaudio/default.nix
@@ -9,7 +9,8 @@ stdenv.mkDerivation rec {
     sha256 = "04qmin6nj144b8qb9kkd9a52xfvm0qdgm8bg8jbl7s3frmyiv8pm";
   };
 
-  buildInputs = [ pkgconfig libjack2 ]
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ libjack2 ]
     ++ stdenv.lib.optional (!stdenv.isDarwin) alsaLib;
 
   configureFlags = [ "--disable-mac-universal" ];
diff --git a/pkgs/development/libraries/postgis/default.nix b/pkgs/development/libraries/postgis/default.nix
index 2ba5a262e22..bdf537f4375 100644
--- a/pkgs/development/libraries/postgis/default.nix
+++ b/pkgs/development/libraries/postgis/default.nix
@@ -109,4 +109,30 @@ in rec {
     '';
   });
 
+  v_2_4_0 = pgDerivationBaseNewer.merge ( fix : {
+    version = "2.4.0";
+    sha256 = "02baa90f04da41e04b6c18eedfda53110c45ae943d4e65050f6d202f7de07d29";
+    sql_srcs = ["postgis.sql" "spatial_ref_sys.sql"];
+    builtInputs = [gdal json_c pkgconfig];
+
+    # postgis config directory assumes /include /lib from the same root for json-c library
+    NIX_LDFLAGS = "-L${stdenv.lib.getLib json_c}/lib";
+
+    dontDisableStatic = true;
+    preConfigure = ''
+      sed -i 's@/usr/bin/file@${file}/bin/file@' configure
+      configureFlags="$configureFlags --with-gdalconfig=${gdal}/bin/gdal-config --with-jsondir=${json_c.dev}"
+    '';
+    postConfigure = ''
+      sed -i "s|@mkdir -p \$(DESTDIR)\$(PGSQL_BINDIR)||g ;
+              s|\$(DESTDIR)\$(PGSQL_BINDIR)|$prefix/bin|g
+              " \
+          "raster/loader/Makefile";
+      sed -i "s|\$(DESTDIR)\$(PGSQL_BINDIR)|$prefix/bin|g
+              " \
+          "raster/scripts/python/Makefile";
+    '';
+  });
+
+
 }
diff --git a/pkgs/development/libraries/protobuf/generic-v3.nix b/pkgs/development/libraries/protobuf/generic-v3.nix
index b3249aae9b1..5f0006c0589 100644
--- a/pkgs/development/libraries/protobuf/generic-v3.nix
+++ b/pkgs/development/libraries/protobuf/generic-v3.nix
@@ -28,7 +28,8 @@ stdenv.mkDerivation rec {
       --replace 'tmpnam(b)' '"'$TMPDIR'/foo"'
   '';
 
-  buildInputs = [ autoreconfHook zlib ];
+  nativeBuildInputs = [ autoreconfHook ];
+  buildInputs = [ zlib ];
 
   enableParallelBuilding = true;
 
diff --git a/pkgs/development/libraries/protobuf/generic.nix b/pkgs/development/libraries/protobuf/generic.nix
index b7c456df85c..06154e0008b 100644
--- a/pkgs/development/libraries/protobuf/generic.nix
+++ b/pkgs/development/libraries/protobuf/generic.nix
@@ -19,7 +19,8 @@ stdenv.mkDerivation rec {
 
   outputs = [ "out" "lib" ];
 
-  buildInputs = [ autoreconfHook zlib ];
+  nativeBuildInputs = [ autoreconfHook ];
+  buildInputs = [ zlib ];
 
   # The generated C++ code uses static initializers which mutate a global data
   # structure. This causes problems for an executable when:
diff --git a/pkgs/development/libraries/protobufc/generic.nix b/pkgs/development/libraries/protobufc/generic.nix
index 3a03d5c8b4b..b9ad506e20a 100644
--- a/pkgs/development/libraries/protobufc/generic.nix
+++ b/pkgs/development/libraries/protobufc/generic.nix
@@ -8,7 +8,8 @@ stdenv.mkDerivation rec {
 
   inherit src;
 
-  buildInputs = [ autoreconfHook pkgconfig protobuf zlib ];
+  nativeBuildInputs = [ autoreconfHook pkgconfig ];
+  buildInputs = [ protobuf zlib ];
 
   meta = with stdenv.lib; {
     homepage = http://github.com/protobuf-c/protobuf-c/;
diff --git a/pkgs/development/libraries/ptlib/default.nix b/pkgs/development/libraries/ptlib/default.nix
index ecea72d2e8f..c5d3d741130 100644
--- a/pkgs/development/libraries/ptlib/default.nix
+++ b/pkgs/development/libraries/ptlib/default.nix
@@ -11,7 +11,8 @@ stdenv.mkDerivation rec {
 
   NIX_CFLAGS_COMPILE = "-std=gnu++98";
 
-  buildInputs = [ pkgconfig bison flex unixODBC openssl openldap
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ bison flex unixODBC openssl openldap
                   cyrus_sasl kerberos expat SDL libdv libv4l alsaLib ];
 
   enableParallelBuilding = true;
diff --git a/pkgs/development/libraries/qt-4.x/4.8/default.nix b/pkgs/development/libraries/qt-4.x/4.8/default.nix
index 2be2f501518..c9679d227d8 100644
--- a/pkgs/development/libraries/qt-4.x/4.8/default.nix
+++ b/pkgs/development/libraries/qt-4.x/4.8/default.nix
@@ -183,10 +183,38 @@ stdenv.mkDerivation rec {
     sed -i 's/^\(LIBS[[:space:]]*=.*$\)/\1 -lobjc/' ./src/corelib/Makefile.Release
   '';
 
-  postInstall =
-    ''
+  installPhase = optionalString stdenv.isDarwin ''
+    runHook preInstall
+    cp -r lib $out
+
+    mkdir -p $out/Applications
+    mv bin/*.app $out/Applications
+    rm -rf bin/*.app
+
+    cp -r bin $out
+
+    mkdir -p $out/share/doc/${name}
+    mkdir -p $out/lib
+    mkdir -p $out/lib/qt4/plugins
+    mkdir -p $out/lib/qt4/imports
+    mkdir -p $out/bin
+    mkdir -p $out/include
+    mkdir -p $out/share/${name}
+
+    cp -r mkspecs $out/share/${name}
+    cp -r translations $out/share/${name}
+    cp -r tools/linguist/phrasebooks $out/share/${name}
+    cp tools/porting/src/q3porting.xml $out/share/${name}
+
+    cp -r plugins $out/lib/qt4
+    cp -r imports $out/lib/qt4
+    cp -r doc/* $out/share/doc/${name}
+    runHook postInstall
+  '';
+
+  postInstall = optionalString (!stdenv.isDarwin) ''
       rm -rf $out/tests
-    '';
+  '';
 
   crossAttrs = {
     # I've not tried any case other than i686-pc-mingw32.
diff --git a/pkgs/development/libraries/qt-5/5.6/qtmultimedia.nix b/pkgs/development/libraries/qt-5/5.6/qtmultimedia.nix
index 7c1cc5da07e..20e6e364799 100644
--- a/pkgs/development/libraries/qt-5/5.6/qtmultimedia.nix
+++ b/pkgs/development/libraries/qt-5/5.6/qtmultimedia.nix
@@ -5,8 +5,9 @@
 qtSubmodule {
   name = "qtmultimedia";
   qtInputs = [ qtbase qtdeclarative ];
+  nativeBuildInputs = [ pkgconfig ];
   buildInputs = [
-    pkgconfig alsaLib gstreamer gst-plugins-base libpulseaudio
+    alsaLib gstreamer gst-plugins-base libpulseaudio
   ];
   qmakeFlags = [ "GST_VERSION=1.0" ];
 }
diff --git a/pkgs/development/libraries/qt-5/5.6/qtwebkit/qtwebkit-icu-59.patch b/pkgs/development/libraries/qt-5/5.6/qtwebkit/qtwebkit-icu-59.patch
new file mode 100644
index 00000000000..add365b5dd6
--- /dev/null
+++ b/pkgs/development/libraries/qt-5/5.6/qtwebkit/qtwebkit-icu-59.patch
@@ -0,0 +1,86 @@
+From: Konstantin Tokarev <annulen@yandex.ru>
+Date: Thu, 4 May 2017 12:12:37 +0000 (+0300)
+Subject: Fix compilation with ICU 59
+X-Git-Url: https://codereview.qt-project.org/gitweb?p=qt%2Fqtwebkit.git;a=commitdiff_plain;h=bf172ae289a1348842005a9421797970f9b72060;hp=821eaaadc9d63d03aca65cf757230b520daaaa7c
+
+Fix compilation with ICU 59
+
+Upstream fix: https://bugs.webkit.org/show_bug.cgi?id=171612
+
+Task-number: QTBUG-60532
+Change-Id: I6014feea213aa70ebe40b09d9d1a03fd1ed3c843
+Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
+---
+
+diff --git a/Source/JavaScriptCore/API/JSStringRef.cpp b/Source/JavaScriptCore/API/JSStringRef.cpp
+index 812f3d4..77a3fd0 100644
+--- a/Source/JavaScriptCore/API/JSStringRef.cpp
++++ b/Source/JavaScriptCore/API/JSStringRef.cpp
+@@ -37,7 +37,7 @@ using namespace WTF::Unicode;
+ JSStringRef JSStringCreateWithCharacters(const JSChar* chars, size_t numChars)
+ {
+     initializeThreading();
+-    return OpaqueJSString::create(chars, numChars).leakRef();
++    return OpaqueJSString::create(reinterpret_cast<const UChar*>(chars), numChars).leakRef();
+ }
+ 
+ JSStringRef JSStringCreateWithUTF8CString(const char* string)
+@@ -62,7 +62,7 @@ JSStringRef JSStringCreateWithUTF8CString(const char* string)
+ JSStringRef JSStringCreateWithCharactersNoCopy(const JSChar* chars, size_t numChars)
+ {
+     initializeThreading();
+-    return OpaqueJSString::create(StringImpl::createWithoutCopying(chars, numChars, WTF::DoesNotHaveTerminatingNullCharacter)).leakRef();
++    return OpaqueJSString::create(StringImpl::createWithoutCopying(reinterpret_cast<const UChar*>(chars), numChars, WTF::DoesNotHaveTerminatingNullCharacter)).leakRef();
+ }
+ 
+ JSStringRef JSStringRetain(JSStringRef string)
+@@ -83,7 +83,7 @@ size_t JSStringGetLength(JSStringRef string)
+ 
+ const JSChar* JSStringGetCharactersPtr(JSStringRef string)
+ {
+-    return string->characters();
++    return reinterpret_cast<const JSChar*>(string->characters());
+ }
+ 
+ size_t JSStringGetMaximumUTF8CStringSize(JSStringRef string)
+diff --git a/Source/JavaScriptCore/runtime/DateConversion.cpp b/Source/JavaScriptCore/runtime/DateConversion.cpp
+index 0b57f01..05e2733 100644
+--- a/Source/JavaScriptCore/runtime/DateConversion.cpp
++++ b/Source/JavaScriptCore/runtime/DateConversion.cpp
+@@ -107,7 +107,8 @@ String formatDateTime(const GregorianDateTime& t, DateTimeFormat format, bool as
+ #if OS(WINDOWS)
+             TIME_ZONE_INFORMATION timeZoneInformation;
+             GetTimeZoneInformation(&timeZoneInformation);
+-            const WCHAR* timeZoneName = t.isDST() ? timeZoneInformation.DaylightName : timeZoneInformation.StandardName;
++            const WCHAR* winTimeZoneName = t.isDST() ? timeZoneInformation.DaylightName : timeZoneInformation.StandardName;
++            String timeZoneName(reinterpret_cast<const UChar*>(winTimeZoneName));
+ #else
+             struct tm gtm = t;
+             char timeZoneName[70];
+diff --git a/Source/WTF/wtf/TypeTraits.h b/Source/WTF/wtf/TypeTraits.h
+index 9df2c95..f5d6121 100644
+--- a/Source/WTF/wtf/TypeTraits.h
++++ b/Source/WTF/wtf/TypeTraits.h
+@@ -72,6 +72,9 @@ namespace WTF {
+     template<> struct IsInteger<unsigned long>      { static const bool value = true; };
+     template<> struct IsInteger<long long>          { static const bool value = true; };
+     template<> struct IsInteger<unsigned long long> { static const bool value = true; };
++#if __cplusplus >= 201103L || defined(__GXX_EXPERIMENTAL_CXX0X__) || (defined(_HAS_CHAR16_T_LANGUAGE_SUPPORT) && _HAS_CHAR16_T_LANGUAGE_SUPPORT)
++    template<> struct IsInteger<char16_t>           { static const bool value = true; };
++#endif
+ #if !COMPILER(MSVC) || defined(_NATIVE_WCHAR_T_DEFINED)
+     template<> struct IsInteger<wchar_t>            { static const bool value = true; };
+ #endif
+diff --git a/Source/WebKit2/Shared/API/c/WKString.cpp b/Source/WebKit2/Shared/API/c/WKString.cpp
+index cbac67d..23400a6 100644
+--- a/Source/WebKit2/Shared/API/c/WKString.cpp
++++ b/Source/WebKit2/Shared/API/c/WKString.cpp
+@@ -55,7 +55,7 @@ size_t WKStringGetLength(WKStringRef stringRef)
+ size_t WKStringGetCharacters(WKStringRef stringRef, WKChar* buffer, size_t bufferLength)
+ {
+     COMPILE_ASSERT(sizeof(WKChar) == sizeof(UChar), WKStringGetCharacters_sizeof_WKChar_matches_UChar);
+-    return (toImpl(stringRef)->getCharacters(static_cast<UChar*>(buffer), bufferLength));
++    return (toImpl(stringRef)->getCharacters(reinterpret_cast<UChar*>(buffer), bufferLength));
+ }
+ 
+ size_t WKStringGetMaximumUTF8CStringSize(WKStringRef stringRef)
diff --git a/pkgs/development/libraries/qt-5/5.6/qtwebkit/series b/pkgs/development/libraries/qt-5/5.6/qtwebkit/series
index 140e2a3dd4e..7828e491c08 100644
--- a/pkgs/development/libraries/qt-5/5.6/qtwebkit/series
+++ b/pkgs/development/libraries/qt-5/5.6/qtwebkit/series
@@ -1,3 +1,4 @@
 qtwebkit-dlopen-gtk.patch
 qtwebkit-dlopen-udev.patch
 qtwebkit-icucore-darwin.patch
+qtwebkit-icu-59.patch
diff --git a/pkgs/development/libraries/qt-5/5.9/fetch.sh b/pkgs/development/libraries/qt-5/5.9/fetch.sh
index 2ae85bba391..d026d2a922a 100644
--- a/pkgs/development/libraries/qt-5/5.9/fetch.sh
+++ b/pkgs/development/libraries/qt-5/5.9/fetch.sh
@@ -1,2 +1,2 @@
-WGET_ARGS=( http://download.qt.io/official_releases/qt/5.9/5.9.1/submodules/ \
+WGET_ARGS=( https://download.qt.io/archive/qt/5.9/5.9.2/submodules/ \
             -A '*.tar.xz' )
diff --git a/pkgs/development/libraries/qt-5/5.9/qtbase/darwin-series b/pkgs/development/libraries/qt-5/5.9/qtbase/darwin-series
new file mode 100644
index 00000000000..1111ff65f44
--- /dev/null
+++ b/pkgs/development/libraries/qt-5/5.9/qtbase/darwin-series
@@ -0,0 +1,3 @@
+mkspecs-common-mac.patch
+mkspecs-features-mac.patch
+darwin-cf.patch
diff --git a/pkgs/development/libraries/qt-5/5.9/qtbase/default.nix b/pkgs/development/libraries/qt-5/5.9/qtbase/default.nix
index 23dab52b80c..fc5e5d39c63 100644
--- a/pkgs/development/libraries/qt-5/5.9/qtbase/default.nix
+++ b/pkgs/development/libraries/qt-5/5.9/qtbase/default.nix
@@ -3,7 +3,7 @@
   src, version, qtCompatVersion,
 
   coreutils, bison, flex, gdb, gperf, lndir, patchelf, perl, pkgconfig, python2,
-  ruby,
+  ruby, which,
   # darwin support
   darwin, libiconv, libcxx,
 
@@ -45,7 +45,7 @@ stdenv.mkDerivation {
       libjpeg libpng libtiff
     ]
 
-    ++ lib.optional mesaSupported mesa
+    ++ lib.optional (mesaSupported && !stdenv.isDarwin) mesa
 
     ++ lib.optionals (!stdenv.isDarwin) [
       dbus glib udev
@@ -73,14 +73,14 @@ stdenv.mkDerivation {
     ++ lib.optional (postgresql != null) postgresql;
 
   nativeBuildInputs =
-    [ bison flex gperf lndir perl pkgconfig python2 ]
+    [ bison flex gperf lndir perl pkgconfig python2 which ]
     ++ lib.optional (!stdenv.isDarwin) patchelf;
 
   outputs = [ "out" "dev" "bin" ];
 
   patches =
     copyPathsToStore (lib.readPathsFromFile ./. ./series)
-    ++ stdenv.lib.optional stdenv.isDarwin ./darwin-cf.patch;
+    ++ stdenv.lib.optional stdenv.isDarwin (copyPathsToStore (lib.readPathsFromFile ./. ./darwin-series));
 
   postPatch =
     ''
@@ -94,7 +94,7 @@ stdenv.mkDerivation {
       sed -i '/PATHS.*NO_DEFAULT_PATH/ d' mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in
     ''
 
-    + lib.optionalString mesaSupported ''
+    + lib.optionalString (mesaSupported && !stdenv.isDarwin) ''
       sed -i mkspecs/common/linux.conf \
           -e "/^QMAKE_INCDIR_OPENGL/ s|$|${mesa.dev or mesa}/include|" \
           -e "/^QMAKE_LIBDIR_OPENGL/ s|$|${mesa.out}/lib|"
@@ -110,10 +110,10 @@ stdenv.mkDerivation {
           -e 's#sdk_val=$(/usr/bin/xcrun -sdk $sdk -find $(echo $val | cut -d \x27 \x27 -f 1))##' \
           -e 's#val=$(echo $sdk_val $(echo $val | cut -s -d \x27 \x27 -f 2-))##' \
           ./configure
-      sed -i '3,$d' ./mkspecs/features/mac/default_pre.prf
-      sed -i '27,$d' ./mkspecs/features/mac/default_post.prf
-      sed -i '1,$d' ./mkspecs/features/mac/sdk.prf
-      sed -i 's/QMAKE_LFLAGS_RPATH      = -Wl,-rpath,/QMAKE_LFLAGS_RPATH      =/' ./mkspecs/common/mac.conf
+          substituteInPlace ./mkspecs/common/mac.conf \
+              --replace "/System/Library/Frameworks/OpenGL.framework/" "${darwin.apple_sdk.frameworks.OpenGL}/Library/Frameworks/OpenGL.framework/"
+          substituteInPlace ./mkspecs/common/mac.conf \
+              --replace "/System/Library/Frameworks/AGL.framework/" "${darwin.apple_sdk.frameworks.AGL}/Library/Frameworks/AGL.framework/"
      '';
      # Note on the above: \x27 is a way if including a single-quote
      # character in the sed string arguments.
@@ -144,7 +144,7 @@ stdenv.mkDerivation {
       ''-DNIXPKGS_LIBXCURSOR="${libXcursor.out}/lib/libXcursor"''
     ]
 
-    ++ lib.optional mesaSupported
+    ++ lib.optional (mesaSupported && !stdenv.isDarwin)
        ''-DNIXPKGS_MESA_GL="${mesa.out}/lib/libGL"''
 
     ++ lib.optionals (!stdenv.isDarwin)
diff --git a/pkgs/development/libraries/qt-5/5.9/qtbase/mkspecs-common-mac.patch b/pkgs/development/libraries/qt-5/5.9/qtbase/mkspecs-common-mac.patch
new file mode 100644
index 00000000000..b77f8778122
--- /dev/null
+++ b/pkgs/development/libraries/qt-5/5.9/qtbase/mkspecs-common-mac.patch
@@ -0,0 +1,11 @@
+--- qtbase-opensource-src-5.9.1.orig/mkspecs/common/mac.conf	2017-09-16 16:40:30.000000000 +0800
++++ qtbase-opensource-src-5.9.1/mkspecs/common/mac.conf	2017-09-16 16:41:27.000000000 +0800
+@@ -23,7 +23,7 @@
+ 
+ QMAKE_FIX_RPATH         = install_name_tool -id
+ 
+-QMAKE_LFLAGS_RPATH      = -Wl,-rpath,
++QMAKE_LFLAGS_RPATH      =
+ QMAKE_LFLAGS_GCSECTIONS = -Wl,-dead_strip
+ 
+ QMAKE_LFLAGS_REL_RPATH  =
diff --git a/pkgs/development/libraries/qt-5/5.9/qtbase/mkspecs-features-mac.patch b/pkgs/development/libraries/qt-5/5.9/qtbase/mkspecs-features-mac.patch
new file mode 100644
index 00000000000..6f7baa558db
--- /dev/null
+++ b/pkgs/development/libraries/qt-5/5.9/qtbase/mkspecs-features-mac.patch
@@ -0,0 +1,278 @@
+diff -u qtbase-opensource-src-5.9.1.orig/mkspecs/features/mac/default_post.prf qtbase-opensource-src-5.9.1/mkspecs/features/mac/default_post.prf
+--- qtbase-opensource-src-5.9.1.orig/mkspecs/features/mac/default_post.prf	2017-09-16 16:40:30.000000000 +0800
++++ qtbase-opensource-src-5.9.1/mkspecs/features/mac/default_post.prf	2017-09-16 16:41:03.000000000 +0800
+@@ -24,165 +24,3 @@
+         }
+     }
+ }
+-
+-# Add the same default rpaths as Xcode does for new projects.
+-# This is especially important for iOS/tvOS/watchOS where no other option is possible.
+-!no_default_rpath {
+-    QMAKE_RPATHDIR += @executable_path/Frameworks
+-    equals(TEMPLATE, lib):!plugin:lib_bundle: QMAKE_RPATHDIR += @loader_path/Frameworks
+-}
+-
+-# Don't pass -headerpad_max_install_names when using Bitcode.
+-# In that case the linker emits a warning stating that the flag is ignored when
+-# used with bitcode, for reasons that cannot be determined (rdar://problem/20748962).
+-# Using this flag is also unnecessary in practice on UIKit platforms since they
+-# are sandboxed, and only UIKit platforms support bitcode to begin with.
+-!bitcode: QMAKE_LFLAGS += $$QMAKE_LFLAGS_HEADERPAD
+-
+-app_extension_api_only {
+-    QMAKE_CFLAGS              += $$QMAKE_CFLAGS_APPLICATION_EXTENSION
+-    QMAKE_CXXFLAGS            += $$QMAKE_CFLAGS_APPLICATION_EXTENSION
+-    QMAKE_CXXFLAGS_PRECOMPILE += $$QMAKE_CFLAGS_APPLICATION_EXTENSION
+-    QMAKE_LFLAGS              += $$QMAKE_CFLAGS_APPLICATION_EXTENSION
+-}
+-
+-macx-xcode {
+-    !isEmpty(QMAKE_XCODE_DEBUG_INFORMATION_FORMAT) {
+-        debug_information_format.name = DEBUG_INFORMATION_FORMAT
+-        debug_information_format.value = $$QMAKE_XCODE_DEBUG_INFORMATION_FORMAT
+-        debug_information_format.build = debug
+-        QMAKE_MAC_XCODE_SETTINGS += debug_information_format
+-    }
+-
+-    QMAKE_XCODE_ARCHS =
+-
+-    arch_device.name = "ARCHS[sdk=$${device.sdk}*]"
+-    arch_device.value = $$QMAKE_APPLE_DEVICE_ARCHS
+-    QMAKE_XCODE_ARCHS += $$QMAKE_APPLE_DEVICE_ARCHS
+-    QMAKE_MAC_XCODE_SETTINGS += arch_device
+-
+-    simulator {
+-        arch_simulator.name = "ARCHS[sdk=$${simulator.sdk}*]"
+-        arch_simulator.value = $$QMAKE_APPLE_SIMULATOR_ARCHS
+-        QMAKE_XCODE_ARCHS += $$QMAKE_APPLE_SIMULATOR_ARCHS
+-        QMAKE_MAC_XCODE_SETTINGS += arch_simulator
+-    }
+-
+-    only_active_arch.name = ONLY_ACTIVE_ARCH
+-    only_active_arch.value = YES
+-    only_active_arch.build = debug
+-    QMAKE_MAC_XCODE_SETTINGS += only_active_arch
+-} else {
+-    device|!simulator: VALID_DEVICE_ARCHS = $$QMAKE_APPLE_DEVICE_ARCHS
+-    simulator: VALID_SIMULATOR_ARCHS = $$QMAKE_APPLE_SIMULATOR_ARCHS
+-    VALID_ARCHS = $$VALID_DEVICE_ARCHS $$VALID_SIMULATOR_ARCHS
+-
+-    isEmpty(VALID_ARCHS): \
+-        error("QMAKE_APPLE_DEVICE_ARCHS or QMAKE_APPLE_SIMULATOR_ARCHS must contain at least one architecture")
+-
+-    single_arch: VALID_ARCHS = $$first(VALID_ARCHS)
+-
+-    ACTIVE_ARCHS = $(filter $(EXPORT_VALID_ARCHS), $(ARCHS))
+-    ARCH_ARGS = $(foreach arch, $(if $(EXPORT_ACTIVE_ARCHS), $(EXPORT_ACTIVE_ARCHS), $(EXPORT_VALID_ARCHS)), -arch $(arch))
+-
+-    QMAKE_EXTRA_VARIABLES += VALID_ARCHS ACTIVE_ARCHS ARCH_ARGS
+-
+-    arch_flags = $(EXPORT_ARCH_ARGS)
+-
+-    QMAKE_CFLAGS += $$arch_flags
+-    QMAKE_CXXFLAGS += $$arch_flags
+-    QMAKE_LFLAGS += $$arch_flags
+-
+-    QMAKE_PCH_ARCHS = $$VALID_ARCHS
+-
+-    macos: deployment_target = $$QMAKE_MACOSX_DEPLOYMENT_TARGET
+-    ios: deployment_target = $$QMAKE_IOS_DEPLOYMENT_TARGET
+-    tvos: deployment_target = $$QMAKE_TVOS_DEPLOYMENT_TARGET
+-    watchos: deployment_target = $$QMAKE_WATCHOS_DEPLOYMENT_TARGET
+-
+-    # If we're doing a simulator and device build, device and simulator
+-    # architectures use different paths and flags for the sysroot and
+-    # deployment target switch, so we must multiplex them across multiple
+-    # architectures using -Xarch. Otherwise we fall back to the simple path.
+-    # This is not strictly necessary, but results in cleaner command lines
+-    # and makes it easier for people to override EXPORT_VALID_ARCHS to limit
+-    # individual rules to a different set of architecture(s) from the overall
+-    # build (such as machtest in QtCore).
+-    simulator:device {
+-        QMAKE_XARCH_CFLAGS =
+-        QMAKE_XARCH_LFLAGS =
+-        QMAKE_EXTRA_VARIABLES += QMAKE_XARCH_CFLAGS QMAKE_XARCH_LFLAGS
+-
+-        for (arch, VALID_ARCHS) {
+-            contains(VALID_SIMULATOR_ARCHS, $$arch) {
+-                sdk = $$simulator.sdk
+-                version_identifier = $$simulator.deployment_identifier
+-            } else {
+-                sdk = $$device.sdk
+-                version_identifier = $$device.deployment_identifier
+-            }
+-
+-            version_min_flags = \
+-                -Xarch_$${arch} \
+-                -m$${version_identifier}-version-min=$$deployment_target
+-            QMAKE_XARCH_CFLAGS_$${arch} = $$version_min_flags \
+-                -Xarch_$${arch} \
+-                -isysroot$$xcodeSDKInfo(Path, $$sdk)
+-            QMAKE_XARCH_LFLAGS_$${arch} = $$version_min_flags \
+-                -Xarch_$${arch} \
+-                -Wl,-syslibroot,$$xcodeSDKInfo(Path, $$sdk)
+-
+-            QMAKE_XARCH_CFLAGS += $(EXPORT_QMAKE_XARCH_CFLAGS_$${arch})
+-            QMAKE_XARCH_LFLAGS += $(EXPORT_QMAKE_XARCH_LFLAGS_$${arch})
+-
+-            QMAKE_EXTRA_VARIABLES += \
+-                QMAKE_XARCH_CFLAGS_$${arch} \
+-                QMAKE_XARCH_LFLAGS_$${arch}
+-        }
+-
+-        QMAKE_CFLAGS += $(EXPORT_QMAKE_XARCH_CFLAGS)
+-        QMAKE_CXXFLAGS += $(EXPORT_QMAKE_XARCH_CFLAGS)
+-        QMAKE_LFLAGS += $(EXPORT_QMAKE_XARCH_LFLAGS)
+-    } else {
+-        simulator: \
+-            version_identifier = $$simulator.deployment_identifier
+-        else: \
+-            version_identifier = $$device.deployment_identifier
+-        version_min_flag = -m$${version_identifier}-version-min=$$deployment_target
+-        QMAKE_CFLAGS += -isysroot $$QMAKE_MAC_SDK_PATH $$version_min_flag
+-        QMAKE_CXXFLAGS += -isysroot $$QMAKE_MAC_SDK_PATH $$version_min_flag
+-        QMAKE_LFLAGS += -Wl,-syslibroot,$$QMAKE_MAC_SDK_PATH $$version_min_flag
+-    }
+-
+-    # Enable precompiled headers for multiple architectures
+-    QMAKE_CFLAGS_USE_PRECOMPILE =
+-    for (arch, VALID_ARCHS) {
+-        icc_pch_style: \
+-            use_flag = "-pch-use "
+-        else: \
+-            use_flag = -include
+-
+-        # Only use Xarch with multi-arch, as the option confuses ccache
+-        count(VALID_ARCHS, 1, greaterThan): \
+-            QMAKE_CFLAGS_USE_PRECOMPILE += \
+-                -Xarch_$${arch}
+-
+-        QMAKE_CFLAGS_USE_PRECOMPILE += \
+-            $${use_flag}${QMAKE_PCH_OUTPUT_$${arch}}
+-    }
+-    icc_pch_style {
+-        QMAKE_CXXFLAGS_USE_PRECOMPILE = $$QMAKE_CFLAGS_USE_PRECOMPILE -include ${QMAKE_PCH_INPUT}
+-        QMAKE_CFLAGS_USE_PRECOMPILE =
+-    } else {
+-        QMAKE_CXXFLAGS_USE_PRECOMPILE = $$QMAKE_CFLAGS_USE_PRECOMPILE
+-        QMAKE_OBJCFLAGS_USE_PRECOMPILE = $$QMAKE_CFLAGS_USE_PRECOMPILE
+-        QMAKE_OBJCXXFLAGS_USE_PRECOMPILE = $$QMAKE_CFLAGS_USE_PRECOMPILE
+-    }
+-
+-    QMAKE_PCH_OUTPUT_EXT = _${QMAKE_PCH_ARCH}$${QMAKE_PCH_OUTPUT_EXT}
+-}
+-
+-cache(QMAKE_XCODE_DEVELOPER_PATH, stash)
+-cache(QMAKE_XCODE_VERSION, stash)
+-
+-QMAKE_XCODE_LIBRARY_SUFFIX = $$qtPlatformTargetSuffix()
+diff -u qtbase-opensource-src-5.9.1.orig/mkspecs/features/mac/default_pre.prf qtbase-opensource-src-5.9.1/mkspecs/features/mac/default_pre.prf
+--- qtbase-opensource-src-5.9.1.orig/mkspecs/features/mac/default_pre.prf	2017-09-16 16:40:30.000000000 +0800
++++ qtbase-opensource-src-5.9.1/mkspecs/features/mac/default_pre.prf	2017-09-16 16:40:45.000000000 +0800
+@@ -1,51 +1,2 @@
+ CONFIG = asset_catalogs rez $$CONFIG
+ load(default_pre)
+-
+-isEmpty(QMAKE_XCODE_DEVELOPER_PATH) {
+-    # Get path of Xcode's Developer directory
+-    QMAKE_XCODE_DEVELOPER_PATH = $$system("/usr/bin/xcode-select --print-path 2>/dev/null")
+-    isEmpty(QMAKE_XCODE_DEVELOPER_PATH): \
+-        error("Xcode path is not set. Please use xcode-select to choose Xcode installation path.")
+-
+-    # Make sure Xcode path is valid
+-    !exists($$QMAKE_XCODE_DEVELOPER_PATH): \
+-        error("Xcode is not installed in $${QMAKE_XCODE_DEVELOPER_PATH}. Please use xcode-select to choose Xcode installation path.")
+-
+-    # Make sure Xcode is set up properly
+-    isEmpty($$list($$system("/usr/bin/xcrun -find xcodebuild 2>/dev/null"))): \
+-        error("Xcode not set up properly. You may need to confirm the license agreement by running /usr/bin/xcodebuild.")
+-}
+-
+-isEmpty(QMAKE_XCODE_VERSION) {
+-    # Extract Xcode version using xcodebuild
+-    xcode_version = $$system("/usr/bin/xcodebuild -version")
+-    QMAKE_XCODE_VERSION = $$member(xcode_version, 1)
+-    isEmpty(QMAKE_XCODE_VERSION): error("Could not resolve Xcode version.")
+-    unset(xcode_version)
+-}
+-
+-isEmpty(QMAKE_TARGET_BUNDLE_PREFIX) {
+-    QMAKE_XCODE_PREFERENCES_FILE = $$(HOME)/Library/Preferences/com.apple.dt.Xcode.plist
+-    exists($$QMAKE_XCODE_PREFERENCES_FILE): \
+-        QMAKE_TARGET_BUNDLE_PREFIX = $$system("/usr/libexec/PlistBuddy -c 'print IDETemplateOptions:bundleIdentifierPrefix' $$QMAKE_XCODE_PREFERENCES_FILE 2>/dev/null")
+-
+-    !isEmpty(_QMAKE_CACHE_):!isEmpty(QMAKE_TARGET_BUNDLE_PREFIX): \
+-        cache(QMAKE_TARGET_BUNDLE_PREFIX)
+-}
+-
+-QMAKE_ASSET_CATALOGS_APP_ICON = AppIcon
+-
+-# Make the default debug info format for static debug builds
+-# DWARF instead of DWARF with dSYM. This cuts down build times
+-# for application debug builds significantly, as Xcode doesn't
+-# have to pull out all the DWARF info from the Qt static libs
+-# and put it into a dSYM file. We don't need that dSYM file in
+-# the first place, since the information is available in the
+-# object files inside the archives (static libraries).
+-macx-xcode:qtConfig(static): \
+-    QMAKE_XCODE_DEBUG_INFORMATION_FORMAT = dwarf
+-
+-# This variable is used by the xcode_dynamic_library_suffix
+-# feature, which allows Xcode to choose the Qt libraries to link to
+-# at build time, depending on the current Xcode SDK and configuration.
+-QMAKE_XCODE_LIBRARY_SUFFIX_SETTING = QT_LIBRARY_SUFFIX
+diff -u qtbase-opensource-src-5.9.1.orig/mkspecs/features/mac/sdk.prf qtbase-opensource-src-5.9.1/mkspecs/features/mac/sdk.prf
+--- qtbase-opensource-src-5.9.1.orig/mkspecs/features/mac/sdk.prf	2017-09-16 16:40:30.000000000 +0800
++++ qtbase-opensource-src-5.9.1/mkspecs/features/mac/sdk.prf	2017-09-16 16:41:16.000000000 +0800
+@@ -1,49 +0,0 @@
+-
+-isEmpty(QMAKE_MAC_SDK): \
+-    error("QMAKE_MAC_SDK must be set when using CONFIG += sdk.")
+-
+-contains(QMAKE_MAC_SDK, .*/.*): \
+-    error("QMAKE_MAC_SDK can only contain short-form SDK names (eg. macosx, iphoneos)")
+-
+-defineReplace(xcodeSDKInfo) {
+-    info = $$1
+-    sdk = $$2
+-    isEmpty(sdk): \
+-        sdk = $$QMAKE_MAC_SDK
+-
+-    isEmpty(QMAKE_MAC_SDK.$${sdk}.$${info}) {
+-        QMAKE_MAC_SDK.$${sdk}.$${info} = $$system("/usr/bin/xcodebuild -sdk $$sdk -version $$info 2>/dev/null")
+-        isEmpty(QMAKE_MAC_SDK.$${sdk}.$${info}): error("Could not resolve SDK $$info for \'$$sdk\'")
+-        cache(QMAKE_MAC_SDK.$${sdk}.$${info}, set stash, QMAKE_MAC_SDK.$${sdk}.$${info})
+-    }
+-
+-    return($$eval(QMAKE_MAC_SDK.$${sdk}.$${info}))
+-}
+-
+-QMAKE_MAC_SDK_PATH = $$xcodeSDKInfo(Path)
+-QMAKE_MAC_SDK_PLATFORM_PATH = $$xcodeSDKInfo(PlatformPath)
+-QMAKE_MAC_SDK_VERSION = $$xcodeSDKInfo(SDKVersion)
+-
+-sysrootified =
+-for(val, QMAKE_INCDIR_OPENGL): sysrootified += $${QMAKE_MAC_SDK_PATH}$$val
+-QMAKE_INCDIR_OPENGL = $$sysrootified
+-
+-QMAKESPEC_NAME = $$basename(QMAKESPEC)
+-
+-# Resolve SDK version of various tools
+-for(tool, $$list(QMAKE_CC QMAKE_CXX QMAKE_FIX_RPATH QMAKE_AR QMAKE_RANLIB QMAKE_LINK QMAKE_LINK_SHLIB QMAKE_ACTOOL)) {
+-    tool_variable = QMAKE_MAC_SDK.$${QMAKESPEC_NAME}.$${QMAKE_MAC_SDK}.$${tool}
+-    !isEmpty($$tool_variable) {
+-        $$tool = $$eval($$tool_variable)
+-        next()
+-    }
+-
+-    value = $$eval($$tool)
+-    isEmpty(value): next()
+-
+-    sysrooted = $$system("/usr/bin/xcrun -sdk $$QMAKE_MAC_SDK -find $$first(value) 2>/dev/null")
+-    isEmpty(sysrooted): next()
+-
+-    $$tool = $$sysrooted $$member(value, 1, -1)
+-    cache($$tool_variable, set stash, $$tool)
+-}
+Common subdirectories: qtbase-opensource-src-5.9.1.orig/mkspecs/features/mac/unsupported and qtbase-opensource-src-5.9.1/mkspecs/features/mac/unsupported
diff --git a/pkgs/development/libraries/qt-5/5.9/qtmultimedia.nix b/pkgs/development/libraries/qt-5/5.9/qtmultimedia.nix
index e133256e900..4fe9c90232a 100644
--- a/pkgs/development/libraries/qt-5/5.9/qtmultimedia.nix
+++ b/pkgs/development/libraries/qt-5/5.9/qtmultimedia.nix
@@ -8,7 +8,8 @@ with stdenv.lib;
 qtSubmodule {
   name = "qtmultimedia";
   qtInputs = [ qtbase qtdeclarative ];
-  buildInputs = [ pkgconfig gstreamer gst-plugins-base libpulseaudio]
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ gstreamer gst-plugins-base libpulseaudio]
     ++ optional (stdenv.isLinux) alsaLib;
   outputs = [ "out" "dev" "bin" ];
   qmakeFlags = [ "GST_VERSION=1.0" ];
diff --git a/pkgs/development/libraries/qt-5/5.9/srcs.nix b/pkgs/development/libraries/qt-5/5.9/srcs.nix
index 247800b7578..f30802472fb 100644
--- a/pkgs/development/libraries/qt-5/5.9/srcs.nix
+++ b/pkgs/development/libraries/qt-5/5.9/srcs.nix
@@ -3,275 +3,283 @@
 
 {
   qt3d = {
-    version = "5.9.1";
+    version = "5.9.2";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.9/5.9.1/submodules/qt3d-opensource-src-5.9.1.tar.xz";
-      sha256 = "15j9znfnxch1n6fwz9ngi30msdzh0wlpykl53cs8g2fp2awfa7sg";
-      name = "qt3d-opensource-src-5.9.1.tar.xz";
+      url = "${mirror}/archive/qt/5.9/5.9.2/submodules/qt3d-opensource-src-5.9.2.tar.xz";
+      sha256 = "10q7npsl087sja0g2n3v0cg4n75y7sbrs3mfjcsg1wpkw8psjmf9";
+      name = "qt3d-opensource-src-5.9.2.tar.xz";
     };
   };
   qtactiveqt = {
-    version = "5.9.1";
+    version = "5.9.2";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.9/5.9.1/submodules/qtactiveqt-opensource-src-5.9.1.tar.xz";
-      sha256 = "07zq60xg7nnlny7qgj6dk1ibg3fzhbdh78gpd0s6x1n822iyislg";
-      name = "qtactiveqt-opensource-src-5.9.1.tar.xz";
+      url = "${mirror}/archive/qt/5.9/5.9.2/submodules/qtactiveqt-opensource-src-5.9.2.tar.xz";
+      sha256 = "1kz59ns6afnd8s73ys7hqffg9ki9g7px009b2ab72nq7f8cqsib0";
+      name = "qtactiveqt-opensource-src-5.9.2.tar.xz";
     };
   };
   qtandroidextras = {
-    version = "5.9.1";
+    version = "5.9.2";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.9/5.9.1/submodules/qtandroidextras-opensource-src-5.9.1.tar.xz";
-      sha256 = "0nq879jsa2z1l5q3n0hhiv15mzfm5c6s7zfblcc10sgim90p5mjj";
-      name = "qtandroidextras-opensource-src-5.9.1.tar.xz";
+      url = "${mirror}/archive/qt/5.9/5.9.2/submodules/qtandroidextras-opensource-src-5.9.2.tar.xz";
+      sha256 = "1hsx16v17iqjhs20xn7an2ad7g8djwrmxachscjhji1dvk4682nl";
+      name = "qtandroidextras-opensource-src-5.9.2.tar.xz";
     };
   };
   qtbase = {
-    version = "5.9.1";
+    version = "5.9.2";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.9/5.9.1/submodules/qtbase-opensource-src-5.9.1.tar.xz";
-      sha256 = "1ikm896jzyfyjv2qv8n3fd81sxb4y24zkygx36865ygzyvlj36mw";
-      name = "qtbase-opensource-src-5.9.1.tar.xz";
+      url = "${mirror}/archive/qt/5.9/5.9.2/submodules/qtbase-opensource-src-5.9.2.tar.xz";
+      sha256 = "16v0dny4rcyd5p8qsnsfg89w98k8kqk3rp9x3g3k7xjmi53bpqkz";
+      name = "qtbase-opensource-src-5.9.2.tar.xz";
     };
   };
   qtcanvas3d = {
-    version = "5.9.1";
+    version = "5.9.2";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.9/5.9.1/submodules/qtcanvas3d-opensource-src-5.9.1.tar.xz";
-      sha256 = "10fy8wqfw2yhha6lyky5g1a72137aj8pji7mk0wjnggh629z12sb";
-      name = "qtcanvas3d-opensource-src-5.9.1.tar.xz";
+      url = "${mirror}/archive/qt/5.9/5.9.2/submodules/qtcanvas3d-opensource-src-5.9.2.tar.xz";
+      sha256 = "1siyzgm1mjx90rwyzzq9vw2s2xzyf6n7q0vn8gw7mdim5indda44";
+      name = "qtcanvas3d-opensource-src-5.9.2.tar.xz";
     };
   };
   qtcharts = {
-    version = "5.9.1";
+    version = "5.9.2";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.9/5.9.1/submodules/qtcharts-opensource-src-5.9.1.tar.xz";
-      sha256 = "180df5v7i1ki8hc3lgi6jcfdyz7f19pb73dvfkw402wa2gfcna3k";
-      name = "qtcharts-opensource-src-5.9.1.tar.xz";
+      url = "${mirror}/archive/qt/5.9/5.9.2/submodules/qtcharts-opensource-src-5.9.2.tar.xz";
+      sha256 = "193a3imkgryw42s0gbwaj9gpqd673h3jrg86jvmy33l2fc5gfyjf";
+      name = "qtcharts-opensource-src-5.9.2.tar.xz";
     };
   };
   qtconnectivity = {
-    version = "5.9.1";
+    version = "5.9.2";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.9/5.9.1/submodules/qtconnectivity-opensource-src-5.9.1.tar.xz";
-      sha256 = "1mbzmqix0388iq20a1ljd1pgdq259rm1xzp9kx8gigqpamqqnqs0";
-      name = "qtconnectivity-opensource-src-5.9.1.tar.xz";
+      url = "${mirror}/archive/qt/5.9/5.9.2/submodules/qtconnectivity-opensource-src-5.9.2.tar.xz";
+      sha256 = "1k7kjmlny0ykm40qx796wbsg3310v6b8hqizkbr597cmxjbrax9c";
+      name = "qtconnectivity-opensource-src-5.9.2.tar.xz";
     };
   };
   qtdatavis3d = {
-    version = "5.9.1";
+    version = "5.9.2";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.9/5.9.1/submodules/qtdatavis3d-opensource-src-5.9.1.tar.xz";
-      sha256 = "14d1q07winh6n1bkc616dapwfnsfkcjyg5zngdqjdj9mza8ang13";
-      name = "qtdatavis3d-opensource-src-5.9.1.tar.xz";
+      url = "${mirror}/archive/qt/5.9/5.9.2/submodules/qtdatavis3d-opensource-src-5.9.2.tar.xz";
+      sha256 = "1cmjjbbmdqdix1f8b7qyc2vwhj9pvchc8r4lp65qw11dhycmdbh6";
+      name = "qtdatavis3d-opensource-src-5.9.2.tar.xz";
     };
   };
   qtdeclarative = {
-    version = "5.9.1";
+    version = "5.9.2";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.9/5.9.1/submodules/qtdeclarative-opensource-src-5.9.1.tar.xz";
-      sha256 = "1zwlxrgraxhlsdkwsai3pjbz7f3a6rsnsg2mjrpay6cz3af6rznj";
-      name = "qtdeclarative-opensource-src-5.9.1.tar.xz";
+      url = "${mirror}/archive/qt/5.9/5.9.2/submodules/qtdeclarative-opensource-src-5.9.2.tar.xz";
+      sha256 = "020bha6q8byxc8cj5zw7gms5rgsjg71hv31hv1rr2fy7x56zsh0d";
+      name = "qtdeclarative-opensource-src-5.9.2.tar.xz";
     };
   };
   qtdoc = {
-    version = "5.9.1";
+    version = "5.9.2";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.9/5.9.1/submodules/qtdoc-opensource-src-5.9.1.tar.xz";
-      sha256 = "1d2kk9wzm2261ap87nyf743a4662gll03gz5yh5qi7k620lk372x";
-      name = "qtdoc-opensource-src-5.9.1.tar.xz";
+      url = "${mirror}/archive/qt/5.9/5.9.2/submodules/qtdoc-opensource-src-5.9.2.tar.xz";
+      sha256 = "0dfva8h8f9wpszih285qcxlfcijy52qcbfy1zy20gxh72nfi86c9";
+      name = "qtdoc-opensource-src-5.9.2.tar.xz";
     };
   };
   qtgamepad = {
-    version = "5.9.1";
+    version = "5.9.2";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.9/5.9.1/submodules/qtgamepad-opensource-src-5.9.1.tar.xz";
-      sha256 = "055w4649zi93q1sl32ngqwgnl2vxw1idnm040s9gjgjb67gi81zi";
-      name = "qtgamepad-opensource-src-5.9.1.tar.xz";
+      url = "${mirror}/archive/qt/5.9/5.9.2/submodules/qtgamepad-opensource-src-5.9.2.tar.xz";
+      sha256 = "0lm5v43psf7r8zc79dcjdmmdnz4jm30ylgkvsyv8k88mj06yklbn";
+      name = "qtgamepad-opensource-src-5.9.2.tar.xz";
     };
   };
   qtgraphicaleffects = {
-    version = "5.9.1";
+    version = "5.9.2";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.9/5.9.1/submodules/qtgraphicaleffects-opensource-src-5.9.1.tar.xz";
-      sha256 = "1zsr3a5dsmpvrb5h4m4h42wqmkvkks3d8mmyrx4k0mfr6s7c71jz";
-      name = "qtgraphicaleffects-opensource-src-5.9.1.tar.xz";
+      url = "${mirror}/archive/qt/5.9/5.9.2/submodules/qtgraphicaleffects-opensource-src-5.9.2.tar.xz";
+      sha256 = "0xpvigfiqfqvf05ywj8x69y57rp8dwq2hs1kpxlxs15pniz4wn8l";
+      name = "qtgraphicaleffects-opensource-src-5.9.2.tar.xz";
     };
   };
   qtimageformats = {
-    version = "5.9.1";
+    version = "5.9.2";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.9/5.9.1/submodules/qtimageformats-opensource-src-5.9.1.tar.xz";
-      sha256 = "0iwa3dys5rv706cpxwhmgircv783pmlyl1yrsc5i0rha643y7zkr";
-      name = "qtimageformats-opensource-src-5.9.1.tar.xz";
+      url = "${mirror}/archive/qt/5.9/5.9.2/submodules/qtimageformats-opensource-src-5.9.2.tar.xz";
+      sha256 = "1wwxxcl24mk1p4w6knyfai09axmwqsm6cgsbkjsmdz3zmjh6qqis";
+      name = "qtimageformats-opensource-src-5.9.2.tar.xz";
     };
   };
   qtlocation = {
-    version = "5.9.1";
+    version = "5.9.2";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.9/5.9.1/submodules/qtlocation-opensource-src-5.9.1.tar.xz";
-      sha256 = "058mgvlaml9rkfhkpr1n3avhi12zlva131sqhbwj4lwwyqfkri2b";
-      name = "qtlocation-opensource-src-5.9.1.tar.xz";
+      url = "${mirror}/archive/qt/5.9/5.9.2/submodules/qtlocation-opensource-src-5.9.2.tar.xz";
+      sha256 = "033b6l6jbvmc0k5qvbgh5vkzvfga7npqcphrywrrqkmx9vj446n8";
+      name = "qtlocation-opensource-src-5.9.2.tar.xz";
     };
   };
   qtmacextras = {
-    version = "5.9.1";
+    version = "5.9.2";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.9/5.9.1/submodules/qtmacextras-opensource-src-5.9.1.tar.xz";
-      sha256 = "0096g9l2hwsiwlzfjkw7rhkdnyvb5gzjzyjjg9kqfnsagbwscv11";
-      name = "qtmacextras-opensource-src-5.9.1.tar.xz";
+      url = "${mirror}/archive/qt/5.9/5.9.2/submodules/qtmacextras-opensource-src-5.9.2.tar.xz";
+      sha256 = "0f14xkardmidvwljccrv6adcs4nyn8rzry9k74mwqn0ikvycs3my";
+      name = "qtmacextras-opensource-src-5.9.2.tar.xz";
     };
   };
   qtmultimedia = {
-    version = "5.9.1";
+    version = "5.9.2";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.9/5.9.1/submodules/qtmultimedia-opensource-src-5.9.1.tar.xz";
-      sha256 = "1r76zvbv6wwb7lgw9jwlx382iyw34i1amxaypb5bg3j1niqvx3z4";
-      name = "qtmultimedia-opensource-src-5.9.1.tar.xz";
+      url = "${mirror}/archive/qt/5.9/5.9.2/submodules/qtmultimedia-opensource-src-5.9.2.tar.xz";
+      sha256 = "0815hi3cxy5zy6yc5fkdpx2xd6rk7968j1ziwl2g4wa80802g9n9";
+      name = "qtmultimedia-opensource-src-5.9.2.tar.xz";
     };
   };
   qtnetworkauth = {
-    version = "5.9.1";
+    version = "5.9.2";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.9/5.9.1/submodules/qtnetworkauth-opensource-src-5.9.1.tar.xz";
-      sha256 = "1fgax3p7lqcz29z2n1qxnfpkj3wxq1x9bfx61q6nss1fs74pxzra";
-      name = "qtnetworkauth-opensource-src-5.9.1.tar.xz";
+      url = "${mirror}/archive/qt/5.9/5.9.2/submodules/qtnetworkauth-opensource-src-5.9.2.tar.xz";
+      sha256 = "16i33m8x5yii22ciq97bpfmnw0lwhvgv84i2az30a1ikm9dg00x0";
+      name = "qtnetworkauth-opensource-src-5.9.2.tar.xz";
     };
   };
   qtpurchasing = {
-    version = "5.9.1";
+    version = "5.9.2";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.9/5.9.1/submodules/qtpurchasing-opensource-src-5.9.1.tar.xz";
-      sha256 = "0b1hlaq6rb7d6b6h8kqd26klcpzf9vcdjrv610kdj0drb00jg3ss";
-      name = "qtpurchasing-opensource-src-5.9.1.tar.xz";
+      url = "${mirror}/archive/qt/5.9/5.9.2/submodules/qtpurchasing-opensource-src-5.9.2.tar.xz";
+      sha256 = "04f28y7qcr4kd0pw26mm515qj7haxr0i8lijn1q47wkikxyhawca";
+      name = "qtpurchasing-opensource-src-5.9.2.tar.xz";
     };
   };
   qtquickcontrols = {
-    version = "5.9.1";
+    version = "5.9.2";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.9/5.9.1/submodules/qtquickcontrols-opensource-src-5.9.1.tar.xz";
-      sha256 = "0bpc465q822phw3dcbddn70wj1fjlc2hxskkp1z9gl7r23hx03jj";
-      name = "qtquickcontrols-opensource-src-5.9.1.tar.xz";
+      url = "${mirror}/archive/qt/5.9/5.9.2/submodules/qtquickcontrols-opensource-src-5.9.2.tar.xz";
+      sha256 = "07xxhkfsljwdwlp9jfp88pwkrig02y2pnwhdsaz8mkcackwfq2az";
+      name = "qtquickcontrols-opensource-src-5.9.2.tar.xz";
     };
   };
   qtquickcontrols2 = {
-    version = "5.9.1";
+    version = "5.9.2";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.9/5.9.1/submodules/qtquickcontrols2-opensource-src-5.9.1.tar.xz";
-      sha256 = "1zq86kqz85wm3n84jcxkxw5x1mrhkqzldkigf8xm3l8j24rf0fr0";
-      name = "qtquickcontrols2-opensource-src-5.9.1.tar.xz";
+      url = "${mirror}/archive/qt/5.9/5.9.2/submodules/qtquickcontrols2-opensource-src-5.9.2.tar.xz";
+      sha256 = "1ln83afxyp5dmvdnq6n7as82xrd5k3xvfx7b1jxnljivslyxsm9b";
+      name = "qtquickcontrols2-opensource-src-5.9.2.tar.xz";
     };
   };
   qtremoteobjects = {
-    version = "5.9.1";
+    version = "5.9.2";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.9/5.9.1/submodules/qtremoteobjects-opensource-src-5.9.1.tar.xz";
-      sha256 = "10kwq0fgmi6zsqhb6s1nkcydpyl8d8flzdpgmyj50c4h2xhg2km0";
-      name = "qtremoteobjects-opensource-src-5.9.1.tar.xz";
+      url = "${mirror}/archive/qt/5.9/5.9.2/submodules/qtremoteobjects-opensource-src-5.9.2.tar.xz";
+      sha256 = "1ylphdwis34y4pm9xiwh2xqfd0hh2gp8kkawlps2q5mh2bm11376";
+      name = "qtremoteobjects-opensource-src-5.9.2.tar.xz";
     };
   };
   qtscript = {
-    version = "5.9.1";
+    version = "5.9.2";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.9/5.9.1/submodules/qtscript-opensource-src-5.9.1.tar.xz";
-      sha256 = "13qq2mjfhqdcvkmzrgxg1gr5kww1ygbwb7r71xxl6rjzbn30hshp";
-      name = "qtscript-opensource-src-5.9.1.tar.xz";
+      url = "${mirror}/archive/qt/5.9/5.9.2/submodules/qtscript-opensource-src-5.9.2.tar.xz";
+      sha256 = "1wa0rnbphkhgydnwkf5bjwn0llskl6hgs0964nh0jik8qaspv027";
+      name = "qtscript-opensource-src-5.9.2.tar.xz";
     };
   };
   qtscxml = {
-    version = "5.9.1";
+    version = "5.9.2";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.9/5.9.1/submodules/qtscxml-opensource-src-5.9.1.tar.xz";
-      sha256 = "1m3b6wg5hqasdfc5igpj9bq3czql5kkvvn3rx1ig508kdlh5i5s0";
-      name = "qtscxml-opensource-src-5.9.1.tar.xz";
+      url = "${mirror}/archive/qt/5.9/5.9.2/submodules/qtscxml-opensource-src-5.9.2.tar.xz";
+      sha256 = "0pdimqwdrj8hckm81lwy1z58ji4bdv0bzgv336m0a8v3pj914awx";
+      name = "qtscxml-opensource-src-5.9.2.tar.xz";
     };
   };
   qtsensors = {
-    version = "5.9.1";
+    version = "5.9.2";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.9/5.9.1/submodules/qtsensors-opensource-src-5.9.1.tar.xz";
-      sha256 = "1772x7r6y9xv2sv0w2dfz2yhagsq5bpa9kdpzg0qikccmabr7was";
-      name = "qtsensors-opensource-src-5.9.1.tar.xz";
+      url = "${mirror}/archive/qt/5.9/5.9.2/submodules/qtsensors-opensource-src-5.9.2.tar.xz";
+      sha256 = "1lxmhi19dbb8vjhpjph0l0ss6zh72hb4908lp4s1pgf8r641ai3r";
+      name = "qtsensors-opensource-src-5.9.2.tar.xz";
     };
   };
   qtserialbus = {
-    version = "5.9.1";
+    version = "5.9.2";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.9/5.9.1/submodules/qtserialbus-opensource-src-5.9.1.tar.xz";
-      sha256 = "1hzk377c3zl4dm5hxwvpxg2w096m160448y9df6v6l8xpzpzxafa";
-      name = "qtserialbus-opensource-src-5.9.1.tar.xz";
+      url = "${mirror}/archive/qt/5.9/5.9.2/submodules/qtserialbus-opensource-src-5.9.2.tar.xz";
+      sha256 = "025yv7zajz5scrmkjkmgkyvxpgkliqvrzc88is0gr481zpd4phmv";
+      name = "qtserialbus-opensource-src-5.9.2.tar.xz";
     };
   };
   qtserialport = {
-    version = "5.9.1";
+    version = "5.9.2";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.9/5.9.1/submodules/qtserialport-opensource-src-5.9.1.tar.xz";
-      sha256 = "0sbsc7n701kxl16r247a907zg2afmbx1xlml5jkc6a9956zqbzp1";
-      name = "qtserialport-opensource-src-5.9.1.tar.xz";
+      url = "${mirror}/archive/qt/5.9/5.9.2/submodules/qtserialport-opensource-src-5.9.2.tar.xz";
+      sha256 = "0hndc9z7qzxazzjvc6k5yd58afw13444plk70b05nqdi5p19rvah";
+      name = "qtserialport-opensource-src-5.9.2.tar.xz";
     };
   };
   qtspeech = {
-    version = "5.9.1";
+    version = "5.9.2";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.9/5.9.1/submodules/qtspeech-opensource-src-5.9.1.tar.xz";
-      sha256 = "00daxkf8iwf6n9rhkkv3isv5qa8wijwzb0zy1f6zlm3vcc8fz75c";
-      name = "qtspeech-opensource-src-5.9.1.tar.xz";
+      url = "${mirror}/archive/qt/5.9/5.9.2/submodules/qtspeech-opensource-src-5.9.2.tar.xz";
+      sha256 = "0cq33dffi7q7dnvzhdivky5prakb8xnwap0b76fwgirhbbn88ypg";
+      name = "qtspeech-opensource-src-5.9.2.tar.xz";
     };
   };
   qtsvg = {
-    version = "5.9.1";
+    version = "5.9.2";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.9/5.9.1/submodules/qtsvg-opensource-src-5.9.1.tar.xz";
-      sha256 = "1rg2q4snh2g4n93zmk995swwkl0ab1jr9ka9xpj56ddifkw99wlr";
-      name = "qtsvg-opensource-src-5.9.1.tar.xz";
+      url = "${mirror}/archive/qt/5.9/5.9.2/submodules/qtsvg-opensource-src-5.9.2.tar.xz";
+      sha256 = "020icrl9vi8jh8ygsssqrx2bl8bx28m15dwmf9a969qdnvxyp5ms";
+      name = "qtsvg-opensource-src-5.9.2.tar.xz";
     };
   };
   qttools = {
-    version = "5.9.1";
+    version = "5.9.2";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.9/5.9.1/submodules/qttools-opensource-src-5.9.1.tar.xz";
-      sha256 = "1s50kh3sg5wc5gqhwwznnibh7jcnfginnmkv66w62mm74k7mdsy4";
-      name = "qttools-opensource-src-5.9.1.tar.xz";
+      url = "${mirror}/archive/qt/5.9/5.9.2/submodules/qttools-opensource-src-5.9.2.tar.xz";
+      sha256 = "06nqsa5mj0mc9w9xbm7mgdkb66x4wlvkhnas32f97sb8ic8rdf9b";
+      name = "qttools-opensource-src-5.9.2.tar.xz";
     };
   };
   qttranslations = {
-    version = "5.9.1";
+    version = "5.9.2";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.9/5.9.1/submodules/qttranslations-opensource-src-5.9.1.tar.xz";
-      sha256 = "0sdjiqli15fmkbqvhhgjfavff906sg56jx5xf8bg6xzd2j5544ja";
-      name = "qttranslations-opensource-src-5.9.1.tar.xz";
+      url = "${mirror}/archive/qt/5.9/5.9.2/submodules/qttranslations-opensource-src-5.9.2.tar.xz";
+      sha256 = "0byi4s07lfnzzlr2c4sc5qg3hrysswmakwmf80q2mx50kpgnvwax";
+      name = "qttranslations-opensource-src-5.9.2.tar.xz";
     };
   };
   qtvirtualkeyboard = {
-    version = "5.9.1";
+    version = "5.9.2";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.9/5.9.1/submodules/qtvirtualkeyboard-opensource-src-5.9.1.tar.xz";
-      sha256 = "0k79sqa8bg6gkbsk16320gnila1iiwpnl3vx03rysm5bqdnnlx3b";
-      name = "qtvirtualkeyboard-opensource-src-5.9.1.tar.xz";
+      url = "${mirror}/archive/qt/5.9/5.9.2/submodules/qtvirtualkeyboard-opensource-src-5.9.2.tar.xz";
+      sha256 = "1z66chp5746cb0rwy2isnpbvwjj44qvp2hg56n3g47dj901wldp8";
+      name = "qtvirtualkeyboard-opensource-src-5.9.2.tar.xz";
     };
   };
   qtwayland = {
-    version = "5.9.1";
+    version = "5.9.2";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.9/5.9.1/submodules/qtwayland-opensource-src-5.9.1.tar.xz";
-      sha256 = "1yizvbmh26mx1ffq0qaci02g2wihy68ld0y7r3z8nx3v5acb236g";
-      name = "qtwayland-opensource-src-5.9.1.tar.xz";
+      url = "${mirror}/archive/qt/5.9/5.9.2/submodules/qtwayland-opensource-src-5.9.2.tar.xz";
+      sha256 = "1ipn4xh0dj1kjg5i4vfl4gpx3hg2377w5gls47xpv1ikz41lshzn";
+      name = "qtwayland-opensource-src-5.9.2.tar.xz";
     };
   };
   qtwebchannel = {
-    version = "5.9.1";
+    version = "5.9.2";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.9/5.9.1/submodules/qtwebchannel-opensource-src-5.9.1.tar.xz";
-      sha256 = "003h09mla82f2znb8jjigx13ivc68ikgv7w04594yy7qdmd5yhl0";
-      name = "qtwebchannel-opensource-src-5.9.1.tar.xz";
+      url = "${mirror}/archive/qt/5.9/5.9.2/submodules/qtwebchannel-opensource-src-5.9.2.tar.xz";
+      sha256 = "09iss70c1iqgf8qpik35qlgrdw5y9935v0fm2ppgkmxdxkpls6ww";
+      name = "qtwebchannel-opensource-src-5.9.2.tar.xz";
     };
   };
   qtwebengine = {
-    version = "5.9.1";
+    version = "5.9.2";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.9/5.9.1/submodules/qtwebengine-opensource-src-5.9.1.tar.xz";
-      sha256 = "00b4d18m54pbxa1hm6ijh2mrd4wmrs7lkplys8b4liw8j7mpx8zn";
-      name = "qtwebengine-opensource-src-5.9.1.tar.xz";
+      url = "${mirror}/archive/qt/5.9/5.9.2/submodules/qtwebengine-opensource-src-5.9.2.tar.xz";
+      sha256 = "0251qk04yif4lsn8qvkc2kmzzmaw1v3pfh5ypr06d04zb3j6kc6a";
+      name = "qtwebengine-opensource-src-5.9.2.tar.xz";
+    };
+  };
+  qtwebsockets = {
+    version = "5.9.2";
+    src = fetchurl {
+      url = "${mirror}/archive/qt/5.9/5.9.2/submodules/qtwebsockets-opensource-src-5.9.2.tar.xz";
+      sha256 = "0x0nx1ampqsgj9qlc3l32z3ham1a5vq7m2lnxk5pr92yj6yw3pdg";
+      name = "qtwebsockets-opensource-src-5.9.2.tar.xz";
     };
   };
   qtwebkit = {
@@ -290,44 +298,36 @@
       name = "qtwebkit-examples-opensource-src-5.9.1.tar.xz";
     };
   };
-  qtwebsockets = {
-    version = "5.9.1";
-    src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.9/5.9.1/submodules/qtwebsockets-opensource-src-5.9.1.tar.xz";
-      sha256 = "0r1lya2jj3wfci82zfn0vk6vr8sk9k7xiphnkb0panhb8di769q1";
-      name = "qtwebsockets-opensource-src-5.9.1.tar.xz";
-    };
-  };
   qtwebview = {
-    version = "5.9.1";
+    version = "5.9.2";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.9/5.9.1/submodules/qtwebview-opensource-src-5.9.1.tar.xz";
-      sha256 = "0qmxrh4y3i9n8x6yhrlnahcn75cc2xwlc8mi4g8n2d83c3x7pxyn";
-      name = "qtwebview-opensource-src-5.9.1.tar.xz";
+      url = "${mirror}/archive/qt/5.9/5.9.2/submodules/qtwebview-opensource-src-5.9.2.tar.xz";
+      sha256 = "1cdqw6pjfqagnwxrha0s18zadjnm65dsildxj07h2qiwqxwyrjpw";
+      name = "qtwebview-opensource-src-5.9.2.tar.xz";
     };
   };
   qtwinextras = {
-    version = "5.9.1";
+    version = "5.9.2";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.9/5.9.1/submodules/qtwinextras-opensource-src-5.9.1.tar.xz";
-      sha256 = "1x7f944f3g2ml3mm594qv6jlvl5dzzsxq86yinp7av0lhnyrxk0s";
-      name = "qtwinextras-opensource-src-5.9.1.tar.xz";
+      url = "${mirror}/archive/qt/5.9/5.9.2/submodules/qtwinextras-opensource-src-5.9.2.tar.xz";
+      sha256 = "07qq9rxl6hhl300w7qxsjjbdd5fwpszfk3rbinxklg20f6c6ixml";
+      name = "qtwinextras-opensource-src-5.9.2.tar.xz";
     };
   };
   qtx11extras = {
-    version = "5.9.1";
+    version = "5.9.2";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.9/5.9.1/submodules/qtx11extras-opensource-src-5.9.1.tar.xz";
-      sha256 = "00fn3bps48gjyw0pdqvvl9scknxdpmacby6hvdrdccc3jll0wgd6";
-      name = "qtx11extras-opensource-src-5.9.1.tar.xz";
+      url = "${mirror}/archive/qt/5.9/5.9.2/submodules/qtx11extras-opensource-src-5.9.2.tar.xz";
+      sha256 = "1ias745j5lfnrfkgyk0pr8n8zlkqs08gq7yyzaj1c645sh54b1fv";
+      name = "qtx11extras-opensource-src-5.9.2.tar.xz";
     };
   };
   qtxmlpatterns = {
-    version = "5.9.1";
+    version = "5.9.2";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.9/5.9.1/submodules/qtxmlpatterns-opensource-src-5.9.1.tar.xz";
-      sha256 = "094wwap2fsl23cys6rxh2ciw0gxbbiqbshnn4qs1n6xdjrj6i15m";
-      name = "qtxmlpatterns-opensource-src-5.9.1.tar.xz";
+      url = "${mirror}/archive/qt/5.9/5.9.2/submodules/qtxmlpatterns-opensource-src-5.9.2.tar.xz";
+      sha256 = "0knk4bplqhvsxar1wv16bzfw57q0aja12gdaxz7m8mvx121sm9ha";
+      name = "qtxmlpatterns-opensource-src-5.9.2.tar.xz";
     };
   };
 }
diff --git a/pkgs/development/libraries/qt-5/qtbase-setup-hook-darwin.sh b/pkgs/development/libraries/qt-5/qtbase-setup-hook-darwin.sh
index 81fcf5fc3d3..4458e18a454 100644
--- a/pkgs/development/libraries/qt-5/qtbase-setup-hook-darwin.sh
+++ b/pkgs/development/libraries/qt-5/qtbase-setup-hook-darwin.sh
@@ -2,6 +2,12 @@ qtPluginPrefix=@qtPluginPrefix@
 qtQmlPrefix=@qtQmlPrefix@
 qtDocPrefix=@qtDocPrefix@
 
+_qtRmCMakeLink() {
+    find "${!outputLib}" -name "*.cmake" -type l | xargs rm
+}
+
+postInstallHooks+=(_qtRmCMakeLink)
+
 addToSearchPathOnceWithCustomDelimiter() {
     local delim="$1"
     local search="$2"
diff --git a/pkgs/development/libraries/rdkafka/default.nix b/pkgs/development/libraries/rdkafka/default.nix
index 1bd7305867d..ff017279dc6 100644
--- a/pkgs/development/libraries/rdkafka/default.nix
+++ b/pkgs/development/libraries/rdkafka/default.nix
@@ -11,7 +11,8 @@ stdenv.mkDerivation rec {
     sha256 = "0yp8vmj3yc564hcmhx46ssyn8qayywnsrg4wg67qk6jw967qgwsn";
   };
 
-  buildInputs = [ zlib perl pkgconfig python ];
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ zlib perl python ];
 
   NIX_CFLAGS_COMPILE = "-Wno-error=strict-overflow";
 
diff --git a/pkgs/development/libraries/rep-gtk/default.nix b/pkgs/development/libraries/rep-gtk/default.nix
index bb709e952f8..5629164f160 100644
--- a/pkgs/development/libraries/rep-gtk/default.nix
+++ b/pkgs/development/libraries/rep-gtk/default.nix
@@ -12,7 +12,8 @@ stdenv.mkDerivation rec {
     sha256 = "0hgkkywm8zczir3lqr727bn7ybgg71x9cwj1av8fykkr8pdpard9";
   };
 
-  buildInputs = [ pkgconfig autoreconfHook ];
+  nativeBuildInputs = [ autoreconfHook pkgconfig ];
+  buildInputs = [ ];
   propagatedBuildInputs = [ librep gtk2 ];
 
   patchPhase = ''
diff --git a/pkgs/development/libraries/rubberband/default.nix b/pkgs/development/libraries/rubberband/default.nix
index b0707ad15f0..364a4d4794a 100644
--- a/pkgs/development/libraries/rubberband/default.nix
+++ b/pkgs/development/libraries/rubberband/default.nix
@@ -9,7 +9,8 @@ stdenv.mkDerivation {
     sha256 = "0x9bm2nqd6w2f35w2sqcp7h5z34i4w7mdg53m0vzjhffnnq6637z";
   };
 
-  buildInputs = [ pkgconfig libsamplerate libsndfile fftw vampSDK ladspaH ];
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ libsamplerate libsndfile fftw vampSDK ladspaH ];
 
   meta = with stdenv.lib; {
     description = "High quality software library for audio time-stretching and pitch-shifting";
diff --git a/pkgs/development/libraries/serd/default.nix b/pkgs/development/libraries/serd/default.nix
index 0023427f1ba..96855067523 100644
--- a/pkgs/development/libraries/serd/default.nix
+++ b/pkgs/development/libraries/serd/default.nix
@@ -9,7 +9,8 @@ stdenv.mkDerivation rec {
     sha256 = "164j43am4hka2vbzw4n52zy7rafgp6kmkgbcbvap368az644mr73";
   };
 
-  buildInputs = [ pcre pkgconfig python ];
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ pcre python ];
 
   configurePhase = "${python.interpreter} waf configure --prefix=$out";
 
diff --git a/pkgs/development/libraries/shibboleth-sp/default.nix b/pkgs/development/libraries/shibboleth-sp/default.nix
index f15c72498b2..219cda38bc2 100644
--- a/pkgs/development/libraries/shibboleth-sp/default.nix
+++ b/pkgs/development/libraries/shibboleth-sp/default.nix
@@ -10,8 +10,8 @@ stdenv.mkDerivation rec {
     sha256 = "1b5r4nd098lnjwr2g13f04ycqv5fvbrhpwg6fsdk8xy9cigvfzxj";
   };
 
-  buildInputs = [ boost fcgi openssl opensaml-cpp log4shib pkgconfig xercesc xml-security-c xml-tooling-c ];
-  nativeBuildInputs = [ autoreconfHook ];
+  nativeBuildInputs = [ autoreconfHook pkgconfig ];
+  buildInputs = [ boost fcgi openssl opensaml-cpp log4shib xercesc xml-security-c xml-tooling-c ];
 
   configureFlags = [
     "--without-apxs"
diff --git a/pkgs/development/libraries/silgraphite/default.nix b/pkgs/development/libraries/silgraphite/default.nix
new file mode 100644
index 00000000000..9d0aca0ab14
--- /dev/null
+++ b/pkgs/development/libraries/silgraphite/default.nix
@@ -0,0 +1,22 @@
+{ stdenv, fetchurl, pkgconfig, freetype, libXft, pango, fontconfig }:
+
+stdenv.mkDerivation rec {
+  version = "2.3.1";
+  name = "silgraphite-2.3.1";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/silgraphite/silgraphite/${version}/${name}.tar.gz";
+    sha256 = "9b07c6e91108b1fa87411af4a57e25522784cfea0deb79b34ced608444f2ed65";
+  };
+
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ freetype libXft pango fontconfig];
+
+  NIX_CFLAGS_COMPILE = "-I${freetype.dev}/include/freetype2";
+
+  meta = {
+    description = "An advanced font engine";
+    maintainers = [ stdenv.lib.maintainers.raskin ];
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/pkgs/development/libraries/silgraphite/graphite2.nix b/pkgs/development/libraries/silgraphite/graphite2.nix
index a399db1b71f..a5dc1f41e98 100644
--- a/pkgs/development/libraries/silgraphite/graphite2.nix
+++ b/pkgs/development/libraries/silgraphite/graphite2.nix
@@ -10,7 +10,8 @@ stdenv.mkDerivation rec {
     sha256 = "0xdg6bc02bl8yz39l5i2skczfg17q4lif0qqan0dhvk0mibpcpj7";
   };
 
-  buildInputs = [ pkgconfig freetype cmake ];
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ freetype cmake ];
 
   patches = stdenv.lib.optionals stdenv.isDarwin [ ./macosx.patch ];
 
diff --git a/pkgs/development/libraries/snack/default.nix b/pkgs/development/libraries/snack/default.nix
index 9bae9feb693..17195febe13 100644
--- a/pkgs/development/libraries/snack/default.nix
+++ b/pkgs/development/libraries/snack/default.nix
@@ -14,7 +14,8 @@ stdenv.mkDerivation {
 
   postUnpack = ''sourceRoot="$sourceRoot/unix"'';
 
-  buildInputs = [ python tcl tk vorbis-tools pkgconfig xlibsWrapper ];
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ python tcl tk vorbis-tools xlibsWrapper ];
 
   hardeningDisable = [ "format" ];
 
diff --git a/pkgs/development/libraries/sord/default.nix b/pkgs/development/libraries/sord/default.nix
index 01ea4c4a162..57f81aa4613 100644
--- a/pkgs/development/libraries/sord/default.nix
+++ b/pkgs/development/libraries/sord/default.nix
@@ -9,7 +9,8 @@ stdenv.mkDerivation rec {
     sha256 = "0nh3i867g9z4kdlnk82cg2kcw8r02qgifxvkycvzb4vfjv4v4g4x";
   };
 
-  buildInputs = [ pkgconfig python serd ];
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ python serd ];
 
   configurePhase = "${python.interpreter} waf configure --prefix=$out";
 
diff --git a/pkgs/development/libraries/spatialite-tools/default.nix b/pkgs/development/libraries/spatialite-tools/default.nix
index 6f7d154bbe8..ff461f1b8e6 100644
--- a/pkgs/development/libraries/spatialite-tools/default.nix
+++ b/pkgs/development/libraries/spatialite-tools/default.nix
@@ -8,7 +8,8 @@ stdenv.mkDerivation rec {
     sha256 = "14aqmhvab63ydbb82fglsbig7jw1wmci8jjvci07aavdhvh1pyrv";
   };
 
-  buildInputs = [ pkgconfig sqlite expat zlib proj geos libspatialite readosm ];
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ sqlite expat zlib proj geos libspatialite readosm ];
 
   configureFlags = "--disable-freexl";
 
diff --git a/pkgs/development/libraries/spdlog/default.nix b/pkgs/development/libraries/spdlog/default.nix
index a47eabe5d8d..1c9e67f8767 100644
--- a/pkgs/development/libraries/spdlog/default.nix
+++ b/pkgs/development/libraries/spdlog/default.nix
@@ -2,16 +2,16 @@
 
 stdenv.mkDerivation rec {
   name = "spdlog-${version}";
-  version = "0.13.0";
+  version = "0.14.0";
 
   src = fetchFromGitHub {
-    owner = "gabime";
-    repo = "spdlog";
-    rev = "v${version}";
-    sha256 = "0pfagrkq6afpkl269vbi1fd6ckakzpr5b5cbapb8rr7hgsrilxza";
+    owner  = "gabime";
+    repo   = "spdlog";
+    rev    = "v${version}";
+    sha256 = "13730429gwlabi432ilpnja3sfvy0nn2719vnhhmii34xcdyc57q";
   };
 
-  buildInputs = [ cmake ];
+  nativeBuildInputs = [ cmake ];
 
   # cmakeFlags = [ "-DSPDLOG_BUILD_EXAMPLES=ON" ];
 
@@ -28,8 +28,5 @@ stdenv.mkDerivation rec {
     license        = licenses.mit;
     maintainers    = with maintainers; [ obadz ];
     platforms      = platforms.all;
-
-    # This is a header-only library, no point in hydra building it:
-    hydraPlatforms = [];
   };
 }
diff --git a/pkgs/development/libraries/sphinxbase/default.nix b/pkgs/development/libraries/sphinxbase/default.nix
index e82b2fe045b..57c3ae40fd9 100644
--- a/pkgs/development/libraries/sphinxbase/default.nix
+++ b/pkgs/development/libraries/sphinxbase/default.nix
@@ -15,7 +15,8 @@ stdenv.mkDerivation (rec {
     sha256 = "0vr4k8pv5a8nvq9yja7kl13b5lh0f9vha8fc8znqnm8bwmcxnazp";
   };
 
-  buildInputs = [ swig2 python27 pkgconfig bison ];
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ swig2 python27 bison ];
 
   meta = {
     description = "Support Library for Pocketsphinx";
diff --git a/pkgs/development/libraries/srtp/default.nix b/pkgs/development/libraries/srtp/default.nix
index 27194aabd1b..d4ea531f886 100644
--- a/pkgs/development/libraries/srtp/default.nix
+++ b/pkgs/development/libraries/srtp/default.nix
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
     sha256 = "0s029m4iw0nsvnsm2hlz8yajrasdvf315iv2dw8mfm7nhbshwsqa";
   };
 
-  buildInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ];
 
   # libsrtp.pc references -lcrypto -lpcap without -L
   propagatedBuildInputs = [ openssl libpcap ];
diff --git a/pkgs/development/libraries/startup-notification/default.nix b/pkgs/development/libraries/startup-notification/default.nix
index b4b29b54881..ce4fca6da70 100644
--- a/pkgs/development/libraries/startup-notification/default.nix
+++ b/pkgs/development/libraries/startup-notification/default.nix
@@ -10,7 +10,8 @@ stdenv.mkDerivation {
     sha256 = "3c391f7e930c583095045cd2d10eb73a64f085c7fde9d260f2652c7cb3cfbe4a";
   };
 
-  buildInputs = [ libX11 libxcb pkgconfig xcbutil ];
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ libX11 libxcb xcbutil ];
 
   meta = {
     homepage = http://www.freedesktop.org/software/startup-notification;
diff --git a/pkgs/development/libraries/subunit/default.nix b/pkgs/development/libraries/subunit/default.nix
index e4a767579ab..35bacff0525 100644
--- a/pkgs/development/libraries/subunit/default.nix
+++ b/pkgs/development/libraries/subunit/default.nix
@@ -11,7 +11,8 @@ stdenv.mkDerivation rec {
     sha256 = "0lcah7p66c05p7xpw6ns1is0i02lh0nq8gq51mv4wyvbr6zaasa8";
   };
 
-  buildInputs = [ pkgconfig check cppunit perl pythonPackages.wrapPython ];
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ check cppunit perl pythonPackages.wrapPython ];
 
   propagatedBuildInputs = with pythonPackages; [ testtools testscenarios ];
 
diff --git a/pkgs/development/libraries/svrcore/default.nix b/pkgs/development/libraries/svrcore/default.nix
index ddb880e6bf2..f1ae1ea5db0 100644
--- a/pkgs/development/libraries/svrcore/default.nix
+++ b/pkgs/development/libraries/svrcore/default.nix
@@ -9,7 +9,8 @@ stdenv.mkDerivation rec {
     sha256 = "0n3alg6bxml8952fb6h0bi0l29farvq21q6k20gy2ba90m3znwj7";
   };
 
-  buildInputs = [ pkgconfig nss nspr ];
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ nss nspr ];
 
   meta = with stdenv.lib; {
     description = "Secure PIN handling using NSS crypto";
diff --git a/pkgs/development/libraries/sword/default.nix b/pkgs/development/libraries/sword/default.nix
index 44f6cabd35a..13497f7727f 100644
--- a/pkgs/development/libraries/sword/default.nix
+++ b/pkgs/development/libraries/sword/default.nix
@@ -10,7 +10,8 @@ stdenv.mkDerivation rec {
     sha256 = "0g91kpfkwccvdikddffdbzd6glnp1gdvkx4vh04iyz10bb7shpcr";
   };
 
-  buildInputs = [ pkgconfig icu clucene_core curl ];
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ icu clucene_core curl ];
 
   prePatch = ''
     patchShebangs .;
diff --git a/pkgs/development/libraries/talloc/default.nix b/pkgs/development/libraries/talloc/default.nix
index 125e6b389e3..1e7448b6605 100644
--- a/pkgs/development/libraries/talloc/default.nix
+++ b/pkgs/development/libraries/talloc/default.nix
@@ -10,8 +10,9 @@ stdenv.mkDerivation rec {
     sha256 = "0c3ihyb0jd8mhvi7gg2mr5w1zl2habx6jlkbyxzyckad2q8lkl92";
   };
 
+  nativeBuildInputs = [ pkgconfig ];
   buildInputs = [
-    python pkgconfig readline libxslt docbook_xsl docbook_xml_dtd_42
+    python readline libxslt docbook_xsl docbook_xml_dtd_42
   ];
 
   preConfigure = ''
diff --git a/pkgs/development/libraries/tdb/default.nix b/pkgs/development/libraries/tdb/default.nix
index f7449dcf1ab..7ccd98856f6 100644
--- a/pkgs/development/libraries/tdb/default.nix
+++ b/pkgs/development/libraries/tdb/default.nix
@@ -10,8 +10,9 @@ stdenv.mkDerivation rec {
     sha256 = "0i1l38h0vyck6zkcj4fn2l03spadlmyr1qa1xpdp9dy2ccbm3s1r";
   };
 
+  nativeBuildInputs = [ pkgconfig ];
   buildInputs = [
-    python pkgconfig readline libxslt docbook_xsl docbook_xml_dtd_42
+    python readline libxslt docbook_xsl docbook_xml_dtd_42
   ];
 
   preConfigure = ''
diff --git a/pkgs/development/libraries/telepathy/glib/default.nix b/pkgs/development/libraries/telepathy/glib/default.nix
index bc9e861df9c..ec26c9f567b 100644
--- a/pkgs/development/libraries/telepathy/glib/default.nix
+++ b/pkgs/development/libraries/telepathy/glib/default.nix
@@ -13,7 +13,8 @@ stdenv.mkDerivation rec {
   LC_ALL = "en_US.UTF-8";
   propagatedBuildInputs = [dbus_glib glib gobjectIntrospection];
 
-  buildInputs = [pkgconfig libxslt glibcLocales python2 ] ++ stdenv.lib.optional valaSupport vala_0_23;
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ libxslt glibcLocales python2 ] ++ stdenv.lib.optional valaSupport vala_0_23;
 
   preConfigure = ''
     substituteInPlace telepathy-glib/telepathy-glib.pc.in --replace Requires.private Requires
diff --git a/pkgs/development/libraries/tevent/default.nix b/pkgs/development/libraries/tevent/default.nix
index 2856f025a88..2982d33e996 100644
--- a/pkgs/development/libraries/tevent/default.nix
+++ b/pkgs/development/libraries/tevent/default.nix
@@ -10,8 +10,9 @@ stdenv.mkDerivation rec {
     sha256 = "1gccqiibf6ia129xhqrg18anax3sxwfbwm8h4pvsga3ndxg931ap";
   };
 
+  nativeBuildInputs = [ pkgconfig ];
   buildInputs = [
-    python pkgconfig readline talloc libxslt docbook_xsl docbook_xml_dtd_42
+    python readline talloc libxslt docbook_xsl docbook_xml_dtd_42
   ];
 
   preConfigure = ''
diff --git a/pkgs/development/libraries/thrift/default.nix b/pkgs/development/libraries/thrift/default.nix
index 4b299eedbd9..55855d05d16 100644
--- a/pkgs/development/libraries/thrift/default.nix
+++ b/pkgs/development/libraries/thrift/default.nix
@@ -17,8 +17,9 @@ stdenv.mkDerivation rec {
   # pythonFull.buildEnv.override { extraLibs = [ thrift ]; }
   pythonPath = [];
 
+  nativeBuildInputs = [ pkgconfig ];
   buildInputs = [
-    boost zlib libevent openssl python pkgconfig bison flex twisted
+    boost zlib libevent openssl python bison flex twisted
   ];
 
   preConfigure = "export PY_PREFIX=$out";
diff --git a/pkgs/development/libraries/tk/generic.nix b/pkgs/development/libraries/tk/generic.nix
index 2258f28b9c4..843c6157479 100644
--- a/pkgs/development/libraries/tk/generic.nix
+++ b/pkgs/development/libraries/tk/generic.nix
@@ -23,7 +23,8 @@ stdenv.mkDerivation {
     "--with-tcl=${tcl}/lib"
   ];
 
-  buildInputs = [ pkgconfig ]
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ ]
     ++ stdenv.lib.optional stdenv.isDarwin fontconfig;
 
   propagatedBuildInputs = [ tcl libXft ];
diff --git a/pkgs/development/libraries/twolame/default.nix b/pkgs/development/libraries/twolame/default.nix
index 54ba8470fc5..a65254fea24 100644
--- a/pkgs/development/libraries/twolame/default.nix
+++ b/pkgs/development/libraries/twolame/default.nix
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
     '';
     homepage = http://www.twolame.org/;
     license = with licenses; [ lgpl2Plus ];
-    platforms = with platforms; [ unix ];
+    platforms = with platforms; unix;
     maintainers = with maintainers; [ AndersonTorres ];
   };
 }
diff --git a/pkgs/development/libraries/ucommon/default.nix b/pkgs/development/libraries/ucommon/default.nix
index 315566851fb..8665be26925 100644
--- a/pkgs/development/libraries/ucommon/default.nix
+++ b/pkgs/development/libraries/ucommon/default.nix
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
     sha256 = "6ac9f76c2af010f97e916e4bae1cece341dc64ca28e3881ff4ddc3bc334060d7";
   };
 
-  buildInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ];
 
   # disable flaky networking test
   postPatch = ''
diff --git a/pkgs/development/libraries/uhttpmock/default.nix b/pkgs/development/libraries/uhttpmock/default.nix
index 94223378151..26c040721bd 100644
--- a/pkgs/development/libraries/uhttpmock/default.nix
+++ b/pkgs/development/libraries/uhttpmock/default.nix
@@ -11,7 +11,8 @@ stdenv.mkDerivation rec {
     sha256 = "0kkf670abkq5ikm3mqls475lydfsd9by1kv5im4k757xrl1br1d4";
   };
 
-  buildInputs = [ autoconf gtk_doc automake libtool pkgconfig glib libsoup gobjectIntrospection ];
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ autoconf gtk_doc automake libtool glib libsoup gobjectIntrospection ];
 
   preConfigure = "./autogen.sh";
 
diff --git a/pkgs/development/libraries/unibilium/default.nix b/pkgs/development/libraries/unibilium/default.nix
index cf34c96a2fe..4742e217013 100644
--- a/pkgs/development/libraries/unibilium/default.nix
+++ b/pkgs/development/libraries/unibilium/default.nix
@@ -15,7 +15,8 @@ stdenv.mkDerivation rec {
   makeFlags = [ "PREFIX=$(out)" ]
     ++ stdenv.lib.optional stdenv.isDarwin "LIBTOOL=${libtool}/bin/libtool";
 
-  buildInputs = [ libtool pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ libtool ];
 
   meta = with lib; {
     description = "A very basic terminfo library";
diff --git a/pkgs/development/libraries/usbredir/default.nix b/pkgs/development/libraries/usbredir/default.nix
index f4ec0242224..e4e053805af 100644
--- a/pkgs/development/libraries/usbredir/default.nix
+++ b/pkgs/development/libraries/usbredir/default.nix
@@ -12,7 +12,8 @@ stdenv.mkDerivation rec {
   # Works around bunch of "format '%lu' expects argument of type 'long unsigned int', but argument 4 has type 'uint64_t {aka long long unsigned int}'" warnings
   NIX_CFLAGS_COMPILE = stdenv.lib.optionalString stdenv.isi686 "-Wno-error=format";
 
-  buildInputs = [ pkgconfig libusb ];
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ libusb ];
   propagatedBuildInputs = [ libusb ];
 
   outputs = [ "out" "dev" ];
diff --git a/pkgs/development/libraries/v8/3.24.10.nix b/pkgs/development/libraries/v8/3.24.10.nix
deleted file mode 100644
index e7b10f23ac8..00000000000
--- a/pkgs/development/libraries/v8/3.24.10.nix
+++ /dev/null
@@ -1,6 +0,0 @@
-{ callPackage, ... } @ args:
-
-callPackage ./generic.nix (args // {
-  version = "3.24.10";
-  sha256 = "1blz5h9syk93bb4x3shcai3s2jhh6ai4bpymr9rz0f1ysvg60x75";
-})
diff --git a/pkgs/development/libraries/v8/6_x.nix b/pkgs/development/libraries/v8/6_x.nix
new file mode 100644
index 00000000000..4095ff20c2b
--- /dev/null
+++ b/pkgs/development/libraries/v8/6_x.nix
@@ -0,0 +1,171 @@
+{ stdenv, lib, fetchgit, fetchFromGitHub, gn, ninja, python, glib, pkgconfig
+, doCheck ? false
+, snapshot ? true
+}:
+
+let
+  arch = if stdenv.isArm
+         then if stdenv.is64bit
+              then"arm64"
+              else "arm"
+         else if stdenv.is64bit
+              then"x64"
+              else "ia32";
+  git_url = "https://chromium.googlesource.com";
+
+  deps = {
+    "base/trace_event/common" = fetchgit {
+      url = "${git_url}/chromium/src/base/trace_event/common.git";
+      rev = "65d1d42a5df6c0a563a6fdfa58a135679185e5d9";
+      sha256 = "0ikk0dj12adzr0138jrmwzhx8n9sl5qzs86a3mc3gva08a8wc84p";
+    };
+    "build" = fetchgit {
+      url = "${git_url}/chromium/src/build.git";
+      rev = "48a2b7b39debc7c77c868c9ddb0a360af1ebc367";
+      sha256 = "0aj554dfdbwnikwaapznfq55wkwbvg4114h7qamixy8ryjkaiy0k";
+    };
+    "buildtools" = fetchgit {
+      url = "${git_url}/chromium/buildtools.git";
+      rev = "5af0a3a8b89827a8634132080a39ab4b63dee489";
+      sha256 = "1841803m40w1hmnmm7qzdpk4b6q1m8cb7q4hsflqfpddpf4lp3v1";
+    };
+    "test/benchmarks/data" = fetchgit {
+      url = "${git_url}/v8/deps/third_party/benchmarks.git";
+      rev = "05d7188267b4560491ff9155c5ee13e207ecd65f";
+      sha256 = "0ad2ay14bn67d61ks4dmzadfnhkj9bw28r4yjdjjyzck7qbnzchl";
+    };
+    "test/mozilla/data" = fetchgit {
+      url = "${git_url}/v8/deps/third_party/mozilla-tests.git";
+      rev = "f6c578a10ea707b1a8ab0b88943fe5115ce2b9be";
+      sha256 = "0rfdan76yfawqxbwwb35aa57b723j3z9fx5a2w16nls02yk2kqyn";
+    };
+    "test/test262/data" = fetchgit {
+      url = "${git_url}/external/github.com/tc39/test262.git";
+      rev = "1b911a8f8abf4cb63882cfbe72dcd4c82bb8ad91";
+      sha256 = "1hbp7vv41k7jka8azc78hhw4qng7gckr6dz1van7cyd067znwvr4";
+    };
+    "test/test262/harness" = fetchgit {
+      url = "${git_url}/external/github.com/test262-utils/test262-harness-py.git";
+      rev = "0f2acdd882c84cff43b9d60df7574a1901e2cdcd";
+      sha256 = "00brj5avp43yamc92kinba2mg3a2x1rcd7wnm7z093l73idprvkp";
+    };
+    "test/wasm-js" = fetchgit {
+      url = "${git_url}/external/github.com/WebAssembly/spec.git";
+      rev = "17b4a4d98c80b1ec736649d5a73496a0e6d12d4c";
+      sha256 = "03nyrrqffzj6xrmqi1v7f9m9395bdk53x301fy5mcq4hhpq6rsjr";
+    };
+    "testing/gmock" = fetchgit {
+      url = "${git_url}/external/googlemock.git";
+      rev = "0421b6f358139f02e102c9c332ce19a33faf75be";
+      sha256 = "1xiky4v98maxs8fg1avcd56y0alv3hw8qyrlpd899zgzbq2k10pp";
+    };
+    "testing/gtest" = fetchgit {
+      url = "${git_url}/external/github.com/google/googletest.git";
+      rev = "6f8a66431cb592dad629028a50b3dd418a408c87";
+      sha256 = "0bdba2lr6pg15bla9600zg0r0vm4lnrx0wqz84p376wfdxra24vw";
+    };
+    "third_party/icu" = fetchgit {
+      url = "${git_url}/chromium/deps/icu.git";
+      rev = "08cb956852a5ccdba7f9c941728bb833529ba3c6";
+      sha256 = "0vn2iv068kmcjqqx5cgyha80x9iraz11hpx3q4n3rkvrlvbb3d7b";
+    };
+    "third_party/instrumented_libraries" = fetchgit {
+      url = "${git_url}/chromium/src/third_party/instrumented_libraries.git";
+      rev = "644afd349826cb68204226a16c38bde13abe9c3c";
+      sha256 = "0d1vkwilgv1a4ghazn623gwmm7h51padpfi94qrmig1y748xfwfa";
+    };
+    # templates of code generator require jinja2 2.8 (while nixpkgs has 2.9.5, which breaks the template)
+    "third_party/jinja2" = fetchgit {
+      url = "${git_url}/chromium/src/third_party/jinja2.git";
+      rev = "d34383206fa42d52faa10bb9931d6d538f3a57e0";
+      sha256 = "0d9hyw0bvp3p0dbwy833cm9vdqxcam0qbm9jc561ynphddxlkmgd";
+    };
+    "third_party/markupsafe" = fetchgit {
+      url = "${git_url}/chromium/src/third_party/markupsafe.git";
+      rev = "8f45f5cfa0009d2a70589bcda0349b8cb2b72783";
+      sha256 = "168ppjmicfdh4i1l0l25s86mdbrz9fgxmiq1rx33x79mph41scfz";
+    };
+    "tools/clang" = fetchgit {
+      url = "${git_url}/chromium/src/tools/clang.git";
+      rev = "40f69660bf3cd407e72b8ae240fdd6c513dddbfe";
+      sha256 = "1plkb9dcn34yd6lad7w59s9vqwmcc592dasgdk232spkafpg8qcf";
+    };
+  };
+
+in
+
+stdenv.mkDerivation rec {
+  name = "v8-${version}";
+  version = "6.2.414.27";
+
+  inherit doCheck;
+
+  src = fetchFromGitHub {
+    owner = "v8";
+    repo = "v8";
+    rev = version;
+    sha256 = "15zrb9bcpnhljhrilqnjaak3a4xnhj8li6ra12g3gkrw3fzir9a2";
+  };
+
+  postUnpack = ''
+    ${lib.concatStringsSep "\n" (
+      lib.mapAttrsToList (n: v: ''
+        mkdir -p $sourceRoot/${n}
+        cp -r ${v}/* $sourceRoot/${n}
+      '') deps)}
+  '';
+
+  prePatch = ''
+    # use our gn, not the bundled one
+    sed -i -e 's#gn_path = .*#gn_path = "${gn}/bin/gn"#' tools/mb/mb.py
+
+    # disable tests
+    if [ "$doCheck" = "" ]; then sed -i -e '/"test:gn_all",/d' BUILD.gn; fi
+
+    # disable sysroot usage
+    chmod u+w build/config build/config/sysroot.gni
+    sed -i build/config/sysroot.gni \
+        -e '/use_sysroot =/ { s#\(use_sysroot =\).*#\1 false#; :a  n; /current_cpu/ { s/^/#/; ba };  }'
+
+    # patch shebangs (/usr/bin/env)
+    patchShebangs tools/dev/v8gen.py
+  '';
+
+  configurePhase = ''
+    tools/dev/v8gen.py -vv ${arch}.release -- \
+        is_component_build=true \
+        ${if snapshot then "v8_use_external_startup_data=false" else "v8_use_snapshot=false" } \
+        is_clang=false \
+        linux_use_bundled_binutils=false \
+        treat_warnings_as_errors=false
+  '';
+
+  nativeBuildInputs = [ gn ninja pkgconfig ];
+  buildInputs = [ python glib ];
+
+  buildPhase = ''
+    ninja -C out.gn/${arch}.release/
+  '';
+
+  enableParallelBuilding = true;
+
+  installPhase = ''
+    install -vD out.gn/${arch}.release/d8 "$out/bin/d8"
+    install -vD out.gn/${arch}.release/mksnapshot "$out/bin/mksnapshot"
+    mkdir -p "$out/lib"
+    for f in libicui18n.so libicuuc.so libv8_libbase.so libv8_libplatform.so libv8.so; do
+        install -vD out.gn/${arch}.release/$f "$out/lib/$f"
+    done
+    install -vD out.gn/${arch}.release/icudtl.dat "$out/lib/icudtl.dat"
+    mkdir -p "$out/include"
+    cp -vr include/*.h "$out/include"
+    cp -vr include/libplatform "$out/include"
+  '';
+
+  meta = with lib; {
+    description = "Google's open source JavaScript engine";
+    maintainers = with maintainers; [ cstrahan proglodyte ];
+    platforms = platforms.linux;
+    license = licenses.bsd3;
+  };
+}
diff --git a/pkgs/development/libraries/v8/generic.nix b/pkgs/development/libraries/v8/generic.nix
deleted file mode 100644
index d603fda3225..00000000000
--- a/pkgs/development/libraries/v8/generic.nix
+++ /dev/null
@@ -1,79 +0,0 @@
-{ stdenv, fetchurl, gyp, readline, python, which, icu
-, version
-, sha256
-, ...
-}:
-
-assert readline != null;
-
-let
-  arch = if stdenv.is64bit then "x64" else "ia32";
-in
-
-stdenv.mkDerivation rec {
-  name = "v8-${version}";
-  inherit version;
-
-  src = fetchurl {
-    url = "https://commondatastorage.googleapis.com/chromium-browser-official/"
-        + "${name}.tar.bz2";
-    inherit sha256;
-  };
-
-  patchPhase = ''
-    sed -i 's,#!/usr/bin/env python,#!${python}/bin/python,' build/gyp_v8
-  '';
-
-  configurePhase = ''
-    PYTHONPATH="tools/generate_shim_headers:$PYTHONPATH" \
-    PYTHONPATH="$(toPythonPath ${gyp}):$PYTHONPATH" \
-      build/gyp_v8 \
-        -f make \
-        --generator-output="out" \
-        -Dflock_index=0 \
-        -Dv8_enable_i18n_support=1 \
-        -Duse_system_icu=1 \
-        -Dconsole=readline \
-        -Dcomponent=shared_library \
-        -Dv8_target_arch=${arch}
-  '';
-
-  nativeBuildInputs = [ which ];
-  buildInputs = [ readline python icu ];
-
-  NIX_CFLAGS_COMPILE = "-Wno-error=strict-overflow";
-
-  buildFlags = [
-    "LINK=g++"
-    "-C out"
-    "builddir=$(CURDIR)/Release"
-    "BUILDTYPE=Release"
-  ];
-
-  postPatch = stdenv.lib.optionalString (!stdenv.cc.isClang) ''
-    sed -i build/standalone.gyp -e 's,-Wno-format-pedantic,,g'
-  '';
-
-  enableParallelBuilding = true;
-
-  installPhase = ''
-    install -vD out/Release/d8 "$out/bin/d8"
-    ${if stdenv.system == "x86_64-darwin" then ''
-    install -vD out/Release/lib.target/libv8.dylib "$out/lib/libv8.dylib"
-    '' else ''
-    install -vD out/Release/lib.target/libv8.so "$out/lib/libv8.so"
-    ''}
-    cp -vr include "$out/"
-  '';
-
-  postFixup = if stdenv.isDarwin then ''
-    install_name_tool -change /usr/local/lib/libv8.dylib $out/lib/libv8.dylib -change /usr/lib/libgcc_s.1.dylib ${stdenv.cc.cc.lib}/lib/libgcc_s.1.dylib $out/bin/d8
-    install_name_tool -id $out/lib/libv8.dylib -change /usr/lib/libgcc_s.1.dylib ${stdenv.cc.cc.lib}/lib/libgcc_s.1.dylib $out/lib/libv8.dylib
-  '' else null;
-
-  meta = with stdenv.lib; {
-    description = "Google's open source JavaScript engine";
-    platforms = platforms.linux;
-    license = licenses.bsd3;
-  };
-}
diff --git a/pkgs/development/libraries/v8/update.sh b/pkgs/development/libraries/v8/update.sh
new file mode 100755
index 00000000000..f046bb8e688
--- /dev/null
+++ b/pkgs/development/libraries/v8/update.sh
@@ -0,0 +1,47 @@
+#!/usr/bin/env nix-shell
+#! nix-shell -i bash -p curl -p nix-prefetch-git
+VERSION_OVERVIEW=https://omahaproxy.appspot.com/all?os=linux
+TARGET_CHANNEL=beta
+FILE_PATH=6_x.nix
+
+set -eo pipefail
+
+v8_version=$(curl -s "$VERSION_OVERVIEW" | awk -F "," "\$2 ~ /${TARGET_CHANNEL}/ { print \$11 }")
+
+echo "Using V8 version --> $v8_version"
+sed -e "s#\\(version = \\)\"[0-9\.]*\"#\1\"$v8_version\"#" -i ${FILE_PATH}
+
+sha256=$(nix-prefetch-git --no-deepClone https://github.com/v8/v8.git "refs/tags/${v8_version}" \
+    | sed -ne '/sha256/ { s#.*: "\(.*\)".*#\1#; p }')
+sed -e "/repo = \"v8\"/ { n;n; s#\".*\"#\"${sha256}\"# }" -i ${FILE_PATH}
+
+deps="$(mktemp)"
+
+curl -s -o "$deps" "https://raw.githubusercontent.com/v8/v8/${v8_version}/DEPS"
+echo $deps
+
+sed -ne '/= fetchgit {/ { s/.*"\(.*\)".*/\1/; p }' < ${FILE_PATH} | while read dep; do
+    echo "Processing dependency --> $dep"
+    escaped_dep=$(echo "$dep" | sed -e 's#/#\\/#g')
+    dep_rev=$(sed -ne "/\"v8\/${escaped_dep}\":/ { n; s#.*+ \"##; s#\".*##;  p }" "$deps")
+
+    if [ "$dep_rev" = "" ]; then
+        echo "Failed to resolve dependency $dep, not listed in DEPS file"
+        rm -f "$deps"
+        exit 2
+    fi
+
+    repo_url=$(sed -ne "/\"${escaped_dep}\" = fetchgit/ { n; s/.*\"\(.*\)\".*/\1/; s#\${git_url}#https://chromium.googlesource.com#; p }"  ${FILE_PATH})
+    sha256=$(nix-prefetch-git --no-deepClone "$repo_url" "$dep_rev" 2>/dev/null | sed -ne '/sha256/ { s#.*: "\(.*\)".*#\1#; p }')
+
+    if [ "$sha256" = "" ]; then
+        echo "Failed to get sha256 via nix-prefetch-git $repo_url $dep_rev"
+        rm -f "$deps"
+        exit 2
+    fi
+
+    sed -e "/\"${escaped_dep}\" = fetchgit/ { n; n; s/\".*\"/\"${dep_rev}\"/; n; s/\".*\"/\"${sha256}\"/  }" -i ${FILE_PATH}
+done
+
+rm -f "$deps"
+echo done.
diff --git a/pkgs/development/libraries/vaapi-vdpau/default.nix b/pkgs/development/libraries/vaapi-vdpau/default.nix
index c7b8ddd8d6f..4522ecc1bb6 100644
--- a/pkgs/development/libraries/vaapi-vdpau/default.nix
+++ b/pkgs/development/libraries/vaapi-vdpau/default.nix
@@ -19,7 +19,8 @@ stdenv.mkDerivation rec {
                           sha256 = "166svcav6axkrlb3i4rbf6dkwjnqdf69xw339az1f5yabj72pqqs";
                         }) ];
 
-  buildInputs = [ libvdpau mesa libva pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ libvdpau mesa libva ];
 
   preConfigure = ''
     patch -p0 < ${libvdpau08patch}  # use -p0 instead of -p1
diff --git a/pkgs/development/libraries/vapoursynth-mvtools/default.nix b/pkgs/development/libraries/vapoursynth-mvtools/default.nix
index 1a1e70d89bc..2fa6710c4fa 100644
--- a/pkgs/development/libraries/vapoursynth-mvtools/default.nix
+++ b/pkgs/development/libraries/vapoursynth-mvtools/default.nix
@@ -13,8 +13,9 @@ stdenv.mkDerivation rec {
     sha256 = "1wjwf1lgfkqz87s0j251g625mw9xmx79zzgrjyhq3wlii73m6qwp";
   };
 
+  nativeBuildInputs = [ pkgconfig ];
   buildInputs = [
-    pkgconfig autoreconfHook
+    autoreconfHook
     yasm vapoursynth fftwFloat
   ];
 
diff --git a/pkgs/development/libraries/vulkan-loader/default.nix b/pkgs/development/libraries/vulkan-loader/default.nix
index f62279786c6..8330f7f44f3 100644
--- a/pkgs/development/libraries/vulkan-loader/default.nix
+++ b/pkgs/development/libraries/vulkan-loader/default.nix
@@ -16,8 +16,8 @@ stdenv.mkDerivation rec {
   name = "vulkan-loader-${version}";
   inherit version src;
 
-  nativeBuildInputs = [ makeWrapper ];
-  buildInputs = [ cmake pkgconfig git python3 python3Packages.lxml
+  nativeBuildInputs = [ makeWrapper pkgconfig ];
+  buildInputs = [ cmake git python3 python3Packages.lxml
                   glslang spirv-tools x11 libxcb libXrandr libXext wayland
                 ];
   enableParallelBuilding = true;
diff --git a/pkgs/development/libraries/webkitgtk/2.16.nix b/pkgs/development/libraries/webkitgtk/2.16.nix
index 094c3596d4b..d6999353414 100644
--- a/pkgs/development/libraries/webkitgtk/2.16.nix
+++ b/pkgs/development/libraries/webkitgtk/2.16.nix
@@ -83,14 +83,14 @@ stdenv.mkDerivation rec {
                      + (optionalString stdenv.isDarwin " -lintl");
 
   nativeBuildInputs = [
-    cmake perl python2 ruby bison gperf sqlite
+    cmake perl python2 ruby bison gperf
     pkgconfig gettext gobjectIntrospection
   ];
 
   buildInputs = libintlOrEmpty ++ [
     gtk2 libwebp enchant libnotify gnutls pcre nettle libidn
     libxml2 libsecret libxslt harfbuzz libpthreadstubs libtasn1 p11_kit
-    gst-plugins-base libxkbcommon epoxy at_spi2_core
+    sqlite gst-plugins-base libxkbcommon epoxy at_spi2_core
   ] ++ optional enableGeoLocation geoclue2
     ++ (with xlibs; [ libXdmcp libXt libXtst ])
     ++ optionals stdenv.isDarwin [ libedit readline mesa ]
diff --git a/pkgs/development/libraries/wt/default.nix b/pkgs/development/libraries/wt/default.nix
index be661d0d270..5d4caed890a 100644
--- a/pkgs/development/libraries/wt/default.nix
+++ b/pkgs/development/libraries/wt/default.nix
@@ -15,7 +15,8 @@ stdenv.mkDerivation rec {
 
   enableParallelBuilding = true;
 
-  buildInputs = [ cmake boost pkgconfig doxygen qt48Full libharu 
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ cmake boost doxygen qt48Full libharu 
     pango fcgi firebird libmysql postgresql graphicsmagick glew 
     openssl pcre ];
 
diff --git a/pkgs/development/libraries/xml-security-c/default.nix b/pkgs/development/libraries/xml-security-c/default.nix
index 7ab6041e86d..bbbf9af29e5 100644
--- a/pkgs/development/libraries/xml-security-c/default.nix
+++ b/pkgs/development/libraries/xml-security-c/default.nix
@@ -23,7 +23,8 @@ stdenv.mkDerivation rec {
     "--disable-static"
   ];
 
-  buildInputs = [ xalanc xercesc openssl pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ xalanc xercesc openssl ];
 
   meta = {
     homepage = http://santuario.apache.org/;
diff --git a/pkgs/development/libraries/xmlsec/default.nix b/pkgs/development/libraries/xmlsec/default.nix
index c55a3020b44..32ce856eddd 100644
--- a/pkgs/development/libraries/xmlsec/default.nix
+++ b/pkgs/development/libraries/xmlsec/default.nix
@@ -14,7 +14,9 @@ stdenv.mkDerivation rec {
 
   outputs = [ "out" "dev" ];
 
-  buildInputs = [ makeWrapper libxml2 gnutls libxslt pkgconfig libgcrypt libtool openssl nss ];
+  nativeBuildInputs = [ makeWrapper pkgconfig ];
+
+  buildInputs = [ libxml2 gnutls libxslt libgcrypt libtool openssl nss ];
 
   enableParallelBuilding = true;
   doCheck = true;
diff --git a/pkgs/development/libraries/zeitgeist/default.nix b/pkgs/development/libraries/zeitgeist/default.nix
index 252bcd02faf..e759e65dfc6 100644
--- a/pkgs/development/libraries/zeitgeist/default.nix
+++ b/pkgs/development/libraries/zeitgeist/default.nix
@@ -19,7 +19,8 @@ stdenv.mkDerivation rec {
 
   configureFlags = [ "--with-session-bus-services-dir=$(out)/share/dbus-1/services" ];
 
-  buildInputs = [ pkgconfig glib sqlite gnome3.gnome_common intltool
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ glib sqlite gnome3.gnome_common intltool
                   libtool dbus_libs telepathy_glib vala_0_23 dbus_glib
                   gtk3 json_glib librdf_raptor2 python2Packages.rdflib ];
 
diff --git a/pkgs/development/libraries/zimg/default.nix b/pkgs/development/libraries/zimg/default.nix
index 961220bb783..2c9d27a8b6a 100644
--- a/pkgs/development/libraries/zimg/default.nix
+++ b/pkgs/development/libraries/zimg/default.nix
@@ -11,7 +11,8 @@ stdenv.mkDerivation rec{
     sha256 = "11pk8a5manr751jhy0xrql57jzab57lwqjxbpd8kvm9m8b51icwq";
   };
 
-  buildInputs = [ autoreconfHook ];
+  nativeBuildInputs = [ autoreconfHook ];
+  buildInputs = [ ];
 
   meta = with stdenv.lib; {
     description = "Scaling, colorspace conversion and dithering library";