about summary refs log tree commit diff
path: root/nixpkgs/pkgs/development/libraries
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/development/libraries')
-rw-r--r--nixpkgs/pkgs/development/libraries/ace/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/agda/agda-stdlib/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/armadillo/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/arrow-cpp/default.nix27
-rw-r--r--nixpkgs/pkgs/development/libraries/audio/libbass/default.nix18
-rw-r--r--nixpkgs/pkgs/development/libraries/cimg/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/crc32c/default.nix24
-rw-r--r--nixpkgs/pkgs/development/libraries/cre2/default.nix8
-rw-r--r--nixpkgs/pkgs/development/libraries/flatpak/bubblewrap-paths.patch4
-rw-r--r--nixpkgs/pkgs/development/libraries/flatpak/default.nix8
-rw-r--r--nixpkgs/pkgs/development/libraries/flatpak/fix-paths.patch6
-rw-r--r--nixpkgs/pkgs/development/libraries/flatpak/fix-test-paths.patch29
-rw-r--r--nixpkgs/pkgs/development/libraries/flatpak/respect-xml-catalog-files-var.patch4
-rw-r--r--nixpkgs/pkgs/development/libraries/flatpak/unset-env-vars.patch4
-rw-r--r--nixpkgs/pkgs/development/libraries/flatpak/use-flatpak-from-path.patch22
-rw-r--r--nixpkgs/pkgs/development/libraries/flatpak/validate-icon-pixbuf.patch4
-rw-r--r--nixpkgs/pkgs/development/libraries/folly/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/g2o/default.nix32
-rw-r--r--nixpkgs/pkgs/development/libraries/g2o/remove-compiler-reference.patch25
-rw-r--r--nixpkgs/pkgs/development/libraries/gnutls/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/google-cloud-cpp/default.nix65
-rw-r--r--nixpkgs/pkgs/development/libraries/hunspell/0001-Make-hunspell-look-in-XDG_DATA_DIRS-for-dictionaries.patch37
-rw-r--r--nixpkgs/pkgs/development/libraries/hunspell/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/hunspell/dictionaries.nix40
-rw-r--r--nixpkgs/pkgs/development/libraries/libgphoto2/default.nix6
-rw-r--r--nixpkgs/pkgs/development/libraries/libjpeg-turbo/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/libmodulemd/1.nix21
-rw-r--r--nixpkgs/pkgs/development/libraries/libmodulemd/default.nix59
-rw-r--r--nixpkgs/pkgs/development/libraries/libmodulemd/dont-check-docs.patch29
-rw-r--r--nixpkgs/pkgs/development/libraries/libmodulemd/pygobject-dir.patch45
-rw-r--r--nixpkgs/pkgs/development/libraries/libqglviewer/default.nix20
-rw-r--r--nixpkgs/pkgs/development/libraries/libuchardet/default.nix3
-rw-r--r--nixpkgs/pkgs/development/libraries/libversion/default.nix8
-rw-r--r--nixpkgs/pkgs/development/libraries/libwnck/3.x.nix77
-rw-r--r--nixpkgs/pkgs/development/libraries/libwnck/fix-pc-file.patch24
-rw-r--r--nixpkgs/pkgs/development/libraries/openxr-loader/default.nix40
-rw-r--r--nixpkgs/pkgs/development/libraries/ptex/default.nix27
-rw-r--r--nixpkgs/pkgs/development/libraries/pth/default.nix3
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-4.x/4.8/default.nix12
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-4.x/4.8/qt4-gcc6.patch33
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-5/5.11/default.nix7
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-5/5.12/default.nix7
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-5/5.6/default.nix7
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-5/5.9/default.nix7
-rw-r--r--nixpkgs/pkgs/development/libraries/qtstyleplugins/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/readline/readline-8.0-patches.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/science/math/spooles/default.nix48
-rw-r--r--nixpkgs/pkgs/development/libraries/science/math/spooles/spooles.patch188
-rw-r--r--nixpkgs/pkgs/development/libraries/umockdev/default.nix34
-rw-r--r--nixpkgs/pkgs/development/libraries/umockdev/fix-test-paths.patch12
-rw-r--r--nixpkgs/pkgs/development/libraries/wolfssl/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/xdg-desktop-portal-gtk/default.nix31
-rw-r--r--nixpkgs/pkgs/development/libraries/xdg-desktop-portal/default.nix8
-rw-r--r--nixpkgs/pkgs/development/libraries/xdg-desktop-portal/respect-path-env-var.patch20
-rw-r--r--nixpkgs/pkgs/development/libraries/zlib/default.nix58
55 files changed, 1027 insertions, 203 deletions
diff --git a/nixpkgs/pkgs/development/libraries/ace/default.nix b/nixpkgs/pkgs/development/libraries/ace/default.nix
index e0c46acb6303..75c942d4d487 100644
--- a/nixpkgs/pkgs/development/libraries/ace/default.nix
+++ b/nixpkgs/pkgs/development/libraries/ace/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   name = "ace-${version}";
-  version = "6.5.5";
+  version = "6.5.6";
 
   src = fetchurl {
     url = "http://download.dre.vanderbilt.edu/previous_versions/ACE-${version}.tar.bz2";
-    sha256 = "1r1bvy65n50l6lbxm1k1bscqcv29mpkgp0pgr5cvvv7ldisrjl39";
+    sha256 = "15lfjc8r854hvjfvimhnqc3987b3cdngilhkii9rwpzginbyipi4";
   };
 
   enableParallelBuilding = true;
