about 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/xzoom/default.nix12
-rw-r--r--pkgs/tools/archivers/snzip/default.nix31
-rw-r--r--pkgs/tools/backup/bup/default.nix4
-rw-r--r--pkgs/tools/filesystems/mtdutils/default.nix24
-rw-r--r--pkgs/tools/graphics/gmic/default.nix4
-rw-r--r--pkgs/tools/misc/birdfont/default.nix4
-rw-r--r--pkgs/tools/misc/clipman/default.nix6
-rw-r--r--pkgs/tools/misc/diffoscope/default.nix4
-rw-r--r--pkgs/tools/misc/ethtool/default.nix4
-rw-r--r--pkgs/tools/misc/hdf5/default.nix5
-rw-r--r--pkgs/tools/misc/latex2html/default.nix15
-rw-r--r--pkgs/tools/misc/phoronix-test-suite/default.nix4
-rw-r--r--pkgs/tools/misc/system-config-printer/default.nix49
-rw-r--r--pkgs/tools/networking/dnsmasq/default.nix11
-rw-r--r--pkgs/tools/networking/ipv6calc/default.nix31
-rw-r--r--pkgs/tools/networking/network-manager/default.nix13
-rw-r--r--pkgs/tools/networking/network-manager/fix-paths.patch26
-rw-r--r--pkgs/tools/networking/nss-pam-ldapd/default.nix4
-rw-r--r--pkgs/tools/networking/offlineimap/default.nix8
-rw-r--r--pkgs/tools/networking/openapi-generator-cli/default.nix4
-rw-r--r--pkgs/tools/networking/tcpdump/default.nix15
-rw-r--r--pkgs/tools/networking/tridactyl-native/default.nix4
-rw-r--r--pkgs/tools/networking/unbound/default.nix11
-rw-r--r--pkgs/tools/networking/wireguard-tools/default.nix6
-rw-r--r--pkgs/tools/package-management/nix/default.nix10
-rw-r--r--pkgs/tools/package-management/reuse/default.nix1
-rw-r--r--pkgs/tools/security/bitwarden/default.nix4
-rw-r--r--pkgs/tools/security/bitwarden_rs/vault.nix4
-rw-r--r--pkgs/tools/security/monkeysphere/default.nix2
-rw-r--r--pkgs/tools/system/acpica-tools/default.nix4
-rw-r--r--pkgs/tools/system/collectd/default.nix63
-rw-r--r--pkgs/tools/system/collectd/plugins.nix347
-rw-r--r--pkgs/tools/system/facter/default.nix19
-rw-r--r--pkgs/tools/text/fanficfare/default.nix4
-rw-r--r--pkgs/tools/text/tab/default.nix36
-rw-r--r--pkgs/tools/text/xml/html-xml-utils/default.nix4
36 files changed, 601 insertions, 196 deletions
diff --git a/pkgs/tools/X11/xzoom/default.nix b/pkgs/tools/X11/xzoom/default.nix
index d1867e3b077b9..e414576b5230d 100644
--- a/pkgs/tools/X11/xzoom/default.nix
+++ b/pkgs/tools/X11/xzoom/default.nix
@@ -1,19 +1,21 @@
 { stdenv, fetchurl, libX11, libXext, libXt, imake, gccmakedep}:
 
 stdenv.mkDerivation rec {
-  name = "${pname}-${version}.${patchlevel}";
+  name = "${pname}-${version}";
   pname = "xzoom";
-  version = "0.3";
-  patchlevel = "24";
+  major = "0";
+  minor = "3";
+  patch = "24";
+  version = "${major}.${minor}.${patch}";
 
   # or fetchFromGitHub(owner,repo,rev) or fetchgit(rev)
   src = fetchurl {
-    url = "http://www.ibiblio.org/pub/linux/libs/X/${pname}-${version}.tgz";
+    url = "http://www.ibiblio.org/pub/linux/libs/X/${pname}-${major}.${minor}.tgz";
     sha256 = "0jzl5py4ny4n4i58lxx2hdwq9zphqf7h3m14spl3079y5mlzssxj";
   };
   patches = [
     (fetchurl {
-       url = "http://http.debian.net/debian/pool/main/x/xzoom/xzoom_${version}-${patchlevel}.diff.gz";
+       url = "http://http.debian.net/debian/pool/main/x/xzoom/xzoom_${major}.${minor}-${patch}.diff.gz";
        sha256 = "0zhc06whbvaz987bzzzi2bz6h9jp6rv812qs7b71drivvd820qbh";
     })
   ];
diff --git a/pkgs/tools/archivers/snzip/default.nix b/pkgs/tools/archivers/snzip/default.nix
new file mode 100644
index 0000000000000..031cac64b759a
--- /dev/null
+++ b/pkgs/tools/archivers/snzip/default.nix
@@ -0,0 +1,31 @@
+{ lib, stdenv, fetchFromGitHub
+, autoreconfHook
+, pkgconfig
+, snappy
+}:
+
+stdenv.mkDerivation rec {
+  pname = "snzip";
+  version = "1.0.4";
+
+  src = fetchFromGitHub {
+    owner = "kubo";
+    repo = "snzip";
+    rev = version;
+    sha256 = "1v8li1zv9f2g31iyi9y9zx42rjvwkaw221g60pmkbv53y667i325";
+  };
+
+  buildInputs = [ snappy ];
+  # We don't use a release tarball so we don't have a `./configure` script to
+  # run. That's why we generate it.
+  nativeBuildInputs = [ autoreconfHook pkgconfig ];
+
+  meta = with stdenv.lib; {
+    description = "A compression/decompression tool based on snappy";
+    homepage = "https://github.com/kubo/snzip";
+    maintainers = with maintainers; [ doronbehar ];
+    license = licenses.bsd2;
+    platforms = platforms.linux;
+  };
+}
+
diff --git a/pkgs/tools/backup/bup/default.nix b/pkgs/tools/backup/bup/default.nix
index 3ff7aed74f5d4..4788091a5f48a 100644
--- a/pkgs/tools/backup/bup/default.nix
+++ b/pkgs/tools/backup/bup/default.nix
@@ -5,7 +5,7 @@
 
 assert par2Support -> par2cmdline != null;
 
-let version = "0.29.3"; in
+let version = "0.30"; in
 
 with stdenv.lib;
 
@@ -17,7 +17,7 @@ stdenv.mkDerivation {
     repo = "bup";
     owner = "bup";
     rev = version;
-    sha256 = "1b5ynljd9gs1vzbsa0kggw32s3r4zhbprc2clvjm5qmvnx23hxh8";
+    sha256 = "0kzi9mzgmx1kjv3aldawapz7bk73f02bysiwh8rngqnirmm0vxdp";
   };
 
   buildInputs = [
diff --git a/pkgs/tools/filesystems/mtdutils/default.nix b/pkgs/tools/filesystems/mtdutils/default.nix
index 049a616587438..0461c732e1a61 100644
--- a/pkgs/tools/filesystems/mtdutils/default.nix
+++ b/pkgs/tools/filesystems/mtdutils/default.nix
@@ -1,25 +1,27 @@
-{ stdenv, fetchurl, libuuid, lzo, zlib, acl }:
+{ stdenv, fetchurl, autoreconfHook, pkgconfig, cmocka, acl, libuuid, lzo, zlib, zstd }:
 
-stdenv.mkDerivation {
+stdenv.mkDerivation rec {
   pname = "mtd-utils";
-  version = "1.5.2";
+  version = "2.1.1";
 
   src = fetchurl {
-    url = ftp://ftp.infradead.org/pub/mtd-utils/mtd-utils-1.5.2.tar.bz2;
-    sha256 = "007lhsd8yb34l899r4m37whhzdw815cz4fnjbpnblfha524p7dax";
+    url = "ftp://ftp.infradead.org/pub/${pname}/${pname}-${version}.tar.bz2";
+    sha256 = "1lijl89l7hljx8xx70vrz9srd3h41v5gh4b0lvqnlv831yvyh5cd";
   };
 
-  patchPhase = ''
-    sed -i -e s,/usr/local,, -e s,/usr,$out, common.mk
-  '';
+  nativeBuildInputs = [ autoreconfHook cmocka pkgconfig ];
+  buildInputs = [ acl libuuid lzo zlib zstd ];
 
-  buildInputs = [ libuuid lzo zlib acl ];
+  configureFlags = [ "--enable-unit-tests" "--enable-tests" ];
+  enableParallelBuilding = true;
+
+  doCheck = true;
 
   meta = {
     description = "Tools for MTD filesystems";
     license = stdenv.lib.licenses.gpl2Plus;
-    homepage = http://www.linux-mtd.infradead.org/;
-    maintainers = with stdenv.lib.maintainers; [viric];
+    homepage = "http://www.linux-mtd.infradead.org/";
+    maintainers = with stdenv.lib.maintainers; [ viric ];
     platforms = with stdenv.lib.platforms; linux;
   };
 }
diff --git a/pkgs/tools/graphics/gmic/default.nix b/pkgs/tools/graphics/gmic/default.nix
index c6781310bdb58..de439d1a6ba66 100644
--- a/pkgs/tools/graphics/gmic/default.nix
+++ b/pkgs/tools/graphics/gmic/default.nix
@@ -15,13 +15,13 @@
 
 stdenv.mkDerivation rec {
   pname = "gmic";
-  version = "2.7.1";
+  version = "2.7.4";
 
   outputs = [ "out" "lib" "dev" "man" ];
 
   src = fetchurl {
     url = "https://gmic.eu/files/source/gmic_${version}.tar.gz";
-    sha256 = "1sxgmrxv1px07h5m7dcdg24c6x39ifjbc1fmz8p2ah91pm57h7n7";
+    sha256 = "0h1c1c6l25c5rjc0wkspmw44k7cafrn0jwc0713vp87qipx416yd";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/tools/misc/birdfont/default.nix b/pkgs/tools/misc/birdfont/default.nix
index 9dc3eb86e79dd..8cc21158e8a92 100644
--- a/pkgs/tools/misc/birdfont/default.nix
+++ b/pkgs/tools/misc/birdfont/default.nix
@@ -4,11 +4,11 @@ gobject-introspection, gsettings-desktop-schemas, wrapGAppsHook }:
 
 stdenv.mkDerivation rec {
   pname = "birdfont";
-  version = "2.27.0";
+  version = "2.28.0";
 
   src = fetchurl {
     url = "https://birdfont.org/releases/${pname}-${version}.tar.xz";
-    sha256 = "0dr2cnvq30wak0j2k8089is7fvhw0ppwkfrrw1m649s2b95wav3q";
+    sha256 = "19i7wzngi695dp4w0235wmfcnagdw3i40mzf89sddr1mqzvipfrz";
   };
 
   nativeBuildInputs = [ python3 pkgconfig vala_0_44 gobject-introspection wrapGAppsHook ];
diff --git a/pkgs/tools/misc/clipman/default.nix b/pkgs/tools/misc/clipman/default.nix
index 1dd2c16cb56e2..42db25f957345 100644
--- a/pkgs/tools/misc/clipman/default.nix
+++ b/pkgs/tools/misc/clipman/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "clipman";
-  version = "1.0.1";
+  version = "1.1.0";
 
   src = fetchFromGitHub {
     owner = "yory8";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1qv7mncb8ggyxrxqxax3gbcfxzk8b4zj2n8rp2xpghsynw4j740w";
+    sha256 = "083wd9wqsvxsf3w72jqh36php3c85273n3c6j7j997w47k069m32";
   };
 
-  modSha256 = "0qwrj6wqy32v65k3sbp24frhrcq6wfk38ckmy6wfmhgcix47fzj2";
+  modSha256 = "0r7bx2vxnjqs4lx17w7q75spdjh3dz4560d62bj6fb5n71hc5mgv";
 
   nativeBuildInputs = [ makeWrapper ];
 
diff --git a/pkgs/tools/misc/diffoscope/default.nix b/pkgs/tools/misc/diffoscope/default.nix
index 9cb76b2ce37c6..cf2a01faf1c29 100644
--- a/pkgs/tools/misc/diffoscope/default.nix
+++ b/pkgs/tools/misc/diffoscope/default.nix
@@ -9,11 +9,11 @@
 # Note: when upgrading this package, please run the list-missing-tools.sh script as described below!
 python3Packages.buildPythonApplication rec {
   pname = "diffoscope";
-  version = "125";
+  version = "126";
 
   src = fetchurl {
     url    = "https://diffoscope.org/archive/diffoscope-${version}.tar.bz2";
-    sha256 = "0qwib44f43hinidbdjqnr2zanj678mgckx34x48jyywppvbj8yq4";
+    sha256 = "0jbmpxj3y1gnmd00pj9x3jrx0hnjlkrzvk1m9miswgfq0ac1ws3p";
   };
 
   patches = [
diff --git a/pkgs/tools/misc/ethtool/default.nix b/pkgs/tools/misc/ethtool/default.nix
index 8fa1eccadf015..bffc8a01f9206 100644
--- a/pkgs/tools/misc/ethtool/default.nix
+++ b/pkgs/tools/misc/ethtool/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "ethtool";
-  version = "5.2";
+  version = "5.3";
 
   src = fetchurl {
     url = "mirror://kernel/software/network/ethtool/${pname}-${version}.tar.xz";
-    sha256 = "01bq2g7amycfp4syzcswz52pgphdgswklziqfjwnq3c6844dfpv6";
+    sha256 = "1i14zrg4a84zjpwvqi8an0zx0hm06g614a79zc2syrkhrvdw1npk";
   };
 
   meta = with stdenv.lib; {
diff --git a/pkgs/tools/misc/hdf5/default.nix b/pkgs/tools/misc/hdf5/default.nix
index 3296c0a4f9282..3329386019019 100644
--- a/pkgs/tools/misc/hdf5/default.nix
+++ b/pkgs/tools/misc/hdf5/default.nix
@@ -53,7 +53,10 @@ stdenv.mkDerivation rec {
 
   postInstall = ''
     find "$out" -type f -exec remove-references-to -t ${stdenv.cc} '{}' +
-    moveToOutput bin/h5cc "''${!outputDev}"
+    moveToOutput 'bin/h5cc' "''${!outputDev}"
+    moveToOutput 'bin/h5c++' "''${!outputDev}"
+    moveToOutput 'bin/h5fc' "''${!outputDev}"
+    moveToOutput 'bin/h5pcc' "''${!outputDev}"
   '';
 
   meta = {
diff --git a/pkgs/tools/misc/latex2html/default.nix b/pkgs/tools/misc/latex2html/default.nix
index 2ca99eb61e88b..59f52c5cf6f34 100644
--- a/pkgs/tools/misc/latex2html/default.nix
+++ b/pkgs/tools/misc/latex2html/default.nix
@@ -1,17 +1,16 @@
-{ stdenv, fetchurl, makeWrapper
+{ stdenv, fetchFromGitHub, makeWrapper
 , ghostscript, netpbm, perl }:
 # TODO: withTex
 
-# Ported from Homebrew.
-# https://github.com/Homebrew/homebrew-core/blob/21834573f690407d34b0bbf4250b82ec38dda4d6/Formula/latex2html.rb
-
 stdenv.mkDerivation rec {
   pname = "latex2html";
-  version = "2018";
+  version = "2019.2";
 
-  src = fetchurl {
-    url = "http://mirrors.ctan.org/support/latex2html/latex2html-${version}.tar.gz";
-    sha256 = "1qnlg8ajh0amy9gy8rh8sp1l224ak54264i3dhk7rrv9s4k7bqq9";
+  src = fetchFromGitHub {
+    owner = pname;
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1bcdhbaxf334wlxzkw5samj2y2q173709y0km3x8xs4bbh70ds6c";
   };
 
   buildInputs = [ ghostscript netpbm perl ];
diff --git a/pkgs/tools/misc/phoronix-test-suite/default.nix b/pkgs/tools/misc/phoronix-test-suite/default.nix
index 2dfbd227ac0c7..88f24676b794c 100644
--- a/pkgs/tools/misc/phoronix-test-suite/default.nix
+++ b/pkgs/tools/misc/phoronix-test-suite/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "phoronix-test-suite";
-  version = "9.0.0";
+  version = "9.0.1";
 
   src = fetchurl {
     url = "https://phoronix-test-suite.com/releases/${pname}-${version}.tar.gz";
-    sha256 = "1gfmkwfzgpbmhv2wdr5aiknv1jyazx7sb33nna34pnd3bkmak0bq";
+    sha256 = "056f2z1ssr2z7qnacq5aihpnawl05blbbw0bv64pkrkl0wss85x1";
   };
 
   buildInputs = [ php ];
diff --git a/pkgs/tools/misc/system-config-printer/default.nix b/pkgs/tools/misc/system-config-printer/default.nix
index 1b949108c54ac..e9ee91de6776d 100644
--- a/pkgs/tools/misc/system-config-printer/default.nix
+++ b/pkgs/tools/misc/system-config-printer/default.nix
@@ -1,47 +1,56 @@
-{ stdenv, fetchurl, udev, intltool, pkgconfig, glib, xmlto, wrapGAppsHook
+{ stdenv, fetchFromGitHub, udev, intltool, pkgconfig, glib, xmlto, wrapGAppsHook
 , docbook_xml_dtd_412, docbook_xsl
 , libxml2, desktop-file-utils, libusb1, cups, gdk-pixbuf, pango, atk, libnotify
-, gobject-introspection, libsecret
+, gobject-introspection, libsecret, packagekit
 , cups-filters
-, pythonPackages
+, python3Packages, autoreconfHook, bash
 }:
 
 stdenv.mkDerivation rec {
   pname = "system-config-printer";
-  version = "1.5.11";
+  version = "1.5.12";
 
-  src = fetchurl {
-    url = "https://github.com/zdohnal/system-config-printer/releases/download/${version}/${pname}-${version}.tar.xz";
-    sha256 = "1lq0q51bhanirpjjvvh4xiafi8hgpk8r32h0dj6dn3f32z8pib9q";
+  src = fetchFromGitHub {
+    owner = "openPrinting";
+    repo = pname;
+    rev = version;
+    sha256 = "1a812jsd9pb02jbz9bq16qj5j6k2kw44g7s1xdqqkg7061rd7mwf";
   };
 
+  prePatch = ''
+    # for automake
+    touch README ChangeLog
+    # for tests
+    substituteInPlace Makefile.am --replace /bin/bash ${bash}/bin/bash
+  '';
+
   patches = [ ./detect_serverbindir.patch ];
 
   buildInputs = [
     glib udev libusb1 cups
-    pythonPackages.python
-    libnotify gobject-introspection gdk-pixbuf pango atk
+    python3Packages.python
+    libnotify gobject-introspection gdk-pixbuf pango atk packagekit
     libsecret
   ];
 
   nativeBuildInputs = [
     intltool pkgconfig
     xmlto libxml2 docbook_xml_dtd_412 docbook_xsl desktop-file-utils
-    pythonPackages.wrapPython
-    wrapGAppsHook
+    python3Packages.wrapPython
+    wrapGAppsHook autoreconfHook
   ];
 
-  pythonPath = with pythonPackages; requiredPythonModules [ pycups pycurl dbus-python pygobject3 requests pycairo pysmbc ];
+  pythonPath = with python3Packages; requiredPythonModules [ pycups pycurl dbus-python pygobject3 requests pycairo pysmbc ];
 
   configureFlags = [
     "--with-udev-rules"
-    "--with-udevdir=$(out)/etc/udev"
-    "--with-systemdsystemunitdir=$(out)/etc/systemd/system"
+    "--with-udevdir=${placeholder "out"}/etc/udev"
+    "--with-systemdsystemunitdir=${placeholder "out"}/etc/systemd/system"
   ];
 
   stripDebugList = [ "bin" "lib" "etc/udev" ];
 
-  doCheck = false; # generates shebangs in check phase, too lazy to fix
+  doCheck = true;
 
   postInstall =
     ''
@@ -54,20 +63,14 @@ stdenv.mkDerivation rec {
       find $out/share/system-config-printer -name \*.py -type f -perm -0100 -print0 | while read -d "" f; do
         patchPythonScript "$f"
       done
-
-      # The below line will be unneeded when the next upstream release arrives.
-      sed -i -e "s|/usr/local/bin|$out/bin|" "$out/share/dbus-1/services/org.fedoraproject.Config.Printing.service"
-
-      # Manually expand literal "$(out)", which have failed to expand
-      sed -e "s|ExecStart=\$(out)|ExecStart=$out|" \
-          -i "$out/etc/systemd/system/configure-printer@.service"
+      patchPythonScript $out/etc/udev/udev-add-printer
 
       substituteInPlace $out/etc/udev/rules.d/70-printers.rules \
         --replace "udev-configure-printer" "$out/etc/udev/udev-configure-printer"
     '';
 
   meta = {
-    homepage = http://cyberelk.net/tim/software/system-config-printer/;
+    homepage = "https://github.com/openprinting/system-config-printer";
     platforms = stdenv.lib.platforms.linux;
     license = stdenv.lib.licenses.gpl2;
   };
diff --git a/pkgs/tools/networking/dnsmasq/default.nix b/pkgs/tools/networking/dnsmasq/default.nix
index c009affe1fffa..f224ab1ac9359 100644
--- a/pkgs/tools/networking/dnsmasq/default.nix
+++ b/pkgs/tools/networking/dnsmasq/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, pkgconfig, dbus, nettle
+{ stdenv, fetchurl, pkgconfig, dbus, nettle, fetchpatch
 , libidn, libnetfilter_conntrack }:
 
 with stdenv.lib;
@@ -19,6 +19,15 @@ stdenv.mkDerivation rec {
     sha256 = "1fv3g8vikj3sn37x1j6qsywn09w1jipvlv34j3q5qrljbrwa5ayd";
   };
 
+  patches = [
+    # Fix build with nettle 3.5
+    (fetchpatch {
+      name = "nettle-3.5.patch";
+      url = "thekelleys.org.uk/gitweb/?p=dnsmasq.git;a=patch;h=ab73a746a0d6fcac2e682c5548eeb87fb9c9c82e";
+      sha256 = "1hnixij3jp1p6zc3bx2dr92yyf9jp1ahhl9hiiq7bkbhbrw6mbic";
+    })
+  ];
+
   preBuild = ''
     makeFlagsArray=("COPTS=${copts}")
   '';
diff --git a/pkgs/tools/networking/ipv6calc/default.nix b/pkgs/tools/networking/ipv6calc/default.nix
index 6e04859410fdb..5de4b8cecb788 100644
--- a/pkgs/tools/networking/ipv6calc/default.nix
+++ b/pkgs/tools/networking/ipv6calc/default.nix
@@ -1,34 +1,37 @@
 { stdenv, fetchurl, getopt, ip2location-c, openssl, perl
-, geoip ? null, geolite-legacy ? null }:
+, libmaxminddb ? null, geolite-legacy ? null }:
 
 stdenv.mkDerivation rec {
   pname = "ipv6calc";
-  version = "2.1.1";
+  version = "2.2.0";
 
   src = fetchurl {
-    url = "ftp://ftp.deepspace6.net/pub/ds6/sources/ipv6calc/${pname}-${version}.tar.gz";
-    sha256 = "01a4p2g31y6p1r3kacymbv2hhvkwnv00yskhphgcgjq5jpkmfjcn";
+    urls = [
+      "https://www.deepspace6.net/ftp/pub/ds6/sources/ipv6calc/${pname}-${version}.tar.gz"
+      "ftp://ftp.deepspace6.net/pub/ds6/sources/ipv6calc/${pname}-${version}.tar.gz"
+      "ftp://ftp.bieringer.de/pub/linux/IPv6/ipv6calc/${pname}-${version}.tar.gz"
+    ];
+    sha256 = "18acy0sy3n6jcjjwpxskysinw06czyayx1q4rqc7zc3ic4pkad8r";
   };
 
-  buildInputs = [ geoip geolite-legacy getopt ip2location-c openssl ];
-  nativeBuildInputs = [ perl ];
+  buildInputs = [ libmaxminddb geolite-legacy getopt ip2location-c openssl perl ];
 
-  patchPhase = ''
+  postPatch = ''
+    patchShebangs *.sh */*.sh
     for i in {,databases/}lib/Makefile.in; do
-      substituteInPlace $i --replace /sbin/ldconfig true
-    done
-    for i in {{,databases/}lib,man}/Makefile.in; do
-      substituteInPlace $i --replace DESTDIR out
+      substituteInPlace $i --replace "/sbin/ldconfig" "ldconfig"
     done
   '';
 
   configureFlags = [
+    "--prefix=${placeholder "out"}"
+    "--libdir=${placeholder "out"}/lib"
     "--disable-bundled-getopt"
     "--disable-bundled-md5"
     "--disable-dynamic-load"
     "--enable-shared"
-  ] ++ stdenv.lib.optional (geoip != null ) [
-    "--enable-geoip"
+  ] ++ stdenv.lib.optional (libmaxminddb != null ) [
+    "--enable-mmdb"
   ] ++ stdenv.lib.optional (geolite-legacy != null) [
     "--with-geoip-db=${geolite-legacy}/share/GeoIP"
   ] ++ stdenv.lib.optional (ip2location-c != null ) [
@@ -47,7 +50,7 @@ stdenv.mkDerivation rec {
       difficult) migrating the Perl program ip6_int into.
       Now only one utiltity is needed to do a lot.
     '';
-    homepage = http://www.deepspace6.net/projects/ipv6calc.html;
+    homepage = "http://www.deepspace6.net/projects/ipv6calc.html";
     license = licenses.gpl2;
     platforms = platforms.linux;
   };
diff --git a/pkgs/tools/networking/network-manager/default.nix b/pkgs/tools/networking/network-manager/default.nix
index ffa56363ad67d..1459ac53a1291 100644
--- a/pkgs/tools/networking/network-manager/default.nix
+++ b/pkgs/tools/networking/network-manager/default.nix
@@ -10,11 +10,11 @@ let
   pythonForDocs = python3.withPackages (pkgs: with pkgs; [ pygobject3 ]);
 in stdenv.mkDerivation rec {
   pname = "network-manager";
-  version = "1.20.2";
+  version = "1.20.4";
 
   src = fetchurl {
     url = "mirror://gnome/sources/NetworkManager/${stdenv.lib.versions.majorMinor version}/NetworkManager-${version}.tar.xz";
-    sha256 = "115cgz448vypc7c592lqqjd7lp2kzdczhjk4ran6qls65hzkfkji";
+    sha256 = "0k4i6m8acp48vl6l13267wv6kfkmzfjq2mraaa5m9n82wyvkimx3";
   };
 
   outputs = [ "out" "dev" "devdoc" "man" "doc" ];
@@ -51,15 +51,6 @@ in stdenv.mkDerivation rec {
   ];
 
   patches = [
-    # 1.20.2 added a decorators.sh script but they forgot to distribute it (breaking the build)
-    # as it was to fix things with gtk-doc 1.32 we can safely revert it.
-    (fetchpatch {
-      url = "https://gitlab.freedesktop.org/NetworkManager/NetworkManager/commit/2d941dc95a1d94d023ac8f98df2f344dbb1d223e.patch";
-      sha256 = "1mvbajddwd6diwk6dgjg5p65i6852gx6b9p3949rs63d2i6yzg21";
-      excludes = [ "tools/decorators.sh" ];
-      revert = true;
-    })
-
     (substituteAll {
       src = ./fix-paths.patch;
       inherit iputils kmod openconnect ethtool gnused dbus;
diff --git a/pkgs/tools/networking/network-manager/fix-paths.patch b/pkgs/tools/networking/network-manager/fix-paths.patch
index 015c540c0ede2..c45dc174a0dff 100644
--- a/pkgs/tools/networking/network-manager/fix-paths.patch
+++ b/pkgs/tools/networking/network-manager/fix-paths.patch
@@ -39,11 +39,33 @@ index 2f442bf23..c3e797bf4 100644
  #ExecReload=/bin/kill -HUP $MAINPID
  ExecStart=@sbindir@/NetworkManager --no-daemon
  Restart=on-failure
+diff --git a/libnm/meson.build b/libnm/meson.build
+index 710ef181d..3aa182dd4 100644
+--- a/libnm/meson.build
++++ b/libnm/meson.build
+@@ -280,7 +280,7 @@ if enable_introspection
+     name,
+     input: libnm_gir[0],
+     output: name,
+-    command: [generate_setting_docs_env, python.path(), generate_setting_docs, '--lib-path', meson.current_build_dir(), '--gir', '@INPUT@', '--output', '@OUTPUT@'],
++    command: [generate_setting_docs_env, generate_setting_docs, '--lib-path', meson.current_build_dir(), '--gir', '@INPUT@', '--output', '@OUTPUT@'],
+     depends: libnm_gir,
+   )
+ 
+@@ -289,7 +289,7 @@ if enable_introspection
+     name,
+     input: libnm_gir[0],
+     output: name,
+-    command: [generate_setting_docs_env, python.path(), generate_setting_docs, '--lib-path', meson.current_build_dir(), '--gir', '@INPUT@', '--overrides', nm_settings_docs_overrides, '--output', '@OUTPUT@'],
++    command: [generate_setting_docs_env, generate_setting_docs, '--lib-path', meson.current_build_dir(), '--gir', '@INPUT@', '--overrides', nm_settings_docs_overrides, '--output', '@OUTPUT@'],
+     depends: libnm_gir,
+   )
+ endif
 diff --git a/src/devices/nm-device.c b/src/devices/nm-device.c
-index 823cf48a5..cda16e48d 100644
+index 67e23b8f9..b0ce52711 100644
 --- a/src/devices/nm-device.c
 +++ b/src/devices/nm-device.c
-@@ -12822,14 +12822,14 @@ nm_device_start_ip_check (NMDevice *self)
+@@ -12840,14 +12840,14 @@ nm_device_start_ip_check (NMDevice *self)
  			gw = nm_ip4_config_best_default_route_get (priv->ip_config_4);
  			if (gw) {
  				nm_utils_inet4_ntop (NMP_OBJECT_CAST_IP4_ROUTE (gw)->gateway, buf);
diff --git a/pkgs/tools/networking/nss-pam-ldapd/default.nix b/pkgs/tools/networking/nss-pam-ldapd/default.nix
index dc921dc495af8..569a6d118e777 100644
--- a/pkgs/tools/networking/nss-pam-ldapd/default.nix
+++ b/pkgs/tools/networking/nss-pam-ldapd/default.nix
@@ -5,11 +5,11 @@
 
 stdenv.mkDerivation rec {
   pname = "nss-pam-ldapd";
-  version = "0.9.10";
+  version = "0.9.11";
 
   src = fetchurl {
     url = "https://arthurdejong.org/nss-pam-ldapd/${pname}-${version}.tar.gz";
-    sha256 = "1cqamcr6qpgwxijlr6kg7jspjamjra8w0haan0qssn0yxn95d7c0";
+    sha256 = "1dna3r0q6sjhhlkhcp8x2zkslrd4y7701kk6fl5r940sdph1pmyh";
   };
 
   nativeBuildInputs = [ pkgconfig makeWrapper autoreconfHook ];
diff --git a/pkgs/tools/networking/offlineimap/default.nix b/pkgs/tools/networking/offlineimap/default.nix
index 16734df1fb0d8..a14f8187b7d97 100644
--- a/pkgs/tools/networking/offlineimap/default.nix
+++ b/pkgs/tools/networking/offlineimap/default.nix
@@ -2,14 +2,14 @@
   asciidoc, cacert, libxml2, libxslt, docbook_xsl }:
 
 python2Packages.buildPythonApplication rec {
-  version = "7.2.4";
+  version = "7.3.0";
   pname = "offlineimap";
 
   src = fetchFromGitHub {
     owner = "OfflineIMAP";
     repo = "offlineimap";
     rev = "v${version}";
-    sha256 = "0h5q5nk2p2vx86w6rrbs7v70h81dpqqr68x6l3klzl3m0yj9agb1";
+    sha256 = "0v32s09zgi3jg2grwh1xzzgzpw333b9qflai7zh2hv3fx9xnfbyj";
   };
 
   postPatch = ''
@@ -23,7 +23,7 @@ python2Packages.buildPythonApplication rec {
   doCheck = false;
 
   nativeBuildInputs = [ asciidoc libxml2 libxslt docbook_xsl ];
-  propagatedBuildInputs = with python2Packages; [ six kerberos ];
+  propagatedBuildInputs = with python2Packages; [ six kerberos rfc6555 ];
 
   postInstall = ''
     make -C docs man
@@ -35,6 +35,6 @@ python2Packages.buildPythonApplication rec {
     description = "Synchronize emails between two repositories, so that you can read the same mailbox from multiple computers";
     homepage = http://offlineimap.org;
     license = stdenv.lib.licenses.gpl2Plus;
-    maintainers = [];
+    maintainers = with stdenv.lib.maintainers; [ endocrimes ma27 ];
   };
 }
diff --git a/pkgs/tools/networking/openapi-generator-cli/default.nix b/pkgs/tools/networking/openapi-generator-cli/default.nix
index 5fd1172778ed0..df4ac83191d47 100644
--- a/pkgs/tools/networking/openapi-generator-cli/default.nix
+++ b/pkgs/tools/networking/openapi-generator-cli/default.nix
@@ -1,7 +1,7 @@
 { stdenv, fetchurl, jre, makeWrapper }:
 
 stdenv.mkDerivation rec {
-  version = "4.1.2";
+  version = "4.1.3";
   pname = "openapi-generator-cli";
 
   jarfilename = "${pname}-${version}.jar";
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "http://central.maven.org/maven2/org/openapitools/${pname}/${version}/${jarfilename}";
-    sha256 = "18f5ksngx6afh7rrw9aiw7q6yx801qflbbbqc7i28b68l9dh5qy4";
+    sha256 = "0bqdjparv12wscq4qhm9xnryyfmdnn3w77hrhnsy8mlvxk2vnk13";
   };
 
   phases = [ "installPhase" ];
diff --git a/pkgs/tools/networking/tcpdump/default.nix b/pkgs/tools/networking/tcpdump/default.nix
index 9cebc267260b7..a74dc7ca1d720 100644
--- a/pkgs/tools/networking/tcpdump/default.nix
+++ b/pkgs/tools/networking/tcpdump/default.nix
@@ -1,20 +1,13 @@
 { stdenv, fetchurl, libpcap, perl }:
 
-stdenv.mkDerivation {
+stdenv.mkDerivation rec {
   pname = "tcpdump";
-  version = "4.9.2";
+  version = "4.9.3";
 
-  # leaked embargoed security update
   src = fetchurl {
-    url = "https://src.fedoraproject.org/lookaside/pkgs/tcpdump/tcpdump-4.9.2.tar.gz/sha512/e1bc19a5867d6e3628f3941bdf3ec831bf13784f1233ca1bccc46aac1702f47ee9357d7ff0ca62cddf211b3c8884488c21144cabddd92c861e32398cd8f7c44b/tcpdump-4.9.2.tar.gz";
-    sha256 = "0ygy0layzqaj838r5xd613iraz09wlfgpyh7pc6cwclql8v3b2vr";
+    url = "http://www.tcpdump.org/release/${pname}-${version}.tar.gz";
+    sha256 = "0434vdcnbqaia672rggjzdn4bb8p8dchz559yiszzdk0sjrprm1c";
   };
-  # src = fetchFromGitHub rec {
-  #   owner = "the-tcpdump-group";
-  #   repo = "tcpdump";
-  #   rev = "${repo}-${version}";
-  #   sha256 = "1vzrvn1q7x28h18yskqc390y357pzpg5xd3pzzj4xz3llnvsr64p";
-  # };
 
   postPatch = ''
     patchShebangs tests
diff --git a/pkgs/tools/networking/tridactyl-native/default.nix b/pkgs/tools/networking/tridactyl-native/default.nix
index 9667f1a74c5a6..665d988f48e41 100644
--- a/pkgs/tools/networking/tridactyl-native/default.nix
+++ b/pkgs/tools/networking/tridactyl-native/default.nix
@@ -7,13 +7,13 @@ stdenv.mkDerivation rec {
   pname = "tridactyl-native";
   # this is actually the version of tridactyl itself; the native messenger will
   # probably not change with every tridactyl version
-  version = "1.16.3";
+  version = "1.17.0";
 
   src = fetchFromGitHub {
     owner = "tridactyl";
     repo = "tridactyl";
     rev = version;
-    sha256 = "1cp2iaa9fhlxmbml41wnq984jp2r75n6w0qxz38rd24jxsj5vz06";
+    sha256 = "0dpd4jdym644rqm9h83lb8cwfccnwrnqm1g91nl913pj4k5x4hqr";
   };
   sourceRoot = "source/native";
 
diff --git a/pkgs/tools/networking/unbound/default.nix b/pkgs/tools/networking/unbound/default.nix
index 8a4b6e6650e66..e83e5268629c8 100644
--- a/pkgs/tools/networking/unbound/default.nix
+++ b/pkgs/tools/networking/unbound/default.nix
@@ -2,13 +2,20 @@
 
 stdenv.mkDerivation rec {
   pname = "unbound";
-  version = "1.9.3";
+  version = "1.9.4";
 
   src = fetchurl {
     url = "https://unbound.net/downloads/${pname}-${version}.tar.gz";
-    sha256 = "1ykdy62sgzv33ggkmzwx2h0ifm7hyyxyfkb4zckv7gz4f28xsm8v";
+    sha256 = "1c2bjm13x8bkw0ds1mhn9ivd2gzmfrb0x5y76bkz09a04bxjagix";
   };
 
+  # https://github.com/NLnetLabs/unbound/pull/90
+  postPatch = ''
+    substituteInPlace validator/val_secalgo.c \
+      --replace '&nettle_secp_256r1' 'nettle_get_secp_256r1()' \
+      --replace '&nettle_secp_384r1' 'nettle_get_secp_384r1()'
+  '';
+
   outputs = [ "out" "lib" "man" ]; # "dev" would only split ~20 kB
 
   buildInputs = [ openssl nettle expat libevent ];
diff --git a/pkgs/tools/networking/wireguard-tools/default.nix b/pkgs/tools/networking/wireguard-tools/default.nix
index bd17fa054d332..ad449429f9986 100644
--- a/pkgs/tools/networking/wireguard-tools/default.nix
+++ b/pkgs/tools/networking/wireguard-tools/default.nix
@@ -13,11 +13,11 @@ with stdenv.lib;
 
 stdenv.mkDerivation rec {
   pname = "wireguard-tools";
-  version = "0.0.20190913";
+  version = "0.0.20191012";
 
   src = fetchzip {
     url = "https://git.zx2c4.com/WireGuard/snapshot/WireGuard-${version}.tar.xz";
-    sha256 = "08ns5d6xbl0qylb98mml0yh0yp837a1sm3hvpra21by1dvx8k0dg";
+    sha256 = "0nwcx7m5cpp4h1bclswiqq1jzj08xzpxmq5s4rcfqmrp59cmwgrs";
   };
 
   sourceRoot = "source/src/tools";
@@ -53,7 +53,7 @@ stdenv.mkDerivation rec {
     downloadPage = "https://git.zx2c4.com/WireGuard/refs/";
     homepage = "https://www.wireguard.com/";
     license = licenses.gpl2;
-    maintainers = with maintainers; [ elseym ericsagnes mic92 zx2c4 globin ];
+    maintainers = with maintainers; [ elseym ericsagnes mic92 zx2c4 globin ma27 ];
     platforms = platforms.unix;
   };
 }
diff --git a/pkgs/tools/package-management/nix/default.nix b/pkgs/tools/package-management/nix/default.nix
index 269d72615366d..5c55ac31588c1 100644
--- a/pkgs/tools/package-management/nix/default.nix
+++ b/pkgs/tools/package-management/nix/default.nix
@@ -10,7 +10,7 @@ let
 
 common =
   { lib, stdenv, fetchpatch, perl, curl, bzip2, sqlite, openssl ? null, xz
-  , pkgconfig, boehmgc, perlPackages, libsodium, brotli, boost, editline
+  , pkgconfig, boehmgc, perlPackages, libsodium, brotli, boost, editline, nlohmann_json
   , autoreconfHook, autoconf-archive, bison, flex, libxml2, libxslt, docbook5, docbook_xsl_ns, jq
   , busybox-sandbox-shell
   , storeDir
@@ -39,7 +39,7 @@ common =
         ++ lib.optionals (!is20) [ curl perl ]
         ++ lib.optionals fromGit [ autoreconfHook autoconf-archive bison flex libxml2 libxslt docbook5 docbook_xsl_ns jq ];
 
-      buildInputs = [ curl openssl sqlite xz bzip2 ]
+      buildInputs = [ curl openssl sqlite xz bzip2 nlohmann_json ]
         ++ lib.optional (stdenv.isLinux || stdenv.isDarwin) libsodium
         ++ lib.optionals is20 [ brotli boost editline ]
         ++ lib.optional withLibseccomp libseccomp
@@ -201,12 +201,12 @@ in rec {
 
   nixFlakes = lib.lowPrio (callPackage common rec {
     name = "nix-2.4${suffix}";
-    suffix = "pre20190922_382aa05";
+    suffix = "pre20191022_9cac895";
     src = fetchFromGitHub {
       owner = "NixOS";
       repo = "nix";
-      rev = "382aa05ff71b61379f5c2792eaf517bdf4a5c5bf";
-      hash = "sha256-k4vV3Q1YVmLd+49AETnsSGetpDjD6sdd9yBrnpi8Q3g=";
+      rev = "9cac895406724e0304dff140379783c4d786e855";
+      hash = "sha256-Y1cdnCNoJmjqyC/a+Nt2N+5L3Ttg7K7zOD7gmtg1QzA=";
     };
     fromGit = true;
 
diff --git a/pkgs/tools/package-management/reuse/default.nix b/pkgs/tools/package-management/reuse/default.nix
index d77398610fb00..58987f3965cd2 100644
--- a/pkgs/tools/package-management/reuse/default.nix
+++ b/pkgs/tools/package-management/reuse/default.nix
@@ -27,6 +27,7 @@ buildPythonApplication rec {
 
   meta = with lib; {
     description = "A tool for compliance with the REUSE Initiative recommendations";
+    homepage = "https://github.com/fsfe/reuse-tool";
     license = with licenses; [ asl20 cc-by-sa-40 cc0 gpl3 ];
     maintainers = [ maintainers.FlorianFranzen ];
   };
diff --git a/pkgs/tools/security/bitwarden/default.nix b/pkgs/tools/security/bitwarden/default.nix
index f96501ddf7793..fbef98df82d74 100644
--- a/pkgs/tools/security/bitwarden/default.nix
+++ b/pkgs/tools/security/bitwarden/default.nix
@@ -16,11 +16,11 @@ let
   pname = "bitwarden";
 
   version = {
-    x86_64-linux = "1.16.4";
+    x86_64-linux = "1.16.6";
   }.${system} or "";
 
   sha256 = {
-    x86_64-linux = "1g9ljxjqs7mx509lkfd7db7xvm9srzypbgv0qfzrr2flqbsfl06m";
+    x86_64-linux = "074hqm4gjljc82nhn7h6wsd74567390018fi3v38g7jh7aph10jj";
   }.${system} or "";
 
   meta = with stdenv.lib; {
diff --git a/pkgs/tools/security/bitwarden_rs/vault.nix b/pkgs/tools/security/bitwarden_rs/vault.nix
index 76b9f24224c17..51dde99bcf197 100644
--- a/pkgs/tools/security/bitwarden_rs/vault.nix
+++ b/pkgs/tools/security/bitwarden_rs/vault.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "bitwarden_rs-vault";
-  version = "2.11.0";
+  version = "2.12.0";
 
   src = fetchurl {
     url = "https://github.com/dani-garcia/bw_web_builds/releases/download/v${version}/bw_web_v${version}.tar.gz";
-    sha256 = "06f0rcpqhz5qjm01jbxx2czhnj9ng29rgsrilm5r5xx31s9dnhg7";
+    sha256 = "064dxfplqn67grpx03ryzshwmr7s00w4mll0hk0anddviwvd8r1n";
   };
 
   buildCommand = ''
diff --git a/pkgs/tools/security/monkeysphere/default.nix b/pkgs/tools/security/monkeysphere/default.nix
index b4d5ddb267dc9..97d032045b358 100644
--- a/pkgs/tools/security/monkeysphere/default.nix
+++ b/pkgs/tools/security/monkeysphere/default.nix
@@ -97,7 +97,7 @@ in stdenv.mkDerivation rec {
       familiar with, such as your web browser0 or secure shell.
     '';
     license = licenses.gpl3Plus;
-    platforms = platforms.all;
+    platforms = platforms.linux;
     maintainers = with maintainers; [ primeos ];
   };
 }
diff --git a/pkgs/tools/system/acpica-tools/default.nix b/pkgs/tools/system/acpica-tools/default.nix
index 94da72c54b341..269b6a82bbcad 100644
--- a/pkgs/tools/system/acpica-tools/default.nix
+++ b/pkgs/tools/system/acpica-tools/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "acpica-tools";
-  version = "20190816";
+  version = "20191018";
 
   src = fetchurl {
     url = "https://acpica.org/sites/acpica/files/acpica-unix-${version}.tar.gz";
-    sha256 = "0p7ws106hf8bir9yb1a5m6v3wmvqagxmk3l9rpp4i89vib44vv3s";
+    sha256 = "0pz95fb1zvsj9238bg7a4vxl1svn5mnjg10sn5qvgr008q0v9782";
   };
 
   NIX_CFLAGS_COMPILE = "-O3";
diff --git a/pkgs/tools/system/collectd/default.nix b/pkgs/tools/system/collectd/default.nix
index 3e7e4e5969ab3..517d0afb95f2f 100644
--- a/pkgs/tools/system/collectd/default.nix
+++ b/pkgs/tools/system/collectd/default.nix
@@ -1,45 +1,12 @@
-{ stdenv, fetchurl, fetchpatch, darwin
+{ stdenv, fetchurl, fetchpatch, darwin, callPackage
 , autoreconfHook
 , pkgconfig
-, curl
-, iptables
-, jdk
-, libapparmor
-, libatasmart
-, libcap_ng
-, libcredis
-, libdbi
-, libgcrypt
-, libmemcached, cyrus_sasl
-, libmicrohttpd
-, libmodbus
-, libnotify, gdk-pixbuf
-, liboping
-, libpcap
-, libsigrok
-, libvirt
-, libxml2
 , libtool
-, lm_sensors
-, lvm2
-, libmysqlclient
-, numactl
-, postgresql
-, protobufc
-, python
-, rabbitmq-c
-, riemann_c_client
-, rrdtool
-, udev
-, varnish
-, yajl
-, net_snmp
-, hiredis
-, libmnl
-, mosquitto
-, rdkafka
-, mongoc
-}:
+, ...
+}@args:
+let
+  plugins = callPackage ./plugins.nix args;
+in
 stdenv.mkDerivation rec {
   version = "5.8.1";
   pname = "collectd";
@@ -58,27 +25,15 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ pkgconfig autoreconfHook ];
   buildInputs = [
-    curl libdbi libgcrypt libmemcached
-    cyrus_sasl libnotify gdk-pixbuf liboping libpcap libvirt
-    libxml2 postgresql protobufc rrdtool
-    varnish yajl jdk libtool python hiredis libmicrohttpd
-    riemann_c_client mosquitto rdkafka mongoc
-  ] ++ stdenv.lib.optionals (libmysqlclient != null) [ libmysqlclient
-  ] ++ stdenv.lib.optionals stdenv.isLinux [
-    iptables libatasmart libcredis libmodbus libsigrok
-    lm_sensors lvm2 rabbitmq-c udev net_snmp libmnl
-    # those might be no longer required when https://github.com/NixOS/nixpkgs/pull/51767
-    # is merged
-    libapparmor numactl libcap_ng
+    libtool
   ] ++ stdenv.lib.optionals stdenv.isDarwin [
-    darwin.apple_sdk.frameworks.IOKit
     darwin.apple_sdk.frameworks.ApplicationServices
-  ];
+  ] ++ plugins.buildInputs;
 
   configureFlags = [
     "--localstatedir=/var"
     "--disable-werror"
-  ];
+  ] ++ plugins.configureFlags;
 
   # do not create directories in /var during installPhase
   postConfigure = ''
diff --git a/pkgs/tools/system/collectd/plugins.nix b/pkgs/tools/system/collectd/plugins.nix
new file mode 100644
index 0000000000000..c29ebc925bcdf
--- /dev/null
+++ b/pkgs/tools/system/collectd/plugins.nix
@@ -0,0 +1,347 @@
+{ stdenv
+, curl
+, darwin
+, hiredis
+, iptables
+, jdk
+, libatasmart
+, libdbi
+, libgcrypt
+, libmemcached, cyrus_sasl
+, libmodbus
+, libmicrohttpd
+, libmnl
+, libmysqlclient
+, libnotify, gdk-pixbuf
+, liboping
+, libpcap
+, libsigrok
+, libvirt
+, libxml2
+, libapparmor, libcap_ng, numactl
+, lvm2
+, lua
+, lm_sensors
+, mongoc
+, mosquitto
+, net_snmp
+, postgresql
+, protobufc
+, python
+, rabbitmq-c
+, rdkafka
+, riemann_c_client
+, rrdtool
+, udev
+, varnish
+, yajl
+# Defaults to `null` for all supported plugins,
+# list of plugin names for a custom build
+, enabledPlugins ? null
+, ...
+}:
+
+let
+  # All plugins and their dependencies.
+  # Please help complete this!
+  plugins = {
+    aggregation = {};
+    amqp = {
+      buildInputs = [ yajl ] ++
+        stdenv.lib.optionals stdenv.isLinux [ rabbitmq-c ];
+    };
+    apache = {
+      buildInputs = [ curl ];
+    };
+    apcups = {};
+    apple_sensors = {};
+    aquaero = {};
+    ascent = {
+      buildInputs = [ curl libxml2 ];
+    };
+    barometer = {};
+    battery = {
+      buildInputs = stdenv.lib.optionals stdenv.isDarwin [
+        darwin.apple_sdk.frameworks.IOKit
+      ];
+    };
+    bind = {
+      buildInputs = [ curl libxml2 ];
+    };
+    ceph = {
+      buildInputs = [ yajl ];
+    };
+    cgroups = {};
+    chrony = {};
+    conntrack = {};
+    contextswitch = {};
+    cpu = {};
+    cpufreq = {};
+    cpusleep = {};
+    csv = {};
+    curl = {
+      buildInputs = [ curl ];
+    };
+    curl_json = {
+      buildInputs = [ curl yajl ];
+    };
+    curl_xml = {
+      buildInputs = [ curl libxml2 ];
+    };
+    dbi = {
+      buildInputs = [ libdbi ];
+    };
+    df = {};
+    disk = {
+      buildInputs = stdenv.lib.optionals stdenv.isLinux [
+        udev
+      ] ++ stdenv.lib.optionals stdenv.isDarwin [
+        darwin.apple_sdk.frameworks.IOKit
+      ];
+    };
+    dns = {
+      buildInputs = [ libpcap ];
+    };
+    dpdkevents = {};
+    dpdkstat = {};
+    drbd = {};
+    email = {};
+    entropy = {};
+    ethstat = {};
+    exec = {};
+    fhcount = {};
+    filecount = {};
+    fscache = {};
+    gmond = {};
+    gps = {};
+    grpc = {};
+    hddtemp = {};
+    hugepages = {};
+    intel_pmu = {};
+    intel_rdt = {};
+    interface = {};
+    ipc = {};
+    ipmi = {};
+    iptables = {
+      buildInputs = [
+        libpcap
+      ] ++ stdenv.lib.optionals stdenv.isLinux [
+        iptables libmnl
+      ];
+    };
+    ipvs = {};
+    irq = {};
+    java = {
+      buildInputs = [ jdk libgcrypt libxml2 ];
+    };
+    load = {};
+    logfile = {};
+    log_logstash = {
+      buildInputs = [ yajl ];
+    };
+    lpar = {};
+    lua = {
+      buildInputs = [ lua ];
+    };
+    lvm = {};
+    madwifi = {};
+    match_empty_counter = {};
+    match_hashed = {};
+    match_regex = {};
+    match_timediff = {};
+    match_value = {};
+    mbmon = {};
+    mcelog = {};
+    md = {};
+    memcachec = {
+      buildInputs = [ libmemcached cyrus_sasl ];
+    };
+    memcached = {};
+    memory = {};
+    mic = {};
+    modbus = {
+      buildInputs = stdenv.lib.optionals stdenv.isLinux [ libmodbus ];
+    };
+    mqtt = {
+      buildInputs = [ mosquitto ];
+    };
+    multimeter = {};
+    mysql = {
+      buildInputs = stdenv.lib.optionals (libmysqlclient != null) [
+        libmysqlclient
+      ];
+    };
+    netapp = {};
+    netlink = {
+      buildInputs = [
+        libpcap
+      ] ++ stdenv.lib.optionals stdenv.isLinux [
+        libmnl
+      ];
+    };
+    network = {
+      buildInputs = [ libgcrypt ];
+    };
+    nfs = {};
+    nginx = {
+      buildInputs = [ curl ];
+    };
+    notify_desktop = {
+      buildInputs = [ libnotify gdk-pixbuf ];
+    };
+    notify_email = {};
+    notify_nagios = {};
+    ntpd = {};
+    numa = {};
+    nut = {};
+    olsrd = {};
+    onewire = {};
+    openldap = {};
+    openvpn = {};
+    oracle = {};
+    ovs_events = {
+      buildInputs = [ yajl ];
+    };
+    ovs_stats = {
+      buildInputs = [ yajl ];
+    };
+    perl = {};
+    pf = {};
+    pinba = {
+      buildInputs = [ protobufc ];
+    };
+    ping = {
+      buildInputs = [ liboping ];
+    };
+    postgresql = {
+      buildInputs = [ postgresql ];
+    };
+    powerdns = {};
+    processes = {};
+    protocols = {};
+    python = {
+      buildInputs = [ python ];
+    };
+    redis = {
+      buildInputs = [ hiredis ];
+    };
+    routeros = {};
+    rrdcached = {
+      buildInputs = [ rrdtool libxml2 ];
+    };
+    rrdtool = {
+      buildInputs = [ rrdtool libxml2 ];
+    };
+    sensors = {
+      buildInputs = stdenv.lib.optionals stdenv.isLinux [ lm_sensors ];
+    };
+    serial = {};
+    sigrok = {
+      buildInputs = stdenv.lib.optionals stdenv.isLinux [ libsigrok udev ];
+    };
+    smart = {
+      buildInputs = stdenv.lib.optionals stdenv.isLinux [ libatasmart udev ];
+    };
+    snmp = {
+      buildInputs = stdenv.lib.optionals stdenv.isLinux [ net_snmp ];
+    };
+    snmp_agent = {
+      buildInputs = stdenv.lib.optionals stdenv.isLinux [ net_snmp ];
+    };
+    statsd = {};
+    swap = {};
+    synproxy = {};
+    syslog = {};
+    table = {};
+    tail_csv = {};
+    tail = {};
+    tape = {};
+    target_notification = {};
+    target_replace = {};
+    target_scale = {};
+    target_set = {};
+    target_v5upgrade = {};
+    tcpconns = {};
+    teamspeak2 = {};
+    ted = {};
+    thermal = {};
+    threshold = {};
+    tokyotyrant = {};
+    turbostat = {};
+    unixsock = {};
+    uptime = {};
+    users = {};
+    uuid = {};
+    varnish = {
+      buildInputs = [ curl varnish ];
+    };
+    virt = {
+      buildInputs = [ libvirt libxml2 yajl ] ++
+        stdenv.lib.optionals stdenv.isLinux [ lvm2 udev
+          # those might be no longer required when https://github.com/NixOS/nixpkgs/pull/51767
+          # is merged
+          libapparmor numactl libcap_ng
+        ];
+    };
+    vmem = {};
+    vserver = {};
+    wireless = {};
+    write_graphite = {};
+    write_http = {
+      buildInputs = [ curl yajl ];
+    };
+    write_kafka = {
+      buildInputs = [ yajl rdkafka ];
+    };
+    write_log = {
+      buildInputs = [ yajl ];
+    };
+    write_mongodb = {
+      buildInputs = [ mongoc ];
+    };
+    write_prometheus = {
+      buildInputs = [ protobufc libmicrohttpd ];
+    };
+    write_redis = {
+      buildInputs = [ hiredis ];
+    };
+    write_riemann = {
+      buildInputs = [ protobufc riemann_c_client ];
+    };
+    write_sensu = {};
+    write_tsdb = {};
+    xencpu = {};
+    xmms = {};
+    zfs_arc = {};
+    zone = {};
+    zookeeper = {};
+  };
+
+  configureFlags =
+    if enabledPlugins == null
+    then []
+    else (map (plugin: "--enable-${plugin}") enabledPlugins) ++
+    (map (plugin: "--disable-${plugin}")
+      (builtins.filter (plugin: ! builtins.elem plugin enabledPlugins)
+        (builtins.attrNames plugins))
+    );
+
+  pluginBuildInputs = plugin:
+        if ! builtins.hasAttr plugin plugins
+        then throw "Unknown collectd plugin: ${plugin}"
+        else
+          let
+            pluginAttrs = builtins.getAttr plugin plugins;
+          in
+          if pluginAttrs ? "buildInputs"
+          then pluginAttrs.buildInputs
+          else [];
+
+  buildInputs =
+    if enabledPlugins == null
+    then builtins.concatMap pluginBuildInputs
+      (builtins.attrNames plugins)
+    else builtins.concatMap pluginBuildInputs enabledPlugins;
+in {
+  inherit configureFlags buildInputs;
+}
diff --git a/pkgs/tools/system/facter/default.nix b/pkgs/tools/system/facter/default.nix
index ee9cdf3612943..ad90a52a5bdb6 100644
--- a/pkgs/tools/system/facter/default.nix
+++ b/pkgs/tools/system/facter/default.nix
@@ -2,29 +2,30 @@
 
 stdenv.mkDerivation rec {
   pname = "facter";
-  version = "3.13.2";
+  version = "3.14.5";
 
   src = fetchFromGitHub {
-    sha256 = "1yaj1qlyzsaffzpm4zmzm53mc6bhpzka8wc3dfk909nzykxg34zf";
+    sha256 = "0xzzhlsfw8yd3ac4kvr3za0rlkgfw28dzxzi5i1qbhzljivvipm5";
     rev = version;
-    repo = "facter";
+    repo = pname;
     owner = "puppetlabs";
   };
 
   CXXFLAGS = "-fpermissive -Wno-error=catch-value";
   NIX_LDFLAGS = "-lblkid";
 
-  cmakeFlags = [ "-DFACTER_RUBY=${ruby}/lib/libruby.so" ];
+  cmakeFlags = [ 
+    "-DFACTER_RUBY=${ruby}/lib/libruby.so"
+    "-DRUBY_LIB_INSTALL=${placeholder "out"}/lib/ruby"
+  ];
 
-  # since we cant expand $out in cmakeFlags
-  preConfigure = "cmakeFlags+=\" -DRUBY_LIB_INSTALL=$out/lib/ruby\"";
-
-  buildInputs = [ boost cmake cpp-hocon curl leatherman libwhereami libyamlcpp openssl ruby utillinux ];
+  nativeBuildInputs = [ cmake ];
+  buildInputs = [ boost cpp-hocon curl leatherman libwhereami libyamlcpp openssl ruby utillinux ];
 
   enableParallelBuilding = true;
 
   meta = with stdenv.lib; {
-    homepage = https://github.com/puppetlabs/facter;
+    homepage = "https://github.com/puppetlabs/facter";
     description = "A system inventory tool";
     license = licenses.asl20;
     maintainers = [ maintainers.womfoo ];
diff --git a/pkgs/tools/text/fanficfare/default.nix b/pkgs/tools/text/fanficfare/default.nix
index 556b868e161be..b0d66dfd93ed4 100644
--- a/pkgs/tools/text/fanficfare/default.nix
+++ b/pkgs/tools/text/fanficfare/default.nix
@@ -2,11 +2,11 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "FanFicFare";
-  version = "3.11.0";
+  version = "3.12.0";
 
   src = python3Packages.fetchPypi {
     inherit pname version;
-    sha256 = "1w1crc32p5rnbah6x9km6yvjiy5qrmpmvzb4ignsprfxjq803r3a";
+    sha256 = "1hzb668fga9y422670iw22ggfn8a9jp2jdxs2xhzbqxnfrw08wq0";
   };
 
   propagatedBuildInputs = with python3Packages; [
diff --git a/pkgs/tools/text/tab/default.nix b/pkgs/tools/text/tab/default.nix
new file mode 100644
index 0000000000000..b7855bc753250
--- /dev/null
+++ b/pkgs/tools/text/tab/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, fetchFromBitbucket, python2 }:
+
+stdenv.mkDerivation rec {
+  version = "7.2";
+  pname = "tab";
+
+  src = fetchFromBitbucket {
+    owner = "tkatchev";
+    repo = pname;
+    rev = version;
+    sha256 = "1bm15lw0vp901dj2vsqx6yixmn7ls3brrzh1w6zgd1ksjzlm5aax";
+  };
+
+  nativeBuildInputs = [ python2 ];
+
+  doCheck = true;
+
+  checkTarget = "test";
+
+  installPhase = ''
+    runHook preInstall
+
+    install -Dm555 -t $out/bin tab
+    install -Dm444 -t $out/share/doc/tab docs/*.html
+
+    runHook postInstall
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Programming language/shell calculator";
+    homepage    = https://tkatchev.bitbucket.io/tab/;
+    license     = licenses.boost;
+    maintainers = with maintainers; [ mstarzyk ];
+    platforms   = with platforms; linux;
+  };
+}
diff --git a/pkgs/tools/text/xml/html-xml-utils/default.nix b/pkgs/tools/text/xml/html-xml-utils/default.nix
index ed19e1144691d..7ac624caff184 100644
--- a/pkgs/tools/text/xml/html-xml-utils/default.nix
+++ b/pkgs/tools/text/xml/html-xml-utils/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "html-xml-utils";
-  version = "7.7";
+  version = "7.8";
 
   src = fetchurl {
     url = "https://www.w3.org/Tools/HTML-XML-utils/${pname}-${version}.tar.gz";
-    sha256 = "1vwqp5q276j8di9zql3kygf31z2frp2c59yjqlrvvwcvccvkcdwr";
+    sha256 = "0p8df3c6mw879vdi8l63kbdqylkf1is10b067mh9kipgfy91rd4s";
   };
 
   buildInputs = [curl libiconv];