summary refs log tree commit diff
path: root/pkgs/development
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/development')
-rw-r--r--pkgs/development/compilers/binaryen/default.nix4
-rw-r--r--pkgs/development/compilers/nextpnr/default.nix10
-rw-r--r--pkgs/development/compilers/yosys/default.nix14
-rw-r--r--pkgs/development/interpreters/python/default.nix42
-rw-r--r--pkgs/development/interpreters/python/pypy/default.nix9
-rw-r--r--pkgs/development/interpreters/python/pypy/prebuilt.nix4
-rw-r--r--pkgs/development/libraries/ace/default.nix6
-rw-r--r--pkgs/development/libraries/armadillo/default.nix4
-rw-r--r--pkgs/development/libraries/audio/libbass/default.nix18
-rw-r--r--pkgs/development/libraries/cimg/default.nix5
-rw-r--r--pkgs/development/libraries/flatpak/bubblewrap-paths.patch4
-rw-r--r--pkgs/development/libraries/flatpak/default.nix8
-rw-r--r--pkgs/development/libraries/flatpak/fix-paths.patch6
-rw-r--r--pkgs/development/libraries/flatpak/fix-test-paths.patch29
-rw-r--r--pkgs/development/libraries/flatpak/respect-xml-catalog-files-var.patch4
-rw-r--r--pkgs/development/libraries/flatpak/unset-env-vars.patch4
-rw-r--r--pkgs/development/libraries/flatpak/use-flatpak-from-path.patch22
-rw-r--r--pkgs/development/libraries/flatpak/validate-icon-pixbuf.patch4
-rw-r--r--pkgs/development/libraries/g2o/default.nix32
-rw-r--r--pkgs/development/libraries/g2o/remove-compiler-reference.patch25
-rw-r--r--pkgs/development/libraries/libmodulemd/1.nix21
-rw-r--r--pkgs/development/libraries/libmodulemd/default.nix59
-rw-r--r--pkgs/development/libraries/libmodulemd/dont-check-docs.patch29
-rw-r--r--pkgs/development/libraries/libmodulemd/pygobject-dir.patch45
-rw-r--r--pkgs/development/libraries/libqglviewer/default.nix20
-rw-r--r--pkgs/development/libraries/readline/readline-8.0-patches.nix1
-rw-r--r--pkgs/development/libraries/xdg-desktop-portal-gtk/default.nix31
-rw-r--r--pkgs/development/libraries/xdg-desktop-portal/default.nix8
-rw-r--r--pkgs/development/libraries/xdg-desktop-portal/respect-path-env-var.patch20
-rw-r--r--pkgs/development/libraries/zlib/default.nix58
-rw-r--r--pkgs/development/ocaml-modules/ocsigen-start/default.nix18
-rw-r--r--pkgs/development/ocaml-modules/ocsigen-toolkit/default.nix4
-rw-r--r--pkgs/development/python-modules/capstone/default.nix8
-rw-r--r--pkgs/development/python-modules/deprecated/default.nix27
-rw-r--r--pkgs/development/python-modules/gspread/default.nix6
-rw-r--r--pkgs/development/python-modules/hocr-tools/default.nix31
-rw-r--r--pkgs/development/python-modules/kconfiglib/default.nix21
-rw-r--r--pkgs/development/python-modules/pikepdf/default.nix73
-rw-r--r--pkgs/development/python-modules/pre-commit/default.nix47
-rw-r--r--pkgs/development/python-modules/pyGithub/default.nix14
-rw-r--r--pkgs/development/python-modules/pylibgen/default.nix28
-rw-r--r--pkgs/development/python-modules/pyprof2calltree/default.nix (renamed from pkgs/development/tools/profiling/pyprof2calltree/default.nix)4
-rw-r--r--pkgs/development/python-modules/pytest-helpers-namespace/default.nix35
-rw-r--r--pkgs/development/python-modules/python-xmp-toolkit/default.nix44
-rw-r--r--pkgs/development/python-modules/ruffus/default.nix53
-rw-r--r--pkgs/development/python-modules/unittest-data-provider/default.nix21
-rw-r--r--pkgs/development/tools/icestorm/default.nix21
-rw-r--r--pkgs/development/tools/misc/cgdb/default.nix4
-rw-r--r--pkgs/development/tools/trellis/default.nix10
49 files changed, 827 insertions, 188 deletions
diff --git a/pkgs/development/compilers/binaryen/default.nix b/pkgs/development/compilers/binaryen/default.nix
index f0299f7e41e..c0e6c4b5004 100644
--- a/pkgs/development/compilers/binaryen/default.nix
+++ b/pkgs/development/compilers/binaryen/default.nix
@@ -1,11 +1,11 @@
 { stdenv, cmake, python, fetchFromGitHub, emscriptenRev ? null }:
 
 let
-  defaultVersion = "88";
+  defaultVersion = "89";
 
   # Map from git revs to SHA256 hashes
   sha256s = {
-    "version_88" = "14vm2hksn696klk97yz562mm5sqd67qbbzmlw4kvy22ldyc6sgmi";
+    "version_89" = "0rh1dq33ilq54szfgi1ajaiaj7rbylai02rhp9zm9vpwp0rw8mij";
     "1.38.28" = "172s7y5f38736ic8ri3mnbdqcrkadd40a26cxcfwbscc53phl11v";
   };
 in
diff --git a/pkgs/development/compilers/nextpnr/default.nix b/pkgs/development/compilers/nextpnr/default.nix
index ca35026b493..d32d3fa67f1 100644
--- a/pkgs/development/compilers/nextpnr/default.nix
+++ b/pkgs/development/compilers/nextpnr/default.nix
@@ -27,13 +27,13 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "nextpnr";
-  version = "2019.04.19";
+  version = "2019.08.10";
 
   src = fetchFromGitHub {
     owner  = "yosyshq";
     repo   = "nextpnr";
-    rev    = "5344bc3b65f4e06f983db781e9a82d30b3f1512b";
-    sha256 = "1y14jpa948cwk0i19bsfqh7yxsxkgskm4xym4z179sjcvcdvrn3a";
+    rev    = "3f26cf50767143e48d29ae691b2a0052c359eb15";
+    sha256 = "1gv84svw56ass9idbzh17h3yxkk9ydr40ijf9w72gf72rbixszdr";
   };
 
   nativeBuildInputs
