summary refs log tree commit diff
path: root/pkgs/tools
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/tools')
-rw-r--r--pkgs/tools/X11/imwheel/default.nix25
-rw-r--r--pkgs/tools/X11/xidlehook/default.nix8
-rw-r--r--pkgs/tools/X11/xosview2/default.nix6
-rw-r--r--pkgs/tools/admin/ansible/default.nix4
-rw-r--r--pkgs/tools/admin/aws-rotate-key/default.nix4
-rw-r--r--pkgs/tools/admin/lego/default.nix4
-rw-r--r--pkgs/tools/audio/liquidsoap/full.nix11
-rw-r--r--pkgs/tools/backup/bacula/default.nix4
-rw-r--r--pkgs/tools/backup/easysnap/default.nix6
-rw-r--r--pkgs/tools/cd-dvd/dvd-vr/default.nix20
-rw-r--r--pkgs/tools/cd-dvd/mdf2iso/default.nix6
-rw-r--r--pkgs/tools/filesystems/android-file-transfer/default.nix4
-rw-r--r--pkgs/tools/filesystems/davfs2/default.nix4
-rw-r--r--pkgs/tools/filesystems/f3/default.nix4
-rw-r--r--pkgs/tools/filesystems/mtools/default.nix7
-rw-r--r--pkgs/tools/filesystems/mtools/fix-dos_to_wchar-declaration.patch11
-rw-r--r--pkgs/tools/filesystems/rdfind/default.nix4
-rw-r--r--pkgs/tools/filesystems/squashfs/default.nix10
-rw-r--r--pkgs/tools/filesystems/squashfs/squashfs-tools-4.3-4k-align.patch92
-rw-r--r--pkgs/tools/graphics/appleseed/default.nix4
-rw-r--r--pkgs/tools/graphics/bins/bins_edit-isa.patch20
-rw-r--r--pkgs/tools/graphics/bins/cp-dash-f.patch11
-rw-r--r--pkgs/tools/graphics/bins/default.nix50
-rw-r--r--pkgs/tools/graphics/bins/hashref.patch13
-rw-r--r--pkgs/tools/graphics/blockhash/default.nix8
-rw-r--r--pkgs/tools/graphics/glmark2/default.nix13
-rw-r--r--pkgs/tools/graphics/lprof/default.nix12
-rw-r--r--pkgs/tools/graphics/oxipng/default.nix10
-rw-r--r--pkgs/tools/inputmethods/fusuma/Gemfile2
-rw-r--r--pkgs/tools/inputmethods/fusuma/Gemfile.lock13
-rw-r--r--pkgs/tools/inputmethods/fusuma/default.nix22
-rw-r--r--pkgs/tools/inputmethods/fusuma/gemset.nix10
-rw-r--r--pkgs/tools/inputmethods/ibus-engines/ibus-table-chinese/default.nix64
-rw-r--r--pkgs/tools/inputmethods/ibus-engines/ibus-table/default.nix1
-rw-r--r--pkgs/tools/misc/bc/default.nix2
-rw-r--r--pkgs/tools/misc/blsd/default.nix3
-rw-r--r--pkgs/tools/misc/desktop-file-utils/default.nix10
-rw-r--r--pkgs/tools/misc/direnv/default.nix4
-rw-r--r--pkgs/tools/misc/doitlive/default.nix4
-rw-r--r--pkgs/tools/misc/dvtm/default.nix34
-rw-r--r--pkgs/tools/misc/dvtm/dvtm.nix30
-rw-r--r--pkgs/tools/misc/dvtm/unstable.nix29
-rw-r--r--pkgs/tools/misc/file/default.nix6
-rw-r--r--pkgs/tools/misc/fpart/default.nix14
-rw-r--r--pkgs/tools/misc/hyperfine/default.nix6
-rw-r--r--pkgs/tools/misc/jdupes/default.nix4
-rw-r--r--pkgs/tools/misc/mdbtools/default.nix21
-rw-r--r--pkgs/tools/misc/mdbtools/git.nix35
-rw-r--r--pkgs/tools/misc/miniserve/default.nix25
-rw-r--r--pkgs/tools/misc/ostree/default.nix4
-rw-r--r--pkgs/tools/misc/parallel/default.nix4
-rw-r--r--pkgs/tools/misc/timidity/default.nix6
-rw-r--r--pkgs/tools/misc/youtube-dl/default.nix4
-rw-r--r--pkgs/tools/networking/amass/default.nix42
-rw-r--r--pkgs/tools/networking/amass/deps.nix101
-rw-r--r--pkgs/tools/networking/babeld/default.nix4
-rw-r--r--pkgs/tools/networking/curl/7_59.nix14
-rw-r--r--pkgs/tools/networking/curl/default.nix18
-rw-r--r--pkgs/tools/networking/http-prompt/default.nix4
-rw-r--r--pkgs/tools/networking/isync/unstable.nix31
-rw-r--r--pkgs/tools/networking/kea/default.nix4
-rw-r--r--pkgs/tools/networking/openconnect_pa/default.nix40
-rw-r--r--pkgs/tools/networking/smbldaptools/default.nix32
-rw-r--r--pkgs/tools/networking/ssh-agents/default.nix43
-rw-r--r--pkgs/tools/networking/tcpreplay/default.nix4
-rw-r--r--pkgs/tools/networking/twa/default.nix4
-rw-r--r--pkgs/tools/networking/unbound/default.nix4
-rw-r--r--pkgs/tools/networking/weighttp/default.nix8
-rw-r--r--pkgs/tools/networking/wireguard-tools/default.nix4
-rw-r--r--pkgs/tools/package-management/createrepo_c/default.nix14
-rw-r--r--pkgs/tools/package-management/gx/default.nix4
-rw-r--r--pkgs/tools/package-management/gx/deps.nix270
-rw-r--r--pkgs/tools/package-management/gx/go/default.nix6
-rw-r--r--pkgs/tools/package-management/gx/go/deps.nix246
-rw-r--r--pkgs/tools/package-management/librepo/default.nix10
-rw-r--r--pkgs/tools/package-management/morph/default.nix37
-rw-r--r--pkgs/tools/package-management/morph/deps.nix66
-rw-r--r--pkgs/tools/package-management/nix-index/default.nix2
-rw-r--r--pkgs/tools/package-management/nixops/generic.nix1
-rw-r--r--pkgs/tools/package-management/nixops/unstable.nix6
-rw-r--r--pkgs/tools/security/browserpass/default.nix4
-rw-r--r--pkgs/tools/security/duo-unix/default.nix4
-rw-r--r--pkgs/tools/security/hashcat/default.nix9
-rw-r--r--pkgs/tools/security/hashcat/use-installed-xxhash.patch22
-rw-r--r--pkgs/tools/security/kpcli/default.nix8
-rw-r--r--pkgs/tools/security/nsjail/default.nix4
-rw-r--r--pkgs/tools/security/shc/default.nix6
-rw-r--r--pkgs/tools/security/wpscan/Gemfile2
-rw-r--r--pkgs/tools/security/wpscan/Gemfile.lock55
-rw-r--r--pkgs/tools/security/wpscan/default.nix21
-rw-r--r--pkgs/tools/security/wpscan/gemset.nix164
-rw-r--r--pkgs/tools/system/collectd/default.nix11
-rw-r--r--pkgs/tools/system/datefudge/default.nix4
-rw-r--r--pkgs/tools/system/hwinfo/default.nix4
-rw-r--r--pkgs/tools/system/netdata/default.nix37
-rw-r--r--pkgs/tools/system/netdata/no-files-in-etc-and-var.patch86
-rw-r--r--pkgs/tools/system/sleuthkit/default.nix4
-rw-r--r--pkgs/tools/system/stress-ng/default.nix21
-rw-r--r--pkgs/tools/system/tree/default.nix4
-rw-r--r--pkgs/tools/text/glogg/default.nix29
-rw-r--r--pkgs/tools/text/xsv/default.nix4
-rw-r--r--pkgs/tools/typesetting/git-latexdiff/default.nix10
-rw-r--r--pkgs/tools/typesetting/git-latexdiff/shebang.patch10
-rw-r--r--pkgs/tools/typesetting/git-latexdiff/version-test.patch6
-rw-r--r--pkgs/tools/typesetting/scdoc/default.nix6
-rw-r--r--pkgs/tools/typesetting/scdoc/use-source-date-epoch.patch75
-rw-r--r--pkgs/tools/virtualization/google-compute-engine/default.nix4
-rw-r--r--pkgs/tools/virtualization/mininet/default.nix48
108 files changed, 1680 insertions, 733 deletions
diff --git a/pkgs/tools/X11/imwheel/default.nix b/pkgs/tools/X11/imwheel/default.nix
new file mode 100644
index 00000000000..f33e15e59cc
--- /dev/null
+++ b/pkgs/tools/X11/imwheel/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchurl, libX11, libXext, libXi, libXmu, libXt, libXtst }:
+
+stdenv.mkDerivation rec {
+  name = "imwheel-1.0.0pre12";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/imwheel/${name}.tar.gz";
+    sha256 = "2320ed019c95ca4d922968e1e1cbf0c075a914e865e3965d2bd694ca3d57cfe3";
+  };
+
+  buildInputs = [ libX11 libXext libXi libXmu libXt libXtst ];
+
+  postPatch = ''
+    substituteInPlace Makefile.in --replace "ETCDIR = " "ETCDIR = $out"
+    substituteInPlace util.c --replace "/etc/X11/imwheel" "$out/etc/X11/imwheel"
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = "http://imwheel.sourceforge.net/";
+    description = "Mouse wheel configuration tool for XFree86/Xorg";
+    maintainers = with maintainers; [ jhillyerd ];
+    platforms = platforms.linux;
+    license = licenses.gpl2;
+  };
+}
diff --git a/pkgs/tools/X11/xidlehook/default.nix b/pkgs/tools/X11/xidlehook/default.nix
index 5bdab3104a3..54ab6a3c803 100644
--- a/pkgs/tools/X11/xidlehook/default.nix
+++ b/pkgs/tools/X11/xidlehook/default.nix
@@ -1,9 +1,9 @@
 { lib, stdenv, rustPlatform, fetchFromGitLab
-, xlibsWrapper, xorg, libpulseaudio, pkgconfig, patchelf }:
+, xlibsWrapper, xorg, libpulseaudio, pkgconfig, patchelf, Security }:
 
 rustPlatform.buildRustPackage rec {
   name = "xidlehook-${version}";
-  version = "0.6.0";
+  version = "0.6.1";
 
   doCheck = false;
 
@@ -12,13 +12,13 @@ rustPlatform.buildRustPackage rec {
     repo = "xidlehook";
     rev = version;
 
-    sha256 = "0rmc0g5cizyzwpk4yyh7bda70x9ybaivc6iw441k6abxmzbh358g";
+    sha256 = "04h6j66wif202x4kssagb66nnrz9m9ccs1d0dfh92955yix1ln23";
   };
 
   cargoBuildFlags = lib.optionals (!stdenv.isLinux) ["--no-default-features" "--features" "pulse"];
   cargoSha256 = "1pdhbqnkgwp2v5zyin8z8049aq8c3kfk04v9wsbz8qla34rgi99s";
 
-  buildInputs = [ xlibsWrapper xorg.libXScrnSaver libpulseaudio ];
+  buildInputs = [ xlibsWrapper xorg.libXScrnSaver libpulseaudio ] ++ lib.optional stdenv.isDarwin Security;
   nativeBuildInputs = [ pkgconfig patchelf ];
 
   postFixup = lib.optionalString stdenv.isLinux ''
diff --git a/pkgs/tools/X11/xosview2/default.nix b/pkgs/tools/X11/xosview2/default.nix
index c8b658d4350..ae11cb4f423 100644
--- a/pkgs/tools/X11/xosview2/default.nix
+++ b/pkgs/tools/X11/xosview2/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   name = "xosview2-${version}";
-  version = "2.2.2";
+  version = "2.3.0";
 
   src = fetchurl {
     url = "mirror://sourceforge/xosview/${name}.tar.gz";
-    sha256 = "3502e119a5305ff2396f559340132910807351c7d4e375f13b5c338404990406";
+    sha256 = "0a588aryjn3397p7d3sp3nblnsg3v8affib1kfk3k8x0x75vgpal";
   };
 
   # The software failed to buid with this enabled; it seemed tests were not implemented
@@ -34,7 +34,7 @@ stdenv.mkDerivation rec {
       monitor what is going on.
     '';
     homepage = "http://xosview.sourceforge.net/index.html";
-    license = licenses.gpl1;
+    license = with licenses; [ gpl2 bsdOriginal ];
     maintainers = [ maintainers.SeanZicari ];
     platforms = platforms.all;
   };
diff --git a/pkgs/tools/admin/ansible/default.nix b/pkgs/tools/admin/ansible/default.nix
index c86a108fc42..6ae089ac1d9 100644
--- a/pkgs/tools/admin/ansible/default.nix
+++ b/pkgs/tools/admin/ansible/default.nix
@@ -63,8 +63,8 @@ in rec {
   };
 
   ansible_2_7 = generic {
-    version = "2.7.1";
-    sha256  = "0fg95x2nr3j4rwnlyd2n03h91xx9fssi34c32356vk3z6ir395g7";
+    version = "2.7.2";
+    sha256  = "1q0yxba57m18rfpc3syvj7vyqsb35081h6s33qr6h0jf3r9pj3d0";
   };
 
   ansible2 = ansible_2_7;
diff --git a/pkgs/tools/admin/aws-rotate-key/default.nix b/pkgs/tools/admin/aws-rotate-key/default.nix
index a8c00cf0eef..e03e7f34535 100644
--- a/pkgs/tools/admin/aws-rotate-key/default.nix
+++ b/pkgs/tools/admin/aws-rotate-key/default.nix
@@ -2,7 +2,7 @@
 
 buildGoPackage rec {
   name = "aws-rotate-key-${version}";
-  version = "1.0.3";
+  version = "1.0.4";
 
   goPackagePath = "github.com/Fullscreen/aws-rotate-key";
 
@@ -10,7 +10,7 @@ buildGoPackage rec {
     rev = "v${version}";
     owner = "Fullscreen";
     repo = "aws-rotate-key";
-    sha256 = "15na7flc0vp14amaq3116a5glqlb4ydvdlzv0q7mwl73pc38zxn3";
+    sha256 = "14bcs434646qdywws55r1a1v8ncwz8n0yljaa8zb5796pv4445wf";
   };
 
   goDeps = ./deps.nix;
diff --git a/pkgs/tools/admin/lego/default.nix b/pkgs/tools/admin/lego/default.nix
index 07311c2c64a..4805a94e7e9 100644
--- a/pkgs/tools/admin/lego/default.nix
+++ b/pkgs/tools/admin/lego/default.nix
@@ -2,14 +2,14 @@
 
 buildGoPackage rec {
   name = "lego-${version}";
-  version = "1.0.1";
+  version = "1.2.1";
   rev = "v${version}";
 
   src = fetchFromGitHub {
     inherit rev;
     owner = "xenolf";
     repo = "lego";
-    sha256 = "1l9winhqwid8ac8il303qkhsn0v5h7zhlklviszfi1rjal38ipiz";
+    sha256 = "1b2cv78v54afflz3gfyidkwzq7r2h5j45rmz0ybps03pr0hs4gk3";
   };
 
   goPackagePath = "github.com/xenolf/lego";
diff --git a/pkgs/tools/audio/liquidsoap/full.nix b/pkgs/tools/audio/liquidsoap/full.nix
index 7ef0793a483..f69e60117ce 100644
--- a/pkgs/tools/audio/liquidsoap/full.nix
+++ b/pkgs/tools/audio/liquidsoap/full.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, which, pkgconfig
+{ stdenv, makeWrapper, fetchurl, which, pkgconfig
 , ocamlPackages
 , libao, portaudio, alsaLib, libpulseaudio, libjack2
 , libsamplerate, libmad, taglib, lame, libogg
@@ -31,10 +31,15 @@ stdenv.mkDerivation {
     sed ${toString packageFilters} PACKAGES.default > PACKAGES
   '';
 
+  postFixup = ''
+    wrapProgram $out/bin/liquidsoap --set LIQ_LADSPA_PATH /run/current-system/sw/lib/ladspa
+  '';
+
   configureFlags = [ "--localstatedir=/var" ];
 
+  nativeBuildInputs = [ makeWrapper pkgconfig ];
   buildInputs =
-    [ which ocamlPackages.ocaml ocamlPackages.findlib pkgconfig
+    [ which ocamlPackages.ocaml ocamlPackages.findlib
       libao portaudio alsaLib libpulseaudio libjack2
       libsamplerate libmad taglib lame libogg
       libvorbis speex libtheora libopus fdk_aac
@@ -47,7 +52,7 @@ stdenv.mkDerivation {
 
   meta = with stdenv.lib; {
     description = "Swiss-army knife for multimedia streaming";
-    homepage = http://liquidsoap.fm/;
+    homepage = https://www.liquidsoap.info/;
     maintainers = with maintainers; [ ehmry ];
     license = licenses.gpl2;
     platforms = ocamlPackages.ocaml.meta.platforms or [];
diff --git a/pkgs/tools/backup/bacula/default.nix b/pkgs/tools/backup/bacula/default.nix
index fd8b1e6c828..fce1ff75cfa 100644
--- a/pkgs/tools/backup/bacula/default.nix
+++ b/pkgs/tools/backup/bacula/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, sqlite, postgresql, zlib, acl, ncurses, openssl, readline }:
 
 stdenv.mkDerivation rec {
-  name = "bacula-9.2.1";
+  name = "bacula-9.2.2";
 
   src = fetchurl {
     url    = "mirror://sourceforge/bacula/${name}.tar.gz";
-    sha256 = "1mv6axdlv246yww9g2ra76hir1km36cv8lk2gal8kv71i64vafmf";
+    sha256 = "0bi2jwvgs2ppdvksx41z69b5r5qr39kasxcgyhd08d6i8z89j87h";
   };
 
   buildInputs = [ postgresql sqlite zlib ncurses openssl readline ]
diff --git a/pkgs/tools/backup/easysnap/default.nix b/pkgs/tools/backup/easysnap/default.nix
index a8c726c9e16..d8643dbf907 100644
--- a/pkgs/tools/backup/easysnap/default.nix
+++ b/pkgs/tools/backup/easysnap/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   name = "easysnap-${version}";
-  version = "unstable-2018-10-28";
+  version = "unstable-2018-11-20";
 
   src = fetchFromGitHub {
     owner = "sjau";
     repo = "easysnap";
-    rev = "aa2768762da7730aa3eb90fdc2190a8359976edc";
-    sha256 = "0csn7capsmlkin4cf1fgl766gvszvqfllqkiyz0g9bvbapxv7nba";
+    rev = "dbf58c06a339cb040dbdcaf7e6ffec5af4add3c7";
+    sha256 = "0rvikmj2k103ffgnvkway8n6ajq0vzwcxb4l5vhka1hqh8047lam";
   };
 
   installPhase = ''
diff --git a/pkgs/tools/cd-dvd/dvd-vr/default.nix b/pkgs/tools/cd-dvd/dvd-vr/default.nix
new file mode 100644
index 00000000000..99908f06b10
--- /dev/null
+++ b/pkgs/tools/cd-dvd/dvd-vr/default.nix
@@ -0,0 +1,20 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+  name = "dvd-vr-${version}";
+  version = "0.9.7";
+  src = fetchurl {
+    url = "https://www.pixelbeat.org/programs/dvd-vr/dvd-vr-${version}.tar.gz";
+    sha256 = "13wkdia3c0ryda40b2nzpb9vddimasgc4w95hvl0k555k9k8bl0r";
+  };
+  makeFlags = [ "PREFIX=$(out)" ];
+
+  meta = with stdenv.lib; {
+    homepage = https://www.pixelbeat.org/programs/dvd-vr/;
+    downloadPage = https://www.pixelbeat.org/programs/dvd-vr/;
+    description = "A utility to identify and optionally copy recordings from a DVD-VR format disc";
+    license = licenses.gpl2;
+    maintainers = with maintainers; [ fgaz ];
+  };
+}
+
diff --git a/pkgs/tools/cd-dvd/mdf2iso/default.nix b/pkgs/tools/cd-dvd/mdf2iso/default.nix
index c87d5783ff6..f33ba31beee 100644
--- a/pkgs/tools/cd-dvd/mdf2iso/default.nix
+++ b/pkgs/tools/cd-dvd/mdf2iso/default.nix
@@ -5,9 +5,9 @@ stdenv.mkDerivation rec {
   version = "0.3.1";
 
   src = fetchgit {
-    url    = https://anonscm.debian.org/cgit/collab-maint/mdf2iso.git;
-    rev    = "5a8acaf3645bff863f9f16ea1d3632c312f01523";
-    sha256 = "0f2jx8dg1sxc8y0sisqhqsqg7pj1j84fp08nahp0lfcq522pqbhl";
+    url    = "https://salsa.debian.org/debian/mdf2iso";
+    rev    = "c6a5b588318d43bc8af986bbe48d0a06e92f4280";
+    sha256 = "0xg43jlvrk8adfjgbjir15nxwcj0nhz4gxpqx7jdfvhg0kwliq0n";
   };
 
   meta = with stdenv.lib; {
diff --git a/pkgs/tools/filesystems/android-file-transfer/default.nix b/pkgs/tools/filesystems/android-file-transfer/default.nix
index c3a0c46d5ec..6441ae5dbd1 100644
--- a/pkgs/tools/filesystems/android-file-transfer/default.nix
+++ b/pkgs/tools/filesystems/android-file-transfer/default.nix
@@ -2,12 +2,12 @@
 
 stdenv.mkDerivation rec {
   name = "android-file-transfer-${version}";
-  version = "3.6";
+  version = "3.7";
   src = fetchFromGitHub {
     owner = "whoozle";
     repo = "android-file-transfer-linux";
     rev = "v${version}";
-    sha256 = "0gaj1shmd62ks4cjdcmiqczlr93v8ivjcg0l6s8z73cz9pf8dxmz";
+    sha256 = "0a388pqc0azgn0wy85wb1mjk3b5zb6vcr58l4warwfzhca400zn0";
   };
   buildInputs = [ cmake fuse readline pkgconfig qtbase ];
   buildPhase = ''
diff --git a/pkgs/tools/filesystems/davfs2/default.nix b/pkgs/tools/filesystems/davfs2/default.nix
index 38933c524cc..37ee611f054 100644
--- a/pkgs/tools/filesystems/davfs2/default.nix
+++ b/pkgs/tools/filesystems/davfs2/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, neon, zlib }:
 
 stdenv.mkDerivation rec {
-  name = "davfs2-1.5.3";
+  name = "davfs2-1.5.4";
 
   src = fetchurl {
     url = "mirror://savannah/davfs2/${name}.tar.gz";
-    sha256 = "1x9ri19995ika89cmc56za7z3ipiizhh6zdhi4mf4p7chxzdnhrw";
+    sha256 = "1q4ngkzbkq0rfxikvkwg7ccpzi1nkkmlf8bb46326y1aj7qf1i69";
   };
 
   buildInputs = [ neon zlib ];
diff --git a/pkgs/tools/filesystems/f3/default.nix b/pkgs/tools/filesystems/f3/default.nix
index 61c6ab253cc..7fb9ed3c97a 100644
--- a/pkgs/tools/filesystems/f3/default.nix
+++ b/pkgs/tools/filesystems/f3/default.nix
@@ -5,7 +5,7 @@
 stdenv.mkDerivation rec {
   name = "${pname}-${version}";
   pname = "f3";
-  version = "7.0";
+  version = "7.1";
 
   enableParallelBuilding = true;
 
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
     owner = "AltraMayor";
     repo = pname;
     rev = "v${version}";
-    sha256 = "195j2zd747ffbsl8p5rf7dyn1j5n05zfqy1s9fm4y6lz8yc1nr17";
+    sha256 = "0zglsmz683jg7f9wc6vmgljyg9w87pbnjw5x4w6x02w8233zvjqf";
   };
 
   buildInputs = [ parted udev ];
diff --git a/pkgs/tools/filesystems/mtools/default.nix b/pkgs/tools/filesystems/mtools/default.nix
index 762368651d7..1cbe48ecee5 100644
--- a/pkgs/tools/filesystems/mtools/default.nix
+++ b/pkgs/tools/filesystems/mtools/default.nix
@@ -1,16 +1,17 @@
 { stdenv, fetchurl }:
 
 stdenv.mkDerivation rec {
-  name = "mtools-4.0.19";
+  name = "mtools-4.0.20";
 
   src = fetchurl {
     url = "mirror://gnu/mtools/${name}.tar.bz2";
-    sha256 = "1pqhv5l4fqj1d3698vajkccz65xqxs3991wpylbw7hm1kqcrgh8v";
+    sha256 = "1vcahr9s6zv1hnrx2bgjnzcas2y951q90r1jvvv4q9v5kwfd6qb0";
   };
 
   # Prevents errors such as "mainloop.c:89:15: error: expected ')'"
   # Upstream issue https://lists.gnu.org/archive/html/info-mtools/2014-02/msg00000.html
-  patches = stdenv.lib.optional stdenv.isDarwin ./UNUSED-darwin.patch;
+  patches = [ ./fix-dos_to_wchar-declaration.patch ] ++
+    stdenv.lib.optional stdenv.isDarwin ./UNUSED-darwin.patch;
 
   # fails to find X on darwin
   configureFlags = stdenv.lib.optional stdenv.isDarwin "--without-x";
diff --git a/pkgs/tools/filesystems/mtools/fix-dos_to_wchar-declaration.patch b/pkgs/tools/filesystems/mtools/fix-dos_to_wchar-declaration.patch
new file mode 100644
index 00000000000..576a14b1cb4
--- /dev/null
+++ b/pkgs/tools/filesystems/mtools/fix-dos_to_wchar-declaration.patch
@@ -0,0 +1,11 @@
+--- mtools-4.0.20.org/charsetConv.c	2018-11-19 10:16:14.183820865 +0000
++++ mtools-4.0.20/charsetConv.c	2018-11-19 10:15:39.808451465 +0000
+@@ -266,7 +266,7 @@
+ 	free(cp);
+ }
+ 
+-int dos_to_wchar(doscp_t *cp, char *dos, wchar_t *wchar, size_t len)
++int dos_to_wchar(doscp_t *cp, const char *dos, wchar_t *wchar, size_t len)
+ {
+ 	int i;
+ 
diff --git a/pkgs/tools/filesystems/rdfind/default.nix b/pkgs/tools/filesystems/rdfind/default.nix
index b421a768b3d..2457ac59a21 100644
--- a/pkgs/tools/filesystems/rdfind/default.nix
+++ b/pkgs/tools/filesystems/rdfind/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   name = "rdfind-${version}";
-  version = "1.3.5";
+  version = "1.4.1";
 
   src = fetchurl {
     url = "https://rdfind.pauldreik.se/${name}.tar.gz";
-    sha256 = "0i63f2lwwkiq5m8shi3wwi59i1s25r6dx6flsgqxs1jvlcg0lvn3";
+    sha256 = "132y3wwgnbpdx6f90q0yahd3nkr4cjzcy815ilc8p97b4vn17iih";
   };
 
   buildInputs = [ nettle ];
diff --git a/pkgs/tools/filesystems/squashfs/default.nix b/pkgs/tools/filesystems/squashfs/default.nix
index d5bcd912c95..389a614f54b 100644
--- a/pkgs/tools/filesystems/squashfs/default.nix
+++ b/pkgs/tools/filesystems/squashfs/default.nix
@@ -15,13 +15,17 @@ stdenv.mkDerivation rec {
     rev = "9c1db6d13a51a2e009f0027ef336ce03624eac0d";
   };
 
-  # These patches ensures that mksquashfs output is reproducible.
-  # See also https://reproducible-builds.org/docs/system-images/
-  # and https://github.com/NixOS/nixpkgs/issues/40144.
   patches = [
+    # These patches ensures that mksquashfs output is reproducible.
+    # See also https://reproducible-builds.org/docs/system-images/
+    # and https://github.com/NixOS/nixpkgs/issues/40144.
     ./0001-If-SOURCE_DATE_EPOCH-is-set-override-timestamps-with.patch
     ./0002-If-SOURCE_DATE_EPOCH-is-set-also-clamp-content-times.patch
     ./0003-remove-frag-deflator-thread.patch
+
+    # This patch adds an option to pad filesystems (increasing size) in
+    # exchange for better chunking / binary diff calculation.
+    ./squashfs-tools-4.3-4k-align.patch
   ] ++ stdenv.lib.optional stdenv.isDarwin ./darwin.patch;
 
   buildInputs = [ zlib xz ]
diff --git a/pkgs/tools/filesystems/squashfs/squashfs-tools-4.3-4k-align.patch b/pkgs/tools/filesystems/squashfs/squashfs-tools-4.3-4k-align.patch
new file mode 100644
index 00000000000..b7c949182e0
--- /dev/null
+++ b/pkgs/tools/filesystems/squashfs/squashfs-tools-4.3-4k-align.patch
@@ -0,0 +1,92 @@
+From 7bda7c75748f36b0a50f93e46144d5a4de4974ad Mon Sep 17 00:00:00 2001
+From: Amin Hassani <ahassani@google.com>
+Date: Thu, 15 Dec 2016 10:43:15 -0800
+Subject: [PATCH] mksquashfs 4K aligns the files inside the squashfs image
+
+Files inside a squashfs image are not necessarily 4k (4096)
+aligned. This patch starts each file in a 4k aligned address and pads
+zero to the end of the file until it reaches the next 4k aligned
+address. This will not change the size of the compressed
+blocks (especially the last one) and hence it will not change how the
+files are being loaded in kernel or unsquashfs. However on average this
+increases the size of the squashfs image which can be calculated by the
+following formula:
+
+increased_size = (number_of_unfragmented_files_in_image + number of fragments) * 2048
+
+The 4k alignment can be enabled by flag '-4k-align'
+---
+ squashfs-tools/mksquashfs.c | 16 ++++++++++++++++
+ 1 file changed, 16 insertions(+)
+
+diff --git a/squashfs-tools/mksquashfs.c b/squashfs-tools/mksquashfs.c
+index 8b1376f..683973d 100644
+--- a/squashfs-tools/mksquashfs.c
++++ b/squashfs-tools/mksquashfs.c
+@@ -99,6 +99,8 @@ int old_exclude = TRUE;
+ int use_regex = FALSE;
+ int nopad = FALSE;
+ int exit_on_error = FALSE;
++int do_4k_align = FALSE;
++#define ALIGN_UP(bytes, size) (bytes = (bytes + size - 1) & ~(size - 1))
+ 
+ long long global_uid = -1, global_gid = -1;
+ 
+@@ -1513,6 +1515,9 @@ void unlock_fragments()
+ 	 * queue at this time.
+ 	 */
+ 	while(!queue_empty(locked_fragment)) {
++		// 4k align the start of remaining queued fragments.
++		if(do_4k_align)
++			ALIGN_UP(bytes, 4096);
+ 		write_buffer = queue_get(locked_fragment);
+ 		frg = write_buffer->block;	
+ 		size = SQUASHFS_COMPRESSED_SIZE_BLOCK(fragment_table[frg].size);
+@@ -2420,6 +2420,9 @@
+ 	compressed_size = SQUASHFS_COMPRESSED_SIZE_BLOCK(c_byte);
+ 	write_buffer->size = compressed_size;
+ 	if(fragments_locked == FALSE) {
++		// 4k align the start of each fragment.
++		if(do_4k_align)
++			ALIGN_UP(bytes, 4096);
+ 		fragment_table[file_buffer->block].size = c_byte;
+ 		fragment_table[file_buffer->block].start_block = bytes;
+ 		write_buffer->block = bytes;
+@@ -2761,6 +2769,10 @@ int write_file_blocks(squashfs_inode *inode, struct dir_ent *dir_ent,
+ 	long long sparse = 0;
+ 	struct file_buffer *fragment_buffer = NULL;
+ 
++	// 4k align the start of each file.
++	if(do_4k_align)
++		ALIGN_UP(bytes, 4096);
++
+ 	if(pre_duplicate(read_size))
+ 		return write_file_blocks_dup(inode, dir_ent, read_buffer, dup);
+ 
+@@ -4692,6 +4704,7 @@ void write_filesystem_tables(struct squashfs_super_block *sBlk, int nopad)
+ 		"compressed", no_fragments ? "no" : noF ? "uncompressed" :
+ 		"compressed", no_xattrs ? "no" : noX ? "uncompressed" :
+ 		"compressed");
++	printf("\t4k %saligned\n", do_4k_align ? "" : "un");
+ 	printf("\tduplicates are %sremoved\n", duplicate_checking ? "" :
+ 		"not ");
+ 	printf("Filesystem size %.2f Kbytes (%.2f Mbytes)\n", bytes / 1024.0,
+@@ -5346,6 +5359,8 @@ print_compressor_options:
+ 			root_name = argv[i];
+ 		} else if(strcmp(argv[i], "-version") == 0) {
+ 			VERSION();
++		} else if(strcmp(argv[i], "-4k-align") == 0) {
++			do_4k_align = TRUE;
+ 		} else {
+ 			ERROR("%s: invalid option\n\n", argv[0]);
+ printOptions:
+@@ -5387,6 +5402,7 @@ printOptions:
+ 			ERROR("\t\t\tdirectory containing that directory, "
+ 				"rather than the\n");
+ 			ERROR("\t\t\tcontents of the directory\n");
++			ERROR("-4k-align\t\tenables 4k alignment of all files\n");
+ 			ERROR("\nFilesystem filter options:\n");
+ 			ERROR("-p <pseudo-definition>\tAdd pseudo file "
+ 				"definition\n");
+-- 
+2.14.1.480.gb18f417b89-goog (previously; hand-patched by charles-dyfis-net)
diff --git a/pkgs/tools/graphics/appleseed/default.nix b/pkgs/tools/graphics/appleseed/default.nix
index 0fe6dcfbfd3..7ac9a201661 100644
--- a/pkgs/tools/graphics/appleseed/default.nix
+++ b/pkgs/tools/graphics/appleseed/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchFromGitHub, cmake, boost165, pkgconfig, guile,
-eigen3_3, libpng, python, libGLU, qt4, openexr, openimageio,
+eigen, libpng, python, libGLU, qt4, openexr, openimageio,
 opencolorio, xercesc, ilmbase, osl, seexpr
 }:
 
@@ -19,7 +19,7 @@ in stdenv.mkDerivation rec {
     sha256 = "0m7zvfkdjfn48zzaxh2wa1bsaj4l876a05bzgmjlfq5dz3202anr";
   };
   buildInputs = [
-    cmake pkgconfig boost_static guile eigen3_3 libpng python
+    cmake pkgconfig boost_static guile eigen libpng python
     libGLU qt4 openexr openimageio opencolorio xercesc
     osl seexpr
   ];
diff --git a/pkgs/tools/graphics/bins/bins_edit-isa.patch b/pkgs/tools/graphics/bins/bins_edit-isa.patch
deleted file mode 100644
index 68aad10ddff..00000000000
--- a/pkgs/tools/graphics/bins/bins_edit-isa.patch
+++ /dev/null
@@ -1,20 +0,0 @@
---- a/bins_edit	2005-08-25 14:34:39.000000000 -0400
-+++ b/bins_edit	2016-05-18 20:25:40.913460314 -0400
-@@ -26,7 +26,7 @@
- 
- use Getopt::Long;
- use IO::File;
--use UNIVERSAL qw(isa);
-+use Scalar::Util 'reftype';
- 
- # XML parsing & writing
- use XML::Grove;
-@@ -198,7 +198,7 @@
-   my $fieldValue;
-   foreach my $element
-     (@{$document->at_path('/'.$fileType.'/description')->{Contents}}) {
--      if (isa($element, 'XML::Grove::Element') && $element->{Name} eq "field") {
-+      if (reftype($element) eq 'XML::Grove::Element' && $element->{Name} eq "field") {
- 	$fieldName = $element->{Attributes}{'name'};
- 	$fieldValue = "";
- 	if ($fieldName eq $field) {
diff --git a/pkgs/tools/graphics/bins/cp-dash-f.patch b/pkgs/tools/graphics/bins/cp-dash-f.patch
deleted file mode 100644
index e280e5349c1..00000000000
--- a/pkgs/tools/graphics/bins/cp-dash-f.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/bins	2016-05-18 20:45:49.513330005 -0400
-+++ b/bins	2016-05-18 20:58:58.957830874 -0400
-@@ -1332,7 +1332,7 @@
-                 mkdir $destDir, 0755
-                     or die("\nCannot create $destDir: $?");
-             }
--            system("cp", "-R", bsd_glob("$staticDir/*", GLOB_TILDE), "$destDir") == 0
-+            system("cp", "-Rf", bsd_glob("$staticDir/*", GLOB_TILDE), "$destDir") == 0
-                 or die("\nCannot copy $staticDir directory content to $destDir: $?");
-         } else {
-             beVerboseN("  Cannot find any static template directory.", 4);
diff --git a/pkgs/tools/graphics/bins/default.nix b/pkgs/tools/graphics/bins/default.nix
deleted file mode 100644
index b43e99c42a1..00000000000
--- a/pkgs/tools/graphics/bins/default.nix
+++ /dev/null
@@ -1,50 +0,0 @@
-{ stdenv, fetchurl, makeWrapper, perl, perlPackages }:
-
-let
-  version = "1.1.29";
-
-in
-
-#note: bins-edit-gui does not work
-
-stdenv.mkDerivation {
-  name = "bins-${version}";
-
-  src = fetchurl {
-    url = "http://download.gna.org/bins/bins-${version}.tar.gz";
-    sha256 = "0n4pcssyaic4xbk25aal0b3g0ibmi2f3gpv0gsnaq61sqipyjl94";
-  };
-
-  buildInputs = with perlPackages; [ makeWrapper perl
-                                     ImageSize ImageInfo PerlMagick
-                                     URI HTMLParser HTMLTemplate HTMLClean
-                                     XMLGrove XMLHandlerYAWriter
-                                     TextIconv TextUnaccent
-                                     DateTimeFormatDateParse ]; #TODO need Gtk (not Gtk2?) for bins-edit-gui
-
-  patches = [ ./bins_edit-isa.patch
-              ./hashref.patch
-              ./cp-dash-f.patch ];
-
-  installPhase = ''
-    export DESTDIR=$out;
-    export PREFIX=.;
-
-    echo | ./install.sh
-
-    for f in bins bins_edit bins-edit-gui; do
-      substituteInPlace $out/bin/$f \
-        --replace /usr/bin/perl ${perl}/bin/perl \
-        --replace /etc/bins $out/etc/bins \
-        --replace /usr/local/share $out/share;
-      wrapProgram $out/bin/$f --set PERL5LIB "$PERL5LIB";
-    done
-  '';
-
-  meta = {
-    description = "Generates static HTML photo albums";
-    homepage = http://bins.sautret.org;
-    license = stdenv.lib.licenses.gpl2;
-    platforms = stdenv.lib.platforms.linux;
-  };
-}
diff --git a/pkgs/tools/graphics/bins/hashref.patch b/pkgs/tools/graphics/bins/hashref.patch
deleted file mode 100644
index e16d3a78c52..00000000000
--- a/pkgs/tools/graphics/bins/hashref.patch
+++ /dev/null
@@ -1,13 +0,0 @@
---- a/bins	2016-05-18 20:45:49.513330005 -0400
-+++ b/bins	2016-05-18 20:58:58.957830874 -0400
-@@ -3643,8 +3643,8 @@
- 
-     my @descTable;
-     foreach my $tagName (@mainFields) {
--        if (${%$hashref}{$tagName}) {
--            my $value=${%$hashref}{$tagName};
-+        if (${$hashref}{$tagName}) {
-+            my $value=${$hashref}{$tagName};
-             $value =~ s/'/&#39;/g  ; # in case it's used in javascript code
-             push @descTable, {DESC_FIELD_NAME => getFields($configHash)->{$tagName}->{'Name'},
-                               DESC_FIELD_VALUE => $value,
diff --git a/pkgs/tools/graphics/blockhash/default.nix b/pkgs/tools/graphics/blockhash/default.nix
index 5ddf8185b3c..ad72933cc77 100644
--- a/pkgs/tools/graphics/blockhash/default.nix
+++ b/pkgs/tools/graphics/blockhash/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, python, pkgconfig, imagemagick }:
+{ stdenv, fetchFromGitHub, python, pkgconfig, imagemagick, wafHook }:
 
 stdenv.mkDerivation rec {
   name = "blockhash-${version}";
@@ -11,13 +11,9 @@ stdenv.mkDerivation rec {
     sha256 = "0m7ikppl42iicgmwsb7baajmag7v0p1ab06xckifvrr0zm21bq9p";
   };
 
-  nativeBuildInputs = [ python pkgconfig ];
+  nativeBuildInputs = [ python pkgconfig wafHook ];
   buildInputs = [ imagemagick ];
 
-  configurePhase = "python waf configure --prefix=$out";
-  buildPhase = "python waf";
-  installPhase = "python waf install";
-
   meta = with stdenv.lib; {
     homepage = "http://blockhash.io/";
     description = ''
diff --git a/pkgs/tools/graphics/glmark2/default.nix b/pkgs/tools/graphics/glmark2/default.nix
index 14972fc5e56..70821468992 100644
--- a/pkgs/tools/graphics/glmark2/default.nix
+++ b/pkgs/tools/graphics/glmark2/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchFromGitHub, pkgconfig, libjpeg, libpng, xorg, libX11, libGL, libdrm,
-  python27, wayland, udev, mesa_noglu }:
+  python27, wayland, udev, mesa_noglu, wafHook }:
 
 stdenv.mkDerivation rec {
   name = "glmark2-${version}";
@@ -12,19 +12,12 @@ stdenv.mkDerivation rec {
     sha256 = "076l75rfl6pnp1wgiwlaihy1vg2advg1z8bi0x84kk259kldgvwn";
   };
 
-  nativeBuildInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig wafHook ];
   buildInputs = [
     libjpeg libpng xorg.libxcb libX11 libGL libdrm python27 wayland udev mesa_noglu
   ];
 
-  buildPhase = ''
-    python ./waf configure --prefix=$out --with-flavors x11-gl,x11-glesv2,drm-gl,drm-glesv2,wayland-gl,wayland-glesv2
-    python2 ./waf
-  '';
-
-  installPhase = ''
-    python2 ./waf install --destdir="$pkgdir/"
-  '';
+  configureFlags = ["--with-flavors=x11-gl,x11-glesv2,drm-gl,drm-glesv2,wayland-gl,wayland-glesv2"];
 
   meta = with stdenv.lib; {
     description = "OpenGL (ES) 2.0 benchmark";
diff --git a/pkgs/tools/graphics/lprof/default.nix b/pkgs/tools/graphics/lprof/default.nix
index d3a8d19dfe2..a4a2cfc1a7c 100644
--- a/pkgs/tools/graphics/lprof/default.nix
+++ b/pkgs/tools/graphics/lprof/default.nix
@@ -5,7 +5,8 @@
 */
 stdenv.mkDerivation {
   name = "lprof-1.11.4.1";
-  buildInputs = [ scons qt3 lcms1 libtiff vigra ];
+  nativeBuildInputs = [ scons ];
+  buildInputs = [ qt3 lcms1 libtiff vigra ];
 
   hardeningDisable = [ "format" ];
 
@@ -19,14 +20,11 @@ stdenv.mkDerivation {
     sha256 = "0q8x24fm5yyvm151xrl3l03p7hvvciqnkbviprfnvlr0lyg9wsrn";
   };
 
-  buildPhase = ''
-    mkdir -p $out
+  sconsFlags = "SYSLIBS=1";
+  preBuild = ''
     export CXX=g++
-
-    scons PREFIX=$out SYSLIBS=1 install
   '';
-
-  installPhase = ":";
+  prefixKey = "PREFIX=";
 
   patches = [ ./lcms-1.17.patch  ./keep-environment.patch ];
 
diff --git a/pkgs/tools/graphics/oxipng/default.nix b/pkgs/tools/graphics/oxipng/default.nix
index 4c565e91a4d..c5737554b77 100644
--- a/pkgs/tools/graphics/oxipng/default.nix
+++ b/pkgs/tools/graphics/oxipng/default.nix
@@ -1,26 +1,26 @@
 { stdenv, fetchFromGitHub, rustPlatform }:
 
 rustPlatform.buildRustPackage rec {
-  version = "2.1.0";
+  version = "2.1.6";
   name = "oxipng-${version}";
 
   src = fetchFromGitHub {
     owner = "shssoichiro";
     repo = "oxipng";
     rev = "v${version}";
-    sha256 = "13rzkfb025y4i9dj66fgc74whgs90gyw861dccsj16cpfl6kh5z0";
+    sha256 = "0n3v2dxybfkf07hb4p2hbhhkwx907b85wzj8wa4whwil89igyrdm";
   };
 
-  cargoSha256 = "0l6ad8rnifd5hkv6x2cr0frdddsfwm1xd1v56imlglsjkgz56cva";
+  cargoSha256 = "1ycacwhwbn27i81jpp55m1446b9a50knlqv0kzkjcv8yf27213y9";
 
   meta = with stdenv.lib; {
     homepage = https://github.com/shssoichiro/oxipng;
-    description = "A lossless PNG compression optimizer";
+    description = "A multithreaded lossless PNG compression optimizer";
     license = licenses.mit;
     maintainers = with maintainers; [ dywedir ];
     platforms = platforms.all;
 
-    # macro is_arm_feature_detected! is unstable
+    # Needs newer/unstable rust: error[E0658]: macro is_arm_feature_detected! is unstable
     broken = stdenv.isAarch64;
   };
 }
diff --git a/pkgs/tools/inputmethods/fusuma/Gemfile b/pkgs/tools/inputmethods/fusuma/Gemfile
new file mode 100644
index 00000000000..9aa2c3ac71a
--- /dev/null
+++ b/pkgs/tools/inputmethods/fusuma/Gemfile
@@ -0,0 +1,2 @@
+source 'https://rubygems.org'
+gem "fusuma"
diff --git a/pkgs/tools/inputmethods/fusuma/Gemfile.lock b/pkgs/tools/inputmethods/fusuma/Gemfile.lock
new file mode 100644
index 00000000000..4038b50b44f
--- /dev/null
+++ b/pkgs/tools/inputmethods/fusuma/Gemfile.lock
@@ -0,0 +1,13 @@
+GEM
+  remote: https://rubygems.org/
+  specs:
+    fusuma (0.10.2)
+
+PLATFORMS
+  ruby
+
+DEPENDENCIES
+  fusuma
+
+BUNDLED WITH
+   1.16.3
diff --git a/pkgs/tools/inputmethods/fusuma/default.nix b/pkgs/tools/inputmethods/fusuma/default.nix
new file mode 100644
index 00000000000..2630ab0fc81
--- /dev/null
+++ b/pkgs/tools/inputmethods/fusuma/default.nix
@@ -0,0 +1,22 @@
+{ lib, bundlerApp, makeWrapper, libinput }:
+
+bundlerApp {
+  pname = "fusuma";
+  gemdir = ./.;
+  exes = [ "fusuma" ];
+
+  buildInputs = [ makeWrapper ];
+
+  postBuild = ''
+    wrapProgram "$out/bin/fusuma" \
+      --prefix PATH : ${lib.makeBinPath [ libinput ]}
+  '';
+
+  meta = with lib; {
+    description = "Multitouch gestures with libinput driver on X11, Linux";
+    homepage    = https://github.com/iberianpig/fusuma;
+    license     = licenses.mit;
+    maintainers = with maintainers; [ jfrankenau ];
+    platforms   = platforms.linux;
+  };
+}
diff --git a/pkgs/tools/inputmethods/fusuma/gemset.nix b/pkgs/tools/inputmethods/fusuma/gemset.nix
new file mode 100644
index 00000000000..2edf9c0886f
--- /dev/null
+++ b/pkgs/tools/inputmethods/fusuma/gemset.nix
@@ -0,0 +1,10 @@
+{
+  fusuma = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0hj64kafxj29gk53vj2syhs3vdywl3h9cpiknaqqm4srjx9g04a0";
+      type = "gem";
+    };
+    version = "0.10.2";
+  };
+}
\ No newline at end of file
diff --git a/pkgs/tools/inputmethods/ibus-engines/ibus-table-chinese/default.nix b/pkgs/tools/inputmethods/ibus-engines/ibus-table-chinese/default.nix
new file mode 100644
index 00000000000..368de091777
--- /dev/null
+++ b/pkgs/tools/inputmethods/ibus-engines/ibus-table-chinese/default.nix
@@ -0,0 +1,64 @@
+{ stdenv, fetchgit, fetchFromGitHub, pkgconfig,  ibus, ibus-table, python3, cmake }:
+
+let
+  src = fetchFromGitHub {
+    owner = "definite";
+    repo = "ibus-table-chinese";
+    rev = "f1f6a3384f021caa3b84c517e2495086f9c34507";
+    sha256 = "14wpw3pvyrrqvg7al37jk2dxqfj9r4zf88j8k2n2lmdc50f3xs7k";
+  };
+
+  cmakeFedoraSrc = fetchgit {
+    url = "https://pagure.io/cmake-fedora.git";
+    rev = "7d5297759aef4cd086bdfa30cf6d4b2ad9446992";
+    sha256 = "0mx9jvxpiva9v2ffaqlyny48iqr073h84yw8ln43z2avv11ipr7n";
+  };
+in stdenv.mkDerivation rec {
+  name = "ibus-table-chinese-${version}";
+  version = "1.8.2";
+
+  srcs = [ src cmakeFedoraSrc ];
+  sourceRoot = src.name;
+
+  postUnpack = ''
+    chmod u+w -R ${cmakeFedoraSrc.name}
+    mv ${cmakeFedoraSrc.name}/* source/cmake-fedora
+  '';
+
+  preConfigure = ''
+    # cmake script needs ./Modules folder to link to cmake-fedora
+    ln -s cmake-fedora/Modules ./
+  '';
+
+  # Fails when writing to /prj_info.cmake in https://pagure.io/cmake-fedora/blob/master/f/Modules/ManageVersion.cmake
+  cmakeFlags = [ "-DPRJ_INFO_CMAKE_FILE=/dev/null" "-DPRJ_DOC_DIR=REPLACE" "-DDATA_DIR=share" ];
+  # Must replace PRJ_DOC_DIR with actual share/ folder for ibus-table-chinese
+  # Otherwise it tries to write to /ibus-table-chinese if not defined (!)
+  postConfigure = ''
+    substituteInPlace cmake_install.cmake --replace '/build/source/REPLACE' $out/share/ibus-table-chinese
+  '';
+  # Fails otherwise with "no such file or directory: <table>.txt"
+  dontUseCmakeBuildDir = true;
+  # Fails otherwise sometimes with
+  # FileExistsError: [Errno 17] File exists: '/build/tmp.BfVAUM4llr/ibus-table-chinese/.local/share/ibus-table'
+  enableParallelBuilding = false;
+
+  preBuild = ''
+    export HOME=$(mktemp -d)/ibus-table-chinese
+  '';
+
+  postFixup = ''
+    rm -rf $HOME
+  '';
+
+  buildInputs = [ pkgconfig ibus ibus-table python3 cmake ];
+
+  meta = with stdenv.lib; {
+    isIbusEngine = true;
+    description  = "Chinese tables for IBus-Table";
+    homepage     = https://github.com/definite/ibus-table-chinese;
+    license      = licenses.gpl3;
+    platforms    = platforms.linux;
+    maintainers  = with maintainers; [ pneumaticat ];
+  };
+}
diff --git a/pkgs/tools/inputmethods/ibus-engines/ibus-table/default.nix b/pkgs/tools/inputmethods/ibus-engines/ibus-table/default.nix
index 0d467a6875b..d09806402af 100644
--- a/pkgs/tools/inputmethods/ibus-engines/ibus-table/default.nix
+++ b/pkgs/tools/inputmethods/ibus-engines/ibus-table/default.nix
@@ -26,6 +26,7 @@ stdenv.mkDerivation rec {
         -e "/export IBUS_DATAROOTDIR=/ s/^.$//" \
         -e "/export IBUS_LOCALEDIR=/ s/^.$//" \
         -i "setup/ibus-setup-table.in"
+    substituteInPlace engine/tabcreatedb.py --replace '/usr/share/ibus-table' $out/share/ibus-table
   '';
 
   buildInputs = [
diff --git a/pkgs/tools/misc/bc/default.nix b/pkgs/tools/misc/bc/default.nix
index ea8cefd14d3..922d34e2d36 100644
--- a/pkgs/tools/misc/bc/default.nix
+++ b/pkgs/tools/misc/bc/default.nix
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
     # Libraries for build
     buildPackages.readline buildPackages.ncurses
   ];
-  buildInputs = [ readline ];
+  buildInputs = [ readline flex ];
 
   doCheck = true; # not cross
 
diff --git a/pkgs/tools/misc/blsd/default.nix b/pkgs/tools/misc/blsd/default.nix
index c44967d3620..8e3e08fb5e5 100644
--- a/pkgs/tools/misc/blsd/default.nix
+++ b/pkgs/tools/misc/blsd/default.nix
@@ -15,7 +15,8 @@ buildGoPackage rec {
 
   goDeps = ./deps.nix;
 
-  nativeBuildInputs = [ pkgconfig libgit2 ];
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ libgit2 ];
 
   meta = with stdenv.lib; {
     homepage = https://github.com/junegunn/blsd;
diff --git a/pkgs/tools/misc/desktop-file-utils/default.nix b/pkgs/tools/misc/desktop-file-utils/default.nix
index 70bc34954b2..8dc590c5d6f 100644
--- a/pkgs/tools/misc/desktop-file-utils/default.nix
+++ b/pkgs/tools/misc/desktop-file-utils/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, pkgconfig, glib, libintl }:
+{ stdenv, fetchurl, fetchpatch, pkgconfig, glib, libintl }:
 
 with stdenv.lib;
 
@@ -10,6 +10,14 @@ stdenv.mkDerivation rec {
     sha256 = "119kj2w0rrxkhg4f9cf5waa55jz1hj8933vh47vcjipcplql02bc";
   };
 
+  patches = [
+    # Makes font a recognized media type. Committed upstream, but no release has been made.
+    (fetchpatch {
+      url = "https://gitlab.freedesktop.org/xdg/desktop-file-utils/commit/92af4108750ceaf4191fd54e255885c7d8a78b70.patch";
+      sha256 = "14sqy10p5skp6hv4hgiwnj9hpr460250x42k5z0390l6nr6gahsq";
+    })
+  ];
+
   nativeBuildInputs = [ pkgconfig ];
   buildInputs = [ glib libintl ];
 
diff --git a/pkgs/tools/misc/direnv/default.nix b/pkgs/tools/misc/direnv/default.nix
index 508fc77a9a0..e096024e537 100644
--- a/pkgs/tools/misc/direnv/default.nix
+++ b/pkgs/tools/misc/direnv/default.nix
@@ -2,14 +2,14 @@
 
 buildGoPackage rec {
   name = "direnv-${version}";
-  version = "2.17.0";
+  version = "2.18.2";
   goPackagePath = "github.com/direnv/direnv";
 
   src = fetchFromGitHub {
     owner = "direnv";
     repo = "direnv";
     rev = "v${version}";
-    sha256 = "1dmanqpifx27cz41yc3ijpij0wrbgw9qny2d4n6jppfwf2qzyq4s";
+    sha256 = "011isxsc3byg8jd4jhi4pdfqrxa1acnzirhcv7lvw3jl0v7xnma8";
   };
 
   postConfigure = ''
diff --git a/pkgs/tools/misc/doitlive/default.nix b/pkgs/tools/misc/doitlive/default.nix
index d322a19c98a..f18874e4f44 100644
--- a/pkgs/tools/misc/doitlive/default.nix
+++ b/pkgs/tools/misc/doitlive/default.nix
@@ -2,11 +2,11 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "doitlive";
-  version = "4.1.0";
+  version = "4.2.0";
 
   src = python3Packages.fetchPypi {
     inherit pname version;
-    sha256 = "0zkvmnv6adz0gyqiql8anpxnh8zzpqk0p2n0pf2kxy55010qs4wz";
+    sha256 = "0yabw2gqsjdivivlwsc2q7p3qq72cccx3xzfc1a4gd8d74f84nrw";
   };
 
   propagatedBuildInputs = with python3Packages; [ click click-completion click-didyoumean ];
diff --git a/pkgs/tools/misc/dvtm/default.nix b/pkgs/tools/misc/dvtm/default.nix
index 58c602113dd..bedfebd9681 100644
--- a/pkgs/tools/misc/dvtm/default.nix
+++ b/pkgs/tools/misc/dvtm/default.nix
@@ -1,11 +1,9 @@
-{ stdenv, fetchurl, ncurses, customConfig ? null }:
-
-stdenv.mkDerivation rec {
-
+{callPackage, fetchurl}:
+callPackage ./dvtm.nix rec {
   name = "dvtm-0.15";
 
   src = fetchurl {
-    url = "${meta.homepage}/${name}.tar.gz";
+    url = "http://www.brain-dump.org/projects/dvtm/${name}.tar.gz";
     sha256 = "0475w514b7i3gxk6khy8pfj2gx9l7lv2pwacmq92zn1abv01a84g";
   };
 
@@ -17,29 +15,5 @@ stdenv.mkDerivation rec {
       sha256 = "1cby8x3ckvhzqa8yxlfrwzgm8wk7yz84kr9psdjr7xwpnca1cqrd";
     })
   ];
-
-  CFLAGS = stdenv.lib.optionalString stdenv.isDarwin "-D_DARWIN_C_SOURCE";
-
-  postPatch = stdenv.lib.optionalString (customConfig != null) ''
-    cp ${builtins.toFile "config.h" customConfig} ./config.h
-  '';
-
-  buildInputs = [ ncurses ];
-
-  prePatch = ''
-    substituteInPlace Makefile \
-      --replace /usr/share/terminfo $out/share/terminfo
-  '';
-
-  installPhase = ''
-    make PREFIX=$out install
-  '';
-
-  meta = with stdenv.lib; {
-    description = "Dynamic virtual terminal manager";
-    homepage = http://www.brain-dump.org/projects/dvtm;
-    license = licenses.mit;
-    maintainers = [ maintainers.vrthra ];
-    platforms = platforms.unix;
-  };
 }
+    
diff --git a/pkgs/tools/misc/dvtm/dvtm.nix b/pkgs/tools/misc/dvtm/dvtm.nix
new file mode 100644
index 00000000000..10fb4cd89bd
--- /dev/null
+++ b/pkgs/tools/misc/dvtm/dvtm.nix
@@ -0,0 +1,30 @@
+{ stdenv, ncurses, customConfig ? null, name, src, patches ? [] }:
+stdenv.mkDerivation rec {
+
+  inherit name src patches;
+
+  CFLAGS = stdenv.lib.optionalString stdenv.isDarwin "-D_DARWIN_C_SOURCE";
+
+  postPatch = stdenv.lib.optionalString (customConfig != null) ''
+    cp ${builtins.toFile "config.h" customConfig} ./config.h
+  '';
+
+  buildInputs = [ ncurses ];
+
+  prePatch = ''
+    substituteInPlace Makefile \
+      --replace /usr/share/terminfo $out/share/terminfo
+  '';
+
+  installPhase = ''
+    make PREFIX=$out install
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Dynamic virtual terminal manager";
+    homepage = http://www.brain-dump.org/projects/dvtm;
+    license = licenses.mit;
+    maintainers = [ maintainers.vrthra ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/tools/misc/dvtm/unstable.nix b/pkgs/tools/misc/dvtm/unstable.nix
new file mode 100644
index 00000000000..6ee2a465c69
--- /dev/null
+++ b/pkgs/tools/misc/dvtm/unstable.nix
@@ -0,0 +1,29 @@
+{callPackage, fetchFromGitHub, fetchpatch}:
+callPackage ./dvtm.nix {
+  name = "dvtm-unstable-2018-03-31";
+
+  src = fetchFromGitHub {
+    owner = "martanne";
+    repo = "dvtm";
+    rev = "311a8c0c28296f8f87fb63349e0f3254c7481e14";
+    sha256 = "0pyxjkaxh8n97kccnmd3p98vi9h8mcfy5lswzqiplsxmxxmlbpx2";
+  };
+
+  patches = [
+    # https://github.com/martanne/dvtm/pull/69
+    # Use self-pipe instead of signal blocking fixes issues on darwin.
+    (fetchpatch {
+      name = "use-self-pipe-fix-darwin";
+      url = "https://github.com/martanne/dvtm/commit/1f1ed664d64603f3f1ce1388571227dc723901b2.patch";
+      sha256 = "14j3kks7b1v6qq12442v1da3h7khp02rp0vi0qrz0rfgkg1zilpb";
+    })
+
+    # https://github.com/martanne/dvtm/pull/86
+    # Fix buffer corruption when title is updated
+    (fetchpatch {
+      name = "fix-buffer-corruption-on-title-update";
+      url = "https://github.com/martanne/dvtm/commit/be6c3f8f615daeab214d484e6fff22e19631a0d1.patch";
+      sha256 = "1wdrl3sg815lhs22fwbc4w5dn4ifpdgl7v1kqfnhg752av4im7h7";
+    })
+  ];
+}
diff --git a/pkgs/tools/misc/file/default.nix b/pkgs/tools/misc/file/default.nix
index 1e8c902a050..cefddbd65ef 100644
--- a/pkgs/tools/misc/file/default.nix
+++ b/pkgs/tools/misc/file/default.nix
@@ -2,14 +2,14 @@
 
 stdenv.mkDerivation rec {
   name = "file-${version}";
-  version = "5.34";
+  version = "5.35";
 
   src = fetchurl {
     urls = [
       "ftp://ftp.astron.com/pub/file/${name}.tar.gz"
       "https://distfiles.macports.org/file/${name}.tar.gz"
     ];
-    sha256 = "02mj4g34l13facacsc0ff8rchbh93ccqw7hns45yqgx8pzdm0npi";
+    sha256 = "0ijm1fabm68ykr1zbx0bxnka5jr3n42sj8y5mbkrnxs0fj0mxi1h";
   };
 
   nativeBuildInputs = stdenv.lib.optional (stdenv.hostPlatform != stdenv.buildPlatform) file;
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
               else null;
 
   meta = with stdenv.lib; {
-    homepage = http://darwinsys.com/file;
+    homepage = https://darwinsys.com/file;
     description = "A program that shows the type of files";
     license = licenses.bsd2;
     platforms = platforms.all;
diff --git a/pkgs/tools/misc/fpart/default.nix b/pkgs/tools/misc/fpart/default.nix
index 394310e572d..f75dfec5e56 100644
--- a/pkgs/tools/misc/fpart/default.nix
+++ b/pkgs/tools/misc/fpart/default.nix
@@ -1,14 +1,18 @@
-{ stdenv, fetchurl }:
+{ stdenv, fetchFromGitHub, autoreconfHook }:
 
 stdenv.mkDerivation rec {
   name = "fpart-${version}";
-  version = "1.0.0";
+  version = "1.1.0";
 
-  src = fetchurl {
-    url = "http://contribs.martymac.org/fpart/${name}.tar.gz";
-    sha256 = "1p0ajmry18lcg82znfp8nxs4w3izic775l7df08hywlq4vfa66pg";
+  src = fetchFromGitHub {
+    owner = "martymac";
+    repo = "fpart";
+    rev = name;
+    sha256 = "0h3mqc1xj5j2z8s8g3pvvpbjs6x74dj8niyh3p2ymla35kbzskf4";
   };
 
+  nativeBuildInputs = [ autoreconfHook ];
+
   postInstall = ''
     sed "s|^FPART_BIN=.*|FPART_BIN=\"$out/bin/fpart\"|" \
         -i "$out/bin/fpsync"
diff --git a/pkgs/tools/misc/hyperfine/default.nix b/pkgs/tools/misc/hyperfine/default.nix
index 339c8dea460..27399166568 100644
--- a/pkgs/tools/misc/hyperfine/default.nix
+++ b/pkgs/tools/misc/hyperfine/default.nix
@@ -4,16 +4,16 @@
 
 rustPlatform.buildRustPackage rec {
   name = "hyperfine-${version}";
-  version = "1.3.0";
+  version = "1.4.0";
 
   src = fetchFromGitHub {
     owner  = "sharkdp";
     repo   = "hyperfine";
     rev    = "refs/tags/v${version}";
-    sha256 = "06kghk3gmi47c8g28n8srpb578yym104fa30s4m33ajb60fvwlld";
+    sha256 = "1mn5nv3zljj2wz40imf62gknv84f7igslsf59gg1qvhgvgsd98sp";
   };
 
-  cargoSha256 = "1rwh8kyrkk5jza4lx7sf1pln68ljwsv4ccyfvzcvc140y7ya8ps0";
+  cargoSha256 = "1kyx1fhz8l5m8dhwd7j3hic86xx71216775m9bslmm2z4csl7r1s";
 
   buildInputs = stdenv.lib.optional stdenv.isDarwin Security;
 
diff --git a/pkgs/tools/misc/jdupes/default.nix b/pkgs/tools/misc/jdupes/default.nix
index 0df351bdd56..ee639245797 100644
--- a/pkgs/tools/misc/jdupes/default.nix
+++ b/pkgs/tools/misc/jdupes/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   name = "jdupes-${version}";
-  version = "1.11";
+  version = "1.11.1";
 
   src = fetchFromGitHub {
     owner = "jbruchon";
     repo  = "jdupes";
     rev   = "v${version}";
-    sha256 = "124n9vgnqqhnwgnms7dqmndp25xrcjaykxrzbi4v4as98kxxi3j1";
+    sha256 = "1yg7071lwl561s7r0qrnfx45z3ny8gjfrxpx0dbyhv3ywiac5kw8";
     # Unicode file names lead to different checksums on HFS+ vs. other
     # filesystems because of unicode normalisation. The testdir
     # directories have such files and will be removed.
diff --git a/pkgs/tools/misc/mdbtools/default.nix b/pkgs/tools/misc/mdbtools/default.nix
index d251bee71d9..8a3842322f9 100644
--- a/pkgs/tools/misc/mdbtools/default.nix
+++ b/pkgs/tools/misc/mdbtools/default.nix
@@ -1,15 +1,20 @@
-{ stdenv, fetchurl, glib, readline, bison, flex, pkgconfig }:
+{ stdenv, fetchFromGitHub, glib, readline
+, bison, flex, pkgconfig, autoreconfHook
+, txt2man, which }:
 
-stdenv.mkDerivation {
-  name = "mdbtools-0.6pre1";
+let version = "0.7.1";
+in stdenv.mkDerivation {
+  name = "mdbtools-${version}";
 
-  src = fetchurl {
-    url = mirror://sourceforge/mdbtools/mdbtools-0.6pre1.tar.gz;
-    sha256 = "1lz33lmqifjszad7rl1r7rpxbziprrm5rkb27wmswyl5v98dqsbi";
+  src = fetchFromGitHub {
+    owner = "brianb";
+    repo = "mdbtools";
+    rev = version;
+    sha256 = "0gwcpp9y09xhs21g7my2fs8ncb8i6ahlyixcx8jd3q97jbzj441l";
   };
 
-  nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [glib readline bison flex];
+  nativeBuildInputs = [ pkgconfig bison flex autoreconfHook txt2man which ];
+  buildInputs = [ glib readline ];
 
   preConfigure = ''
     sed -e 's@static \(GHashTable [*]mdb_backends;\)@\1@' -i src/libmdb/backend.c
diff --git a/pkgs/tools/misc/mdbtools/git.nix b/pkgs/tools/misc/mdbtools/git.nix
deleted file mode 100644
index b275002e110..00000000000
--- a/pkgs/tools/misc/mdbtools/git.nix
+++ /dev/null
@@ -1,35 +0,0 @@
-{ stdenv, fetchgit, glib, readline, bison, flex, pkgconfig,
-  libiconv, autoreconfHook, which, txt2man, gnome-doc-utils, scrollkeeper }:
-
-stdenv.mkDerivation {
-  name = "mdbtools-git-2014-07-25";
-
-  src = fetchgit {
-    url = "http://github.com/brianb/mdbtools.git";
-    rev = "9ab40e83e6789015c965c92bdb62f92f8cdd0dbd";
-    sha256 = "0hlf5lk86xm0bpdlpk4a1zyfvbim76dhvmybxga2p7mbb1jc825l";
-  };
-
-  nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [
-    glib readline bison flex autoreconfHook which txt2man
-    gnome-doc-utils scrollkeeper libiconv
-  ];
-
-  preAutoreconf = ''
-    sed -e '/ENABLE_GTK_DOC/aAM_CONDITIONAL(HAVE_GNOME_DOC_UTILS, test x$enable_gtk_doc = xyes)' \
-        -e  '/ENABLE_GTK_DOC/aAM_CONDITIONAL(ENABLE_SK, test x$enable_scrollkeeper = xyes)' \
-        -i configure.ac
-  '';
-
-  preConfigure = ''
-    sed -e 's@static \(GHashTable [*]mdb_backends;\)@\1@' -i src/libmdb/backend.c
-  '';
-
-  meta = with stdenv.lib; {
-    description = ".mdb (MS Access) format tools";
-    homepage = http://mdbtools.sourceforge.net;
-    platforms = platforms.linux;
-    license = with licenses; [ gpl2 lgpl2 ];
-  };
-}
diff --git a/pkgs/tools/misc/miniserve/default.nix b/pkgs/tools/misc/miniserve/default.nix
new file mode 100644
index 00000000000..ce157f30cd0
--- /dev/null
+++ b/pkgs/tools/misc/miniserve/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, rustPlatform, fetchFromGitHub, cmake, pkgconfig, zlib }:
+
+rustPlatform.buildRustPackage rec {
+  name    = "miniserve-${version}";
+  version = "0.2.1";
+
+  src = fetchFromGitHub {
+    owner  = "svenstaro";
+    repo   = "miniserve";
+    rev    = "v${version}";
+    sha256 = "1g8ggqs4fyscb1r98qj22f61jgkqnr4vdyps0drrvydl9lafdmpl";
+  };
+
+  cargoSha256 = "18wyr0q5pkxds5hrl4g3mqmk46mr0nvs0id94aiw87729ly4vi8c";
+
+  nativeBuildInputs = [ cmake pkgconfig zlib ];
+
+  meta = with stdenv.lib; {
+    description = "For when you really just want to serve some files over HTTP right now!";
+    homepage    = https://github.com/svenstaro/miniserve;
+    license     = with licenses; [ mit ];
+    maintainers = with maintainers; [ nequissimus ];
+    platforms   = platforms.linux;
+  };
+}
diff --git a/pkgs/tools/misc/ostree/default.nix b/pkgs/tools/misc/ostree/default.nix
index 3cbdd498aa7..25cba56449c 100644
--- a/pkgs/tools/misc/ostree/default.nix
+++ b/pkgs/tools/misc/ostree/default.nix
@@ -4,7 +4,7 @@
 }:
 
 let
-  version = "2018.8";
+  version = "2018.9";
 
   libglnx-src = fetchFromGitHub {
     owner = "GNOME";
@@ -28,7 +28,7 @@ in stdenv.mkDerivation {
     rev = "v${version}";
     owner = "ostreedev";
     repo = "ostree";
-    sha256 = "0i7b7hvlv8m44k39fr5389wskf810vda8s7ivy2whj1nan5951yx";
+    sha256 = "0a8gr4qqxcvz3fqv9w4dxy6iq0rq4kdzf08rzv8xg4gic3ldgyvj";
   };
 
   patches = [
diff --git a/pkgs/tools/misc/parallel/default.nix b/pkgs/tools/misc/parallel/default.nix
index 9da8b1c2552..dfaca9cd88e 100644
--- a/pkgs/tools/misc/parallel/default.nix
+++ b/pkgs/tools/misc/parallel/default.nix
@@ -1,11 +1,11 @@
 { fetchurl, stdenv, perl, makeWrapper, procps }:
 
 stdenv.mkDerivation rec {
-  name = "parallel-20180922";
+  name = "parallel-20181022";
 
   src = fetchurl {
     url = "mirror://gnu/parallel/${name}.tar.bz2";
-    sha256 = "07q7lzway2qf8mx6fb4q45jmirsc8pw6rgv03ifrp32jw3q8w1za";
+    sha256 = "1v6vrfnn6acjjlp8xiizvcrb3zzs94av5xcl6xm8zfvcapixx11f";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/tools/misc/timidity/default.nix b/pkgs/tools/misc/timidity/default.nix
index f30fdb1f119..318ad6e3a9d 100644
--- a/pkgs/tools/misc/timidity/default.nix
+++ b/pkgs/tools/misc/timidity/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, alsaLib, libjack2, ncurses, pkgconfig }:
 
 stdenv.mkDerivation {
-  name = "timidity-2.14.0";
+  name = "timidity-2.15.0";
 
   src = fetchurl {
-    url = mirror://sourceforge/timidity/TiMidity++-2.14.0.tar.bz2;
-    sha256 = "0xk41w4qbk23z1fvqdyfblbz10mmxsllw0svxzjw5sa9y11vczzr";
+    url = mirror://sourceforge/timidity/TiMidity++-2.15.0.tar.bz2;
+    sha256 = "1xf8n6dqzvi6nr2asags12ijbj1lwk1hgl3s27vm2szib8ww07qn";
   };
 
   nativeBuildInputs = [ pkgconfig ];
diff --git a/pkgs/tools/misc/youtube-dl/default.nix b/pkgs/tools/misc/youtube-dl/default.nix
index 450d5c68245..d898813b0a9 100644
--- a/pkgs/tools/misc/youtube-dl/default.nix
+++ b/pkgs/tools/misc/youtube-dl/default.nix
@@ -19,11 +19,11 @@ buildPythonPackage rec {
   # The websites youtube-dl deals with are a very moving target. That means that
   # downloads break constantly. Because of that, updates should always be backported
   # to the latest stable release.
-  version = "2018.11.07";
+  version = "2018.11.18";
 
   src = fetchurl {
     url = "https://yt-dl.org/downloads/${version}/${pname}-${version}.tar.gz";
-    sha256 = "1rvc2m2kbm2kycqsa7fkcg5gql9f0w3hn1a7jg48zzl06ayggxk9";
+    sha256 = "1wvvwyvxg9aadgpbcz0p6nzqmvnxzlbsqja3j6487l41s1ky1fyq";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/tools/networking/amass/default.nix b/pkgs/tools/networking/amass/default.nix
new file mode 100644
index 00000000000..adb43c4aa08
--- /dev/null
+++ b/pkgs/tools/networking/amass/default.nix
@@ -0,0 +1,42 @@
+{ buildGoPackage
+, fetchFromGitHub
+, lib
+}:
+
+buildGoPackage rec {
+  name = "amass-${version}";
+  version = "2.8.3";
+
+  goPackagePath = "github.com/OWASP/Amass";
+
+  src = fetchFromGitHub {
+    owner = "OWASP";
+    repo = "Amass";
+    rev = version;
+    sha256 = "1pidi7bpg5z04l6ryfd7rqxshayvkqmgav0f6f1fxz4jwrmx9nnc";
+  };
+
+  # NOTE: this must be removed once amass > 2.8.3 is released. This version has
+  # a broken import caused by the project migrating to a new home.
+  preBuild = ''
+    sed -e 's:github.com/caffix/amass/amass/core:github.com/OWASP/Amass/amass/core:g' -i "go/src/${goPackagePath}/cmd/amass.netdomains/main.go"
+  '';
+
+  goDeps = ./deps.nix;
+
+  meta = with lib; {
+    description = "In-Depth DNS Enumeration and Network Mapping";
+    longDescription = ''
+      The OWASP Amass tool suite obtains subdomain names by scraping data
+      sources, recursive brute forcing, crawling web archives,
+      permuting/altering names and reverse DNS sweeping. Additionally, Amass
+      uses the IP addresses obtained during resolution to discover associated
+      netblocks and ASNs. All the information is then used to build maps of the
+      target networks.
+      '';
+    homepage = https://www.owasp.org/index.php/OWASP_Amass_Project;
+    license = licenses.asl20;
+    maintainers = with maintainers; [ kalbasit ];
+    platforms = platforms.linux ++ platforms.darwin;
+  };
+}
diff --git a/pkgs/tools/networking/amass/deps.nix b/pkgs/tools/networking/amass/deps.nix
new file mode 100644
index 00000000000..711d64fd313
--- /dev/null
+++ b/pkgs/tools/networking/amass/deps.nix
@@ -0,0 +1,101 @@
+[
+  {
+    goPackagePath = "github.com/PuerkitoBio/fetchbot";
+    fetch = {
+      type = "git";
+      url = "https://github.com/PuerkitoBio/fetchbot";
+      rev = "1f502d610659b899a007858812b601e715f531eb";
+      sha256 = "0yzv0xh3cwq87jv9whs5rmhaj8b2nqdm76vwppzn8mm34fg41n8s";
+    };
+  }
+  {
+    goPackagePath = "github.com/PuerkitoBio/goquery";
+    fetch = {
+      type = "git";
+      url = "https://github.com/PuerkitoBio/goquery";
+      rev = "2d2796f41742ece03e8086188fa4db16a3a0b458";
+      sha256 = "1fqf4rs66wy02nxz6w4mvs2qawf2j8srz17i294v64y8gvxisp56";
+    };
+  }
+  {
+    goPackagePath = "github.com/andybalholm/cascadia";
+    fetch = {
+      type = "git";
+      url = "https://github.com/andybalholm/cascadia";
+      rev = "680b6a57bda4f657485ad44bdea42342ead737bc";
+      sha256 = "0v95plagirbjlc4p00y9brhpvv4nm8q0gr63gcfs3shyh1a8xwbm";
+    };
+  }
+  {
+    goPackagePath = "github.com/asaskevich/EventBus";
+    fetch = {
+      type = "git";
+      url = "https://github.com/asaskevich/EventBus";
+      rev = "d46933a94f05c6657d7b923fcf5ac563ee37ec79";
+      sha256 = "130mjlsc6jf17zdx8ymhxis70a13l2zbjmjzgvjdr6pb0jzxsqha";
+    };
+  }
+  {
+    goPackagePath = "github.com/fatih/color";
+    fetch = {
+      type = "git";
+      url = "https://github.com/fatih/color";
+      rev = "3f9d52f7176a6927daacff70a3e8d1dc2025c53e";
+      sha256 = "165ww24x6ba47ji4j14mp3f006ksnmi53ws9280pgd2zcw91nbn8";
+    };
+  }
+  {
+    goPackagePath = "github.com/irfansharif/cfilter";
+    fetch = {
+      type = "git";
+      url = "https://github.com/irfansharif/cfilter";
+      rev = "d07d951ff29d52840ca5e798a17e80db4de8c820";
+      sha256 = "11gicb8jbpnsc7wylv7qs9dgc91qc3rld6ahsylb491knxr78yb2";
+    };
+  }
+  {
+    goPackagePath = "github.com/johnnadratowski/golang-neo4j-bolt-driver";
+    fetch = {
+      type = "git";
+      url = "https://github.com/johnnadratowski/golang-neo4j-bolt-driver";
+      rev = "6b24c0085aaeaf3b2844acd18066864e24b57387";
+      sha256 = "0dmfgy0ci0k0s4hxp9v5j4j0mab5x1nsc83icgq9ldb2446mn0fk";
+    };
+  }
+  {
+    goPackagePath = "github.com/miekg/dns";
+    fetch = {
+      type = "git";
+      url = "https://github.com/miekg/dns";
+      rev = "1c9c9bf4c93ee029810272d3e5b8a126aee5bf1f";
+      sha256 = "002z8l5crsipdn2zkavjkjzxrj6c4132yqgbg1zk7w7gkv40q7wr";
+    };
+  }
+  {
+    goPackagePath = "github.com/temoto/robotstxt-go";
+    fetch = {
+      type = "git";
+      url = "https://github.com/temoto/robotstxt-go";
+      rev = "97ee4a9ee6ea01ed0bbf0325dd789f74cac6cb94";
+      sha256 = "1nfnwz5lm9dgicsjh99gs4gh4gbrxdl16srz505f04mab51kd51r";
+    };
+  }
+  {
+    goPackagePath = "golang.org/x/net";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/net";
+      rev = "adae6a3d119ae4890b46832a2e88a95adc62b8e7";
+      sha256 = "1fx860zsgzqk28j7lmp96qsfrgb0kzbfjvr294hywswcbwdwkb01";
+    };
+  }
+  {
+    goPackagePath = "golang.org/x/sys";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/sys";
+      rev = "93218def8b18e66adbdab3eca8ec334700329f1f";
+      sha256 = "0v0zdnsi0vw03dcfir7b228g02ag7jr7mgbgv6lnjwbbccxv07pz";
+    };
+  }
+]
diff --git a/pkgs/tools/networking/babeld/default.nix b/pkgs/tools/networking/babeld/default.nix
index c65c59265b5..7dfc8e9d7ad 100644
--- a/pkgs/tools/networking/babeld/default.nix
+++ b/pkgs/tools/networking/babeld/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl }:
 
 stdenv.mkDerivation rec {
-  name = "babeld-1.8.3";
+  name = "babeld-1.8.4";
 
   src = fetchurl {
     url = "http://www.pps.univ-paris-diderot.fr/~jch/software/files/${name}.tar.gz";
-    sha256 = "1gb6fcvi1cyl05sr9zhhasqlcbi927sbc2dns1jbnyz029lcb31n";
+    sha256 = "11wbs1x17lr7jk2578zwy3cdwc6zhxwv97nnp13z14613320s1wq";
   };
 
   preBuild = ''
diff --git a/pkgs/tools/networking/curl/7_59.nix b/pkgs/tools/networking/curl/7_59.nix
index 508b357e3fd..272c38a9958 100644
--- a/pkgs/tools/networking/curl/7_59.nix
+++ b/pkgs/tools/networking/curl/7_59.nix
@@ -2,11 +2,11 @@
 , http2Support ? true, nghttp2
 , idnSupport ? false, libidn ? null
 , ldapSupport ? false, openldap ? null
-, zlibSupport ? false, zlib ? null
-, sslSupport ? false, openssl ? null
+, zlibSupport ? true, zlib ? null
+, sslSupport ? zlibSupport, openssl ? null
 , gnutlsSupport ? false, gnutls ? null
-, scpSupport ? false, libssh2 ? null
-, gssSupport ? false, kerberos ? null
+, scpSupport ? zlibSupport && !stdenv.isSunOS && !stdenv.isCygwin, libssh2 ? null
+, gssSupport ? !stdenv.hostPlatform.isWindows, libkrb5 ? null
 , c-aresSupport ? false, c-ares ? null
 , brotliSupport ? false, brotli ? null
 }:
@@ -21,7 +21,7 @@ assert gnutlsSupport -> gnutls != null;
 assert scpSupport -> libssh2 != null;
 assert c-aresSupport -> c-ares != null;
 assert brotliSupport -> brotli != null;
-assert gssSupport -> kerberos != null;
+assert gssSupport -> libkrb5 != null;
 
 stdenv.mkDerivation rec {
   name = "curl-7.59.0";
@@ -49,7 +49,7 @@ stdenv.mkDerivation rec {
     optional idnSupport libidn ++
     optional ldapSupport openldap ++
     optional zlibSupport zlib ++
-    optional gssSupport kerberos ++
+    optional gssSupport libkrb5 ++
     optional c-aresSupport c-ares ++
     optional sslSupport openssl ++
     optional gnutlsSupport gnutls ++
@@ -74,7 +74,7 @@ stdenv.mkDerivation rec {
       ( if brotliSupport then "--with-brotli" else "--without-brotli" )
     ]
     ++ stdenv.lib.optional c-aresSupport "--enable-ares=${c-ares}"
-    ++ stdenv.lib.optional gssSupport "--with-gssapi=${kerberos.dev}"
+    ++ stdenv.lib.optional gssSupport "--with-gssapi=${libkrb5.dev}"
        # For the 'urandom', maybe it should be a cross-system option
     ++ stdenv.lib.optional (stdenv.hostPlatform != stdenv.buildPlatform)
        "--with-random=/dev/urandom"
diff --git a/pkgs/tools/networking/curl/default.nix b/pkgs/tools/networking/curl/default.nix
index 4af8ff75e21..dac92f98223 100644
--- a/pkgs/tools/networking/curl/default.nix
+++ b/pkgs/tools/networking/curl/default.nix
@@ -2,11 +2,11 @@
 , http2Support ? true, nghttp2
 , idnSupport ? false, libidn ? null
 , ldapSupport ? false, openldap ? null
-, zlibSupport ? false, zlib ? null
-, sslSupport ? false, openssl ? null
+, zlibSupport ? true, zlib ? null
+, sslSupport ? zlibSupport, openssl ? null
 , gnutlsSupport ? false, gnutls ? null
-, scpSupport ? false, libssh2 ? null
-, gssSupport ? false, kerberos ? null
+, scpSupport ? zlibSupport && !stdenv.isSunOS && !stdenv.isCygwin, libssh2 ? null
+, gssSupport ? !stdenv.hostPlatform.isWindows, libkrb5 ? null
 , c-aresSupport ? false, c-ares ? null
 , brotliSupport ? false, brotli ? null
 }:
@@ -21,17 +21,17 @@ assert gnutlsSupport -> gnutls != null;
 assert scpSupport -> libssh2 != null;
 assert c-aresSupport -> c-ares != null;
 assert brotliSupport -> brotli != null;
-assert gssSupport -> kerberos != null;
+assert gssSupport -> libkrb5 != null;
 
 stdenv.mkDerivation rec {
-  name = "curl-7.61.1";
+  name = "curl-7.62.0";
 
   src = fetchurl {
     urls = [
       "https://curl.haxx.se/download/${name}.tar.bz2"
       "https://github.com/curl/curl/releases/download/${lib.replaceStrings ["."] ["_"] name}/${name}.tar.bz2"
     ];
-    sha256 = "1f8rljpa98g7ry7qyvv6657cmvgrwmam9mdbjklv45lspiykf253";
+    sha256 = "084niy7cin13ba65p8x38w2xcyc54n3fgzbin40fa2shfr0ca0kq";
   };
 
   outputs = [ "bin" "dev" "out" "man" "devdoc" ];
@@ -49,7 +49,7 @@ stdenv.mkDerivation rec {
     optional idnSupport libidn ++
     optional ldapSupport openldap ++
     optional zlibSupport zlib ++
-    optional gssSupport kerberos ++
+    optional gssSupport libkrb5 ++
     optional c-aresSupport c-ares ++
     optional sslSupport openssl ++
     optional gnutlsSupport gnutls ++
@@ -78,7 +78,7 @@ stdenv.mkDerivation rec {
       ( if brotliSupport then "--with-brotli" else "--without-brotli" )
     ]
     ++ stdenv.lib.optional c-aresSupport "--enable-ares=${c-ares}"
-    ++ stdenv.lib.optional gssSupport "--with-gssapi=${kerberos.dev}"
+    ++ stdenv.lib.optional gssSupport "--with-gssapi=${libkrb5.dev}"
        # For the 'urandom', maybe it should be a cross-system option
     ++ stdenv.lib.optional (stdenv.hostPlatform != stdenv.buildPlatform)
        "--with-random=/dev/urandom"
diff --git a/pkgs/tools/networking/http-prompt/default.nix b/pkgs/tools/networking/http-prompt/default.nix
index dac3b616a9c..69b23b3e3a4 100644
--- a/pkgs/tools/networking/http-prompt/default.nix
+++ b/pkgs/tools/networking/http-prompt/default.nix
@@ -2,14 +2,14 @@
 
 pythonPackages.buildPythonApplication rec {
   pname = "http-prompt";
-  version = "0.11.2";
+  version = "1.0.0";
   name = "${pname}-${version}";
 
   src = fetchFromGitHub {
     rev = "v${version}";
     repo = "http-prompt";
     owner = "eliangcs";
-    sha256 = "130w3wkb5jbiwm5w0b470nd50gf30vrknmf3knhlgdxdmfb30zjz";
+    sha256 = "0kngz2izcqjphbrdkg489p0xmf65xjc8ki1a2szcc8sgwc7z74xy";
   };
 
   propagatedBuildInputs = with pythonPackages; [
diff --git a/pkgs/tools/networking/isync/unstable.nix b/pkgs/tools/networking/isync/unstable.nix
deleted file mode 100644
index 9d32f91d0e1..00000000000
--- a/pkgs/tools/networking/isync/unstable.nix
+++ /dev/null
@@ -1,31 +0,0 @@
-{
-  stdenv, fetchgit,
-  autoconf, automake, cyrus_sasl, db, openssl, perl, pkgconfig, zlib,
-}:
-
-stdenv.mkDerivation rec {
-  name = "isync-git-20170514";
-  rev = "4b3768806278a70db696ba52645dc1b6eb8de58a";
-
-  src = fetchgit {
-    url = "https://git.code.sf.net/p/isync/isync";
-    inherit rev;
-    sha256 = "1cv1isw01cfp7724z6f4pf6k4rx3k1lg0pc1xcq17zpikx9d10fb";
-  };
-
-  nativeBuildInputs = [ autoconf automake perl pkgconfig ];
-  buildInputs = [ cyrus_sasl db openssl zlib ];
-
-  preConfigure = ''
-    touch ChangeLog
-    ./autogen.sh
-  '';
-
-  meta = with stdenv.lib; {
-    homepage = http://isync.sourceforge.net/;
-    description = "Free IMAP and MailDir mailbox synchronizer";
-    license = licenses.gpl2Plus;
-    maintainers = with maintainers; [ the-kenny ttuegel ];
-    platforms = platforms.unix;
-  };
-}
diff --git a/pkgs/tools/networking/kea/default.nix b/pkgs/tools/networking/kea/default.nix
index f35ceeae864..bd18faf0e00 100644
--- a/pkgs/tools/networking/kea/default.nix
+++ b/pkgs/tools/networking/kea/default.nix
@@ -4,11 +4,11 @@
 stdenv.mkDerivation rec {
   name = "${pname}-${version}";
   pname = "kea";
-  version = "1.4.0";
+  version = "1.4.0-P1";
 
   src = fetchurl {
     url = "https://ftp.isc.org/isc/${pname}/${version}/${name}.tar.gz";
-    sha256 = "0a0inchisrjry59z14w4ha210q2ffl31gjbhp5dgrbap6swyry60";
+    sha256 = "0484h26ffdc1vmiznxllx69fax1lqi140wlsf5lx4wsab7a6nda6";
   };
 
   patches = [ ./dont-create-var.patch ];
diff --git a/pkgs/tools/networking/openconnect_pa/default.nix b/pkgs/tools/networking/openconnect_pa/default.nix
new file mode 100644
index 00000000000..d261e571705
--- /dev/null
+++ b/pkgs/tools/networking/openconnect_pa/default.nix
@@ -0,0 +1,40 @@
+{ stdenv, fetchFromGitHub, pkgconfig, vpnc, openssl ? null, gnutls ? null, gmp, libxml2, stoken, zlib, autoreconfHook } :
+
+assert (openssl != null) == (gnutls == null);
+
+stdenv.mkDerivation rec {
+  version = "unstable-2018-10-08";
+  name = "openconnect_pa-${version}";
+  
+  outputs = [ "out" "dev" ];
+
+  src = fetchFromGitHub {
+    owner = "dlenski";
+    repo = "openconnect";
+    rev = "e5fe063a087385c5b157ad7a9a3fa874181f6e3b";
+    sha256 = "0ywacqs3nncr2gpjjcz2yc9c6v4ifjssh0vb07h0qff06whqhdax"; 
+  };
+
+  preConfigure = ''
+      export PKG_CONFIG=${pkgconfig}/bin/pkg-config
+      export LIBXML2_CFLAGS="-I ${libxml2.dev}/include/libxml2"
+      export LIBXML2_LIBS="-L${libxml2.out}/lib -lxml2"
+  '';
+
+  configureFlags = [
+    "--with-vpnc-script=${vpnc}/etc/vpnc/vpnc-script"
+    "--disable-nls"
+    "--without-openssl-version-check"
+  ];
+
+  nativeBuildInputs = [ pkgconfig autoreconfHook ];
+  propagatedBuildInputs = [ vpnc openssl gnutls gmp libxml2 stoken zlib ];
+  
+  meta = with stdenv.lib; {
+    description = "OpenConnect client extended to support Palo Alto Networks' GlobalProtect VPN";
+    homepage = https://github.com/dlenski/openconnect/;
+    license = licenses.lgpl21;
+    maintainers = with maintainers; [ chessai ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/tools/networking/smbldaptools/default.nix b/pkgs/tools/networking/smbldaptools/default.nix
deleted file mode 100644
index 81f8361fa2a..00000000000
--- a/pkgs/tools/networking/smbldaptools/default.nix
+++ /dev/null
@@ -1,32 +0,0 @@
-{stdenv, fetchurl, perl, perlldap, makeWrapper, CryptSmbHash, DigestSHA1}:
-
-let
-  version = "0.9.11";
-in
-stdenv.mkDerivation {
-  name = "smbldap-tools-${version}";
-  src = fetchurl {
-    url = "http://download.gna.org/smbldap-tools/sources/${version}/smbldap-tools-${version}.tar.gz";
-    sha256 = "1xcxmpz74r82vjp731axyac3cyksfiarz9jk5g5m2bzfdixkq9mz";
-  };
-
-  buildInputs = [ perl perlldap makeWrapper CryptSmbHash DigestSHA1 ];
-
-  preConfigure = ''
-    export configureFlags="$configureFlags --with-perl-libdir=$out/lib/perl5/site_perl"
-  '';
-
-  postInstall = ''
-    for i in $out/sbin/*; do
-      wrapProgram $i \
-        --prefix PERL5LIB : $PERL5LIB:$out/lib/perl5/site_perl
-    done
-  '';
-
-  meta = {
-    homepage = http://gna.org/projects/smbldap-tools/;
-    description = "SAMBA LDAP tools";
-    license = stdenv.lib.licenses.gpl2Plus;
-    platforms = stdenv.lib.platforms.unix;
-  };
-}
diff --git a/pkgs/tools/networking/ssh-agents/default.nix b/pkgs/tools/networking/ssh-agents/default.nix
new file mode 100644
index 00000000000..84e7558713c
--- /dev/null
+++ b/pkgs/tools/networking/ssh-agents/default.nix
@@ -0,0 +1,43 @@
+{ fetchFromGitHub
+, lib
+, stdenvNoCC
+}:
+
+stdenvNoCC.mkDerivation rec {
+  name = "ssh-agents-${version}";
+  version = "1.0.1";
+
+  src = fetchFromGitHub {
+    owner = "kalbasit";
+    repo = "ssh-agents";
+    rev = "v${version}";
+    sha256 = "1l09zy87033v7hd17lhkxikwikqz5nj9x6c2w80rqpad4lp9ihwz";
+  };
+
+  installFlags = [ "PREFIX=$(out)" ];
+
+  meta = with lib; {
+    description = "ssh-agents capable of spawning and maintaining multiple ssh-agents across terminals";
+    longDescription = ''
+      The SSH agent is usually spawned by running eval $(ssh-agent), however this
+      spawns a new SSH agent at every invocation. This project provides an
+      ssh-agent wrapper called ssh-agents that is capable of spawning an SSH
+      agent and caching the environment variables for later invocation.
+
+      Features
+      - One SSH agent across all terminals
+      - Add all un-encrypted SSH keys to the agent upon spawning. Please note
+        that encrypted SSH keys can only be added via ssh-add after having
+        started the agent.
+      - Ability to have different keys in different agents for security purposes.
+      - Multiple SSH agents
+      - To use multi-SSH agents, start ssh agent with the --name flag. The
+        given name is expected to be a folder under ~/.ssh/name containing the
+        keys to include in the agent.
+    '';
+    homepage = https://github.com/kalbasit/ssh-agents;
+    license = licenses.mit;
+    maintainers = with maintainers; [ kalbasit ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/tools/networking/tcpreplay/default.nix b/pkgs/tools/networking/tcpreplay/default.nix
index 11500a51d92..23f06144502 100644
--- a/pkgs/tools/networking/tcpreplay/default.nix
+++ b/pkgs/tools/networking/tcpreplay/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   name = "tcpreplay-${version}";
-  version = "4.2.6";
+  version = "4.3.0";
 
   src = fetchurl {
     url = "https://github.com/appneta/tcpreplay/releases/download/v${version}/tcpreplay-${version}.tar.gz";
-    sha256 = "07aklkc1s13hwrd098bqj8izfh8kdgs7wl9swcmkxffs6b2mcdq4";
+    sha256 = "17y7ga2r9pc0xi2lwg82r4xlmhg5gdn5n1ddlpazzw59hda9yp4k";
   };
 
   buildInputs = [ libpcap ];
diff --git a/pkgs/tools/networking/twa/default.nix b/pkgs/tools/networking/twa/default.nix
index 7d2e17af388..8f462dc41b4 100644
--- a/pkgs/tools/networking/twa/default.nix
+++ b/pkgs/tools/networking/twa/default.nix
@@ -12,13 +12,13 @@
 
 stdenv.mkDerivation rec {
   name = "twa-${version}";
-  version = "1.6.0";
+  version = "1.6.2";
 
   src = fetchFromGitHub {
     owner = "trailofbits";
     repo = "twa";
     rev = version;
-    sha256 = "19jn4wp4f0vp2bxvrbyhjrwqgbphr5y1l17qawy8vdv3yswbyw46";
+    sha256 = "0b3wg6ia4dbf47baz3c6jinsi31n8iq7jrlsq86jr2ncggq7hlhj";
   };
 
   dontBuild = true;
diff --git a/pkgs/tools/networking/unbound/default.nix b/pkgs/tools/networking/unbound/default.nix
index f26cef3e61d..4da6f6e177b 100644
--- a/pkgs/tools/networking/unbound/default.nix
+++ b/pkgs/tools/networking/unbound/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   name = "unbound-${version}";
-  version = "1.8.0";
+  version = "1.8.1";
 
   src = fetchurl {
     url = "https://unbound.net/downloads/${name}.tar.gz";
-    sha256 = "0gxqc4ynd2g1a5dwaazqh9n8injh49a7dz0l9bbxqgv47dnrvxvq";
+    sha256 = "0p9w6spar5dfi7fplxjcq4394wldabaws0ns30cqq6sxqfwv6qn3";
   };
 
   outputs = [ "out" "lib" "man" ]; # "dev" would only split ~20 kB
diff --git a/pkgs/tools/networking/weighttp/default.nix b/pkgs/tools/networking/weighttp/default.nix
index 069c040f8ee..1e93948be68 100644
--- a/pkgs/tools/networking/weighttp/default.nix
+++ b/pkgs/tools/networking/weighttp/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchgit, python, libev}:
+{ stdenv, fetchgit, python, libev, wafHook }:
 stdenv.mkDerivation rec {
   name = "weighttp-${version}";
   version = "0.4";
@@ -9,12 +9,8 @@ stdenv.mkDerivation rec {
     sha256 = "14yjmdx9p8g8c3zlrx5qid8k156lsagfwhl3ny54162nxjf7kzgr";
   };
 
+  nativeBuildInputs = [ wafHook ];
   buildInputs = [ python libev ];
-  installPhase = ''
-    python waf configure --prefix=$out
-    python waf build
-    python waf install
-  '';
 
   meta = {
     platforms = stdenv.lib.platforms.unix;
diff --git a/pkgs/tools/networking/wireguard-tools/default.nix b/pkgs/tools/networking/wireguard-tools/default.nix
index 12e2deb7422..51e23e5dee1 100644
--- a/pkgs/tools/networking/wireguard-tools/default.nix
+++ b/pkgs/tools/networking/wireguard-tools/default.nix
@@ -4,11 +4,11 @@ with stdenv.lib;
 
 stdenv.mkDerivation rec {
   name = "wireguard-tools-${version}";
-  version = "0.0.20181018";
+  version = "0.0.20181119";
 
   src = fetchzip {
     url = "https://git.zx2c4.com/WireGuard/snapshot/WireGuard-${version}.tar.xz";
-    sha256 = "0vrr0f89nrpwnyia6kqvrjkxwivrnvjnbavmx2nxlrb3sz23481y";
+    sha256 = "1cxws2h64xvg6idb6jb6rdvn9wgmhdvq8s2lzqjbmds7sj6n09wa";
   };
 
   sourceRoot = "source/src/tools";
diff --git a/pkgs/tools/package-management/createrepo_c/default.nix b/pkgs/tools/package-management/createrepo_c/default.nix
index f6314b65529..0a0cae32dcf 100644
--- a/pkgs/tools/package-management/createrepo_c/default.nix
+++ b/pkgs/tools/package-management/createrepo_c/default.nix
@@ -1,14 +1,14 @@
-{ stdenv, fetchFromGitHub, cmake, pkgconfig, bzip2, expat, glib, curl, libxml2, python2, rpm, openssl, sqlite, file, xz, pcre, bash-completion }:
+{ stdenv, fetchFromGitHub, cmake, pkgconfig, bzip2, expat, glib, curl, libxml2, python3, rpm, openssl, sqlite, file, xz, pcre, bash-completion }:
 
 stdenv.mkDerivation rec {
-  rev  = "0.11.0";
-  name = "createrepo_c-${rev}";
+  name = "createrepo_c-${version}";
+  version = "0.11.1";
 
   src = fetchFromGitHub {
-    inherit rev;
     owner  = "rpm-software-management";
     repo   = "createrepo_c";
-    sha256 = "1w9yynj8mxhw714gvgr0fibfks584b4y0n4vjckcf7y97cpdhjkn";
+    rev    = version;
+    sha256 = "0cmysc7gdd2czagl4drfh9gin6aa2847vgi30a3p0cfqvczf9cm6";
   };
 
   patches = [
@@ -20,12 +20,12 @@ stdenv.mkDerivation rec {
     substituteInPlace CMakeLists.txt \
       --replace '@BASHCOMP_DIR@' "$out/share/bash-completion/completions"
     substituteInPlace src/python/CMakeLists.txt \
-      --replace "@PYTHON_INSTALL_PATH@" "$out/${python2.sitePackages}"
+      --replace "@PYTHON_INSTALL_DIR@" "$out/${python3.sitePackages}"
   '';
 
   nativeBuildInputs = [ cmake pkgconfig ];
 
-  buildInputs = [ bzip2 expat glib curl libxml2 python2 rpm openssl sqlite file xz pcre bash-completion ];
+  buildInputs = [ bzip2 expat glib curl libxml2 python3 rpm openssl sqlite file xz pcre bash-completion ];
 
   meta = with stdenv.lib; {
     description = "C implementation of createrepo";
diff --git a/pkgs/tools/package-management/gx/default.nix b/pkgs/tools/package-management/gx/default.nix
index 524dc01cbe7..4c03fc35dea 100644
--- a/pkgs/tools/package-management/gx/default.nix
+++ b/pkgs/tools/package-management/gx/default.nix
@@ -3,7 +3,7 @@
 
 buildGoPackage rec {
   name = "gx-${version}";
-  version = "0.12.0";
+  version = "0.14.1";
   rev = "refs/tags/v${version}";
 
   goPackagePath = "github.com/whyrusleeping/gx";
@@ -11,7 +11,7 @@ buildGoPackage rec {
   src = fetchgit {
     inherit rev;
     url = "https://github.com/whyrusleeping/gx";
-    sha256 = "0pvf0j14xnzy01fxilja8xbki0i0g7h7y20jzw74ds5a7ywsdx8r";
+    sha256 = "0pfx2p59xdbmqzfbgaf8xvlnzh8m05hkg596glq5kvl8ib65i4ha";
   };
 
   goDeps = ./deps.nix;
diff --git a/pkgs/tools/package-management/gx/deps.nix b/pkgs/tools/package-management/gx/deps.nix
index c34d142c385..766e58775b4 100644
--- a/pkgs/tools/package-management/gx/deps.nix
+++ b/pkgs/tools/package-management/gx/deps.nix
@@ -1,20 +1,12 @@
+# This file was generated by https://github.com/kamilchm/go2nix v1.3.0
 [
   {
-    goPackagePath = "github.com/agl/ed25519";
-    fetch = {
-      type = "git";
-      url = "https://github.com/agl/ed25519";
-      rev = "5312a61534124124185d41f09206b9fef1d88403";
-      sha256 = "1v8mhkf1m3ga5262s75vabskxvsw5rpqvi5nwhxwiv7gfk6h823i";
-    };
-  }
-  {
     goPackagePath = "github.com/blang/semver";
     fetch = {
       type = "git";
       url = "https://github.com/blang/semver";
-      rev = "4a1e882c79dcf4ec00d2e29fac74b9c8938d5052";
-      sha256 = "07rk2jzmppw1v06qvsn11l1mwkyg6y9y06jfik316zq8glfh8b3m";
+      rev = "3c1074078d32d767e08ab2c8564867292da86926";
+      sha256 = "1vqkjrag8nn5hvjz34cf9zsrgwd13ss63y6sp7y5jq39j7bcprdx";
     };
   }
   {
@@ -22,26 +14,8 @@
     fetch = {
       type = "git";
       url = "https://github.com/btcsuite/btcd";
-      rev = "9822ffad6802d3b902442b727a238230194d961f";
-      sha256 = "0mk3qxpn29gsbkvk6rj6jzsw3fn2z51afq890wpk4qz029kvip2h";
-    };
-  }
-  {
-    goPackagePath = "github.com/codegangsta/cli";
-    fetch = {
-      type = "git";
-      url = "https://github.com/codegangsta/cli";
-      rev = "4b90d79a682b4bf685762c7452db20f2a676ecb2";
-      sha256 = "0ls3lfmbfwirm9j95b6yrw41wgh72lfkp1cvs873zw04si4yvaqr";
-    };
-  }
-  {
-    goPackagePath = "github.com/coreos/go-semver";
-    fetch = {
-      type = "git";
-      url = "https://github.com/coreos/go-semver";
-      rev = "1817cd4bea52af76542157eeabd74b057d1a199e";
-      sha256 = "0hfxcg87ag0zdfarbymfx2qmhcdzm8br39sxvhfc7n37rqdcsh9n";
+      rev = "67e573d211ace594f1366b4ce9d39726c4b19bd0";
+      sha256 = "04s92gsy71w1jirlr5lkk9y6r5cparbas7nmf6ywbp7kq7fn8ajn";
     };
   }
   {
@@ -49,80 +23,44 @@
     fetch = {
       type = "git";
       url = "https://github.com/gogo/protobuf";
-      rev = "dda3e8acadcc9affc16faf33fbb229db78399245";
-      sha256 = "1f1lm6bgwnrd985n1aagqw0bxfx37z71fwfcijiz9k258vj4wlga";
+      rev = "07eab6a8298cf32fac45cceaac59424f98421bbc";
+      sha256 = "1l2v9yq74qsiq3q7kii091rzx67jx6isz5szs27hyhsdwvy0y2p7";
     };
   }
   {
-    goPackagePath = "github.com/ipfs/go-ipfs-api";
+    goPackagePath = "github.com/gxed/hashland";
     fetch = {
       type = "git";
-      url = "https://github.com/ipfs/go-ipfs-api";
-      rev = "2da86eb64d56571c123c02ae82140c7b4b95f72a";
-      sha256 = "1ljlzjig0qv2mjzyk2piid12b4043584qskx6ikbz5i16cnbvqsq";
+      url = "https://github.com/gxed/hashland";
+      rev = "d9f6b97f8db22dd1e090fd0bbbe98f09cc7dd0a8";
+      sha256 = "1q23y4lacsz46k9gmgfw4iwwydw36j2601rbidmmswl94grpc386";
     };
   }
   {
-    goPackagePath = "github.com/ipfs/go-ipfs-util";
-    fetch = {
-      type = "git";
-      url = "https://github.com/ipfs/go-ipfs-util";
-      rev = "f25fcc891281327394bb48000ef0970d11baff2b";
-      sha256 = "1a79ggx0ma9ny39kjm0gzicrn541gyis4fn7kmkkfjjfaj8v5l3y";
-    };
-  }
-  {
-    goPackagePath = "github.com/ipfs/go-log";
-    fetch = {
-      type = "git";
-      url = "https://github.com/ipfs/go-log";
-      rev = "48d644b006ba26f1793bffc46396e981801078e3";
-      sha256 = "0q2bk2s2v626ikm2pjalq4qg4n53yyf1bb81jbljb23iijxrqsbr";
-    };
-  }
-  {
-    goPackagePath = "github.com/jbenet/go-base58";
-    fetch = {
-      type = "git";
-      url = "https://github.com/jbenet/go-base58";
-      rev = "6237cf65f3a6f7111cd8a42be3590df99a66bc7d";
-      sha256 = "11yp7yg62bhw6jqdrlf2144bffk12jmb1nvqkm172pdhxfwrp3bf";
-    };
-  }
-  {
-    goPackagePath = "github.com/jbenet/go-os-rename";
-    fetch = {
-      type = "git";
-      url = "https://github.com/jbenet/go-os-rename";
-      rev = "3ac97f61ef67a6b87b95c1282f6c317ed0e693c2";
-      sha256 = "0fmsmmh9h3l7swf5d56spy9jyrnrvw0vnxgh11mpvxmw5hv3lclr";
-    };
-  }
-  {
-    goPackagePath = "github.com/jbenet/goprocess";
+    goPackagePath = "github.com/ipfs/go-ipfs-api";
     fetch = {
       type = "git";
-      url = "https://github.com/jbenet/goprocess";
-      rev = "b497e2f366b8624394fb2e89c10ab607bebdde0b";
-      sha256 = "1lnvkzki7vnqn5c4m6bigk0k85haicmg27w903kwg30rdvblm82s";
+      url = "https://github.com/ipfs/go-ipfs-api";
+      rev = "b4fd7838d9771414868cb78fa8c4f97e47cad013";
+      sha256 = "1kb0ja6bji9q1ly66hx3490mjmk3w56zpwl9c0pkfy6da9x4dkyr";
     };
   }
   {
-    goPackagePath = "github.com/kr/fs";
+    goPackagePath = "github.com/ipfs/go-ipfs-files";
     fetch = {
       type = "git";
-      url = "https://github.com/kr/fs";
-      rev = "2788f0dbd16903de03cb8186e5c7d97b69ad387b";
-      sha256 = "1c0fipl4rsh0v5liq1ska1dl83v3llab4k6lm8mvrx9c4dyp71ly";
+      url = "https://github.com/ipfs/go-ipfs-files";
+      rev = "90d206a6f3947f904673ebffd376a2dcbbd84942";
+      sha256 = "0bq6lciqba362lqmszjf1x33qwdpfrfik6r680iqr5c4sybywzqv";
     };
   }
   {
-    goPackagePath = "github.com/libp2p/go-floodsub";
+    goPackagePath = "github.com/libp2p/go-flow-metrics";
     fetch = {
       type = "git";
-      url = "https://github.com/libp2p/go-floodsub";
-      rev = "a922092abea58f07c32eabe303ec817569578740";
-      sha256 = "0wbi67jyfvrzfsb9lkrhjgg9k66yk5sww7nvihhc9rdnblygigs3";
+      url = "https://github.com/libp2p/go-flow-metrics";
+      rev = "7e5a55af485341567f98d6847a373eb5ddcdcd43";
+      sha256 = "1p87iyk6q6f3g3xkncssx400qlld8f2z93qiz8m1f97grfyhjif1";
     };
   }
   {
@@ -130,35 +68,17 @@
     fetch = {
       type = "git";
       url = "https://github.com/libp2p/go-libp2p-crypto";
-      rev = "e89e1de117dd65c6129d99d1d853f48bc847cf17";
-      sha256 = "1lb0qzspx99sqbdxbf9dczwcmmirl4h26q9x3v6ris253zmqcbyw";
+      rev = "3120e9f9526fe05f2d3905961a5e0701b85579d9";
+      sha256 = "05i8jcfmk51zln634x782jvjmmn5l11104ylzqfnjxgjibz9pyd7";
     };
   }
   {
-    goPackagePath = "github.com/libp2p/go-libp2p-host";
+    goPackagePath = "github.com/libp2p/go-libp2p-metrics";
     fetch = {
       type = "git";
-      url = "https://github.com/libp2p/go-libp2p-host";
-      rev = "c1fc482de113ce7e4cdc9453a1c1c0fe4164d985";
-      sha256 = "1hiz5j64s248vml7i4gwjvz59g7l08zjfklhrbmk0cjxwhx9ypy0";
-    };
-  }
-  {
-    goPackagePath = "github.com/libp2p/go-libp2p-interface-conn";
-    fetch = {
-      type = "git";
-      url = "https://github.com/libp2p/go-libp2p-interface-conn";
-      rev = "95afdbf0c900237f3b9104f1f7cfd3d56175a241";
-      sha256 = "0dv0jc08hfzb8gsi14c2ivancq7pxs8d482l4rw89mg04m2pgnaa";
-    };
-  }
-  {
-    goPackagePath = "github.com/libp2p/go-libp2p-net";
-    fetch = {
-      type = "git";
-      url = "https://github.com/libp2p/go-libp2p-net";
-      rev = "2680a9894c7aabada540f728a53d7c1a16a1a44a";
-      sha256 = "1k44dz2dk7ahlfls6vk747jy8kbxmjhqyni8zw2wiz6sfm5hyw10";
+      url = "https://github.com/libp2p/go-libp2p-metrics";
+      rev = "2d5733beaa2a9fdd05ef696d7a734aa61549fb2a";
+      sha256 = "1g59z1mn483npmzgdyxn5w7w1k94phi5lgqkw3lq8i1b2jdy5mci";
     };
   }
   {
@@ -166,53 +86,53 @@
     fetch = {
       type = "git";
       url = "https://github.com/libp2p/go-libp2p-peer";
-      rev = "166a39e33e7a2a47a4bf999264f254ecaa4fe232";
-      sha256 = "0kgv1n2c8rfz92vk014sqm1bla7a99w18ydyphjjhc96fmlbrzgl";
+      rev = "d3df4bca884d7a9c2d350c8120240db3c2b0f2ee";
+      sha256 = "0hn75dnr80f846jj38bpcjw5z73iw292ygcqsfbghvdrwl2pf5xm";
     };
   }
   {
-    goPackagePath = "github.com/libp2p/go-libp2p-peerstore";
+    goPackagePath = "github.com/libp2p/go-libp2p-protocol";
     fetch = {
       type = "git";
-      url = "https://github.com/libp2p/go-libp2p-peerstore";
-      rev = "744a149e48eb42e032540507c8545d12cc3b7f6f";
-      sha256 = "1bcmqkdlvvxdz9dbqrcfmvhx0wnnk94fb2yl9ys1nx7mnqgl64y8";
+      url = "https://github.com/libp2p/go-libp2p-protocol";
+      rev = "b29f3d97e3a2fb8b29c5d04290e6cb5c5018004b";
+      sha256 = "1xgjfnx9zcqglg9li29wdqywsp8hz22wx6phns9zscni2jsfidld";
     };
   }
   {
-    goPackagePath = "github.com/libp2p/go-libp2p-protocol";
+    goPackagePath = "github.com/minio/blake2b-simd";
     fetch = {
       type = "git";
-      url = "https://github.com/libp2p/go-libp2p-protocol";
-      rev = "40488c03777c16bfcd65da2f675b192863cbc2dc";
-      sha256 = "1mvhi8pdfyn3lb1j1y4iz2mggnf0dz7ccbmrbij739v6cpjfwwbb";
+      url = "https://github.com/minio/blake2b-simd";
+      rev = "3f5f724cb5b182a5c278d6d3d55b40e7f8c2efb4";
+      sha256 = "0b6jbnj62c0gmmfd4zdmh8xbg01p80f13yygir9xprqkzk6fikmd";
     };
   }
   {
-    goPackagePath = "github.com/libp2p/go-libp2p-transport";
+    goPackagePath = "github.com/minio/sha256-simd";
     fetch = {
       type = "git";
-      url = "https://github.com/libp2p/go-libp2p-transport";
-      rev = "5d3cb5861b59c26052a5fe184e45c381ec17e22d";
-      sha256 = "1v63gavw98f6hs151mqk0bbdl46a9ci9m2pcx807wxdsmfphynar";
+      url = "https://github.com/minio/sha256-simd";
+      rev = "51976451ce1942acbb55707a983ed232fa027110";
+      sha256 = "0kaxvpidf6ygkkb06vi95pirll31jnmywhyalfjvf7djhim2wr8f";
     };
   }
   {
-    goPackagePath = "github.com/libp2p/go-maddr-filter";
+    goPackagePath = "github.com/mitchellh/go-homedir";
     fetch = {
       type = "git";
-      url = "https://github.com/libp2p/go-maddr-filter";
-      rev = "90aacb5ee155f0d6f3fa8b34d775de842606c0b1";
-      sha256 = "0ijs599hppj78dg2v7rcglqs82pysygq84yabpis5b99fjp9bay0";
+      url = "https://github.com/mitchellh/go-homedir";
+      rev = "ae18d6b8b3205b561c79e8e5f69bff09736185f4";
+      sha256 = "0f0z0aa4wivk4z1y503dmnw0k0g0g403dly8i4q263gfshs82sbq";
     };
   }
   {
-    goPackagePath = "github.com/mitchellh/go-homedir";
+    goPackagePath = "github.com/mr-tron/base58";
     fetch = {
       type = "git";
-      url = "https://github.com/mitchellh/go-homedir";
-      rev = "b8bc1bf767474819792c23f32d8286a45736f1c6";
-      sha256 = "13ry4lylalkh4g2vny9cxwvryslzyzwp9r92z0b10idhdq3wad1q";
+      url = "https://github.com/mr-tron/base58";
+      rev = "c8897612421d88a51012eaa53bf7267686173ae5";
+      sha256 = "10lr50ia7xccfdvg772f7nb2azn81djcpnckhblhwq6l6a1fpm48";
     };
   }
   {
@@ -220,8 +140,8 @@
     fetch = {
       type = "git";
       url = "https://github.com/multiformats/go-multiaddr";
-      rev = "33741da7b3f5773a599d4a03c333704fc560ef34";
-      sha256 = "0idhv960k68jvh0frhh28dw46p527m2g67rjwjh6r5va5sd8qjcd";
+      rev = "ec8630b6b7436b5d7f6c1c2366d3d7214d1b29e2";
+      sha256 = "1npx4d3scj087a54m6my2xnd0wga8bkklswnbhzghwhhpsgmy800";
     };
   }
   {
@@ -229,8 +149,8 @@
     fetch = {
       type = "git";
       url = "https://github.com/multiformats/go-multiaddr-net";
-      rev = "a7b93d11855f04f56908e1385991eb6a400fcc43";
-      sha256 = "1q0d8asxxhxhm774xn29n1x6zni6pmm78lvm3652ipyj026y243k";
+      rev = "f0af4033635f1241179700537dacdc04f2803df8";
+      sha256 = "0s90ix09mm6dc8319l48g3zhnjl1mkih168wsdh6fdf73801lhg5";
     };
   }
   {
@@ -238,26 +158,17 @@
     fetch = {
       type = "git";
       url = "https://github.com/multiformats/go-multihash";
-      rev = "a52a6a4768da72eba89ea7f59f70e9d42ddd3072";
-      sha256 = "0r6fmzvg4vjwc5wzfqn7jjxndcw8n0galdx6f524yd9bcfdlph5b";
-    };
-  }
-  {
-    goPackagePath = "github.com/multiformats/go-multistream";
-    fetch = {
-      type = "git";
-      url = "https://github.com/multiformats/go-multistream";
-      rev = "b8f1996688ab586031517919b49b1967fca8d5d9";
-      sha256 = "0y2hl78lmnd0rbryfmscgxa6kmjdfz00pz60ymhg8k4cifqai0x2";
+      rev = "a91e75d03bf4dba801af7b159c8b2aa7b5f47ea8";
+      sha256 = "1xvj944qg17vmdgzhyn5qryqrksyxi1q188f91my52wfkz23qmmm";
     };
   }
   {
-    goPackagePath = "github.com/sabhiram/go-git-ignore";
+    goPackagePath = "github.com/sabhiram/go-gitignore";
     fetch = {
       type = "git";
-      url = "https://github.com/sabhiram/go-git-ignore";
-      rev = "87c28ffedb6cb7ff29ae89e0440e9ddee0d95a9e";
-      sha256 = "1qysvwjvbzq1wms09dm0sban58xq22bbkwpd7qnk28r99g6267rl";
+      url = "https://github.com/sabhiram/go-gitignore";
+      rev = "d3107576ba9425fc1c85f4b3569c4631b805a02e";
+      sha256 = "1rdwyxgcsiwgmlqnc3k6h300mzlvjc3j21np4yh1h476wc8dvl0l";
     };
   }
   {
@@ -265,26 +176,17 @@
     fetch = {
       type = "git";
       url = "https://github.com/spaolacci/murmur3";
-      rev = "0d12bf811670bf6a1a63828dfbd003eded177fce";
-      sha256 = "0fv74n0cvgnxpfd04xyiry6ii1ag7mhwwk0kwplpvnbwi8y9yq1x";
-    };
-  }
-  {
-    goPackagePath = "github.com/whyrusleeping/go-logging";
-    fetch = {
-      type = "git";
-      url = "https://github.com/whyrusleeping/go-logging";
-      rev = "0457bb6b88fc1973573aaf6b5145d8d3ae972390";
-      sha256 = "1bl180mhg03hdqhyr5sfjcg16ns2ppal625g9ag5m10l2pvlwnqn";
+      rev = "f09979ecbc725b9e6d41a297405f65e7e8804acc";
+      sha256 = "1lv3zyz3jy2d76bhvvs8svygx66606iygdvwy5cwc0p5z8yghq25";
     };
   }
   {
-    goPackagePath = "github.com/whyrusleeping/go-multipart-files";
+    goPackagePath = "github.com/urfave/cli";
     fetch = {
       type = "git";
-      url = "https://github.com/whyrusleeping/go-multipart-files";
-      rev = "3be93d9f6b618f2b8564bfb1d22f1e744eabbae2";
-      sha256 = "0lf58q5nrxp10v7mj4b0lz01jz8is1xysxwdwkhhs88qxha8vm2f";
+      url = "https://github.com/urfave/cli";
+      rev = "b67dcf995b6a7b7f14fad5fcb7cc5441b05e814b";
+      sha256 = "0n5vq4nydlhb7w12jiwphvxqdy4jwpxc3zwlxyhf05lq1nxfb56h";
     };
   }
   {
@@ -297,21 +199,12 @@
     };
   }
   {
-    goPackagePath = "github.com/whyrusleeping/mafmt";
-    fetch = {
-      type = "git";
-      url = "https://github.com/whyrusleeping/mafmt";
-      rev = "15300f9d3a2d71db61951a8705d5ea8878764837";
-      sha256 = "0fiwrj8pla9y8q0m4ifyrh8gacmrz278h2zihdbqbk2b17b002yr";
-    };
-  }
-  {
     goPackagePath = "github.com/whyrusleeping/progmeter";
     fetch = {
       type = "git";
       url = "https://github.com/whyrusleeping/progmeter";
-      rev = "974d8fe8cd87585865b1370184050e89d606e817";
-      sha256 = "05njc5minpaxzwb6yg5zjr52ar4ar7qkiml45zsrp2ny92dyx07j";
+      rev = "f3e57218a75b913eff88d49a52c1debf9684ea04";
+      sha256 = "0xs8rz6yhpvj9512c5v3b8dwr2kivywnyyfxzdfbr6fy1xc8zskb";
     };
   }
   {
@@ -328,17 +221,8 @@
     fetch = {
       type = "git";
       url = "https://github.com/whyrusleeping/tar-utils";
-      rev = "beab27159606f5a7c978268dd1c3b12a0f1de8a7";
-      sha256 = "07z4is00ridjp8c6cn68lkg1fz6ksj1q7f26g7ir7qx8mx10fj72";
-    };
-  }
-  {
-    goPackagePath = "github.com/whyrusleeping/timecache";
-    fetch = {
-      type = "git";
-      url = "https://github.com/whyrusleeping/timecache";
-      rev = "cfcb2f1abfee846c430233aef0b630a946e0a5a6";
-      sha256 = "0nnra7ivq7cj34rj2ib8hgfdpik3smr1hy7x18svhfin8z1xsj2s";
+      rev = "8c6c8ba81d5c71fd69c0f48dbde4b2fb422b6dfc";
+      sha256 = "14jjdw3yics0k467xsyk388684wdpi0bbx8nqj0y4pqxa0s0in6s";
     };
   }
   {
@@ -346,17 +230,17 @@
     fetch = {
       type = "git";
       url = "https://go.googlesource.com/crypto";
-      rev = "a48ac81e47fd6f9ed1258f3b60ae9e75f93cb7ed";
-      sha256 = "0zpgwc362rghm3fv0s964dqmw6krixzxww2qxhnik9hvf7srapjd";
+      rev = "3d3f9f413869b949e48070b5bc593aa22cc2b8f2";
+      sha256 = "0rbkcq48lkiw043sm8hciprqy2d77s4agpj6rwy2qgbqm8gvv3a6";
     };
   }
   {
-    goPackagePath = "leb.io/hashland";
+    goPackagePath = "golang.org/x/sys";
     fetch = {
       type = "git";
-      url = "https://github.com/tildeleb/hashland";
-      rev = "e13accbe55f7fa03c73c74ace4cca4c425e47260";
-      sha256 = "1ygfp7kjnm964w2bv61bsyxpw5y6vy6k4pra1lhd5r3nhlxgs31g";
+      url = "https://go.googlesource.com/sys";
+      rev = "ec83556a53fe16b65c452a104ea9d1e86a671852";
+      sha256 = "1ijlbyn5gs8g6z2pjlj5h77lg7wrljqxdls4xlcfqxmghxiyci2f";
     };
   }
 ]
diff --git a/pkgs/tools/package-management/gx/go/default.nix b/pkgs/tools/package-management/gx/go/default.nix
index 6a9589f9ac2..0ae0b8a1983 100644
--- a/pkgs/tools/package-management/gx/go/default.nix
+++ b/pkgs/tools/package-management/gx/go/default.nix
@@ -5,7 +5,7 @@
 
 buildGoPackage rec {
   name = "gx-go-${version}";
-  version = "1.5.0";
+  version = "1.9.0";
   rev = "refs/tags/v${version}";
 
   goPackagePath = "github.com/whyrusleeping/gx-go";
@@ -13,10 +13,10 @@ buildGoPackage rec {
   src = fetchgit {
     inherit rev;
     url = "https://github.com/whyrusleeping/gx-go";
-    sha256 = "0bg4h5lzs293qmlsr9n257vjpr5w6bxb4ampb25gsn3fgy3rvsis";
+    sha256 = "0fdy4b3ymqw6hzvvjwq37mfrdmizc8lxm53axw93n3x6118na9jc";
   };
 
-  goDeps = ../deps.nix;
+  goDeps = ./deps.nix;
 
   extraSrcs = [
     {
diff --git a/pkgs/tools/package-management/gx/go/deps.nix b/pkgs/tools/package-management/gx/go/deps.nix
new file mode 100644
index 00000000000..895e0e6bb1a
--- /dev/null
+++ b/pkgs/tools/package-management/gx/go/deps.nix
@@ -0,0 +1,246 @@
+# This file was generated by https://github.com/kamilchm/go2nix v1.3.0
+[
+  {
+    goPackagePath = "github.com/btcsuite/btcd";
+    fetch = {
+      type = "git";
+      url = "https://github.com/btcsuite/btcd";
+      rev = "67e573d211ace594f1366b4ce9d39726c4b19bd0";
+      sha256 = "04s92gsy71w1jirlr5lkk9y6r5cparbas7nmf6ywbp7kq7fn8ajn";
+    };
+  }
+  {
+    goPackagePath = "github.com/gogo/protobuf";
+    fetch = {
+      type = "git";
+      url = "https://github.com/gogo/protobuf";
+      rev = "07eab6a8298cf32fac45cceaac59424f98421bbc";
+      sha256 = "1l2v9yq74qsiq3q7kii091rzx67jx6isz5szs27hyhsdwvy0y2p7";
+    };
+  }
+  {
+    goPackagePath = "github.com/gxed/hashland";
+    fetch = {
+      type = "git";
+      url = "https://github.com/gxed/hashland";
+      rev = "d9f6b97f8db22dd1e090fd0bbbe98f09cc7dd0a8";
+      sha256 = "1q23y4lacsz46k9gmgfw4iwwydw36j2601rbidmmswl94grpc386";
+    };
+  }
+  {
+    goPackagePath = "github.com/ipfs/go-ipfs-api";
+    fetch = {
+      type = "git";
+      url = "https://github.com/ipfs/go-ipfs-api";
+      rev = "b4fd7838d9771414868cb78fa8c4f97e47cad013";
+      sha256 = "1kb0ja6bji9q1ly66hx3490mjmk3w56zpwl9c0pkfy6da9x4dkyr";
+    };
+  }
+  {
+    goPackagePath = "github.com/ipfs/go-ipfs-files";
+    fetch = {
+      type = "git";
+      url = "https://github.com/ipfs/go-ipfs-files";
+      rev = "90d206a6f3947f904673ebffd376a2dcbbd84942";
+      sha256 = "0bq6lciqba362lqmszjf1x33qwdpfrfik6r680iqr5c4sybywzqv";
+    };
+  }
+  {
+    goPackagePath = "github.com/kr/fs";
+    fetch = {
+      type = "git";
+      url = "https://github.com/kr/fs";
+      rev = "1455def202f6e05b95cc7bfc7e8ae67ae5141eba";
+      sha256 = "11zg176x9hr9q7fsk95r6q0wf214gg4czy02slax4x56n79g6a7q";
+    };
+  }
+  {
+    goPackagePath = "github.com/libp2p/go-flow-metrics";
+    fetch = {
+      type = "git";
+      url = "https://github.com/libp2p/go-flow-metrics";
+      rev = "7e5a55af485341567f98d6847a373eb5ddcdcd43";
+      sha256 = "1p87iyk6q6f3g3xkncssx400qlld8f2z93qiz8m1f97grfyhjif1";
+    };
+  }
+  {
+    goPackagePath = "github.com/libp2p/go-libp2p-crypto";
+    fetch = {
+      type = "git";
+      url = "https://github.com/libp2p/go-libp2p-crypto";
+      rev = "3120e9f9526fe05f2d3905961a5e0701b85579d9";
+      sha256 = "05i8jcfmk51zln634x782jvjmmn5l11104ylzqfnjxgjibz9pyd7";
+    };
+  }
+  {
+    goPackagePath = "github.com/libp2p/go-libp2p-metrics";
+    fetch = {
+      type = "git";
+      url = "https://github.com/libp2p/go-libp2p-metrics";
+      rev = "2d5733beaa2a9fdd05ef696d7a734aa61549fb2a";
+      sha256 = "1g59z1mn483npmzgdyxn5w7w1k94phi5lgqkw3lq8i1b2jdy5mci";
+    };
+  }
+  {
+    goPackagePath = "github.com/libp2p/go-libp2p-peer";
+    fetch = {
+      type = "git";
+      url = "https://github.com/libp2p/go-libp2p-peer";
+      rev = "d3df4bca884d7a9c2d350c8120240db3c2b0f2ee";
+      sha256 = "0hn75dnr80f846jj38bpcjw5z73iw292ygcqsfbghvdrwl2pf5xm";
+    };
+  }
+  {
+    goPackagePath = "github.com/libp2p/go-libp2p-protocol";
+    fetch = {
+      type = "git";
+      url = "https://github.com/libp2p/go-libp2p-protocol";
+      rev = "b29f3d97e3a2fb8b29c5d04290e6cb5c5018004b";
+      sha256 = "1xgjfnx9zcqglg9li29wdqywsp8hz22wx6phns9zscni2jsfidld";
+    };
+  }
+  {
+    goPackagePath = "github.com/minio/blake2b-simd";
+    fetch = {
+      type = "git";
+      url = "https://github.com/minio/blake2b-simd";
+      rev = "3f5f724cb5b182a5c278d6d3d55b40e7f8c2efb4";
+      sha256 = "0b6jbnj62c0gmmfd4zdmh8xbg01p80f13yygir9xprqkzk6fikmd";
+    };
+  }
+  {
+    goPackagePath = "github.com/minio/sha256-simd";
+    fetch = {
+      type = "git";
+      url = "https://github.com/minio/sha256-simd";
+      rev = "51976451ce1942acbb55707a983ed232fa027110";
+      sha256 = "0kaxvpidf6ygkkb06vi95pirll31jnmywhyalfjvf7djhim2wr8f";
+    };
+  }
+  {
+    goPackagePath = "github.com/mitchellh/go-homedir";
+    fetch = {
+      type = "git";
+      url = "https://github.com/mitchellh/go-homedir";
+      rev = "ae18d6b8b3205b561c79e8e5f69bff09736185f4";
+      sha256 = "0f0z0aa4wivk4z1y503dmnw0k0g0g403dly8i4q263gfshs82sbq";
+    };
+  }
+  {
+    goPackagePath = "github.com/mr-tron/base58";
+    fetch = {
+      type = "git";
+      url = "https://github.com/mr-tron/base58";
+      rev = "c8897612421d88a51012eaa53bf7267686173ae5";
+      sha256 = "10lr50ia7xccfdvg772f7nb2azn81djcpnckhblhwq6l6a1fpm48";
+    };
+  }
+  {
+    goPackagePath = "github.com/multiformats/go-multiaddr";
+    fetch = {
+      type = "git";
+      url = "https://github.com/multiformats/go-multiaddr";
+      rev = "ec8630b6b7436b5d7f6c1c2366d3d7214d1b29e2";
+      sha256 = "1npx4d3scj087a54m6my2xnd0wga8bkklswnbhzghwhhpsgmy800";
+    };
+  }
+  {
+    goPackagePath = "github.com/multiformats/go-multiaddr-net";
+    fetch = {
+      type = "git";
+      url = "https://github.com/multiformats/go-multiaddr-net";
+      rev = "f0af4033635f1241179700537dacdc04f2803df8";
+      sha256 = "0s90ix09mm6dc8319l48g3zhnjl1mkih168wsdh6fdf73801lhg5";
+    };
+  }
+  {
+    goPackagePath = "github.com/multiformats/go-multihash";
+    fetch = {
+      type = "git";
+      url = "https://github.com/multiformats/go-multihash";
+      rev = "a91e75d03bf4dba801af7b159c8b2aa7b5f47ea8";
+      sha256 = "1xvj944qg17vmdgzhyn5qryqrksyxi1q188f91my52wfkz23qmmm";
+    };
+  }
+  {
+    goPackagePath = "github.com/sabhiram/go-gitignore";
+    fetch = {
+      type = "git";
+      url = "https://github.com/sabhiram/go-gitignore";
+      rev = "d3107576ba9425fc1c85f4b3569c4631b805a02e";
+      sha256 = "1rdwyxgcsiwgmlqnc3k6h300mzlvjc3j21np4yh1h476wc8dvl0l";
+    };
+  }
+  {
+    goPackagePath = "github.com/spaolacci/murmur3";
+    fetch = {
+      type = "git";
+      url = "https://github.com/spaolacci/murmur3";
+      rev = "f09979ecbc725b9e6d41a297405f65e7e8804acc";
+      sha256 = "1lv3zyz3jy2d76bhvvs8svygx66606iygdvwy5cwc0p5z8yghq25";
+    };
+  }
+  {
+    goPackagePath = "github.com/urfave/cli";
+    fetch = {
+      type = "git";
+      url = "https://github.com/urfave/cli";
+      rev = "b67dcf995b6a7b7f14fad5fcb7cc5441b05e814b";
+      sha256 = "0n5vq4nydlhb7w12jiwphvxqdy4jwpxc3zwlxyhf05lq1nxfb56h";
+    };
+  }
+  {
+    goPackagePath = "github.com/whyrusleeping/gx";
+    fetch = {
+      type = "git";
+      url = "https://github.com/whyrusleeping/gx";
+      rev = "733691bc18c0858a3d7e1a6e0a42df7d0bcac1de";
+      sha256 = "0pfx2p59xdbmqzfbgaf8xvlnzh8m05hkg596glq5kvl8ib65i4ha";
+    };
+  }
+  {
+    goPackagePath = "github.com/whyrusleeping/progmeter";
+    fetch = {
+      type = "git";
+      url = "https://github.com/whyrusleeping/progmeter";
+      rev = "f3e57218a75b913eff88d49a52c1debf9684ea04";
+      sha256 = "0xs8rz6yhpvj9512c5v3b8dwr2kivywnyyfxzdfbr6fy1xc8zskb";
+    };
+  }
+  {
+    goPackagePath = "github.com/whyrusleeping/stump";
+    fetch = {
+      type = "git";
+      url = "https://github.com/whyrusleeping/stump";
+      rev = "206f8f13aae1697a6fc1f4a55799faf955971fc5";
+      sha256 = "1s40qdppjnk8gijk7x6kbviiqz62nz3h6gic2q9cwcmq8r5isw7n";
+    };
+  }
+  {
+    goPackagePath = "github.com/whyrusleeping/tar-utils";
+    fetch = {
+      type = "git";
+      url = "https://github.com/whyrusleeping/tar-utils";
+      rev = "8c6c8ba81d5c71fd69c0f48dbde4b2fb422b6dfc";
+      sha256 = "14jjdw3yics0k467xsyk388684wdpi0bbx8nqj0y4pqxa0s0in6s";
+    };
+  }
+  {
+    goPackagePath = "golang.org/x/crypto";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/crypto";
+      rev = "3d3f9f413869b949e48070b5bc593aa22cc2b8f2";
+      sha256 = "0rbkcq48lkiw043sm8hciprqy2d77s4agpj6rwy2qgbqm8gvv3a6";
+    };
+  }
+  {
+    goPackagePath = "golang.org/x/sys";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/sys";
+      rev = "ec83556a53fe16b65c452a104ea9d1e86a671852";
+      sha256 = "1ijlbyn5gs8g6z2pjlj5h77lg7wrljqxdls4xlcfqxmghxiyci2f";
+    };
+  }
+]
diff --git a/pkgs/tools/package-management/librepo/default.nix b/pkgs/tools/package-management/librepo/default.nix
index b08d65e123d..c35550597a3 100644
--- a/pkgs/tools/package-management/librepo/default.nix
+++ b/pkgs/tools/package-management/librepo/default.nix
@@ -1,24 +1,24 @@
-{ stdenv, fetchFromGitHub, cmake, python, pkgconfig, expat, glib, pcre, openssl, curl, check, attr, gpgme }:
+{ stdenv, fetchFromGitHub, cmake, python, pkgconfig, libxml2, glib, openssl, curl, check, gpgme }:
 
 stdenv.mkDerivation rec {
-  version = "1.8.1";
+  version = "1.9.2";
   name = "librepo-${version}";
 
   src = fetchFromGitHub {
     owner  = "rpm-software-management";
     repo   = "librepo";
     rev    = version;
-    sha256 = "11rypnxjgsc2klyg294ndxy1cyp0nyk00zpjhcvqkhp58vvkkv12";
+    sha256 = "0xa9ng9mhpianhjy2a0jnj8ha1zckk2sz91y910daggm1qcv5asx";
   };
 
   nativeBuildInputs = [ cmake pkgconfig ];
 
   cmakeFlags="-DPYTHON_DESIRED=${stdenv.lib.substring 0 1 python.pythonVersion}";
 
-  buildInputs = [ python expat glib pcre openssl curl check attr gpgme ];
+  buildInputs = [ python libxml2 glib openssl curl check gpgme ];
 
   # librepo/fastestmirror.h includes curl/curl.h, and pkg-config specfile refers to others in here
-  propagatedBuildInputs = [ curl gpgme expat ];
+  propagatedBuildInputs = [ curl gpgme libxml2 ];
 
   meta = with stdenv.lib; {
     description = "Library providing C and Python (libcURL like) API for downloading linux repository metadata and packages";
diff --git a/pkgs/tools/package-management/morph/default.nix b/pkgs/tools/package-management/morph/default.nix
new file mode 100644
index 00000000000..27dbad88413
--- /dev/null
+++ b/pkgs/tools/package-management/morph/default.nix
@@ -0,0 +1,37 @@
+{ buildGoPackage, fetchFromGitHub, go-bindata, lib }:
+
+buildGoPackage rec {
+  name = "morph-${version}";
+  version = "1.1.0";
+
+  src = fetchFromGitHub {
+    owner = "dbcdk";
+    repo = "morph";
+    rev = "v${version}";
+    sha256 = "0pixm48is9if9d2b4qc5mwwa4lzma6snkib6z2a1d4pmdx1lmpmm";
+  };
+
+  goPackagePath = "github.com/dbcdk/morph";
+  goDeps = ./deps.nix;
+
+  buildInputs = [ go-bindata ];
+
+  prePatch = ''
+    go-bindata -pkg assets -o assets/assets.go data/
+  '';
+
+  postInstall = ''
+    mkdir -p $lib
+    cp -v $src/data/*.nix $lib
+  '';
+
+  outputs = [ "out" "bin" "lib" ];
+
+  meta = with lib; {
+    description = "Morph is a NixOS host manager written in Golang.";
+    license = licenses.mit;
+    homepage = "https://github.com/dbcdk/morph";
+    maintainers = with maintainers; [adamt johanot];
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/tools/package-management/morph/deps.nix b/pkgs/tools/package-management/morph/deps.nix
new file mode 100644
index 00000000000..fdae5ef39ee
--- /dev/null
+++ b/pkgs/tools/package-management/morph/deps.nix
@@ -0,0 +1,66 @@
+# file generated from Gopkg.lock using dep2nix (https://github.com/nixcloud/dep2nix)
+[
+  {
+    goPackagePath  = "github.com/dbcdk/kingpin";
+    fetch = {
+      type = "git";
+      url = "https://github.com/dbcdk/kingpin";
+      rev =  "8554767bc91254c59c7297a99e9867c770e4eadb";
+      sha256 = "05hfpgylv5mfnjz2mdd3jl8p3psmczvdbs4ydf9xvvc17c9mlrpq";
+    };
+  }
+  {
+    goPackagePath  = "github.com/alecthomas/template";
+    fetch = {
+      type = "git";
+      url = "https://github.com/alecthomas/template";
+      rev =  "a0175ee3bccc567396460bf5acd36800cb10c49c";
+      sha256 = "0qjgvvh26vk1cyfq9fadyhfgdj36f1iapbmr5xp6zqipldz8ffxj";
+    };
+  }
+  {
+    goPackagePath  = "github.com/alecthomas/units";
+    fetch = {
+      type = "git";
+      url = "https://github.com/alecthomas/units";
+      rev =  "2efee857e7cfd4f3d0138cc3cbb1b4966962b93a";
+      sha256 = "1j65b91qb9sbrml9cpabfrcf07wmgzzghrl7809hjjhrmbzri5bl";
+    };
+  }
+  {
+    goPackagePath  = "github.com/gobwas/glob";
+    fetch = {
+      type = "git";
+      url = "https://github.com/gobwas/glob";
+      rev =  "5ccd90ef52e1e632236f7326478d4faa74f99438";
+      sha256 = "0jxk1x806zn5x86342s72dq2qy64ksb3zrvrlgir2avjhwb18n6z";
+    };
+  }
+  {
+    goPackagePath  = "golang.org/x/crypto";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/crypto";
+      rev =  "0e37d006457bf46f9e6692014ba72ef82c33022c";
+      sha256 = "1fj8rvrhgv5j8pmckzphvm3sqkzhcqp3idkxvgv13qrjdfycsa5r";
+    };
+  }
+  {
+    goPackagePath  = "golang.org/x/sys";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/sys";
+      rev =  "ee1b12c67af419cf5a9be3bdbeea7fc1c5f32f11";
+      sha256 = "0cgp0xzbhg3fr77n2qrfmmsvhc287srnwi4mghwcjdxp6rx0s988";
+    };
+  }
+  {
+    goPackagePath  = "gopkg.in/mattes/go-expand-tilde.v1";
+    fetch = {
+      type = "git";
+      url = "https://github.com/mattes/go-expand-tilde";
+      rev =  "cb884138e64c9a8bf5c7d6106d74b0fca082df0c";
+      sha256 = "06xrp05njwam4sn031fkmd4gym5wfsw5q0v24nqhs4883lsx9dwq";
+    };
+  }
+]
diff --git a/pkgs/tools/package-management/nix-index/default.nix b/pkgs/tools/package-management/nix-index/default.nix
index d0a81140fc8..c20e3142104 100644
--- a/pkgs/tools/package-management/nix-index/default.nix
+++ b/pkgs/tools/package-management/nix-index/default.nix
@@ -17,6 +17,8 @@ rustPlatform.buildRustPackage rec {
   buildInputs = [ openssl curl ]
     ++ stdenv.lib.optional stdenv.isDarwin Security;
 
+  doCheck = !stdenv.isDarwin;
+
   postInstall = ''
     mkdir -p $out/etc/profile.d
     cp ./command-not-found.sh $out/etc/profile.d/command-not-found.sh
diff --git a/pkgs/tools/package-management/nixops/generic.nix b/pkgs/tools/package-management/nixops/generic.nix
index 31adac4436c..bc55f99aa81 100644
--- a/pkgs/tools/package-management/nixops/generic.nix
+++ b/pkgs/tools/package-management/nixops/generic.nix
@@ -26,6 +26,7 @@ python2Packages.buildPythonApplication {
       datadog
       digital-ocean
       libvirt
+      typing
     ];
 
   doCheck = false;
diff --git a/pkgs/tools/package-management/nixops/unstable.nix b/pkgs/tools/package-management/nixops/unstable.nix
index 88493d33dd1..b5487f5b11d 100644
--- a/pkgs/tools/package-management/nixops/unstable.nix
+++ b/pkgs/tools/package-management/nixops/unstable.nix
@@ -5,9 +5,9 @@
 # Then copy the URL to the tarball.
 
 callPackage ./generic.nix (rec {
-  version = "1.6.1pre2622_f10999a";
+  version = "1.6.1pre2706_d5ad09c";
   src = fetchurl {
-    url = "https://hydra.nixos.org/build/73716350/download/2/nixops-${version}.tar.bz2";
-    sha256 = "08886b6vxhjc3cp0ikxp920zap7wp6r92763fp785rvxrmb00rbd";
+    url = "https://hydra.nixos.org/build/84098258/download/2/nixops-${version}.tar.bz2";
+    sha256 = "0lr963a0bjrblv0d1nfl4d0p76jkq6l9xj3vxgzg38q0ld5qw345";
   };
 })
diff --git a/pkgs/tools/security/browserpass/default.nix b/pkgs/tools/security/browserpass/default.nix
index c7ed511753d..dd797fb9348 100644
--- a/pkgs/tools/security/browserpass/default.nix
+++ b/pkgs/tools/security/browserpass/default.nix
@@ -3,7 +3,7 @@
 
 buildGoPackage rec {
   name = "browserpass-${version}";
-  version = "2.0.18";
+  version = "2.0.22";
 
   goPackagePath = "github.com/dannyvankooten/browserpass";
 
@@ -13,7 +13,7 @@ buildGoPackage rec {
     repo = "browserpass";
     owner = "dannyvankooten";
     rev = version;
-    sha256 = "0wszjpxfa0krr2zdx7a33vl1r86k74dpy5c940r6ww1zbgqzcibg";
+    sha256 = "05cacrx08k99c5zra7ksdik9xxn3vih3x6in7536zs5gm55mkbfx";
   };
 
   postPatch = ''
diff --git a/pkgs/tools/security/duo-unix/default.nix b/pkgs/tools/security/duo-unix/default.nix
index a76e88772bc..6394eec1b63 100644
--- a/pkgs/tools/security/duo-unix/default.nix
+++ b/pkgs/tools/security/duo-unix/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   name = "duo-unix-${version}";
-  version = "1.10.5";
+  version = "1.11.0";
 
   src = fetchurl {
     url    = "https://dl.duosecurity.com/duo_unix-${version}.tar.gz";
-    sha256 = "1h88gwvbh8vwwga7d65iwa9qrmyx23wh5m0rmlv8qbx4fyj7q1f9";
+    sha256 = "1i3dx7nim7xwlrjzcs9aqfyp87fangxqvhhpr16vpqklkz2zwmw4";
   };
 
   buildInputs = [ pam openssl zlib ];
diff --git a/pkgs/tools/security/hashcat/default.nix b/pkgs/tools/security/hashcat/default.nix
index 9bac2d6c803..68866a8cad4 100644
--- a/pkgs/tools/security/hashcat/default.nix
+++ b/pkgs/tools/security/hashcat/default.nix
@@ -1,16 +1,17 @@
-{ stdenv, fetchurl, makeWrapper, opencl-headers, ocl-icd }:
+{ stdenv, fetchurl, makeWrapper, opencl-headers, ocl-icd, xxHash }:
 
 stdenv.mkDerivation rec {
   name    = "hashcat-${version}";
-  version = "4.2.1";
+  version = "5.0.0";
 
   src = fetchurl {
     url = "https://hashcat.net/files/hashcat-${version}.tar.gz";
-    sha256 = "082k5srjwkfvnvz0bfcg5r12m9c2qjyfhnp135mparkf831p7bbx";
+    sha256 = "13xh1lmzdppvx8wr8blqhdr8vpa24j099kz2xzb9pcnqy26dk4kh";
   };
+  patches = [ ./use-installed-xxhash.patch ];
 
   nativeBuildInputs = [ makeWrapper ];
-  buildInputs = [ opencl-headers ];
+  buildInputs = [ opencl-headers xxHash ];
 
   makeFlags = [
     "OPENCL_HEADERS_KHRONOS=${opencl-headers}/include"
diff --git a/pkgs/tools/security/hashcat/use-installed-xxhash.patch b/pkgs/tools/security/hashcat/use-installed-xxhash.patch
new file mode 100644
index 00000000000..d02303558eb
--- /dev/null
+++ b/pkgs/tools/security/hashcat/use-installed-xxhash.patch
@@ -0,0 +1,22 @@
+diff --git a/src/Makefile b/src/Makefile
+index 3a1cd680..576353fe 100644
+--- a/src/Makefile
++++ b/src/Makefile
+@@ -189,7 +189,7 @@ endif
+ # brain and xxHash
+ ifeq ($(ENABLE_BRAIN),1)
+ CFLAGS                  += -DWITH_BRAIN
+-CFLAGS                  += -Ideps/git/xxHash
++LFLAGS                  += -lxxhash
+ endif
+ 
+ ##
+@@ -313,7 +313,7 @@ WIN_32_OBJS             := $(foreach OBJ,$(OBJS_ALL),obj/$(OBJ).WIN.32.o)
+ WIN_64_OBJS             := $(foreach OBJ,$(OBJS_ALL),obj/$(OBJ).WIN.64.o)
+ 
+ ifeq ($(ENABLE_BRAIN),1)
+-OBJS_XXHASH             := xxhash
++OBJS_XXHASH             :=
+ 
+ NATIVE_STATIC_OBJS      += $(foreach OBJ,$(OBJS_XXHASH),obj/$(OBJ).NATIVE.STATIC.o)
+ NATIVE_SHARED_OBJS      += $(foreach OBJ,$(OBJS_XXHASH),obj/$(OBJ).NATIVE.SHARED.o)
diff --git a/pkgs/tools/security/kpcli/default.nix b/pkgs/tools/security/kpcli/default.nix
index 2a81b85482e..cb471d663ec 100644
--- a/pkgs/tools/security/kpcli/default.nix
+++ b/pkgs/tools/security/kpcli/default.nix
@@ -14,11 +14,11 @@ stdenv.mkDerivation rec {
   phases = [ "installPhase" "fixupPhase" ];
 
   installPhase = ''
-    mkdir -p $out/bin
-    cp ${src} $out/bin/kpcli
-    chmod +x $out/bin/kpcli
+    mkdir -p $out/{bin,share}
+    cp ${src} $out/share/kpcli.pl
+    chmod +x $out/share/kpcli.pl
 
-    wrapProgram $out/bin/kpcli --set PERL5LIB \
+    makeWrapper $out/share/kpcli.pl $out/bin/kpcli --set PERL5LIB \
       "${with perlPackages; stdenv.lib.makePerlPath ([
          CaptureTiny Clipboard Clone CryptRijndael SortNaturally TermReadKey TermShellUI FileKeePass TermReadLineGnu XMLParser
       ] ++ stdenv.lib.optional stdenv.isDarwin MacPasteboard)}"
diff --git a/pkgs/tools/security/nsjail/default.nix b/pkgs/tools/security/nsjail/default.nix
index 80398d2d30c..ae8a06e7b5c 100644
--- a/pkgs/tools/security/nsjail/default.nix
+++ b/pkgs/tools/security/nsjail/default.nix
@@ -3,14 +3,14 @@
 
 stdenv.mkDerivation rec {
   name = "nsjail-${version}";
-  version = "2.7";
+  version = "2.8";
 
   src = fetchFromGitHub {
     owner           = "google";
     repo            = "nsjail";
     rev             = version;
     fetchSubmodules = true;
-    sha256          = "13s1bi2b80rlwrgls1bx4bk140qhncwdamm9q51jd677s0i3xg3s";
+    sha256          = "0cgycj0cz74plmz4asxryqprg6mkzpmnxzqbfsp1wwackinxq5fq";
   };
 
   nativeBuildInputs = [ autoconf bison flex libtool pkgconfig which ];
diff --git a/pkgs/tools/security/shc/default.nix b/pkgs/tools/security/shc/default.nix
index 9c7b24be69c..c32addd8ffc 100644
--- a/pkgs/tools/security/shc/default.nix
+++ b/pkgs/tools/security/shc/default.nix
@@ -2,18 +2,18 @@
 
 stdenv.mkDerivation rec {
   name = "shc-${version}";
-  version = "3.9.6";
+  version = "4.0.0";
   rev = "${version}";
 
   src = fetchFromGitHub {
     inherit rev;
     owner = "neurobin";
     repo = "shc";
-    sha256 = "07l6m24ivjnvbglxkx9mvarpzc453qrlq5ybkyz7jdilh481aj33";
+    sha256 = "1ghvggrygvs1nxjbmq4pqskfr3mzjhcprql9qfkyhz6ii6si75v8";
   };
 
   meta = with stdenv.lib; {
-    homepage = http://neurobin.github.io/shc;
+    homepage = https://neurobin.org/projects/softwares/unix/shc/;
     description = "Shell Script Compiler";
     platforms = stdenv.lib.platforms.linux;
     license = licenses.gpl3;
diff --git a/pkgs/tools/security/wpscan/Gemfile b/pkgs/tools/security/wpscan/Gemfile
new file mode 100644
index 00000000000..f20afe0e654
--- /dev/null
+++ b/pkgs/tools/security/wpscan/Gemfile
@@ -0,0 +1,2 @@
+source 'https://rubygems.org'
+gem 'wpscan', '= 3.4.0'
diff --git a/pkgs/tools/security/wpscan/Gemfile.lock b/pkgs/tools/security/wpscan/Gemfile.lock
new file mode 100644
index 00000000000..47283ab6de8
--- /dev/null
+++ b/pkgs/tools/security/wpscan/Gemfile.lock
@@ -0,0 +1,55 @@
+GEM
+  remote: https://rubygems.org/
+  specs:
+    activesupport (5.2.1)
+      concurrent-ruby (~> 1.0, >= 1.0.2)
+      i18n (>= 0.7, < 2)
+      minitest (~> 5.1)
+      tzinfo (~> 1.1)
+    addressable (2.5.2)
+      public_suffix (>= 2.0.2, < 4.0)
+    cms_scanner (0.0.41.0)
+      activesupport (~> 5.2)
+      addressable (~> 2.5)
+      nokogiri (~> 1.8.0)
+      opt_parse_validator (~> 0.0.16.4)
+      public_suffix (~> 3.0.0)
+      ruby-progressbar (~> 1.10.0)
+      typhoeus (~> 1.3.0)
+      xmlrpc (~> 0.3)
+      yajl-ruby (~> 1.4.1)
+    concurrent-ruby (1.1.3)
+    ethon (0.11.0)
+      ffi (>= 1.3.0)
+    ffi (1.9.25)
+    i18n (1.1.1)
+      concurrent-ruby (~> 1.0)
+    mini_portile2 (2.3.0)
+    minitest (5.11.3)
+    nokogiri (1.8.5)
+      mini_portile2 (~> 2.3.0)
+    opt_parse_validator (0.0.16.4)
+      activesupport (~> 5.2.1)
+      addressable (~> 2.5.0)
+    public_suffix (3.0.3)
+    ruby-progressbar (1.10.0)
+    thread_safe (0.3.6)
+    typhoeus (1.3.1)
+      ethon (>= 0.9.0)
+    tzinfo (1.2.5)
+      thread_safe (~> 0.1)
+    wpscan (3.4.0)
+      activesupport (~> 5.2)
+      cms_scanner (~> 0.0.41.0)
+      yajl-ruby (~> 1.3)
+    xmlrpc (0.3.0)
+    yajl-ruby (1.4.1)
+
+PLATFORMS
+  ruby
+
+DEPENDENCIES
+  wpscan (= 3.4.0)
+
+BUNDLED WITH
+   1.16.3
diff --git a/pkgs/tools/security/wpscan/default.nix b/pkgs/tools/security/wpscan/default.nix
new file mode 100644
index 00000000000..9049318c249
--- /dev/null
+++ b/pkgs/tools/security/wpscan/default.nix
@@ -0,0 +1,21 @@
+{ bundlerApp, lib, makeWrapper, curl }:
+
+bundlerApp {
+  pname = "wpscan";
+  gemdir = ./.;
+  exes = [ "wpscan" ];
+
+  buildInputs = [ makeWrapper ];
+  postBuild = ''
+    wrapProgram "$out/bin/wpscan" \
+      --prefix PATH : ${lib.makeBinPath [ curl ]}
+  '';
+
+  meta = with lib; {
+    description = "Black box WordPress vulnerability scanner";
+    homepage    = https://wpscan.org/;
+    license     = licenses.unfreeRedistributable;
+    maintainers = [ maintainers.nyanloutre ];
+    platforms   = platforms.unix;
+  };
+}
diff --git a/pkgs/tools/security/wpscan/gemset.nix b/pkgs/tools/security/wpscan/gemset.nix
new file mode 100644
index 00000000000..5c27c726be6
--- /dev/null
+++ b/pkgs/tools/security/wpscan/gemset.nix
@@ -0,0 +1,164 @@
+{
+  activesupport = {
+    dependencies = ["concurrent-ruby" "i18n" "minitest" "tzinfo"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0ziy6xk31k4fs115cdkba1ys4i8nzcyri7a2jig7nx7k5h7li6l2";
+      type = "gem";
+    };
+    version = "5.2.1";
+  };
+  addressable = {
+    dependencies = ["public_suffix"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0viqszpkggqi8hq87pqp0xykhvz60g99nwmkwsb0v45kc2liwxvk";
+      type = "gem";
+    };
+    version = "2.5.2";
+  };
+  cms_scanner = {
+    dependencies = ["activesupport" "addressable" "nokogiri" "opt_parse_validator" "public_suffix" "ruby-progressbar" "typhoeus" "xmlrpc" "yajl-ruby"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1azsvgg070dng2jaz44zaqkvqyhf3pj131nqa7wdv3bsqp8y7kap";
+      type = "gem";
+    };
+    version = "0.0.41.0";
+  };
+  concurrent-ruby = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "18q9skp5pfq4jwbxzmw8q2rn4cpw6mf4561i2hsjcl1nxdag2jvb";
+      type = "gem";
+    };
+    version = "1.1.3";
+  };
+  ethon = {
+    dependencies = ["ffi"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0y70szwm2p0b9qfvpqrzjrgm3jz0ig65vlbfr6ppc3z0m1h7kv48";
+      type = "gem";
+    };
+    version = "0.11.0";
+  };
+  ffi = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0jpm2dis1j7zvvy3lg7axz9jml316zrn7s0j59vyq3qr127z0m7q";
+      type = "gem";
+    };
+    version = "1.9.25";
+  };
+  i18n = {
+    dependencies = ["concurrent-ruby"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1gcp1m1p6dpasycfz2sj82ci9ggz7lsskz9c9q6gvfwxrl8y9dx7";
+      type = "gem";
+    };
+    version = "1.1.1";
+  };
+  mini_portile2 = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "13d32jjadpjj6d2wdhkfpsmy68zjx90p49bgf8f7nkpz86r1fr11";
+      type = "gem";
+    };
+    version = "2.3.0";
+  };
+  minitest = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0icglrhghgwdlnzzp4jf76b0mbc71s80njn5afyfjn4wqji8mqbq";
+      type = "gem";
+    };
+    version = "5.11.3";
+  };
+  nokogiri = {
+    dependencies = ["mini_portile2"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0byyxrazkfm29ypcx5q4syrv126nvjnf7z6bqi01sqkv4llsi4qz";
+      type = "gem";
+    };
+    version = "1.8.5";
+  };
+  opt_parse_validator = {
+    dependencies = ["activesupport" "addressable"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1m3flpg1d7la1frip3vn0hgm6d91f0ys1jq2bhxr5va1vjbfvgbs";
+      type = "gem";
+    };
+    version = "0.0.16.4";
+  };
+  public_suffix = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "08q64b5br692dd3v0a9wq9q5dvycc6kmiqmjbdxkxbfizggsvx6l";
+      type = "gem";
+    };
+    version = "3.0.3";
+  };
+  ruby-progressbar = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1cv2ym3rl09svw8940ny67bav7b2db4ms39i4raaqzkf59jmhglk";
+      type = "gem";
+    };
+    version = "1.10.0";
+  };
+  thread_safe = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0nmhcgq6cgz44srylra07bmaw99f5271l0dpsvl5f75m44l0gmwy";
+      type = "gem";
+    };
+    version = "0.3.6";
+  };
+  typhoeus = {
+    dependencies = ["ethon"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0cni8b1idcp0dk8kybmxydadhfpaj3lbs99w5kjibv8bsmip2zi5";
+      type = "gem";
+    };
+    version = "1.3.1";
+  };
+  tzinfo = {
+    dependencies = ["thread_safe"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1fjx9j327xpkkdlxwmkl3a8wqj7i4l4jwlrv3z13mg95z9wl253z";
+      type = "gem";
+    };
+    version = "1.2.5";
+  };
+  wpscan = {
+    dependencies = ["activesupport" "cms_scanner" "yajl-ruby"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "17mqqaiawp3apdfw4l6r2wp0a4f0rp8wdqd2426xkna7vsxgh8gs";
+      type = "gem";
+    };
+    version = "3.4.0";
+  };
+  xmlrpc = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1s744iwblw262gj357pky3d9fcx9hisvla7rnw29ysn5zsb6i683";
+      type = "gem";
+    };
+    version = "0.3.0";
+  };
+  yajl-ruby = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "16v0w5749qjp13xhjgr2gcsvjv6mf35br7iqwycix1n2h7kfcckf";
+      type = "gem";
+    };
+    version = "1.4.1";
+  };
+}
\ No newline at end of file
diff --git a/pkgs/tools/system/collectd/default.nix b/pkgs/tools/system/collectd/default.nix
index 39f6f17debf..8b99f1c7ca9 100644
--- a/pkgs/tools/system/collectd/default.nix
+++ b/pkgs/tools/system/collectd/default.nix
@@ -38,12 +38,12 @@
 , mongoc ? null
 }:
 stdenv.mkDerivation rec {
-  version = "5.8.0";
+  version = "5.8.1";
   name = "collectd-${version}";
 
   src = fetchurl {
     url = "https://collectd.org/files/${name}.tar.bz2";
-    sha256 = "1j8mxgfq8039js2bscphd6cnriy35hk4jrxfjz5k6mghpdvg8vxh";
+    sha256 = "1njk8hh56gb755xafsh7ahmqr9k2d4lam4ddj7s7fqz0gjigv5p7";
   };
 
   # on 5.8.0: lvm2app.h:21:2: error: #warning "liblvm2app is deprecated, use D-Bus API instead." [-Werror=cpp]
@@ -65,13 +65,6 @@ stdenv.mkDerivation rec {
     darwin.apple_sdk.frameworks.ApplicationServices
   ];
 
-  # Patch fixes broken build on 18.03
-  # Should be included in the next release of this package
-  patches = fetchpatch {
-    name = "collectd_kafka_fix";
-    url = "https://github.com/collectd/collectd/commit/6c2eb3ad28f08f7e774b6eaea5ae01b0857cf884.patch";
-    sha256 = "14wsyj5xghij9lz7c61bzdyh45zg8pv5xn490cvbqiaci948zzv6";
-  };
   configureFlags = [ "--localstatedir=/var" ];
 
   # do not create directories in /var during installPhase
diff --git a/pkgs/tools/system/datefudge/default.nix b/pkgs/tools/system/datefudge/default.nix
index 2c2d778697a..ca389a8e1b4 100644
--- a/pkgs/tools/system/datefudge/default.nix
+++ b/pkgs/tools/system/datefudge/default.nix
@@ -6,9 +6,9 @@ stdenv.mkDerivation rec {
   name = "${pname}-${version}";
 
   src = fetchgit {
-    sha256 = "1fmd05r00wx4zc90lbi804jl7xwdl11jq2a1kp5lqimk3yyvfw4c";
-    url = "git://anonscm.debian.org/users/robert/datefudge.git";
+    url = "https://salsa.debian.org/debian/datefudge.git";
     rev = "fe27db47a0f250fb56164114fff8ae8d5af47ab6";
+    sha256 = "1fmd05r00wx4zc90lbi804jl7xwdl11jq2a1kp5lqimk3yyvfw4c";
   };
 
   patchPhase = ''
diff --git a/pkgs/tools/system/hwinfo/default.nix b/pkgs/tools/system/hwinfo/default.nix
index 4b2ad1f7ef9..06f326a970a 100644
--- a/pkgs/tools/system/hwinfo/default.nix
+++ b/pkgs/tools/system/hwinfo/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   name = "hwinfo-${version}";
-  version = "21.60";
+  version = "21.62";
 
   src = fetchFromGitHub {
     owner = "opensuse";
     repo = "hwinfo";
     rev = "${version}";
-    sha256 = "1agjc14m1814x897wkx484qb8llr395xlzn428f86sxgshicwfy3";
+    sha256 = "1mhvpvjdalxhvjkf8vhph414qfp14kwz24jk0mx2y4nijk958n0f";
   };
 
   patchPhase = ''
diff --git a/pkgs/tools/system/netdata/default.nix b/pkgs/tools/system/netdata/default.nix
index 6f86647f4c7..97a250f79d8 100644
--- a/pkgs/tools/system/netdata/default.nix
+++ b/pkgs/tools/system/netdata/default.nix
@@ -1,39 +1,42 @@
-{ stdenv, fetchFromGitHub, autoreconfHook, zlib, pkgconfig, libuuid }:
+{ stdenv, fetchurl, autoreconfHook, pkgconfig, zlib, libuuid, libossp_uuid, CoreFoundation, IOKit }:
 
 stdenv.mkDerivation rec{
-  version = "1.10.0";
+  version = "1.11.0";
   name = "netdata-${version}";
 
-  src = fetchFromGitHub {
-    rev = "v${version}";
-    owner = "firehol";
-    repo = "netdata";
-    sha256 = "02spfisabjkkgd9fairldlf84n83vbv2xafg0g5jrpfa972pjl9r";
+  src = fetchurl {
+    url = "https://github.com/netdata/netdata/releases/download/v${version}/netdata-v${version}.tar.gz";
+    sha256 = "17b14w34jif6bviw3s81imbazkvvafwxff7d5zjy6wicq88q8b64";
   };
 
   nativeBuildInputs = [ autoreconfHook pkgconfig ];
-  buildInputs = [ zlib libuuid ];
+  buildInputs = [ zlib ]
+    ++ (if stdenv.isDarwin then [ libossp_uuid CoreFoundation IOKit ] else [ libuuid ]);
 
-  # Build will fail trying to create /var/{cache,lib,log}/netdata without this
-  postPatch = ''
-   sed -i '/dist_.*_DATA = \.keep/d' src/Makefile.am
+  patches = [
+    ./no-files-in-etc-and-var.patch
+  ];
+
+  postInstall = stdenv.lib.optionalString (!stdenv.isDarwin) ''
+    # rename this plugin so netdata will look for setuid wrapper
+    mv $out/libexec/netdata/plugins.d/apps.plugin \
+      $out/libexec/netdata/plugins.d/apps.plugin.org
   '';
 
   configureFlags = [
     "--localstatedir=/var"
+    "--sysconfdir=/etc"
   ];
 
-  # App fails on runtime if the default config file is not detected
-  # The upstream installer does prepare an empty file too
-  postInstall = ''
-    touch $out/etc/netdata/netdata.conf
+  postFixup = ''
+    rm -r $out/sbin
   '';
 
   meta = with stdenv.lib; {
     description = "Real-time performance monitoring tool";
-    homepage = http://netdata.firehol.org;
+    homepage = https://my-netdata.io/;
     license = licenses.gpl3;
-    platforms = platforms.linux;
+    platforms = platforms.unix;
     maintainers = [ maintainers.lethalman ];
   };
 
diff --git a/pkgs/tools/system/netdata/no-files-in-etc-and-var.patch b/pkgs/tools/system/netdata/no-files-in-etc-and-var.patch
new file mode 100644
index 00000000000..bf9b6c19e7c
--- /dev/null
+++ b/pkgs/tools/system/netdata/no-files-in-etc-and-var.patch
@@ -0,0 +1,86 @@
+diff -ruN orig/Makefile.am new/Makefile.am
+--- orig/Makefile.am	2018-11-02 08:56:21.000000000 -0500
++++ new/Makefile.am	2018-11-16 10:30:22.000000000 -0500
+@@ -99,10 +99,10 @@
+ 	$(NULL)
+ 
+ sbin_PROGRAMS =
+-dist_cache_DATA = installer/.keep
+-dist_varlib_DATA = installer/.keep
+-dist_registry_DATA = installer/.keep
+-dist_log_DATA = installer/.keep
++dist_cache_DATA =
++dist_varlib_DATA =
++dist_registry_DATA =
++dist_log_DATA =
+ plugins_PROGRAMS =
+ 
+ LIBNETDATA_FILES = \
+diff -ruN orig/collectors/charts.d.plugin/Makefile.am new/collectors/charts.d.plugin/Makefile.am
+--- orig/collectors/charts.d.plugin/Makefile.am	2018-11-02 08:56:21.000000000 -0500
++++ new/collectors/charts.d.plugin/Makefile.am	2018-11-16 11:16:47.000000000 -0500
+@@ -32,7 +32,6 @@
+ 
+ userchartsconfigdir=$(configdir)/charts.d
+ dist_userchartsconfig_DATA = \
+-    $(top_srcdir)/installer/.keep \
+     $(NULL)
+ 
+ chartsconfigdir=$(libconfigdir)/charts.d
+diff -ruN orig/collectors/node.d.plugin/Makefile.am new/collectors/node.d.plugin/Makefile.am
+--- orig/collectors/node.d.plugin/Makefile.am	2018-11-02 08:56:21.000000000 -0500
++++ new/collectors/node.d.plugin/Makefile.am	2018-11-16 11:16:42.000000000 -0500
+@@ -23,7 +23,6 @@
+ 
+ usernodeconfigdir=$(configdir)/node.d
+ dist_usernodeconfig_DATA = \
+-    $(top_srcdir)/installer/.keep \
+     $(NULL)
+ 
+ nodeconfigdir=$(libconfigdir)/node.d
+diff -ruN orig/collectors/python.d.plugin/Makefile.am new/collectors/python.d.plugin/Makefile.am
+--- orig/collectors/python.d.plugin/Makefile.am	2018-11-02 08:56:21.000000000 -0500
++++ new/collectors/python.d.plugin/Makefile.am	2018-11-16 10:56:06.000000000 -0500
+@@ -29,7 +29,6 @@
+ 
+ userpythonconfigdir=$(configdir)/python.d
+ dist_userpythonconfig_DATA = \
+-    $(top_srcdir)/installer/.keep \
+     $(NULL)
+ 
+ pythonconfigdir=$(libconfigdir)/python.d
+diff -ruN orig/collectors/statsd.plugin/Makefile.am new/collectors/statsd.plugin/Makefile.am
+--- orig/collectors/statsd.plugin/Makefile.am	2018-11-02 08:56:21.000000000 -0500
++++ new/collectors/statsd.plugin/Makefile.am	2018-11-16 10:53:04.000000000 -0500
+@@ -15,6 +15,5 @@
+ 
+ userstatsdconfigdir=$(configdir)/statsd.d
+ dist_userstatsdconfig_DATA = \
+-    $(top_srcdir)/installer/.keep \
+     $(NULL)
+ 
+diff -ruN orig/health/Makefile.am new/health/Makefile.am
+--- orig/health/Makefile.am	2018-11-02 08:56:21.000000000 -0500
++++ new/health/Makefile.am	2018-11-16 10:56:30.000000000 -0500
+@@ -16,7 +16,6 @@
+ 
+ userhealthconfigdir=$(configdir)/health.d
+ dist_userhealthconfig_DATA = \
+-    $(top_srcdir)/installer/.keep \
+     $(NULL)
+ 
+ healthconfigdir=$(libconfigdir)/health.d
+diff -ruN orig/system/Makefile.am new/system/Makefile.am
+--- orig/system/Makefile.am	2018-11-02 08:56:21.000000000 -0500
++++ new/system/Makefile.am	2018-11-16 10:29:21.000000000 -0500
+@@ -17,10 +17,6 @@
+ include $(top_srcdir)/build/subst.inc
+ SUFFIXES = .in
+ 
+-dist_config_SCRIPTS = \
+-    edit-config \
+-    $(NULL)
+-
+ nodist_noinst_DATA = \
+ 	netdata-openrc \
+ 	netdata.logrotate \
diff --git a/pkgs/tools/system/sleuthkit/default.nix b/pkgs/tools/system/sleuthkit/default.nix
index 23696651a63..a7d749204b7 100644
--- a/pkgs/tools/system/sleuthkit/default.nix
+++ b/pkgs/tools/system/sleuthkit/default.nix
@@ -1,14 +1,14 @@
 { stdenv, fetchFromGitHub, autoreconfHook, libewf, afflib, openssl, zlib }:
 
 stdenv.mkDerivation rec {
-  version = "4.6.3";
+  version = "4.6.4";
   name = "sleuthkit-${version}";
 
   src = fetchFromGitHub {
     owner = "sleuthkit";
     repo = "sleuthkit";
     rev = name;
-    sha256 = "1qaggb8day6idbafncslyaz7a475sq6p0xnjwc4c99f0z7i9cahp";
+    sha256 = "0c6cglc4877pw6069ph72s3rv6747ps4vzhs6l2qxxncsrdlbzv0";
   };
 
   postPatch = ''
diff --git a/pkgs/tools/system/stress-ng/default.nix b/pkgs/tools/system/stress-ng/default.nix
index 22080db908c..57f2d60ddf5 100644
--- a/pkgs/tools/system/stress-ng/default.nix
+++ b/pkgs/tools/system/stress-ng/default.nix
@@ -1,15 +1,21 @@
-{ stdenv, fetchurl, attr, keyutils }:
+{ stdenv, fetchurl
+, attr, keyutils, libaio, libapparmor, libbsd, libcap, libgcrypt, lksctp-tools, zlib
+}:
 
 stdenv.mkDerivation rec {
   name = "stress-ng-${version}";
-  version = "0.06.14";
+  version = "0.09.46";
 
   src = fetchurl {
-    sha256 = "06kycxfwkdrm2vs9xk8cb6c1mki29ymrrqwwxxqx4icnwvq135hv";
-    url = "http://kernel.ubuntu.com/~cking/tarballs/stress-ng/${name}.tar.gz";
+    url = "http://kernel.ubuntu.com/~cking/tarballs/stress-ng/${name}.tar.xz";
+    sha256 = "0m1f46vqixx2mgqdrjwkl8w9did7n99sy96rbcgkkn9g99y59qjm";
   };
 
-  buildInputs = [ attr keyutils ];
+  # All platforms inputs then Linux-only ones
+  buildInputs = [ libbsd libgcrypt zlib ]
+    ++ stdenv.lib.optionals stdenv.hostPlatform.isLinux [
+      attr keyutils libaio libapparmor libcap lksctp-tools
+    ];
 
   patchPhase = ''
     substituteInPlace Makefile --replace "/usr" ""
@@ -36,9 +42,10 @@ stdenv.mkDerivation rec {
       hardware issues such as thermal overruns as well as operating system
       bugs that only occur when a system is being thrashed hard.
     '';
-    homepage = http://kernel.ubuntu.com/~cking/stress-ng;
+    homepage = http://kernel.ubuntu.com/~cking/stress-ng/;
     downloadPage = http://kernel.ubuntu.com/~cking/tarballs/stress-ng/;
     license = licenses.gpl2Plus;
-    platforms = platforms.linux;
+    maintainers = with maintainers; [ c0bw3b ];
+    platforms = platforms.linux; # TODO: fix https://github.com/NixOS/nixpkgs/pull/50506#issuecomment-439635963
   };
 }
diff --git a/pkgs/tools/system/tree/default.nix b/pkgs/tools/system/tree/default.nix
index e34bd5f8e13..d798c98679c 100644
--- a/pkgs/tools/system/tree/default.nix
+++ b/pkgs/tools/system/tree/default.nix
@@ -1,7 +1,7 @@
 { stdenv, fetchurl }:
 
 let
-  version = "1.7.0";
+  version = "1.8.0";
 
   # These settings are found in the Makefile, but there seems to be no
   # way to select one ore the other setting other than editing the file
@@ -28,7 +28,7 @@ stdenv.mkDerivation {
 
   src = fetchurl {
     url = "http://mama.indstate.edu/users/ice/tree/src/tree-${version}.tgz";
-    sha256 = "04kviw799qxly08zb8n5mgxfd96gyis6x69q2qiw86jnh87c4mv9";
+    sha256 = "1hmpz6k0mr6salv0nprvm1g0rdjva1kx03bdf1scw8a38d5mspbi";
   };
 
   configurePhase = ''
diff --git a/pkgs/tools/text/glogg/default.nix b/pkgs/tools/text/glogg/default.nix
new file mode 100644
index 00000000000..d61a7d184ea
--- /dev/null
+++ b/pkgs/tools/text/glogg/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchurl, qmake, boost }:
+
+stdenv.mkDerivation rec {
+
+  name = "glogg-${version}";
+  version = "1.1.4";
+
+  src = fetchurl {
+    url = "https://glogg.bonnefon.org/files/${name}.tar.gz";
+    sha256 = "0nwnfk9bcz2k7rf08w2cb6qipzdhwmxznik44jxmn9gwxdrdq78c";
+  };
+
+  nativeBuildInputs = [ qmake ];
+  buildInputs = [ boost ];
+
+  qmakeFlags = [ "glogg.pro" ];
+  enableParallelBuilding = true;
+
+  meta = with stdenv.lib; {
+    description = "The fast, smart log explorer";
+    longDescription = ''
+      A multi-platform GUI application to browse and search through long or complex log files. It is designed with programmers and system administrators in mind. glogg can be seen as a graphical, interactive combination of grep and less.
+    '';
+    homepage = https://glogg.bonnefon.org/;
+    license = licenses.gpl3Plus;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ c0bw3b ];
+  };
+}
diff --git a/pkgs/tools/text/xsv/default.nix b/pkgs/tools/text/xsv/default.nix
index 960449cd022..79954b15a82 100644
--- a/pkgs/tools/text/xsv/default.nix
+++ b/pkgs/tools/text/xsv/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, rustPlatform }:
+{ stdenv, fetchFromGitHub, rustPlatform, Security }:
 
 rustPlatform.buildRustPackage rec {
   name = "xsv-${version}";
@@ -13,6 +13,8 @@ rustPlatform.buildRustPackage rec {
 
   cargoSha256 = "1qk5wkjm3d4dz5fldlq7rjlm602v0l04hxrbar2j6vhcz9w2r4n6";
 
+  buildInputs = stdenv.lib.optional stdenv.isDarwin Security;
+
   meta = with stdenv.lib; {
     description = "A fast CSV toolkit written in Rust";
     homepage = https://github.com/BurntSushi/xsv;
diff --git a/pkgs/tools/typesetting/git-latexdiff/default.nix b/pkgs/tools/typesetting/git-latexdiff/default.nix
index 61c05666726..a255779c08a 100644
--- a/pkgs/tools/typesetting/git-latexdiff/default.nix
+++ b/pkgs/tools/typesetting/git-latexdiff/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchFromGitLab, git, bash }:
 
 stdenv.mkDerivation rec {
-  version = "1.1.2";
+  version = "1.3.0";
   name = "git-latexdiff-${version}";
 
   src = fetchFromGitLab {
-    sha256 = "1alnrjcf3f1qv7fk8h9yachmdz7mjgcynlgsvchfgcb2cpdavxjg";
+    sha256 = "05fnhr1pqvj8l25vi9hdccwfk4mv2f0pfhn05whbdvf66gyl4fs9";
     rev = "v${version}";
     repo = "git-latexdiff";
     owner = "git-latexdiff";
@@ -15,11 +15,12 @@ stdenv.mkDerivation rec {
 
   dontBuild = true;
 
-  patches = [ ./shebang.patch ./version-test.patch ];
+  patches = [ ./version-test.patch ];
 
   postPatch = ''
     substituteInPlace git-latexdiff \
       --replace "@GIT_LATEXDIFF_VERSION@" "v${version}"
+    patchShebangs git-latexdiff
   '';
 
   installPhase = ''
@@ -30,8 +31,9 @@ stdenv.mkDerivation rec {
 
   meta = with stdenv.lib; {
     description = "View diff on LaTeX source files on the generated PDF files";
+    homepage = https://gitlab.com/git-latexdiff/git-latexdiff;
     maintainers = [ ];
-    license = licenses.free; # https://gitlab.com/git-latexdiff/git-latexdiff/issues/9
+    license = licenses.bsd3; # https://gitlab.com/git-latexdiff/git-latexdiff/issues/9
     platforms = platforms.unix;
   };
 }
diff --git a/pkgs/tools/typesetting/git-latexdiff/shebang.patch b/pkgs/tools/typesetting/git-latexdiff/shebang.patch
deleted file mode 100644
index 1d6d27c6e31..00000000000
--- a/pkgs/tools/typesetting/git-latexdiff/shebang.patch
+++ /dev/null
@@ -1,10 +0,0 @@
-Fix for https://gitlab.com/git-latexdiff/git-latexdiff/issues/8
----
---- src/git-latexdiff	2016-01-26 14:04:54.338568955 +0100
-+++ src/git-latexdiff	2016-01-26 14:40:23.700381943 +0100
-@@ -1,4 +1,4 @@
--#! /bin/bash
-+#!/usr/bin/env bash
- 
- # Main author: Matthieu Moy <Matthieu.Moy@imag.fr> (2012 - 2015)
- # (See the Git history for other contributors)
diff --git a/pkgs/tools/typesetting/git-latexdiff/version-test.patch b/pkgs/tools/typesetting/git-latexdiff/version-test.patch
index e116bbd2c24..243bd90f900 100644
--- a/pkgs/tools/typesetting/git-latexdiff/version-test.patch
+++ b/pkgs/tools/typesetting/git-latexdiff/version-test.patch
@@ -4,14 +4,14 @@ Fix for https://gitlab.com/git-latexdiff/git-latexdiff/issues/7
 +++ src/git-latexdiff	2016-01-26 14:40:23.700381943 +0100
 @@ -44,11 +44,7 @@
  git_latexdiff_version='@GIT_LATEXDIFF_VERSION@'
- 
+
  git_latexdiff_compute_version () {
--    if [ "$git_latexdiff_version" = '@GIT_LATEXDIFF_VERSION@' ]; then
+-    if [ "$git_latexdiff_version" = '@GIT_LATEXDIFF''_VERSION@' ]; then
 -	(cd "$(dirname "$0")" && git describe --tags HEAD 2>/dev/null || echo 'Unknown version')
 -    else
 -	echo "$git_latexdiff_version"
 -    fi
 +    echo "$git_latexdiff_version"
  }
- 
+
  usage () {
diff --git a/pkgs/tools/typesetting/scdoc/default.nix b/pkgs/tools/typesetting/scdoc/default.nix
index a5bf2d261e1..1ff804f0d4a 100644
--- a/pkgs/tools/typesetting/scdoc/default.nix
+++ b/pkgs/tools/typesetting/scdoc/default.nix
@@ -2,15 +2,13 @@
 
 stdenv.mkDerivation rec {
   name = "scdoc-${version}";
-  version = "1.5.2";
+  version = "1.6.0";
 
   src = fetchurl {
     url = "https://git.sr.ht/~sircmpwn/scdoc/archive/${version}.tar.gz";
-    sha256 = "0a9sxifzsbj24kjnpc0525i91ni2vkwizhgvwx1m9shvfkiisnc6";
+    sha256 = "1ca3js4arkg28gg2iszxxyrq7kgsrz482d1szv5dfd471h3vr5m3";
   };
 
-  patches = [ ./use-source-date-epoch.patch ];
-
   postPatch = ''
     substituteInPlace Makefile \
       --replace "-static" "" \
diff --git a/pkgs/tools/typesetting/scdoc/use-source-date-epoch.patch b/pkgs/tools/typesetting/scdoc/use-source-date-epoch.patch
deleted file mode 100644
index 5a2496d6358..00000000000
--- a/pkgs/tools/typesetting/scdoc/use-source-date-epoch.patch
+++ /dev/null
@@ -1,75 +0,0 @@
-diff --git a/src/main.c b/src/main.c
-index 14b08d2..e2cc33e 100644
---- a/src/main.c
-+++ b/src/main.c
-@@ -3,6 +3,7 @@
- #include <stdbool.h>
- #include <stdio.h>
- #include <stdlib.h>
-+#define __USE_XOPEN
- #include <time.h>
- #include <unistd.h>
- #include "string.h"
-@@ -66,10 +67,17 @@ static void parse_preamble(struct parser *p) {
- 	int section = -1;
- 	uint32_t ch;
- 	char date[256];
--	time_t now;
--	time(&now);
--	struct tm *now_tm = localtime(&now);
--	strftime(date, sizeof(date), "%F", now_tm);
-+	char *source_date_epoch = getenv("SOURCE_DATE_EPOCH");
-+	if (source_date_epoch != NULL) {
-+		struct tm source_date_epoch_tm;
-+		strptime(source_date_epoch, "%s", &source_date_epoch_tm);
-+		strftime(date, sizeof(date), "%F", &source_date_epoch_tm);
-+	} else {
-+		time_t now;
-+		time(&now);
-+		struct tm *now_tm = localtime(&now);
-+		strftime(date, sizeof(date), "%F", now_tm);
-+	}
- 	while ((ch = parser_getch(p)) != UTF8_INVALID) {
- 		if ((ch < 0x80 && isalnum(ch)) || ch == '_' || ch == '-' || ch == '.') {
- 			assert(str_append_ch(name, ch) != -1);
-diff --git a/test/preamble b/test/preamble
-index 03e2d0c..eeb734b 100755
---- a/test/preamble
-+++ b/test/preamble
-@@ -38,31 +38,31 @@ EOF
- end 0
- 
- begin "Writes the appropriate header"
--scdoc <<EOF | grep '^\.TH "test" "8" "'"$(date +'%F')"'"' >/dev/null
-+scdoc <<EOF | grep '^\.TH "test" "8" "'"$(date +'%F' --date=@${SOURCE_DATE_EPOCH:-$(date +'%s')})"'"' >/dev/null
- test(8)
- EOF
- end 0
- 
- begin "Preserves dashes"
--scdoc <<EOF | grep '^\.TH "test-manual" "8" "'"$(date +'%F')"'"' >/dev/null
-+scdoc <<EOF | grep '^\.TH "test-manual" "8" "'"$(date +'%F' --date=@${SOURCE_DATE_EPOCH:-$(date +'%s')})"'"' >/dev/null
- test-manual(8)
- EOF
- end 0
- 
- begin "Handles extra footer field"
--scdoc <<EOF | grep '^\.TH "test-manual" "8" "'"$(date +'%F')"'" "Footer"' >/dev/null
-+scdoc <<EOF | grep '^\.TH "test-manual" "8" "'"$(date +'%F' --date=@${SOURCE_DATE_EPOCH:-$(date +'%s')})"'" "Footer"' >/dev/null
- test-manual(8) "Footer"
- EOF
- end 0
- 
- begin "Handles both extra fields"
--scdoc <<EOF | grep '^\.TH "test-manual" "8" "'"$(date +'%F')"'" "Footer" "Header"' >/dev/null
-+scdoc <<EOF | grep '^\.TH "test-manual" "8" "'"$(date +'%F' --date=@${SOURCE_DATE_EPOCH:-$(date +'%s')})"'" "Footer" "Header"' >/dev/null
- test-manual(8) "Footer" "Header"
- EOF
- end 0
- 
- begin "Emits empty footer correctly"
--scdoc <<EOF | grep '^\.TH "test-manual" "8" "'"$(date +'%F')"'" "" "Header"' >/dev/null
-+scdoc <<EOF | grep '^\.TH "test-manual" "8" "'"$(date +'%F' --date=@${SOURCE_DATE_EPOCH:-$(date +'%s')})"'" "" "Header"' >/dev/null
- test-manual(8) "" "Header"
- EOF
- end 0
diff --git a/pkgs/tools/virtualization/google-compute-engine/default.nix b/pkgs/tools/virtualization/google-compute-engine/default.nix
index 5ddf15e09fa..919c14d86ec 100644
--- a/pkgs/tools/virtualization/google-compute-engine/default.nix
+++ b/pkgs/tools/virtualization/google-compute-engine/default.nix
@@ -11,14 +11,14 @@
 
 buildPythonApplication rec {
   name = "google-compute-engine-${version}";
-  version = "20181011";
+  version = "20181023";
   namePrefix = "";
 
   src = fetchFromGitHub {
     owner = "GoogleCloudPlatform";
     repo = "compute-image-packages";
     rev = version;
-    sha256 = "1b3wyr412qh113xvs671dqnacidil61gisfvg79wbq6wrdwswkp8";
+    sha256 = "0bhh62f4kx4d7k673fvyzgr9h771lzk7dxhq3ld7zzcz0pmxlx3a";
   };
 
   postPatch = ''
diff --git a/pkgs/tools/virtualization/mininet/default.nix b/pkgs/tools/virtualization/mininet/default.nix
new file mode 100644
index 00000000000..a2f4b165087
--- /dev/null
+++ b/pkgs/tools/virtualization/mininet/default.nix
@@ -0,0 +1,48 @@
+{ stdenv, lib, fetchFromGitHub
+, which
+, python
+, help2man
+}:
+
+let
+  pyEnv = python.withPackages(ps: [ ps.setuptools ]);
+in
+stdenv.mkDerivation rec {
+  name = "mininet-${version}";
+  version = "2.3.0d4";
+
+  outputs = [ "out" "py" ];
+
+  src = fetchFromGitHub {
+    owner = "mininet";
+    repo = "mininet";
+    rev = version;
+    sha256 = "02hsqa7r5ykj8m1ycl32xwn1agjrw78wkq87xif0dl2vkzln41i4";
+  };
+
+  buildFlags = [ "mnexec" ];
+  makeFlags = [ "PREFIX=$(out)" ];
+
+  pythonPath = [ python.pkgs.setuptools ];
+  buildInputs = [ python which help2man ];
+
+  installTargets = [ "install-mnexec" "install-manpages" ];
+
+  preInstall = ''
+    mkdir -p $out $py
+    # without --root, install fails
+    ${pyEnv.interpreter} setup.py install --root="/" --prefix=$py
+  '';
+
+  doCheck = false;
+
+
+  meta = with lib; {
+    description = "Emulator for rapid prototyping of Software Defined Networks";
+    license = {
+      fullName = "Mininet 2.3.0d4 License";
+    };
+    homepage = https://github.com/mininet/mininet;
+    maintainers = with maintainers; [ teto ];
+  };
+}