diff --git a/nixpkgs/pkgs/development/libraries/agda/agda-stdlib/default.nix b/nixpkgs/pkgs/development/libraries/agda/agda-stdlib/default.nix
index b6208eeeb510..4d071251ee8e 100644
--- a/nixpkgs/pkgs/development/libraries/agda/agda-stdlib/default.nix
+++ b/nixpkgs/pkgs/development/libraries/agda/agda-stdlib/default.nix
@@ -1,14 +1,14 @@
 { stdenv, agda, fetchFromGitHub, ghcWithPackages }:
 
 agda.mkDerivation (self: rec {
-  version = "1.0.1";
+  version = "1.1";
   name = "agda-stdlib-${version}";
 
   src = fetchFromGitHub {
     repo = "agda-stdlib";
     owner = "agda";
     rev = "v${version}";
-    sha256 = "0ia7mgxs5g9849r26yrx07lrx65vhlrxqqh5b6d69gfi1pykb4j2";
+    sha256 = "190bxsy92ffmvwpmyyg3lxs91vyss2z25rqz1w79gkj56484cy64";
   };
 
   nativeBuildInputs = [ (ghcWithPackages (self : [ self.filemanip ])) ];
diff --git a/nixpkgs/pkgs/development/libraries/armadillo/default.nix b/nixpkgs/pkgs/development/libraries/armadillo/default.nix
index f2b038aa3795..3b93a351f7f9 100644
--- a/nixpkgs/pkgs/development/libraries/armadillo/default.nix
+++ b/nixpkgs/pkgs/development/libraries/armadillo/default.nix
@@ -1,12 +1,12 @@
 { stdenv, fetchurl, cmake, openblasCompat, superlu, hdf5 }:
 
 stdenv.mkDerivation rec {
-  version = "9.600.5";
+  version = "9.600.6";
   name = "armadillo-${version}";
 
   src = fetchurl {
     url = "mirror://sourceforge/arma/armadillo-${version}.tar.xz";
-    sha256 = "1gy2rb3klvzx833851qgsbh5k1ds5zffwk0rmy1k8b1g51jdd76x";
+    sha256 = "0wlk1yv9531vpvgja4cpy0sxykrn0p5w376kx86vl45b50yamx7g";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/nixpkgs/pkgs/development/libraries/arrow-cpp/default.nix b/nixpkgs/pkgs/development/libraries/arrow-cpp/default.nix
index c4cbd970d411..7660ea81eaf8 100644
--- a/nixpkgs/pkgs/development/libraries/arrow-cpp/default.nix
+++ b/nixpkgs/pkgs/development/libraries/arrow-cpp/default.nix
@@ -4,29 +4,30 @@ let
   parquet-testing = fetchFromGitHub {
     owner = "apache";
     repo = "parquet-testing";
-    rev = "8991d0b58d5a59925c87dd2a0bdb59a5a4a16bd4";
-    sha256 = "00js5d1s98y3ianrvh1ggrd157yfmia4g55jx9xmfcz4a8mcbawx";
-  };
-
-  # Enable non-bundled uriparser
-  # Introduced in https://github.com/apache/arrow/pull/4092
-  Finduriparser_cmake = fetchurl {
-    url = https://raw.githubusercontent.com/apache/arrow/af4f52961209a5f1b43a19483536285c957e3bed/cpp/cmake_modules/Finduriparser.cmake;
-    sha256 = "1cylrw00n2nkc2c49xk9j3rrza351rpravxgpw047vimcw0sk93s";
+    rev = "a277dc4e55ded3e3ea27dab1e4faf98c112442df";
+    sha256 = "1yh5a8l4ship36hwmgmp2kl72s5ac9r8ly1qcs650xv2g9q7yhnq";
   };
 in
 
 stdenv.mkDerivation rec {
   name = "arrow-cpp-${version}";
-  version = "0.13.0";
+  version = "0.14.1";
 
   src = fetchurl {
     url = "mirror://apache/arrow/arrow-${version}/apache-arrow-${version}.tar.gz";
-    sha256 = "06irh5zx6lc7jjf6hpz1vzk0pvbdx08lcirc8cp8ksb8j7fpfamc";
+    sha256 = "0a0xrsbr7dd1yp34yw82jw7psfkfvm935jhd5mam32vrsjvdsj4r";
   };
 
   sourceRoot = "apache-arrow-${version}/cpp";
 
+  ARROW_JEMALLOC_URL = fetchurl {
+    # From
+    # ./cpp/cmake_modules/ThirdpartyToolchain.cmake
+    # ./cpp/thirdparty/versions.txt
+    url = "https://github.com/jemalloc/jemalloc/releases/download/5.2.0/jemalloc-5.2.0.tar.bz2";
+    sha256 = "1d73a5c5qdrwck0fa5pxz0myizaf3s9alsvhiqwrjahdlr29zgkl";
+  };
+
   patches = [
     # patch to fix python-test
     ./darwin.patch
@@ -42,8 +43,6 @@ stdenv.mkDerivation rec {
   preConfigure = ''
     substituteInPlace cmake_modules/FindLz4.cmake --replace CMAKE_STATIC_LIBRARY CMAKE_SHARED_LIBRARY
 
-    cp ${Finduriparser_cmake} cmake_modules/Finduriparser.cmake
-
     patchShebangs build-support/
 
     # Fix build for ARROW_USE_SIMD=OFF
@@ -64,7 +63,7 @@ stdenv.mkDerivation rec {
   PARQUET_TEST_DATA = if doInstallCheck then "${parquet-testing}/data" else null;
   installCheckInputs = [ perl which ];
   installCheckPhase = (stdenv.lib.optionalString stdenv.isDarwin ''
-    for f in release/*-test; do
+    for f in release/*test; do
       install_name_tool -add_rpath "$out"/lib  "$f"
     done
   '') + ''
diff --git a/nixpkgs/pkgs/development/libraries/audio/libbass/default.nix b/nixpkgs/pkgs/development/libraries/audio/libbass/default.nix
index 0e1445ca9ee1..3552e335feda 100644
--- a/nixpkgs/pkgs/development/libraries/audio/libbass/default.nix
+++ b/nixpkgs/pkgs/development/libraries/audio/libbass/default.nix
@@ -1,32 +1,38 @@
 { stdenv, unzip, fetchurl }:
 
-let
-  version = "24";
+# Upstream changes files in-place, to update:
+# 1. Check latest version at http://www.un4seen.com/
+# 2. Update `version`s and `sha256` sums.
+# See also http://www.un4seen.com/forum/?topic=18614.0
 
+let
   allBass = {
     bass = {
       h = "bass.h";
+      version = "2.4.14";
       so = {
         i686_linux = "libbass.so";
         x86_64-linux = "x64/libbass.so";
       };
-      urlpath = "bass${version}-linux.zip";
-      sha256 = "1hjxp1akj8367qlglv5rqpwq2dimfz3bkllwq39abavz4sp8smjz";
+      urlpath = "bass24-linux.zip";
+      sha256 = "1nyzs08z0djyvz6jx1y9y99y0ksp4sxz9l2x43k1c9irls24xpfy";
     };
 
     bass_fx = {
       h = "C/bass_fx.h";
+      version = "2.4.12.1";
       so = {
         i686_linux = "libbass_fx.so";
         x86_64-linux = "x64/libbass_fx.so";
       };
-      urlpath = "z/0/bass_fx${version}-linux.zip";
+      urlpath = "z/0/bass_fx24-linux.zip";
       sha256 = "1q0g74z7iyhxqps5b3gnnbic8v2jji1r0mkvais57lsx8y21sbin";
     };
   };
 
   dropBass = name: bass: stdenv.mkDerivation {
-    name = "lib${name}-${version}";
+    pname = "lib${name}";
+    inherit (bass) version;
 
     src = fetchurl {
       url = "https://www.un4seen.com/files/${bass.urlpath}";
diff --git a/nixpkgs/pkgs/development/libraries/cimg/default.nix b/nixpkgs/pkgs/development/libraries/cimg/default.nix
index bab0a84ca79a..3e6e62e5a967 100644
--- a/nixpkgs/pkgs/development/libraries/cimg/default.nix
+++ b/nixpkgs/pkgs/development/libraries/cimg/default.nix
@@ -3,11 +3,11 @@
 stdenv.mkDerivation rec {
 
   name = "cimg-${version}";
-  version = "2.6.7";
+  version = "2.7.0";
 
   src = fetchurl {
     url = "http://cimg.eu/files/CImg_${version}.zip";
-    sha256 = "1jjsyq6ljpprak8l76aym1p28j9y7djxl73pdh1kpkw85ac23h6m";
+    sha256 = "1la6332cppyciyn3pflbchxa3av72a70p0n1c9sm1hgfbjlydqnv";
   };
 
   nativeBuildInputs = [ unzip ];
diff --git a/nixpkgs/pkgs/development/libraries/crc32c/default.nix b/nixpkgs/pkgs/development/libraries/crc32c/default.nix
new file mode 100644
index 000000000000..916ec5b703bb
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/crc32c/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchFromGitHub, cmake, gflags }:
+stdenv.mkDerivation rec {
+  pname = "crc32c";
+  version = "1.1.0";
+
+  src = fetchFromGitHub {
+    owner = "google";
+    repo = "crc32c";
+    rev = version;
+    sha256 = "1sazkis9rzbrklfrvk7jn1mqywnq4yghmzg94mxd153h8b1sb149";
+    fetchSubmodules = true;
+  };
+
+  nativeBuildInputs = [ cmake ];
+  buildInputs = [ gflags ];
+  NIX_CFLAGS_COMPILE = stdenv.lib.optional stdenv.isAarch64 "-march=armv8-a+crc";
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/google/crc32c;
+    description = "CRC32C implementation with support for CPU-specific acceleration instructions";
+    license = with licenses; [ bsd3 ];
+    maintainers = with maintainers; [ andir ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/cre2/default.nix b/nixpkgs/pkgs/development/libraries/cre2/default.nix
index 74619cbaaaed..d8130d0b8f91 100644
--- a/nixpkgs/pkgs/development/libraries/cre2/default.nix
+++ b/nixpkgs/pkgs/development/libraries/cre2/default.nix
@@ -3,13 +3,13 @@
 
 stdenv.mkDerivation rec {
   name = "cre2-${version}";
-  version = "0.3.0";
-    
+  version = "0.3.6";
+
   src = fetchFromGitHub {
     owner = "marcomaggi";
     repo = "cre2";
-    rev = version;
-    sha256 = "12yrdad87jjqrhbqm02hzsayan2402vf61a9x1b2iabv6d1c1bnj";
+    rev = "v${version}";
+    sha256 = "1h9jwn6z8kjf4agla85b5xf7gfkdwncp0mfd8zwk98jkm8y2qx9q";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/libraries/flatpak/bubblewrap-paths.patch b/nixpkgs/pkgs/development/libraries/flatpak/bubblewrap-paths.patch
index 79257fd6be50..407811736f83 100644
--- a/nixpkgs/pkgs/development/libraries/flatpak/bubblewrap-paths.patch
+++ b/nixpkgs/pkgs/development/libraries/flatpak/bubblewrap-paths.patch
@@ -1,8 +1,8 @@
 diff --git a/icon-validator/validate-icon.c b/icon-validator/validate-icon.c
-index 6e23d9f2..8c621ec4 100644
+index 9e885070..d02eeb8c 100644
 --- a/icon-validator/validate-icon.c
 +++ b/icon-validator/validate-icon.c
-@@ -149,8 +149,8 @@ rerun_in_sandbox (const char *arg_width,
+@@ -156,8 +156,8 @@ rerun_in_sandbox (const char *arg_width,
              "--unshare-ipc",
              "--unshare-net",
              "--unshare-pid",
diff --git a/nixpkgs/pkgs/development/libraries/flatpak/default.nix b/nixpkgs/pkgs/development/libraries/flatpak/default.nix
index 4c4949b37be8..d29be4cb9304 100644
--- a/nixpkgs/pkgs/development/libraries/flatpak/default.nix
+++ b/nixpkgs/pkgs/development/libraries/flatpak/default.nix
@@ -1,18 +1,18 @@
 { stdenv, fetchurl, autoreconfHook, docbook_xml_dtd_412, docbook_xml_dtd_42, docbook_xml_dtd_43, docbook_xsl, which, libxml2
 , gobject-introspection, gtk-doc, intltool, libxslt, pkgconfig, xmlto, appstream-glib, substituteAll, glibcLocales, yacc, xdg-dbus-proxy, p11-kit
-, bubblewrap, bzip2, dbus, glib, gpgme, json-glib, libarchive, libcap, libseccomp, coreutils, gettext, hicolor-icon-theme
+, bubblewrap, bzip2, dbus, glib, gpgme, json-glib, libarchive, libcap, libseccomp, coreutils, gettext, hicolor-icon-theme, fuse
 , libsoup, lzma, ostree, polkit, python3, systemd, xorg, valgrind, glib-networking, wrapGAppsHook, gnome3, gsettings-desktop-schemas, librsvg }:
 
 stdenv.mkDerivation rec {
   pname = "flatpak";
-  version = "1.2.4";
+  version = "1.4.2";
 
   # TODO: split out lib once we figure out what to do with triggerdir
   outputs = [ "out" "man" "doc" "installedTests" ];
 
   src = fetchurl {
     url = "https://github.com/flatpak/flatpak/releases/download/${version}/${pname}-${version}.tar.xz";
-    sha256 = "1qf3ys84fzv11z6f6li59rxjdjbyrv7cyi9539k73r9i9pckjr8v";
+    sha256 = "08nmpp26mgv0vp3mlwk97rnp0j7i108h4hr9nllja19sjxnrlygj";
   };
 
   patches = [
@@ -43,7 +43,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [
     bubblewrap bzip2 dbus gnome3.dconf glib gpgme json-glib libarchive libcap libseccomp
-    libsoup lzma ostree polkit python3 systemd xorg.libXau
+    libsoup lzma ostree polkit python3 systemd xorg.libXau fuse
     gsettings-desktop-schemas glib-networking
     librsvg # for flatpak-validate-icon
   ];
diff --git a/nixpkgs/pkgs/development/libraries/flatpak/fix-paths.patch b/nixpkgs/pkgs/development/libraries/flatpak/fix-paths.patch
index 49fcaa2b3f9b..746b4382864b 100644
--- a/nixpkgs/pkgs/development/libraries/flatpak/fix-paths.patch
+++ b/nixpkgs/pkgs/development/libraries/flatpak/fix-paths.patch
@@ -1,6 +1,8 @@
+diff --git a/session-helper/flatpak-session-helper.c b/session-helper/flatpak-session-helper.c
+index 5dd7629e..ddc71a4c 100644
 --- a/session-helper/flatpak-session-helper.c
 +++ b/session-helper/flatpak-session-helper.c
-@@ -624,7 +624,7 @@
+@@ -693,7 +693,7 @@ start_p11_kit_server (const char *flatpak_dir)
    g_auto(GStrv) stdout_lines = NULL;
    int i;
    char *p11_argv[] = {
@@ -9,7 +11,7 @@
      /* We explicitly request --sh here, because we then fail on earlier versions that doesn't support
       * this flag. This is good, because those earlier versions did not properly daemonize and caused
       * the spawn_sync to hang forever, waiting for the pipe to close.
-@@ -770,7 +770,7 @@
+@@ -836,7 +836,7 @@ main (int    argc,
        exit (1);
      }
  
diff --git a/nixpkgs/pkgs/development/libraries/flatpak/fix-test-paths.patch b/nixpkgs/pkgs/development/libraries/flatpak/fix-test-paths.patch
index f987899e3bcb..85b222152d0a 100644
--- a/nixpkgs/pkgs/development/libraries/flatpak/fix-test-paths.patch
+++ b/nixpkgs/pkgs/development/libraries/flatpak/fix-test-paths.patch
@@ -1,6 +1,8 @@
+diff --git a/tests/libtest.sh b/tests/libtest.sh
+index 46bcefb3..0134425e 100644
 --- a/tests/libtest.sh
 +++ b/tests/libtest.sh
-@@ -328,7 +328,7 @@
+@@ -352,7 +352,7 @@ if [ -z "${FLATPAK_BWRAP:-}" ]; then
      # running installed-tests: assume we know what we're doing
      _flatpak_bwrap_works=true
  elif ! "$FLATPAK_BWRAP" --unshare-ipc --unshare-net --unshare-pid \
@@ -9,7 +11,7 @@
      _flatpak_bwrap_works=false
  else
      _flatpak_bwrap_works=true
-@@ -309,12 +309,12 @@
+@@ -426,12 +426,12 @@ dbus-daemon --fork --config-file=session.conf --print-address=3 --print-pid=4 \
  export DBUS_SESSION_BUS_ADDRESS="$(cat dbus-session-bus-address)"
  DBUS_SESSION_BUS_PID="$(cat dbus-session-bus-pid)"
  
@@ -24,9 +26,11 @@
      gpg-connect-agent --homedir "${FL_GPG_HOMEDIR}" killagent /bye || true
      fusermount -u $XDG_RUNTIME_DIR/doc || :
      if test -n "${TEST_SKIP_CLEANUP:-}"; then
+diff --git a/tests/make-test-app.sh b/tests/make-test-app.sh
+index 0a0a28f1..16fd51fe 100755
 --- a/tests/make-test-app.sh
 +++ b/tests/make-test-app.sh
-@@ -114,13 +114,13 @@ msgid "Hello world"
+@@ -129,13 +129,13 @@ msgid "Hello world"
  msgstr "Hallo Welt"
  EOF
  mkdir -p ${DIR}/files/de/share/de/LC_MESSAGES
@@ -42,9 +46,11 @@
  
  flatpak build-finish ${DIR}
  mkdir -p repos
+diff --git a/tests/make-test-runtime.sh b/tests/make-test-runtime.sh
+index 57899b75..9236996f 100755
 --- a/tests/make-test-runtime.sh
 +++ b/tests/make-test-runtime.sh
-@@ -26,6 +26,7 @@
+@@ -28,6 +28,7 @@ EOF
  PATH="$PATH:/usr/sbin:/sbin"
  
  # Add bash and dependencies
@@ -52,7 +58,7 @@
  mkdir -p ${DIR}/usr/bin
  mkdir -p ${DIR}/usr/lib
  ln -s ../lib ${DIR}/usr/lib64
-@@ -35,48 +36,27 @@
+@@ -37,48 +38,23 @@ if test -f /sbin/ldconfig.real; then
  else
      cp `which ldconfig` ${DIR}/usr/bin
  fi
@@ -105,21 +111,20 @@
 -# We copy the C.UTF8 locale and call it en_US. Its a bit of a lie, but
 -# the real en_US locale is often not available, because its in the
 -# local archive.
+-mkdir -p ${DIR}/usr/lib/locale/
+-cp -r /usr/lib/locale/C.* ${DIR}/usr/lib/locale/en_US
 +mv ${DIR}/nix/store ${DIR}/usr/store # files outside /usr are not permitted, we will have to replace /nix/store with /usr/store
 +chmod -R u+w ${DIR} # nix store has read-only directories which would cause problems during clean-up, files need to be writable for sed
 +find ${DIR} -type f -print0 | xargs -0 sed -i 's~/nix/store/~/usr/store/~g' # replace hardcoded paths
 +find ${DIR} -type l | xargs -I '{}' sh -c 'tg="$(readlink "$1")"; newtg="${tg#/nix/store/}"; if [ "$tg" != "$newtg" ]; then ln -fs "/usr/store/$newtg" "$1"; fi' -- '{}' # replace symlink targets
-+
-+# We copy the whole locale archive because we do not have C.UTF8 locale
- mkdir -p ${DIR}/usr/lib/locale/
--cp -r /usr/lib/locale/C.* ${DIR}/usr/lib/locale/en_US
-+cp @glibcLocales@/lib/locale/locale-archive ${DIR}/usr/lib/locale/locale-archive
  
  if [ x$COLLECTION_ID != x ]; then
      collection_args=--collection-id=${COLLECTION_ID}
+diff --git a/tests/testlibrary.c b/tests/testlibrary.c
+index f2773dc8..3af9026f 100644
 --- a/tests/testlibrary.c
 +++ b/tests/testlibrary.c
-@@ -584,7 +584,7 @@
+@@ -1053,7 +1053,7 @@ check_bwrap_support (void)
      {
        gint exit_code = 0;
        char *argv[] = { (char *) bwrap, "--unshare-ipc", "--unshare-net",
@@ -128,6 +133,8 @@
        g_autofree char *argv_str = g_strjoinv (" ", argv);
        g_test_message ("Spawning %s", argv_str);
        g_spawn_sync (NULL, argv, NULL, G_SPAWN_SEARCH_PATH, NULL, NULL, NULL, NULL, &exit_code, &error);
+diff --git a/triggers/gtk-icon-cache.trigger b/triggers/gtk-icon-cache.trigger
+index 711cfab2..10c220ec 100755
 --- a/triggers/gtk-icon-cache.trigger
 +++ b/triggers/gtk-icon-cache.trigger
 @@ -1,7 +1,7 @@
diff --git a/nixpkgs/pkgs/development/libraries/flatpak/respect-xml-catalog-files-var.patch b/nixpkgs/pkgs/development/libraries/flatpak/respect-xml-catalog-files-var.patch
index 0e259aebd8a5..4cee60be2d07 100644
--- a/nixpkgs/pkgs/development/libraries/flatpak/respect-xml-catalog-files-var.patch
+++ b/nixpkgs/pkgs/development/libraries/flatpak/respect-xml-catalog-files-var.patch
@@ -1,6 +1,8 @@
+diff --git a/acinclude.m4 b/acinclude.m4
+index 92ec3985..b3fccf1d 100644
 --- a/acinclude.m4
 +++ b/acinclude.m4
-@@ -40,8 +40,8 @@
+@@ -40,8 +40,8 @@ AC_DEFUN([JH_CHECK_XML_CATALOG],
  [
    AC_REQUIRE([JH_PATH_XML_CATALOG],[JH_PATH_XML_CATALOG(,[:])])dnl
    AC_MSG_CHECKING([for ifelse([$2],,[$1],[$2]) in XML catalog])
diff --git a/nixpkgs/pkgs/development/libraries/flatpak/unset-env-vars.patch b/nixpkgs/pkgs/development/libraries/flatpak/unset-env-vars.patch
index 798e388b23c2..63ce0d12fe07 100644
--- a/nixpkgs/pkgs/development/libraries/flatpak/unset-env-vars.patch
+++ b/nixpkgs/pkgs/development/libraries/flatpak/unset-env-vars.patch
@@ -1,6 +1,8 @@
+diff --git a/common/flatpak-run.c b/common/flatpak-run.c
+index 8d52d3a5..81700183 100644
 --- a/common/flatpak-run.c
 +++ b/common/flatpak-run.c
-@@ -1192,6 +1192,7 @@ static const ExportData default_exports[] = {
+@@ -1232,6 +1232,7 @@ static const ExportData default_exports[] = {
    {"PERLLIB", NULL},
    {"PERL5LIB", NULL},
    {"XCURSOR_PATH", NULL},
diff --git a/nixpkgs/pkgs/development/libraries/flatpak/use-flatpak-from-path.patch b/nixpkgs/pkgs/development/libraries/flatpak/use-flatpak-from-path.patch
index 408198bda5cb..01363ffb7b34 100644
--- a/nixpkgs/pkgs/development/libraries/flatpak/use-flatpak-from-path.patch
+++ b/nixpkgs/pkgs/development/libraries/flatpak/use-flatpak-from-path.patch
@@ -1,6 +1,8 @@
+diff --git a/common/flatpak-dir.c b/common/flatpak-dir.c
+index 8f9dc66c..d3ab6e5f 100644
 --- a/common/flatpak-dir.c
 +++ b/common/flatpak-dir.c
-@@ -5758,7 +5758,7 @@ export_desktop_file (const char   *app,
+@@ -6701,7 +6701,7 @@ export_desktop_file (const char         *app,
  
        new_exec = g_string_new ("");
        g_string_append_printf (new_exec,
@@ -9,7 +11,7 @@
                                escaped_branch,
                                escaped_arch);
  
-@@ -6935,8 +6935,8 @@ flatpak_dir_deploy (FlatpakDir          *self,
+@@ -7891,8 +7891,8 @@ flatpak_dir_deploy (FlatpakDir          *self,
                                         error))
          return FALSE;
  
@@ -21,28 +23,28 @@
                                      G_FILE_CREATE_REPLACE_DESTINATION, NULL, cancellable, error))
          return FALSE;
 diff --git a/tests/test-bundle.sh b/tests/test-bundle.sh
-index 6937b041..01f8add7 100755
+index dff17f33..a9857adc 100755
 --- a/tests/test-bundle.sh
 +++ b/tests/test-bundle.sh
 @@ -59,7 +59,7 @@ assert_has_dir $FL_DIR/app/org.test.Hello/$ARCH/master/active/files
  assert_has_dir $FL_DIR/app/org.test.Hello/$ARCH/master/active/export
  assert_has_file $FL_DIR/exports/share/applications/org.test.Hello.desktop
  # Ensure Exec key is rewritten
--assert_file_has_content $FL_DIR/exports/share/applications/org.test.Hello.desktop "^Exec=.*/flatpak run --branch=master --arch=$ARCH --command=hello.sh org.test.Hello$"
-+assert_file_has_content $FL_DIR/exports/share/applications/org.test.Hello.desktop "^Exec=flatpak run --branch=master --arch=$ARCH --command=hello.sh org.test.Hello$"
+-assert_file_has_content $FL_DIR/exports/share/applications/org.test.Hello.desktop "^Exec=.*/flatpak run --branch=master --arch=$ARCH --command=hello\.sh org\.test\.Hello$"
++assert_file_has_content $FL_DIR/exports/share/applications/org.test.Hello.desktop "^Exec=flatpak run --branch=master --arch=$ARCH --command=hello\.sh org\.test\.Hello$"
  assert_has_file $FL_DIR/exports/share/icons/hicolor/64x64/apps/org.test.Hello.png
  assert_has_file $FL_DIR/exports/share/icons/HighContrast/64x64/apps/org.test.Hello.png
  
 diff --git a/tests/test-run.sh b/tests/test-run.sh
-index 9d83d82e..234e4ec6 100755
+index 233df9ad..76e0b23b 100644
 --- a/tests/test-run.sh
 +++ b/tests/test-run.sh
-@@ -42,7 +42,7 @@ assert_has_dir $FL_DIR/app/org.test.Hello/$ARCH/master/active/files
- assert_has_dir $FL_DIR/app/org.test.Hello/$ARCH/master/active/export
+@@ -45,7 +45,7 @@ assert_has_dir $FL_DIR/app/org.test.Hello/$ARCH/stable/active/files
+ assert_has_dir $FL_DIR/app/org.test.Hello/$ARCH/stable/active/export
  assert_has_file $FL_DIR/exports/share/applications/org.test.Hello.desktop
  # Ensure Exec key is rewritten
--assert_file_has_content $FL_DIR/exports/share/applications/org.test.Hello.desktop "^Exec=.*/flatpak run --branch=master --arch=$ARCH --command=hello.sh org.test.Hello$"
-+assert_file_has_content $FL_DIR/exports/share/applications/org.test.Hello.desktop "^Exec=flatpak run --branch=master --arch=$ARCH --command=hello.sh org.test.Hello$"
+-assert_file_has_content $FL_DIR/exports/share/applications/org.test.Hello.desktop "^Exec=.*/flatpak run --branch=stable --arch=$ARCH --command=hello\.sh org\.test\.Hello$"
++assert_file_has_content $FL_DIR/exports/share/applications/org.test.Hello.desktop "^Exec=flatpak run --branch=stable --arch=$ARCH --command=hello\.sh org\.test\.Hello$"
  assert_has_file $FL_DIR/exports/share/icons/hicolor/64x64/apps/org.test.Hello.png
  assert_not_has_file $FL_DIR/exports/share/icons/hicolor/64x64/apps/dont-export.png
  assert_has_file $FL_DIR/exports/share/icons/HighContrast/64x64/apps/org.test.Hello.png
diff --git a/nixpkgs/pkgs/development/libraries/flatpak/validate-icon-pixbuf.patch b/nixpkgs/pkgs/development/libraries/flatpak/validate-icon-pixbuf.patch
index 5b8cc2d0383f..086114e11c30 100644
--- a/nixpkgs/pkgs/development/libraries/flatpak/validate-icon-pixbuf.patch
+++ b/nixpkgs/pkgs/development/libraries/flatpak/validate-icon-pixbuf.patch
@@ -1,8 +1,8 @@
 diff --git a/icon-validator/validate-icon.c b/icon-validator/validate-icon.c
-index 6e23d9f2..f0659a78 100644
+index 9e885070..44fea035 100644
 --- a/icon-validator/validate-icon.c
 +++ b/icon-validator/validate-icon.c
-@@ -193,6 +193,8 @@ rerun_in_sandbox (const char *arg_width,
+@@ -200,6 +200,8 @@ rerun_in_sandbox (const char *arg_width,
      add_args (args, "--setenv", "G_MESSAGES_DEBUG", g_getenv ("G_MESSAGES_DEBUG"), NULL);
    if (g_getenv ("G_MESSAGES_PREFIXED"))
      add_args (args, "--setenv", "G_MESSAGES_PREFIXED", g_getenv ("G_MESSAGES_PREFIXED"), NULL);
diff --git a/nixpkgs/pkgs/development/libraries/folly/default.nix b/nixpkgs/pkgs/development/libraries/folly/default.nix
index 3fba3db7a338..a2c3d41d35d1 100644
--- a/nixpkgs/pkgs/development/libraries/folly/default.nix
+++ b/nixpkgs/pkgs/development/libraries/folly/default.nix
@@ -3,13 +3,13 @@
 
 stdenv.mkDerivation rec {
   name = "folly-${version}";
-  version = "2019.07.22.00";
+  version = "2019.08.05.00";
 
   src = fetchFromGitHub {
     owner = "facebook";
     repo = "folly";
     rev = "v${version}";
-    sha256 = "1vh5jrqz0lp6rc5fr6vk3yqss5vaycdsyap12mcr0cniv419fdxa";
+    sha256 = "03arl9hg06rzbyaf3fzyk7q8d5mfbzfwmhqnfnvqcgzlqdj0gaa5";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/nixpkgs/pkgs/development/libraries/g2o/default.nix b/nixpkgs/pkgs/development/libraries/g2o/default.nix
index 1486b5bfc55a..909c504870f0 100644
--- a/nixpkgs/pkgs/development/libraries/g2o/default.nix
+++ b/nixpkgs/pkgs/development/libraries/g2o/default.nix
@@ -1,4 +1,5 @@
-{ lib, stdenv, fetchFromGitHub, cmake, eigen, suitesparse }:
+{ lib, stdenv, fetchFromGitHub, cmake, eigen, suitesparse, libGLU, qt5
+, libsForQt5, makeWrapper }:
 
 stdenv.mkDerivation rec {
   pname = "g2o";
@@ -11,8 +12,33 @@ stdenv.mkDerivation rec {
     sha256 = "1rgrz6zxiinrik3lgwgvsmlww1m2fnpjmvcx1mf62xi1s2ma5w2i";
   };
 
-  nativeBuildInputs = [ cmake ];
-  buildInputs = [ eigen suitesparse ];
+  # Removes a reference to gcc that is only used in a debug message
+  patches = [ ./remove-compiler-reference.patch ];
+
+  separateDebugInfo = true;
+
+  nativeBuildInputs = [ cmake makeWrapper ];
+  buildInputs = [ eigen suitesparse libGLU qt5.qtbase libsForQt5.libqglviewer ];
+
+  cmakeFlags = [
+    # Detection script is broken
+    "-DQGLVIEWER_INCLUDE_DIR=${libsForQt5.libqglviewer}/include/QGLViewer"
+    "-DG2O_BUILD_EXAMPLES=OFF"
+  ] ++ lib.optionals stdenv.isx86_64 ([ "-DDO_SSE_AUTODETECT=OFF" ] ++ {
+    "default"        = [ "-DDISABLE_SSE3=ON" "-DDISABLE_SSE4_1=ON" "-DDISABLE_SSE4_2=ON" "-DDISABLE_SSE4_A=ON" ];
+    "westmere"       = [                                                                 "-DDISABLE_SSE4_A=ON" ];
+    "sandybridge"    = [                                                                 "-DDISABLE_SSE4_A=ON" ];
+    "ivybridge"      = [                                                                 "-DDISABLE_SSE4_A=ON" ];
+    "haswell"        = [                                                                 "-DDISABLE_SSE4_A=ON" ];
+    "broadwell"      = [                                                                 "-DDISABLE_SSE4_A=ON" ];
+    "skylake"        = [                                                                 "-DDISABLE_SSE4_A=ON" ];
+    "skylake-avx512" = [                                                                 "-DDISABLE_SSE4_A=ON" ];
+  }.${stdenv.hostPlatform.platform.gcc.arch or "default"});
+
+  postInstall = ''
+    wrapProgram $out/bin/g2o_viewer \
+      --prefix QT_PLUGIN_PATH : "${qt5.qtbase}/${qt5.qtbase.qtPluginPrefix}"
+  '';
 
   meta = {
     description = "A General Framework for Graph Optimization";
diff --git a/nixpkgs/pkgs/development/libraries/g2o/remove-compiler-reference.patch b/nixpkgs/pkgs/development/libraries/g2o/remove-compiler-reference.patch
new file mode 100644
index 000000000000..347c57802403
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/g2o/remove-compiler-reference.patch
@@ -0,0 +1,25 @@
+From b9bfed09e4e3c481b7eb36bee1ff4202ccf69dee Mon Sep 17 00:00:00 2001
+From: Ben Wolsieffer <benwolsieffer@gmail.com>
+Date: Fri, 17 May 2019 19:05:36 -0400
+Subject: [PATCH] Remove reference to compiler.
+
+---
+ CMakeLists.txt | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index a3f66dd..bb05bd0 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -371,7 +371,7 @@ set(G2O_HAVE_CHOLMOD ${CHOLMOD_FOUND})
+ set(G2O_HAVE_CSPARSE ${CSPARSE_FOUND})
+ set(G2O_SHARED_LIBS ${BUILD_SHARED_LIBS})
+ set(G2O_LGPL_SHARED_LIBS ${BUILD_LGPL_SHARED_LIBS})
+-set(G2O_CXX_COMPILER "${CMAKE_CXX_COMPILER_ID} ${CMAKE_CXX_COMPILER}")
++set(G2O_CXX_COMPILER "${CMAKE_CXX_COMPILER_ID} unknown")
+ 
+ configure_file(config.h.in "${PROJECT_BINARY_DIR}/g2o/config.h")
+ install(FILES ${PROJECT_BINARY_DIR}/g2o/config.h DESTINATION ${INCLUDES_DESTINATION}/g2o)
+-- 
+2.21.0
+
diff --git a/nixpkgs/pkgs/development/libraries/gnutls/default.nix b/nixpkgs/pkgs/development/libraries/gnutls/default.nix
index e0a54052c23e..1b17f4c800f5 100644
--- a/nixpkgs/pkgs/development/libraries/gnutls/default.nix
+++ b/nixpkgs/pkgs/development/libraries/gnutls/default.nix
@@ -8,7 +8,7 @@
 
 assert guileBindings -> guile != null;
 let
-  version = "3.6.8";
+  version = "3.6.9";
 
   # XXX: Gnulib's `test-select' fails on FreeBSD:
   # http://hydra.nixos.org/build/2962084/nixlog/1/raw .
@@ -24,7 +24,7 @@ stdenv.mkDerivation {
 
   src = fetchurl {
     url = "mirror://gnupg/gnutls/v3.6/gnutls-${version}.tar.xz";
-    sha256 = "10ry71sy8zbksa905bjryphafcg25gkmfa3pf48ripimar7990da";
+    sha256 = "1jqz5s3lv8sa53348cfi9nr5pw5l55n8m40b8msdvv0pb2jzqca3";
   };
 
   outputs = [ "bin" "dev" "out" "man" "devdoc" ];
diff --git a/nixpkgs/pkgs/development/libraries/google-cloud-cpp/default.nix b/nixpkgs/pkgs/development/libraries/google-cloud-cpp/default.nix
new file mode 100644
index 000000000000..7dd075e440e5
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/google-cloud-cpp/default.nix
@@ -0,0 +1,65 @@
+{ stdenv, grpc, curl, cmake, pkgconfig, fetchFromGitHub, doxygen, protobuf, crc32c, c-ares, nlohmann_json, fetchurl }:
+let
+  googleapis_rev = "a8ee1416f4c588f2ab92da72e7c1f588c784d3e6";
+  googleapis = fetchurl {
+    name = "${googleapis_rev}.tar.gz";
+    url = "https://github.com/googleapis/googleapis/archive/${googleapis_rev}.tar.gz";
+    sha256 = "1kxi27r034p7jfldhvgpbn6rqqqddycnja47m6jyjxj4rcmrp2kb";
+  };
+in stdenv.mkDerivation rec {
+  pname = "google-cloud-cpp";
+  version = "0.11.0";
+
+  src = fetchFromGitHub {
+    owner = "googleapis";
+    repo = "google-cloud-cpp";
+    rev = "v${version}";
+    sha256 = "1w942gzyv01ym1cv2a417x92zxra9s2v3xz5crcv84j919f616f8";
+  };
+
+  buildInputs = [ curl grpc protobuf nlohmann_json crc32c c-ares c-ares.cmake-config ];
+  nativeBuildInputs = [ cmake pkgconfig doxygen ];
+
+  outputs = [ "out" "dev" ];
+
+  postPatch = ''
+    NLOHMANN_SHA256=$(sha256sum ${nlohmann_json}/include/nlohmann/json.hpp | cut -f1 -d' ')
+    sed -e 's,https://github.com/nlohmann/json/releases/download/.*,file://${nlohmann_json}/include/nlohmann/json.hpp"),' \
+        -e "s,JSON_SHA256 .*,JSON_SHA256 ''${NLOHMANN_SHA256}," \
+        -i cmake/DownloadNlohmannJson.cmake
+
+    sed -e 's,https://github.com/googleapis/googleapis/archive/${googleapis_rev}.tar.gz,file://${googleapis},' \
+        -i cmake/external/googleapis.cmake
+
+    # Fixup the library path. It would build a path like /build/external//nix/store/…-foo/lib/foo.so for each library instead of /build/external/lib64/foo.so
+    sed -e 's,''${CMAKE_INSTALL_LIBDIR},lib64,g' \
+        -e 's,;lib64,lib,g' \
+        -i cmake/ExternalProjectHelper.cmake
+  '';
+
+  preFixup = ''
+    mv --no-clobber $out/lib64/cmake/* $out/lib/cmake
+    mv --no-clobber $out/lib64/pkgconfig/* $out/lib/pkgconfig
+    rmdir $out/lib64/cmake $out/lib64/pkgconfig
+    find $out/lib64
+
+    for file in $out/lib/pkgconfig/*; do
+      sed -e 's,\''${prefix}//,/,g' -i $file
+    done
+  '';
+
+  cmakeFlags = [
+    "-DGOOGLE_CLOUD_CPP_BIGTABLE_ENABLE_INSTALL=no"
+    "-DGOOGLE_CLOUD_CPP_DEPENDENCY_PROVIDER=package"
+    "-DGOOGLE_CLOUD_CPP_GOOGLEAPIS_PROVIDER=external"
+    "-DBUILD_SHARED_LIBS:BOOL=ON"
+    "-DGOOGLE_CLOUD_CPP_INSTALL_RPATH=$(out)/lib"
+  ];
+
+  meta = with stdenv.lib; {
+    license = with licenses; [ asl20 ];
+    homepage = https://github.com/googleapis/google-cloud-cpp;
+    description = "C++ Idiomatic Clients for Google Cloud Platform services";
+    maintainers = with maintainers; [ andir ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/hunspell/0001-Make-hunspell-look-in-XDG_DATA_DIRS-for-dictionaries.patch b/nixpkgs/pkgs/development/libraries/hunspell/0001-Make-hunspell-look-in-XDG_DATA_DIRS-for-dictionaries.patch
new file mode 100644
index 000000000000..4607f8b8ee09
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/hunspell/0001-Make-hunspell-look-in-XDG_DATA_DIRS-for-dictionaries.patch
@@ -0,0 +1,37 @@
+From 8c67f314de2684d77315eecd99ef091d441f17dd Mon Sep 17 00:00:00 2001
+From: Matthew Bauer <mjbauer95@gmail.com>
+Date: Wed, 24 Jul 2019 15:35:18 -0400
+Subject: [PATCH] Make hunspell look in XDG_DATA_DIRS for dictionaries
+
+Some dictionaries may exist but only show up under XDG_DATA_DIRS. For
+instance, $HOME/.local/share/hunspell could contain some dictionaries.
+
+This patch adds each directory in the hunspell subdir of each
+XDG_DATA_DIRS to the lookup path.
+
+Upstream pr is available at: https://github.com/hunspell/hunspell/pull/637
+---
+ src/tools/hunspell.cxx | 7 +++++++
+ 1 file changed, 7 insertions(+)
+
+diff --git a/src/tools/hunspell.cxx b/src/tools/hunspell.cxx
+index 690e34a..6cd127e 100644
+--- a/src/tools/hunspell.cxx
++++ b/src/tools/hunspell.cxx
+@@ -2044,6 +2044,13 @@ int main(int argc, char** argv) {
+     if (getenv("DICPATH")) {
+       path_std_str.append(getenv("DICPATH")).append(PATHSEP);
+     }
++    if (getenv("XDG_DATA_DIRS")) {
++      char* dir = strtok(getenv("XDG_DATA_DIRS"), ":");
++      while (dir != NULL) {
++        path_std_str.append(dir).append("/hunspell:");
++        dir = strtok(NULL, ":");
++      }
++    }
+     path_std_str.append(LIBDIR).append(PATHSEP);
+     if (HOME) {
+       const char * userooodir[] = USEROOODIR;
+-- 
+2.22.0
+
diff --git a/nixpkgs/pkgs/development/libraries/hunspell/default.nix b/nixpkgs/pkgs/development/libraries/hunspell/default.nix
index 3728c05e516c..18e32585ce2a 100644
--- a/nixpkgs/pkgs/development/libraries/hunspell/default.nix
+++ b/nixpkgs/pkgs/development/libraries/hunspell/default.nix
@@ -14,6 +14,8 @@ stdenv.mkDerivation rec {
   buildInputs = [ ncurses readline ];
   nativeBuildInputs = [ autoreconfHook ];
 
+  patches = [ ./0001-Make-hunspell-look-in-XDG_DATA_DIRS-for-dictionaries.patch ];
+
   postPatch = ''
     patchShebangs tests
   '';
diff --git a/nixpkgs/pkgs/development/libraries/hunspell/dictionaries.nix b/nixpkgs/pkgs/development/libraries/hunspell/dictionaries.nix
index b8de133f5025..1c86830f2582 100644
--- a/nixpkgs/pkgs/development/libraries/hunspell/dictionaries.nix
+++ b/nixpkgs/pkgs/development/libraries/hunspell/dictionaries.nix
@@ -286,10 +286,11 @@ let
       };
     };
 
-in {
+in rec {
 
   /* ENGLISH */
 
+  en_US = en-us;
   en-us = mkDictFromWordlist {
     shortName = "en-us";
     shortDescription = "English (United States)";
@@ -300,6 +301,7 @@ in {
     };
   };
 
+  en_CA = en-ca;
   en-ca = mkDictFromWordlist {
     shortName = "en-ca";
     shortDescription = "English (Canada)";
@@ -310,6 +312,7 @@ in {
     };
   };
 
+  en_GB-ise = en-gb-ise;
   en-gb-ise = mkDictFromWordlist {
     shortName = "en-gb-ise";
     shortDescription = "English (United Kingdom, 'ise' ending)";
@@ -320,6 +323,7 @@ in {
     };
   };
 
+  en_GB-ize = en-gb-ize;
   en-gb-ize = mkDictFromWordlist {
     shortName = "en-gb-ize";
     shortDescription = "English (United Kingdom, 'ize' ending)";
@@ -332,126 +336,147 @@ in {
 
   /* SPANISH */
 
+  es_ANY = es-any;
   es-any = mkDictFromRla {
     shortName = "es-any";
     shortDescription = "Spanish (any variant)";
     dictFileName = "es_ANY";
   };
 
+  es_AR = es-ar;
   es-ar = mkDictFromRla {
     shortName = "es-ar";
     shortDescription = "Spanish (Argentina)";
     dictFileName = "es_AR";
   };
 
+  es_BO = es-bo;
   es-bo = mkDictFromRla {
     shortName = "es-bo";
     shortDescription = "Spanish (Bolivia)";
     dictFileName = "es_BO";
   };
 
+  es_CL = es-cl;
   es-cl = mkDictFromRla {
     shortName = "es-cl";
     shortDescription = "Spanish (Chile)";
     dictFileName = "es_CL";
   };
 
+  es_CO = es-co;
   es-co = mkDictFromRla {
     shortName = "es-co";
     shortDescription = "Spanish (Colombia)";
     dictFileName = "es_CO";
   };
 
+  es_CR = es-cr;
   es-cr = mkDictFromRla {
     shortName = "es-cr";
     shortDescription = "Spanish (Costra Rica)";
     dictFileName = "es_CR";
   };
 
+  es_CU = es-cu;
   es-cu = mkDictFromRla {
     shortName = "es-cu";
     shortDescription = "Spanish (Cuba)";
     dictFileName = "es_CU";
   };
 
+  es_DO = es-do;
   es-do = mkDictFromRla {
     shortName = "es-do";
     shortDescription = "Spanish (Dominican Republic)";
     dictFileName = "es_DO";
   };
 
+  es_EC = es-ec;
   es-ec = mkDictFromRla {
     shortName = "es-ec";
     shortDescription = "Spanish (Ecuador)";
     dictFileName = "es_EC";
   };
 
+  es_ES = es-es;
   es-es = mkDictFromRla {
     shortName = "es-es";
     shortDescription = "Spanish (Spain)";
     dictFileName = "es_ES";
   };
 
+  es_GT = es-gt;
   es-gt = mkDictFromRla {
     shortName = "es-gt";
     shortDescription = "Spanish (Guatemala)";
     dictFileName = "es_GT";
   };
 
+  es_HN = es-hn;
   es-hn = mkDictFromRla {
     shortName = "es-hn";
     shortDescription = "Spanish (Honduras)";
     dictFileName = "es_HN";
   };
 
+  es_MX = es-mx;
   es-mx = mkDictFromRla {
     shortName = "es-mx";
     shortDescription = "Spanish (Mexico)";
     dictFileName = "es_MX";
   };
 
+  es_NI = es-ni;
   es-ni = mkDictFromRla {
     shortName = "es-ni";
     shortDescription = "Spanish (Nicaragua)";
     dictFileName = "es_NI";
   };
 
+  es_PA = es-pa;
   es-pa = mkDictFromRla {
     shortName = "es-pa";
     shortDescription = "Spanish (Panama)";
     dictFileName = "es_PA";
   };
 
+  es_PE = es-pe;
   es-pe = mkDictFromRla {
     shortName = "es-pe";
     shortDescription = "Spanish (Peru)";
     dictFileName = "es_PE";
   };
 
+  es_PR = es-pr;
   es-pr = mkDictFromRla {
     shortName = "es-pr";
     shortDescription = "Spanish (Puerto Rico)";
     dictFileName = "es_PR";
   };
 
+  es_PY = es-py;
   es-py = mkDictFromRla {
     shortName = "es-py";
     shortDescription = "Spanish (Paraguay)";
     dictFileName = "es_PY";
   };
 
+  es_SV = es-sv;
   es-sv = mkDictFromRla {
     shortName = "es-sv";
     shortDescription = "Spanish (El Salvador)";
     dictFileName = "es_SV";
   };
 
+  es_UY = es-uy;
   es-uy = mkDictFromRla {
     shortName = "es-uy";
     shortDescription = "Spanish (Uruguay)";
     dictFileName = "es_UY";
   };
 
+  es_VE = es-ve;
   es-ve = mkDictFromRla {
     shortName = "es-ve";
     shortDescription = "Spanish (Venezuela)";
@@ -505,6 +530,7 @@ in {
 
   /* ITALIAN */
 
+  it_IT = it-it;
   it-it =  mkDictFromLinguistico rec {
     shortName = "it-it";
     dictFileName = "it_IT";
@@ -517,6 +543,7 @@ in {
 
   /* BASQUE */
 
+  eu_ES = eu-es;
   eu-es = mkDictFromXuxen {
     shortName = "eu-es";
     dictFileName = "eu_ES";
@@ -549,6 +576,7 @@ in {
 
   /* HUNGARIAN */
 
+  hu_HU = hu-hu;
   hu-hu = mkDictFromLibreOffice {
     shortName = "hu-hu";
     dictFileName = "hu_HU";
@@ -557,7 +585,8 @@ in {
   };
 
   /* SWEDISH */
-  
+
+  sv_SE = sv-se;
   sv-se = mkDictFromDSSO rec {
     shortName = "sv-se";
     dictFileName = "sv_SE";
@@ -565,26 +594,30 @@ in {
   };
 
   # Finlandian Swedish (hello Linus Torvalds)
+  sv_FI = sv-fi;
   sv-fi = mkDictFromDSSO rec {
     shortName = "sv-fi";
     dictFileName = "sv_FI";
     shortDescription = "Swedish (Finland)";
   };
-  
+
   /* GERMAN */
 
+  de_DE = de-de;
   de-de = mkDictFromJ3e {
     shortName = "de-de";
     shortDescription = "German (Germany)";
     dictFileName = "de_DE";
   };
 
+  de_AT = de-at;
   de-at = mkDictFromJ3e {
     shortName = "de-at";
     shortDescription = "German (Austria)";
     dictFileName = "de_AT";
   };
 
+  de_CH = de-ch;
   de-ch = mkDictFromJ3e {
     shortName = "de-ch";
     shortDescription = "German (Switzerland)";
@@ -593,6 +626,7 @@ in {
 
   /* UKRAINIAN */
 
+  uk_UA = uk-ua;
   uk-ua = mkDict rec {
     name = "hunspell-dict-uk-ua-${version}";
     version = "4.2.5";
diff --git a/nixpkgs/pkgs/development/libraries/libgphoto2/default.nix b/nixpkgs/pkgs/development/libraries/libgphoto2/default.nix
index 8616a0146755..cbedd97b2eec 100644
--- a/nixpkgs/pkgs/development/libraries/libgphoto2/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libgphoto2/default.nix
@@ -7,7 +7,7 @@ stdenv.mkDerivation rec {
     owner = "gphoto";
     repo = "libgphoto2";
     rev = "${meta.tag}";
-    sha256 = "0pbfg89817qkb35mmajsw2iz6j9nhkkj67m419f8x8yxpqkaa0wb";
+    sha256 = "1sc2ycx11khf0qzp1cqxxx1qymv6bjfbkx3vvbwz6wnbyvsigxz2";
   };
 
   patches = [];
@@ -33,8 +33,8 @@ stdenv.mkDerivation rec {
       MTP, and other vendor specific protocols for controlling and transferring data
       from digital cameras.
     '';
-    version = "2.5.17";
-    tag = "libgphoto2-2_5_17-release";
+    version = "2.5.23";
+    tag = "libgphoto2-2_5_23-release";
     # XXX: the homepage claims LGPL, but several src files are lgpl21Plus
     license = stdenv.lib.licenses.lgpl21Plus;
     platforms = with stdenv.lib.platforms; unix;
diff --git a/nixpkgs/pkgs/development/libraries/libjpeg-turbo/default.nix b/nixpkgs/pkgs/development/libraries/libjpeg-turbo/default.nix
index 371d7b838d40..191c375f3be8 100644
--- a/nixpkgs/pkgs/development/libraries/libjpeg-turbo/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libjpeg-turbo/default.nix
@@ -18,7 +18,9 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ cmake nasm ];
 
-  cmakeFlags = [ "-DCMAKE_INSTALL_BINDIR=${placeholder "bin"}/bin" "-DENABLE_STATIC=0" ];
+  cmakeFlags = [
+    "-DENABLE_STATIC=0"
+  ];
 
   doInstallCheck = true;
   installCheckTarget = "test";
diff --git a/nixpkgs/pkgs/development/libraries/libmodulemd/1.nix b/nixpkgs/pkgs/development/libraries/libmodulemd/1.nix
new file mode 100644
index 000000000000..174296375e08
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/libmodulemd/1.nix
@@ -0,0 +1,21 @@
+{ libmodulemd, fetchurl }:
+
+libmodulemd.overrideAttrs(old: rec {
+  name = "libmodulemd-${version}";
+  version = "1.8.15";
+
+  # Removes py output since there's no overrides here
+  outputs = [ "out" "devdoc" ];
+
+  patches = [
+    # Checks for glib docs in glib's prefix
+    # but they're installed to another
+    ./dont-check-docs.patch
+  ];
+
+  src = fetchurl {
+    url = "https://github.com/fedora-modularity/libmodulemd/releases/download/${name}/modulemd-${version}.tar.xz";
+    sha256 = "0gz8p3qzji3cx0r57sy3gn4dhigg4k7pcxj3lmjcjn13vxh5rm7z";
+  };
+
+})
diff --git a/nixpkgs/pkgs/development/libraries/libmodulemd/default.nix b/nixpkgs/pkgs/development/libraries/libmodulemd/default.nix
new file mode 100644
index 000000000000..ba77c7806b53
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/libmodulemd/default.nix
@@ -0,0 +1,59 @@
+{ stdenv
+, fetchFromGitHub
+, pkgconfig
+, meson
+, ninja
+, gobject-introspection
+, python3
+, libyaml
+, gtk-doc
+, docbook_xsl
+, docbook_xml_dtd_412
+, glib
+}:
+
+stdenv.mkDerivation rec {
+  pname = "libmodulemd";
+  version = "2.6.0";
+
+  outputs = [ "out" "devdoc" "py" ];
+
+  src = fetchFromGitHub {
+    owner = "fedora-modularity";
+    repo = pname;
+    rev = "${pname}-${version}";
+    sha256 = "0gizfmzs6jrzb29lwcimm5dq3027935xbzwgkbvbp67zcmjd3y5i";
+  };
+
+  patches = [
+    ./pygobject-dir.patch
+  ];
+
+  nativeBuildInputs = [
+    pkgconfig
+    meson
+    ninja
+    gtk-doc
+    docbook_xsl
+    docbook_xml_dtd_412
+    gobject-introspection
+  ];
+
+  buildInputs = [
+    libyaml
+    glib
+  ];
+
+  mesonFlags = [
+    "-Ddeveloper_build=false"
+    "-Dpygobject_override_dir=${placeholder "py"}/${python3.sitePackages}/gi/overrides"
+  ];
+
+  meta = with stdenv.lib; {
+    description = "C Library for manipulating module metadata files";
+    homepage = "https://github.com/fedora-modularity/libmodulemd";
+    license = licenses.mit;
+    maintainers = with maintainers; [ ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/libmodulemd/dont-check-docs.patch b/nixpkgs/pkgs/development/libraries/libmodulemd/dont-check-docs.patch
new file mode 100644
index 000000000000..38ad5683692b
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/libmodulemd/dont-check-docs.patch
@@ -0,0 +1,29 @@
+diff --git a/meson.build b/meson.build
+index 155c9e7..9125372 100644
+--- a/meson.build
++++ b/meson.build
+@@ -60,15 +60,15 @@ sh = find_program('sh')
+ sed = find_program('sed')
+ test = find_program('test')
+ 
+-ret = run_command ([test, '-e', join_paths(glib_docpath, 'glib/index.html')])
+-if ret.returncode() != 0
+-  error('Missing documentation for GLib.')
+-endif
+-
+-ret = run_command ([test, '-e', join_paths(glib_docpath, 'gobject/index.html')])
+-if ret.returncode() != 0
+-  error('Missing documentation for GObject.')
+-endif
++# ret = run_command ([test, '-e', join_paths(glib_docpath, 'glib/index.html')])
++# if ret.returncode() != 0
++#   error('Missing documentation for GLib.')
++# endif
++
++# ret = run_command ([test, '-e', join_paths(glib_docpath, 'gobject/index.html')])
++# if ret.returncode() != 0
++#   error('Missing documentation for GObject.')
++# endif
+ 
+ python_name = get_option('python_name')
+ 
diff --git a/nixpkgs/pkgs/development/libraries/libmodulemd/pygobject-dir.patch b/nixpkgs/pkgs/development/libraries/libmodulemd/pygobject-dir.patch
new file mode 100644
index 000000000000..a367872eec65
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/libmodulemd/pygobject-dir.patch
@@ -0,0 +1,45 @@
+diff --git a/bindings/python/meson.build b/bindings/python/meson.build
+index 4358b79..61fd5a5 100644
+--- a/bindings/python/meson.build
++++ b/bindings/python/meson.build
+@@ -1,3 +1,5 @@
++pygobject_override_dir = get_option('pygobject_override_dir')
++
+ get_overridedir = '''
+ import os
+ import sysconfig
+@@ -21,7 +23,7 @@ print(overridedir)
+ '''
+ 
+ # Python 3
+-if (get_option('with_py3_overrides'))
++if (get_option('with_py3_overrides')) and pygobject_override_dir == ''
+   ret = run_command([python3, '-c', get_overridedir])
+ 
+   if ret.returncode() != 0
+@@ -34,7 +36,7 @@ if (get_option('with_py3_overrides'))
+ endif
+ 
+ # Python 2
+-if (get_option('with_py2_overrides'))
++if (get_option('with_py2_overrides')) and pygobject_override_dir == ''
+   ret2 = run_command([python2, '-c', get_overridedir])
+ 
+   if ret2.returncode() != 0
+@@ -45,3 +47,7 @@ if (get_option('with_py2_overrides'))
+ 
+   install_data('gi/overrides/Modulemd.py', install_dir: pygobject2_override_dir)
+ endif
++
++if pygobject_override_dir != ''
++    install_data('gi/overrides/Modulemd.py', install_dir: pygobject_override_dir)
++endif
+diff --git a/meson_options.txt b/meson_options.txt
+index 147419f..9071a04 100644
+--- a/meson_options.txt
++++ b/meson_options.txt
+@@ -18,3 +18,4 @@ option('skip_introspection', type : 'boolean', value : false)
+ option('python_name', type : 'string')
+ option('with_py2_overrides', type : 'boolean', value : false)
+ option('with_py3_overrides', type : 'boolean', value : true)
++option('pygobject_override_dir', type : 'string', value : '', description: 'Path to pygobject overrides directory')
diff --git a/nixpkgs/pkgs/development/libraries/libqglviewer/default.nix b/nixpkgs/pkgs/development/libraries/libqglviewer/default.nix
index e68c5052beb8..34b396a71026 100644
--- a/nixpkgs/pkgs/development/libraries/libqglviewer/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libqglviewer/default.nix
@@ -1,25 +1,25 @@
-{ stdenv, fetchurl, qt4, qmake4Hook, AGL }:
+{ stdenv, fetchurl, qmake, qtbase, libGLU, AGL }:
 
 stdenv.mkDerivation rec {
-  name = "libqglviewer-2.6.3";
-  version = "2.6.3";
+  pname = "libqglviewer";
+  version = "2.7.1";
 
   src = fetchurl {
     url = "http://www.libqglviewer.com/src/libQGLViewer-${version}.tar.gz";
-    sha256 = "00jdkyk4wg1356c3ar6nk3hyp494ya3yvshq9m57kfmqpn3inqdy";
+    sha256 = "08f10yk22kjdsvrqhd063gqa8nxnl749c20mwhaxij4f7rzdkixz";
   };
 
-  buildInputs = [ qt4 qmake4Hook ]
+  nativeBuildInputs = [ qmake ];
+  buildInputs = [ qtbase libGLU ]
     ++ stdenv.lib.optional stdenv.isDarwin AGL;
 
-  postPatch =
-    ''
-      cd QGLViewer
-    '';
+  postPatch = ''
+    cd QGLViewer
+  '';
 
   meta = with stdenv.lib; {
     description = "C++ library based on Qt that eases the creation of OpenGL 3D viewers";
-    homepage = http://libqglviewer.com/;
+    homepage = "http://libqglviewer.com";
     license = licenses.gpl2;
     platforms = platforms.all;
   };
diff --git a/nixpkgs/pkgs/development/libraries/libuchardet/default.nix b/nixpkgs/pkgs/development/libraries/libuchardet/default.nix
index 5aa26a749e4f..6bfb694a41b7 100644
--- a/nixpkgs/pkgs/development/libraries/libuchardet/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libuchardet/default.nix
@@ -15,9 +15,6 @@ stdenv.mkDerivation rec {
 
   cmakeFlags = [
     "-DCMAKE_SKIP_BUILD_RPATH=OFF" # for tests
-    # TODO: move the following to CMake setup hook
-    "-DCMAKE_INSTALL_BINDIR=${placeholder "bin"}/bin"
-    "-DCMAKE_INSTALL_MANDIR=${placeholder "man"}/share/man"
   ];
 
   doCheck = true;
diff --git a/nixpkgs/pkgs/development/libraries/libversion/default.nix b/nixpkgs/pkgs/development/libraries/libversion/default.nix
index 0ace54582ebc..3c7ed207703b 100644
--- a/nixpkgs/pkgs/development/libraries/libversion/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libversion/default.nix
@@ -1,10 +1,8 @@
 { stdenv, fetchFromGitHub, cmake }:
 
-let
-  version = "2.8.1";
-in
-stdenv.mkDerivation {
-  name = "libversion-${version}";
+stdenv.mkDerivation rec {
+  pname = "libversion";
+  version = "2.9.0";
 
   src = fetchFromGitHub {
     owner = "repology";
diff --git a/nixpkgs/pkgs/development/libraries/libwnck/3.x.nix b/nixpkgs/pkgs/development/libraries/libwnck/3.x.nix
index 9c35d3373505..29692c41c930 100644
--- a/nixpkgs/pkgs/development/libraries/libwnck/3.x.nix
+++ b/nixpkgs/pkgs/development/libraries/libwnck/3.x.nix
@@ -1,31 +1,78 @@
-{ stdenv, fetchurl, pkgconfig, libX11, gtk3, intltool, gobject-introspection, gnome3 }:
+{ stdenv
+, fetchurl
+, fetchpatch
+, meson
+, ninja
+, pkgconfig
+, gtk-doc
+, docbook_xsl
+, docbook_xml_dtd_412
+, libX11
+, glib
+, gtk3
+, pango
+, cairo
+, libXres
+, libstartup_notification
+, gettext
+, gobject-introspection
+, gnome3
+}:
 
-let
+stdenv.mkDerivation rec{
   pname = "libwnck";
-  version = "3.30.0";
-in stdenv.mkDerivation rec{
-  name = "${pname}-${version}";
+  version = "3.32.0";
+
+  outputs = [ "out" "dev" "devdoc" ];
+  outputBin = "dev";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
-    sha256 = "0f9lvhm3w25046dqq8xyg7nzggxpmdriwrb661nng05a8qk0svdc";
+    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
+    sha256 = "1jp3p1lnwnwi6fxl2rz3166cmwzwy9vqz896anpwc3wdy9f875cm";
   };
 
-  outputs = [ "out" "dev" "devdoc" ];
-  outputBin = "dev";
+  patches = [
+    # https://gitlab.gnome.org/GNOME/libwnck/issues/139
+    (fetchpatch {
+      url = https://gitlab.gnome.org/GNOME/libwnck/commit/0d9ff7db63af568feef8e8c566e249058ccfcb4e.patch;
+      sha256 = "18f78aayq9jma54v2qz3rm2clmz1cfq5bngxw8p4zba7hplyqsl9";
+    })
+    # https://gitlab.gnome.org/GNOME/libwnck/merge_requests/12
+    ./fix-pc-file.patch
+  ];
+
+  nativeBuildInputs = [
+    meson
+    ninja
+    pkgconfig
+    gettext
+    gobject-introspection
+    gtk-doc
+    docbook_xsl
+    docbook_xml_dtd_412
+  ];
 
-  configureFlags = [ "--enable-introspection" ];
+  buildInputs = [
+    libX11
+    libstartup_notification
+    pango
+    cairo
+    libXres
+  ];
 
-  nativeBuildInputs = [ pkgconfig intltool gobject-introspection ];
-  propagatedBuildInputs = [ libX11 gtk3 ];
+  propagatedBuildInputs = [
+    glib
+    gtk3
+  ];
 
-  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";
+  mesonFlags = [
+    "-Dgtk_doc=true"
+  ];
 
   passthru = {
     updateScript = gnome3.updateScript {
       packageName = pname;
-      attrPath = "gnome3.${pname}";
+      attrPath = "${pname}${stdenv.lib.versions.major version}";
     };
   };
 
diff --git a/nixpkgs/pkgs/development/libraries/libwnck/fix-pc-file.patch b/nixpkgs/pkgs/development/libraries/libwnck/fix-pc-file.patch
new file mode 100644
index 000000000000..42017a993b51
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/libwnck/fix-pc-file.patch
@@ -0,0 +1,24 @@
+diff --git a/meson.build b/meson.build
+index 28799d8..047e523 100644
+--- a/meson.build
++++ b/meson.build
+@@ -72,11 +72,15 @@
+ pc_conf = configuration_data()
+ pc_conf.set('prefix', get_option('prefix'))
+ pc_conf.set('exec_prefix', '${prefix}')
+-pc_conf.set('libdir', '${exec_prefix}/' + get_option('libdir'))
+-pc_conf.set('includedir', '${prefix}/' + get_option('includedir'))
+-pc_conf.set('STARTUP_NOTIFICATION_PACKAGE', STARTUP_NOTIFICATION_PACKAGE)
++pc_conf.set('libdir', '${exec_prefix}' / get_option('libdir'))
++pc_conf.set('includedir', '${prefix}' / get_option('includedir'))
++if conf.has('HAVE_' + STARTUP_NOTIFICATION_PACKAGE.to_upper().underscorify())
++  pc_conf.set('STARTUP_NOTIFICATION_PACKAGE', STARTUP_NOTIFICATION_PACKAGE)
++endif
+ pc_conf.set('X11_PACKAGE', X11_PACKAGE)
+-pc_conf.set('XRES_PACKAGE', XRES_PACKAGE)
++if conf.has('HAVE_' + XRES_PACKAGE.to_upper().underscorify())
++  pc_conf.set('XRES_PACKAGE', XRES_PACKAGE)
++endif
+ pc_conf.set('VERSION', meson.project_version())
+ 
+ foreach pc: [PACKAGE_NAME, PACKAGE_NAME + '-uninstalled']
diff --git a/nixpkgs/pkgs/development/libraries/openxr-loader/default.nix b/nixpkgs/pkgs/development/libraries/openxr-loader/default.nix
new file mode 100644
index 000000000000..d1a20552ff76
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/openxr-loader/default.nix
@@ -0,0 +1,40 @@
+{ stdenv, fetchFromGitHub, cmake, python3, libX11, libXxf86vm, libXrandr }:
+
+stdenv.mkDerivation rec {
+  pname = "openxr-loader";
+  version = "1.0.1";
+
+  src = fetchFromGitHub {
+    owner = "KhronosGroup";
+    repo = "OpenXR-SDK-Source";
+    rev = "release-${version}";
+    sha256 = "1sif2w2vm793j6493364i6pp6s6yqi7fwa6iky5abzmzda51cg5q";
+  };
+
+  nativeBuildInputs = [ cmake python3 ];
+  buildInputs = [ libX11 libXxf86vm libXrandr ];
+  enableParallelBuilding = true;
+
+  cmakeFlags = [ "-DBUILD_TESTS=OFF" ];
+
+  outputs = [ "out" "dev" "layers" ];
+
+  postInstall = ''
+    mkdir -p "$layers/share"
+    mv "$out/share/openxr" "$layers/share"
+    # Use absolute paths in manifests so no LD_LIBRARY_PATH shenanigans are necessary
+    for file in "$layers/share/openxr/1/api_layers/explicit.d/"*; do
+        substituteInPlace "$file" --replace '"library_path": "lib' "\"library_path\": \"$layers/lib/lib"
+    done
+    mkdir -p "$layers/lib"
+    mv "$out/lib/libXrApiLayer"* "$layers/lib"
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Khronos OpenXR loader";
+    homepage    = https://www.khronos.org/openxr;
+    platforms   = platforms.linux;
+    license     = licenses.asl20;
+    maintainers = [ maintainers.ralith ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/ptex/default.nix b/nixpkgs/pkgs/development/libraries/ptex/default.nix
index aa17771ec9f2..b4571d07fbf3 100644
--- a/nixpkgs/pkgs/development/libraries/ptex/default.nix
+++ b/nixpkgs/pkgs/development/libraries/ptex/default.nix
@@ -1,36 +1,27 @@
-{ stdenv, fetchFromGitHub, zlib, python, cmake }:
+{ stdenv, fetchFromGitHub, zlib, python, cmake, pkg-config }:
 
 stdenv.mkDerivation rec
 {
-  name = "ptex-${version}";
-  version = "2.3.0";
+  pname = "ptex";
+  version = "2.3.2";
 
   src = fetchFromGitHub {
     owner = "wdas";
     repo = "ptex";
     rev = "v${version}";
-    sha256 = "0nfz0y66bmi6xckn1whi4sfd8i3ibln212fgm4img2z98b6vccyg";
+    sha256 = "1c3pdqszn4y3d86qzng8b0hqdrchnl39adq5ab30wfnrgl2hnm4z";
   };
 
   outputs = [ "bin" "dev" "out" "lib" ];
 
-  buildInputs = [ zlib python cmake ];
+  buildInputs = [ zlib python cmake pkg-config ];
 
   enableParallelBuilding = true;
 
-  buildPhase = ''
-      mkdir -p $out
-
-      make prefix=$out
-
-      mkdir -p $bin/bin
-      mkdir -p $dev/include
-      mkdir -p $lib/lib
-      '';
-
-  installPhase = ''
-    make install
-    mv $out/bin $bin/
+  # Can be removed in the next release
+  # https://github.com/wdas/ptex/pull/42
+  patchPhase = ''
+    echo v${version} >version
   '';
 
   meta = with stdenv.lib; {
diff --git a/nixpkgs/pkgs/development/libraries/pth/default.nix b/nixpkgs/pkgs/development/libraries/pth/default.nix
index c315cb8f72b4..b2173ec21ee1 100644
--- a/nixpkgs/pkgs/development/libraries/pth/default.nix
+++ b/nixpkgs/pkgs/development/libraries/pth/default.nix
@@ -10,6 +10,8 @@ stdenv.mkDerivation rec {
 
   preConfigure = stdenv.lib.optionalString stdenv.isAarch32 ''
     configureFlagsArray=("CFLAGS=-DJB_SP=8 -DJB_PC=9")
+  '' + stdenv.lib.optionalString (stdenv.hostPlatform.libc == "glibc") ''
+    configureFlagsArray+=("ac_cv_check_sjlj=ssjlj")
   '';
 
   meta = with stdenv.lib; {
@@ -17,6 +19,5 @@ stdenv.mkDerivation rec {
     homepage = https://www.gnu.org/software/pth;
     license = licenses.lgpl21Plus;
     platforms = platforms.all;
-    broken = stdenv.hostPlatform != stdenv.buildPlatform && stdenv.hostPlatform.isAarch64;
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/qt-4.x/4.8/default.nix b/nixpkgs/pkgs/development/libraries/qt-4.x/4.8/default.nix
index de6457db98b2..f833d130fbba 100644
--- a/nixpkgs/pkgs/development/libraries/qt-4.x/4.8/default.nix
+++ b/nixpkgs/pkgs/development/libraries/qt-4.x/4.8/default.nix
@@ -83,11 +83,13 @@ stdenv.mkDerivation rec {
           + "21b342d71c19e6d68b649947f913410fe6129ea4/debian/patches/kubuntu_39_fix_medium_font.diff";
         sha256 = "0bli44chn03c2y70w1n8l7ss4ya0b40jqqav8yxrykayi01yf95j";
       })
-      (fetchpatch {
-        name = "qt4-gcc6.patch";
-        url = "https://git.archlinux.org/svntogit/packages.git/plain/trunk/qt4-gcc6.patch?h=packages/qt4&id=ca773a144f5abb244ac4f2749eeee9333cac001f";
-        sha256 = "07lrva7bjh6i40p7b3ml26a2jlznri8bh7y7iyx5zmvb1gfxmj34";
-      })
+      # Patch is no longer available from here, so vendoring it for now.
+      #(fetchpatch {
+      #  name = "qt4-gcc6.patch";
+      #  url = "https://git.archlinux.org/svntogit/packages.git/plain/trunk/qt4-gcc6.patch?h=packages/qt4&id=ca773a144f5abb244ac4f2749eeee9333cac001f";
+      #  sha256 = "07lrva7bjh6i40p7b3ml26a2jlznri8bh7y7iyx5zmvb1gfxmj34";
+      #})
+      ./qt4-gcc6.patch
     ]
     ++ lib.optional gtkStyle (substituteAll ({
         src = ./dlopen-gtkstyle.diff;
diff --git a/nixpkgs/pkgs/development/libraries/qt-4.x/4.8/qt4-gcc6.patch b/nixpkgs/pkgs/development/libraries/qt-4.x/4.8/qt4-gcc6.patch
new file mode 100644
index 000000000000..000e345cf132
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/qt-4.x/4.8/qt4-gcc6.patch
@@ -0,0 +1,33 @@
+--- qt-everywhere-opensource-src-4.8.7/configure.gcc6	2016-04-15 07:04:19.430268222 -0500
++++ qt-everywhere-opensource-src-4.8.7/configure	2016-04-15 07:05:22.157568689 -0500
+@@ -7744,7 +7744,7 @@
+     *-g++*)
+ 	# Check gcc's version
+ 	case "$(${QMAKE_CONF_COMPILER} -dumpversion)" in
+-	    5*|4*|3.4*)
++	    8*|7*|6*|5*|4*|3.4*)
+ 		;;
+             3.3*)
+                 canBuildWebKit="no"
+@@ -8060,7 +8060,7 @@
+     3.*)
+         COMPILER_VERSION="3.*"
+         ;;
+-    5*|4.*)
++    8*|7*|6*|5*|4.*)
+         COMPILER_VERSION="4"
+         ;;
+     *)
+--- qt-everywhere-opensource-src-4.8.7/src/xmlpatterns/api/qcoloroutput_p.h.gcc6	2015-05-07 09:14:48.000000000 -0500
++++ qt-everywhere-opensource-src-4.8.7/src/xmlpatterns/api/qcoloroutput_p.h	2016-04-15 07:04:19.431268227 -0500
+@@ -70,8 +70,8 @@
+             ForegroundShift = 10,
+             BackgroundShift = 20,
+             SpecialShift    = 20,
+-            ForegroundMask  = ((1 << ForegroundShift) - 1) << ForegroundShift,
+-            BackgroundMask  = ((1 << BackgroundShift) - 1) << BackgroundShift
++            ForegroundMask  = 0x1f << ForegroundShift,
++            BackgroundMask  = 0x7 << BackgroundShift
+         };
+ 
+     public:
diff --git a/nixpkgs/pkgs/development/libraries/qt-5/5.11/default.nix b/nixpkgs/pkgs/development/libraries/qt-5/5.11/default.nix
index 67c5047e5078..7f0937db30f0 100644
--- a/nixpkgs/pkgs/development/libraries/qt-5/5.11/default.nix
+++ b/nixpkgs/pkgs/development/libraries/qt-5/5.11/default.nix
@@ -9,9 +9,8 @@ top-level attribute to `top-level/all-packages.nix`.
 1. Update the URL in `pkgs/development/libraries/qt-5/$VERSION/fetch.sh`.
 2. From the top of the Nixpkgs tree, run
    `./maintainers/scripts/fetch-kde-qt.sh > pkgs/development/libraries/qt-5/$VERSION/srcs.nix`.
-3. Update `qtCompatVersion` below if the minor version number changes.
-4. Check that the new packages build correctly.
-5. Commit the changes and open a pull request.
+3. Check that the new packages build correctly.
+4. Commit the changes and open a pull request.
 
 */
 
@@ -32,7 +31,7 @@ with stdenv.lib;
 
 let
 
-  qtCompatVersion = "5.11";
+  qtCompatVersion = srcs.qtbase.version;
 
   stdenvActual = if stdenv.cc.isClang then llvmPackages_5.stdenv else stdenv;
 
diff --git a/nixpkgs/pkgs/development/libraries/qt-5/5.12/default.nix b/nixpkgs/pkgs/development/libraries/qt-5/5.12/default.nix
index 1fbf7b57289f..1bc63d0e2b9d 100644
--- a/nixpkgs/pkgs/development/libraries/qt-5/5.12/default.nix
+++ b/nixpkgs/pkgs/development/libraries/qt-5/5.12/default.nix
@@ -9,9 +9,8 @@ top-level attribute to `top-level/all-packages.nix`.
 1. Update the URL in `pkgs/development/libraries/qt-5/$VERSION/fetch.sh`.
 2. From the top of the Nixpkgs tree, run
    `./maintainers/scripts/fetch-kde-qt.sh > pkgs/development/libraries/qt-5/$VERSION/srcs.nix`.
-3. Update `qtCompatVersion` below if the minor version number changes.
-4. Check that the new packages build correctly.
-5. Commit the changes and open a pull request.
+3. Check that the new packages build correctly.
+4. Commit the changes and open a pull request.
 
 */
 
@@ -32,7 +31,7 @@ with stdenv.lib;
 
 let
 
-  qtCompatVersion = "5.12";
+  qtCompatVersion = srcs.qtbase.version;
 
   stdenvActual = if stdenv.cc.isClang then llvmPackages_5.stdenv else stdenv;
 
diff --git a/nixpkgs/pkgs/development/libraries/qt-5/5.6/default.nix b/nixpkgs/pkgs/development/libraries/qt-5/5.6/default.nix
index 4f739b57ffec..d45b014b765e 100644
--- a/nixpkgs/pkgs/development/libraries/qt-5/5.6/default.nix
+++ b/nixpkgs/pkgs/development/libraries/qt-5/5.6/default.nix
@@ -18,9 +18,8 @@ existing packages here and modify it as necessary.
 1. Update the URL in `./fetch.sh`.
 2. Run `./maintainers/scripts/fetch-kde-qt.sh pkgs/development/libraries/qt-5/$VERSION/`
    from the top of the Nixpkgs tree.
-3. Update `qtCompatVersion` below if the minor version number changes.
-4. Check that the new packages build correctly.
-5. Commit the changes and open a pull request.
+3. Check that the new packages build correctly.
+4. Commit the changes and open a pull request.
 
 */
 
@@ -40,7 +39,7 @@ with stdenv.lib;
 
 let
 
-  qtCompatVersion = "5.6";
+  qtCompatVersion = srcs.qtbase.version;
 
   mirror = "http://download.qt.io";
   srcs = import ./srcs.nix { inherit fetchurl; inherit mirror; };
diff --git a/nixpkgs/pkgs/development/libraries/qt-5/5.9/default.nix b/nixpkgs/pkgs/development/libraries/qt-5/5.9/default.nix
index f36f86e26ffe..52c763263b53 100644
--- a/nixpkgs/pkgs/development/libraries/qt-5/5.9/default.nix
+++ b/nixpkgs/pkgs/development/libraries/qt-5/5.9/default.nix
@@ -9,9 +9,8 @@ top-level attribute to `top-level/all-packages.nix`.
 1. Update the URL in `pkgs/development/libraries/qt-5/$VERSION/fetch.sh`.
 2. From the top of the Nixpkgs tree, run
    `./maintainers/scripts/fetch-kde-qt.sh > pkgs/development/libraries/qt-5/$VERSION/srcs.nix`.
-3. Update `qtCompatVersion` below if the minor version number changes.
-4. Check that the new packages build correctly.
-5. Commit the changes and open a pull request.
+3. Check that the new packages build correctly.
+4. Commit the changes and open a pull request.
 
 */
 
@@ -31,7 +30,7 @@ with stdenv.lib;
 
 let
 
-  qtCompatVersion = "5.9";
+  qtCompatVersion = srcs.qtbase.version;
 
   mirror = "http://download.qt.io";
   srcs = import ./srcs.nix { inherit fetchurl; inherit mirror; };
diff --git a/nixpkgs/pkgs/development/libraries/qtstyleplugins/default.nix b/nixpkgs/pkgs/development/libraries/qtstyleplugins/default.nix
index b94cdd22f7f0..dd50e6ec0398 100644
--- a/nixpkgs/pkgs/development/libraries/qtstyleplugins/default.nix
+++ b/nixpkgs/pkgs/development/libraries/qtstyleplugins/default.nix
@@ -1,6 +1,6 @@
-{ stdenv, fetchFromGitHub, qmake, pkgconfig, gtk2 }:
+{ stdenv, mkDerivation, fetchFromGitHub, qmake, pkgconfig, gtk2 }:
 
-stdenv.mkDerivation rec {
+mkDerivation rec {
   name = "qtstyleplugins-2017-03-11";
 
   src = fetchFromGitHub {
diff --git a/nixpkgs/pkgs/development/libraries/readline/readline-8.0-patches.nix b/nixpkgs/pkgs/development/libraries/readline/readline-8.0-patches.nix
index b8019fb33502..433da83dab95 100644
--- a/nixpkgs/pkgs/development/libraries/readline/readline-8.0-patches.nix
+++ b/nixpkgs/pkgs/development/libraries/readline/readline-8.0-patches.nix
@@ -1,4 +1,5 @@
 # Automatically generated by `update-patch-set.sh'; do not edit.
 
 patch: [
+(patch "001" "0sfh7wn0pr743xspnb1zndxndlv9rc0hcg14cbw5cmyg6f4ykrfq")
 ]
diff --git a/nixpkgs/pkgs/development/libraries/science/math/spooles/default.nix b/nixpkgs/pkgs/development/libraries/science/math/spooles/default.nix
new file mode 100644
index 000000000000..953f5a70b8aa
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/science/math/spooles/default.nix
@@ -0,0 +1,48 @@
+{ stdenv, fetchurl, gfortran, perl }:
+
+stdenv.mkDerivation rec {
+  pname = "spooles";
+  version = "2.2";
+
+  src = fetchurl {
+    url = "http://www.netlib.org/linalg/spooles/spooles.${version}.tgz";
+    sha256 = "1pf5z3vvwd8smbpibyabprdvcmax0grzvx2y0liy98c7x6h5jid8";
+  };
+
+  sourceRoot = ".";
+
+  patches = [
+    ./spooles.patch
+  ];
+
+  buildPhase = ''
+    make lib
+  '';
+
+  installPhase = ''
+    mkdir -p $out/lib $out/include/spooles
+    cp libspooles.a libspooles.so.2.2 $out/lib/
+    ln -s libspooles.so.2.2 $out/lib/libspooles.so.2
+    ln -s libspooles.so.2 $out/lib/libspooles.so
+    for h in *.h; do
+      if [ $h != 'MPI.h' ]; then
+         cp $h $out/include/spooles
+         d=`basename $h .h`
+         if [ -d $d ]; then
+            mkdir $out/include/spooles/$d
+            cp $d/*.h $out/include/spooles/$d
+         fi
+      fi
+    done
+  '';
+
+  nativeBuildInputs = [ perl ];
+
+  meta = with stdenv.lib; {
+    homepage = "http://www.netlib.org/linalg/spooles/";
+    description = "Library for solving sparse real and complex linear systems of equations";
+    license = licenses.publicDomain;
+    maintainers = with maintainers; [ gebner ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/science/math/spooles/spooles.patch b/nixpkgs/pkgs/development/libraries/science/math/spooles/spooles.patch
new file mode 100644
index 000000000000..c0c93c9365c9
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/science/math/spooles/spooles.patch
@@ -0,0 +1,188 @@
+diff --git a/I2Ohash/src/util.c b/I2Ohash/src/util.c
+index 72d082e..f32f667 100644
+--- a/I2Ohash/src/util.c
++++ b/I2Ohash/src/util.c
+@@ -39,9 +39,10 @@ fflush(stdout) ;
+ */
+ loc1 = (key1 + 1) % hashtable->nlist ;
+ loc2 = (key2 + 1) % hashtable->nlist ;
+-loc  = (loc1*loc2) % hashtable->nlist ;
++long int loc3  = (long int)loc1*(long int)loc2 % hashtable->nlist ;
++loc =(int) loc3;
+ #if MYDEBUG > 0
+-fprintf(stdout, "\n loc1 = %d, loc2 = %d, loc3 = %d", loc1, loc2, loc) ;
++fprintf(stdout, "\n loc1 = %d, loc2 = %d, loc3 = %ld, loc = %d", loc1, loc2, loc3, loc) ;
+ fflush(stdout) ;
+ #endif
+ /*
+@@ -158,9 +159,10 @@ fflush(stdout) ;
+ #endif
+ loc1 = (key1 + 1) % hashtable->nlist ;
+ loc2 = (key2 + 1) % hashtable->nlist ;
+-loc  = (loc1*loc2) % hashtable->nlist ;
++long int loc3  = (long int)loc1*(long int)loc2 % hashtable->nlist ;
++loc =(int) loc3;
+ #if MYDEBUG > 0
+-fprintf(stdout, "\n loc1 = %d, loc2 = %d, loc3 = %d", loc1, loc2, loc) ;
++fprintf(stdout, "\n loc1 = %d, loc2 = %d, loc3 = %ld, loc = %d", loc1, loc2, loc3, loc) ;
+ fflush(stdout) ;
+ #endif
+ /*
+diff --git a/MPI/makefile b/MPI/makefile
+index 0c09f86..d25e70a 100644
+--- a/MPI/makefile
++++ b/MPI/makefile
+@@ -2,7 +2,7 @@ all_drivers :
+ 	cd drivers ; make drivers
+ 
+ lib :
+-	cd src ; make spoolesMPI.a
++	cd src ; make makeLib
+ 
+ clean :
+ 	cd src ; make clean
+diff --git a/MPI/src/makefile b/MPI/src/makefile
+index f7650b7..71e4c49 100644
+--- a/MPI/src/makefile
++++ b/MPI/src/makefile
+@@ -42,3 +42,8 @@ $(OBJ).a : \
+ 
+ clean :
+ 	- rm -f *.a *.o
++
++makeLib :
++	perl ../../makeLib > makeG
++	make -f makeG
++	rm -f makeG
+diff --git a/MT/makefile b/MT/makefile
+index 9b86a32..d25e70a 100644
+--- a/MT/makefile
++++ b/MT/makefile
+@@ -2,7 +2,7 @@ all_drivers :
+ 	cd drivers ; make drivers
+ 
+ lib :
+-	cd src ; make spoolesMT.a
++	cd src ; make makeLib
+ 
+ clean :
+ 	cd src ; make clean
+diff --git a/Make.inc b/Make.inc
+index f99eb8f..2de8a25 100644
+--- a/Make.inc
++++ b/Make.inc
+@@ -12,7 +12,7 @@
+ # for solaris
+ #
+ # CC = gcc
+-  CC = /usr/lang-4.0/bin/cc
++#  CC = /usr/lang-4.0/bin/cc
+ #
+ # for sgi
+ #
+@@ -28,7 +28,7 @@
+ # 
+ # OPTLEVEL = 
+ # OPTLEVEL = -g -v
+-  OPTLEVEL = -O
++  OPTLEVEL = -O3
+ # OPTLEVEL = -xO5 -v
+ # OPTLEVEL = -O3
+ # OPTLEVEL = -O4
+@@ -43,7 +43,7 @@
+ #  set any load flags
+ #
+ #  LDFLAGS = -Wl,+parallel -Wl,+tm,spp2000 # for hp exemplar
+-   LDFLAGS =
++#   LDFLAGS =
+ #
+ #---------------------------------------------------------------------
+ #
+@@ -103,7 +103,7 @@
+ #  MPI install library
+ #
+ # MPI_INSTALL_DIR = 
+-  MPI_INSTALL_DIR = /usr/local/mpich-1.0.13
++#  MPI_INSTALL_DIR = /usr/lib/openmpi
+ #
+ #---------------------------------------------------------------------
+ #
+@@ -142,6 +142,6 @@
+ #  MPI include path
+ #
+ # MPI_INCLUDE_DIR = 
+-  MPI_INCLUDE_DIR = -I$(MPI_INSTALL_DIR)/include
++#  MPI_INCLUDE_DIR = -I/usr/include/mpi
+ #
+ #---------------------------------------------------------------------
+diff --git a/Utilities/src/iohb.c b/Utilities/src/iohb.c
+index ac38f7b..ac34034 100644
+--- a/Utilities/src/iohb.c
++++ b/Utilities/src/iohb.c
+@@ -1725,7 +1725,7 @@ static void upcase(char* S)
+ 
+ static void IOHBTerminate(char* message) 
+ {
+-   fprintf(stderr,message);
++   fputs(message, stderr);
+    exit(1);
+ }
+ 
+diff --git a/makeLib b/makeLib
+index 1780f39..7697b06 100755
+--- a/makeLib
++++ b/makeLib
+@@ -64,14 +64,19 @@ foreach $src ( @srcnames ) {
+    $srcname = " \\\n     " . $src ;
+    print $srcname ;
+ }
++print "\n\n.SUFFIXES: .c .o .lo .a .so" ;
+ print "\n\nOBJ_FILES = \$\{SRC:.c=.o\}" ;
++print "\n\nLOBJ_FILES = \$\{SRC:.c=.lo\}" ;
+ print "\n\n" ;
+ print <<'EOF' ;
+ .c.o :
+-	$(PURIFY) $(CC) -c $(CFLAGS) $*.c -o $(OBJ)_$*.o
++	$(PURIFY) $(CC) -c $(CFLAGS) $*.c -o $(OBJ)_$*.o $(MPI_INCLUDE_DIR)
+ 
+-../../spooles.a : ${OBJ_FILES}
+-	$(AR) $(ARFLAGS) ../../spooles.a $(OBJ)_*.o
++.c.lo :
++	$(PURIFY) $(CC) -c $(CFLAGS) $*.c -fPIC -DPIC -o $(OBJ)_$*.lo $(MPI_INCLUDE_DIR)
++
++../../libspooles.a : ${OBJ_FILES} ${LOBJ_FILES}
++	$(AR) $(ARFLAGS) ../../libspooles.a $(OBJ)_*.o
+ 	rm -f $(OBJ)_*.o
+-	$(RANLIB) ../../spooles.a
++	$(RANLIB) ../../libspooles.a
+ EOF
+diff --git a/makefile b/makefile
+index f014c7d..7c8042a 100755
+--- a/makefile
++++ b/makefile
+@@ -124,7 +124,9 @@ lib :
+ 	cd ZV               ; make lib
+ 	cd misc             ; make lib
+ #cd MPI              ; make lib
+-#cd MT               ; make lib
++	cd MT               ; make lib
++	gcc -shared */*/*.lo -Wl,-soname,libspooles.so.2.2 -o libspooles.so.2.2 -lpthread -lm
++	ln -s libspooles.so.2.2 libspooles.so
+ 
+ global :
+ 	cd A2/src             ; make -f makeGlobalLib
+diff --git a/timings.h b/timings.h
+index 23df189..685800b 100644
+--- a/timings.h
++++ b/timings.h
+@@ -2,9 +2,8 @@
+ #define _TIMINGS_
+ #include <sys/time.h>
+ static struct timeval  TV ;
+-static struct timezone TZ ;
+ #define MARKTIME(t) \
+-   gettimeofday(&TV, &TZ) ; \
++   gettimeofday(&TV, NULL) ; \
+    t = (TV.tv_sec + 0.000001*TV.tv_usec)
+ #endif
+ 
diff --git a/nixpkgs/pkgs/development/libraries/umockdev/default.nix b/nixpkgs/pkgs/development/libraries/umockdev/default.nix
index 07892e970875..866dc48f2704 100644
--- a/nixpkgs/pkgs/development/libraries/umockdev/default.nix
+++ b/nixpkgs/pkgs/development/libraries/umockdev/default.nix
@@ -1,30 +1,46 @@
-{ stdenv, fetchFromGitHub, autoreconfHook, gobject-introspection
-, pkgconfig, glib, systemd, libgudev, vala }:
+{ stdenv, fetchurl, fetchpatch, pkgconfig
+, gobject-introspection, glib, systemd, libgudev, vala
+, usbutils, which, python3 }:
 
 stdenv.mkDerivation rec {
   name = "umockdev-${version}";
-  version = "0.12.1";
+  version = "0.13.1";
 
   outputs = [ "bin" "out" "dev" "doc" ];
 
-  src = fetchFromGitHub {
-    owner  = "martinpitt";
-    repo   = "umockdev";
-    rev    = version;
-    sha256 = "0wnmz4jh04mvqzjnqvxrah969gg4x4v8d6ip61zc7jpbwnqb2fpg";
+  src = fetchurl {
+    url = "https://github.com/martinpitt/umockdev/releases/download/${version}/${name}.tar.xz";
+    sha256 = "197a169imiirgm73d9fn9234cx56agyw9d2f47h7f1d8s2d51lla";
   };
 
+  patches = [
+    ./fix-test-paths.patch
+    # https://github.com/martinpitt/umockdev/pull/93
+    (fetchpatch {
+      url = "https://github.com/abbradar/umockdev/commit/ce22f893bf50de0b32760238a3e2cfb194db89e9.patch";
+      sha256 = "01q3qhs30x8hl23iigimsa2ikbiw8y8y0bpmh02mh1my87shpwnx";
+    })
+  ];
+
   # autoreconfHook complains if we try to build the documentation
   postPatch = ''
     echo 'EXTRA_DIST =' > docs/gtk-doc.make
   '';
 
+  preCheck = ''
+    patchShebangs tests/test-static-code
+  '';
+
   buildInputs = [ glib systemd libgudev ];
 
-  nativeBuildInputs = [ autoreconfHook pkgconfig vala gobject-introspection ];
+  nativeBuildInputs = [ pkgconfig vala gobject-introspection ];
+
+  checkInputs = [ python3 which usbutils ];
 
   enableParallelBuilding = true;
 
+  doCheck = true;
+
   meta = with stdenv.lib; {
     description = "Mock hardware devices for creating unit tests";
     license = licenses.lgpl2;
diff --git a/nixpkgs/pkgs/development/libraries/umockdev/fix-test-paths.patch b/nixpkgs/pkgs/development/libraries/umockdev/fix-test-paths.patch
new file mode 100644
index 000000000000..53015d662684
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/umockdev/fix-test-paths.patch
@@ -0,0 +1,12 @@
+diff -ru3 umockdev-0.13.1/tests/test-umockdev.c umockdev-0.13.1-new/tests/test-umockdev.c
+--- umockdev-0.13.1/tests/test-umockdev.c	2019-08-18 20:39:39.708262517 +0300
++++ umockdev-0.13.1-new/tests/test-umockdev.c	2019-08-18 21:04:27.688761503 +0300
+@@ -1084,7 +1084,7 @@
+ 
+     /* sys/ in other dir should not be trapped */
+     errno = 0;
+-    dirfd = open("/run", O_RDONLY | O_DIRECTORY);
++    dirfd = open("/tmp", O_RDONLY | O_DIRECTORY);
+     g_assert_cmpint(openat(dirfd, "sys", O_RDONLY), <, 0);
+     g_assert_cmpint(errno, ==, ENOENT);
+     g_assert_cmpint(openat64(dirfd, "sys", O_RDONLY), <, 0);
diff --git a/nixpkgs/pkgs/development/libraries/wolfssl/default.nix b/nixpkgs/pkgs/development/libraries/wolfssl/default.nix
index e7feaabc739a..549e492e944c 100644
--- a/nixpkgs/pkgs/development/libraries/wolfssl/default.nix
+++ b/nixpkgs/pkgs/development/libraries/wolfssl/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   name = "wolfssl-${version}";
-  version = "4.0.0";
+  version = "4.1.0";
 
   src = fetchFromGitHub {
     owner = "wolfSSL";
     repo = "wolfssl";
     rev = "v${version}-stable";
-    sha256 = "155lmgz81ky0x04c8m2yzlsm58i9jk6hiw1ajc3wizvbpczbca57";
+    sha256 = "16d1dzbdx6x7czbxf6i1rlb5mv59yzzpnha7qgwab3yq62rlsgw3";
   };
 
   configureFlags = [ "--enable-all" ];
diff --git a/nixpkgs/pkgs/development/libraries/xdg-desktop-portal-gtk/default.nix b/nixpkgs/pkgs/development/libraries/xdg-desktop-portal-gtk/default.nix
index b8cf86999e0b..9b0316023710 100644
--- a/nixpkgs/pkgs/development/libraries/xdg-desktop-portal-gtk/default.nix
+++ b/nixpkgs/pkgs/development/libraries/xdg-desktop-portal-gtk/default.nix
@@ -1,18 +1,39 @@
-{ stdenv, fetchFromGitHub, autoreconfHook, pkgconfig, libxml2, xdg-desktop-portal, gtk3, glib, wrapGAppsHook, gsettings-desktop-schemas }:
+{ stdenv
+, fetchFromGitHub
+, autoreconfHook
+, pkgconfig
+, libxml2
+, xdg-desktop-portal
+, gtk3
+, glib
+, wrapGAppsHook
+, gsettings-desktop-schemas
+}:
 
 stdenv.mkDerivation rec {
   pname = "xdg-desktop-portal-gtk";
-  version = "1.2.0";
+  version = "1.4.0";
 
   src = fetchFromGitHub {
     owner = "flatpak";
     repo = pname;
     rev = version;
-    sha256 = "1vgnsahljzrjcdjzv1dxhp2rf709pnf8595an82llnylwa8rdp1j";
+    sha256 = "1zryfg6232vz1pmv0zqcxvl4clnbb15kjf55b24cimkcnidklbap";
   };
 
-  nativeBuildInputs = [ autoreconfHook pkgconfig libxml2 xdg-desktop-portal wrapGAppsHook ];
-  buildInputs = [ glib gtk3 gsettings-desktop-schemas ];
+  nativeBuildInputs = [
+    autoreconfHook
+    libxml2
+    pkgconfig
+    wrapGAppsHook
+    xdg-desktop-portal
+  ];
+
+  buildInputs = [
+    glib
+    gsettings-desktop-schemas
+    gtk3
+  ];
 
   meta = with stdenv.lib; {
     description = "Desktop integration portals for sandboxed apps";
diff --git a/nixpkgs/pkgs/development/libraries/xdg-desktop-portal/default.nix b/nixpkgs/pkgs/development/libraries/xdg-desktop-portal/default.nix
index 3f02946c7704..4be7bd1474cf 100644
--- a/nixpkgs/pkgs/development/libraries/xdg-desktop-portal/default.nix
+++ b/nixpkgs/pkgs/development/libraries/xdg-desktop-portal/default.nix
@@ -1,8 +1,8 @@
-{ stdenv, fetchFromGitHub, substituteAll, autoreconfHook, pkgconfig, libxml2, glib, pipewire, fontconfig, flatpak, gsettings-desktop-schemas, acl, dbus, fuse, geoclue2, wrapGAppsHook }:
+{ stdenv, fetchFromGitHub, substituteAll, autoreconfHook, pkgconfig, libxml2, glib, pipewire, fontconfig, flatpak, gsettings-desktop-schemas, acl, dbus, fuse, geoclue2, json-glib, wrapGAppsHook }:
 
 stdenv.mkDerivation rec {
   pname = "xdg-desktop-portal";
-  version = "1.2.0";
+  version = "1.4.2";
 
   outputs = [ "out" "installedTests" ];
 
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
     owner = "flatpak";
     repo = pname;
     rev = version;
-    sha256 = "1gjyif4gly0mkdx6ir6wc4vhfh1raah9jq03q28i88hr7phjdy71";
+    sha256 = "1rs3kmpczkr6nm08kb9njnl7n3rmhh0ral0xav6f0y70pyh8whx6";
   };
 
   patches = [
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
   ];
 
   nativeBuildInputs = [ autoreconfHook pkgconfig libxml2 wrapGAppsHook ];
-  buildInputs = [ glib pipewire fontconfig flatpak acl dbus geoclue2 fuse gsettings-desktop-schemas ];
+  buildInputs = [ glib pipewire fontconfig flatpak acl dbus geoclue2 fuse gsettings-desktop-schemas json-glib ];
 
   doCheck = true; # XXX: investigate!
 
diff --git a/nixpkgs/pkgs/development/libraries/xdg-desktop-portal/respect-path-env-var.patch b/nixpkgs/pkgs/development/libraries/xdg-desktop-portal/respect-path-env-var.patch
index f884899ecd19..d970f5636ae4 100644
--- a/nixpkgs/pkgs/development/libraries/xdg-desktop-portal/respect-path-env-var.patch
+++ b/nixpkgs/pkgs/development/libraries/xdg-desktop-portal/respect-path-env-var.patch
@@ -1,10 +1,12 @@
---- a/src/xdg-desktop-portal.c
-+++ b/src/xdg-desktop-portal.c
-@@ -177,38 +177,50 @@
- static void
- load_installed_portals (void)
+diff --git a/src/portal-impl.c b/src/portal-impl.c
+index 4fd48ff..346da7c 100644
+--- a/src/portal-impl.c
++++ b/src/portal-impl.c
+@@ -116,38 +116,50 @@ sort_impl_by_name (gconstpointer a,
+ void
+ load_installed_portals (gboolean opt_verbose)
  {
--  const char *portal_dir = PKGDATADIR "/portals";
+-  const char *portal_dir = DATADIR "/xdg-desktop-portal/portals";
 -  g_autoptr(GFile) dir = g_file_new_for_path (portal_dir);
 -  g_autoptr(GFileEnumerator) enumerator = NULL;
  
@@ -14,7 +16,7 @@
 +  const char *portal_dir = g_getenv ("XDG_DESKTOP_PORTAL_PATH");
 +
 +  if (portal_dir == NULL)
-+    portal_dir = PKGDATADIR "/portals";
++    portal_dir = DATADIR "/portals";
  
 -  if (enumerator == NULL)
 -    return;
@@ -56,7 +58,7 @@
 -      path = g_file_get_path (child);
 +          name = g_file_info_get_name (info);
  
--      if (!register_portal (path, &error))
+-      if (!register_portal (path, opt_verbose, &error))
 -        {
 -          g_warning ("Error loading %s: %s", path, error->message);
 -          continue;
@@ -66,7 +68,7 @@
 +          child = g_file_enumerator_get_child (enumerator, info);
 +          path = g_file_get_path (child);
 +
-+          if (!register_portal (path, &error))
++          if (!register_portal (path, opt_verbose, &error))
 +            {
 +              g_warning ("Error loading %s: %s", path, error->message);
 +              continue;
diff --git a/nixpkgs/pkgs/development/libraries/zlib/default.nix b/nixpkgs/pkgs/development/libraries/zlib/default.nix
index 9f5af47c7268..592abea4ea04 100644
--- a/nixpkgs/pkgs/development/libraries/zlib/default.nix
+++ b/nixpkgs/pkgs/development/libraries/zlib/default.nix
@@ -1,24 +1,19 @@
 { stdenv
 , fetchurl
-# Regarding static/shared libaries, the current behaviour is:
-#
-# - static=true,  shared=true:  builds both and moves .a to the .static output;
-#                               in this case `pkg-config` auto detection will
-#                               not work if the .static output is given as
-#                               buildInputs to another package (#66461)
-# - static=true,  shared=false: builds .a only and leaves it in the main output
-# - static=false, shared=true:  builds shared only
-#
-# To get both `.a` and shared libraries in one output,
-# you currently have to use
-#   static=false, shared=true
-# and use
-#   .overrideAttrs (old: { dontDisableStatic = true; })
-# This is because by default, upstream zlib ./configure builds both.
-, static ? true
+# Note: If `{ static = false; shared = false; }`, upstream's default is used
+#       (which is building both static and shared as of zlib 1.2.11).
 , shared ? true
+, static ? true
+# If true, a separate .static ouput is created and the .a is moved there.
+# In this case `pkg-config` will auto detection will currently not work if the
+# .static output is given as `buildInputs` to another package (#66461), because
+# the `.pc` file lists only the main output's lib dir.
+# If false, and if `{ static = true; }`, the .a stays in the main output.
+, splitStaticOutput ? static
 }:
 
+assert splitStaticOutput -> static;
+
 stdenv.mkDerivation (rec {
   name = "zlib-${version}";
   version = "1.2.11";
@@ -41,14 +36,35 @@ stdenv.mkDerivation (rec {
   '';
 
   outputs = [ "out" "dev" ]
-    ++ stdenv.lib.optional (shared && static) "static";
+    ++ stdenv.lib.optional splitStaticOutput "static";
   setOutputFlags = false;
   outputDoc = "dev"; # single tiny man3 page
 
-  configureFlags = stdenv.lib.optional shared "--shared"
-                   ++ stdenv.lib.optional (static && !shared) "--static";
+  # For zlib's ./configure (as of verion 1.2.11), the order
+  # of --static/--shared flags matters!
+  # `--shared --static` builds only static libs, while
+  # `--static --shared` builds both.
+  # So we use the latter order to be able to build both.
+  # Also, giving just `--shared` builds both,
+  # giving just `--static` builds only static,
+  # and giving nothing builds both.
+  # So we have 3 possible ways to build both:
+  # `--static --shared`, `--shared` and giving nothing.
+  # Of these, we choose `--shared`, only because that's
+  # what we did in the past and we can avoid mass rebuilds this way.
+  # As a result, we pass `--static` only when we want just static.
+  configureFlags = stdenv.lib.optional (static && !shared) "--static"
+                   ++ stdenv.lib.optional shared "--shared";
+
+  # Note we don't need to set `dontDisableStatic`, because static-disabling
+  # works by grepping for `enable-static` in the `./configure` script
+  # (see `pkgs/stdenv/generic/setup.sh`), and zlib's handwritten one does
+  # not have such.
+  # It wouldn't hurt setting `dontDisableStatic = static && !splitStaticOutput`
+  # here (in case zlib ever switches to autoconf in the future),
+  # but we don't do it simply to avoid mass rebuilds.
 
-  postInstall = stdenv.lib.optionalString (shared && static) ''
+  postInstall = stdenv.lib.optionalString splitStaticOutput ''
     moveToOutput lib/libz.a "$static"
   ''
     # jww (2015-01-06): Sometimes this library install as a .so, even on
@@ -69,6 +85,8 @@ stdenv.mkDerivation (rec {
   # to the bootstrap-tools libgcc (as uses to happen on arm/mips)
   NIX_CFLAGS_COMPILE = stdenv.lib.optionalString (!stdenv.hostPlatform.isDarwin) "-static-libgcc";
 
+  # We don't strip on static cross-compilation because of reports that native
+  # stripping corrupted the target library; see commit 12e960f5 for the report.
   dontStrip = stdenv.hostPlatform != stdenv.buildPlatform && static;
   configurePlatforms = [];