summary refs log tree commit diff
path: root/pkgs/development
diff options
context:
space:
mode:
authorFrederik Rietdijk <fridh@fridh.nl>2019-10-29 09:53:46 +0100
committerFrederik Rietdijk <fridh@fridh.nl>2019-10-29 09:53:46 +0100
commit58d9dab886cb8b2cd590b055942c660f21ee8999 (patch)
tree1431fc935bb15892ebdc67a1b607263639d199c5 /pkgs/development
parent3281d30b7cfb858cbf7c1ea4ff1e18b530c10d75 (diff)
parentbcf59bbfcb6c8507b6664d06e75ef7b1249e6f40 (diff)
downloadnixpkgs-58d9dab886cb8b2cd590b055942c660f21ee8999.tar
nixpkgs-58d9dab886cb8b2cd590b055942c660f21ee8999.tar.gz
nixpkgs-58d9dab886cb8b2cd590b055942c660f21ee8999.tar.bz2
nixpkgs-58d9dab886cb8b2cd590b055942c660f21ee8999.tar.lz
nixpkgs-58d9dab886cb8b2cd590b055942c660f21ee8999.tar.xz
nixpkgs-58d9dab886cb8b2cd590b055942c660f21ee8999.tar.zst
nixpkgs-58d9dab886cb8b2cd590b055942c660f21ee8999.zip
Merge staging-next into staging
Diffstat (limited to 'pkgs/development')
-rw-r--r--pkgs/development/libraries/dbus/default.nix15
-rw-r--r--pkgs/development/libraries/glib/default.nix2
-rw-r--r--pkgs/development/libraries/gnome-online-accounts/default.nix103
-rw-r--r--pkgs/development/libraries/gtk/3.x.nix2
-rw-r--r--pkgs/development/libraries/libcef/default.nix16
-rw-r--r--pkgs/development/libraries/libnats-c/default.nix31
-rw-r--r--pkgs/development/libraries/liburing/default.nix8
-rw-r--r--pkgs/development/libraries/libusb1/default.nix21
-rw-r--r--pkgs/development/libraries/nsss/default.nix4
-rw-r--r--pkgs/development/libraries/nvidia-texture-tools/default.nix7
-rw-r--r--pkgs/development/libraries/polkit/default.nix2
-rw-r--r--pkgs/development/libraries/science/math/mkl/default.nix60
-rw-r--r--pkgs/development/libraries/skalibs/default.nix4
-rw-r--r--pkgs/development/libraries/utmps/default.nix4
-rw-r--r--pkgs/development/libraries/vte/default.nix15
-rw-r--r--pkgs/development/libraries/xapian/default.nix2
-rw-r--r--pkgs/development/libraries/xapian/skip-flaky-darwin-test.patch6
-rw-r--r--pkgs/development/ocaml-modules/checkseum/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/ctypes/default.nix22
-rw-r--r--pkgs/development/ocaml-modules/decompress/default.nix37
-rw-r--r--pkgs/development/ocaml-modules/encore/default.nix20
-rw-r--r--pkgs/development/ocaml-modules/git/default.nix19
-rw-r--r--pkgs/development/ocaml-modules/imagelib/default.nix25
-rw-r--r--pkgs/development/ocaml-modules/imagelib/unix.nix8
-rw-r--r--pkgs/development/ocaml-modules/integers/default.nix22
-rw-r--r--pkgs/development/ocaml-modules/ke/default.nix28
-rw-r--r--pkgs/development/perl-modules/Po4a/default.nix3
-rw-r--r--pkgs/development/python-modules/acoustics/default.nix4
-rw-r--r--pkgs/development/python-modules/datadog/default.nix13
-rw-r--r--pkgs/development/python-modules/html2text/2018.nix21
-rw-r--r--pkgs/development/python-modules/html2text/default.nix23
-rw-r--r--pkgs/development/python-modules/ics/default.nix33
-rw-r--r--pkgs/development/python-modules/isort/default.nix19
-rw-r--r--pkgs/development/python-modules/jaraco_collections/default.nix2
-rw-r--r--pkgs/development/python-modules/kombu/default.nix22
-rw-r--r--pkgs/development/python-modules/mailmanclient/default.nix8
-rw-r--r--pkgs/development/python-modules/moto/default.nix5
-rw-r--r--pkgs/development/python-modules/pelican/default.nix6
-rw-r--r--pkgs/development/python-modules/py3buddy/default.nix8
-rw-r--r--pkgs/development/python-modules/pylint/1.9.nix4
-rw-r--r--pkgs/development/python-modules/pyro4/default.nix13
-rw-r--r--pkgs/development/python-modules/python-language-server/default.nix8
-rw-r--r--pkgs/development/python-modules/python-logstash/default.nix21
-rw-r--r--pkgs/development/python-modules/python-nomad/default.nix23
-rw-r--r--pkgs/development/python-modules/qscintilla-qt5/default.nix3
-rw-r--r--pkgs/development/python-modules/rpyc/default.nix19
-rw-r--r--pkgs/development/python-modules/tables/default.nix15
-rw-r--r--pkgs/development/python-modules/tatsu/default.nix40
-rw-r--r--pkgs/development/ruby-modules/solargraph/Gemfile.lock17
-rw-r--r--pkgs/development/ruby-modules/solargraph/gemset.nix42
-rw-r--r--pkgs/development/tools/gir/default.nix23
51 files changed, 647 insertions, 233 deletions
diff --git a/pkgs/development/libraries/dbus/default.nix b/pkgs/development/libraries/dbus/default.nix
index 804f0e7fc85..5024ea3ef24 100644
--- a/pkgs/development/libraries/dbus/default.nix
+++ b/pkgs/development/libraries/dbus/default.nix
@@ -3,6 +3,7 @@
 , fetchurl
 , pkgconfig
 , expat
+, enableSystemd ? stdenv.isLinux && !stdenv.hostPlatform.isMusl
 , systemd
 , libX11 ? null
 , libICE ? null
@@ -15,6 +16,8 @@ assert
   x11Support ->
     libX11 != null && libICE != null && libSM != null;
 
