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/apache-activemq/default.nix4
-rw-r--r--pkgs/development/libraries/appstream-glib/default.nix10
-rw-r--r--pkgs/development/libraries/atk/default.nix14
-rw-r--r--pkgs/development/libraries/enchant/2.x.nix27
-rw-r--r--pkgs/development/libraries/farstream/default.nix16
-rw-r--r--pkgs/development/libraries/gdk-pixbuf/default.nix47
-rw-r--r--pkgs/development/libraries/geoclue/2.0.nix7
-rw-r--r--pkgs/development/libraries/glib-networking/default.nix28
-rw-r--r--pkgs/development/libraries/glib/default.nix4
-rw-r--r--pkgs/development/libraries/gobject-introspection/absolute_shlib_path.patch73
-rw-r--r--pkgs/development/libraries/gobject-introspection/default.nix4
-rw-r--r--pkgs/development/libraries/gtk+/3.x.nix15
-rw-r--r--pkgs/development/libraries/gtksourceview/3.x-nix_share_path.patch11
-rw-r--r--pkgs/development/libraries/gtksourceview/3.x.nix58
-rw-r--r--pkgs/development/libraries/gtksourceview/4.x-nix_share_path.patch11
-rw-r--r--pkgs/development/libraries/gtksourceview/4.x.nix54
-rw-r--r--pkgs/development/libraries/gtkspell/3.nix8
-rw-r--r--pkgs/development/libraries/gvfs/default.nix47
-rw-r--r--pkgs/development/libraries/libcloudproviders/default.nix4
-rw-r--r--pkgs/development/libraries/libcloudproviders/fix-include.patch11
-rw-r--r--pkgs/development/libraries/libdazzle/default.nix55
-rw-r--r--pkgs/development/libraries/libguestfs/appliance.nix7
-rw-r--r--pkgs/development/libraries/libguestfs/default.nix34
-rw-r--r--pkgs/development/libraries/libhttpseverywhere/default.nix10
-rw-r--r--pkgs/development/libraries/librsvg/default.nix11
-rw-r--r--pkgs/development/libraries/libsoup/default.nix38
-rw-r--r--pkgs/development/libraries/libvirt-glib/default.nix6
-rw-r--r--pkgs/development/libraries/libwnck/3.x.nix38
-rw-r--r--pkgs/development/libraries/libwnck/install_introspection_to_prefix.patch12
-rw-r--r--pkgs/development/libraries/mysocketw/default.nix11
-rw-r--r--pkgs/development/libraries/netcdf/default.nix4
-rw-r--r--pkgs/development/libraries/spice-gtk/default.nix3
-rw-r--r--pkgs/development/libraries/unixODBC/default.nix4
-rw-r--r--pkgs/development/libraries/webkitgtk/2.20.nix (renamed from pkgs/development/libraries/webkitgtk/2.18.nix)51
-rw-r--r--pkgs/development/libraries/webkitgtk/PR-152650-2.patch62
-rw-r--r--pkgs/development/libraries/webkitgtk/PR-153138.patch26
-rw-r--r--pkgs/development/libraries/webkitgtk/PR-157554.patch33
-rw-r--r--pkgs/development/libraries/webkitgtk/PR-157574.patch62
-rw-r--r--pkgs/development/libraries/webkitgtk/finding-harfbuzz-icu.patch52
-rw-r--r--pkgs/development/libraries/webkitgtk/gstreamergl-2.17.patch13
-rw-r--r--pkgs/development/libraries/xercesc/default.nix4
41 files changed, 515 insertions, 474 deletions
diff --git a/pkgs/development/libraries/apache-activemq/default.nix b/pkgs/development/libraries/apache-activemq/default.nix
index c71dced918ac..fc79cae36f83 100644
--- a/pkgs/development/libraries/apache-activemq/default.nix
+++ b/pkgs/development/libraries/apache-activemq/default.nix
@@ -2,10 +2,10 @@
 
 stdenv.mkDerivation rec {
   name = "apache-activemq-${version}";
-  version = "5.13.4";
+  version = "5.14.5";
 
   src = fetchurl {
-    sha256 = "0sp806bmv9vs19zbzlv71ag09p1jbl2wn2wpxfwa20mndri8lsmz";
+    sha256 = "0vm8z7rxb9n10xg5xjahy357704fw3q477hmpb83kd1zrc633g54";
     url = "mirror://apache/activemq/${version}/${name}-bin.tar.gz";
   };
 
diff --git a/pkgs/development/libraries/appstream-glib/default.nix b/pkgs/development/libraries/appstream-glib/default.nix
index 1ccfa85591f4..2499a424c85c 100644
--- a/pkgs/development/libraries/appstream-glib/default.nix
+++ b/pkgs/development/libraries/appstream-glib/default.nix
@@ -4,16 +4,16 @@
 , libuuid, json-glib, meson, gperf, ninja
 }:
 stdenv.mkDerivation rec {
-  name = "appstream-glib-0.7.6";
+  name = "appstream-glib-0.7.7";
 
-  outputs = [ "out" "dev" "man" ];
+  outputs = [ "out" "dev" "man" "installedTests" ];
   outputBin = "dev";
 
   src = fetchFromGitHub {
     owner = "hughsie";
     repo = "appstream-glib";
     rev = stdenv.lib.replaceStrings ["." "-"] ["_" "_"] name;
-    sha256 = "1nzm6w9n7fb2m06w88gwszaqf74bnip87ay0ca59wajq6y4mpfgv";
+    sha256 = "127m5ds355i1vfvmn9nd4zqqnqm16jpqcn4p2p2pvn7i4wqxra40";
   };
 
   nativeBuildInputs = [
@@ -39,6 +39,10 @@ stdenv.mkDerivation rec {
     "-Ddep11=false"
   ];
 
+  postInstall = ''
+    moveToOutput "share/installed-tests" "$installedTests"
+  '';
+
   meta = with stdenv.lib; {
     description = "Objects and helper methods to read and write AppStream metadata";
     homepage = https://people.freedesktop.org/~hughsient/appstream-glib/;
diff --git a/pkgs/development/libraries/atk/default.nix b/pkgs/development/libraries/atk/default.nix
index 9b1865d77f51..6f10c9c2f5a2 100644
--- a/pkgs/development/libraries/atk/default.nix
+++ b/pkgs/development/libraries/atk/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, pkgconfig, perl, glib, libintlOrEmpty, gobjectIntrospection, gnome3 }:
+{ stdenv, fetchurl, meson, ninja, gettext, pkgconfig, glib, libintlOrEmpty, gobjectIntrospection, gnome3 }:
 
 let
   pname = "atk";
@@ -12,19 +12,27 @@ stdenv.mkDerivation rec {
     sha256 = "1z7laf6qwv5zsqcnj222dm5f43c6f3liil0cgx4s4s62xjk1wfnd";
   };
 
-  enableParallelBuilding = true;
+  patches = [
+    # darwin linker arguments https://bugzilla.gnome.org/show_bug.cgi?id=794326
+    (fetchurl {
+      url = https://bugzilla.gnome.org/attachment.cgi?id=369680;
+      sha256 = "11v8fhpsbapa04ifb2268cga398vfk1nq8i628441632zjz1diwg";
+    })
+  ];
 
   outputs = [ "out" "dev" ];
 
   buildInputs = libintlOrEmpty;
 
-  nativeBuildInputs = [ pkgconfig perl gobjectIntrospection ];
+  nativeBuildInputs = [ meson ninja pkgconfig gettext gobjectIntrospection ];
 
   propagatedBuildInputs = [
     # Required by atk.pc
     glib
   ];
 
+  NIX_LDFLAGS = if stdenv.isDarwin then "-lintl" else null;
+
   doCheck = true;
 
   passthru = {
diff --git a/pkgs/development/libraries/enchant/2.x.nix b/pkgs/development/libraries/enchant/2.x.nix
new file mode 100644
index 000000000000..458b23c33e94
--- /dev/null
+++ b/pkgs/development/libraries/enchant/2.x.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchurl, aspell, pkgconfig, glib, hunspell, hspell }:
+
+let
+  version = "2.2.3";
+  pname = "enchant";
+in stdenv.mkDerivation rec {
+  name = "${pname}-${version}";
+
+  outputs = [ "out" "dev" ];
+
+  src = fetchurl {
+    url = "https://github.com/AbiWord/${pname}/releases/download/v${version}/${name}.tar.gz";
+    sha256 = "0v87p1ls0gym95qirijpclk650sjbkcjjl6ssk059zswcwaykn5b";
+  };
+
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ glib hunspell ];
+  propagatedBuildInputs = [ hspell aspell ]; # libtool puts it to la file
+
+  meta = with stdenv.lib; {
+    description = "Generic spell checking library";
+    homepage = https://abiword.github.io/enchant/;
+    license = licenses.lgpl21Plus; # with extra provision for non-free checkers
+    maintainers = with maintainers; [ jtojnar ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/development/libraries/farstream/default.nix b/pkgs/development/libraries/farstream/default.nix
index ebb581bdbccd..020d04542864 100644
--- a/pkgs/development/libraries/farstream/default.nix
+++ b/pkgs/development/libraries/farstream/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchurl, libnice, pkgconfig, pythonPackages, gstreamer, gst-plugins-base
-, gst-python, gupnp-igd
+, gst-python, gupnp-igd, gobjectIntrospection
 , gst-plugins-good, gst-plugins-bad, gst-libav
 }:
 
@@ -7,21 +7,25 @@ let
   inherit (pythonPackages) python pygobject2;
 in stdenv.mkDerivation rec {
   name = "farstream-0.2.8";
+
+  outputs = [ "out" "dev" ];
+
   src = fetchurl {
-    url = "http://www.freedesktop.org/software/farstream/releases/farstream/${name}.tar.gz";
+    url = "https://www.freedesktop.org/software/farstream/releases/farstream/${name}.tar.gz";
     sha256 = "0249ncd20x5mf884fd8bw75c3118b9fdml837v4fib349xmrqfrb";
   };
 
   buildInputs = [ libnice python pygobject2 gupnp-igd libnice ];
 
-  nativeBuildInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig gobjectIntrospection ];
 
-  propagatedBuildInputs = [ gstreamer gst-plugins-base gst-python
+  propagatedBuildInputs = [
+    gstreamer gst-plugins-base gst-python
     gst-plugins-good gst-plugins-bad gst-libav
-    ];
+  ];
 
   meta = {
-    homepage = http://www.freedesktop.org/wiki/Software/Farstream;
+    homepage = https://www.freedesktop.org/wiki/Software/Farstream;
     description = "Audio/Video Communications Framework formely known as farsight";
     maintainers = [ ];
     platforms = stdenv.lib.platforms.linux;
diff --git a/pkgs/development/libraries/gdk-pixbuf/default.nix b/pkgs/development/libraries/gdk-pixbuf/default.nix
index a1a9b10fca63..ace1d687a91b 100644
--- a/pkgs/development/libraries/gdk-pixbuf/default.nix
+++ b/pkgs/development/libraries/gdk-pixbuf/default.nix
@@ -1,40 +1,46 @@
-{ stdenv, fetchurl, pkgconfig, glib, libtiff, libjpeg, libpng, libX11, gnome3
-, jasper, libintlOrEmpty, gobjectIntrospection, doCheck ? false }:
+{ stdenv, fetchurl, meson, ninja, pkgconfig, gettext, python3, libxml2, libxslt, docbook_xsl
+, docbook_xml_dtd_43, gtk-doc, glib, libtiff, libjpeg, libpng, libX11, gnome3
+, jasper, shared-mime-info, libintlOrEmpty, gobjectIntrospection, doCheck ? false, makeWrapper }:
 
 let
   pname = "gdk-pixbuf";
-  version = "2.36.7";
-  # TODO: since 2.36.8 gdk-pixbuf gets configured to use mime-type sniffing,
-  # which apparently requires access to shared-mime-info files during runtime.
+  version = "2.36.11";
 in
 stdenv.mkDerivation rec {
   name = "${pname}-${version}";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${gnome3.versionBranch version}/${name}.tar.xz";
-    sha256 = "1b6e5eef09d98f05f383014ecd3503e25dfb03d7e5b5f5904e5a65b049a6a4d8";
+    sha256 = "1wz2vpciwdpdv612s8kbww08q80hgcs5dxrfsxp1a4q44n3snqmf";
   };
 
-  outputs = [ "out" "dev" "devdoc" ];
+  outputs = [ "out" "dev" "man" "devdoc" ];
 
   setupHook = ./setup-hook.sh;
 
   enableParallelBuilding = true;
 
   # !!! We might want to factor out the gdk-pixbuf-xlib subpackage.
-  buildInputs = [ libX11 gobjectIntrospection ] ++ libintlOrEmpty;
+  buildInputs = [ libX11 ] ++ stdenv.lib.optional (!stdenv.isDarwin) shared-mime-info ++ libintlOrEmpty;
 
-  nativeBuildInputs = [ pkgconfig ];
+  nativeBuildInputs = [
+    meson ninja pkgconfig gettext python3 libxml2 libxslt docbook_xsl docbook_xml_dtd_43
+    gtk-doc gobjectIntrospection makeWrapper
+  ];
 
   propagatedBuildInputs = [ glib libtiff libjpeg libpng jasper ];
 
-  configureFlags = "--with-libjasper --with-x11"
-    + stdenv.lib.optionalString (gobjectIntrospection != null) " --enable-introspection=yes"
-    ;
+  mesonFlags = [
+    # with_ & enable_will be removed in the future
+    "-Dwith_docs=true"
+    "-Denable_jasper=true"
+    "-Dx11=true" # will be added in the future (default atm)
+    "-Dwith_gir=${if gobjectIntrospection != null then "true" else "false"}"
+  ];
 
-  # on darwin, tests don't link
-  preBuild = stdenv.lib.optionalString (stdenv.isDarwin && !doCheck) ''
-    substituteInPlace Makefile --replace "docs tests" "docs"
+  postPatch = ''
+    chmod +x build-aux/* # patchShebangs only applies to executables
+    patchShebangs build-aux
   '';
 
   postInstall =
@@ -42,6 +48,17 @@ stdenv.mkDerivation rec {
     ''
       moveToOutput "bin" "$dev"
       moveToOutput "bin/gdk-pixbuf-thumbnailer" "$out"
+
+      # We require runtime access to shared-mime-info
+      ${stdenv.lib.optionalString (!stdenv.isDarwin) ''
+      for f in $dev/bin/*; do
+        wrapProgram $f --prefix XDG_DATA_DIRS : "${shared-mime-info}/share"
+      done
+      wrapProgram $out/bin/gdk-pixbuf-thumbnailer --prefix XDG_DATA_DIRS : "${shared-mime-info}/share"
+      ''}
+
+      # We need to install 'loaders.cache' in lib/gdk-pixbuf-2.0/2.10.0/
+      $dev/bin/gdk-pixbuf-query-loaders --update-cache
     '';
 
   # The tests take an excessive amount of time (> 1.5 hours) and memory (> 6 GB).
diff --git a/pkgs/development/libraries/geoclue/2.0.nix b/pkgs/development/libraries/geoclue/2.0.nix
index 66aa3b4a2188..b70163789dec 100644
--- a/pkgs/development/libraries/geoclue/2.0.nix
+++ b/pkgs/development/libraries/geoclue/2.0.nix
@@ -1,5 +1,5 @@
 { fetchurl, stdenv, intltool, libintlOrEmpty, pkgconfig, glib, json-glib, libsoup, geoip
-, dbus, dbus-glib, modemmanager, avahi, glib-networking, wrapGAppsHook
+, dbus, dbus-glib, modemmanager, avahi, glib-networking, wrapGAppsHook, gobjectIntrospection
 }:
 
 with stdenv.lib;
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
   outputs = [ "out" "dev" ];
 
   nativeBuildInputs = [
-    pkgconfig intltool wrapGAppsHook
+    pkgconfig intltool wrapGAppsHook gobjectIntrospection
   ];
 
   buildInputs = libintlOrEmpty ++
@@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
      substituteInPlace configure --replace "-Werror" ""
   '';
 
-  configureFlags = [ "--with-systemdsystemunitdir=$(out)/etc/systemd/system" ] ++
+  configureFlags = [ "--with-systemdsystemunitdir=$(out)/etc/systemd/system" "--enable-introspection" ] ++
                    optionals stdenv.isDarwin [
                        "--disable-silent-rules"
                        "--disable-3g-source"
@@ -45,6 +45,7 @@ stdenv.mkDerivation rec {
 
   meta = with stdenv.lib; {
     description = "Geolocation framework and some data providers";
+    homepage = https://freedesktop.org/wiki/Software/GeoClue/;
     maintainers = with maintainers; [ raskin garbas ];
     platforms = with platforms; linux ++ darwin;
     license = licenses.lgpl2;
diff --git a/pkgs/development/libraries/glib-networking/default.nix b/pkgs/development/libraries/glib-networking/default.nix
index 12a8469868bd..2e0e8cbb910e 100644
--- a/pkgs/development/libraries/glib-networking/default.nix
+++ b/pkgs/development/libraries/glib-networking/default.nix
@@ -1,33 +1,37 @@
-{ stdenv, fetchurl, pkgconfig, glib, intltool, gnutls, libproxy, gnome3
+{ stdenv, fetchurl, fetchpatch, meson, ninja, pkgconfig, glib, gettext, gnutls, p11-kit, libproxy, gnome3
 , gsettings-desktop-schemas }:
 
 let
   pname = "glib-networking";
-  version = "2.54.1";
+  version = "2.56.0";
 in
 stdenv.mkDerivation rec {
   name = "${pname}-${version}";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${gnome3.versionBranch version}/${name}.tar.xz";
-    sha256 = "0bq16m9nh3gcz9x2fvygr0iwxd2pxcbrm3lj3kihsnh1afv8g9za";
+    sha256 = "14vw8xwajd7m31bpavg2psk693plhjikwpk8bzf3jl1fmsy11za7";
   };
 
   outputs = [ "out" "dev" ]; # to deal with propagatedBuildInputs
 
-  configureFlags = if stdenv.isDarwin then "--without-ca-certificates"
-    else "--with-ca-certificates=/etc/ssl/certs/ca-certificates.crt";
+  patches = [
+    # Use GNUTLS system trust for certificates
+    (fetchpatch {
+      url = https://git.gnome.org/browse/glib-networking/patch/?id=f1c8feee014007cc913b71357acb609f8d1200df;
+      sha256 = "1rbxqsrcb5if3xs2d18pqzd9xnjysdj715ijc41n5w326fsawg7i";
+    })
+  ];
 
-  LDFLAGS = stdenv.lib.optionalString stdenv.isDarwin "-lintl";
+  PKG_CONFIG_GIO_2_0_GIOMODULEDIR = "${placeholder "out"}/lib/gio/modules";
 
-  preBuild = ''
-    sed -e "s@${glib.out}/lib/gio/modules@$out/lib/gio/modules@g" -i $(find . -name Makefile)
+  postPatch = ''
+    chmod +x meson_post_install.py # patchShebangs requires executable file
+    patchShebangs meson_post_install.py
   '';
 
-  nativeBuildInputs = [ pkgconfig intltool ];
-  propagatedBuildInputs = [ glib gnutls libproxy gsettings-desktop-schemas ];
-
-  NIX_LDFLAGS = stdenv.lib.optionalString stdenv.isDarwin "-lintl";
+  nativeBuildInputs = [ meson ninja pkgconfig gettext ];
+  propagatedBuildInputs = [ glib gnutls p11-kit libproxy gsettings-desktop-schemas ];
 
   doCheck = false; # tests need to access the certificates (among other things)
 
diff --git a/pkgs/development/libraries/glib/default.nix b/pkgs/development/libraries/glib/default.nix
index e5163e933e13..2c070ff3fa8c 100644
--- a/pkgs/development/libraries/glib/default.nix
+++ b/pkgs/development/libraries/glib/default.nix
@@ -42,7 +42,7 @@ let
     ln -sr -t "''${!outputInclude}/include/" "''${!outputInclude}"/lib/*/include/* 2>/dev/null || true
   '';
 
-  version = "2.54.3";
+  version = "2.56.0";
 in
 
 stdenv.mkDerivation rec {
@@ -50,7 +50,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "mirror://gnome/sources/glib/${gnome3.versionBranch version}/${name}.tar.xz";
-    sha256 = "963fdc6685dc3da8e5381dfb9f15ca4b5709b28be84d9d05a9bb8e446abac0a8";
+    sha256 = "1iqgi90fmpl3l23jm2iv44qp7hqsxvnv7978s18933bvx4bnxvzc";
   };
 
   patches = optional stdenv.isDarwin ./darwin-compilation.patch
diff --git a/pkgs/development/libraries/gobject-introspection/absolute_shlib_path.patch b/pkgs/development/libraries/gobject-introspection/absolute_shlib_path.patch
index 75d9281dfb0e..6a112aedcc05 100644
--- a/pkgs/development/libraries/gobject-introspection/absolute_shlib_path.patch
+++ b/pkgs/development/libraries/gobject-introspection/absolute_shlib_path.patch
@@ -1,8 +1,6 @@
-diff --git a/giscanner/scannermain.py b/giscanner/scannermain.py
-index 89ec193..54f1d2e 100755
 --- a/giscanner/scannermain.py
 +++ b/giscanner/scannermain.py
-@@ -94,6 +94,39 @@ def get_windows_option_group(parser):
+@@ -100,6 +100,39 @@
      return group
  
  
@@ -42,7 +40,7 @@ index 89ec193..54f1d2e 100755
  def _get_option_parser():
      parser = optparse.OptionParser('%prog [options] sources')
      parser.add_option('', "--quiet",
-@@ -200,6 +233,10 @@ match the namespace prefix.""")
+@@ -209,6 +242,10 @@
      parser.add_option("", "--filelist",
                        action="store", dest="filelist", default=[],
                        help="file containing headers and sources to be scanned")
@@ -53,57 +51,50 @@ index 89ec193..54f1d2e 100755
  
      group = get_preprocessor_option_group(parser)
      parser.add_option_group(group)
-diff --git a/giscanner/shlibs.py b/giscanner/shlibs.py
-index 838d343..ca7fc0d 100644
 --- a/giscanner/shlibs.py
 +++ b/giscanner/shlibs.py
-@@ -53,10 +53,27 @@ def _resolve_libtool(options, binary, libraries):
- # Match absolute paths on OS X to conform to how libraries are usually
- # referenced on OS X systems.
- def _ldd_library_pattern(library_name):
-+    nix_store_dir = re.escape('@nixStoreDir@'.rstrip('/'))
-     pattern = "(?<![A-Za-z0-9_-])(lib*%s[^A-Za-z0-9_-][^\s\(\)]*)"
-     if platform.system() == 'Darwin':
+@@ -63,6 +63,11 @@
          pattern = "([^\s]*lib*%s[^A-Za-z0-9_-][^\s\(\)]*)"
--    return re.compile(pattern % re.escape(library_name))
-+        return re.compile(pattern % re.escape(library_name))
-+    pattern = r'''
-+        (
-+          (?:
-+            # First match Nix store paths because they need to be absolute.
-+            (?:%s(?:/[^/]*)+)
-+            # Everything else not a store path remains relative, because we
-+            # would end up with temporary paths that are only valid during
-+            # build time in the resulting GIR file.
-+            | (?<=/)
-+          )
-+          # And finally the library itself:
-+          (?:lib%s[^A-Za-z0-9_-][^\s\(\)]*)
-+        )
-+    '''
-+    return re.compile(pattern % (nix_store_dir, re.escape(library_name)),
-+                      re.VERBOSE)
+     return re.compile(pattern % re.escape(library_name))
  
++def _ldd_library_nix_pattern(library_name):
++    nix_store_dir = re.escape('@nixStoreDir@'.rstrip('/'))
++    pattern = r'(%s(?:/[^/]*)+lib%s[^A-Za-z0-9_-][^\s\(\)]*)'
++    return re.compile(pattern % (nix_store_dir, re.escape(library_name)))
++
  
  # This is a what we do for non-la files. We assume that we are on an
-@@ -115,7 +132,11 @@ def _resolve_non_libtool(options, binary, libraries):
-                 m = pattern.search(line)
+ # ELF-like system where ldd exists and the soname extracted with ldd is
+@@ -112,7 +117,7 @@
+         proc = subprocess.Popen(args, stdout=subprocess.PIPE)
+         patterns = {}
+         for library in libraries:
+-            patterns[library] = _ldd_library_pattern(library)
++            patterns[library] = (_ldd_library_pattern(library), _ldd_library_nix_pattern(library))
+ 
+         shlibs = []
+         for line in proc.stdout:
+@@ -122,11 +127,14 @@
+             # possible for the name of the binary to match _ldd_library_pattern.
+             if line == binary.args[0] + ':\n':
+                 continue
+-            for library, pattern in patterns.items():
+-                m = pattern.search(line)
++            for library, (pattern, nix_pattern) in patterns.items():
++                if line.find('@nixStoreDir@') != -1:
++                    m = nix_pattern.search(line)
++                else:
++                    m = pattern.search(line)
                  if m:
                      del patterns[library]
 -                    shlibs.append(m.group(1))
-+                    match = m.group(1)
-+                    if not match.startswith('/') \
-+                       and len(options.fallback_libpath) > 0:
-+                        match = os.path.join(options.fallback_libpath, match)
-+                    shlibs.append(match)
++                    shlibs.append(os.path.join(options.fallback_libpath, m.group(1)))
                      break
  
          if len(patterns) > 0:
-diff --git a/giscanner/utils.py b/giscanner/utils.py
-index 660081e..c9c767a 100644
 --- a/giscanner/utils.py
 +++ b/giscanner/utils.py
-@@ -109,17 +109,11 @@ def extract_libtool_shlib(la_file):
+@@ -113,17 +113,11 @@
      if dlname is None:
          return None
  
diff --git a/pkgs/development/libraries/gobject-introspection/default.nix b/pkgs/development/libraries/gobject-introspection/default.nix
index 825d66699071..3c884bb1224a 100644
--- a/pkgs/development/libraries/gobject-introspection/default.nix
+++ b/pkgs/development/libraries/gobject-introspection/default.nix
@@ -9,7 +9,7 @@
 
 let
   pname = "gobject-introspection";
-  version = "1.54.1";
+  version = "1.56.0";
 in
 with stdenv.lib;
 stdenv.mkDerivation rec {
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${gnome3.versionBranch version}/${name}.tar.xz";
-    sha256 = "0zl7pfkzkm07733391b4f3cwjbnvb1nwvpmajf5bajh6bxgfv3dq";
+    sha256 = "1y50pbn5qqbcv2h9rkz96wvv5jls2gma9bkqjq6wapmaszx5jw0d";
   };
 
   outputs = [ "out" "dev" ];
diff --git a/pkgs/development/libraries/gtk+/3.x.nix b/pkgs/development/libraries/gtk+/3.x.nix
index 189af86708ef..c96139ddb576 100644
--- a/pkgs/development/libraries/gtk+/3.x.nix
+++ b/pkgs/development/libraries/gtk+/3.x.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, fetchpatch, pkgconfig, gettext, perl
+{ stdenv, fetchurl, fetchpatch, pkgconfig, gettext, perl, makeWrapper, shared-mime-info
 , expat, glib, cairo, pango, gdk_pixbuf, atk, at-spi2-atk, gobjectIntrospection
 , xorg, epoxy, json-glib, libxkbcommon, gmp
 , waylandSupport ? stdenv.isLinux, wayland, wayland-protocols
@@ -11,19 +11,21 @@ assert cupsSupport -> cups != null;
 
 with stdenv.lib;
 
+let
+  version = "3.22.29";
+in
 stdenv.mkDerivation rec {
   name = "gtk+3-${version}";
-  version = "3.22.28";
 
   src = fetchurl {
     url = "mirror://gnome/sources/gtk+/${gnome3.versionBranch version}/gtk+-${version}.tar.xz";
-    sha256 = "d299612b018cfed7b2c689168ab52b668023708e17c335eb592260d186f15e1f";
+    sha256 = "1y5vzdbgww9l7xcrg13azff2rs94kggkywmpcsh39h7w76wn8zd0";
   };
 
   outputs = [ "out" "dev" ];
   outputBin = "dev";
 
-  nativeBuildInputs = [ pkgconfig gettext gobjectIntrospection perl ];
+  nativeBuildInputs = [ pkgconfig gettext gobjectIntrospection perl makeWrapper ];
 
   patches = [
     ./3.0-immodules.cache.patch
@@ -70,6 +72,11 @@ stdenv.mkDerivation rec {
     moveToOutput bin/gtk-update-icon-cache "$out"
     # Launcher
     moveToOutput bin/gtk-launch "$out"
+
+    # TODO: patch glib directly
+    for f in $dev/bin/gtk-encode-symbolic-svg; do
+      wrapProgram $f --prefix XDG_DATA_DIRS : "${shared-mime-info}/share"
+    done
   '';
 
   passthru = {
diff --git a/pkgs/development/libraries/gtksourceview/3.x-nix_share_path.patch b/pkgs/development/libraries/gtksourceview/3.x-nix_share_path.patch
new file mode 100644
index 000000000000..c87350167c25
--- /dev/null
+++ b/pkgs/development/libraries/gtksourceview/3.x-nix_share_path.patch
@@ -0,0 +1,11 @@
+--- a/gtksourceview/gtksourceview-utils.c	2014-07-13 16:13:57.418687726 +0200
++++ b/gtksourceview/gtksourceview-utils.c	2014-07-13 16:14:20.550847767 +0200
+@@ -68,6 +68,8 @@
+ 							 basename,
+ 							 NULL));
+ 
++        g_ptr_array_add (dirs, g_build_filename ("@NIX_SHARE_PATH@", SOURCEVIEW_DIR, basename, NULL));
++
+ 	g_ptr_array_add (dirs, NULL);
+ 
+ 	return (gchar**) g_ptr_array_free (dirs, FALSE);
diff --git a/pkgs/development/libraries/gtksourceview/3.x.nix b/pkgs/development/libraries/gtksourceview/3.x.nix
new file mode 100644
index 000000000000..608c6e7eacd2
--- /dev/null
+++ b/pkgs/development/libraries/gtksourceview/3.x.nix
@@ -0,0 +1,58 @@
+{ stdenv, fetchurl, pkgconfig, atk, cairo, glib, gtk3, pango, vala_0_40
+, libxml2, perl, intltool, gettext, gnome3, gobjectIntrospection, dbus, xvfb_run, shared-mime-info }:
+
+let
+  checkInputs = [ xvfb_run dbus ];
+in stdenv.mkDerivation rec {
+  name = "gtksourceview-${version}";
+  version = "3.24.6";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/gtksourceview/${gnome3.versionBranch version}/${name}.tar.xz";
+    sha256 = "7aa6bdfebcdc73a763dddeaa42f190c40835e6f8495bb9eb8f78587e2577c188";
+  };
+
+  propagatedBuildInputs = [
+    # Required by gtksourceview-3.0.pc
+    gtk3
+    # Used by gtk_source_language_manager_guess_language
+    shared-mime-info
+  ];
+
+  outputs = [ "out" "dev" ];
+
+  nativeBuildInputs = [ pkgconfig intltool gettext perl gobjectIntrospection vala_0_40 ]
+    ++ stdenv.lib.optionals doCheck checkInputs;
+
+  buildInputs = [ atk cairo glib pango libxml2 ];
+
+  preBuild = ''
+    substituteInPlace gtksourceview/gtksourceview-utils.c --replace "@NIX_SHARE_PATH@" "$out/share"
+  '';
+
+  patches = [ ./3.x-nix_share_path.patch ];
+
+  enableParallelBuilding = true;
+
+  doCheck = stdenv.isLinux;
+  checkPhase = ''
+    export NO_AT_BRIDGE=1
+    xvfb-run -s '-screen 0 800x600x24' dbus-run-session \
+      --config-file=${dbus.daemon}/share/dbus-1/session.conf \
+      make check
+  '';
+
+  passthru = {
+    updateScript = gnome3.updateScript {
+      packageName = "gtksourceview";
+      attrPath = "gnome3.gtksourceview";
+    };
+  };
+
+  meta = with stdenv.lib; {
+    homepage = https://wiki.gnome.org/Projects/GtkSourceView;
+    platforms = with platforms; linux ++ darwin;
+    license = licenses.lgpl21;
+    maintainers = gnome3.maintainers;
+  };
+}
diff --git a/pkgs/development/libraries/gtksourceview/4.x-nix_share_path.patch b/pkgs/development/libraries/gtksourceview/4.x-nix_share_path.patch
new file mode 100644
index 000000000000..a35d9a88d0df
--- /dev/null
+++ b/pkgs/development/libraries/gtksourceview/4.x-nix_share_path.patch
@@ -0,0 +1,11 @@
+--- a/gtksourceview/gtksourceutils.c
++++ b/gtksourceview/gtksourceutils.c
+@@ -232,6 +232,8 @@
+ 							 NULL));
+ 	}
+ 
++	g_ptr_array_add (dirs, g_build_filename (DATADIR, GSV_DATA_SUBDIR, basename, NULL));
++
+ 	g_ptr_array_add (dirs, NULL);
+ 
+ 	return (gchar **) g_ptr_array_free (dirs, FALSE);
diff --git a/pkgs/development/libraries/gtksourceview/4.x.nix b/pkgs/development/libraries/gtksourceview/4.x.nix
new file mode 100644
index 000000000000..2501e0253b39
--- /dev/null
+++ b/pkgs/development/libraries/gtksourceview/4.x.nix
@@ -0,0 +1,54 @@
+{ stdenv, fetchurl, pkgconfig, atk, cairo, glib, gtk3, pango, vala_0_40
+, libxml2, perl, gettext, gnome3, gobjectIntrospection, dbus, xvfb_run, shared-mime-info }:
+
+let
+  checkInputs = [ xvfb_run dbus ];
+in stdenv.mkDerivation rec {
+  name = "gtksourceview-${version}";
+  version = "4.0.0";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/gtksourceview/${gnome3.versionBranch version}/${name}.tar.xz";
+    sha256 = "0amkspjsvxr3rjznmnwjwsgw030hayf6bw49ya4nligslwl7lp3f";
+  };
+
+  propagatedBuildInputs = [
+    # Required by gtksourceview-4.0.pc
+    gtk3
+    # Used by gtk_source_language_manager_guess_language
+    shared-mime-info
+  ];
+
+  outputs = [ "out" "dev" ];
+
+  nativeBuildInputs = [ pkgconfig gettext perl gobjectIntrospection vala_0_40 ]
+    ++ stdenv.lib.optionals doCheck checkInputs;
+
+  buildInputs = [ atk cairo glib pango libxml2 ];
+
+  patches = [ ./4.x-nix_share_path.patch ];
+
+  enableParallelBuilding = true;
+
+  doCheck = stdenv.isLinux;
+  checkPhase = ''
+    export NO_AT_BRIDGE=1
+    xvfb-run -s '-screen 0 800x600x24' dbus-run-session \
+      --config-file=${dbus.daemon}/share/dbus-1/session.conf \
+      make check
+  '';
+
+  passthru = {
+    updateScript = gnome3.updateScript {
+      packageName = "gtksourceview";
+      attrPath = "gnome3.gtksourceview";
+    };
+  };
+
+  meta = with stdenv.lib; {
+    homepage = https://wiki.gnome.org/Projects/GtkSourceView;
+    platforms = with platforms; linux ++ darwin;
+    license = licenses.lgpl21;
+    maintainers = gnome3.maintainers;
+  };
+}
diff --git a/pkgs/development/libraries/gtkspell/3.nix b/pkgs/development/libraries/gtkspell/3.nix
index 2e6ecd7b5204..90bc4fc7f820 100644
--- a/pkgs/development/libraries/gtkspell/3.nix
+++ b/pkgs/development/libraries/gtkspell/3.nix
@@ -1,18 +1,22 @@
-{stdenv, fetchurl, gtk3, aspell, pkgconfig, enchant, isocodes, intltool}:
+{stdenv, fetchurl, gtk3, aspell, pkgconfig, enchant, isocodes, intltool, gobjectIntrospection}:
 
 stdenv.mkDerivation rec {
   name = "gtkspell-${version}";
   version = "3.0.9";
 
+  outputs = [ "out" "dev" ];
+
   src = fetchurl {
     url = "mirror://sourceforge/gtkspell/gtkspell3-${version}.tar.xz";
     sha256 = "09jdicmpipmj4v84gnkqwbmj4lh8v0i6pn967rb9jx4zg2ia9x54";
   };
 
-  nativeBuildInputs = [ pkgconfig intltool ];
+  nativeBuildInputs = [ pkgconfig intltool gobjectIntrospection ];
   buildInputs = [ aspell gtk3 enchant isocodes ];
   propagatedBuildInputs = [ enchant ];
 
+  configureFlags = [ "--enable-introspection" ];
+
   meta = with stdenv.lib; {
     homepage = http://gtkspell.sourceforge.net/;
     description = "Word-processor-style highlighting GtkTextView widget";
diff --git a/pkgs/development/libraries/gvfs/default.nix b/pkgs/development/libraries/gvfs/default.nix
index 964344d68922..b0b2d21e2bd4 100644
--- a/pkgs/development/libraries/gvfs/default.nix
+++ b/pkgs/development/libraries/gvfs/default.nix
@@ -1,37 +1,58 @@
-{ stdenv, fetchurl, pkgconfig, intltool, libtool, gnome3
-, glib, dbus, udev, libgudev, udisks2, libgcrypt, libcap, polkit
-, libgphoto2, avahi, libarchive, fuse, libcdio, file, bzip2, lzma
+{ stdenv, meson, ninja, fetchurl, pkgconfig, gettext, gnome3
+, glib, libgudev, udisks2, libgcrypt, libcap, polkit
+, libgphoto2, avahi, libarchive, fuse, libcdio
 , libxml2, libxslt, docbook_xsl, docbook_xml_dtd_42, samba, libmtp
-, gnomeSupport ? false, gnome, makeWrapper }:
+, gnomeSupport ? false, gnome, makeWrapper
+, libimobiledevice, libbluray, libcdio-paranoia, libnfs, openssh
+, libsecret, libgdata
+}:
 
 let
   pname = "gvfs";
-  version = "1.34.2.1";
+  version = "1.36.0";
 in
 stdenv.mkDerivation rec {
   name = "${pname}-${version}";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${gnome3.versionBranch version}/${name}.tar.xz";
-    sha256 = "1smmzix8wqrmj10pqy3xhrlv7xza6rpmg2v052gwk9ysxdric9fm";
+    sha256 = "1fsn6aa9a68cfbna9s00l1ry4ym1fr7ii2f45hzj2fipxfpqihwy";
   };
 
+  postPatch = ''
+    chmod +x meson_post_install.py # patchShebangs requires executable file
+    patchShebangs meson_post_install.py
+  '';
+
   nativeBuildInputs = [
-    pkgconfig intltool libtool file makeWrapper
+    meson ninja
+    pkgconfig gettext makeWrapper
     libxml2 libxslt docbook_xsl docbook_xml_dtd_42
   ];
 
   buildInputs =
-    [ glib dbus udev libgudev udisks2 libgcrypt
-      libgphoto2 avahi libarchive fuse libcdio lzma bzip2
-      samba libmtp libcap polkit
+    [ glib libgudev udisks2 libgcrypt
+      libgphoto2 avahi libarchive fuse libcdio
+      samba libmtp libcap polkit libimobiledevice libbluray
+      libcdio-paranoia libnfs openssh
       # ToDo: a ligther version of libsoup to have FTP/HTTP support?
     ] ++ stdenv.lib.optionals gnomeSupport (with gnome; [
-      libsoup libgnome-keyring gconf gcr
-      # ToDo: not working and probably useless until gnome3 from x-updates
+      libsoup gcr
+      gnome-online-accounts libsecret libgdata
     ]);
 
-  configureFlags = stdenv.lib.optional (!gnomeSupport) "--disable-gcr";
+  mesonFlags = [
+    "-Dgio_module_dir=${placeholder "out"}/lib/gio/modules"
+    "-Dsystemduserunitdir=${placeholder "out"}/lib/systemd/user"
+    "-Ddbus_service_dir=${placeholder "out"}/share/dbus-1/services"
+    "-Dtmpfilesdir=no"
+  ] ++ stdenv.lib.optionals (!gnomeSupport) [
+    "-Dgcr=false" "-Dgoa=false" "-Dkeyring=false" "-Dhttp=false"
+    "-Dgoogle=false"
+  ] ++ stdenv.lib.optionals (samba == null) [
+    # Xfce don't want samba
+    "-Dsmb=false"
+  ];
 
   enableParallelBuilding = true;
 
diff --git a/pkgs/development/libraries/libcloudproviders/default.nix b/pkgs/development/libraries/libcloudproviders/default.nix
index 6f7a79f9eeac..fc857bf1ad46 100644
--- a/pkgs/development/libraries/libcloudproviders/default.nix
+++ b/pkgs/development/libraries/libcloudproviders/default.nix
@@ -13,6 +13,10 @@ in stdenv.mkDerivation rec {
     sha256 = "1c3vfg8wlsv0fmi1lm9qhsqdvp4k33yvwn6j680rh49laayf7k3g";
   };
 
+  patches = [
+    ./fix-include.patch
+  ];
+
   outputs = [ "out" "dev" "devdoc" ];
 
   mesonFlags = [
diff --git a/pkgs/development/libraries/libcloudproviders/fix-include.patch b/pkgs/development/libraries/libcloudproviders/fix-include.patch
new file mode 100644
index 000000000000..d6f626436a62
--- /dev/null
+++ b/pkgs/development/libraries/libcloudproviders/fix-include.patch
@@ -0,0 +1,11 @@
+--- a/meson.build
++++ b/meson.build
+@@ -46,7 +46,7 @@
+ bindir = get_option ('bindir')
+ datadir = get_option ('datadir')
+ servicedir = join_paths (datadir, 'dbus-1', 'services')
+-incdir = join_paths (prefix, 'include', 'cloudproviders')
++incdir = join_paths (prefix, get_option('includedir'), 'cloudproviders')
+ 
+ gnome = import('gnome')
+ 
diff --git a/pkgs/development/libraries/libdazzle/default.nix b/pkgs/development/libraries/libdazzle/default.nix
new file mode 100644
index 000000000000..50f03f3ac7ac
--- /dev/null
+++ b/pkgs/development/libraries/libdazzle/default.nix
@@ -0,0 +1,55 @@
+{ stdenv, pkgs, fetchurl, ninja, meson, pkgconfig, vala, gobjectIntrospection, libxml2
+, gtk-doc, docbook_xsl, dbus, xvfb_run, glib, gtk3, gnome3 }:
+
+let
+  version = "3.28.0";
+  pname = "libdazzle";
+in
+stdenv.mkDerivation {
+  name = "${pname}-${version}";
+
+  outputs = [ "out" "dev" "devdoc" ];
+  outputBin = "dev";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/libdazzle/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
+    sha256 = "0zq37i7gnmnc7qfngzhj71nqhf2wxl4m247s2ym9ykakxbi6zajp";
+  };
+
+  nativeBuildInputs = [ ninja meson pkgconfig vala gobjectIntrospection libxml2 gtk-doc docbook_xsl dbus xvfb_run ];
+  buildInputs = [ glib gtk3 ];
+
+  mesonFlags = [
+    "-Denable_gtk_doc=true"
+  ];
+
+  doCheck = true;
+
+  checkPhase = ''
+    export NO_AT_BRIDGE=1
+    xvfb-run -s '-screen 0 800x600x24' dbus-run-session \
+      --config-file=${dbus.daemon}/share/dbus-1/session.conf \
+      meson test --print-errorlogs
+  '';
+
+  passthru = {
+    updateScript = gnome3.updateScript {
+      packageName = pname;
+    };
+  };
+
+  meta = with stdenv.lib; {
+    description = "A library to delight your users with fancy features";
+    longDescription = ''
+      The libdazzle library is a companion library to GObject and Gtk+. It
+      provides various features that we wish were in the underlying library but
+      cannot for various reasons. In most cases, they are wildly out of scope
+      for those libraries. In other cases, our design isn't quite generic
+      enough to work for everyone.
+    '';
+    homepage = https://wiki.gnome.org/Apps/Builder;
+    license = licenses.gpl3Plus;
+    maintainers = gnome3.maintainers;
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/development/libraries/libguestfs/appliance.nix b/pkgs/development/libraries/libguestfs/appliance.nix
new file mode 100644
index 000000000000..d47b0902818d
--- /dev/null
+++ b/pkgs/development/libraries/libguestfs/appliance.nix
@@ -0,0 +1,7 @@
+{ fetchzip }:
+
+fetchzip {
+  name = "libguestfs-appliance-1.38.0";
+  url = "http://libguestfs.org/download/binaries/appliance/appliance-1.38.0.tar.xz";
+  sha256 = "15rxwj5qjflizxk7slpbrj9lcwkd2lgm52f5yv101qba4yyn3g76";
+}
diff --git a/pkgs/development/libraries/libguestfs/default.nix b/pkgs/development/libraries/libguestfs/default.nix
index d7d0fbe8094d..258157c11789 100644
--- a/pkgs/development/libraries/libguestfs/default.nix
+++ b/pkgs/development/libraries/libguestfs/default.nix
@@ -3,19 +3,16 @@
 , acl, libcap, libcap_ng, libconfig, systemd, fuse, yajl, libvirt, hivex
 , gmp, readline, file, libintlperl, GetoptLong, SysVirt, numactl, xen, libapparmor
 , getopt, perlPackages, ocamlPackages
+, appliance ? null
 , javaSupport ? false, jdk ? null }:
 
+assert appliance == null || stdenv.lib.isDerivation appliance;
 assert javaSupport -> jdk != null;
 
 stdenv.mkDerivation rec {
   name = "libguestfs-${version}";
   version = "1.38.0";
 
-  appliance = fetchurl {
-    url = "http://libguestfs.org/download/binaries/appliance/appliance-1.38.0.tar.xz";
-    sha256 = "05481qxgidakga871yb5rgpyci2jaxmplmkh6y79anfh5m19nzhy";
-  };
-
   src = fetchurl {
     url = "http://libguestfs.org/download/1.38-stable/libguestfs-${version}.tar.gz";
     sha256 = "0cgapiad3x5ggwm097mq62hng3bv91p5gmrikrb6adfaasr1l6m3";
@@ -54,14 +51,31 @@ stdenv.mkDerivation rec {
   postInstall = ''
     for bin in $out/bin/*; do
       wrapProgram "$bin" \
-        --prefix "PATH" : "$out/bin:${hivex}/bin:${qemu}/bin" \
-        --prefix "PERL5LIB" : "$PERL5LIB:$out/lib/perl5/site_perl"
+        --prefix PATH     : "$out/bin:${hivex}/bin:${qemu}/bin" \
+        --prefix PERL5LIB : "$out/lib/perl5/site_perl"
     done
   '';
 
-  postFixup = ''
-    mkdir -p "$out/lib/guestfs"
-    tar -Jxvf "$appliance" --strip 1 -C "$out/lib/guestfs"
+  postFixup = stdenv.lib.optionalString (appliance != null) ''
+    mkdir -p $out/{lib,lib64}
+    ln -s ${appliance} $out/lib64/guestfs
+    ln -s ${appliance} $out/lib/guestfs
+  '';
+
+  doInstallCheck = true;
+  installCheckPhase = ''
+    export HOME=$(mktemp -d) # avoid access to /homeless-shelter/.guestfish
+
+    ${qemu}/bin/qemu-img create -f qcow2 disk1.img 10G
+
+    $out/bin/guestfish <<'EOF'
+    add-drive disk1.img
+    run
+    list-filesystems
+    part-disk /dev/sda mbr
+    mkfs ext2 /dev/sda1
+    list-filesystems
+    EOF
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/development/libraries/libhttpseverywhere/default.nix b/pkgs/development/libraries/libhttpseverywhere/default.nix
index c674b155fd10..6af3f5225d4d 100644
--- a/pkgs/development/libraries/libhttpseverywhere/default.nix
+++ b/pkgs/development/libraries/libhttpseverywhere/default.nix
@@ -1,18 +1,18 @@
-{ stdenv, fetchurl, pkgconfig, meson, ninja, valadoc
+{ stdenv, fetchurl, pkgconfig, meson, ninja, makeFontsConf
 , gnome3, glib, json-glib, libarchive, libsoup, gobjectIntrospection }:
 
 let
   pname = "libhttpseverywhere";
-  version = "0.8.0";
+  version = "0.8.2";
 in stdenv.mkDerivation rec {
   name = "${pname}-${version}";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${gnome3.versionBranch version}/${name}.tar.xz";
-    sha256 = "0igq7g84kfczips3ywhyprxc8v67yrg3kj8lbgny4yyll67kksj3";
+    sha256 = "0vcnimlfcscyvjbh845xbnjb9qc8x0mliaqz2gczxxpakxrbl3gh";
   };
 
-  nativeBuildInputs = [ gnome3.vala gobjectIntrospection meson ninja pkgconfig valadoc ];
+  nativeBuildInputs = [ gnome3.vala gobjectIntrospection meson ninja pkgconfig ];
   buildInputs = [ glib gnome3.libgee json-glib libsoup libarchive ];
 
   mesonFlags = [ "-Denable_valadoc=true" ];
@@ -21,6 +21,8 @@ in stdenv.mkDerivation rec {
 
   checkPhase = "(cd test && ./httpseverywhere_test)";
 
+  FONTCONFIG_FILE = makeFontsConf { fontDirectories = [ ]; };
+
   outputs = [ "out" "devdoc" ];
 
   passthru = {
diff --git a/pkgs/development/libraries/librsvg/default.nix b/pkgs/development/libraries/librsvg/default.nix
index 31e9e06dacb5..4bb4db104382 100644
--- a/pkgs/development/libraries/librsvg/default.nix
+++ b/pkgs/development/libraries/librsvg/default.nix
@@ -1,9 +1,7 @@
 { lib, stdenv, fetchurl, pkgconfig, glib, gdk_pixbuf, pango, cairo, libxml2, libgsf
 , bzip2, libcroco, libintlOrEmpty, darwin, rust, gnome3
 , withGTK ? false, gtk3 ? null
-, gobjectIntrospection ? null, enableIntrospection ? false }:
-
-# no introspection by default, it's too big
+, vala, gobjectIntrospection }:
 
 let
   pname = "librsvg";
@@ -21,17 +19,16 @@ stdenv.mkDerivation rec {
 
   outputs = [ "out" "dev" ];
 
-  buildInputs = [ libxml2 libgsf bzip2 libcroco pango libintlOrEmpty ]
-    ++ stdenv.lib.optional enableIntrospection gobjectIntrospection;
+  buildInputs = [ libxml2 libgsf bzip2 libcroco pango libintlOrEmpty ];
 
   propagatedBuildInputs = [ glib gdk_pixbuf cairo ] ++ lib.optional withGTK gtk3;
 
-  nativeBuildInputs = [ pkgconfig rust.rustc rust.cargo ]
+  nativeBuildInputs = [ pkgconfig rust.rustc rust.cargo vala gobjectIntrospection ]
     ++ lib.optionals stdenv.isDarwin (with darwin.apple_sdk.frameworks; [
       ApplicationServices
     ]);
 
-  configureFlags = [ "--enable-introspection=auto" ]
+  configureFlags = [ "--enable-introspection" "--enable-vala" ]
     ++ stdenv.lib.optional stdenv.isDarwin "--disable-Bsymbolic";
 
   NIX_CFLAGS_COMPILE
diff --git a/pkgs/development/libraries/libsoup/default.nix b/pkgs/development/libraries/libsoup/default.nix
index 46b9273094a7..dad245d0791e 100644
--- a/pkgs/development/libraries/libsoup/default.nix
+++ b/pkgs/development/libraries/libsoup/default.nix
@@ -1,18 +1,18 @@
-{ stdenv, fetchurl, fetchpatch, glib, libxml2, pkgconfig, gnome3
-, gnomeSupport ? true, libgnome-keyring3, sqlite, glib-networking, gobjectIntrospection
-, valaSupport ? true, vala_0_38
+{ stdenv, fetchurl, glib, libxml2, pkgconfig, gnome3
+, gnomeSupport ? true, sqlite, glib-networking, gobjectIntrospection
+, valaSupport ? true, vala_0_40
 , libintlOrEmpty
-, intltool, python }:
+, intltool, python3 }:
 let
   pname = "libsoup";
-  version = "2.60.2";
+  version = "2.62.0";
 in
 stdenv.mkDerivation rec {
   name = "${pname}-${version}";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${gnome3.versionBranch version}/${name}.tar.xz";
-    sha256 = "7263cfe18872e2e652c196f5667e514616d9c97c861dfca82a65a55f45f0da01";
+    sha256 = "1b5aff1igbsx1h4v3wmkffvzgiy8rscibqka7fmjf2lxs7l7lz5b";
   };
 
   prePatch = ''
@@ -22,27 +22,19 @@ stdenv.mkDerivation rec {
      substituteInPlace libsoup/Makefile.in --replace "\$(DESTDIR)\$(vapidir)" "\$(DESTDIR)\$(girdir)/../vala/vapi"
   '';
 
-  patches = [
-    # remove for >= 2.60.3
-    (fetchpatch {
-      name = "buffer-overflow.patch"; # https://bugzilla.gnome.org/show_bug.cgi?id=788037
-      url = "https://git.gnome.org/browse/libsoup/patch/?id=b79689833ba";
-      sha256 = "1azbk540mbm4c6ip54ixbg9d6w7nkls9y81fzm3csq9a5786r3d3";
-    })
-  ];
-
   outputs = [ "out" "dev" ];
 
-  buildInputs = libintlOrEmpty ++ [ intltool python sqlite ]
-    ++ stdenv.lib.optionals valaSupport [ vala_0_38 ];
-  nativeBuildInputs = [ pkgconfig ];
-  propagatedBuildInputs = [ glib libxml2 gobjectIntrospection ]
-    ++ stdenv.lib.optionals gnomeSupport [ libgnome-keyring3 ];
+  buildInputs = libintlOrEmpty ++ [ python3 sqlite ];
+  nativeBuildInputs = [ pkgconfig intltool gobjectIntrospection ]
+    ++ stdenv.lib.optionals valaSupport [ vala_0_40 ];
+  propagatedBuildInputs = [ glib libxml2 ];
 
   # glib-networking is a runtime dependency, not a compile-time dependency
-  configureFlags = "--disable-tls-check"
-    + " --enable-vala=${if valaSupport then "yes" else "no"}"
-    + stdenv.lib.optionalString (!gnomeSupport) " --without-gnome";
+  configureFlags = [
+    "--disable-tls-check"
+    "--enable-vala=${if valaSupport then "yes" else "no"}"
+    "--with-gnome=${if gnomeSupport then "yes" else "no"}"
+  ];
 
   NIX_CFLAGS_COMPILE = stdenv.lib.optionalString stdenv.isDarwin "-lintl";
 
diff --git a/pkgs/development/libraries/libvirt-glib/default.nix b/pkgs/development/libraries/libvirt-glib/default.nix
index 83b2983d9c4b..0dbe30251bdd 100644
--- a/pkgs/development/libraries/libvirt-glib/default.nix
+++ b/pkgs/development/libraries/libvirt-glib/default.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchurl, pkgconfig, libvirt, glib, libxml2, intltool, libtool, yajl
 , nettle, libgcrypt, pythonPackages, gobjectIntrospection, libcap_ng, numactl
-, xen, libapparmor
+, xen, libapparmor, vala
 }:
 
 let
@@ -8,12 +8,14 @@ let
 in stdenv.mkDerivation rec {
   name = "libvirt-glib-1.0.0";
 
+  outputs = [ "out" "dev" ];
+
   src = fetchurl {
     url = "http://libvirt.org/sources/glib/${name}.tar.gz";
     sha256 = "0iwa5sdbii52pjpdm5j37f67sdmf0kpcky4liwhy1nf43k85i4fa";
   };
 
-  nativeBuildInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig vala ];
   buildInputs = [
     libvirt glib libxml2 intltool libtool yajl nettle libgcrypt
     python pygobject2 gobjectIntrospection libcap_ng numactl libapparmor
diff --git a/pkgs/development/libraries/libwnck/3.x.nix b/pkgs/development/libraries/libwnck/3.x.nix
index 6a835157d96c..f2d05d14d693 100644
--- a/pkgs/development/libraries/libwnck/3.x.nix
+++ b/pkgs/development/libraries/libwnck/3.x.nix
@@ -1,28 +1,38 @@
-{stdenv, fetchurl, pkgconfig, libX11, gtk3, intltool}:
+{stdenv, fetchurl, pkgconfig, libX11, gtk3, intltool, gobjectIntrospection, gnome3}:
 
-stdenv.mkDerivation rec{
-  name = "libwnck-${version}";
-  version = "${majorVer}.${minorVer}.${patchVer}";
-
-  majorVer = "3";
-  minorVer = "24";
-  patchVer = "1";
+let
+  pname = "libwnck";
+  version = "3.24.1";
+in stdenv.mkDerivation rec{
+  name = "${pname}-${version}";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/libwnck/${majorVer}.${minorVer}/${name}.tar.xz";
+    url = "mirror://gnome/sources/${pname}/${gnome3.versionBranch version}/${name}.tar.xz";
     sha256 = "010zk9zvydggxqnxfml3scml5yxmpjy90irpqcayrzw26lldr9mg";
   };
 
   outputs = [ "out" "dev" "devdoc" ];
   outputBin = "dev";
 
-  patches = [ ./install_introspection_to_prefix.patch ];
+  configureFlags = [ "--enable-introspection" ];
 
-  nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [ intltool ];
+  nativeBuildInputs = [ pkgconfig intltool gobjectIntrospection ];
   propagatedBuildInputs = [ libX11 gtk3 ];
 
-  meta = {
-    platforms = stdenv.lib.platforms.linux;
+  PKG_CONFIG_GOBJECT_INTROSPECTION_1_0_GIRDIR = "${placeholder "dev"}/share/gir-1.0";
+  PKG_CONFIG_GOBJECT_INTROSPECTION_1_0_TYPELIBDIR = "${placeholder "out"}/lib/girepository-1.0";
+
+  passthru = {
+    updateScript = gnome3.updateScript {
+      packageName = pname;
+      attrPath = "gnome3.${pname}";
+    };
+  };
+
+  meta = with stdenv.lib; {
+    description = "Library to manage X windows and workspaces (via pagers, tasklists, etc.)";
+    license = licenses.lgpl21Plus;
+    platforms = platforms.linux;
+    maintainers = [];
   };
 }
diff --git a/pkgs/development/libraries/libwnck/install_introspection_to_prefix.patch b/pkgs/development/libraries/libwnck/install_introspection_to_prefix.patch
deleted file mode 100644
index 1bcf4a12ea31..000000000000
--- a/pkgs/development/libraries/libwnck/install_introspection_to_prefix.patch
+++ /dev/null
@@ -1,12 +0,0 @@
---- libwnck-3.4.7/configure	2013-08-20 14:46:14.000000000 +0000
-+++ libwnck-3.4.7-fix/configure	2014-01-05 17:18:56.665427787 +0000
-@@ -16150,7 +16150,7 @@ $as_echo "$found_introspection" >&6; }
-        INTROSPECTION_COMPILER=`$PKG_CONFIG --variable=g_ir_compiler gobject-introspection-1.0`
-        INTROSPECTION_GENERATE=`$PKG_CONFIG --variable=g_ir_generate gobject-introspection-1.0`
--       INTROSPECTION_GIRDIR=`$PKG_CONFIG --variable=girdir gobject-introspection-1.0`
-+       INTROSPECTION_GIRDIR="${datadir}/gir-1.0"
--       INTROSPECTION_TYPELIBDIR="$($PKG_CONFIG --variable=typelibdir gobject-introspection-1.0)"
-+       INTROSPECTION_TYPELIBDIR="${libdir}/girepository-1.0"
-        INTROSPECTION_CFLAGS=`$PKG_CONFIG --cflags gobject-introspection-1.0`
-        INTROSPECTION_LIBS=`$PKG_CONFIG --libs gobject-introspection-1.0`
-        INTROSPECTION_MAKEFILE=`$PKG_CONFIG --variable=datadir gobject-introspection-1.0`/gobject-introspection-1.0/Makefile.introspection
diff --git a/pkgs/development/libraries/mysocketw/default.nix b/pkgs/development/libraries/mysocketw/default.nix
index 379848b0cb08..6ec288f985b0 100644
--- a/pkgs/development/libraries/mysocketw/default.nix
+++ b/pkgs/development/libraries/mysocketw/default.nix
@@ -1,4 +1,4 @@
-{stdenv, fetchurl, openssl}:
+{ stdenv, fetchurl, openssl }:
 
 stdenv.mkDerivation rec {
   name = "mysocketw-031026";
@@ -9,11 +9,14 @@ stdenv.mkDerivation rec {
 
   patches = [ ./gcc.patch ];
 
-  configurePhase = ''
-    sed -i s,/usr/local,$out, Makefile.conf
+  buildInputs = [ openssl ];
+
+  postPatch = stdenv.lib.optionalString stdenv.isDarwin ''
+    substituteInPlace src/Makefile \
+        --replace -Wl,-soname, -Wl,-install_name,$out/lib/
   '';
 
-  buildInputs = [ openssl ];
+  makeFlags = [ "PREFIX=$(out)" "CXX=c++" ];
 
   meta = {
     description = "Cross platform (Linux/FreeBSD/Unix/Win32) streaming socket C++";
diff --git a/pkgs/development/libraries/netcdf/default.nix b/pkgs/development/libraries/netcdf/default.nix
index 696df48bfbc9..8446a91cceca 100644
--- a/pkgs/development/libraries/netcdf/default.nix
+++ b/pkgs/development/libraries/netcdf/default.nix
@@ -9,11 +9,11 @@ let
   mpiSupport = hdf5.mpiSupport;
   mpi = hdf5.mpi;
 in stdenv.mkDerivation rec {
-  name = "netcdf-4.6.0";
+  name = "netcdf-4.6.1";
 
   src = fetchurl {
     url = "https://www.unidata.ucar.edu/downloads/netcdf/ftp/${name}.tar.gz";
-    sha256 = "099qmdjj059wkj5za13zqnz0lcziqkcvyfdf894j4n6qq4c5iw2b";
+    sha256 = "0hi61cdihwwvz5jz1l7yq712j7ca1cj4bhr8x0x7c2vlb1s9biw9";
   };
 
   nativeBuildInputs = [ m4 ];
diff --git a/pkgs/development/libraries/spice-gtk/default.nix b/pkgs/development/libraries/spice-gtk/default.nix
index 05ddde9ddef7..a626abc6577b 100644
--- a/pkgs/development/libraries/spice-gtk/default.nix
+++ b/pkgs/development/libraries/spice-gtk/default.nix
@@ -11,6 +11,8 @@ let
 in stdenv.mkDerivation rec {
   name = "spice-gtk-0.34";
 
+  outputs = [ "out" "dev" ];
+
   src = fetchurl {
     url = "http://www.spice-space.org/download/gtk/${name}.tar.bz2";
     sha256 = "1vknp72pl6v6nf3dphhwp29hk6gv787db2pmyg4m312z2q0hwwp9";
@@ -34,6 +36,7 @@ in stdenv.mkDerivation rec {
 
   configureFlags = [
     "--with-gtk3"
+    "--enable-vala"
   ];
 
   # usb redirection needs spice-client-glib-usb-acl-helper to run setuid root
diff --git a/pkgs/development/libraries/unixODBC/default.nix b/pkgs/development/libraries/unixODBC/default.nix
index 7d59866d0431..ccd243e1f735 100644
--- a/pkgs/development/libraries/unixODBC/default.nix
+++ b/pkgs/development/libraries/unixODBC/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   name = "unixODBC-${version}";
-  version = "2.3.5";
+  version = "2.3.6";
 
   src = fetchurl {
     url = "ftp://ftp.unixodbc.org/pub/unixODBC/${name}.tar.gz";
-    sha256 = "0ns93daph4wmk92d7m2w48x0yki4m1yznxnn97p1ldn6bkh742bn";
+    sha256 = "0sads5b8cmmj526gyjba7ccknl1vbhkslfqshv1yqln08zv3gdl8";
   };
 
   configureFlags = [ "--disable-gui" "--sysconfdir=/etc" ];
diff --git a/pkgs/development/libraries/webkitgtk/2.18.nix b/pkgs/development/libraries/webkitgtk/2.20.nix
index 9dec5a4c953d..8b44f11ee930 100644
--- a/pkgs/development/libraries/webkitgtk/2.18.nix
+++ b/pkgs/development/libraries/webkitgtk/2.20.nix
@@ -1,11 +1,11 @@
-{ stdenv, fetchurl, perl, python2, ruby, bison, gperf, cmake
-, pkgconfig, gettext, gobjectIntrospection, libnotify, gnutls
-, gtk3, wayland, libwebp, enchant, xorg, libxkbcommon, epoxy, at-spi2-core
+{ stdenv, fetchurl, perl, python2, ruby, bison, gperf, cmake, ninja
+, pkgconfig, gettext, gobjectIntrospection, libnotify, gnutls, libgcrypt
+, gtk3, wayland, libwebp, enchant2, xorg, libxkbcommon, epoxy, at-spi2-core
 , libxml2, libsoup, libsecret, libxslt, harfbuzz, libpthreadstubs, pcre, nettle, libtasn1, p11-kit
 , libidn, libedit, readline, libGLU_combined, libintlOrEmpty
 , enableGeoLocation ? true, geoclue2, sqlite
 , enableGtk2Plugins ? false, gtk2 ? null
-, gst-plugins-base, gst-plugins-bad
+, gst-plugins-base, gst-plugins-bad, woff2
 }:
 
 assert enableGeoLocation -> geoclue2 != null;
@@ -15,7 +15,7 @@ assert stdenv.isDarwin -> !enableGtk2Plugins;
 with stdenv.lib;
 stdenv.mkDerivation rec {
   name = "webkitgtk-${version}";
-  version = "2.18.6";
+  version = "2.20.0";
 
   meta = {
     description = "Web content rendering engine, GTK+ port";
@@ -26,48 +26,29 @@ stdenv.mkDerivation rec {
     maintainers = with maintainers; [ ];
   };
 
-  postConfigure = optionalString stdenv.isDarwin ''
-    substituteInPlace Source/WebKit2/CMakeFiles/WebKit2.dir/link.txt \
-        --replace "../../lib/libWTFGTK.a" ""
-    substituteInPlace Source/JavaScriptCore/CMakeFiles/JavaScriptCore.dir/link.txt \
-        --replace "../../lib/libbmalloc.a" ""
-    sed -i "s|[\./]*\.\./lib/lib[^\.]*\.a||g" \
-        Source/JavaScriptCore/CMakeFiles/LLIntOffsetsExtractor.dir/link.txt \
-        Source/JavaScriptCore/shell/CMakeFiles/jsc.dir/link.txt \
-        Source/JavaScriptCore/shell/CMakeFiles/testb3.dir/link.txt \
-        Source/WebKit2/CMakeFiles/DatabaseProcess.dir/link.txt \
-        Source/WebKit2/CMakeFiles/NetworkProcess.dir/link.txt \
-        Source/WebKit2/CMakeFiles/webkit2gtkinjectedbundle.dir/link.txt \
-        Source/WebKit2/CMakeFiles/WebProcess.dir/link.txt
-    substituteInPlace Source/JavaScriptCore/CMakeFiles/JavaScriptCore.dir/link.txt \
-        --replace "../../lib/libWTFGTK.a" "-Wl,-all_load ../../lib/libWTFGTK.a"
-  '';
-
   src = fetchurl {
     url = "http://webkitgtk.org/releases/${name}.tar.xz";
-    sha256 = "0g5cpdijjv5hlrbi4i4dh97yrh5apnyvm90wpr9f84hgyk12r4ck";
+    sha256 = "0g0an3pc2yz13gzpaysfgch2yp510gw1qcpk0xr8m6mx43vl1xjp";
   };
 
-  # see if we can clean this up....
-
-  patches = [ ./finding-harfbuzz-icu.patch ]
-     ++ optionals stdenv.isDarwin [
-    ./PR-152650-2.patch
-    ./PR-153138.patch
-    ./PR-157554.patch
-    ./PR-157574.patch
+  patches = optionals stdenv.isDarwin [
+    ## TODO add necessary patches for Darwin
   ];
 
+  postPatch = ''
+    patchShebangs .
+  '';
+
   cmakeFlags = [
   "-DPORT=GTK"
   "-DUSE_LIBHYPHEN=0"
+  "-DENABLE_INTROSPECTION=ON"
   ]
   ++ optional (!enableGtk2Plugins) "-DENABLE_PLUGIN_PROCESS_GTK2=OFF"
   ++ optional stdenv.isLinux "-DENABLE_GLES2=ON"
   ++ optionals stdenv.isDarwin [
   "-DUSE_SYSTEM_MALLOC=ON"
   "-DUSE_ACCELERATE=0"
-  "-DENABLE_INTROSPECTION=ON"
   "-DENABLE_MINIBROWSER=OFF"
   "-DENABLE_VIDEO=ON"
   "-DENABLE_QUARTZ_TARGET=ON"
@@ -82,12 +63,12 @@ stdenv.mkDerivation rec {
   NIX_CFLAGS_COMPILE = optionalString stdenv.isDarwin " -lintl";
 
   nativeBuildInputs = [
-    cmake perl python2 ruby bison gperf
+    cmake ninja perl python2 ruby bison gperf
     pkgconfig gettext gobjectIntrospection
   ];
 
   buildInputs = libintlOrEmpty ++ [
-    libwebp enchant libnotify gnutls pcre nettle libidn
+    libwebp enchant2 libnotify gnutls pcre nettle libidn libgcrypt woff2
     libxml2 libsecret libxslt harfbuzz libpthreadstubs libtasn1 p11-kit
     sqlite gst-plugins-base gst-plugins-bad libxkbcommon epoxy at-spi2-core
   ] ++ optional enableGeoLocation geoclue2
@@ -100,7 +81,5 @@ stdenv.mkDerivation rec {
     libsoup gtk3
   ];
 
-  enableParallelBuilding = true;
-
   outputs = [ "out" "dev" ];
 }
diff --git a/pkgs/development/libraries/webkitgtk/PR-152650-2.patch b/pkgs/development/libraries/webkitgtk/PR-152650-2.patch
deleted file mode 100644
index f87b8ee73e23..000000000000
--- a/pkgs/development/libraries/webkitgtk/PR-152650-2.patch
+++ /dev/null
@@ -1,62 +0,0 @@
-From 4607ea0a569b3c527ae8dce341ab55eb0d69d8f7 Mon Sep 17 00:00:00 2001
-From: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
-Date: Tue, 8 Mar 2016 17:26:23 -0800
-Subject: [PATCH 2/2] [GTK][Mac] Enable support for gtk-doc on Mac
-
-https://bugs.webkit.org/show_bug.cgi?id=152650
-
-Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
----
- ChangeLog                     | 10 ++++++++++
- Source/PlatformGTK.cmake      |  2 +-
- Source/cmake/OptionsGTK.cmake |  5 -----
- 3 files changed, 11 insertions(+), 6 deletions(-)
-
-diff --git a/Source/PlatformGTK.cmake b/Source/PlatformGTK.cmake
-index af4d2e3..0b11b56 100644
---- a/Source/PlatformGTK.cmake
-+++ b/Source/PlatformGTK.cmake
-@@ -34,7 +34,7 @@ endmacro()
- add_gtkdoc_generator("docs-build.stamp" "")
- if (ENABLE_GTKDOC)
-     add_custom_target(gtkdoc ALL DEPENDS "${CMAKE_BINARY_DIR}/docs-build.stamp")
--elseif (NOT ENABLED_COMPILER_SANITIZERS AND NOT CMAKE_CROSSCOMPILING AND NOT APPLE)
-+elseif (NOT ENABLED_COMPILER_SANITIZERS AND NOT CMAKE_CROSSCOMPILING)
-     add_custom_target(gtkdoc DEPENDS "${CMAKE_BINARY_DIR}/docs-build.stamp")
- 
-     # Add a default build step which check that documentation does not have any warnings
-diff --git a/Source/cmake/OptionsGTK.cmake b/Source/cmake/OptionsGTK.cmake
-index 6b01f1a..b443d10 100644
---- a/Source/cmake/OptionsGTK.cmake
-+++ b/Source/cmake/OptionsGTK.cmake
-@@ -424,11 +424,6 @@ if (CMAKE_CROSSCOMPILING)
-     set(ENABLE_INTROSPECTION OFF)
- endif ()
- 
--# Override the cached variable, gtk-doc does not really work when building on Mac.
--if (APPLE)
--    set(ENABLE_GTKDOC OFF)
--endif ()
--
- set(DERIVED_SOURCES_WEBKITGTK_DIR ${DERIVED_SOURCES_DIR}/webkitgtk)
- set(DERIVED_SOURCES_WEBKITGTK_API_DIR ${DERIVED_SOURCES_WEBKITGTK_DIR}/webkit)
- set(DERIVED_SOURCES_WEBKIT2GTK_DIR ${DERIVED_SOURCES_DIR}/webkit2gtk)
-diff --git a/Tools/gtk/gtkdoc.py b/Tools/gtk/gtkdoc.py
-index 4c8237b..a628ae0 100644
---- a/Tools/gtk/gtkdoc.py
-+++ b/Tools/gtk/gtkdoc.py
-@@ -322,6 +322,11 @@ class GTKDoc(object):
-                 env['RUN'] = 'LD_LIBRARY_PATH="%s:%s" ' % (self.library_path, current_ld_library_path)
-             else:
-                 env['RUN'] = 'LD_LIBRARY_PATH="%s" ' % self.library_path
-+            current_dyld_library_path = env.get('DYLD_LIBRARY_PATH')
-+            if current_ld_library_path:
-+                env['RUN'] = 'DYLD_LIBRARY_PATH="%s:%s" ' % (self.library_path, current_dyld_library_path)
-+            else:
-+                env['RUN'] = 'DYLD_LIBRARY_PATH="%s" ' % self.library_path
- 
-         if ldflags:
-             env['LDFLAGS'] = '%s %s' % (ldflags, env.get('LDFLAGS', ''))
--- 
-2.7.2
-
diff --git a/pkgs/development/libraries/webkitgtk/PR-153138.patch b/pkgs/development/libraries/webkitgtk/PR-153138.patch
deleted file mode 100644
index 833921f68061..000000000000
--- a/pkgs/development/libraries/webkitgtk/PR-153138.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From 07886d9eacb7587dd52a9bcae10c1fc8ab56a910 Mon Sep 17 00:00:00 2001
-From: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
-Date: Fri, 15 Jan 2016 11:53:07 -0800
-Subject: [PATCH] https://bugs.webkit.org/show_bug.cgi?id=153138
-
-Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
----
- Source/JavaScriptCore/bytecode/StructureStubInfo.cpp | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/Source/JavaScriptCore/bytecode/StructureStubInfo.cpp b/Source/JavaScriptCore/bytecode/StructureStubInfo.cpp
-index 1e4b4f5..9b27aed 100644
---- a/Source/JavaScriptCore/bytecode/StructureStubInfo.cpp
-+++ b/Source/JavaScriptCore/bytecode/StructureStubInfo.cpp
-@@ -26,6 +26,8 @@
- #include "config.h"
- #include "StructureStubInfo.h"
- 
-+#include "JSCellInlines.h"
-+
- #include "JSObject.h"
- #include "PolymorphicAccess.h"
- #include "Repatch.h"
--- 
-2.7.0
-
diff --git a/pkgs/development/libraries/webkitgtk/PR-157554.patch b/pkgs/development/libraries/webkitgtk/PR-157554.patch
deleted file mode 100644
index 615e805c92ce..000000000000
--- a/pkgs/development/libraries/webkitgtk/PR-157554.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-https://bugs.webkit.org/show_bug.cgi?id=157554
-
---- a/Source/WTF/wtf/OSRandomSource.cpp
-+++ b/Source/WTF/wtf/OSRandomSource.cpp
-@@ -29,7 +29,7 @@
- #include <stdint.h>
- #include <stdlib.h>
- 
--#if !OS(DARWIN) && OS(UNIX)
-+#if OS(UNIX) && !(OS(DARWIN) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 1070)
- #include <errno.h>
- #include <fcntl.h>
- #include <unistd.h>
-@@ -46,7 +46,7 @@
- 
- namespace WTF {
- 
--#if !OS(DARWIN) && OS(UNIX)
-+#if OS(UNIX) && !(OS(DARWIN) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 1070)
- NEVER_INLINE NO_RETURN_DUE_TO_CRASH static void crashUnableToOpenURandom()
- {
-     CRASH();
-@@ -60,8 +56,8 @@ NEVER_INLINE NO_RETURN_DUE_TO_CRASH static void crashUnableToReadFromURandom()
-     
- void cryptographicallyRandomValuesFromOS(unsigned char* buffer, size_t length)
- {
--#if OS(DARWIN)
--    RELEASE_ASSERT(!CCRandomCopyBytes(kCCRandomDefault, buffer, length));
-+#if OS(DARWIN) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 1070
-+    return arc4random_buf(buffer, length);
- #elif OS(UNIX)
-     int fd = open("/dev/urandom", O_RDONLY, 0);
-     if (fd < 0)
diff --git a/pkgs/development/libraries/webkitgtk/PR-157574.patch b/pkgs/development/libraries/webkitgtk/PR-157574.patch
deleted file mode 100644
index d9b0795afa5b..000000000000
--- a/pkgs/development/libraries/webkitgtk/PR-157574.patch
+++ /dev/null
@@ -1,62 +0,0 @@
-diff --git a/Source/JavaScriptCore/API/WebKitAvailability.h b/Source/JavaScriptCore/API/WebKitAvailability.h
-index ab53183..1310dec 100644
---- a/Source/JavaScriptCore/API/WebKitAvailability.h
-+++ b/Source/JavaScriptCore/API/WebKitAvailability.h
-@@ -27,57 +27,12 @@
- #define __WebKitAvailability__
- 
- #if defined(__APPLE__)
--
--#include <AvailabilityMacros.h>
- #include <CoreFoundation/CoreFoundation.h>
--
--#if !TARGET_OS_IPHONE && __MAC_OS_X_VERSION_MIN_REQUIRED < 101100
--/* To support availability macros that mention newer OS X versions when building on older OS X versions,
--   we provide our own definitions of the underlying macros that the availability macros expand to. We're
--   free to expand the macros as no-ops since frameworks built on older OS X versions only ship bundled with
--   an application rather than as part of the system.
--*/
--
--#ifndef __NSi_10_10 // Building from trunk rather than SDK.
--#define __NSi_10_10 introduced=10.0 // Use 10.0 to indicate that everything is available.
--#endif
--
--#ifndef __NSi_10_11 // Building from trunk rather than SDK.
--#define __NSi_10_11 introduced=10.0 // Use 10.0 to indicate that everything is available.
--#endif
--
--#ifndef __NSi_10_12 // Building from trunk rather than SDK.
--#define __NSi_10_12 introduced=10.0 // Use 10.0 to indicate that everything is available.
--#endif
--
--#ifndef __AVAILABILITY_INTERNAL__MAC_10_9
--#define __AVAILABILITY_INTERNAL__MAC_10_9
--#endif
--
--#ifndef __AVAILABILITY_INTERNAL__MAC_10_10
--#define __AVAILABILITY_INTERNAL__MAC_10_10
- #endif
- 
--#ifndef AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER
--#define AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER
--#endif
--
--#ifndef AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER
--#define AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER
--#endif
--
--#endif /* __MAC_OS_X_VERSION_MIN_REQUIRED <= 101100 */
--
--#if defined(BUILDING_GTK__)
- #undef CF_AVAILABLE
- #define CF_AVAILABLE(_mac, _ios)
- #undef CF_ENUM_AVAILABLE
- #define CF_ENUM_AVAILABLE(_mac, _ios)
--#endif
--
--#else
--#define CF_AVAILABLE(_mac, _ios)
--#define CF_ENUM_AVAILABLE(_mac, _ios)
--#endif
- 
- #endif /* __WebKitAvailability__ */
diff --git a/pkgs/development/libraries/webkitgtk/finding-harfbuzz-icu.patch b/pkgs/development/libraries/webkitgtk/finding-harfbuzz-icu.patch
deleted file mode 100644
index 14d58ef04f68..000000000000
--- a/pkgs/development/libraries/webkitgtk/finding-harfbuzz-icu.patch
+++ /dev/null
@@ -1,52 +0,0 @@
---- webkitgtk-2.6.1.orig/Source/cmake/FindHarfBuzz.cmake	2014-10-09 01:54:38.000000000 +0800
-+++ webkitgtk-2.6.1/Source/cmake/FindHarfBuzz.cmake	2014-10-15 13:41:29.832290412 +0800
-@@ -34,21 +34,39 @@
- 
- pkg_check_modules(PC_HARFBUZZ harfbuzz>=0.9.7)
- 
--find_path(HARFBUZZ_INCLUDE_DIRS NAMES hb.h
--    HINTS ${PC_HARFBUZZ_INCLUDE_DIRS} ${PC_HARFBUZZ_INCLUDEDIR}
--)
--
--find_library(HARFBUZZ_LIBRARIES NAMES harfbuzz
--    HINTS ${PC_HARFBUZZ_LIBRARY_DIRS} ${PC_HARFBUZZ_LIBDIR}
--)
--
- # HarfBuzz 0.9.18 split ICU support into a separate harfbuzz-icu library.
- if ("${PC_HARFBUZZ_VERSION}" VERSION_GREATER "0.9.17")
-     pkg_check_modules(PC_HARFBUZZ_ICU harfbuzz-icu>=0.9.18 REQUIRED)
--    find_library(HARFBUZZ_ICU_LIBRARIES NAMES harfbuzz-icu
-+
-+    find_path(HARFBUZZ_ICU_INCLUDEDIR NAMES hb-icu.h
-+        HINTS ${PC_HARFBUZZ_ICU_INCLUDE_DIRS} ${PC_HARFBUZZ_INCLUDEDIR}
-+    )
-+
-+    find_library(HARFBUZZ_ICU_LIBRARY NAMES harfbuzz-icu
-         HINTS ${PC_HARFBUZZ_ICU_LIBRARY_DIRS} ${PC_HARFBUZZ_ICU_LIBDIR}
-     )
--    list(APPEND HARFBUZZ_LIBRARIES "${HARFBUZZ_ICU_LIBRARIES}")
-+
-+    find_library(HARFBUZZ_LIBRARY NAMES harfbuzz
-+        HINTS ${PC_HARFBUZZ_LIBRARY_DIRS} ${PC_HARFBUZZ_LIBDIR}
-+    )
-+
-+    set(HARFBUZZ_INCLUDE_DIRS
-+        ${PC_HARFBUZZ_INCLUDE_DIRS} ${HARFBUZZ_ICU_INCLUDEDIR}
-+        CACHE INTERNAL ""
-+    )
-+
-+    set(HARFBUZZ_LIBRARIES
-+        ${HARFBUZZ_LIBRARY} ${HARFBUZZ_ICU_LIBRARY}
-+        CACHE INTERNAL ""
-+    )
-+else ()
-+    find_path(HARFBUZZ_INCLUDE_DIRS NAMES hb.h
-+        HINTS ${PC_HARFBUZZ_INCLUDE_DIRS} ${PC_HARFBUZZ_INCLUDEDIR}
-+    )
-+
-+    find_library(HARFBUZZ_LIBRARIES NAMES harfbuzz
-+        HINTS ${PC_HARFBUZZ_LIBRARY_DIRS} ${PC_HARFBUZZ_LIBDIR}
-+    )
- endif ()
- 
- include(FindPackageHandleStandardArgs)
diff --git a/pkgs/development/libraries/webkitgtk/gstreamergl-2.17.patch b/pkgs/development/libraries/webkitgtk/gstreamergl-2.17.patch
deleted file mode 100644
index 7c47db52abaa..000000000000
--- a/pkgs/development/libraries/webkitgtk/gstreamergl-2.17.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git i/Source/cmake/OptionsGTK.cmake w/Source/cmake/OptionsGTK.cmake
-index d3577a8..9620dc0 100644
---- i/Source/cmake/OptionsGTK.cmake
-+++ w/Source/cmake/OptionsGTK.cmake
-@@ -94,7 +94,7 @@ WEBKIT_OPTION_DEFINE(USE_LIBSECRET "Whether to enable the persistent credential
- 
- # Private options specific to the GTK+ port. Changing these options is
- # completely unsupported. They are intended for use only by WebKit developers.
--WEBKIT_OPTION_DEFINE(USE_GSTREAMER_GL "Whether to enable support for GStreamer GL" PRIVATE ON)
-+WEBKIT_OPTION_DEFINE(USE_GSTREAMER_GL "Whether to enable support for GStreamer GL" PRIVATE OFF)
- WEBKIT_OPTION_DEFINE(USE_GSTREAMER_MPEGTS "Whether to enable support for MPEG-TS" PRIVATE OFF)
- WEBKIT_OPTION_DEFINE(USE_REDIRECTED_XCOMPOSITE_WINDOW "Whether to use a Redirected XComposite Window for accelerated compositing in X11." PRIVATE ON)
- 
diff --git a/pkgs/development/libraries/xercesc/default.nix b/pkgs/development/libraries/xercesc/default.nix
index b6bb4e63df34..9fa1768f4dce 100644
--- a/pkgs/development/libraries/xercesc/default.nix
+++ b/pkgs/development/libraries/xercesc/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   name = "xerces-c-${version}";
-  version = "3.1.4";
+  version = "3.2.1";
 
   src = fetchurl {
     url = "mirror://apache/xerces/c/3/sources/${name}.tar.gz";
-    sha256 = "1xpccqzykpd3806kd788lgkl01pk7v5lklva6q4kp9zq9jnfv3n9";
+    sha256 = "18045nyjkr2hygkjc43pi2fmz6qcbn9p00kf42my3aa4i0mn1m3d";
   };
 
   meta = {