@@ -49,6 +49,10 @@ stdenv.mkDerivation rec {
       "-DICEBOX_ROOT=${icestorm}/share/icebox"
       "-DTRELLIS_ROOT=${trellisRoot}/trellis"
       "-DUSE_OPENMP=ON"
+      # warning: high RAM usage
+      "-DSERIALIZE_CHIPDB=OFF"
+      # use PyPy for icestorm if enabled
+      "-DPYTHON_EXECUTABLE=${icestorm.pythonInterp}"
     ] ++ (stdenv.lib.optional (!enableGui) "-DBUILD_GUI=OFF");
 
   # Fix the version number. This is a bit stupid (and fragile) in practice
diff --git a/pkgs/development/compilers/yosys/default.nix b/pkgs/development/compilers/yosys/default.nix
index e7f70136675..aaa8628efbe 100644
--- a/pkgs/development/compilers/yosys/default.nix
+++ b/pkgs/development/compilers/yosys/default.nix
@@ -1,21 +1,21 @@
 { stdenv, fetchFromGitHub
 , pkgconfig, bison, flex
 , tcl, readline, libffi, python3
-, protobuf
+, protobuf, zlib
 }:
 
 with builtins;
 
 stdenv.mkDerivation rec {
   pname = "yosys";
-  version = "2019.04.23";
+  version = "2019.08.13";
 
   srcs = [
     (fetchFromGitHub {
       owner  = "yosyshq";
       repo   = "yosys";
-      rev    = "d9daf09cf3aab202b6da058c5e959f6375a4541e";
-      sha256 = "0l27r9l3fvkqhmbqqpjz1f3ny4wdh5mdc7jlnbgy6nxx6vqcmkh0";
+      rev    = "19d6b8846f55b4c7be705619f753bec86deadac8";
+      sha256 = "185sbkxajx3k9j03n0cxq2qvzwfwdbcxp19h8vnk7ghd5y9gp602";
       name   = "yosys";
     })
 
@@ -25,8 +25,8 @@ stdenv.mkDerivation rec {
     (fetchFromGitHub {
       owner  = "berkeley-abc";
       repo   = "abc";
-      rev    = "3709744c60696c5e3f4cc123939921ce8107fe04";
-      sha256 = "18a9cjng3qfalq8m9az5ck1y5h4l2pf9ycrvkzs9hn82b1j7vrax";
+      rev    = "5776ad07e7247993976bffed4802a5737c456782";
+      sha256 = "1la4idmssg44rp6hd63sd5vybvs3vr14yzvwcg03ls37p39cslnl";
       name   = "yosys-abc";
     })
   ];
@@ -34,7 +34,7 @@ stdenv.mkDerivation rec {
 
   enableParallelBuilding = true;
   nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [ tcl readline libffi python3 bison flex protobuf ];
+  buildInputs = [ tcl readline libffi python3 bison flex protobuf zlib ];
 
   makeFlags = [ "ENABLE_PROTOBUF=1" ];
 
diff --git a/pkgs/development/interpreters/python/default.nix b/pkgs/development/interpreters/python/default.nix
index b3b506783cd..c8856ea2aa3 100644
--- a/pkgs/development/interpreters/python/default.nix
+++ b/pkgs/development/interpreters/python/default.nix
@@ -115,25 +115,25 @@ in {
     self = pypy27;
     sourceVersion = {
       major = "7";
-      minor = "0";
-      patch = "0";
+      minor = "1";
+      patch = "1";
     };
-    sha256 = "1m6ja79sbkl38p1hs7c0n4kq5xzn01wp7wl5456hsw9q6cwg6894";
+    sha256 = "0yq6ln1ic476sasp8zs4mg5i9524l1p96qwanp486rr1yza1grlg";
     pythonVersion = "2.7";
     db = db.override { dbmSupport = true; };
     python = python27;
     inherit passthruFun;
   };
 
-  pypy35 = callPackage ./pypy {
-    self = pypy35;
+  pypy36 = callPackage ./pypy {
+    self = pypy36;
     sourceVersion = {
       major = "7";
-      minor = "0";
-      patch = "0";
+      minor = "1";
+      patch = "1";
     };
-    sha256 = "0hbv9ziv8n9lqnr6cndrw70p6g40c00w1ds7lmzgrr153myxkp7w";
-    pythonVersion = "3.5";
+    sha256 = "1hqvnran7d2dzj5555n7q680dyzhmbklz04pvkxgb5j604v7kkx1";
+    pythonVersion = "3.6";
     db = db.override { dbmSupport = true; };
     python = python27;
     inherit passthruFun;
@@ -143,26 +143,26 @@ in {
     # Not included at top-level
     self = pythonInterpreters.pypy27_prebuilt;
     sourceVersion = {
-      major = "6";
-      minor = "0";
-      patch = "0";
+      major = "7";
+      minor = "1";
+      patch = "1";
     };
-    sha256 = "0rxgnp3fm18b87ln8bbjr13g2fsf4ka4abkaim6m03y9lwmr9gvc"; # linux64
+    sha256 = "0rlx4x9xy9h989w6sy4h7lknm00956r30c5gjxwsvf8fhvq9xc3k"; # linux64
     pythonVersion = "2.7";
     inherit passthruFun;
     ncurses = ncurses5;
   };
 
-  pypy35_prebuilt = callPackage ./pypy/prebuilt.nix {
-  # Not included at top-level
-    self = pythonInterpreters.pypy35_prebuilt;
+  pypy36_prebuilt = callPackage ./pypy/prebuilt.nix {
+    # Not included at top-level
+    self = pythonInterpreters.pypy36_prebuilt;
     sourceVersion = {
-      major = "6";
-      minor = "0";
-      patch = "0";
+      major = "7";
+      minor = "1";
+      patch = "1";
     };
-    sha256 = "0j3h08s7wpglghasmym3baycpif5jshvmk9rpav4pwwy5clzmzsc"; # linux64
-    pythonVersion = "3.5";
+    sha256 = "1c1xx6dm1n4xvh1vd3rcvyyixm5jm9rvzisji1a5bc9l38xzc540"; # linux64
+    pythonVersion = "3.6";
     inherit passthruFun;
     ncurses = ncurses5;
   };
diff --git a/pkgs/development/interpreters/python/pypy/default.nix b/pkgs/development/interpreters/python/pypy/default.nix
index db7e51a51f3..7ec476b1ea4 100644
--- a/pkgs/development/interpreters/python/pypy/default.nix
+++ b/pkgs/development/interpreters/python/pypy/default.nix
@@ -88,7 +88,9 @@ in with passthru; stdenv.mkDerivation rec {
 
   setupHook = python-setup-hook sitePackages;
 
-  doCheck = true;
+  # TODO: A bunch of tests are failing as of 7.1.1, please feel free to
+  # fix and re-enable if you have the patience and tenacity.
+  doCheck = false;
   checkPhase = let
     disabledTests = [
       # disable shutils because it assumes gid 0 exists
@@ -139,7 +141,7 @@ in with passthru; stdenv.mkDerivation rec {
     echo "manylinux1_compatible=False" >> $out/lib/${libPrefix}/_manylinux.py
 
     # Include a sitecustomize.py file
-    cp ${../sitecustomize.py} $out/${sitePackages}/sitecustomize.py
+    cp ${../sitecustomize.py} $out/lib/${libPrefix}/${sitePackages}/sitecustomize.py
   '';
 
   inherit passthru;
@@ -149,8 +151,7 @@ in with passthru; stdenv.mkDerivation rec {
     homepage = http://pypy.org/;
     description = "Fast, compliant alternative implementation of the Python language (${pythonVersion})";
     license = licenses.mit;
-    platforms = [ "i686-linux" "x86_64-linux" ];
+    platforms = [ "i686-linux" "x86_64-linux" "x86_64-darwin" ];
     maintainers = with maintainers; [ andersk ];
-    broken = true; # TODO: Tests are failing!
   };
 }
diff --git a/pkgs/development/interpreters/python/pypy/prebuilt.nix b/pkgs/development/interpreters/python/pypy/prebuilt.nix
index 1ac779ed25e..af933f0a4bd 100644
--- a/pkgs/development/interpreters/python/pypy/prebuilt.nix
+++ b/pkgs/development/interpreters/python/pypy/prebuilt.nix
@@ -56,7 +56,7 @@ in with passthru; stdenv.mkDerivation {
   inherit pname version;
 
   src = fetchurl {
-    url= "https://bitbucket.org/pypy/pypy/downloads/pypy${majorVersion}-v${version}-linux64.tar.bz2";
+    url = "https://bitbucket.org/pypy/pypy/downloads/pypy${pythonVersion}-v${version}-linux64.tar.bz2";
     inherit sha256;
   };
 
@@ -123,4 +123,4 @@ in with passthru; stdenv.mkDerivation {
     platforms = [ "x86_64-linux" ];
   };
 
-}
\ No newline at end of file
+}
diff --git a/pkgs/development/libraries/ace/default.nix b/pkgs/development/libraries/ace/default.nix
index af94de525f7..04ab1331475 100644
--- a/pkgs/development/libraries/ace/default.nix
+++ b/pkgs/development/libraries/ace/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "ace";
-  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;
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
 
   patchPhase = ''substituteInPlace ./MPC/prj_install.pl \
     --replace /usr/bin/perl "${perl}/bin/perl"'';
-  
+
   preConfigure = ''
     export INSTALL_PREFIX=$out
     export ACE_ROOT=$(pwd)
diff --git a/pkgs/development/libraries/armadillo/default.nix b/pkgs/development/libraries/armadillo/default.nix
index 27204e8e339..127c2f3ae31 100644
--- a/pkgs/development/libraries/armadillo/default.nix
+++ b/pkgs/development/libraries/armadillo/default.nix
@@ -1,12 +1,12 @@
 { stdenv, fetchurl, cmake, openblasCompat, superlu, hdf5 }:
 
 stdenv.mkDerivation rec {
-  version = "9.600.5";
   pname = "armadillo";
+  version = "9.600.6";
 
   src = fetchurl {
     url = "mirror://sourceforge/arma/armadillo-${version}.tar.xz";
-    sha256 = "1gy2rb3klvzx833851qgsbh5k1ds5zffwk0rmy1k8b1g51jdd76x";
+    sha256 = "0wlk1yv9531vpvgja4cpy0sxykrn0p5w376kx86vl45b50yamx7g";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/development/libraries/audio/libbass/default.nix b/pkgs/development/libraries/audio/libbass/default.nix
index 0e1445ca9ee..3552e335fed 100644
--- a/pkgs/development/libraries/audio/libbass/default.nix
+++ b/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/pkgs/development/libraries/cimg/default.nix b/pkgs/development/libraries/cimg/default.nix
index 904874b2290..3e7ef6d96ee 100644
--- a/pkgs/development/libraries/cimg/default.nix
+++ b/pkgs/development/libraries/cimg/default.nix
@@ -1,13 +1,12 @@
 { stdenv, fetchurl, unzip }:
 
 stdenv.mkDerivation rec {
-
   pname = "cimg";
-  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/pkgs/development/libraries/flatpak/bubblewrap-paths.patch b/pkgs/development/libraries/flatpak/bubblewrap-paths.patch
index 79257fd6be5..407811736f8 100644
--- a/pkgs/development/libraries/flatpak/bubblewrap-paths.patch
+++ b/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/pkgs/development/libraries/flatpak/default.nix b/pkgs/development/libraries/flatpak/default.nix
index 4c4949b37be..d29be4cb930 100644
--- a/pkgs/development/libraries/flatpak/default.nix
+++ b/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/pkgs/development/libraries/flatpak/fix-paths.patch b/pkgs/development/libraries/flatpak/fix-paths.patch
index 49fcaa2b3f9..746b4382864 100644
--- a/pkgs/development/libraries/flatpak/fix-paths.patch
+++ b/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/pkgs/development/libraries/flatpak/fix-test-paths.patch b/pkgs/development/libraries/flatpak/fix-test-paths.patch
index f987899e3bc..85b222152d0 100644
--- a/pkgs/development/libraries/flatpak/fix-test-paths.patch
+++ b/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/pkgs/development/libraries/flatpak/respect-xml-catalog-files-var.patch b/pkgs/development/libraries/flatpak/respect-xml-catalog-files-var.patch
index 0e259aebd8a..4cee60be2d0 100644
--- a/pkgs/development/libraries/flatpak/respect-xml-catalog-files-var.patch
+++ b/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/pkgs/development/libraries/flatpak/unset-env-vars.patch b/pkgs/development/libraries/flatpak/unset-env-vars.patch
index 798e388b23c..63ce0d12fe0 100644
--- a/pkgs/development/libraries/flatpak/unset-env-vars.patch
+++ b/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/pkgs/development/libraries/flatpak/use-flatpak-from-path.patch b/pkgs/development/libraries/flatpak/use-flatpak-from-path.patch
index 408198bda5c..01363ffb7b3 100644
--- a/pkgs/development/libraries/flatpak/use-flatpak-from-path.patch
+++ b/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/pkgs/development/libraries/flatpak/validate-icon-pixbuf.patch b/pkgs/development/libraries/flatpak/validate-icon-pixbuf.patch
index 5b8cc2d0383..086114e11c3 100644
--- a/pkgs/development/libraries/flatpak/validate-icon-pixbuf.patch
+++ b/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/pkgs/development/libraries/g2o/default.nix b/pkgs/development/libraries/g2o/default.nix
index 1486b5bfc55..909c504870f 100644
--- a/pkgs/development/libraries/g2o/default.nix
+++ b/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/pkgs/development/libraries/g2o/remove-compiler-reference.patch b/pkgs/development/libraries/g2o/remove-compiler-reference.patch
new file mode 100644
index 00000000000..347c5780240
--- /dev/null
+++ b/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/pkgs/development/libraries/libmodulemd/1.nix b/pkgs/development/libraries/libmodulemd/1.nix
new file mode 100644
index 00000000000..174296375e0
--- /dev/null
+++ b/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/pkgs/development/libraries/libmodulemd/default.nix b/pkgs/development/libraries/libmodulemd/default.nix
new file mode 100644
index 00000000000..ba77c7806b5
--- /dev/null
+++ b/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/pkgs/development/libraries/libmodulemd/dont-check-docs.patch b/pkgs/development/libraries/libmodulemd/dont-check-docs.patch
new file mode 100644
index 00000000000..38ad5683692
--- /dev/null
+++ b/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/pkgs/development/libraries/libmodulemd/pygobject-dir.patch b/pkgs/development/libraries/libmodulemd/pygobject-dir.patch
new file mode 100644
index 00000000000..a367872eec6
--- /dev/null
+++ b/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/pkgs/development/libraries/libqglviewer/default.nix b/pkgs/development/libraries/libqglviewer/default.nix
index e68c5052beb..34b396a7102 100644
--- a/pkgs/development/libraries/libqglviewer/default.nix
+++ b/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/pkgs/development/libraries/readline/readline-8.0-patches.nix b/pkgs/development/libraries/readline/readline-8.0-patches.nix
index b8019fb3350..433da83dab9 100644
--- a/pkgs/development/libraries/readline/readline-8.0-patches.nix
+++ b/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/pkgs/development/libraries/xdg-desktop-portal-gtk/default.nix b/pkgs/development/libraries/xdg-desktop-portal-gtk/default.nix
index b8cf86999e0..9b031602371 100644
--- a/pkgs/development/libraries/xdg-desktop-portal-gtk/default.nix
+++ b/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/pkgs/development/libraries/xdg-desktop-portal/default.nix b/pkgs/development/libraries/xdg-desktop-portal/default.nix
index 3f02946c770..4be7bd1474c 100644
--- a/pkgs/development/libraries/xdg-desktop-portal/default.nix
+++ b/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/pkgs/development/libraries/xdg-desktop-portal/respect-path-env-var.patch b/pkgs/development/libraries/xdg-desktop-portal/respect-path-env-var.patch
index f884899ecd1..d970f5636ae 100644
--- a/pkgs/development/libraries/xdg-desktop-portal/respect-path-env-var.patch
+++ b/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/pkgs/development/libraries/zlib/default.nix b/pkgs/development/libraries/zlib/default.nix
index 9f5af47c726..592abea4ea0 100644
--- a/pkgs/development/libraries/zlib/default.nix
+++ b/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 = [];
 
diff --git a/pkgs/development/ocaml-modules/ocsigen-start/default.nix b/pkgs/development/ocaml-modules/ocsigen-start/default.nix
index 4bc9b7f8629..1287c9b80b5 100644
--- a/pkgs/development/ocaml-modules/ocsigen-start/default.nix
+++ b/pkgs/development/ocaml-modules/ocsigen-start/default.nix
@@ -1,14 +1,13 @@
-{ stdenv, fetchFromGitHub, buildOcaml, ocsigen-toolkit, eliom, ocaml_pcre, pgocaml, macaque, safepass, yojson, ocsigen_deriving, ocsigen_server
+{ stdenv, fetchFromGitHub, ocaml, findlib, ocsigen-toolkit, eliom, ocaml_pcre, pgocaml, macaque, safepass, yojson, ocsigen_deriving, ocsigen_server
 , js_of_ocaml-camlp4
 , resource-pooling
 }:
 
-buildOcaml rec
-{
-  name = "ocsigen-start";
-  version = "1.5.0";
+stdenv.mkDerivation rec {
+  name = "ocaml${ocaml.version}-ocsigen-start-${version}";
+  version = "1.8.0";
 
-  buildInputs = [ eliom js_of_ocaml-camlp4 ];
+  buildInputs = [ ocaml findlib eliom js_of_ocaml-camlp4 ];
   propagatedBuildInputs = [ pgocaml macaque safepass ocaml_pcre ocsigen-toolkit yojson ocsigen_deriving ocsigen_server resource-pooling ];
 
   patches = [ ./templates-dir.patch ];
@@ -16,12 +15,14 @@ buildOcaml rec
   postPatch = ''
   substituteInPlace "src/os_db.ml" --replace "citext" "text"
   '';
+
+  createFindlibDestdir = true;
   
   src = fetchFromGitHub {
     owner = "ocsigen";
-    repo = name;
+    repo = "ocsigen-start";
     rev = version;
-    sha256 = "07478hz5jhxb242hfr808516k81vdbzj4j6cycvls3b9lzbyszha";
+    sha256 = "0h5gp06vxy6jpppz1x840gyf9viiy7lic7spx7fxldpy2jpv058s";
   };
 
   meta = {
@@ -31,6 +32,7 @@ buildOcaml rec
      An Eliom application skeleton, ready to use to build your own application with users, (pre)registration, notifications, etc.
       '';
     license = stdenv.lib.licenses.lgpl21;
+    inherit (ocaml.meta) platforms;
     maintainers = [ stdenv.lib.maintainers.gal_bolle ];
   };
 
diff --git a/pkgs/development/ocaml-modules/ocsigen-toolkit/default.nix b/pkgs/development/ocaml-modules/ocsigen-toolkit/default.nix
index 4e46c1534d8..6c9e72f95d7 100644
--- a/pkgs/development/ocaml-modules/ocsigen-toolkit/default.nix
+++ b/pkgs/development/ocaml-modules/ocsigen-toolkit/default.nix
@@ -5,7 +5,7 @@
 stdenv.mkDerivation rec {
  pname = "ocsigen-toolkit";
  name = "ocaml${ocaml.version}-${pname}-${version}";
- version = "2.0.0";
+ version = "2.2.0";
 
  propagatedBuildInputs = [ calendar eliom js_of_ocaml-ppx_deriving_json ];
  buildInputs = [ ocaml findlib opaline ];
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
     owner = "ocsigen";
     repo = pname;
     rev = version;
-    sha256 = "0gkiqw3xi31l9q9h89fnr5gfmxi9w9lg9rlv16h4ssjgrgq3y5cw";
+    sha256 = "0qy6501jf81qcmkbicgrb1x4pxsjkhr40plwdn09w37d8vx9va3s";
   };
 
   createFindlibDestdir = true;
diff --git a/pkgs/development/python-modules/capstone/default.nix b/pkgs/development/python-modules/capstone/default.nix
index 91e00ed7e43..2bd22ebf0d9 100644
--- a/pkgs/development/python-modules/capstone/default.nix
+++ b/pkgs/development/python-modules/capstone/default.nix
@@ -6,11 +6,15 @@
 
 buildPythonPackage rec {
   pname = "capstone";
-  version = "3.0.4";
+  version = "3.0.5.post1";
+
+  setupPyBuildFlags = [
+    "--plat-name x86_64-linux"
+  ];
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "945d3b8c3646a1c3914824c416439e2cf2df8969dd722c8979cdcc23b40ad225";
+    sha256 = "3c0f73db9f8392f7048c8a244809f154d7c39f354e2167f6c477630aa517ed04";
   };
 
   patches = [
diff --git a/pkgs/development/python-modules/deprecated/default.nix b/pkgs/development/python-modules/deprecated/default.nix
new file mode 100644
index 00000000000..ee7c89d8167
--- /dev/null
+++ b/pkgs/development/python-modules/deprecated/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchPypi, buildPythonPackage,
+	wrapt, pytest, tox }:
+
+buildPythonPackage rec {
+  pname = "Deprecated";
+  version = "1.2.6";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1hcw9y7dvhwg5flk6wy8aa4kkgpvcqq3q4jd53h54586fp7w85d5";
+  };
+
+  postPatch = ''
+    # odd broken tests, don't appear in GitHub repo
+    rm tests/demo_classic_usage*.py
+  '';
+
+  propagatedBuildInputs = [ wrapt ];
+  checkInputs = [ pytest ];
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/tantale/deprecated";
+    description = "Python @deprecated decorator to deprecate old python classes, functions or methods";
+    platforms = platforms.all;
+    license = licenses.mit;
+    maintainers = with maintainers; [ tilpner ];
+  };
+}
diff --git a/pkgs/development/python-modules/gspread/default.nix b/pkgs/development/python-modules/gspread/default.nix
index a2597b2e6e7..2a20d610485 100644
--- a/pkgs/development/python-modules/gspread/default.nix
+++ b/pkgs/development/python-modules/gspread/default.nix
@@ -1,6 +1,7 @@
 { stdenv
 , buildPythonPackage
 , fetchPypi
+, requests
 }:
 
 buildPythonPackage rec {
@@ -12,10 +13,15 @@ buildPythonPackage rec {
     sha256 = "f7ce6c06250f694976c3cd4944e3b607b0810b93383839e5b67c7199ce2f0d3d";
   };
 
+  propagatedBuildInputs = [ requests ];
+
   meta = with stdenv.lib; {
     description = "Google Spreadsheets client library";
     homepage = "https://github.com/burnash/gspread";
     license = licenses.mit;
   };
 
+  # No tests included
+  doCheck = false;
+
 }
diff --git a/pkgs/development/python-modules/hocr-tools/default.nix b/pkgs/development/python-modules/hocr-tools/default.nix
new file mode 100644
index 00000000000..d5492b3b641
--- /dev/null
+++ b/pkgs/development/python-modules/hocr-tools/default.nix
@@ -0,0 +1,31 @@
+{ buildPythonPackage
+, fetchFromGitHub
+, lxml
+, pillow
+, reportlab
+, stdenv
+}:
+buildPythonPackage rec {
+  pname = "hocr-tools";
+  version = "1.3.0";
+
+  src = fetchFromGitHub {
+    owner = "tmbdev";
+    repo = "${pname}";
+    rev = "v${version}";
+    sha256 = "14f9hkp7pr677085w8iidwd0la9cjzy3pyj3rdg9b03nz9pc0w6p";
+  };
+
+  # hocr-tools uses a test framework that requires internet access
+  doCheck = false;
+
+  propagatedBuildInputs = [ pillow lxml reportlab ];
+
+  meta = with stdenv.lib; {
+    description = "
+Tools for manipulating and evaluating the hOCR format for representing multi-lingual OCR results by embedding them into HTML";
+    homepage = https://github.com/tmbdev/hocr-tools;
+    license = licenses.asl20;
+    maintainers = [ maintainers.kiwi ];
+  };
+}
diff --git a/pkgs/development/python-modules/kconfiglib/default.nix b/pkgs/development/python-modules/kconfiglib/default.nix
new file mode 100644
index 00000000000..7d83d2c4338
--- /dev/null
+++ b/pkgs/development/python-modules/kconfiglib/default.nix
@@ -0,0 +1,21 @@
+{ lib, buildPythonPackage, fetchPypi }:
+
+buildPythonPackage rec {
+  pname = "kconfiglib";
+  version = "10.36.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1qhy4vv1rpgx4r1la14symxv3cpz7klqakn1rqdagwyaqp667g9b";
+  };
+
+  # doesnt work out of the box but might be possible
+  doCheck = false;
+
+  meta = with lib; {
+    description = "A flexible Python 2/3 Kconfig implementation and library";
+    homepage = https://github.com/ulfalizer/Kconfiglib;
+    license = licenses.isc;
+    maintainers = with maintainers; [ teto ];
+  };
+}
diff --git a/pkgs/development/python-modules/pikepdf/default.nix b/pkgs/development/python-modules/pikepdf/default.nix
new file mode 100644
index 00000000000..c2662915b12
--- /dev/null
+++ b/pkgs/development/python-modules/pikepdf/default.nix
@@ -0,0 +1,73 @@
+{ attrs
+, buildPythonPackage
+, defusedxml
+, fetchPypi
+, hypothesis
+, isPy3k
+, lxml
+, pillow
+, pybind11
+, pytest
+, pytest-helpers-namespace
+, pytest-timeout
+, pytest_xdist
+, pytestrunner
+, python-xmp-toolkit
+, python3
+, qpdf
+, setuptools-scm-git-archive
+, setuptools_scm
+, stdenv
+}:
+
+buildPythonPackage rec {
+  pname = "pikepdf";
+  version = "1.1.0";
+  disabled = ! isPy3k;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "14b36r6h3088z2sxp2pqvm171js53hz53mwm1g52iadignjnp0my";
+  };
+
+  buildInputs = [
+    pybind11
+    qpdf
+  ];
+
+  nativeBuildInputs = [
+    setuptools-scm-git-archive
+    setuptools_scm
+  ];
+
+  checkInputs = [
+    attrs
+    hypothesis
+    pillow
+    pytest
+    pytest-helpers-namespace
+    pytest-timeout
+    pytest_xdist
+    pytestrunner
+    python-xmp-toolkit
+  ];
+
+  propagatedBuildInputs = [ defusedxml lxml ];
+
+  postPatch = ''
+    substituteInPlace requirements/test.txt \
+       --replace "pytest >= 3.6.0, < 4.1.0" "pytest >= 4.2.1, < 5"
+  '';
+
+  preBuild = ''
+    HOME=$TMPDIR
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/pikepdf/pikepdf";
+    description = "Read and write PDFs with Python, powered by qpdf";
+    license = licenses.mpl20;
+    maintainers = [ maintainers.kiwi ];
+  };
+}
+
diff --git a/pkgs/development/python-modules/pre-commit/default.nix b/pkgs/development/python-modules/pre-commit/default.nix
new file mode 100644
index 00000000000..6b65af073f4
--- /dev/null
+++ b/pkgs/development/python-modules/pre-commit/default.nix
@@ -0,0 +1,47 @@
+{ lib, fetchPypi, buildPythonApplication, pythonOlder
+, aspy-yaml
+, cached-property
+, cfgv
+, futures
+, identify
+, importlib-metadata
+, importlib-resources
+, nodeenv
+, six
+, toml
+, virtualenv
+}:
+
+buildPythonApplication rec {
+  pname = "pre-commit";
+  version = "1.18.1";
+
+  src = fetchPypi {
+    inherit version;
+    pname = "pre_commit";
+    sha256 = "0d9ja186g41kw3gmhbi6xjvaslz6z4xis4qn1q6jabkka6jz4qhp";
+  };
+
+  propagatedBuildInputs = [
+    aspy-yaml
+    cached-property
+    cfgv
+    identify
+    nodeenv
+    six
+    toml
+    virtualenv
+    importlib-metadata
+  ] ++ lib.optional (pythonOlder "3.7") importlib-resources
+    ++ lib.optional (pythonOlder "3.2") futures;
+
+  # slow and impure
+  doCheck = false;
+
+  meta = with lib; {
+    description = "A framework for managing and maintaining multi-language pre-commit hooks";
+    homepage = https://pre-commit.com/;
+    license = licenses.mit;
+    maintainers = with maintainers; [ borisbabic ];
+  };
+}
diff --git a/pkgs/development/python-modules/pyGithub/default.nix b/pkgs/development/python-modules/pyGithub/default.nix
index 5ffe46e5b6f..a4e3cada1fc 100644
--- a/pkgs/development/python-modules/pyGithub/default.nix
+++ b/pkgs/development/python-modules/pyGithub/default.nix
@@ -1,22 +1,20 @@
 { stdenv, fetchFromGitHub
-, buildPythonPackage, python-jose, pyjwt }:
+, buildPythonPackage, python-jose, pyjwt, requests, deprecated, httpretty }:
 
 buildPythonPackage rec {
   pname = "PyGithub";
-  version = "1.36";
+  version = "1.43.8";
 
   src = fetchFromGitHub {
     owner = "PyGithub";
     repo = "PyGithub";
     rev = "v${version}";
-    sha256 = "0yb74f9hg2vdsy766m850hfb1ss17lbgcdvvklm4qf72w12nxc5w";
+    sha256 = "1625v558xga5mwhl9jqmibywy5qafmg1vqrirqz6zfq1la1d22mw";
   };
 
-  postPatch = ''
-    # requires network
-    echo "" > github/tests/Issue142.py
-  '';
-  propagatedBuildInputs = [ python-jose pyjwt ];
+  propagatedBuildInputs = [ python-jose pyjwt requests deprecated httpretty ];
+  doCheck = false;
+
   meta = with stdenv.lib; {
     homepage = https://github.com/PyGithub/PyGithub;
     description = "A Python (2 and 3) library to access the GitHub API v3";
diff --git a/pkgs/development/python-modules/pylibgen/default.nix b/pkgs/development/python-modules/pylibgen/default.nix
index ce0df266332..559b75eec41 100644
--- a/pkgs/development/python-modules/pylibgen/default.nix
+++ b/pkgs/development/python-modules/pylibgen/default.nix
@@ -1,31 +1,33 @@
-{ buildPythonPackage, lib, fetchPypi
-, isPy3k
+{ lib, buildPythonPackage, fetchFromGitHub
+, pythonOlder
 , requests
 , pytest
+, pre-commit
 }:
 
 buildPythonPackage rec {
   pname = "pylibgen";
-  version = "2.0.1";
+  version = "2.0.2";
+  disabled = pythonOlder "3.6";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "3c2a82b47cb7225dcf4ecea27081b0185ae4d195499140cdbb9597d914e1ae9e";
+  src = fetchFromGitHub {
+    owner = "joshuarli";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1a9vhkgnkiwkicr2s287254mrkpnw9jq5r63q820dp3h74ba4kl1";
   };
 
-  disabled = !isPy3k;
-
   propagatedBuildInputs = [ requests ];
 
-  checkInputs = [ pytest ];
+  checkInputs = [ pytest pre-commit ];
 
-  # no tests in PyPI tarball
+  # literally every tests does a network call
   doCheck = false;
 
-  meta = {
+  meta = with lib; {
     description = "Python interface to Library Genesis";
     homepage = https://pypi.org/project/pylibgen/;
-    license = lib.licenses.mit;
-    maintainers = [ lib.maintainers.nico202 ];
+    license = licenses.mit;
+    maintainers = [ maintainers.nico202 ];
   };
 }
diff --git a/pkgs/development/tools/profiling/pyprof2calltree/default.nix b/pkgs/development/python-modules/pyprof2calltree/default.nix
index a2d98bcf238..198445177c4 100644
--- a/pkgs/development/tools/profiling/pyprof2calltree/default.nix
+++ b/pkgs/development/python-modules/pyprof2calltree/default.nix
@@ -1,6 +1,6 @@
-{ lib, buildPythonApplication, fetchFromGitHub }:
+{ lib, buildPythonPackage, fetchFromGitHub }:
 
-buildPythonApplication rec {
+buildPythonPackage rec {
   pname = "pyprof2calltree";
   version = "1.4.4";
 
diff --git a/pkgs/development/python-modules/pytest-helpers-namespace/default.nix b/pkgs/development/python-modules/pytest-helpers-namespace/default.nix
new file mode 100644
index 00000000000..a4e0cb809ae
--- /dev/null
+++ b/pkgs/development/python-modules/pytest-helpers-namespace/default.nix
@@ -0,0 +1,35 @@
+{ buildPythonPackage
+, fetchFromGitHub
+, pytest
+, stdenv
+}:
+
+buildPythonPackage rec {
+  pname = "pytest-helpers-namespace";
+  version = "2019.1.8";
+
+  src = fetchFromGitHub {
+    owner = "saltstack";
+    repo = "${pname}";
+    rev = "v${version}";
+    sha256 = "0z9f25d2wpf3lnqzmmnrlvl5b1f7kqwjjf4nzs9x2bpf91s5zny1";
+  };
+
+  buildInputs = [ pytest ];
+
+  checkInputs = [ pytest ];
+
+  checkPhase = ''
+    pytest
+  '';
+
+  # The tests fail with newest pytest. They passed with pytest_3, which no longer exists
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/saltstack/pytest-helpers-namespace";
+    description = "PyTest Helpers Namespace";
+    license = licenses.asl20;
+    maintainers = [ maintainers.kiwi ];
+  };
+}
diff --git a/pkgs/development/python-modules/python-xmp-toolkit/default.nix b/pkgs/development/python-modules/python-xmp-toolkit/default.nix
new file mode 100644
index 00000000000..93fa36fa2fc
--- /dev/null
+++ b/pkgs/development/python-modules/python-xmp-toolkit/default.nix
@@ -0,0 +1,44 @@
+{ buildPythonPackage
+, exempi
+, fetchFromGitHub
+, mock
+, pythonOlder
+, pytz
+, stdenv
+}:
+
+buildPythonPackage rec {
+  pname = "python-xmp-toolkit";
+  version = "2.0.2";
+
+  # PyPi has version 2.0.1; the tests fail
+  # There are commits for a 2.0.2 release that was never published
+  # Not to github, not to PyPi
+  # This is the latest commit from Jun 29, 2017 (as of Mar 13, 2019)
+  # It includes the commits for the unreleased version 2.0.2 and more
+  # Tests pass with this version
+  src = fetchFromGitHub {
+    owner = "python-xmp-toolkit";
+    repo = "python-xmp-toolkit";
+    rev = "5692bdf8dac3581a0d5fb3c5aeb29be0ab6a54fc";
+    sha256 = "16bylcm183ilzp7mrpdzw0pzp6csv9v5v247914qsv2abg0hgl5y";
+  };
+
+  buildInputs = [ exempi ];
+
+  checkInputs = stdenv.lib.optionals (pythonOlder "3.3") [ mock ];
+
+  propagatedBuildInputs = [ pytz ];
+
+  postPatch = ''
+    substituteInPlace libxmp/exempi.py \
+      --replace "ctypes.util.find_library('exempi')" "'${exempi}/lib/libexempi${stdenv.hostPlatform.extensions.sharedLibrary}'"
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/python-xmp-toolkit/python-xmp-toolkit;
+    description = "Python XMP Toolkit for working with metadata";
+    license = licenses.bsd3;
+    maintainers = [ maintainers.kiwi ];
+  };
+}
diff --git a/pkgs/development/python-modules/ruffus/default.nix b/pkgs/development/python-modules/ruffus/default.nix
new file mode 100644
index 00000000000..1b3b271fb61
--- /dev/null
+++ b/pkgs/development/python-modules/ruffus/default.nix
@@ -0,0 +1,53 @@
+{ gevent
+, buildPythonPackage
+, fetchFromGitHub
+, hostname
+, pytest
+, python
+, stdenv
+}:
+
+buildPythonPackage rec {
+  pname = "ruffus";
+  version = "2.8.1";
+
+  src = fetchFromGitHub {
+    owner = "cgat-developers";
+    repo = "${pname}";
+    rev = "v${version}";
+    sha256 = "1gyabqafq4s2sy0prh3k1m8859shzjmfxr7fimx10liflvki96a9";
+  };
+
+  propagatedBuildInputs = [ gevent ];
+
+  postPatch = ''
+    sed -i -e 's|/bin/bash|${stdenv.shell}|'          ruffus/test/Makefile
+    sed -i -e 's|\tpytest|\t${pytest}/bin/pytest|'    ruffus/test/Makefile
+    sed -i -e 's|\tpython|\t${python.interpreter}|'   ruffus/test/Makefile
+    sed -i -e 's|/usr/bin/env bash|${stdenv.shell}|'  ruffus/test/run_all_unit_tests.cmd
+    sed -i -e 's|python3|${python.interpreter}|'      ruffus/test/run_all_unit_tests3.cmd
+    sed -i -e 's|python %s|${python.interpreter} %s|' ruffus/test/test_drmaa_wrapper_run_job_locally.py
+  '';
+
+  makefile = "ruffus/test/Makefile";
+
+  checkInputs = [
+    gevent
+    hostname
+    pytest
+  ];
+
+  checkPhase = ''
+    export HOME=$TMPDIR
+    cd ruffus/test
+    make all PYTEST_OPTIONS="-q --disable-warnings"
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Light-weight Python Computational Pipeline Management";
+    homepage = http://www.ruffus.org.uk;
+    license = licenses.mit;
+    maintainers = [ maintainers.kiwi ];
+  };
+}
+
diff --git a/pkgs/development/python-modules/unittest-data-provider/default.nix b/pkgs/development/python-modules/unittest-data-provider/default.nix
new file mode 100644
index 00000000000..ec34a451156
--- /dev/null
+++ b/pkgs/development/python-modules/unittest-data-provider/default.nix
@@ -0,0 +1,21 @@
+{ buildPythonPackage
+, lib
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  version = "1.0.1";
+  pname = "unittest-data-provider";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1gn2ka4vqpayx4cpbp8712agqjh3wdpk9smdxnp709ccc2v7zg46";
+  };
+
+  meta = with lib; {
+    description = "PHPUnit-like @dataprovider decorator for unittest";
+    homepage = https://github.com/yourlabs/unittest-data-provider;
+    license = licenses.mit;
+    maintainers = with maintainers; [ jonringer ];
+  };
+}
diff --git a/pkgs/development/tools/icestorm/default.nix b/pkgs/development/tools/icestorm/default.nix
index b4f5d74d1d2..b7b302fe08c 100644
--- a/pkgs/development/tools/icestorm/default.nix
+++ b/pkgs/development/tools/icestorm/default.nix
@@ -1,23 +1,26 @@
 { stdenv, fetchFromGitHub
 , pkgconfig, libftdi
 , python3, pypy3
+
+# PyPy yields large improvements in build time and runtime performance,
+# and IceStorm isn't intended to be used as a library other than by the
+# nextpnr build process (which is also sped up by using PyPy), so we
+# use it by default. See 18839e1 for more details.
+, usePyPy ? stdenv.isx86_64 /* pypy3 seems broken on i686 */
 }:
 
 let
-  pypyCompatible = stdenv.isx86_64; /* pypy3 seems broken on i686 */
-  pythonPkg      = if pypyCompatible then pypy3 else python3;
-  pythonInterp   = pythonPkg.interpreter;
-in
-
-stdenv.mkDerivation rec {
+  pythonPkg = if usePyPy then pypy3 else python3;
+  pythonInterp = pythonPkg.interpreter;
+in stdenv.mkDerivation rec {
   pname = "icestorm";
-  version = "2019.04.16";
+  version = "2019.08.08";
 
   src = fetchFromGitHub {
     owner  = "cliffordwolf";
     repo   = "icestorm";
-    rev    = "d9ea2e15fccebbbce59409b0ae7a1481d78aab86";
-    sha256 = "1qa37p7hm7c2ga26xcvsd8xkqrp4hm0w6yh7cvz2q988yjzal5ky";
+    rev    = "2ccae0d3864fd7268118287a85963c0116745cff";
+    sha256 = "1vlk5k7x6c1bjp19niyl0shljj8il94q2brjmda1rwhqxz81g9s7";
   };
 
   nativeBuildInputs = [ pkgconfig ];
diff --git a/pkgs/development/tools/misc/cgdb/default.nix b/pkgs/development/tools/misc/cgdb/default.nix
index e5bbdc562b1..f823519fb34 100644
--- a/pkgs/development/tools/misc/cgdb/default.nix
+++ b/pkgs/development/tools/misc/cgdb/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "cgdb";
-  version = "0.7.0";
+  version = "0.7.1";
 
   src = fetchurl {
     url = "https://cgdb.me/files/${pname}-${version}.tar.gz";
-    sha256 = "08slzg3702v5nivjhdx2bciqxc5vqcn8pc4i4lsgkcwdcrj94ymz";
+    sha256 = "1671gpz5gx5j0zga8xy2x7h33vqh3nij93lbb6dbb366ivjknwmv";
   };
 
   buildInputs = [ ncurses readline flex texinfo ];
diff --git a/pkgs/development/tools/trellis/default.nix b/pkgs/development/tools/trellis/default.nix
index 565811b2048..0888130c2d4 100644
--- a/pkgs/development/tools/trellis/default.nix
+++ b/pkgs/development/tools/trellis/default.nix
@@ -8,21 +8,21 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "trellis";
-  version = "2019.04.22";
+  version = "2019.08.09";
 
   srcs = [
     (fetchFromGitHub {
        owner  = "symbiflow";
        repo   = "prjtrellis";
-       rev    = "5eb0ad870f30422b95d090ac9a476343809c62b9";
-       sha256 = "10jkjfhqdr2bff41mh3w8a7kszf2whqqgk5s1z5z07mlh6zfdjlg";
+       rev    = "a67379179985bb12a611c75d975548cdf6e7d12e";
+       sha256 = "0vqwfsblf7ylz0jnnf532kap5s1d1zcvbavxmb6a4v32b9xfdv35";
        name   = "trellis";
      })
     (fetchFromGitHub {
       owner  = "symbiflow";
       repo   = "prjtrellis-db";
-      rev    = "d0b219af41ae3da6150645fbc5cc5613b530603f";
-      sha256 = "1mnzvrqrcbfypvbagwyf6arv3kmj6q7n27gcmyk6ap2xnavkx4bq";
+      rev    = "b4d626b6402c131e9a035470ffe4cf33ccbe7986";
+      sha256 = "0k26lq6c049ja8hhqcljwjb1y5k4gcici23l2n86gyp83jr03ilx";
       name   = "database";
     })
   ];