+assert enableSystemd -> systemd != null;
+
 stdenv.mkDerivation rec {
   pname = "dbus";
   version = "1.12.16";
@@ -50,11 +53,12 @@ stdenv.mkDerivation rec {
     expat
   ];
 
-  buildInputs = lib.optionals x11Support [
-    libX11
-    libICE
-    libSM
-  ] ++ lib.optional stdenv.isLinux systemd;
+  buildInputs =
+    lib.optionals x11Support [
+      libX11
+      libICE
+      libSM
+    ] ++ lib.optional enableSystemd systemd;
   # ToDo: optional selinux?
 
   configureFlags = [
@@ -101,6 +105,7 @@ stdenv.mkDerivation rec {
     description = "Simple interprocess messaging system";
     homepage = http://www.freedesktop.org/wiki/Software/dbus/;
     license = licenses.gpl2Plus; # most is also under AFL-2.1
+    maintainers = with maintainers; [ worldofpeace ];
     platforms = platforms.unix;
   };
 }
diff --git a/pkgs/development/libraries/glib/default.nix b/pkgs/development/libraries/glib/default.nix
index ff01a9cafe8..68bc169bb89 100644
--- a/pkgs/development/libraries/glib/default.nix
+++ b/pkgs/development/libraries/glib/default.nix
@@ -202,7 +202,7 @@ stdenv.mkDerivation rec {
     description = "C library of programming buildings blocks";
     homepage    = https://www.gtk.org/;
     license     = licenses.lgpl21Plus;
-    maintainers = with maintainers; [ lovek323 raskin ];
+    maintainers = with maintainers; [ lovek323 raskin worldofpeace ];
     platforms   = platforms.unix;
 
     longDescription = ''
diff --git a/pkgs/development/libraries/gnome-online-accounts/default.nix b/pkgs/development/libraries/gnome-online-accounts/default.nix
index 82847853588..adbb714c7b2 100644
--- a/pkgs/development/libraries/gnome-online-accounts/default.nix
+++ b/pkgs/development/libraries/gnome-online-accounts/default.nix
@@ -1,42 +1,94 @@
-{ stdenv, fetchurl, pkgconfig, vala, glib, libxslt, gtk3, wrapGAppsHook
-, webkitgtk, json-glib, librest, libsecret, gtk-doc, gobject-introspection
-, gettext, icu, glib-networking
-, libsoup, docbook_xsl, docbook_xml_dtd_412, gnome3, gcr, kerberos
+{ stdenv
+, fetchFromGitLab
+, pkgconfig
+, vala
+, glib
+, meson
+, ninja
+, python3
+, libxslt
+, gtk3
+, webkitgtk
+, json-glib
+, librest
+, libsecret
+, gtk-doc
+, gobject-introspection
+, gettext
+, icu
+, glib-networking
+, libsoup
+, docbook_xsl
+, docbook_xml_dtd_412
+, gnome3
+, gcr
+, kerberos
+, gvfs
+, dbus
+, wrapGAppsHook
 }:
 
-let
+stdenv.mkDerivation rec {
   pname = "gnome-online-accounts";
-  version = "3.34.0";
-in stdenv.mkDerivation rec {
-  name = "${pname}-${version}";
+  version = "3.34.1";
 
-  src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
-    sha256 = "0mvz6wrw03zyp5sm46znkipncagb257xam29mfi06ixmxvjbqky4";
+  # https://gitlab.gnome.org/GNOME/gnome-online-accounts/issues/87
+  src = fetchFromGitLab {
+    domain = "gitlab.gnome.org";
+    owner = "GNOME";
+    repo = "gnome-online-accounts";
+    rev = version;
+    sha256 = "0ry06qw068rqn4y42953kwl6fkxpgfya58y87cd3zink6gj7q0fm";
   };
 
   outputs = [ "out" "man" "dev" "devdoc" ];
 
-  configureFlags = [
-    "--enable-media-server"
-    "--enable-kerberos"
-    "--enable-lastfm"
-    "--enable-todoist"
-    "--enable-gtk-doc"
-    "--enable-documentation"
+  mesonFlags = [
+    "-Dfedora=false" # not useful in NixOS or for NixOS users.
+    "-Dgtk_doc=true"
+    "-Dlastfm=true"
+    "-Dman=true"
+    "-Dmedia_server=true"
   ];
 
-  enableParallelBuilding = true;
-
   nativeBuildInputs = [
-    pkgconfig gobject-introspection vala gettext wrapGAppsHook
-    libxslt docbook_xsl docbook_xml_dtd_412 gtk-doc
+    dbus # used for checks and pkgconfig to install dbus service/s
+    docbook_xml_dtd_412
+    docbook_xsl
+    gettext
+    gobject-introspection
+    gtk-doc
+    libxslt
+    meson
+    ninja
+    pkgconfig
+    python3
+    vala
+    wrapGAppsHook
   ];
+
   buildInputs = [
-    glib gtk3 webkitgtk json-glib librest libsecret glib-networking icu libsoup
-    gcr kerberos
+    gcr
+    glib
+    glib-networking
+    gtk3
+    gvfs # OwnCloud, Google Drive
+    icu
+    json-glib
+    kerberos
+    librest
+    libsecret
+    libsoup
+    webkitgtk
   ];
 
+  NIX_CFLAGS_COMPILE = "-I${glib.dev}/include/gio-unix-2.0";
+
+  postPatch = ''
+    chmod +x meson_post_install.py
+    patchShebangs meson_post_install.py
+  '';
+
   passthru = {
     updateScript = gnome3.updateScript {
       packageName = pname;
@@ -45,7 +97,10 @@ in stdenv.mkDerivation rec {
   };
 
   meta = with stdenv.lib; {
+    homepage = "https://wiki.gnome.org/Projects/GnomeOnlineAccounts";
+    description = "Single sign-on framework for GNOME";
     platforms = platforms.linux;
+    license = licenses.lgpl2Plus;
     maintainers = gnome3.maintainers;
   };
 }
diff --git a/pkgs/development/libraries/gtk/3.x.nix b/pkgs/development/libraries/gtk/3.x.nix
index 333598f4e14..c88e193740d 100644
--- a/pkgs/development/libraries/gtk/3.x.nix
+++ b/pkgs/development/libraries/gtk/3.x.nix
@@ -202,7 +202,7 @@ stdenv.mkDerivation rec {
     '';
     homepage = https://www.gtk.org/;
     license = licenses.lgpl2Plus;
-    maintainers = with maintainers; [ raskin vcunat lethalman ];
+    maintainers = with maintainers; [ raskin vcunat lethalman worldofpeace ];
     platforms = platforms.all;
   };
 }
diff --git a/pkgs/development/libraries/libcef/default.nix b/pkgs/development/libraries/libcef/default.nix
index e01142c12ef..be418125dfb 100644
--- a/pkgs/development/libraries/libcef/default.nix
+++ b/pkgs/development/libraries/libcef/default.nix
@@ -1,7 +1,8 @@
 { stdenv, fetchurl, cmake, alsaLib, atk, cairo, cups, dbus, expat, fontconfig
 , GConf, gdk-pixbuf, glib, gtk2, libX11, libxcb, libXcomposite, libXcursor
 , libXdamage, libXext, libXfixes, libXi, libXrandr, libXrender, libXScrnSaver
-, libXtst, nspr, nss, pango, libpulseaudio, systemd }:
+, libXtst, nspr, nss, pango, libpulseaudio, systemd, at-spi2-atk, at-spi2-core
+}:
 
 let
   libPath =
@@ -9,20 +10,24 @@ let
       alsaLib atk cairo cups dbus expat fontconfig GConf gdk-pixbuf glib gtk2
       libX11 libxcb libXcomposite libXcursor libXdamage libXext libXfixes libXi
       libXrandr libXrender libXScrnSaver libXtst nspr nss pango libpulseaudio
-      systemd
+      systemd at-spi2-core at-spi2-atk
     ];
 in
 stdenv.mkDerivation rec {
   pname = "cef-binary";
-  version = "3.3497.1833.g13f506f";
+  version = "74.1.14-g50c3c5c";
+
   src = fetchurl {
-    url = "http://opensource.spotify.com/cefbuilds/cef_binary_${version}_linux64.tar.bz2";
-    sha256 = "02v22yx1ga2yxagjblzkfw0ax7zkrdpc959l1a15m8nah3y7xf9p";
+    name = "cef_binary_74.1.14+g50c3c5c+chromium-74.0.3729.131_linux64_minimal.tar.bz2";
+    url = "http://opensource.spotify.com/cefbuilds/cef_binary_74.1.19%2Bgb62bacf%2Bchromium-74.0.3729.157_linux64_minimal.tar.bz2";
+    sha256 = "0v3540kq4y68gq7mb4d8a9issm363lm5ngrd6d96pcc7vckkw4wn";
   };
+
   nativeBuildInputs = [ cmake ];
   makeFlags = "libcef_dll_wrapper";
   dontStrip = true;
   dontPatchELF = true;
+
   installPhase = ''
     mkdir -p $out/lib/ $out/share/cef/
     cp libcef_dll_wrapper/libcef_dll_wrapper.a $out/lib/
@@ -39,6 +44,5 @@ stdenv.mkDerivation rec {
     maintainers = with maintainers; [ puffnfresh ];
     license = licenses.bsd3;
     platforms = with platforms; linux;
-    broken = true;
   };
 }
diff --git a/pkgs/development/libraries/libnats-c/default.nix b/pkgs/development/libraries/libnats-c/default.nix
new file mode 100644
index 00000000000..3916ff35f69
--- /dev/null
+++ b/pkgs/development/libraries/libnats-c/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchFromGitHub
+, cmake, protobuf, protobufc
+, libsodium, openssl
+}:
+
+stdenv.mkDerivation rec {
+  pname   = "libnats";
+  version = "2.1.0";
+
+  src = fetchFromGitHub {
+    owner  = "nats-io";
+    repo   = "nats.c";
+    rev    = "refs/tags/v${version}";
+    sha256 = "16a0f0gvrmyrqvmh6vinqny3qhm6wyzw5ijnn3r82b1gqlpws0fz";
+  };
+
+  nativeBuildInputs = [ cmake ];
+  buildInputs = [ libsodium openssl protobuf protobufc ];
+
+  separateDebugInfo = true;
+  enableParallelBuilding = true;
+  outputs = [ "out" "dev" ];
+
+  meta = with stdenv.lib; {
+    description = "C API for the NATS messaging system";
+    homepage    = "https://github.com/nats-io/nats.c";
+    license     = licenses.asl20;
+    platforms   = platforms.unix;
+    maintainers = with maintainers; [ thoughtpolice ];
+  };
+}
diff --git a/pkgs/development/libraries/liburing/default.nix b/pkgs/development/libraries/liburing/default.nix
index d02016e87e6..ad8c08b3cce 100644
--- a/pkgs/development/libraries/liburing/default.nix
+++ b/pkgs/development/libraries/liburing/default.nix
@@ -4,12 +4,12 @@
 
 stdenv.mkDerivation rec {
   pname = "liburing";
-  version = "0.2pre252_${builtins.substring 0 8 src.rev}";
+  version = "0.2";
 
   src = fetchgit {
-    url    = "http://git.kernel.dk/liburing";
-    rev    = "a9bb08db3f8795eb58239d5dbb888e9c1d424011";
-    sha256 = "0gv06fcgqhfkqgiqzjb4qzpxh3h595ypw01a0kmhqnmsnvmb624n";
+    url    = "http://git.kernel.dk/${pname}";
+    rev    = "refs/tags/${pname}-${version}";
+    sha256 = "0dxq7qjrwndgavrrc6y2wg54ia3y5wkmcyhpdk4l5pvh7hw6kpdz";
   };
 
   separateDebugInfo = true;
diff --git a/pkgs/development/libraries/libusb1/default.nix b/pkgs/development/libraries/libusb1/default.nix
index 19a8025359a..9a08a7756c8 100644
--- a/pkgs/development/libraries/libusb1/default.nix
+++ b/pkgs/development/libraries/libusb1/default.nix
@@ -1,4 +1,14 @@
-{ stdenv, fetchurl, pkgconfig, systemd ? null, libobjc, IOKit, withStatic ? false }:
+{ stdenv
+, fetchurl
+, pkgconfig
+, enableSystemd ? stdenv.isLinux && !stdenv.hostPlatform.isMusl
+, systemd ? null
+, libobjc
+, IOKit
+, withStatic ? false
+}:
+
+assert enableSystemd -> systemd != null;
 
 stdenv.mkDerivation (rec {
   pname = "libusb";
@@ -13,12 +23,17 @@ stdenv.mkDerivation (rec {
 
   nativeBuildInputs = [ pkgconfig ];
   propagatedBuildInputs =
-    stdenv.lib.optional stdenv.isLinux systemd ++
+    stdenv.lib.optional enableSystemd systemd ++
     stdenv.lib.optionals stdenv.isDarwin [ libobjc IOKit ];
 
   NIX_LDFLAGS = stdenv.lib.optionalString stdenv.isLinux "-lgcc_s";
 
-  preFixup = stdenv.lib.optionalString stdenv.isLinux ''
+  configureFlags =
+    # We use `isLinux` here only to avoid mass rebuilds for Darwin, where
+    # disabling udev happens automatically. Remove `isLinux` at next big change!
+    stdenv.lib.optional (stdenv.isLinux && !enableSystemd) "--disable-udev";
+
+  preFixup = stdenv.lib.optionalString enableSystemd ''
     sed 's,-ludev,-L${systemd.lib}/lib -ludev,' -i $out/lib/libusb-1.0.la
   '';
 
diff --git a/pkgs/development/libraries/nsss/default.nix b/pkgs/development/libraries/nsss/default.nix
index cd1205e2c7d..5c8bf8dedc1 100644
--- a/pkgs/development/libraries/nsss/default.nix
+++ b/pkgs/development/libraries/nsss/default.nix
@@ -4,8 +4,8 @@ with skawarePackages;
 
 buildPackage {
   pname = "nsss";
-  version = "0.0.1.1";
-  sha256 = "14y1vl7n8vd5fh9bwiwwxxslisli8pz3a2f1sfv12l0p8ngpgm57";
+  version = "0.0.2.1";
+  sha256 = "1arzl4492wv42rvv6xs8h5d3qpy9nwxv5l84inzabs6s9f9nlxax";
 
   description = "An implementation of a subset of the pwd.h, group.h and shadow.h family of functions.";
 
diff --git a/pkgs/development/libraries/nvidia-texture-tools/default.nix b/pkgs/development/libraries/nvidia-texture-tools/default.nix
index 73b5e3fe772..70c48631981 100644
--- a/pkgs/development/libraries/nvidia-texture-tools/default.nix
+++ b/pkgs/development/libraries/nvidia-texture-tools/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "nvidia-texture-tools";
-  version = "2.1.0";
+  version = "unstable-2019-10-27";
 
   src = fetchFromGitHub {
     owner = "castano";
     repo = "nvidia-texture-tools";
-    rev = version;
-    sha256 = "0p8ja0k323nkgm07z0qlslg6743vimy9rf3wad2968az0vwzjjyx";
+    rev = "a131e4c6b0b7c9c73ccc3c9e6f1c7e165be86bcc";
+    sha256 = "1qzyr3ib5dpxyq1y33lq02qv4cww075sm9bm4f651d34q5x38sk3";
   };
 
   nativeBuildInputs = [ cmake ];
@@ -37,5 +37,6 @@ stdenv.mkDerivation rec {
     homepage = https://github.com/castano/nvidia-texture-tools;
     license = licenses.mit;
     platforms = platforms.unix;
+    broken = stdenv.isAarch64;
   };
 }
diff --git a/pkgs/development/libraries/polkit/default.nix b/pkgs/development/libraries/polkit/default.nix
index a04e67e0fd1..03dcffd046e 100644
--- a/pkgs/development/libraries/polkit/default.nix
+++ b/pkgs/development/libraries/polkit/default.nix
@@ -96,6 +96,6 @@ stdenv.mkDerivation rec {
     description = "A toolkit for defining and handling the policy that allows unprivileged processes to speak to privileged processes";
     license = licenses.gpl2;
     platforms = platforms.unix;
-    maintainers = [ ];
+    maintainers = with maintainers; [ worldofpeace ];
   };
 }
diff --git a/pkgs/development/libraries/science/math/mkl/default.nix b/pkgs/development/libraries/science/math/mkl/default.nix
index 5700b2118b9..c1a5ea2969e 100644
--- a/pkgs/development/libraries/science/math/mkl/default.nix
+++ b/pkgs/development/libraries/science/math/mkl/default.nix
@@ -3,11 +3,25 @@
   For details on using mkl as a blas provider for python packages such as numpy,
   numexpr, scipy, etc., see the Python section of the NixPkgs manual.
 */
-stdenvNoCC.mkDerivation rec {
-  name = "mkl-${version}";
-  version = "${date}.${rel}";
-  date = "2019.3";
-  rel = "199";
+let
+  # Release notes and download URLs are here:
+  # https://registrationcenter.intel.com/en/products/
+  version = "${year}.${spot}.${rel}";
+  year = "2019";
+
+  # Darwin is pinned to 2019.3 because the DMG does not unpack; see here for details:
+  # https://github.com/matthewbauer/undmg/issues/4
+  spot = if stdenvNoCC.isDarwin then "3" else "5";
+  rel = if stdenvNoCC.isDarwin then "199" else "281";
+
+  rpm-ver = "${year}.${spot}-${rel}-${year}.${spot}-${rel}";
+
+  # Intel openmp uses its own versioning, but shares the spot release patch.
+  openmp-ver = "19.0.${spot}-${rel}-19.0.${spot}-${rel}";
+
+in stdenvNoCC.mkDerivation {
+  pname = "mkl";
+  inherit version;
 
   src = if stdenvNoCC.isDarwin
     then
@@ -17,27 +31,25 @@ stdenvNoCC.mkDerivation rec {
       })
     else
       (fetchurl {
-        url = "http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/15275/l_mkl_${version}.tgz";
-        sha256 = "13rb2v2872jmvzcqm4fqsvhry0j2r5cn4lqql4wpqbl1yia2pph6";
+        url = "https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/15816/l_mkl_${version}.tgz";
+        sha256 = "0zkk4rrq7g44acxaxhpd2053r66w169mww6917an0lxhd52fm5cr";
       });
 
   nativeBuildInputs = if stdenvNoCC.isDarwin
     then
-      [ undmg
-        darwin.cctools
-      ]
+      [ undmg darwin.cctools ]
     else
       [ rpmextract ];
 
   buildPhase = if stdenvNoCC.isDarwin then ''
-      for f in Contents/Resources/pkg/*.tgz; do
-          tar xzvf $f
-      done
+    for f in Contents/Resources/pkg/*.tgz; do
+      tar xzvf $f
+    done
   '' else ''
-    rpmextract rpm/intel-mkl-common-c-${date}-${rel}-${date}-${rel}.noarch.rpm
-    rpmextract rpm/intel-mkl-core-${date}-${rel}-${date}-${rel}.x86_64.rpm
-    rpmextract rpm/intel-mkl-core-rt-${date}-${rel}-${date}-${rel}.x86_64.rpm
-    rpmextract rpm/intel-openmp-19.0.3-${rel}-19.0.3-${rel}.x86_64.rpm
+    rpmextract rpm/intel-mkl-common-c-${rpm-ver}.noarch.rpm
+    rpmextract rpm/intel-mkl-core-${rpm-ver}.x86_64.rpm
+    rpmextract rpm/intel-mkl-core-rt-${rpm-ver}.x86_64.rpm
+    rpmextract rpm/intel-openmp-${openmp-ver}.x86_64.rpm
   '';
 
   installPhase = ''
@@ -82,12 +94,12 @@ stdenvNoCC.mkDerivation rec {
   # larger updated load commands do not fit. Use install_name_tool
   # explicitly and ignore the error.
   postFixup = stdenvNoCC.lib.optionalString stdenvNoCC.isDarwin ''
-      for f in $out/lib/*.dylib; do
-          install_name_tool -id $out/lib/$(basename $f) $f || true
-      done
-      install_name_tool -change @rpath/libiomp5.dylib $out/lib/libiomp5.dylib $out/lib/libmkl_intel_thread.dylib
-      install_name_tool -change @rpath/libtbb.dylib $out/lib/libtbb.dylib $out/lib/libmkl_tbb_thread.dylib
-      install_name_tool -change @rpath/libtbbmalloc.dylib $out/lib/libtbbmalloc.dylib $out/lib/libtbbmalloc_proxy.dylib
+    for f in $out/lib/*.dylib; do
+      install_name_tool -id $out/lib/$(basename $f) $f || true
+    done
+    install_name_tool -change @rpath/libiomp5.dylib $out/lib/libiomp5.dylib $out/lib/libmkl_intel_thread.dylib
+    install_name_tool -change @rpath/libtbb.dylib $out/lib/libtbb.dylib $out/lib/libmkl_tbb_thread.dylib
+    install_name_tool -change @rpath/libtbbmalloc.dylib $out/lib/libtbbmalloc.dylib $out/lib/libtbbmalloc_proxy.dylib
   '';
 
   # Per license agreement, do not modify the binary
@@ -105,6 +117,6 @@ stdenvNoCC.mkDerivation rec {
     homepage = https://software.intel.com/en-us/mkl;
     license = licenses.issl;
     platforms = [ "x86_64-linux" "x86_64-darwin" ];
-    maintainers = [ maintainers.bhipple ];
+    maintainers = with maintainers; [ bhipple ];
   };
 }
diff --git a/pkgs/development/libraries/skalibs/default.nix b/pkgs/development/libraries/skalibs/default.nix
index c885f00a33c..474073f30e4 100644
--- a/pkgs/development/libraries/skalibs/default.nix
+++ b/pkgs/development/libraries/skalibs/default.nix
@@ -4,8 +4,8 @@ with skawarePackages;
 
 buildPackage {
   pname = "skalibs";
-  version = "2.8.1.0";
-  sha256 = "1fk6n402ywn4kpy6ng7sfnnqcg0mp6wq2hrv8sv3kxd0nh3na723";
+  version = "2.9.1.0";
+  sha256 = "19c6s3f7vxi96l2yqzjk9x9i4xkfg4fdzxhn1jg6bfb2qjph9cnk";
 
   description = "A set of general-purpose C programming libraries";
 
diff --git a/pkgs/development/libraries/utmps/default.nix b/pkgs/development/libraries/utmps/default.nix
index 16d4a8fa40b..073674f8571 100644
--- a/pkgs/development/libraries/utmps/default.nix
+++ b/pkgs/development/libraries/utmps/default.nix
@@ -4,8 +4,8 @@ with skawarePackages;
 
 buildPackage {
   pname = "utmps";
-  version = "0.0.2.1";
-  sha256 = "1q90mcn50irhhrzl3h9bvhsn7hac0zgg67b6hfhmc5yvh4c8wnr4";
+  version = "0.0.3.1";
+  sha256 = "1h4hgjdrai51qkalgcx2ff60drpnw0ich66z90p8wk74am0vgc0h";
 
   description = "A secure utmpx and wtmp implementation";
 
diff --git a/pkgs/development/libraries/vte/default.nix b/pkgs/development/libraries/vte/default.nix
index 0d5686ccc0a..8b19e1ee9ae 100644
--- a/pkgs/development/libraries/vte/default.nix
+++ b/pkgs/development/libraries/vte/default.nix
@@ -1,5 +1,7 @@
 { stdenv
+, lib
 , fetchurl
+, fetchpatch
 , gettext
 , pkgconfig
 , meson
@@ -58,6 +60,17 @@ stdenv.mkDerivation rec {
     pango
   ];
 
+  patches =
+    # VTE needs a small patch to work with musl:
+    # https://gitlab.gnome.org/GNOME/vte/issues/72
+    lib.optional
+      stdenv.hostPlatform.isMusl
+      (fetchpatch {
+            name = "0001-Add-W_EXITCODE-macro-for-non-glibc-systems.patch";
+            url = "https://gitlab.gnome.org/GNOME/vte/uploads/c334f767f5d605e0f30ecaa2a0e4d226/0001-Add-W_EXITCODE-macro-for-non-glibc-systems.patch";
+            sha256 = "1ii9db9i5l3fy2alxz7bjfsgjs3lappnlx339dvxbi2141zknf5r";
+      });
+
   postPatch = ''
     patchShebangs perf/*
     patchShebangs src/box_drawing_generate.sh
@@ -75,7 +88,7 @@ stdenv.mkDerivation rec {
       the system's terminfo database.
     '';
     license = licenses.lgpl2;
-    maintainers = with maintainers; [ astsmtl antono lethalman ];
+    maintainers = with maintainers; [ astsmtl antono lethalman ] ++ gnome3.maintainers;
     platforms = platforms.unix;
   };
 }
diff --git a/pkgs/development/libraries/xapian/default.nix b/pkgs/development/libraries/xapian/default.nix
index bb14f3437ba..dfec2197385 100644
--- a/pkgs/development/libraries/xapian/default.nix
+++ b/pkgs/development/libraries/xapian/default.nix
@@ -37,5 +37,5 @@ let
     };
   };
 in {
-  xapian_1_4 = generic "1.4.12" "0z5c1y9vp519h2x2igjq39v6j615nppry0wasd0xn4hphgd3d2jg";
+  xapian_1_4 = generic "1.4.13" "0z0k8902bz2ckdggikj5yz11ik2n8krmdwzvpqv60phcm3zzzy4k";
 }
diff --git a/pkgs/development/libraries/xapian/skip-flaky-darwin-test.patch b/pkgs/development/libraries/xapian/skip-flaky-darwin-test.patch
index 72a7c3e721f..cce96a2762b 100644
--- a/pkgs/development/libraries/xapian/skip-flaky-darwin-test.patch
+++ b/pkgs/development/libraries/xapian/skip-flaky-darwin-test.patch
@@ -1,14 +1,14 @@
 diff -Naur xapian-core.old/tests/api_db.cc xapian-core.new/tests/api_db.cc
 --- xapian-core.old/tests/api_db.cc
 +++ xapian-core.new/tests/api_db.cc
-@@ -998,6 +998,7 @@
+@@ -1020,6 +1020,7 @@
  
  // test for keepalives
  DEFINE_TESTCASE(keepalive1, remote) {
 +    SKIP_TEST("Fails in darwin nix build environment");
-     Xapian::Database db(get_remote_database("apitest_simpledata", 5000));
+     XFAIL_FOR_BACKEND("multi_glass_remoteprog_glass",
+ 		      "Multi remote databases are currently buggy");
  
-     /* Test that keep-alives work */
 diff -Naur xapian-core.old/tests/api_scalability.cc xapian-core.new/tests/api_scalability.cc
 --- xapian-core.old/tests/api_scalability.cc
 +++ xapian-core.new/tests/api_scalability.cc
diff --git a/pkgs/development/ocaml-modules/checkseum/default.nix b/pkgs/development/ocaml-modules/checkseum/default.nix
index 0e348dd65c3..18e06d260f4 100644
--- a/pkgs/development/ocaml-modules/checkseum/default.nix
+++ b/pkgs/development/ocaml-modules/checkseum/default.nix
@@ -29,6 +29,8 @@ stdenv.mkDerivation rec {
 
   inherit (dune) installPhase;
 
+  passthru = { inherit hasC; };
+
   meta = {
     homepage = "https://github.com/mirage/checkseum";
     description = "ADLER-32 and CRC32C Cyclic Redundancy Check";
diff --git a/pkgs/development/ocaml-modules/ctypes/default.nix b/pkgs/development/ocaml-modules/ctypes/default.nix
index 567defea7d2..bc76cfcd64c 100644
--- a/pkgs/development/ocaml-modules/ctypes/default.nix
+++ b/pkgs/development/ocaml-modules/ctypes/default.nix
@@ -1,28 +1,29 @@
-{ stdenv, buildOcaml, fetchzip, libffi, pkgconfig, ncurses, integers }:
+{ stdenv, fetchzip, ocaml, findlib, libffi, pkgconfig, ncurses, integers }:
 
-buildOcaml {
-  name = "ctypes";
-  version = "0.13.1";
+if !stdenv.lib.versionAtLeast ocaml.version "4.02"
+then throw "ctypes is not available for OCaml ${ocaml.version}"
+else
 
-  minimumSupportedOcamlVersion = "4";
+stdenv.mkDerivation rec {
+  name = "ocaml${ocaml.version}-ctypes-${version}";
+  version = "0.15.1";
 
   src = fetchzip {
-    url = "https://github.com/ocamllabs/ocaml-ctypes/archive/67e711ec891e087fbe1e0b4665aa525af4eaa409.tar.gz";
-    sha256 = "1z84s5znr3lj84rzv6m37xxj9h7fwx4qiiykx3djf52qgk1rb2xb";
+    url = "https://github.com/ocamllabs/ocaml-ctypes/archive/${version}.tar.gz";
+    sha256 = "0adas974bwinn8jidb6chljkpd70s041h2a969dicsj0xsg6wys6";
   };
 
   nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [ ncurses ];
+  buildInputs = [ ocaml findlib ncurses ];
   propagatedBuildInputs = [ integers libffi ];
 
-  hasSharedObjects = true;
-
   buildPhase =  ''
      make XEN=false libffi.config ctypes-base ctypes-stubs
      make XEN=false ctypes-foreign
   '';
 
   installPhase =  ''
+    mkdir -p $out/lib/ocaml/${ocaml.version}/site-lib/stublibs
     make install XEN=false
   '';
 
@@ -31,5 +32,6 @@ buildOcaml {
     description = "Library for binding to C libraries using pure OCaml";
     license = licenses.mit;
     maintainers = [ maintainers.ericbmerritt ];
+    inherit (ocaml.meta) platforms;
   };
 }
diff --git a/pkgs/development/ocaml-modules/decompress/default.nix b/pkgs/development/ocaml-modules/decompress/default.nix
index 70ec7fd34ae..828d3a98f9d 100644
--- a/pkgs/development/ocaml-modules/decompress/default.nix
+++ b/pkgs/development/ocaml-modules/decompress/default.nix
@@ -1,30 +1,27 @@
-{ stdenv, fetchFromGitHub, ocaml, findlib, ocamlbuild, topkg
+{ lib, fetchurl, buildDunePackage
+, checkseum, cmdliner
+, alcotest, bos, camlzip, mmap, re
 }:
 
-if !stdenv.lib.versionAtLeast ocaml.version "4.03"
-then throw "decompress is not available for OCaml ${ocaml.version}"
-else
+buildDunePackage rec {
+	version = "0.9.0";
+	pname = "decompress";
 
-stdenv.mkDerivation rec {
-	version = "0.6";
-	name = "ocaml${ocaml.version}-decompress-${version}";
-
-	src = fetchFromGitHub {
-		owner = "mirage";
-		repo = "decompress";
-		rev = "v${version}";
-		sha256 = "0hfs5zrvimzvjwdg57vrxx9bb7irvlm07dk2yv3s5qhj30zimd08";
+	src = fetchurl {
+		url = "https://github.com/mirage/decompress/releases/download/v${version}/decompress-v${version}.tbz";
+		sha256 = "0fryhcvv96vfca51c7kqdn3n3canqsbbvfbi75ya6lca4lmpipbh";
 	};
 
-	buildInputs = [ ocaml findlib ocamlbuild topkg ];
-
-	inherit (topkg) buildPhase installPhase;
+	buildInputs = [ cmdliner ];
+	propagatedBuildInputs = [ checkseum ];
+	checkInputs = lib.optionals doCheck [ alcotest bos camlzip mmap re ];
+	doCheck = true;
 
 	meta = {
 		description = "Pure OCaml implementation of Zlib";
-		license = stdenv.lib.licenses.mit;
-		maintainers = [ stdenv.lib.maintainers.vbgl ];
-		inherit (src.meta) homepage;
-		inherit (ocaml.meta) platforms;
+		license = lib.licenses.mit;
+		maintainers = [ lib.maintainers.vbgl ];
+		homepage = "https://github.com/mirage/decompress";
+		broken = !checkseum.hasC;
 	};
 }
diff --git a/pkgs/development/ocaml-modules/encore/default.nix b/pkgs/development/ocaml-modules/encore/default.nix
new file mode 100644
index 00000000000..ab91117ac08
--- /dev/null
+++ b/pkgs/development/ocaml-modules/encore/default.nix
@@ -0,0 +1,20 @@
+{ lib, buildDunePackage, fetchurl, ocaml, alcotest, angstrom, ke }:
+
+buildDunePackage rec {
+  pname = "encore";
+  version = "0.3";
+  src = fetchurl {
+    url = "https://github.com/mirage/encore/releases/download/v${version}/encore-v${version}.tbz";
+    sha256 = "05nv6yms5axsmq9cspr7884rz5kirj50izx3vdm89q4yl186qykl";
+  };
+  propagatedBuildInputs = [ angstrom ke ];
+  checkInputs = lib.optional doCheck alcotest;
+  doCheck = lib.versions.majorMinor ocaml.version != "4.07";
+
+  meta = {
+    homepage = "https://github.com/mirage/encore";
+    description = "Library to generate encoder/decoder which ensure isomorphism";
+    license = lib.licenses.mit;
+    maintainers = [ lib.maintainers.vbgl ];
+  };
+}
diff --git a/pkgs/development/ocaml-modules/git/default.nix b/pkgs/development/ocaml-modules/git/default.nix
index 35f8f5d52e9..929382abe76 100644
--- a/pkgs/development/ocaml-modules/git/default.nix
+++ b/pkgs/development/ocaml-modules/git/default.nix
@@ -1,27 +1,28 @@
-{ stdenv, fetchFromGitHub, buildDunePackage
-, astring, decompress, fmt, hex, logs, mstruct, ocaml_lwt, ocamlgraph, ocplib-endian, uri
-, alcotest, mtime, nocrypto
+{ lib, fetchFromGitHub, buildDunePackage
+, alcotest, git, mtime, nocrypto
+, angstrom, astring, cstruct, decompress, digestif, encore, duff, fmt
+, fpath, hex, ke, logs, lru, ocaml_lwt, ocamlgraph, ocplib-endian, uri, rresult
 }:
 
 buildDunePackage rec {
   pname = "git";
-	version = "1.11.5";
+	version = "2.1.0";
 
 	src = fetchFromGitHub {
 		owner = "mirage";
 		repo = "ocaml-git";
 		rev = version;
-		sha256 = "0r1bxpxjjnl9hh8xbabsxl7svzvd19hfy73a2y1m4kljmw64dpfh";
+		sha256 = "0v55zkwgml6i5hp0kzynbi58z6j15k3qgzg06b3h8pdbv5fwd1jp";
 	};
 
-	buildInputs = [ alcotest mtime nocrypto ];
-	propagatedBuildInputs = [ astring decompress fmt hex logs mstruct ocaml_lwt ocamlgraph ocplib-endian uri ];
+	propagatedBuildInputs = [ angstrom astring cstruct decompress digestif encore duff fmt fpath hex ke logs lru ocaml_lwt ocamlgraph ocplib-endian uri rresult ];
+	checkInputs = lib.optionals doCheck [ alcotest git mtime nocrypto ];
 	doCheck = true;
 
 	meta = {
 		description = "Git format and protocol in pure OCaml";
-		license = stdenv.lib.licenses.isc;
-		maintainers = [ stdenv.lib.maintainers.vbgl ];
+		license = lib.licenses.isc;
+		maintainers = [ lib.maintainers.vbgl ];
 		inherit (src.meta) homepage;
 	};
 }
diff --git a/pkgs/development/ocaml-modules/imagelib/default.nix b/pkgs/development/ocaml-modules/imagelib/default.nix
index 77b18f0ce3a..12b8a757e16 100644
--- a/pkgs/development/ocaml-modules/imagelib/default.nix
+++ b/pkgs/development/ocaml-modules/imagelib/default.nix
@@ -1,26 +1,27 @@
-{ stdenv, fetchFromGitHub, which, ocaml, findlib, ocamlbuild, decompress }:
+{ lib, fetchFromGitHub, fetchpatch, buildDunePackage, decompress }:
 
-stdenv.mkDerivation rec {
-  version = "20171028";
-  name = "ocaml${ocaml.version}-imagelib-${version}";
+buildDunePackage rec {
+  minimumOCamlVersion = "4.07";
+  version = "20191011";
+  pname = "imagelib";
   src = fetchFromGitHub {
     owner = "rlepigre";
     repo = "ocaml-imagelib";
-    rev = "ocaml-imagelib_${version}";
-    sha256 = "1frkrgcrv4ybdmqcfxpfsywx0hm1arxgxp32n8kzky6qip1g0zxf";
+    rev = "03fed7733825cef7e0465163f398f6af810e2e75";
+    sha256 = "0h7vgyss42nhlfqpbdnb54nxq86rskqi2ilx8b87r0hi19hqx463";
   };
 
-  buildInputs = [ which ocaml findlib ocamlbuild ];
+  patches = [ (fetchpatch {
+    url = "https://github.com/rlepigre/ocaml-imagelib/pull/24/commits/4704fd44adcda62e0d96ea5b1927071326aa6111.patch";
+    sha256 = "0ipjab1hfa2v2pnd8g1k3q2ia0plgiw7crm3fa4w2aqpzdyabkb9";
+  }) ];
 
   propagatedBuildInputs = [ decompress ];
 
-  createFindlibDestdir = true;
-
   meta = {
     description = "Image formats such as PNG and PPM in OCaml";
-    license = stdenv.lib.licenses.lgpl3;
-    maintainers = [ stdenv.lib.maintainers.vbgl ];
+    license = lib.licenses.lgpl3;
+    maintainers = [ lib.maintainers.vbgl ];
     inherit (src.meta) homepage;
-    inherit (ocaml.meta) platforms;
   };
 }
diff --git a/pkgs/development/ocaml-modules/imagelib/unix.nix b/pkgs/development/ocaml-modules/imagelib/unix.nix
new file mode 100644
index 00000000000..48986b15a8f
--- /dev/null
+++ b/pkgs/development/ocaml-modules/imagelib/unix.nix
@@ -0,0 +1,8 @@
+{ buildDunePackage, imagelib }:
+
+buildDunePackage {
+  pname = "imagelib-unix";
+  inherit (imagelib) version src meta;
+
+  propagatedBuildInputs = [ imagelib ];
+}
diff --git a/pkgs/development/ocaml-modules/integers/default.nix b/pkgs/development/ocaml-modules/integers/default.nix
index bf2d2dd1e8b..14d6506ad13 100644
--- a/pkgs/development/ocaml-modules/integers/default.nix
+++ b/pkgs/development/ocaml-modules/integers/default.nix
@@ -1,22 +1,18 @@
-{ stdenv, fetchurl, ocaml, findlib, ocamlbuild, topkg }:
+{ lib, fetchzip, buildDunePackage }:
 
-stdenv.mkDerivation {
-	name = "ocaml${ocaml.version}-integers-0.2.2";
+buildDunePackage rec {
+	pname = "integers";
+	version = "0.3.0";
 
-	src = fetchurl {
-		url = https://github.com/ocamllabs/ocaml-integers/releases/download/v0.2.2/integers-0.2.2.tbz;
-		sha256 = "08b1ljw88ny3l0mdq6xmffjk8anfc77igryva5jz1p6f4f746ywk";
+	src = fetchzip {
+		url = "https://github.com/ocamllabs/ocaml-integers/archive/${version}.tar.gz";
+		sha256 = "1yhif5zh4srh63mhimfx3p5ljpb3lixjdd3i9pjnbj2qgpzlqj8p";
 	};
 
-	buildInputs = [ ocaml findlib ocamlbuild topkg ];
-
-	inherit (topkg) buildPhase installPhase;
-
 	meta = {
 		description = "Various signed and unsigned integer types for OCaml";
-		license = stdenv.lib.licenses.mit;
+		license = lib.licenses.mit;
 		homepage = https://github.com/ocamllabs/ocaml-integers;
-		maintainers = [ stdenv.lib.maintainers.vbgl ];
-		inherit (ocaml.meta) platforms;
+		maintainers = [ lib.maintainers.vbgl ];
 	};
 }
diff --git a/pkgs/development/ocaml-modules/ke/default.nix b/pkgs/development/ocaml-modules/ke/default.nix
new file mode 100644
index 00000000000..e1b68a1d2da
--- /dev/null
+++ b/pkgs/development/ocaml-modules/ke/default.nix
@@ -0,0 +1,28 @@
+{ lib, buildDunePackage, fetchurl
+, bigarray-compat, fmt
+, alcotest, bigstringaf
+}:
+
+buildDunePackage rec {
+  pname = "ke";
+  version = "0.4";
+
+  src = fetchurl {
+    url = "https://github.com/mirage/ke/releases/download/v${version}/ke-v${version}.tbz";
+    sha256 = "13c9xy60vmq29mnwpg3h3zgl6gjbjfwbx1s0crfc6xwvark0zxnx";
+  };
+
+  propagatedBuildInputs = [ bigarray-compat fmt ];
+
+  checkInputs = lib.optionals doCheck [ alcotest bigstringaf ];
+  doCheck = true;
+
+  minimumOCamlVersion = "4.03";
+
+  meta = {
+    description = "Fast implementation of queue in OCaml";
+    homepage = "https://github.com/mirage/ke";
+    license = lib.licenses.mit;
+    maintainers = [ lib.maintainers.vbgl ];
+  };
+}
diff --git a/pkgs/development/perl-modules/Po4a/default.nix b/pkgs/development/perl-modules/Po4a/default.nix
index 338baea389f..94d83845e29 100644
--- a/pkgs/development/perl-modules/Po4a/default.nix
+++ b/pkgs/development/perl-modules/Po4a/default.nix
@@ -9,7 +9,8 @@ buildPerlPackage rec {
     sha256 = "1qss4q5df3nsydsbggb7gg50bn0kdxq5wn8riqm9zwkiq6a4bifg";
   };
   nativeBuildInputs = [ docbook_xsl docbook_xsl_ns ModuleBuild ];
-  propagatedBuildInputs = [ TextWrapI18N LocaleGettext TermReadKey SGMLSpm UnicodeLineBreak PodParser YAMLTiny ];
+  propagatedBuildInputs = [ TextWrapI18N LocaleGettext SGMLSpm UnicodeLineBreak PodParser YAMLTiny ];
+  # TODO: TermReadKey was temporarily removed from propagatedBuildInputs to unfreeze the build
   buildInputs = [ gettext libxslt glibcLocales docbook_xml_dtd_412 docbook_sgml_dtd_41 texlive.combined.scheme-basic opensp ];
   LC_ALL = "en_US.UTF-8";
   SGML_CATALOG_FILES = "${docbook_xml_dtd_412}/xml/dtd/docbook/catalog.xml";
diff --git a/pkgs/development/python-modules/acoustics/default.nix b/pkgs/development/python-modules/acoustics/default.nix
index eb56cfc1fa0..94ec1557a26 100644
--- a/pkgs/development/python-modules/acoustics/default.nix
+++ b/pkgs/development/python-modules/acoustics/default.nix
@@ -3,14 +3,14 @@
 
 buildPythonPackage rec {
   pname = "acoustics";
-  version = "0.2.1";
+  version = "0.2.2";
 
   checkInputs = [ pytest ];
   propagatedBuildInputs = [ numpy scipy matplotlib pandas tabulate ];
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "d7cec62d3e7a7eb26026f2aacc726fb1dd0b044574cbdee83da654b847543c20";
+    sha256 = "00981908c7cf54be58c0bfe902d7743225554ecf3432b30723e9300d9f3a0b0e";
   };
 
   checkPhase = ''
diff --git a/pkgs/development/python-modules/datadog/default.nix b/pkgs/development/python-modules/datadog/default.nix
index 2d1ab6d6741..53a33037d16 100644
--- a/pkgs/development/python-modules/datadog/default.nix
+++ b/pkgs/development/python-modules/datadog/default.nix
@@ -1,8 +1,6 @@
 { lib, buildPythonPackage, fetchPypi
-, decorator, requests, simplejson
-, nose, mock
-, pillow
- }:
+, decorator, requests, simplejson, pillow
+, nose, mock, pytest }:
 
 buildPythonPackage rec {
   pname = "datadog";
@@ -17,9 +15,12 @@ buildPythonPackage rec {
     find . -name '*.pyc' -exec rm {} \;
   '';
 
-  propagatedBuildInputs = [ decorator requests simplejson ];
+  propagatedBuildInputs = [ decorator requests simplejson pillow ];
 
-  checkInputs = [ nose mock pillow ];
+  checkInputs = [ nose mock pytest ];
+  checkPhase = ''
+    pytest tests/unit
+  '';
 
   meta = with lib; {
     description = "The Datadog Python library";
diff --git a/pkgs/development/python-modules/html2text/2018.nix b/pkgs/development/python-modules/html2text/2018.nix
new file mode 100644
index 00000000000..cac88c55794
--- /dev/null
+++ b/pkgs/development/python-modules/html2text/2018.nix
@@ -0,0 +1,21 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "html2text";
+  version = "2018.1.9";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "627514fb30e7566b37be6900df26c2c78a030cc9e6211bda604d8181233bcdd4";
+  };
+
+  meta = with stdenv.lib; {
+    description = "Turn HTML into equivalent Markdown-structured text";
+    homepage = https://github.com/Alir3z4/html2text/;
+    license = licenses.gpl3;
+  };
+
+}
diff --git a/pkgs/development/python-modules/html2text/default.nix b/pkgs/development/python-modules/html2text/default.nix
index 3659d3368be..9b289032514 100644
--- a/pkgs/development/python-modules/html2text/default.nix
+++ b/pkgs/development/python-modules/html2text/default.nix
@@ -1,21 +1,28 @@
-{ stdenv
-, buildPythonPackage
-, fetchPypi
+{ lib, buildPythonPackage, fetchFromGitHub, pythonOlder
+, pytest
 }:
 
 buildPythonPackage rec {
   pname = "html2text";
   version = "2019.9.26";
+  disabled = pythonOlder "3.5";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "6f56057c5c2993b5cc5b347cb099bdf6d095828fef1b53ef4e2a2bf2a1be9b4f";
+  src = fetchFromGitHub {
+    owner = "Alir3z4";
+    repo = pname;
+    rev = version;
+    sha256 = "1gzcx4n6q71plq4zvb1z0fy3brrln0qqrd6jc89iiqn7r1ix8h87";
   };
 
-  meta = with stdenv.lib; {
+  # python setup.py test is broken, use pytest
+  checkInputs = [ pytest ];
+  checkPhase = ''
+    pytest
+  '';
+
+  meta = with lib; {
     description = "Turn HTML into equivalent Markdown-structured text";
     homepage = https://github.com/Alir3z4/html2text/;
     license = licenses.gpl3;
   };
-
 }
diff --git a/pkgs/development/python-modules/ics/default.nix b/pkgs/development/python-modules/ics/default.nix
new file mode 100644
index 00000000000..20fb38b187c
--- /dev/null
+++ b/pkgs/development/python-modules/ics/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, buildPythonPackage, fetchFromGitHub, pythonOlder
+, tatsu, arrow
+, pytest-sugar, pytestpep8, pytest-flakes, pytestcov
+}:
+
+buildPythonPackage rec {
+  pname = "ics";
+  version = "0.6";
+
+  src = fetchFromGitHub {
+    owner = "C4ptainCrunch";
+    repo = "ics.py";
+    rev = "v${version}";
+    sha256 = "02bs9wlh40p1n33jchrl2cdpsnm5hq84070by3b6gm0vmgz6gn5v";
+  };
+
+  propagatedBuildInputs = [ tatsu arrow ];
+  checkInputs = [ pytest-sugar pytestpep8 pytest-flakes pytestcov ];
+
+  disabled = pythonOlder "3.6";
+
+  meta = with stdenv.lib; {
+    description = "Pythonic and easy iCalendar library (RFC 5545)";
+    longDescription = ''
+      Ics.py is a pythonic and easy iCalendar library. Its goals are to read and
+      write ics data in a developer friendly way.
+    '';
+    homepage = "http://icspy.readthedocs.org/en/stable/";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ primeos ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/isort/default.nix b/pkgs/development/python-modules/isort/default.nix
index 6cc2570ab36..8e292ba7cd5 100644
--- a/pkgs/development/python-modules/isort/default.nix
+++ b/pkgs/development/python-modules/isort/default.nix
@@ -1,4 +1,6 @@
-{ lib, buildPythonPackage, fetchPypi, isPy27, futures, backports_functools_lru_cache, mock, pytest }:
+{ lib, buildPythonPackage, fetchPypi, setuptools, isPy27, futures
+, backports_functools_lru_cache, mock, pytest
+}:
 
 let
   skipTests = [ "test_requirements_finder" "test_pipfile_finder" ] ++ lib.optional isPy27 "test_standard_library_deprecates_user_issue_778";
@@ -12,13 +14,24 @@ in buildPythonPackage rec {
     sha256 = "54da7e92468955c4fceacd0c86bd0ec997b0e1ee80d97f67c35a78b719dccab1";
   };
 
-  propagatedBuildInputs = lib.optionals isPy27 [ futures backports_functools_lru_cache ];
+  propagatedBuildInputs = [
+    setuptools
+  ] ++ lib.optionals isPy27 [ futures backports_functools_lru_cache ];
 
   checkInputs = [ mock pytest ];
 
-  # isort excludes paths that contain /build/, so test fixtures don't work with TMPDIR=/build/
   checkPhase = ''
+    # isort excludes paths that contain /build/, so test fixtures don't work
+    # with TMPDIR=/build/
     PATH=$out/bin:$PATH TMPDIR=/tmp/ pytest ${testOpts}
+
+    # Confirm that the produced executable script is wrapped correctly and runs
+    # OK, by launching it in a subshell without PYTHONPATH
+    (
+      unset PYTHONPATH
+      echo "Testing that `isort --version-number` returns OK..."
+      $out/bin/isort --version-number
+    )
   '';
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/jaraco_collections/default.nix b/pkgs/development/python-modules/jaraco_collections/default.nix
index 98c1f41c167..ceaa46a7847 100644
--- a/pkgs/development/python-modules/jaraco_collections/default.nix
+++ b/pkgs/development/python-modules/jaraco_collections/default.nix
@@ -7,7 +7,7 @@ buildPythonPackage rec {
   version = "2.1";
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0e4c278310a5e1ecd565f09555b89ed923cac100b2525797201d2a89dcab337c";
+    sha256 = "0z1kmgf8jahx42bmflmj030wl8yrksw5b5ghcpayrqd5221jfk0f";
   };
 
   doCheck = false;
diff --git a/pkgs/development/python-modules/kombu/default.nix b/pkgs/development/python-modules/kombu/default.nix
index 759b9d2a440..a159b6c7e08 100644
--- a/pkgs/development/python-modules/kombu/default.nix
+++ b/pkgs/development/python-modules/kombu/default.nix
@@ -1,4 +1,11 @@
-{ lib, buildPythonPackage, fetchPypi, pytest, case, pytz, Pyro4, amqp }:
+{ lib, buildPythonPackage, fetchPypi
+, amqp
+, case
+, Pyro4
+, pytest
+, pytz
+, sqlalchemy
+}:
 
 buildPythonPackage rec {
   pname = "kombu";
@@ -10,13 +17,20 @@ buildPythonPackage rec {
   };
 
   postPatch = ''
-    substituteInPlace requirements/test.txt --replace "pytest-sugar" ""
+    substituteInPlace requirements/test.txt \
+      --replace "pytest-sugar" ""
+    substituteInPlace requirements/default.txt \
+      --replace "amqp==2.5.1" "amqp~=2.5"
   '';
 
-  checkInputs = [ pytest case pytz Pyro4 ];
-
   propagatedBuildInputs = [ amqp ];
 
+  checkInputs = [ pytest case pytz Pyro4 sqlalchemy ];
+  # test_redis requires fakeredis, which isn't trivial to package
+  checkPhase = ''
+    pytest --ignore t/unit/transport/test_redis.py
+  '';
+
   meta = with lib; {
     description = "Messaging library for Python";
     homepage    = https://github.com/celery/kombu;
diff --git a/pkgs/development/python-modules/mailmanclient/default.nix b/pkgs/development/python-modules/mailmanclient/default.nix
index 57945643112..9fe9adbe6cf 100644
--- a/pkgs/development/python-modules/mailmanclient/default.nix
+++ b/pkgs/development/python-modules/mailmanclient/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, six, httplib2 }:
+{ stdenv, buildPythonPackage, fetchPypi, six, httplib2, requests }:
 
 buildPythonPackage rec {
   pname = "mailmanclient";
@@ -9,7 +9,11 @@ buildPythonPackage rec {
     sha256 = "c8736cbe152ae1bd58b46ccfbcafb6a1e301513530772e7fda89f91d1e5c1ae9";
   };
 
-  propagatedBuildInputs = [ six httplib2 ];
+  propagatedBuildInputs = [ six httplib2 requests ];
+
+  # no tests with Pypi tar ball, checkPhase removes setup.py which invalidates import check
+  doCheck = false;
+  pythonImportsCheck = [ "mailmanclient" ];
 
   meta = with stdenv.lib; {
     homepage = "http://www.gnu.org/software/mailman/";
diff --git a/pkgs/development/python-modules/moto/default.nix b/pkgs/development/python-modules/moto/default.nix
index 876b57dd01f..500645b81e8 100644
--- a/pkgs/development/python-modules/moto/default.nix
+++ b/pkgs/development/python-modules/moto/default.nix
@@ -22,6 +22,7 @@
 , sure
 , werkzeug
 , xmltodict
+, isPy38
 }:
 
 buildPythonPackage rec {
@@ -33,6 +34,10 @@ buildPythonPackage rec {
     sha256 = "0rhbjvqi1khp80gfnl3x632kwlpq3k7m8f13nidznixdpa78vm4m";
   };
 
+  # 3.8 is not yet support
+  # https://github.com/spulec/moto/pull/2519
+  disabled = isPy38;
+
   # Backported fix from 1.3.14.dev for compatibility with botocore >= 1.9.198.
   patches = [
     (fetchpatch {
diff --git a/pkgs/development/python-modules/pelican/default.nix b/pkgs/development/python-modules/pelican/default.nix
index cbda650158b..7066ecd3a52 100644
--- a/pkgs/development/python-modules/pelican/default.nix
+++ b/pkgs/development/python-modules/pelican/default.nix
@@ -6,13 +6,13 @@
 
 buildPythonPackage rec {
   pname = "pelican";
-  version = "4.1.1";
+  version = "4.2.0";
 
   src = fetchFromGitHub {
     owner = "getpelican";
     repo = "pelican";
     rev = version;
-    sha256 = "08lwbkgqdf6qx9vg17qj70k7nz2j34ymlnrc4cbz7xj98cw4ams1";
+    sha256 = "0w9nqdw2jmqc6kqwg4rh6irr5k6j7hk8axg6vgd137rs50v62yv5";
     # Remove unicode file names which leads to different checksums on HFS+
     # vs. other filesystems because of unicode normalisation.
     extraPostFetch = ''
@@ -31,7 +31,7 @@ buildPythonPackage rec {
     glibcLocales
     # Note: Pelican has to adapt to a changed CLI of pandoc before enabling this
     # again. Compare https://github.com/getpelican/pelican/pull/2252.
-    # Version 4.1.1 is incompatible with our current pandoc version.
+    # Version 4.2.0 is incompatible with our current pandoc version.
     # pandoc
     git
     mock
diff --git a/pkgs/development/python-modules/py3buddy/default.nix b/pkgs/development/python-modules/py3buddy/default.nix
index 69c4c46dbc9..459922c9baf 100644
--- a/pkgs/development/python-modules/py3buddy/default.nix
+++ b/pkgs/development/python-modules/py3buddy/default.nix
@@ -22,17 +22,17 @@ stdenv.mkDerivation rec {
   dontCheck = true;
 
   installPhase = ''
-    install -D py3buddy.py $out/lib/${python.libPrefix}/site-packages/py3buddy.py
+    install -D py3buddy.py $out/${python.sitePackages}/py3buddy.py
   '';
 
   postInstall = ''
     install -D 99-ibuddy.rules $out/lib/udev/rules.d/99-ibuddy.rules
   '';
 
-  meta = {
+  meta = with stdenv.lib; {
     description = "Code to work with the iBuddy MSN figurine";
     homepage = "https://github.com/armijnhemel/py3buddy";
-    license = with stdenv.lib.licenses; [ mit ];
-    maintainers = with stdenv.lib.maintainers; [ prusnak ];
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ prusnak ];
   };
 }
diff --git a/pkgs/development/python-modules/pylint/1.9.nix b/pkgs/development/python-modules/pylint/1.9.nix
index 571a9446e11..b1253c65b33 100644
--- a/pkgs/development/python-modules/pylint/1.9.nix
+++ b/pkgs/development/python-modules/pylint/1.9.nix
@@ -1,6 +1,6 @@
 { stdenv, lib, buildPythonPackage, fetchPypi, astroid, six, isort,
   mccabe, configparser, backports_functools_lru_cache, singledispatch,
-  pytest, pytestrunner, pyenchant }:
+  pytest, pytestrunner, pyenchant, setuptools }:
 
 buildPythonPackage rec {
   pname = "pylint";
@@ -13,7 +13,7 @@ buildPythonPackage rec {
 
   checkInputs = [ pytest pytestrunner pyenchant ];
 
-  propagatedBuildInputs = [ astroid six isort mccabe configparser backports_functools_lru_cache singledispatch ];
+  propagatedBuildInputs = [ astroid six isort mccabe configparser backports_functools_lru_cache singledispatch setuptools ];
 
   postPatch = lib.optionalString stdenv.isDarwin ''
     # Remove broken darwin test
diff --git a/pkgs/development/python-modules/pyro4/default.nix b/pkgs/development/python-modules/pyro4/default.nix
index ac4848e6340..fdeed665623 100644
--- a/pkgs/development/python-modules/pyro4/default.nix
+++ b/pkgs/development/python-modules/pyro4/default.nix
@@ -8,8 +8,8 @@
 , cloudpickle
 , msgpack
 , isPy27
-, isPy33
 , selectors34
+, pytest
 }:
 
 buildPythonPackage rec {
@@ -23,7 +23,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [
     serpent
-  ] ++ lib.optionals (isPy27 || isPy33) [ selectors34 ];
+  ] ++ lib.optionals isPy27 [ selectors34 ];
 
   buildInputs = [
     dill
@@ -31,8 +31,15 @@ buildPythonPackage rec {
     msgpack
   ];
 
+  checkInputs = [ pytest ];
+  # add testsupport.py to PATH
+  # ignore network related tests, which fail in sandbox
   checkPhase = ''
-    ${python.interpreter} setup.py test
+    PYTHONPATH=tests/PyroTests:$PYTHONPATH
+    pytest -k 'not StartNSfunc \
+               and not Broadcast \
+               and not GetIP' \
+           --ignore=tests/PyroTests/test_naming.py
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/development/python-modules/python-language-server/default.nix b/pkgs/development/python-modules/python-language-server/default.nix
index 4bf482b9ae4..b029373bdca 100644
--- a/pkgs/development/python-modules/python-language-server/default.nix
+++ b/pkgs/development/python-modules/python-language-server/default.nix
@@ -1,5 +1,5 @@
 { stdenv, buildPythonPackage, fetchFromGitHub, pythonOlder, isPy27
-, backports_functools_lru_cache, configparser, futures, future, jedi, pluggy, python-jsonrpc-server
+, backports_functools_lru_cache, configparser, futures, future, jedi, pluggy, python-jsonrpc-server, flake8
 , pytest, mock, pytestcov, coverage, setuptools
 , # Allow building a limited set of providers, e.g. ["pycodestyle"].
   providers ? ["*"]
@@ -21,13 +21,13 @@ in
 
 buildPythonPackage rec {
   pname = "python-language-server";
-  version = "0.28.3";
+  version = "0.29.1";
 
   src = fetchFromGitHub {
     owner = "palantir";
     repo = "python-language-server";
     rev = version;
-    sha256 = "16d8i43r75h0cijggkkmmpnycn29wlbjp63mgg3s4nbrxfa96x2k";
+    sha256 = "0hsp0h8vma8z6f0mg311hp59h6hayl7zzxmy295x5fl2l9iiakfv";
   };
 
   # The tests require all the providers, disable otherwise.
@@ -44,7 +44,7 @@ buildPythonPackage rec {
     HOME=$TEMPDIR pytest
   '';
 
-  propagatedBuildInputs = [ setuptools jedi pluggy future python-jsonrpc-server ]
+  propagatedBuildInputs = [ setuptools jedi pluggy future python-jsonrpc-server flake8 ]
     ++ stdenv.lib.optional (withProvider "autopep8") autopep8
     ++ stdenv.lib.optional (withProvider "mccabe") mccabe
     ++ stdenv.lib.optional (withProvider "pycodestyle") pycodestyle
diff --git a/pkgs/development/python-modules/python-logstash/default.nix b/pkgs/development/python-modules/python-logstash/default.nix
new file mode 100644
index 00000000000..f4ecccf0683
--- /dev/null
+++ b/pkgs/development/python-modules/python-logstash/default.nix
@@ -0,0 +1,21 @@
+{ lib, buildPythonPackage, fetchPypi }:
+
+buildPythonPackage rec {
+  pname = "python-logstash";
+  version = "0.4.6";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "13763yx0k655y0c8gxv7jj6cqp45zypx2fmnc56jnn9zz1fkx50h";
+  };
+
+  # no tests
+  doCheck = false;
+
+  meta = with lib; {
+    description = "Python logging handler for Logstash";
+    homepage = https://github.com/vklochan/python-logstash;
+    maintainers = with maintainers; [ peterromfeldhk ];
+    license = licenses.mit;
+  };
+}
diff --git a/pkgs/development/python-modules/python-nomad/default.nix b/pkgs/development/python-modules/python-nomad/default.nix
new file mode 100644
index 00000000000..c4ec84512a6
--- /dev/null
+++ b/pkgs/development/python-modules/python-nomad/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, buildPythonPackage, fetchPypi, requests }:
+
+buildPythonPackage rec {
+  pname = "python-nomad";
+  version = "1.1.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1rf6ad35vg3yi1p4l383xwx0ammdvr1k71bxg93bgcvljypx4cyn";
+  };
+
+  propagatedBuildInputs = [ requests ];
+
+  # Tests require nomad agent
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    description = "Python client library for Hashicorp Nomad";
+    homepage = "https://github.com/jrxFive/python-nomad";
+    license = licenses.mit;
+    maintainers = with maintainers; [ xbreak ];
+  };
+}
diff --git a/pkgs/development/python-modules/qscintilla-qt5/default.nix b/pkgs/development/python-modules/qscintilla-qt5/default.nix
index 963ee82feda..96485bd1f06 100644
--- a/pkgs/development/python-modules/qscintilla-qt5/default.nix
+++ b/pkgs/development/python-modules/qscintilla-qt5/default.nix
@@ -27,6 +27,8 @@ buildPythonPackage {
     lndir ${pyqt5} $out
     rm -rf "$out/nix-support"
     cd Python
+    substituteInPlace configure.py \
+      --replace "qmake = {'CONFIG': 'qscintilla2'}" "qmake = {'CONFIG': 'qscintilla2', 'QT': 'widgets printsupport'}"
     ${python.executable} ./configure.py \
       --pyqt=PyQt5 \
       --destdir=$out/${python.sitePackages}/PyQt5 \
@@ -45,6 +47,5 @@ buildPythonPackage {
     license = licenses.lgpl21Plus;
     maintainers = with maintainers; [ lsix ];
     homepage = https://www.riverbankcomputing.com/software/qscintilla/;
-    broken = true;
   };
 }
diff --git a/pkgs/development/python-modules/rpyc/default.nix b/pkgs/development/python-modules/rpyc/default.nix
index 374900f077c..42d7b442ad6 100644
--- a/pkgs/development/python-modules/rpyc/default.nix
+++ b/pkgs/development/python-modules/rpyc/default.nix
@@ -1,6 +1,6 @@
 { stdenv
 , buildPythonPackage
-, fetchPypi
+, fetchFromGitHub
 , nose
 , plumbum
 }:
@@ -9,12 +9,21 @@ buildPythonPackage rec {
   pname = "rpyc";
   version = "4.1.2";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "0df276076891797bbaaff322cc6debb02e10817426bba00a9beca915053a8a91";
+  src = fetchFromGitHub {
+    owner = "tomerfiliba";
+    repo = pname;
+    rev = version;
+    sha256 = "1xvrcik1650r1412fg79va0kd0fgg1ml241y1ai429qwy87dil1k";
   };
 
-  propagatedBuildInputs = [ nose plumbum ];
+  propagatedBuildInputs = [ plumbum ];
+
+  checkInputs = [ nose ];
+  checkPhase = ''
+    cd tests
+    # some tests have added complexities and some tests attempt network use
+    nosetests -I test_deploy -I test_gevent_server -I test_ssh -I test_registry
+  '';
 
   meta = with stdenv.lib; {
     description = "Remote Python Call (RPyC), a transparent and symmetric RPC library";
diff --git a/pkgs/development/python-modules/tables/default.nix b/pkgs/development/python-modules/tables/default.nix
index 444901d9aaf..b664b882b28 100644
--- a/pkgs/development/python-modules/tables/default.nix
+++ b/pkgs/development/python-modules/tables/default.nix
@@ -6,16 +6,27 @@ with stdenv.lib;
 buildPythonPackage rec {
   version = "3.6.0";
   pname = "tables";
-  disabled = isPy38; # unable to build, remove with next bump.
 
   src = fetchPypi {
     inherit pname version;
     sha256 = "0k9xc0b49j311r6yayw7wzjay6ch3jznijhzc4x33yv490hqhd6v";
   };
 
-  buildInputs = [ hdf5 cython bzip2 lzo c-blosc ];
+  nativeBuildInputs = [ cython ];
+
+  buildInputs = [ hdf5 bzip2 lzo c-blosc ];
   propagatedBuildInputs = [ numpy numexpr six mock ];
 
+  # When doing `make distclean`, ignore docs
+  postPatch = ''
+    substituteInPlace Makefile --replace "src doc" "src"
+  '';
+
+  # Regenerate C code with Cython
+  preBuild = ''
+    make distclean
+  '';
+
   # The setup script complains about missing run-paths, but they are
   # actually set.
   setupPyBuildFlags = [
diff --git a/pkgs/development/python-modules/tatsu/default.nix b/pkgs/development/python-modules/tatsu/default.nix
new file mode 100644
index 00000000000..539cbdca3ee
--- /dev/null
+++ b/pkgs/development/python-modules/tatsu/default.nix
@@ -0,0 +1,40 @@
+{ stdenv, buildPythonPackage, fetchFromGitHub, pythonOlder
+, colorama, mypy, pyyaml, regex
+, dataclasses, typing
+, pytestrunner, pytest-mypy
+}:
+
+buildPythonPackage rec {
+  pname = "TatSu";
+  version = "4.4.0";
+
+  src = fetchFromGitHub {
+    owner = "neogeny";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1jjd73yr3x56ij2ggxf6s62mf90i9v7wn3i0h67zxys55hlp2yh4";
+  };
+
+  nativeBuildInputs = [ pytestrunner ];
+  propagatedBuildInputs = [ colorama mypy pyyaml regex ]
+    ++ stdenv.lib.optionals (pythonOlder "3.7") [ dataclasses ]
+    ++ stdenv.lib.optionals (pythonOlder "3.5") [ typing ];
+  checkInputs = [ pytest-mypy ];
+
+  checkPhase = ''
+    pytest test/
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Generates Python parsers from grammars in a variation of EBNF";
+    longDescription = ''
+      TatSu (the successor to Grako) is a tool that takes grammars in a
+      variation of EBNF as input, and outputs memoizing (Packrat) PEG parsers in
+      Python.
+    '';
+    homepage = "https://tatsu.readthedocs.io/";
+    license = licenses.bsd2;
+    maintainers = with maintainers; [ primeos ];
+  };
+
+}
diff --git a/pkgs/development/ruby-modules/solargraph/Gemfile.lock b/pkgs/development/ruby-modules/solargraph/Gemfile.lock
index 042c0366ffb..edd946d9285 100644
--- a/pkgs/development/ruby-modules/solargraph/Gemfile.lock
+++ b/pkgs/development/ruby-modules/solargraph/Gemfile.lock
@@ -5,17 +5,16 @@ GEM
     backport (1.1.2)
     htmlentities (4.3.4)
     jaro_winkler (1.5.3)
-    kramdown (1.17.0)
     mini_portile2 (2.4.0)
-    nokogiri (1.10.3)
+    nokogiri (1.10.4)
       mini_portile2 (~> 2.4.0)
-    parallel (1.17.0)
-    parser (2.6.3.0)
+    parallel (1.18.0)
+    parser (2.6.5.0)
       ast (~> 2.4.0)
     rainbow (3.0.0)
-    reverse_markdown (1.1.0)
+    reverse_markdown (1.3.0)
       nokogiri
-    rubocop (0.74.0)
+    rubocop (0.75.1)
       jaro_winkler (~> 1.5.1)
       parallel (~> 1.10)
       parser (>= 2.6)
@@ -23,12 +22,12 @@ GEM
       ruby-progressbar (~> 1.7)
       unicode-display_width (>= 1.4.0, < 1.7)
     ruby-progressbar (1.10.1)
-    solargraph (0.35.2)
+    solargraph (0.37.2)
       backport (~> 1.1)
       bundler (>= 1.17.2)
       htmlentities (~> 4.3, >= 4.3.4)
       jaro_winkler (~> 1.5)
-      kramdown (~> 1.16)
+      nokogiri (~> 1.9, >= 1.9.1)
       parser (~> 2.3)
       reverse_markdown (~> 1.0, >= 1.0.5)
       rubocop (~> 0.52)
@@ -36,7 +35,7 @@ GEM
       tilt (~> 2.0)
       yard (~> 0.9)
     thor (0.20.3)
-    tilt (2.0.9)
+    tilt (2.0.10)
     unicode-display_width (1.6.0)
     yard (0.9.20)
 
diff --git a/pkgs/development/ruby-modules/solargraph/gemset.nix b/pkgs/development/ruby-modules/solargraph/gemset.nix
index 2f0c60404bc..aa28f666e5a 100644
--- a/pkgs/development/ruby-modules/solargraph/gemset.nix
+++ b/pkgs/development/ruby-modules/solargraph/gemset.nix
@@ -39,16 +39,6 @@
     };
     version = "1.5.3";
   };
-  kramdown = {
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "1n1c4jmrh5ig8iv1rw81s4mw4xsp4v97hvf8zkigv4hn5h542qjq";
-      type = "gem";
-    };
-    version = "1.17.0";
-  };
   mini_portile2 = {
     groups = ["default"];
     platforms = [];
@@ -65,20 +55,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "02bjydih0j515szfv9mls195cvpyidh6ixm7dwbl3s2sbaxxk5s4";
+      sha256 = "0nmdrqqz1gs0fwkgzxjl4wr554gr8dc1fkrqjc2jpsvwgm41rygv";
       type = "gem";
     };
-    version = "1.10.3";
+    version = "1.10.4";
   };
   parallel = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1x1gzgjrdlkm1aw0hfpyphsxcx90qgs3y4gmp9km3dvf4hc4qm8r";
+      sha256 = "091p5zrzzyg3fg48jhdz9lzjf2r9r3akra2cd46yd4nza3xgxshz";
       type = "gem";
     };
-    version = "1.17.0";
+    version = "1.18.0";
   };
   parser = {
     dependencies = ["ast"];
@@ -86,10 +76,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1pnks149x0fzgqiw53qlmvcd8bi746cxdw03sjljby5s97p1fskn";
+      sha256 = "09davv4ld6caqlczw64vhwf8hr41apys3cj8v2h96yxs4qg1m2iw";
       type = "gem";
     };
-    version = "2.6.3.0";
+    version = "2.6.5.0";
   };
   rainbow = {
     groups = ["default"];
@@ -107,10 +97,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0w7y5n74daajvl9gixr91nh8670d7mkgspkk3ql71m8azq3nffbg";
+      sha256 = "1zb9n227b5s4cg942sc0g3n1bdx9fpcvq5m6w7ap0yc116ivv5w2";
       type = "gem";
     };
-    version = "1.1.0";
+    version = "1.3.0";
   };
   rubocop = {
     dependencies = ["jaro_winkler" "parallel" "parser" "rainbow" "ruby-progressbar" "unicode-display_width"];
@@ -118,10 +108,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0wpyass9qb2wvq8zsc7wdzix5xy2ldiv66wnx8mwwprz2dcvzayk";
+      sha256 = "0s5q1i7776yklkcwwx6ibm2mwnjky6wv7rpa3xhn8448854is31n";
       type = "gem";
     };
-    version = "0.74.0";
+    version = "0.75.1";
   };
   ruby-progressbar = {
     groups = ["default"];
@@ -134,15 +124,15 @@
     version = "1.10.1";
   };
   solargraph = {
-    dependencies = ["backport" "htmlentities" "jaro_winkler" "kramdown" "parser" "reverse_markdown" "rubocop" "thor" "tilt" "yard"];
+    dependencies = ["backport" "htmlentities" "jaro_winkler" "nokogiri" "parser" "reverse_markdown" "rubocop" "thor" "tilt" "yard"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1r0a7nfb0cwg2d7awbmvzk14594w7vkx844sshl9jpzkjx1asa9n";
+      sha256 = "0w20g68i6djc2vyx3awzvn15brdfpcwbna27r0903h5djcmnr8a0";
       type = "gem";
     };
-    version = "0.35.2";
+    version = "0.37.2";
   };
   thor = {
     groups = ["default"];
@@ -159,10 +149,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0ca4k0clwf0rkvy7726x4nxpjxkpv67w043i39saxgldxd97zmwz";
+      sha256 = "0rn8z8hda4h41a64l0zhkiwz2vxw9b1nb70gl37h1dg2k874yrlv";
       type = "gem";
     };
-    version = "2.0.9";
+    version = "2.0.10";
   };
   unicode-display_width = {
     groups = ["default"];
@@ -184,4 +174,4 @@
     };
     version = "0.9.20";
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/development/tools/gir/default.nix b/pkgs/development/tools/gir/default.nix
new file mode 100644
index 00000000000..b8dbda2a1f8
--- /dev/null
+++ b/pkgs/development/tools/gir/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchFromGitHub, rustPlatform }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "gir";
+  version = "2019-10-16";
+
+  src = fetchFromGitHub {
+    owner = "gtk-rs";
+    repo = "gir";
+    rev = "241d790085a712db7436c5c25b210ccb7d1a08d5";
+    sha256 = "1kn5kgdma9j6dwpmv6jmydak7ajlgdkw9sfkh3q7h8c2a8yikvxr";
+  };
+
+  cargoSha256 = "1ybd9h2f13fxmnkzbacd39rcyzjcjd2ra52y8kncg1s0dc0m8rjb";
+
+  meta = with stdenv.lib; {
+    description = "Tool to generate rust bindings and user API for glib-based libraries";
+    homepage = https://github.com/gtk-rs/gir/;
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ ekleog ];
+    platforms = platforms.all;
+  };
+}