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/xnee/default.nix2
-rw-r--r--pkgs/tools/X11/xpra/default.nix4
-rw-r--r--pkgs/tools/admin/awscli/default.nix10
-rw-r--r--pkgs/tools/admin/dehydrated/default.nix4
-rw-r--r--pkgs/tools/admin/salt/default.nix11
-rw-r--r--pkgs/tools/audio/abcmidi/default.nix4
-rw-r--r--pkgs/tools/audio/aucdtect/default.nix2
-rw-r--r--pkgs/tools/backup/burp/default.nix2
-rw-r--r--pkgs/tools/filesystems/bindfs/default.nix2
-rw-r--r--pkgs/tools/filesystems/blobfuse/default.nix23
-rw-r--r--pkgs/tools/filesystems/encfs/default.nix4
-rw-r--r--pkgs/tools/filesystems/hfsprogs/default.nix45
-rw-r--r--pkgs/tools/filesystems/irods/common.nix2
-rw-r--r--pkgs/tools/filesystems/mtools/default.nix2
-rw-r--r--pkgs/tools/filesystems/ntfs-3g/default.nix2
-rw-r--r--pkgs/tools/filesystems/smbnetfs/default.nix10
-rw-r--r--pkgs/tools/filesystems/sshfs-fuse/default.nix4
-rw-r--r--pkgs/tools/filesystems/yandex-disk/default.nix5
-rw-r--r--pkgs/tools/graphics/asymptote/default.nix4
-rw-r--r--pkgs/tools/graphics/gmic/default.nix51
-rw-r--r--pkgs/tools/graphics/logstalgia/default.nix2
-rw-r--r--pkgs/tools/graphics/twilight/default.nix28
-rw-r--r--pkgs/tools/inputmethods/fcitx-engines/fcitx-libpinyin/datapath.patch16
-rw-r--r--pkgs/tools/inputmethods/fcitx-engines/fcitx-libpinyin/default.nix10
-rw-r--r--pkgs/tools/misc/bat/default.nix25
-rw-r--r--pkgs/tools/misc/bdf2psf/default.nix4
-rw-r--r--pkgs/tools/misc/flashrom/default.nix6
-rw-r--r--pkgs/tools/misc/gparted/default.nix2
-rw-r--r--pkgs/tools/misc/grc/default.nix4
-rw-r--r--pkgs/tools/misc/grub/pvgrub_image/default.nix2
-rw-r--r--pkgs/tools/misc/grub/trusted.nix2
-rw-r--r--pkgs/tools/misc/lolcat/Gemfile.lock2
-rw-r--r--pkgs/tools/misc/lolcat/gemset.nix4
-rw-r--r--pkgs/tools/misc/megacli/default.nix3
-rw-r--r--pkgs/tools/misc/opentimestamps-client/default.nix14
-rw-r--r--pkgs/tools/misc/picocom/default.nix2
-rw-r--r--pkgs/tools/misc/pk2cmd/default.nix2
-rw-r--r--pkgs/tools/misc/pspg/default.nix8
-rw-r--r--pkgs/tools/misc/sweep-visualizer/default.nix9
-rw-r--r--pkgs/tools/misc/tealdeer/default.nix34
-rw-r--r--pkgs/tools/misc/thefuck/default.nix4
-rw-r--r--pkgs/tools/misc/thin-provisioning-tools/default.nix4
-rw-r--r--pkgs/tools/misc/trash-cli/default.nix23
-rw-r--r--pkgs/tools/misc/trash-cli/nix-paths.patch26
-rw-r--r--pkgs/tools/misc/urjtag/default.nix2
-rw-r--r--pkgs/tools/misc/youtube-dl/default.nix4
-rw-r--r--pkgs/tools/misc/yubikey-personalization/default.nix4
-rw-r--r--pkgs/tools/networking/cjdns/default.nix2
-rw-r--r--pkgs/tools/networking/connect/default.nix2
-rw-r--r--pkgs/tools/networking/easyrsa/2.x.nix2
-rw-r--r--pkgs/tools/networking/easyrsa/default.nix2
-rw-r--r--pkgs/tools/networking/filegive/default.nix2
-rw-r--r--pkgs/tools/networking/inetutils/default.nix23
-rw-r--r--pkgs/tools/networking/jwhois/default.nix4
-rw-r--r--pkgs/tools/networking/logmein-hamachi/default.nix2
-rw-r--r--pkgs/tools/networking/mailutils/default.nix2
-rw-r--r--pkgs/tools/networking/miniupnpd/default.nix6
-rw-r--r--pkgs/tools/networking/netcat-openbsd/default.nix51
-rw-r--r--pkgs/tools/networking/netcat/default.nix (renamed from pkgs/tools/networking/netcat-gnu/default.nix)0
-rw-r--r--pkgs/tools/networking/nss-mdns/default.nix14
-rw-r--r--pkgs/tools/networking/openfortivpn/default.nix4
-rw-r--r--pkgs/tools/networking/openvpn/default.nix8
-rw-r--r--pkgs/tools/networking/p2p/amule/default.nix2
-rw-r--r--pkgs/tools/networking/p2p/seeks/default.nix2
-rw-r--r--pkgs/tools/networking/p2p/tahoe-lafs/default.nix2
-rw-r--r--pkgs/tools/networking/pssh/default.nix11
-rw-r--r--pkgs/tools/networking/ssmtp/default.nix4
-rw-r--r--pkgs/tools/networking/strongswan/default.nix16
-rw-r--r--pkgs/tools/networking/telnet/default.nix2
-rw-r--r--pkgs/tools/networking/toxvpn/default.nix19
-rw-r--r--pkgs/tools/networking/uget-integrator/default.nix39
-rw-r--r--pkgs/tools/networking/zerotierone/default.nix6
-rw-r--r--pkgs/tools/package-management/nix/default.nix6
-rw-r--r--pkgs/tools/package-management/packagekit/default.nix4
-rw-r--r--pkgs/tools/security/clamav/default.nix2
-rw-r--r--pkgs/tools/security/dirmngr/default.nix8
-rw-r--r--pkgs/tools/security/enpass/default.nix12
-rw-r--r--pkgs/tools/security/gnupg/1.nix2
-rw-r--r--pkgs/tools/security/logkeys/default.nix13
-rw-r--r--pkgs/tools/security/monkeysphere/default.nix5
-rw-r--r--pkgs/tools/security/mpw/default.nix2
-rw-r--r--pkgs/tools/security/notary/default.nix32
-rw-r--r--pkgs/tools/security/notary/no-git-usage.patch15
-rw-r--r--pkgs/tools/security/pass/default.nix190
-rw-r--r--pkgs/tools/security/pass/extensions/default.nix12
-rw-r--r--pkgs/tools/security/pass/extensions/import.nix37
-rw-r--r--pkgs/tools/security/pass/extensions/otp.nix (renamed from pkgs/tools/security/pass-otp/default.nix)11
-rw-r--r--pkgs/tools/security/pass/extensions/tomb.nix32
-rw-r--r--pkgs/tools/security/pass/extensions/update.nix25
-rw-r--r--pkgs/tools/security/pcsc-scm-scl011/default.nix3
-rw-r--r--pkgs/tools/security/pius/default.nix2
-rw-r--r--pkgs/tools/security/sudo/default.nix4
-rw-r--r--pkgs/tools/security/vulnix/default.nix15
-rw-r--r--pkgs/tools/security/vulnix/disable-flake8.patch23
-rw-r--r--pkgs/tools/system/dd_rescue/default.nix4
-rw-r--r--pkgs/tools/system/di/default.nix4
-rw-r--r--pkgs/tools/system/fio/default.nix6
-rw-r--r--pkgs/tools/system/freeipmi/default.nix2
-rw-r--r--pkgs/tools/system/hwinfo/default.nix4
-rw-r--r--pkgs/tools/system/ipmiutil/default.nix4
-rw-r--r--pkgs/tools/system/lr/default.nix4
-rw-r--r--pkgs/tools/system/osquery/default.nix2
-rw-r--r--pkgs/tools/system/psstop/default.nix24
-rw-r--r--pkgs/tools/system/storebrowse/default.nix2
-rw-r--r--pkgs/tools/text/highlight/default.nix6
-rw-r--r--pkgs/tools/text/namazu/default.nix2
-rw-r--r--pkgs/tools/text/numdiff/default.nix2
-rw-r--r--pkgs/tools/text/vale/default.nix10
-rw-r--r--pkgs/tools/text/vale/deps.nix519
-rw-r--r--pkgs/tools/text/xml/html-xml-utils/default.nix4
-rw-r--r--pkgs/tools/text/xml/xmlformat/default.nix28
-rw-r--r--pkgs/tools/typesetting/pdfgrep/default.nix4
-rw-r--r--pkgs/tools/video/dvgrab/default.nix2
-rw-r--r--pkgs/tools/virtualization/awsebcli/default.nix12
-rwxr-xr-xpkgs/tools/virtualization/nixos-container/nixos-container.pl17
115 files changed, 1062 insertions, 721 deletions
diff --git a/pkgs/tools/X11/xnee/default.nix b/pkgs/tools/X11/xnee/default.nix
index 63abc31e0076..b31a512e84ab 100644
--- a/pkgs/tools/X11/xnee/default.nix
+++ b/pkgs/tools/X11/xnee/default.nix
@@ -50,6 +50,6 @@ stdenv.mkDerivation rec {
     homepage = http://www.gnu.org/software/xnee/;
 
     maintainers = with stdenv.lib.maintainers; [ fuuzetsu ];
-    platforms = stdenv.lib.platforms.gnu;  # arbitrary choice
+    platforms = stdenv.lib.platforms.gnu ++ stdenv.lib.platforms.linux;  # arbitrary choice
   };
 }
diff --git a/pkgs/tools/X11/xpra/default.nix b/pkgs/tools/X11/xpra/default.nix
index b931f270dee2..9bc13b3260da 100644
--- a/pkgs/tools/X11/xpra/default.nix
+++ b/pkgs/tools/X11/xpra/default.nix
@@ -12,11 +12,11 @@ let
   inherit (python2Packages) python cython buildPythonApplication;
 in buildPythonApplication rec {
   name = "xpra-${version}";
-  version = "2.2.5";
+  version = "2.2.6";
 
   src = fetchurl {
     url = "http://xpra.org/src/${name}.tar.xz";
-    sha256 = "1q2l00nc3bgwlhjzkbk4a8x2l8z9w1799yn31icsx5hrgh98a1js";
+    sha256 = "1zyynghhzjbgnmzcibm17wpj9f7jy31d7dr373li8cwg2yl2swyz";
   };
 
   nativeBuildInputs = [ pkgconfig ];
diff --git a/pkgs/tools/admin/awscli/default.nix b/pkgs/tools/admin/awscli/default.nix
index 23908a8b66f9..4e7e2d402e90 100644
--- a/pkgs/tools/admin/awscli/default.nix
+++ b/pkgs/tools/admin/awscli/default.nix
@@ -19,11 +19,11 @@ let
 
 in py.pkgs.buildPythonApplication rec {
   pname = "awscli";
-  version = "1.14.50";
+  version = "1.15.10";
 
   src = py.pkgs.fetchPypi {
     inherit pname version;
-    sha256 = "1yiwj7cl9r1k9226mdq6pcmrs044k7p3d133lzgv9rb1dgp4053c";
+    sha256 = "0nwpanbfx5h0bad8wwvvbhpjf9r6n885bbv2w8mw7vijdgclkq8x";
   };
 
   # No tests included
@@ -42,6 +42,12 @@ in py.pkgs.buildPythonApplication rec {
     less
   ];
 
+  postPatch = ''
+    for i in {py,cfg}; do
+      substituteInPlace setup.$i --replace "botocore==1.10.10" "botocore>=1.10.9,<=1.11"
+    done
+  '';
+
   postInstall = ''
     mkdir -p $out/etc/bash_completion.d
     echo "complete -C $out/bin/aws_completer aws" > $out/etc/bash_completion.d/awscli
diff --git a/pkgs/tools/admin/dehydrated/default.nix b/pkgs/tools/admin/dehydrated/default.nix
index d4211328b959..38b70d1b5d07 100644
--- a/pkgs/tools/admin/dehydrated/default.nix
+++ b/pkgs/tools/admin/dehydrated/default.nix
@@ -1,7 +1,7 @@
 { stdenv, bash, coreutils, curl, diffutils, gawk, gnugrep, gnused, openssl, makeWrapper, fetchFromGitHub }:
 let
   pkgName = "dehydrated";
-  version = "0.6.1";
+  version = "0.6.2";
 in
 stdenv.mkDerivation rec {
   name = pkgName + "-" + version;
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
     owner = "lukas2511";
     repo = "dehydrated";
     rev = "v${version}";
-    sha256 = "0390fnycl3l4yqacwvaf7dp08rx2vvs27s06q7b478qzrn59flz4";
+    sha256 = "19d4kam0dl6l9wfd0v54w4d085jdgi1ljksnqpjj67d6sm23f2l4";
   };
 
   buildInputs = [ makeWrapper ];
diff --git a/pkgs/tools/admin/salt/default.nix b/pkgs/tools/admin/salt/default.nix
index 4077c4fb9ecb..3bef66597353 100644
--- a/pkgs/tools/admin/salt/default.nix
+++ b/pkgs/tools/admin/salt/default.nix
@@ -6,6 +6,17 @@
   extraInputs ? []
 }:
 
+let
+  # Use tornado-4.x until https://github.com/saltstack/salt/issues/45790 is resolved
+  tornado = python2Packages.tornado.overridePythonAttrs (oldAttrs: rec {
+    version = "4.5.3";
+    name = "${oldAttrs.pname}-${version}";
+    src = oldAttrs.src.override {
+      inherit version;
+      sha256 = "02jzd23l4r6fswmwxaica9ldlyc2p6q8dk6dyff7j58fmdzf853d";
+    };
+  });
+in
 python2Packages.buildPythonApplication rec {
   pname = "salt";
   version = "2017.7.4";
diff --git a/pkgs/tools/audio/abcmidi/default.nix b/pkgs/tools/audio/abcmidi/default.nix
index dc5a010ec741..ff6a7af03efe 100644
--- a/pkgs/tools/audio/abcmidi/default.nix
+++ b/pkgs/tools/audio/abcmidi/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   name = "abcMIDI-${version}";
-  version = "2018.04.18";
+  version = "2018.04.24";
 
   src = fetchzip {
     url = "http://ifdo.ca/~seymour/runabc/${name}.zip";
-    sha256 = "0kbval5ckan8vvrlpyz1mkb1ifvr149gxpb7ljbcm890p8hpaxff";
+    sha256 = "02n5xnagj1z44b23zmaxdkmn8nisrb34r8hb5xs7cr1wq7m4fmlh";
   };
 
   # There is also a file called "makefile" which seems to be preferred by the standard build phase
diff --git a/pkgs/tools/audio/aucdtect/default.nix b/pkgs/tools/audio/aucdtect/default.nix
index 244f7b406731..825e1a0cc072 100644
--- a/pkgs/tools/audio/aucdtect/default.nix
+++ b/pkgs/tools/audio/aucdtect/default.nix
@@ -1,7 +1,5 @@
 { stdenv, fetchurl, lib, rpmextract }:
 
-assert stdenv.isLinux;
-
 with lib;
 
 stdenv.mkDerivation rec {
diff --git a/pkgs/tools/backup/burp/default.nix b/pkgs/tools/backup/burp/default.nix
index c079d8272b12..4133478dbf98 100644
--- a/pkgs/tools/backup/burp/default.nix
+++ b/pkgs/tools/backup/burp/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
 
   meta = with stdenv.lib; {
     description = "BURP - BackUp and Restore Program";
-    homepage    = http://burp.grke.org;
+    homepage    = https://burp.grke.org;
     license     = licenses.agpl3;
     maintainers = with maintainers; [ tokudan ];
     platforms   = platforms.all;
diff --git a/pkgs/tools/filesystems/bindfs/default.nix b/pkgs/tools/filesystems/bindfs/default.nix
index a83ee771d699..1499e81b624e 100644
--- a/pkgs/tools/filesystems/bindfs/default.nix
+++ b/pkgs/tools/filesystems/bindfs/default.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "A FUSE filesystem for mounting a directory to another location";
-    homepage    = http://bindfs.org;
+    homepage    = https://bindfs.org;
     license     = stdenv.lib.licenses.gpl2;
     maintainers = with stdenv.lib.maintainers; [ lovek323 ];
     platforms   = stdenv.lib.platforms.unix;
diff --git a/pkgs/tools/filesystems/blobfuse/default.nix b/pkgs/tools/filesystems/blobfuse/default.nix
new file mode 100644
index 000000000000..f847cde98a9e
--- /dev/null
+++ b/pkgs/tools/filesystems/blobfuse/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchFromGitHub, cmake, pkgconfig, curl, gnutls, libgcrypt, libuuid, fuse }:
+
+stdenv.mkDerivation rec {
+  name = "blobfuse-${version}";
+  version = "1.0.1-RC-Preview";
+
+  src = fetchFromGitHub {
+    owner  = "Azure";
+    repo   = "azure-storage-fuse";
+    rev    = "v${version}";
+    sha256 = "143rxgfmprir4a7frrv8llkv61jxzq50w2v8wn32vx6gl6vci1zs";
+  };
+
+  buildInputs = [ curl gnutls libgcrypt libuuid fuse ];
+  nativeBuildInputs = [ cmake pkgconfig ];
+
+  meta = with stdenv.lib; {
+    description = "Mount an Azure Blob storage as filesystem through FUSE";
+    license = licenses.mit;
+    maintainers = with maintainers; [ jbgi ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/tools/filesystems/encfs/default.nix b/pkgs/tools/filesystems/encfs/default.nix
index 03da84f7c733..1a9951a33fd7 100644
--- a/pkgs/tools/filesystems/encfs/default.nix
+++ b/pkgs/tools/filesystems/encfs/default.nix
@@ -5,10 +5,10 @@
 
 stdenv.mkDerivation rec {
   name = "encfs-${version}";
-  version = "1.9.4";
+  version = "1.9.5";
 
   src = fetchFromGitHub {
-    sha256 = "1hp2l4yk7fsimlrrd6a675vigmyikd323l1n3mybcdng58skj2ag";
+    sha256 = "099rjb02knr6yz7przlnyj62ic0ag5ncs7vvcc36ikyqrmpqsdch";
     rev = "v${version}";
     repo = "encfs";
     owner = "vgough";
diff --git a/pkgs/tools/filesystems/hfsprogs/default.nix b/pkgs/tools/filesystems/hfsprogs/default.nix
new file mode 100644
index 000000000000..25ec31ea698a
--- /dev/null
+++ b/pkgs/tools/filesystems/hfsprogs/default.nix
@@ -0,0 +1,45 @@
+{ stdenv, fetchurl, openssl, libbsd }:
+
+let version = "332.25";
+    package_name = "hfsprogs"; in
+stdenv.mkDerivation rec {
+  name = "${package_name}-${version}";
+  srcs = [
+    (fetchurl {
+      url = "http://ftp.de.debian.org/debian/pool/main/h/hfsprogs/${package_name}_${version}-11.debian.tar.gz";
+      sha256 = "62d9b8599c66ebffbc57ce5d776e20b41341130d9b27341d63bda08460ebde7c";
+    })
+    (fetchurl {
+      url = "https://opensource.apple.com/tarballs/diskdev_cmds/diskdev_cmds-${version}.tar.gz";
+      sha256 = "74c9aeca899ed7f4bf155c65fc45bf0f250c0f6d57360ea953b1d536d9aa45e6";
+    })
+  ];
+
+  sourceRoot = "diskdev_cmds-" + version;
+  patches = [ "../debian/patches/*.patch" ];
+
+  buildInputs = [ openssl libbsd ];
+  makefile = "Makefile.lnx";
+
+  # Inspired by PKGBUILD of https://www.archlinux.org/packages/community/x86_64/hfsprogs/
+  installPhase = ''
+    # Create required package directories
+    install -m 755 -d "$out/bin"
+    install -m 755 -d "$out/share/${package_name}"
+    install -m 755 -d "$out/share/man/man8/"
+    # Copy executables
+    install -m 755 "newfs_hfs.tproj/newfs_hfs" "$out/bin/mkfs.hfsplus"
+    install -m 755 "fsck_hfs.tproj/fsck_hfs" "$out/bin/fsck.hfsplus"
+    # Copy shared data
+    install -m 644 "newfs_hfs.tproj/hfsbootdata.img" "$out/share/${package_name}/hfsbootdata"
+    # Copy man pages
+    install -m 644 "newfs_hfs.tproj/newfs_hfs.8" "$out/share/man/man8/mkfs.hfsplus.8"
+    install -m 644 "fsck_hfs.tproj/fsck_hfs.8" "$out/share/man/man8/fsck.hfsplus.8"
+  '';
+
+  meta = {
+    description = "HFS/HFS+ user space utils";
+    license = stdenv.lib.licenses.apsl20;
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/pkgs/tools/filesystems/irods/common.nix b/pkgs/tools/filesystems/irods/common.nix
index c7267aca1071..902d7d7d1a1e 100644
--- a/pkgs/tools/filesystems/irods/common.nix
+++ b/pkgs/tools/filesystems/irods/common.nix
@@ -47,7 +47,7 @@ with stdenv;
       important in data management. The development infrastructure supports exhaustive
       testing on supported platforms; plug-in support for microservices, storage resources,
       drivers, and databases; and extensive documentation, training and support services.'';
-    homepage = http://irods.org;
+    homepage = https://irods.org;
     license = stdenv.lib.licenses.bsd3;
     maintainers = [ stdenv.lib.maintainers.bzizou ];
     platforms = stdenv.lib.platforms.all;
diff --git a/pkgs/tools/filesystems/mtools/default.nix b/pkgs/tools/filesystems/mtools/default.nix
index ff311b9fae2f..e7a9963f6501 100644
--- a/pkgs/tools/filesystems/mtools/default.nix
+++ b/pkgs/tools/filesystems/mtools/default.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
   meta = {
     homepage = http://www.gnu.org/software/mtools/;
     description = "Utilities to access MS-DOS disks";
-    platforms = stdenv.lib.platforms.gnu ++ stdenv.lib.platforms.darwin;
+    platforms = stdenv.lib.platforms.unix;
     maintainers = [ ];
   };
 }
diff --git a/pkgs/tools/filesystems/ntfs-3g/default.nix b/pkgs/tools/filesystems/ntfs-3g/default.nix
index 6acf5e221d47..4bcef5a83f04 100644
--- a/pkgs/tools/filesystems/ntfs-3g/default.nix
+++ b/pkgs/tools/filesystems/ntfs-3g/default.nix
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
 
   patches = [
     (fetchpatch {
-      url = "https://sources.debian.net/data/main/n/ntfs-3g/1:2016.2.22AR.1-4/debian/patches/0003-CVE-2017-0358.patch";
+      url = "https://sources.debian.org/data/main/n/ntfs-3g/1:2016.2.22AR.1+dfsg-1/debian/patches/0003-CVE-2017-0358.patch";
       sha256 = "0hd05q9q06r18k8pmppvch1sslzqln5fvqj51d5r72g4mnpavpj3";
     })
   ];
diff --git a/pkgs/tools/filesystems/smbnetfs/default.nix b/pkgs/tools/filesystems/smbnetfs/default.nix
index 7ff42c4d1f99..9c279f99b005 100644
--- a/pkgs/tools/filesystems/smbnetfs/default.nix
+++ b/pkgs/tools/filesystems/smbnetfs/default.nix
@@ -1,15 +1,15 @@
-{ stdenv, fetchurl, fuse, samba, pkgconfig, glib }:
+{ stdenv, fetchurl, fuse, samba, pkgconfig, glib, autoconf, attr, libsecret }:
 
 stdenv.mkDerivation rec {
   name = "smbnetfs-${version}";
-  version = "0.6.0";
+  version = "0.6.1";
   src = fetchurl {
     url = "mirror://sourceforge/project/smbnetfs/smbnetfs/SMBNetFS-${version}/${name}.tar.bz2";
-    sha256 = "16sikr81ipn8v1a1zrqgnsy2as3zcaxbzkr0bm5vxy012bq0plkd";
+    sha256 = "02iqjnm6pdwc1q38z56akiwdbp0xisr6qwrmxs1lrk5mq7j8x2w4";
   };
 
-  nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [ fuse samba glib ];
+  nativeBuildInputs = [ pkgconfig autoconf ];
+  buildInputs = [ fuse samba glib attr libsecret ];
 
   meta = with stdenv.lib; {
     description = "A FUSE FS for mounting Samba shares";
diff --git a/pkgs/tools/filesystems/sshfs-fuse/default.nix b/pkgs/tools/filesystems/sshfs-fuse/default.nix
index 6fd55c369d59..6f2fb68775df 100644
--- a/pkgs/tools/filesystems/sshfs-fuse/default.nix
+++ b/pkgs/tools/filesystems/sshfs-fuse/default.nix
@@ -5,14 +5,14 @@
 let
   inherit (stdenv.lib) optional;
 in stdenv.mkDerivation rec {
-  version = "3.3.1";
+  version = "3.3.2";
   name = "sshfs-fuse-${version}";
 
   src = fetchFromGitHub {
     owner = "libfuse";
     repo = "sshfs";
     rev = "sshfs-${version}";
-    sha256 = "15z1mlad09llckkadvjfzmbv14fbq218xmb4axkmi7kzixbi41hv";
+    sha256 = "01nrdprkqynk20yw6zdn6w8xv4hdw47g5d0v5qvfw0wls2kmadyr";
   };
 
   nativeBuildInputs = [ meson pkgconfig ninja docutils ];
diff --git a/pkgs/tools/filesystems/yandex-disk/default.nix b/pkgs/tools/filesystems/yandex-disk/default.nix
index 77302f3d4a2b..2f7e80dd912c 100644
--- a/pkgs/tools/filesystems/yandex-disk/default.nix
+++ b/pkgs/tools/filesystems/yandex-disk/default.nix
@@ -1,7 +1,5 @@
 { stdenv, fetchurl, writeText, zlib, rpmextract, patchelf, which }:
 
-assert stdenv.isLinux;
-
 let
   p = if stdenv.is64bit then {
       arch = "x86_64";
@@ -13,7 +11,7 @@ let
       gcclib = "${stdenv.cc.cc.lib}/lib";
       sha256 = "09h71i3k9d24ki81jdwhnav63fqbc44glbx228s9g3cr4ap41jcx";
     };
-in 
+in
 stdenv.mkDerivation rec {
 
   name = "yandex-disk-${version}";
@@ -64,4 +62,3 @@ stdenv.mkDerivation rec {
     '';
   };
 }
-
diff --git a/pkgs/tools/graphics/asymptote/default.nix b/pkgs/tools/graphics/asymptote/default.nix
index 7337cd227a2e..01ddd6ba7fc5 100644
--- a/pkgs/tools/graphics/asymptote/default.nix
+++ b/pkgs/tools/graphics/asymptote/default.nix
@@ -51,7 +51,9 @@ stdenv.mkDerivation {
     rmdir $out/share/info/asymptote
     rm $out/share/info/dir
 
-    rm -rf "$out"/share/texmf
+    rm -rfv "$out"/share/texmf
+    mkdir -pv "$out"/share/emacs/site-lisp/${s.name}
+    mv -v "$out"/share/asymptote/*.el "$out"/share/emacs/site-lisp/${s.name}
   '';
 
   enableParallelBuilding = true;
diff --git a/pkgs/tools/graphics/gmic/default.nix b/pkgs/tools/graphics/gmic/default.nix
index a8c491b049ff..008f9af36852 100644
--- a/pkgs/tools/graphics/gmic/default.nix
+++ b/pkgs/tools/graphics/gmic/default.nix
@@ -1,36 +1,45 @@
-{ stdenv, fetchurl, fftw, zlib, libjpeg, libtiff, libpng, pkgconfig }:
+{ stdenv, fetchurl, fetchFromGitHub, cmake, ninja, pkgconfig
+, opencv, openexr, graphicsmagick, fftw, zlib, libjpeg, libtiff, libpng
+, withGimpPlugin ? true, gimp ? null}:
 
-stdenv.mkDerivation rec {
+assert withGimpPlugin -> gimp != null;
+
+let
+  version = "2.2.2";
+
+  # CMakeLists.txt is missing from the tarball and Makefile is terrible
+  CMakeLists = fetchurl {
+    url = "https://github.com/dtschump/gmic/raw/v.${version}/CMakeLists.txt";
+    sha256 = "0lv5jrg98cpbk13fl4xm7l4sk1axfz054q570bpi741w815d7cpg";
+  };
+in stdenv.mkDerivation rec {
   name = "gmic-${version}";
-  version = "2.2.1";
+
+  outputs = [ "out" "lib" "dev" "man" ] ++ stdenv.lib.optional withGimpPlugin "gimpPlugin";
 
   src = fetchurl {
     url = "http://gmic.eu/files/source/gmic_${version}.tar.gz";
-    sha256 = "0iac1zaix2zv1dfp45ca0wk9pj6k02gf8l1vmg820z8jd12pa19w";
+    sha256 = "0zqfj2ym5nn3ff93xh2wf9ayxqlznabbdi00xw4lm7vw3iwkzqnc";
   };
 
-  nativeBuildInputs = [ pkgconfig ];
+  nativeBuildInputs = [ cmake ninja pkgconfig ];
 
-  buildInputs = [ fftw zlib libjpeg libtiff libpng ];
+  buildInputs = [
+    fftw zlib libjpeg libtiff libpng opencv openexr graphicsmagick
+  ] ++ stdenv.lib.optionals withGimpPlugin [ gimp gimp.gtk ];
 
-  sourceRoot = "${name}/src";
+  cmakeFlags = [
+    "-DBUILD_LIB_STATIC=OFF"
+    "-DBUILD_PLUGIN=${if withGimpPlugin then "ON" else "OFF"}"
+    "-DENABLE_DYNAMIC_LINKING=ON"
+  ];
 
-  preBuild = ''
-    buildFlagsArray=( \
-      CURL_CFLAGS= CURL_LIBS= \
-      OPENEXR_CFLAGS= OPENEXR_LIBS= \
-      OPENCV_CFLAGS= OPENCV_LIBS= \
-      X11_CFLAGS="-Dcimg_display=0" X11_LIBS= \
-      cli \
-    )
+  postPatch = ''
+    cp ${CMakeLists} CMakeLists.txt
   '';
 
-  installPhase = ''
-    mkdir -p $out/bin
-    mkdir -p $out/share/man/man1
-
-    cp -v gmic $out/bin/
-    cp -v ../man/gmic.1.gz $out/share/man/man1/
+  preConfigure = stdenv.lib.optionalString withGimpPlugin ''
+    cmakeFlags="$cmakeFlags -DPLUGIN_INSTALL_PREFIX=$gimpPlugin/${gimp.targetPluginDir}"
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/tools/graphics/logstalgia/default.nix b/pkgs/tools/graphics/logstalgia/default.nix
index 0fa991638457..be4cf0f493b6 100644
--- a/pkgs/tools/graphics/logstalgia/default.nix
+++ b/pkgs/tools/graphics/logstalgia/default.nix
@@ -38,7 +38,7 @@ stdenv.mkDerivation rec {
       a Miscellaneous section.
     '';
 
-    platforms = platforms.gnu;
+    platforms = platforms.gnu ++ platforms.linux;
     maintainers = with maintainers; [ pSub ];
   };
 }
diff --git a/pkgs/tools/graphics/twilight/default.nix b/pkgs/tools/graphics/twilight/default.nix
new file mode 100644
index 000000000000..8d1ee7b7bfbe
--- /dev/null
+++ b/pkgs/tools/graphics/twilight/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchFromGitHub
+, libGL, libGLU, freeglut, libX11 }:
+
+let
+  version = "2018-04-19";
+in stdenv.mkDerivation rec {
+  name = "twilight-${version}";
+
+  src = fetchFromGitHub {
+    owner = "tweakoz";
+    repo = "twilight";
+    rev = "43f21d15c2a8923c9d707bdf3789f480bfd4b36d";
+    sha256 = "0mmmi4jj8yd8wnah6kx5na782sjycszgzim33dfalr0ph361m4pz";
+  };
+
+  buildInputs = [ libGL libGLU freeglut libX11 ];
+
+  installPhase = ''
+    install -Dm755 twilight $out/bin/twilight
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Redo of IRIX twilight backdrop in old school OpenGL";
+    homepage = src.meta.homepage;
+    license = licenses.mit;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/tools/inputmethods/fcitx-engines/fcitx-libpinyin/datapath.patch b/pkgs/tools/inputmethods/fcitx-engines/fcitx-libpinyin/datapath.patch
new file mode 100644
index 000000000000..84dd5fc8f462
--- /dev/null
+++ b/pkgs/tools/inputmethods/fcitx-engines/fcitx-libpinyin/datapath.patch
@@ -0,0 +1,16 @@
+--- a/src/utils.cpp
++++ b/src/utils.cpp
+@@ -9,12 +9,7 @@ char* FcitxLibPinyinGetSysPath(LIBPINYIN_LANGUAGE_TYPE type)
+ #ifdef LIBPINYIN_TOOLS_FOUND
+     if (type == LPLT_Simplified) {
+ #endif
+-        /* portable detect here */
+-        if (getenv("FCITXDIR")) {
+-            syspath = fcitx_utils_get_fcitx_path_with_filename("datadir", "libpinyin/data");
+-        } else {
+-            syspath = strdup(LIBPINYIN_PKGDATADIR "/data");
+-        }
++        syspath = strdup(LIBPINYIN_PKGDATADIR "/data");
+ #ifdef LIBPINYIN_TOOLS_FOUND
+     }
+     else {
diff --git a/pkgs/tools/inputmethods/fcitx-engines/fcitx-libpinyin/default.nix b/pkgs/tools/inputmethods/fcitx-engines/fcitx-libpinyin/default.nix
index f2610efd2eb4..4468f1fa263a 100644
--- a/pkgs/tools/inputmethods/fcitx-engines/fcitx-libpinyin/default.nix
+++ b/pkgs/tools/inputmethods/fcitx-engines/fcitx-libpinyin/default.nix
@@ -12,6 +12,16 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ pkgconfig  ];
   buildInputs = [ fcitx-qt5 qtbase qtwebengine.dev cmake fcitx gettext libpinyin glib pcre dbus ];
 
+  # With a typical installation via NixOS option i18n.inputMethod.fcitx.engines,
+  # the FCITXDIR environment variable is set to $out of fcitx-with-plugins,
+  # which leads to an incorrect path for pinyin data.
+  #
+  # It is impossible or difficult to fix this issue without patching. We want
+  # FCITXDIR to point into libpinyin, which is currently not symlinked within
+  # fcitx-with-plugins (only fcitx-libpinyin is symlinked). Also, FCITXDIR
+  # doesn't accept multiple directories.
+  patches = [ ./datapath.patch ];
+
   preInstall = ''
     substituteInPlace src/cmake_install.cmake \
       --replace ${fcitx} $out
diff --git a/pkgs/tools/misc/bat/default.nix b/pkgs/tools/misc/bat/default.nix
new file mode 100644
index 000000000000..5516f4a26a3d
--- /dev/null
+++ b/pkgs/tools/misc/bat/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, pkgs, rustPlatform, fetchFromGitHub }:
+
+rustPlatform.buildRustPackage rec {
+  name    = "bat-${version}";
+  version = "0.2.0";
+
+  src = fetchFromGitHub {
+    owner  = "sharkdp";
+    repo   = "bat";
+    rev    = "v${version}";
+    sha256 = "0qbjkrakcpvnzzljifykw88g0qmmk60id23sjvhp4md54h4xg29p";
+  };
+
+  cargoSha256 = "07r10wwxv8svrw94djl092zj512868izlxldsiljfj34230abl02";
+
+  buildInputs = with pkgs; [ openssl pkgconfig cmake zlib file perl curl ];
+
+  meta = with stdenv.lib; {
+    description = "A cat(1) clone with syntax highlighting and Git integration";
+    homepage    = https://github.com/sharkdp/bat;
+    license     = licenses.mit;
+    maintainers = [];
+    platforms   = platforms.linux;
+  };
+}
diff --git a/pkgs/tools/misc/bdf2psf/default.nix b/pkgs/tools/misc/bdf2psf/default.nix
index e06c2dee000d..5e4b6994094a 100644
--- a/pkgs/tools/misc/bdf2psf/default.nix
+++ b/pkgs/tools/misc/bdf2psf/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   name = "bdf2psf-${version}";
-  version = "1.178";
+  version = "1.184";
 
   src = fetchurl {
     url = "mirror://debian/pool/main/c/console-setup/bdf2psf_${version}_all.deb";
-    sha256 = "1ngxa7hzfhvfhkvyc2qib3qyql5zz8rjg559wpi2jsi4hibj84vc";
+    sha256 = "0lyxiwm0586b8gyl13ks2rqqa6abkqaxc4i08hvwyza1k1cqm2jc";
   };
 
   buildInputs = [ dpkg ];
diff --git a/pkgs/tools/misc/flashrom/default.nix b/pkgs/tools/misc/flashrom/default.nix
index b1e093126584..1bdab1e841f8 100644
--- a/pkgs/tools/misc/flashrom/default.nix
+++ b/pkgs/tools/misc/flashrom/default.nix
@@ -9,6 +9,12 @@ stdenv.mkDerivation rec {
     sha256 = "0i9wg1lyfg99bld7d00zqjm9f0lk6m0q3h3n9c195c9yysq5ccfb";
   };
 
+  # Newer versions of libusb deprecate some API flashrom uses.
+  postPatch = ''
+    substituteInPlace Makefile \
+      --replace "-Werror" "-Werror -Wno-error=deprecated-declarations -Wno-error=unused-const-variable="
+  '';
+
   nativeBuildInputs = [ pkgconfig ];
   buildInputs = [ libftdi pciutils ];
 
diff --git a/pkgs/tools/misc/gparted/default.nix b/pkgs/tools/misc/gparted/default.nix
index 451bcae1efd1..ca078c16ab6b 100644
--- a/pkgs/tools/misc/gparted/default.nix
+++ b/pkgs/tools/misc/gparted/default.nix
@@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
       partitions. GParted enables you to change the partition organization
       while preserving the partition contents.
     '';
-    homepage = http://gparted.org;
+    homepage = https://gparted.org;
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
   };
diff --git a/pkgs/tools/misc/grc/default.nix b/pkgs/tools/misc/grc/default.nix
index c554c13bb4ab..451828b0f47b 100644
--- a/pkgs/tools/misc/grc/default.nix
+++ b/pkgs/tools/misc/grc/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   name    = "grc-${version}";
-  version = "1.11.1";
+  version = "1.11.3";
 
   src = fetchFromGitHub {
     owner  = "garabik";
     repo   = "grc";
     rev    = "v${version}";
-    sha256 = "10h65qmv2cymixzfsckfcn6f01xsjzfq1x303rv01nibniwbq5z9";
+    sha256 = "0b3wx9zr7l642hizk93ysbdss7rfymn22b2ykj4kpkf1agjkbv35";
   };
 
   buildInputs = with python3Packages; [ wrapPython makeWrapper ];
diff --git a/pkgs/tools/misc/grub/pvgrub_image/default.nix b/pkgs/tools/misc/grub/pvgrub_image/default.nix
index ee6e5065f40b..df5e3f15e95a 100644
--- a/pkgs/tools/misc/grub/pvgrub_image/default.nix
+++ b/pkgs/tools/misc/grub/pvgrub_image/default.nix
@@ -37,6 +37,6 @@ stdenv.mkDerivation rec {
          Xen guests
       '';
 
-    platforms = platforms.gnu;
+    platforms = platforms.gnu ++ platforms.linux;
   };
 })
diff --git a/pkgs/tools/misc/grub/trusted.nix b/pkgs/tools/misc/grub/trusted.nix
index e57c98bf51b0..2bf7e3dcf43b 100644
--- a/pkgs/tools/misc/grub/trusted.nix
+++ b/pkgs/tools/misc/grub/trusted.nix
@@ -98,6 +98,6 @@ stdenv.mkDerivation rec {
     description = "GRUB 2.0 extended with TCG (TPM) support for integrity measured boot process (trusted boot)";
     homepage = https://github.com/Sirrix-AG/TrustedGRUB2;
     license = licenses.gpl3Plus;
-    platforms = platforms.gnu;
+    platforms = platforms.gnu ++ platforms.linux;
   };
 }
diff --git a/pkgs/tools/misc/lolcat/Gemfile.lock b/pkgs/tools/misc/lolcat/Gemfile.lock
index 1ef7e5527961..3c4646ddf48f 100644
--- a/pkgs/tools/misc/lolcat/Gemfile.lock
+++ b/pkgs/tools/misc/lolcat/Gemfile.lock
@@ -1,7 +1,7 @@
 GEM
   remote: http://rubygems.org/
   specs:
-    lolcat (99.9.10)
+    lolcat (99.9.11)
       manpages (~> 0.6.1)
       paint (~> 2.0.0)
       trollop (~> 2.1.2)
diff --git a/pkgs/tools/misc/lolcat/gemset.nix b/pkgs/tools/misc/lolcat/gemset.nix
index 78677edcc34b..86069f7ecc0e 100644
--- a/pkgs/tools/misc/lolcat/gemset.nix
+++ b/pkgs/tools/misc/lolcat/gemset.nix
@@ -3,10 +3,10 @@
     dependencies = ["manpages" "paint" "trollop"];
     source = {
       remotes = ["http://rubygems.org"];
-      sha256 = "0fidwmgywkklxf2a4f4dl82b8mx4w4n73vqm6jqgyqd3nfmgysnl";
+      sha256 = "1z0j354sj2qm2srgz3i28s347fwylvv1j614806cr33zcd1j4mwp";
       type = "gem";
     };
-    version = "99.9.10";
+    version = "99.9.11";
   };
   manpages = {
     source = {
diff --git a/pkgs/tools/misc/megacli/default.nix b/pkgs/tools/misc/megacli/default.nix
index 5341c9840be8..b91c7d2378bb 100644
--- a/pkgs/tools/misc/megacli/default.nix
+++ b/pkgs/tools/misc/megacli/default.nix
@@ -1,7 +1,5 @@
 { stdenv, rpmextract, ncurses5, patchelf, makeWrapper, requireFile, unzip }:
 
-assert stdenv.system == "x86_64-linux";
-
 stdenv.mkDerivation rec {
   name = "megacli-8.07.07";
 
@@ -31,5 +29,6 @@ stdenv.mkDerivation rec {
   meta = {
     description = "CLI program for LSI MegaRAID cards, which also works with some Dell PERC RAID cards";
     license = stdenv.lib.licenses.unfree;
+    platforms = [ "x86_64-linux" ];
   };
 }
diff --git a/pkgs/tools/misc/opentimestamps-client/default.nix b/pkgs/tools/misc/opentimestamps-client/default.nix
index a062aa992be6..3fbd874503de 100644
--- a/pkgs/tools/misc/opentimestamps-client/default.nix
+++ b/pkgs/tools/misc/opentimestamps-client/default.nix
@@ -1,19 +1,21 @@
 { lib, buildPythonApplication, fetchFromGitHub, isPy3k
-, opentimestamps, GitPython, pysocks }:
+, opentimestamps, appdirs, GitPython, pysocks }:
 
 buildPythonApplication rec {
-  name = "opentimestamps-client-${version}";
-  version = "0.5.1";
+  pname = "opentimestamps-client";
+  version = "0.6.0";
   disabled = (!isPy3k);
 
+  # We can't use the pypi source because it doesn't include README.md which is
+  # needed in setup.py
   src = fetchFromGitHub {
     owner = "opentimestamps";
     repo = "opentimestamps-client";
-    rev = "opentimestamps-client-v0.5.1";
-    sha256 = "0s549xkb75r5wyvjlfmac8a1df6w0y55l98f492zsihdns1d6rzq";
+    rev = "opentimestamps-client-v${version}";
+    sha256 = "05m8nllqad3k69mvby5q08y22i0wrj84gqifdgcldimrrn1i00xp";
   };
 
-  propagatedBuildInputs = [ opentimestamps GitPython pysocks ];
+  propagatedBuildInputs = [ opentimestamps appdirs GitPython pysocks ];
 
   meta = {
     description = "Command-line tool to create and verify OpenTimestamps proofs";
diff --git a/pkgs/tools/misc/picocom/default.nix b/pkgs/tools/misc/picocom/default.nix
index 57be275d32af..bb66b97039da 100644
--- a/pkgs/tools/misc/picocom/default.nix
+++ b/pkgs/tools/misc/picocom/default.nix
@@ -26,6 +26,6 @@ stdenv.mkDerivation rec {
     description = "Minimal dumb-terminal emulation program";
     homepage = https://github.com/npat-efault/picocom/;
     license = stdenv.lib.licenses.gpl2Plus;
-    platforms = stdenv.lib.platforms.gnu;  # arbitrary choice
+    platforms = stdenv.lib.platforms.gnu ++ stdenv.lib.platforms.linux;  # arbitrary choice
   };
 }
diff --git a/pkgs/tools/misc/pk2cmd/default.nix b/pkgs/tools/misc/pk2cmd/default.nix
index 2f69517e4bd2..4312aecaacd6 100644
--- a/pkgs/tools/misc/pk2cmd/default.nix
+++ b/pkgs/tools/misc/pk2cmd/default.nix
@@ -1,7 +1,5 @@
 {stdenv, fetchurl, libusb, makeWrapper}:
 
-assert stdenv.isLinux;
-
 stdenv.mkDerivation {
   name = "pk2cmd-1.20";
   src = fetchurl {
diff --git a/pkgs/tools/misc/pspg/default.nix b/pkgs/tools/misc/pspg/default.nix
index b9543dc143cf..ddd76a344e01 100644
--- a/pkgs/tools/misc/pspg/default.nix
+++ b/pkgs/tools/misc/pspg/default.nix
@@ -1,18 +1,18 @@
-{ stdenv, fetchFromGitHub, gnugrep, ncurses, pkgconfig }:
+{ stdenv, fetchFromGitHub, gnugrep, ncurses, pkgconfig, readline }:
 
 stdenv.mkDerivation rec {
   name = "pspg-${version}";
-  version = "1.0.0";
+  version = "1.1.0";
 
   src = fetchFromGitHub {
     owner = "okbob";
     repo = "pspg";
     rev = "${version}";
-    sha256 = "1swrg4bg7i4xpdrsg8dsfldbxaffni04x8i1s0g6h691qcin675v";
+    sha256 = "10r6jfcqw4wclp84f07g3bda844csgm4sh7cjsnk2smmal7nhybs";
   };
 
   nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [ gnugrep ncurses ];
+  buildInputs = [ gnugrep ncurses readline ];
 
   preBuild = ''
     makeFlags="PREFIX=$out PKG_CONFIG=${pkgconfig}/bin/pkg-config"
diff --git a/pkgs/tools/misc/sweep-visualizer/default.nix b/pkgs/tools/misc/sweep-visualizer/default.nix
index c1f3fbea8e5c..cbf849494b75 100644
--- a/pkgs/tools/misc/sweep-visualizer/default.nix
+++ b/pkgs/tools/misc/sweep-visualizer/default.nix
@@ -24,10 +24,9 @@
     buildPhase = ":";
 
     installPhase = ''
-      mkdir -p $out/lib $out/bin $out/share/sweep-visualizer
+      mkdir -p $out/bin $out/share/sweep-visualizer
       mv usr/share/* $out/share
       mv opt/Sweep\ Visualizer\ BETA/* $out/share/sweep-visualizer/
-      mv $out/share/sweep-visualizer/*.so $out/lib/
       ln -s $out/share/sweep-visualizer/sweep_visualizer $out/bin/sweep_visualizer
     '';
 
@@ -40,12 +39,12 @@
       ];
       runtimeLibs = lib.makeLibraryPath [ libudev0-shim ];
     in ''
-      for lib in $out/lib/*.so; do
-        patchelf --set-rpath "$out/lib:${libPath}" $lib
+      for lib in $out/share/sweep-visualizer/*.so; do
+        patchelf --set-rpath "$out/share/sweep-visualizer:${libPath}" $lib
       done
       patchelf \
         --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
-        --set-rpath "$out/lib:${libPath}" \
+        --set-rpath "$out/share/sweep-visualizer:${libPath}" \
         $out/share/sweep-visualizer/sweep_visualizer
       wrapProgram "$out/bin/sweep_visualizer" --prefix LD_LIBRARY_PATH : ${runtimeLibs}
     '';
diff --git a/pkgs/tools/misc/tealdeer/default.nix b/pkgs/tools/misc/tealdeer/default.nix
new file mode 100644
index 000000000000..fe0aa6cc3089
--- /dev/null
+++ b/pkgs/tools/misc/tealdeer/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, rustPlatform, fetchFromGitHub, pkgconfig, openssl, cacert, curl }:
+
+rustPlatform.buildRustPackage rec {
+  name = "tealdeer-${version}";
+  version = "1.0.0";
+
+  src = fetchFromGitHub {
+    owner = "dbrgn";
+    repo = "tealdeer";
+    rev = "v${version}";
+    sha256 = "0mkcja9agkbj2i93hx01r77w66ca805v4wvivcnrqmzid001717v";
+  };
+
+  cargoSha256 = "1qrvic7b6g3f3gjzx7x97ipp7ppa79c0aawn0lsav0c9xxzl44jq";
+
+  buildInputs = [ openssl cacert curl ];
+
+  nativeBuildInputs = [ pkgconfig ];
+  
+  NIX_SSL_CERT_FILE = "${cacert}/etc/ssl/certs/ca-bundle.crt";
+
+  # disable tests for now since one needs network
+  # what is unavailable in sandbox build
+  # and i can't disable just this one
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    description = "An implementation of tldr in Rust";
+    homepage = "https://github.com/dbrgn/tealdeer";
+    maintainers = with maintainers; [ davidak ];
+    license = with licenses; [ asl20 mit ];
+    platforms = platforms.all;
+  };
+}
diff --git a/pkgs/tools/misc/thefuck/default.nix b/pkgs/tools/misc/thefuck/default.nix
index 788529125da5..7befd344a4d8 100644
--- a/pkgs/tools/misc/thefuck/default.nix
+++ b/pkgs/tools/misc/thefuck/default.nix
@@ -5,13 +5,13 @@
 
 buildPythonApplication rec {
   pname = "thefuck";
-  version = "3.25";
+  version = "3.26";
 
   src = fetchFromGitHub {
     owner = "nvbn";
     repo = "${pname}";
     rev = version;
-    sha256 = "090mg809aac932lgqmjxm4za53lg3bjprj562sp189k47xs4wijv";
+    sha256 = "0iyihbp94z38xajy8yfbn3ky7irnam1zwyswg34cw4kkfgggrwhz";
   };
 
   propagatedBuildInputs = [ colorama decorator psutil pyte six ];
diff --git a/pkgs/tools/misc/thin-provisioning-tools/default.nix b/pkgs/tools/misc/thin-provisioning-tools/default.nix
index 5d43679b6fe6..8b9fa4f2f3fc 100644
--- a/pkgs/tools/misc/thin-provisioning-tools/default.nix
+++ b/pkgs/tools/misc/thin-provisioning-tools/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   name = "thin-provisioning-tools-${version}";
-  version = "0.6.3";
+  version = "0.7.5";
 
   src = fetchFromGitHub {
     owner = "jthornber";
     repo = "thin-provisioning-tools";
     rev = "v${version}";
-    sha256 = "0glwhfzwj9afbqdv59ppgfqy7rik8m0vcap7279fpnvwpr1c2p5n";
+    sha256 = "1ibg5wxrbqg4pr3f6aacqm42fxpwn5q00j8ldy9mw4an3ck41cwa";
   };
 
   nativeBuildInputs = [ autoreconfHook ];
diff --git a/pkgs/tools/misc/trash-cli/default.nix b/pkgs/tools/misc/trash-cli/default.nix
index 77308ecf2ed8..7be2e3fc61d7 100644
--- a/pkgs/tools/misc/trash-cli/default.nix
+++ b/pkgs/tools/misc/trash-cli/default.nix
@@ -1,7 +1,5 @@
-{ stdenv, fetchFromGitHub, fetchpatch, coreutils
-, python3, python3Packages, substituteAll }:
-
-assert stdenv.isLinux;
+{ stdenv, fetchFromGitHub, fetchpatch, python3, python3Packages
+, lib, makeWrapper, coreutils }:
 
 python3Packages.buildPythonApplication rec {
   name = "trash-cli-${version}";
@@ -16,12 +14,6 @@ python3Packages.buildPythonApplication rec {
   };
 
   patches = [
-    (substituteAll {
-      src = ./nix-paths.patch;
-      df = "${coreutils}/bin/df";
-      libc = "${stdenv.cc.libc.out}/lib/libc.so.6";
-    })
-
     # Fix build on Python 3.6.
     (fetchpatch {
       url = "https://github.com/andreafrancia/trash-cli/commit/a21b80d1e69783bb09376c3f60dd2f2a10578805.patch";
@@ -30,10 +22,19 @@ python3Packages.buildPythonApplication rec {
   ];
 
   buildInputs = with python3Packages; [ nose mock ];
+  nativeBuildInputs = [ makeWrapper ];
+
+  preFixup = ''
+    for bin in $out/bin/*; do
+      wrapProgram $bin \
+        --prefix PATH : ${lib.makeBinPath [ coreutils ]} \
+        --prefix DYLD_LIBRARY_PATH : ${lib.makeSearchPath "lib" (lib.optional (stdenv.hostPlatform.libc == "glibc") (lib.getDev stdenv.cc.libc))}
+    done
+  '';
 
   checkPhase = "nosetests";
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = https://github.com/andreafrancia/trash-cli;
     description = "Command line tool for the desktop trash can";
     maintainers = [ maintainers.rycee ];
diff --git a/pkgs/tools/misc/trash-cli/nix-paths.patch b/pkgs/tools/misc/trash-cli/nix-paths.patch
deleted file mode 100644
index d7b485eec158..000000000000
--- a/pkgs/tools/misc/trash-cli/nix-paths.patch
+++ /dev/null
@@ -1,26 +0,0 @@
---- a/trashcli/list_mount_points.py	2014-12-23 10:10:43.808470486 +0100
-+++ a/trashcli/list_mount_points.py	2014-12-23 10:19:04.954796457 +0100
-@@ -12,7 +12,7 @@ def mount_points_from_getmnt():
- 
- def mount_points_from_df():
-     import subprocess
--    df_output = subprocess.Popen(["df", "-P"], stdout=subprocess.PIPE).stdout
-+    df_output = subprocess.Popen(["@df@", "-P"], stdout=subprocess.PIPE).stdout
-     return list(_mount_points_from_df_output(df_output))
- 
- def _mount_points_from_df_output(df_output):
-@@ -46,13 +46,7 @@ def _mounted_filesystems_from_getmnt() :
-                     ("mnt_freq", c_int),       # Dump frequency (in days).
-                     ("mnt_passno", c_int)]     # Pass number for `fsck'.
- 
--    if sys.platform == "cygwin":
--        libc_name = "cygwin1.dll"
--    else:
--        libc_name = find_library("c")
--
--    if libc_name == None :
--        libc_name="/lib/libc.so.6" # fix for my Gentoo 4.0
-+    libc_name = "@libc@"
- 
-     libc = cdll.LoadLibrary(libc_name)
-     libc.getmntent.restype = POINTER(mntent_struct)
diff --git a/pkgs/tools/misc/urjtag/default.nix b/pkgs/tools/misc/urjtag/default.nix
index 99cd407a9ae4..25687a3dbe1e 100644
--- a/pkgs/tools/misc/urjtag/default.nix
+++ b/pkgs/tools/misc/urjtag/default.nix
@@ -34,7 +34,7 @@ stdenv.mkDerivation rec {
     description = "Enhanced, modern tool for communicating over JTAG with flash chips, CPUs,and many more";
     homepage = http://urjtag.org/;
     license = with stdenv.lib.licenses; [ gpl2Plus lgpl21Plus ];
-    platforms = stdenv.lib.platforms.gnu;  # arbitrary choice
+    platforms = stdenv.lib.platforms.gnu ++ stdenv.lib.platforms.linux;  # arbitrary choice
     maintainers = with stdenv.lib.maintainers; [ lowfatcomputing ];
   };
 }
diff --git a/pkgs/tools/misc/youtube-dl/default.nix b/pkgs/tools/misc/youtube-dl/default.nix
index 1f7d8c549e42..d2e490373da0 100644
--- a/pkgs/tools/misc/youtube-dl/default.nix
+++ b/pkgs/tools/misc/youtube-dl/default.nix
@@ -16,11 +16,11 @@ with stdenv.lib;
 buildPythonApplication rec {
 
   pname = "youtube-dl";
-  version = "2018.04.16";
+  version = "2018.05.01";
 
   src = fetchurl {
     url = "https://yt-dl.org/downloads/${version}/${pname}-${version}.tar.gz";
-    sha256 = "046zg8pww2xg1yibh7c1a8jcg8f1znr4hsz1l1da03djcp6na99d";
+    sha256 = "1mpyqdyjip5a6nn8lj1kaaab4pj75js6i8qzgap8bmn0k46awb1n";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/tools/misc/yubikey-personalization/default.nix b/pkgs/tools/misc/yubikey-personalization/default.nix
index 462f8d8e99a2..48827ec0aae4 100644
--- a/pkgs/tools/misc/yubikey-personalization/default.nix
+++ b/pkgs/tools/misc/yubikey-personalization/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   name = "yubikey-personalization-${version}";
-  version = "1.18.1";
+  version = "1.19.0";
 
   src = fetchurl {
     url = "https://developers.yubico.com/yubikey-personalization/Releases/ykpers-${version}.tar.gz";
-    sha256 = "0mjjkk6p8d0kblj6vzld4v188y40ynprvd2hnfh7m1hs28wbkzcz";
+    sha256 = "104lc0nnqdr365fa7c4vrq67rxp1dp8idndsh9jlhnj9dnhszj1b";
   };
 
   nativeBuildInputs = [ pkgconfig ];
diff --git a/pkgs/tools/networking/cjdns/default.nix b/pkgs/tools/networking/cjdns/default.nix
index d16e730b5abf..817da08c05e3 100644
--- a/pkgs/tools/networking/cjdns/default.nix
+++ b/pkgs/tools/networking/cjdns/default.nix
@@ -16,7 +16,7 @@ stdenv.mkDerivation {
     stdenv.lib.optional stdenv.isLinux utillinux;
 
   buildPhase =
-    stdenv.lib.optionalString stdenv.isArm "Seccomp_NO=1 "
+    stdenv.lib.optionalString stdenv.isAarch32 "Seccomp_NO=1 "
     + "bash do";
   installPhase = ''
     install -Dt "$out/bin/" cjdroute makekeys privatetopublic publictoip6
diff --git a/pkgs/tools/networking/connect/default.nix b/pkgs/tools/networking/connect/default.nix
index 387987c588ad..f7a0c00fb481 100644
--- a/pkgs/tools/networking/connect/default.nix
+++ b/pkgs/tools/networking/connect/default.nix
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
       '';
     homepage = https://bitbucket.org/gotoh/connect/wiki/Home;
     license = stdenv.lib.licenses.gpl2Plus;
-    platforms = stdenv.lib.platforms.gnu;
+    platforms = stdenv.lib.platforms.gnu ++ stdenv.lib.platforms.linux;
     maintainers = with stdenv.lib.maintainers; [ jcumming ];
   };
 }
diff --git a/pkgs/tools/networking/easyrsa/2.x.nix b/pkgs/tools/networking/easyrsa/2.x.nix
index b33034515fb6..3c6c5f3d2992 100644
--- a/pkgs/tools/networking/easyrsa/2.x.nix
+++ b/pkgs/tools/networking/easyrsa/2.x.nix
@@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
 
   meta = with stdenv.lib; {
     description = "Simple shell based CA utility";
-    homepage = http://openvpn.net/;
+    homepage = https://openvpn.net/;
     license = licenses.gpl2;
     maintainers = [ maintainers.offline ];
     platforms = platforms.linux;
diff --git a/pkgs/tools/networking/easyrsa/default.nix b/pkgs/tools/networking/easyrsa/default.nix
index 59d97a4a18b6..fcc6c1d86bdf 100644
--- a/pkgs/tools/networking/easyrsa/default.nix
+++ b/pkgs/tools/networking/easyrsa/default.nix
@@ -32,7 +32,7 @@ in stdenv.mkDerivation rec {
 
   meta = with stdenv.lib; {
     description = "Simple shell based CA utility";
-    homepage = http://openvpn.net/;
+    homepage = https://openvpn.net/;
     license = licenses.gpl2;
     maintainers = [ maintainers.offline ];
     platforms = platforms.linux;
diff --git a/pkgs/tools/networking/filegive/default.nix b/pkgs/tools/networking/filegive/default.nix
index d20cb3c37859..6fef6a9e7fa9 100644
--- a/pkgs/tools/networking/filegive/default.nix
+++ b/pkgs/tools/networking/filegive/default.nix
@@ -1,7 +1,5 @@
 { stdenv, fetchurl, fetchgit, go }:
 
-assert stdenv.isLinux && (stdenv.isi686 || stdenv.isx86_64 || stdenv.isArm);
-
 let
 
   # Code with BSD license
diff --git a/pkgs/tools/networking/inetutils/default.nix b/pkgs/tools/networking/inetutils/default.nix
index c5ecb5eb6dad..c050758a8ee3 100644
--- a/pkgs/tools/networking/inetutils/default.nix
+++ b/pkgs/tools/networking/inetutils/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, ncurses, perl, help2man }:
+{ stdenv, lib, fetchurl, ncurses, perl, help2man }:
 
 stdenv.mkDerivation rec {
   name = "inetutils-1.9.4";
@@ -16,25 +16,20 @@ stdenv.mkDerivation rec {
   buildInputs = [ ncurses /* for `talk' */ perl /* for `whois' */ help2man ];
 
   configureFlags = [ "--with-ncurses-include-dir=${ncurses.dev}/include" ]
-  ++ stdenv.lib.optionals stdenv.hostPlatform.isMusl [ # Musl doesn't define rcmd
+  ++ lib.optionals stdenv.hostPlatform.isMusl [ # Musl doesn't define rcmd
     "--disable-rcp"
     "--disable-rsh"
     "--disable-rlogin"
     "--disable-rexec"
-  ];
+  ] ++ lib.optional stdenv.isDarwin  "--disable-servers";
 
   # Test fails with "UNIX socket name too long", probably because our
   # $TMPDIR is too long.
-  #doCheck = true;
-
+  doCheck = false;
 
-  postInstall = ''
-    # XXX: These programs are normally installed setuid but since it
-    # fails, they end up being non-executable, hence this hack.
-    chmod +x $out/bin/{ping,ping6,${stdenv.lib.optionalString (!stdenv.hostPlatform.isMusl) ''rcp,rlogin,rsh,''}traceroute}
-  '';
+  installFlags = [ "SUIDMODE=" ];
 
-  meta = {
+  meta = with lib; {
     description = "Collection of common network programs";
 
     longDescription =
@@ -45,9 +40,9 @@ stdenv.mkDerivation rec {
       '';
 
     homepage = http://www.gnu.org/software/inetutils/;
-    license = stdenv.lib.licenses.gpl3Plus;
+    license = licenses.gpl3Plus;
 
-    maintainers = [ ];
-    platforms = stdenv.lib.platforms.gnu;
+    maintainers = with maintainers; [ matthewbauer ];
+    platforms = platforms.unix;
   };
 }
diff --git a/pkgs/tools/networking/jwhois/default.nix b/pkgs/tools/networking/jwhois/default.nix
index cd0821ef9ef5..be8e9e210d15 100644
--- a/pkgs/tools/networking/jwhois/default.nix
+++ b/pkgs/tools/networking/jwhois/default.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation {
   meta = {
     description = "A client for the WHOIS protocol allowing you to query the owner of a domain name";
     homepage = http://www.gnu.org/software/jwhois/;
-    license = "GPL";
-    platforms = stdenv.lib.platforms.linux;
+    license = stdenv.lib.licenses.gpl3;
+    platforms = stdenv.lib.platforms.unix;
   };
 }
diff --git a/pkgs/tools/networking/logmein-hamachi/default.nix b/pkgs/tools/networking/logmein-hamachi/default.nix
index bbee6546b2f4..0b585d10316c 100644
--- a/pkgs/tools/networking/logmein-hamachi/default.nix
+++ b/pkgs/tools/networking/logmein-hamachi/default.nix
@@ -2,8 +2,6 @@
 
 with stdenv.lib;
 
-assert stdenv.isLinux;
-
 let
   arch =
     if stdenv.system == "x86_64-linux" then "x64"
diff --git a/pkgs/tools/networking/mailutils/default.nix b/pkgs/tools/networking/mailutils/default.nix
index 26bfd27bf9a6..4df7f80fff6c 100644
--- a/pkgs/tools/networking/mailutils/default.nix
+++ b/pkgs/tools/networking/mailutils/default.nix
@@ -116,6 +116,6 @@ in stdenv.mkDerivation rec {
     homepage = http://www.gnu.org/software/mailutils/;
 
     # Some of the dependencies fail to build on {cyg,dar}win.
-    platforms = platforms.gnu;
+    platforms = platforms.gnu ++ platforms.linux;
   };
 }
diff --git a/pkgs/tools/networking/miniupnpd/default.nix b/pkgs/tools/networking/miniupnpd/default.nix
index 129db56dc554..3a1bba4ce8c1 100644
--- a/pkgs/tools/networking/miniupnpd/default.nix
+++ b/pkgs/tools/networking/miniupnpd/default.nix
@@ -1,13 +1,11 @@
 { stdenv, fetchurl, iptables, libuuid, pkgconfig }:
 
-assert stdenv.isLinux;
-
 stdenv.mkDerivation rec {
-  name = "miniupnpd-2.0.20180410";
+  name = "miniupnpd-2.0.20180422";
 
   src = fetchurl {
     url = "http://miniupnp.free.fr/files/download.php?file=${name}.tar.gz";
-    sha256 = "1w4crmsmrygagh0v9phx8aicbyh6nypfjh2fdmknijngvx05biaq";
+    sha256 = "03g9r519p127sj6rl2x535022bwj8vzvdwp4385v7vnjrd4dswzy";
     name = "${name}.tar.gz";
   };
 
diff --git a/pkgs/tools/networking/netcat-openbsd/default.nix b/pkgs/tools/networking/netcat-openbsd/default.nix
deleted file mode 100644
index 2d9776abfcfc..000000000000
--- a/pkgs/tools/networking/netcat-openbsd/default.nix
+++ /dev/null
@@ -1,51 +0,0 @@
-{stdenv, fetchurl, fetchpatch, pkgconfig, libbsd}:
-
-stdenv.mkDerivation rec {
-  version = "1.187";
-  deb-version = "${version}-1";
-  name = "netcat-openbsd-${version}";
-
-  srcs = [
-    (fetchurl {
-      url = "mirror://debian/pool/main/n/netcat-openbsd/netcat-openbsd_${version}.orig.tar.gz";
-      sha256 = "0sxsxl7n7hnxz931jqsp86cdwiq2lm4h3w0i2a67935pki924gxw";
-    })
-    (fetchurl {
-      url = "mirror://debian/pool/main/n/netcat-openbsd/netcat-openbsd_${deb-version}.debian.tar.xz";
-      sha256 = "0jwbdis6avxdjzg8bcab1bdz296rkzzkdlv50fr3q0277fxjs49q";
-    })
-  ];
-
-  nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [ libbsd ];
-
-  sourceRoot = name;
-
-  prePatch = ''
-    for i in $(cat ../debian/patches/series); do
-      patch -p1 < "../debian/patches/$i"
-    done
-  '';
-
-  patches = stdenv.lib.optional stdenv.hostPlatform.isMusl [
-    (fetchpatch {
-      url = "https://gitweb.gentoo.org/proj/musl.git/plain/net-analyzer/openbsd-netcat/files/openbsd-netcat-1.105-b64_ntop.patch?id=4a5864922232c7df550c21f2a7b77fe6f8ffc6d6";
-      sha256 = "1cgqb6fxas5yiwf26hq57v627hhmcskl5j6rx30090ha2ksjqyvr";
-    })
-  ];
-
-  installPhase = ''
-    runHook preInstall
-    install -Dm0755 nc $out/bin/nc
-    install -Dm0644 nc.1 $out/share/man/man1/nc.1
-    runHook postInstall
-  '';
-
-  meta = with stdenv.lib; {
-    homepage = https://packages.debian.org/netcat-openbsd;
-    description = "TCP/IP swiss army knife, OpenBSD variant";
-    platforms = platforms.linux;
-    maintainers = with maintainers; [ willibutz ];
-  };
-
-}
diff --git a/pkgs/tools/networking/netcat-gnu/default.nix b/pkgs/tools/networking/netcat/default.nix
index 47ec804e5d48..47ec804e5d48 100644
--- a/pkgs/tools/networking/netcat-gnu/default.nix
+++ b/pkgs/tools/networking/netcat/default.nix
diff --git a/pkgs/tools/networking/nss-mdns/default.nix b/pkgs/tools/networking/nss-mdns/default.nix
index b3d4ec95e061..9f83949e8de0 100644
--- a/pkgs/tools/networking/nss-mdns/default.nix
+++ b/pkgs/tools/networking/nss-mdns/default.nix
@@ -1,4 +1,4 @@
-{ fetchurl, stdenv }:
+{ fetchurl, stdenv, fetchpatch }:
 
 stdenv.mkDerivation rec {
   name = "nss-mdns-0.10";
@@ -20,6 +20,16 @@ stdenv.mkDerivation rec {
       "--localstatedir=/var"
     ];
 
+  patches = stdenv.lib.optional stdenv.hostPlatform.isMusl
+    (
+      fetchpatch
+      {
+        url = "https://raw.githubusercontent.com/openembedded/openembedded-core/94f780e889f194b67a48587ac68b3200288bee10/meta/recipes-connectivity/libnss-mdns/libnss-mdns/0001-check-for-nss.h.patch";
+        sha256 = "1l1kjbdw8z31br4vib3l5b85jy7kxin760a2f24lww8v6lqdpgds";
+      }
+    );
+
+
   meta = {
     description = "The mDNS Name Service Switch (NSS) plug-in";
     longDescription = ''
@@ -34,7 +44,7 @@ stdenv.mkDerivation rec {
     license = stdenv.lib.licenses.lgpl2Plus;
 
     # Supports both the GNU and FreeBSD NSS.
-    platforms = stdenv.lib.platforms.gnu ++ stdenv.lib.platforms.freebsd;
+    platforms = stdenv.lib.platforms.gnu ++ stdenv.lib.platforms.linux ++ stdenv.lib.platforms.freebsd;
 
     maintainers = [ ];
   };
diff --git a/pkgs/tools/networking/openfortivpn/default.nix b/pkgs/tools/networking/openfortivpn/default.nix
index 6eafdde10824..b265cdb4c326 100644
--- a/pkgs/tools/networking/openfortivpn/default.nix
+++ b/pkgs/tools/networking/openfortivpn/default.nix
@@ -3,7 +3,7 @@
 with stdenv.lib;
 
 let repo = "openfortivpn";
-    version = "1.6.0";
+    version = "1.7.0";
 
 in stdenv.mkDerivation {
   name = "${repo}-${version}";
@@ -12,7 +12,7 @@ in stdenv.mkDerivation {
     owner = "adrienverge";
     inherit repo;
     rev = "v${version}";
-    sha256 = "0ca80i8m88f4vhwiq548wjyqwwszpbap92l83bl0wdppvp4nk192";
+    sha256 = "1qfz5igry7fhrkz5iyzqpffldhpdvcw98k06yb6acwc1jyv87nh0";
   };
 
   nativeBuildInputs = [ autoreconfHook pkgconfig ];
diff --git a/pkgs/tools/networking/openvpn/default.nix b/pkgs/tools/networking/openvpn/default.nix
index 31fccbffa790..358c53f453bb 100644
--- a/pkgs/tools/networking/openvpn/default.nix
+++ b/pkgs/tools/networking/openvpn/default.nix
@@ -10,11 +10,11 @@ with stdenv.lib;
 
 stdenv.mkDerivation rec {
   name = "openvpn-${version}";
-  version = "2.4.5";
+  version = "2.4.6";
 
   src = fetchurl {
-    url = "http://swupdate.openvpn.net/community/releases/${name}.tar.xz";
-    sha256 = "17njq59hsraqyxrbhkrxr7dvx0p066s3pn8w1mi0yd9jldis7h23";
+    url = "https://swupdate.openvpn.net/community/releases/${name}.tar.xz";
+    sha256 = "09lck4wmkas3iyrzaspin9gn3wiclqb1m9sf8diy7j8wakx38r2g";
   };
 
   nativeBuildInputs = [ pkgconfig ];
@@ -41,7 +41,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "A robust and highly flexible tunneling application";
-    homepage = http://openvpn.net/;
+    homepage = https://openvpn.net/;
     downloadPage = "https://openvpn.net/index.php/open-source/downloads.html";
     license = stdenv.lib.licenses.gpl2;
     maintainers = [ stdenv.lib.maintainers.viric ];
diff --git a/pkgs/tools/networking/p2p/amule/default.nix b/pkgs/tools/networking/p2p/amule/default.nix
index c278cc989357..ac440fc6d338 100644
--- a/pkgs/tools/networking/p2p/amule/default.nix
+++ b/pkgs/tools/networking/p2p/amule/default.nix
@@ -65,7 +65,7 @@ mkDerivation rec {
 
     license = stdenv.lib.licenses.gpl2Plus;
 
-    platforms = stdenv.lib.platforms.gnu;  # arbitrary choice
+    platforms = stdenv.lib.platforms.gnu ++ stdenv.lib.platforms.linux;  # arbitrary choice
     maintainers = [ stdenv.lib.maintainers.phreedom ];
   };
 }
diff --git a/pkgs/tools/networking/p2p/seeks/default.nix b/pkgs/tools/networking/p2p/seeks/default.nix
index f11c0a63b07e..2a89e419b2e4 100644
--- a/pkgs/tools/networking/p2p/seeks/default.nix
+++ b/pkgs/tools/networking/p2p/seeks/default.nix
@@ -63,7 +63,7 @@ stdenv.mkDerivation {
     maintainers = [
       stdenv.lib.maintainers.matejc
     ];
-    platforms = stdenv.lib.platforms.gnu;  # arbitrary choice
+    platforms = stdenv.lib.platforms.gnu ++ stdenv.lib.platforms.linux;  # arbitrary choice
     broken = true; # 2018-04-11
   };
 }
diff --git a/pkgs/tools/networking/p2p/tahoe-lafs/default.nix b/pkgs/tools/networking/p2p/tahoe-lafs/default.nix
index 8c0c4a6c5664..c682100b4384 100644
--- a/pkgs/tools/networking/p2p/tahoe-lafs/default.nix
+++ b/pkgs/tools/networking/p2p/tahoe-lafs/default.nix
@@ -89,6 +89,6 @@ pythonPackages.buildPythonApplication rec {
     homepage = http://tahoe-lafs.org/;
     license = [ lib.licenses.gpl2Plus /* or */ "TGPPLv1+" ];
     maintainers = with lib.maintainers; [ MostAwesomeDude ];
-    platforms = lib.platforms.gnu;  # arbitrary choice
+    platforms = lib.platforms.gnu ++ lib.platforms.linux;
   };
 }
diff --git a/pkgs/tools/networking/pssh/default.nix b/pkgs/tools/networking/pssh/default.nix
index ddaf419e5658..22c359620507 100644
--- a/pkgs/tools/networking/pssh/default.nix
+++ b/pkgs/tools/networking/pssh/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, pythonPackages }:
+{ stdenv, fetchFromGitHub, pythonPackages, openssh, rsync }:
 
 pythonPackages.buildPythonApplication rec {
   name = "pssh-${version}";
@@ -11,6 +11,15 @@ pythonPackages.buildPythonApplication rec {
     sha256 = "0nawarxczfwajclnlsimhqkpzyqb1byvz9nsl54mi1bp80z5i4jq";
   };
 
+  postPatch = ''
+    for f in bin/*; do
+      substituteInPlace $f \
+        --replace "'ssh'" "'${openssh}/bin/ssh'" \
+        --replace "'scp'" "'${openssh}/bin/scp'" \
+        --replace "'rsync'" "'${rsync}/bin/rsync'"
+    done
+  '';
+
   meta = with stdenv.lib; {
     description = "Parallel SSH Tools";
     longDescription = ''
diff --git a/pkgs/tools/networking/ssmtp/default.nix b/pkgs/tools/networking/ssmtp/default.nix
index ceac5a58800c..031f32b53626 100644
--- a/pkgs/tools/networking/ssmtp/default.nix
+++ b/pkgs/tools/networking/ssmtp/default.nix
@@ -4,7 +4,7 @@ assert tlsSupport -> openssl != null;
 
 stdenv.mkDerivation {
   name = "ssmtp-2.64";
-  
+
   src = fetchurl {
     url = mirror://debian/pool/main/s/ssmtp/ssmtp_2.64.orig.tar.bz2;
     sha256 = "0dps8s87ag4g3jr6dk88hs9zl46h3790marc5c2qw7l71k4pvhr2";
@@ -28,7 +28,7 @@ stdenv.mkDerivation {
   installFlags = "etcdir=$(out)/etc";
 
   installTargets = [ "install" "install-sendmail" ];
-  
+
   buildInputs = stdenv.lib.optional tlsSupport openssl;
 
   meta = with stdenv.lib; {
diff --git a/pkgs/tools/networking/strongswan/default.nix b/pkgs/tools/networking/strongswan/default.nix
index 042f8bea3d62..eb466745ef84 100644
--- a/pkgs/tools/networking/strongswan/default.nix
+++ b/pkgs/tools/networking/strongswan/default.nix
@@ -3,11 +3,15 @@
 , gmp, python, iptables, ldns, unbound, openssl, pcsclite
 , openresolv
 , systemd, pam
-
-, enableTNC            ? false, curl, trousers, sqlite, libxml2
+, curl
+, enableTNC            ? false, trousers, sqlite, libxml2
 , enableNetworkManager ? false, networkmanager
 }:
 
+# Note on curl support: If curl is built with gnutls as its backend, the
+# strongswan curl plugin may break.
+# See https://wiki.strongswan.org/projects/strongswan/wiki/Curl for more info.
+
 with stdenv.lib;
 
 stdenv.mkDerivation rec {
@@ -23,8 +27,8 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ pkgconfig autoreconfHook ];
   buildInputs =
-    [ gmp python iptables ldns unbound openssl pcsclite ]
-    ++ optionals enableTNC [ curl trousers sqlite libxml2 ]
+    [ curl gmp python iptables ldns unbound openssl pcsclite ]
+    ++ optionals enableTNC [ trousers sqlite libxml2 ]
     ++ optionals stdenv.isLinux [ systemd.dev pam ]
     ++ optionals enableNetworkManager [ networkmanager ];
 
@@ -61,12 +65,12 @@ stdenv.mkDerivation rec {
       "--enable-eap-mschapv2" "--enable-eap-radius" "--enable-xauth-eap" "--enable-ext-auth"
       "--enable-forecast" "--enable-connmark" "--enable-acert"
       "--enable-pkcs11" "--enable-eap-sim-pcsc" "--enable-dnscert" "--enable-unbound"
-      "--enable-af-alg" "--enable-xauth-pam" "--enable-chapoly" ]
+      "--enable-af-alg" "--enable-xauth-pam" "--enable-chapoly"
+      "--enable-curl" ]
     ++ optionals stdenv.isx86_64 [ "--enable-aesni" "--enable-rdrand" ]
     ++ optional (stdenv.system == "i686-linux") "--enable-padlock"
     ++ optionals enableTNC [
          "--disable-gmp" "--disable-aes" "--disable-md5" "--disable-sha1" "--disable-sha2" "--disable-fips-prf"
-         "--enable-curl"
          "--enable-eap-tnc" "--enable-eap-ttls" "--enable-eap-dynamic" "--enable-tnccs-20"
          "--enable-tnc-imc" "--enable-imc-os" "--enable-imc-attestation"
          "--enable-tnc-imv" "--enable-imv-attestation"
diff --git a/pkgs/tools/networking/telnet/default.nix b/pkgs/tools/networking/telnet/default.nix
index 3a5117653c83..c38f3c46fa46 100644
--- a/pkgs/tools/networking/telnet/default.nix
+++ b/pkgs/tools/networking/telnet/default.nix
@@ -17,6 +17,6 @@ stdenv.mkDerivation {
     description = "A client and daemon for the Telnet protocol";
     homepage = ftp://ftp.suse.com/pub/people/kukuk/ipv6/;
     license = "BSD";
-    platforms = stdenv.lib.platforms.gnu;
+    platforms = stdenv.lib.platforms.gnu ++ stdenv.lib.platforms.linux;
   };
 }
diff --git a/pkgs/tools/networking/toxvpn/default.nix b/pkgs/tools/networking/toxvpn/default.nix
index c7fa1c7a2719..ccb9f3bc0d6b 100644
--- a/pkgs/tools/networking/toxvpn/default.nix
+++ b/pkgs/tools/networking/toxvpn/default.nix
@@ -1,25 +1,22 @@
 { stdenv, fetchFromGitHub, cmake, nlohmann_json,
-libtoxcore, libsodium, systemd, libcap, zeromq }:
+  libtoxcore, libsodium, libcap, zeromq,
+  systemd ? null }:
 
 with stdenv.lib;
 
-let
-  systemdOrNull = if stdenv.system == "x86_64-darwin" then null else systemd;
-  if_systemd = optional (systemdOrNull != null);
-in stdenv.mkDerivation rec {
-  name = "toxvpn-${version}";
-  version = "2017-06-25";
+stdenv.mkDerivation rec {
+  name = "toxvpn-2018-04-17";
 
   src = fetchFromGitHub {
     owner  = "cleverca22";
     repo   = "toxvpn";
-    rev    = "7bd6f169d69c511affa8c9672e8f794e4e205a44";
-    sha256 = "1km8hkrxmrnca1b49vbw5kyldayaln5plvz78vhf8325r6c5san0";
+    rev    = "dc766f98888f500ea51f002f59007eac3f3a0a06";
+    sha256 = "19br3fmrdm45fvymj9kvwikkn8m657yd5fkhx6grv35ckrj83mxz";
   };
 
   buildInputs = [ libtoxcore nlohmann_json libsodium zeromq ]
-    ++ if_systemd systemd
-    ++ optional (stdenv.system != "x86_64-darwin") libcap;
+    ++ optionals stdenv.isLinux [ libcap systemd ];
+
   nativeBuildInputs = [ cmake ];
 
   cmakeFlags = optional stdenv.isLinux [ "-DSYSTEMD=1" ];
diff --git a/pkgs/tools/networking/uget-integrator/default.nix b/pkgs/tools/networking/uget-integrator/default.nix
new file mode 100644
index 000000000000..cc93da7f2533
--- /dev/null
+++ b/pkgs/tools/networking/uget-integrator/default.nix
@@ -0,0 +1,39 @@
+{ stdenv, fetchFromGitHub, uget, python3Packages }:
+
+stdenv.mkDerivation rec {
+  name = "uget-integrator-${version}";
+  version = "1.0.0";
+
+  src = fetchFromGitHub {
+    owner = "ugetdm";
+    repo = "uget-integrator";
+    rev = "v${version}";
+    sha256 = "0bfqwbpprxp5sy49p2hqcjdfj7zamnp2hhcnnyccffkn7pghx8pp";
+  };
+
+  nativeBuildInputs = [ python3Packages.wrapPython ];
+
+  buildInputs = [ uget python3Packages.python ];
+
+  installPhase = ''
+    for f in conf/com.ugetdm.{chrome,firefox}.json; do
+      substituteInPlace $f --replace "/usr" "$out"
+    done
+
+	  install -D -t $out/bin                                   bin/uget-integrator
+	  install -D -t $out/etc/opt/chrome/native-messaging-hosts conf/com.ugetdm.chrome.json
+	  install -D -t $out/etc/chromium/native-messaging-hosts   conf/com.ugetdm.chrome.json
+	  install -D -t $out/etc/opera/native-messaging-hosts      conf/com.ugetdm.chrome.json
+	  install -D -t $out/lib/mozilla/native-messaging-hosts    conf/com.ugetdm.firefox.json
+
+    wrapPythonPrograms
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Native messaging host to integrate uGet Download Manager with web browsers";
+    homepage = https://github.com/ugetdm/uget-integrator;
+    license = licenses.gpl3;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.romildo ];
+  };
+}
diff --git a/pkgs/tools/networking/zerotierone/default.nix b/pkgs/tools/networking/zerotierone/default.nix
index 77df8cbf6f7d..ec6c9c196788 100644
--- a/pkgs/tools/networking/zerotierone/default.nix
+++ b/pkgs/tools/networking/zerotierone/default.nix
@@ -1,12 +1,12 @@
 { stdenv, fetchurl, openssl, lzo, zlib, iproute, which, ronn }:
 
 stdenv.mkDerivation rec {
-  version = "1.2.4";
+  version = "1.2.8";
   name = "zerotierone";
 
   src = fetchurl {
     url = "https://github.com/zerotier/ZeroTierOne/archive/${version}.tar.gz";
-    sha256 = "0n035f2qslw1srxjlm0szrnvb3va3sspbpxqqhng08dp68vmn9wz";
+    sha256 = "0iwaaicf3wa1xi20k2w18q01d0dlmf5w9akf227bcsqdalsdzqh8";
   };
 
   preConfigure = ''
@@ -38,7 +38,7 @@ stdenv.mkDerivation rec {
     description = "Create flat virtual Ethernet networks of almost unlimited size";
     homepage = https://www.zerotier.com;
     license = licenses.gpl3;
-    maintainers = with maintainers; [ sjmackenzie zimbatm ehmry ];
+    maintainers = with maintainers; [ sjmackenzie zimbatm ehmry obadz ];
     platforms = platforms.x86_64 ++ platforms.aarch64;
   };
 }
diff --git a/pkgs/tools/package-management/nix/default.nix b/pkgs/tools/package-management/nix/default.nix
index aee6678d1167..1d15bd11b7fa 100644
--- a/pkgs/tools/package-management/nix/default.nix
+++ b/pkgs/tools/package-management/nix/default.nix
@@ -41,7 +41,7 @@ let
     propagatedBuildInputs = [ boehmgc ];
 
     # Seems to be required when using std::atomic with 64-bit types
-    NIX_LDFLAGS = lib.optionalString (stdenv.system == "armv6l-linux") "-latomic";
+    NIX_LDFLAGS = lib.optionalString (stdenv.hostPlatform.system == "armv6l-linux") "-latomic";
 
     configureFlags =
       [ "--with-store-dir=${storeDir}"
@@ -132,10 +132,10 @@ in rec {
   }) // { perl-bindings = nixStable; };
 
   nixStable = (common rec {
-    name = "nix-2.0.1";
+    name = "nix-2.0.2";
     src = fetchurl {
       url = "http://nixos.org/releases/nix/${name}/${name}.tar.xz";
-      sha256 = "689c33b9885b56b7817bf94aad3bc7ccf50710ebb34b01c5a5a2ac4e472750b1";
+      sha256 = "2d2984410f73d759485526e594ce41b9819fafa4676f4f85a93dbdd5352a1435";
     };
   }) // { perl-bindings = perl-bindings { nix = nixStable; }; };
 
diff --git a/pkgs/tools/package-management/packagekit/default.nix b/pkgs/tools/package-management/packagekit/default.nix
index b40c8ea26aa2..5eb20169412d 100644
--- a/pkgs/tools/package-management/packagekit/default.nix
+++ b/pkgs/tools/package-management/packagekit/default.nix
@@ -8,13 +8,13 @@
 
 stdenv.mkDerivation rec {
   name = "packagekit-${version}";
-  version = "1.1.9";
+  version = "1.1.10";
 
   src = fetchFromGitHub {
     owner = "hughsie";
     repo = "PackageKit";
     rev = "PACKAGEKIT_${lib.replaceStrings ["."] ["_"] version}";
-    sha256 = "1zs7xkk3b2izdnis7ir5h93p8f2i9513663h2xhxb0sh6i2h18y4";
+    sha256 = "11drd6ixx75q3w12am3z1npwllq1kxnhbxv0npng92c69kn291zs";
   };
 
   buildInputs = [ glib polkit systemd python gobjectIntrospection vala_0_38 ]
diff --git a/pkgs/tools/security/clamav/default.nix b/pkgs/tools/security/clamav/default.nix
index 8c12e4e30c3e..c3aa92bf4b01 100644
--- a/pkgs/tools/security/clamav/default.nix
+++ b/pkgs/tools/security/clamav/default.nix
@@ -37,7 +37,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with stdenv.lib; {
-    homepage = http://www.clamav.net;
+    homepage = https://www.clamav.net;
     description = "Antivirus engine designed for detecting Trojans, viruses, malware and other malicious threats";
     license = licenses.gpl2;
     maintainers = with maintainers; [ phreedom robberer qknight fpletz ];
diff --git a/pkgs/tools/security/dirmngr/default.nix b/pkgs/tools/security/dirmngr/default.nix
index bd94c6786d77..888fa48eab9a 100644
--- a/pkgs/tools/security/dirmngr/default.nix
+++ b/pkgs/tools/security/dirmngr/default.nix
@@ -1,4 +1,5 @@
-{ stdenv, fetchurl, libgpgerror, libgcrypt, libassuan, libksba, pth, openldap }:
+{ stdenv, fetchurl, libgpgerror, libgcrypt, libassuan, libksba, pth, openldap
+, libiconv}:
 
 stdenv.mkDerivation rec {
   name = "dirmngr-1.1.1";
@@ -6,9 +7,10 @@ stdenv.mkDerivation rec {
     url = "mirror://gnupg/dirmngr/${name}.tar.bz2";
     sha256 = "1zz6m87ca55nq5f59hzm6qs48d37h93il881y7d0rf2d6660na6j";
   };
-  buildInputs = [ libgpgerror libgcrypt libassuan libksba pth openldap ];
+  buildInputs = [ libgpgerror libgcrypt libassuan libksba
+                  pth openldap libiconv ];
 
   meta = {
-    platforms = stdenv.lib.platforms.linux;
+    platforms = stdenv.lib.platforms.unix;
   };
 }
diff --git a/pkgs/tools/security/enpass/default.nix b/pkgs/tools/security/enpass/default.nix
index 38104b8b213d..f27f9af59c68 100644
--- a/pkgs/tools/security/enpass/default.nix
+++ b/pkgs/tools/security/enpass/default.nix
@@ -3,15 +3,15 @@
 , gtk2, pango, atk, cairo, gdk_pixbuf, jasper, xkeyboardconfig
 , makeWrapper , makeDesktopItem, python, pythonPackages, lib
 , libredirect, lsof}:
-assert system == "i686-linux" || system == "x86_64-linux";
+
 let
-  all_data = (with builtins; fromJSON (readFile ./data.json));
+  all_data = builtins.fromJSON (builtins.readFile ./data.json);
   system_map = {
     i686-linux = "i386";
     x86_64-linux = "amd64";
   };
 
-  data = (with builtins; getAttr (getAttr system system_map) all_data);
+  data = all_data.${system_map.${system} or (throw "Unsupported platform")};
 
   baseUrl = http://repo.sinew.in;
 
@@ -54,7 +54,7 @@ let
       description = "a well known password manager";
       homepage = https://www.enpass.io/;
       license = lib.licenses.unfree;
-      platforms = lib.platforms.linux;
+      platforms = [ "x86_64-linux" "i686-linux"];
     };
 
     buildInputs = [makeWrapper dpkg];
@@ -70,8 +70,8 @@ let
       cp $out/bin/EnpassHelper/EnpassNMHost{,.untampered}
 
       sed \
-      	-i s@/opt/Enpass/bin/runenpass.sh@$out/bin/Enpass@ \
-      	$out/share/applications/enpass.desktop
+        -i s@/opt/Enpass/bin/runenpass.sh@$out/bin/Enpass@ \
+        $out/share/applications/enpass.desktop
 
       for i in $out/bin/{Enpass,EnpassHelper/{EnpassHelper,EnpassNMHost}}; do
         patchelf --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) $i
diff --git a/pkgs/tools/security/gnupg/1.nix b/pkgs/tools/security/gnupg/1.nix
index fa4555dcafb9..9a147caa7e21 100644
--- a/pkgs/tools/security/gnupg/1.nix
+++ b/pkgs/tools/security/gnupg/1.nix
@@ -27,6 +27,6 @@ stdenv.mkDerivation rec {
       other applications.  A wealth of frontend applications and libraries are
       available.
     '';
-    platforms = platforms.gnu; # arbitrary choice
+    platforms = platforms.gnu ++ platforms.linux; # arbitrary choice
   };
 }
diff --git a/pkgs/tools/security/logkeys/default.nix b/pkgs/tools/security/logkeys/default.nix
index e30ad30a4dc1..8a73d056b1ed 100644
--- a/pkgs/tools/security/logkeys/default.nix
+++ b/pkgs/tools/security/logkeys/default.nix
@@ -1,13 +1,14 @@
-{ stdenv, fetchgit, autoconf, automake, which, procps, kbd }:
+{ stdenv, fetchFromGitHub, autoconf, automake, which, procps, kbd }:
 
 stdenv.mkDerivation rec {
   name = "logkeys-${version}";
-  version = "2017-10-10";
+  version = "2018-01-22";
 
-  src = fetchgit {
-    url = https://github.com/kernc/logkeys;
-    rev = "5c368327a2cd818efaed4794633c260b90b87abf";
-    sha256 = "0akj7j775y9c0p53zq5v12jk3fy030fpdvn5m1x9w4rdj47vxdpg";
+  src = fetchFromGitHub {
+    owner = "kernc";
+    repo = "logkeys";
+    rev = "7a9f19fb6b152d9f00a0b3fe29ab266ff1f88129";
+    sha256 = "1k6kj0913imwh53lh6hrhqmrpygqg2h462raafjsn7gbd3vkgx8n";
   };
 
   buildInputs = [ autoconf automake which procps kbd ];
diff --git a/pkgs/tools/security/monkeysphere/default.nix b/pkgs/tools/security/monkeysphere/default.nix
index f0d3a870676c..d1266ca495ed 100644
--- a/pkgs/tools/security/monkeysphere/default.nix
+++ b/pkgs/tools/security/monkeysphere/default.nix
@@ -24,6 +24,11 @@ stdenv.mkDerivation rec {
         CryptOpenSSLRSA
         CryptOpenSSLBignum
       ]}"
+    wrapProgram $out/bin/monkeysphere --prefix PERL5LIB :\
+      "${with perlPackages; stdenv.lib.makePerlPath [
+        CryptOpenSSLRSA
+        CryptOpenSSLBignum
+      ]}"
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/tools/security/mpw/default.nix b/pkgs/tools/security/mpw/default.nix
index 3e1e3a882839..0994c649c83e 100644
--- a/pkgs/tools/security/mpw/default.nix
+++ b/pkgs/tools/security/mpw/default.nix
@@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with stdenv.lib; {
-    homepage = http://masterpasswordapp.com/;
+    homepage = https://masterpasswordapp.com/;
     description = "A stateless password management solution";
     license = licenses.gpl3;
     platforms = platforms.unix;
diff --git a/pkgs/tools/security/notary/default.nix b/pkgs/tools/security/notary/default.nix
index 4a42c9162e1b..071bfdaea005 100644
--- a/pkgs/tools/security/notary/default.nix
+++ b/pkgs/tools/security/notary/default.nix
@@ -1,32 +1,42 @@
-{ stdenv, fetchFromGitHub, buildGoPackage, git, libtool }:
+{ stdenv, fetchFromGitHub, buildGoPackage, libtool }:
 
 buildGoPackage rec {
   name = "notary-${version}";
-  version = "0.6.0";
-  gitcommit = "34f53ad";
+  version = "0.6.1";
+  gitcommit = "d6e1431f";
 
   src = fetchFromGitHub {
     owner = "theupdateframework";
     repo = "notary";
     rev = "v${version}";
-    sha256 = "0lg7ab2agkk3rnladcvpdzk8cnf3m49qfm4sanh7yjvlvlv1wm4a";
+    sha256 = "1ak9dk6vjny5069hp3w36dbjawcnaq82l3i2qvf7mn7zfglbsnf9";
   };
 
-  buildInputs = [ libtool ];
-
-  goPackagePath = "github.com/theupdateframework/notary";
+  patches = [ ./no-git-usage.patch ];
 
+  buildInputs = [ libtool ];
   buildPhase = ''
+    runHook preBuild
     cd go/src/github.com/theupdateframework/notary
-    make GITCOMMIT=${gitcommit} GITUNTRACKEDCHANGES= client
+    make client GITCOMMIT=${gitcommit}
+    runHook postBuild
   '';
 
+  goPackagePath = "github.com/theupdateframework/notary";
+
   installPhase = ''
+    runHook preInstall
     install -D bin/notary $bin/bin/notary
+    runHook postInstall
+  '';
+
+  doCheck = true;
+  checkPhase = ''
+    make test PKGS=github.com/theupdateframework/notary/cmd/notary
   '';
 
   meta = with stdenv.lib; {
-    description = " Notary is a project that allows anyone to have trust over arbitrary collections of data";
+    description = "Notary is a project that allows anyone to have trust over arbitrary collections of data";
     longDescription = ''
       The Notary project comprises a server and a client for running and
       interacting with trusted collections. See the service architecture
@@ -49,7 +59,7 @@ buildGoPackage rec {
     '';
     license = licenses.asl20;
     homepage = https://github.com/theupdateframework/notary;
-    maintainers = with maintainers; [ vdemeester ];
-    platforms = with platforms; unix;
+    maintainers = with maintainers; [ vdemeester ma27 ];
+    platforms = platforms.unix;
   };
 }
diff --git a/pkgs/tools/security/notary/no-git-usage.patch b/pkgs/tools/security/notary/no-git-usage.patch
new file mode 100644
index 000000000000..363eefe36921
--- /dev/null
+++ b/pkgs/tools/security/notary/no-git-usage.patch
@@ -0,0 +1,15 @@
+diff --git a/Makefile b/Makefile
+index ab794165..0cbd047f 100644
+--- a/Makefile
++++ b/Makefile
+@@ -5,8 +5,8 @@ PREFIX?=$(shell pwd)
+ # Add to compile time flags
+ NOTARY_PKG := github.com/theupdateframework/notary
+ NOTARY_VERSION := $(shell cat NOTARY_VERSION)
+-GITCOMMIT := $(shell git rev-parse --short HEAD)
+-GITUNTRACKEDCHANGES := $(shell git status --porcelain --untracked-files=no)
++GITCOMMIT ?= $(shell git rev-parse --short HEAD)
++GITUNTRACKEDCHANGES :=
+ ifneq ($(GITUNTRACKEDCHANGES),)
+ GITCOMMIT := $(GITCOMMIT)-dirty
+ endif
diff --git a/pkgs/tools/security/pass/default.nix b/pkgs/tools/security/pass/default.nix
index 4f9e6c06697c..5ce0ce0dbc21 100644
--- a/pkgs/tools/security/pass/default.nix
+++ b/pkgs/tools/security/pass/default.nix
@@ -1,10 +1,12 @@
-{ stdenv, lib, fetchurl, fetchFromGitHub
+{ stdenv, lib, pkgs, fetchurl, fetchFromGitHub, buildEnv
 , coreutils, gnused, getopt, git, tree, gnupg, which, procps, qrencode
 , makeWrapper
 
 , xclip ? null, xdotool ? null, dmenu ? null
 , x11Support ? !stdenv.isDarwin
-, tombPluginSupport ? false, tomb
+
+# For backwards-compatibility
+, tombPluginSupport ? false
 }:
 
 with lib;
@@ -14,98 +16,100 @@ assert x11Support -> xclip != null
                   && dmenu != null;
 
 let
-  plugins = map (p: (fetchFromGitHub {
-    owner  = "roddhjav";
-    repo   = "pass-${p.name}";
-    inherit (p) rev sha256;
-  }))
-  ([
-    { name = "import";
-      rev = "491935bd275f29ceac2b876b3a288011d1ce31e7";
-      sha256 = "02mbh05ab8h7kc30hz718d1d1vkjz43b96c7p0xnd92610d2q66q"; }
-    { name = "update";
-      rev = "cf576c9036fd18efb9ed29e0e9f811207b556fde";
-      sha256 = "1hhbrg6a2walrvla6q4cd3pgrqbcrf9brzjkb748735shxfn52hd"; }
-    ] ++ stdenv.lib.optional tombPluginSupport {
-      name = "tomb";
-      rev = "3368134898a42c1b758fabac625ec240e125c6be";
-      sha256 = "0qqmxfg4w3r088qhlkhs44036mya82vjflsjjhw2hk8y0wd2i6ds"; }
-  );
-
-in stdenv.mkDerivation rec {
-  version = "1.7.1";
-  name    = "password-store-${version}";
-
-  src = fetchurl {
-    url    = "http://git.zx2c4.com/password-store/snapshot/${name}.tar.xz";
-    sha256 = "0scqkpll2q8jhzcgcsh9kqz0gwdpvynivqjmmbzax2irjfaiklpn";
-  };
+  passExtensions = import ./extensions { inherit pkgs; };
+
+  env = extensions:
+    let
+      selected = extensions passExtensions
+        ++ stdenv.lib.optional tombPluginSupport passExtensions.tomb;
+    in buildEnv {
+      name = "pass-extensions-env";
+      paths = selected;
+      buildInputs = concatMap (x: x.buildInputs) selected;
+    };
+
+  generic = extensionsEnv: extraPassthru: stdenv.mkDerivation rec {
+    version = "1.7.1";
+    name    = "password-store-${version}";
+
+    src = fetchurl {
+      url    = "http://git.zx2c4.com/password-store/snapshot/${name}.tar.xz";
+      sha256 = "0scqkpll2q8jhzcgcsh9kqz0gwdpvynivqjmmbzax2irjfaiklpn";
+    };
+
+    patches = [ ./set-correct-program-name-for-sleep.patch
+              ] ++ stdenv.lib.optional stdenv.isDarwin ./no-darwin-getopt.patch;
+
+    nativeBuildInputs = [ makeWrapper ];
+
+    buildInputs = [ extensionsEnv ];
+
+    installFlags = [ "PREFIX=$(out)" "WITH_ALLCOMP=yes" ];
+
+    postInstall = ''
+      # Install Emacs Mode. NOTE: We can't install the necessary
+      # dependencies (s.el and f.el) here. The user has to do this
+      # himself.
+      mkdir -p "$out/share/emacs/site-lisp"
+      cp "contrib/emacs/password-store.el" "$out/share/emacs/site-lisp/"
+    '' + optionalString x11Support ''
+      cp "contrib/dmenu/passmenu" "$out/bin/"
+    '';
 
-  patches = [ ./set-correct-program-name-for-sleep.patch
-            ] ++ stdenv.lib.optional stdenv.isDarwin ./no-darwin-getopt.patch;
-
-  nativeBuildInputs = [ makeWrapper ];
-
-  installFlags = [ "PREFIX=$(out)" "WITH_ALLCOMP=yes" ];
-
-  postInstall = ''
-    # plugins
-    ${stdenv.lib.concatStringsSep "\n" (map (plugin: ''
-      pushd ${plugin}
-      PREFIX=$out make install
-      popd
-    '') plugins)}
-
-    # Install Emacs Mode. NOTE: We can't install the necessary
-    # dependencies (s.el and f.el) here. The user has to do this
-    # himself.
-    mkdir -p "$out/share/emacs/site-lisp"
-    cp "contrib/emacs/password-store.el" "$out/share/emacs/site-lisp/"
-  '' + optionalString x11Support ''
-    cp "contrib/dmenu/passmenu" "$out/bin/"
-  '';
-
-  wrapperPath = with stdenv.lib; makeBinPath ([
-    coreutils
-    getopt
-    git
-    gnupg
-    gnused
-    tree
-    which
-    qrencode
-    procps
-  ] ++ optional tombPluginSupport tomb
-    ++ ifEnable x11Support [ dmenu xclip xdotool ]);
-
-  postFixup = ''
-    # Fix program name in --help
-    substituteInPlace $out/bin/pass \
-      --replace 'PROGRAM="''${0##*/}"' "PROGRAM=pass"
-
-    # Ensure all dependencies are in PATH
-    wrapProgram $out/bin/pass \
-      --prefix PATH : "${wrapperPath}"
-  '' + stdenv.lib.optionalString x11Support ''
-    # We just wrap passmenu with the same PATH as pass. It doesn't
-    # need all the tools in there but it doesn't hurt either.
-    wrapProgram $out/bin/passmenu \
-      --prefix PATH : "$out/bin:${wrapperPath}"
-  '';
-
-  meta = with stdenv.lib; {
-    description = "Stores, retrieves, generates, and synchronizes passwords securely";
-    homepage    = https://www.passwordstore.org/;
-    license     = licenses.gpl2Plus;
-    maintainers = with maintainers; [ lovek323 the-kenny fpletz ];
-    platforms   = platforms.unix;
-
-    longDescription = ''
-      pass is a very simple password store that keeps passwords inside gpg2
-      encrypted files inside a simple directory tree residing at
-      ~/.password-store. The pass utility provides a series of commands for
-      manipulating the password store, allowing the user to add, remove, edit,
-      synchronize, generate, and manipulate passwords.
+    wrapperPath = with stdenv.lib; makeBinPath ([
+      coreutils
+      getopt
+      git
+      gnupg
+      gnused
+      tree
+      which
+      qrencode
+      procps
+    ] ++ ifEnable x11Support [ dmenu xclip xdotool ]);
+
+    postFixup = ''
+      # Link extensions env
+      rmdir $out/lib/password-store/extensions
+      ln -s ${extensionsEnv}/lib/password-store/extensions $out/lib/password-store/.
+
+      # Fix program name in --help
+      substituteInPlace $out/bin/pass \
+        --replace 'PROGRAM="''${0##*/}"' "PROGRAM=pass"
+
+      # Ensure all dependencies are in PATH
+      wrapProgram $out/bin/pass \
+        --prefix PATH : "${wrapperPath}"
+    '' + stdenv.lib.optionalString x11Support ''
+      # We just wrap passmenu with the same PATH as pass. It doesn't
+      # need all the tools in there but it doesn't hurt either.
+      wrapProgram $out/bin/passmenu \
+        --prefix PATH : "$out/bin:${wrapperPath}"
     '';
+
+    passthru = {
+      extensions = passExtensions;
+    } // extraPassthru;
+
+    meta = with stdenv.lib; {
+      description = "Stores, retrieves, generates, and synchronizes passwords securely";
+      homepage    = https://www.passwordstore.org/;
+      license     = licenses.gpl2Plus;
+      maintainers = with maintainers; [ lovek323 the-kenny fpletz tadfisher ];
+      platforms   = platforms.unix;
+
+      longDescription = ''
+        pass is a very simple password store that keeps passwords inside gpg2
+        encrypted files inside a simple directory tree residing at
+        ~/.password-store. The pass utility provides a series of commands for
+        manipulating the password store, allowing the user to add, remove, edit,
+        synchronize, generate, and manipulate passwords.
+      '';
+    };
   };
+
+in
+
+generic (env (_: [])) {
+  withExtensions = extensions: generic (env extensions) {};
 }
diff --git a/pkgs/tools/security/pass/extensions/default.nix b/pkgs/tools/security/pass/extensions/default.nix
new file mode 100644
index 000000000000..dfb853c0a0bf
--- /dev/null
+++ b/pkgs/tools/security/pass/extensions/default.nix
@@ -0,0 +1,12 @@
+{ pkgs, ... }:
+
+with pkgs;
+
+{
+  pass-import = callPackage ./import.nix {
+    pythonPackages = python3Packages;
+  };
+  pass-otp = callPackage ./otp.nix {};
+  pass-tomb = callPackage ./tomb.nix {};
+  pass-update = callPackage ./update.nix {};
+}
diff --git a/pkgs/tools/security/pass/extensions/import.nix b/pkgs/tools/security/pass/extensions/import.nix
new file mode 100644
index 000000000000..8ba4abc5e3db
--- /dev/null
+++ b/pkgs/tools/security/pass/extensions/import.nix
@@ -0,0 +1,37 @@
+{ stdenv, pass, fetchFromGitHub, pythonPackages, makeWrapper }:
+
+let
+  pythonEnv = pythonPackages.python.withPackages (p: [ p.defusedxml ]);
+
+in stdenv.mkDerivation rec {
+  name = "pass-import-${version}";
+  version = "2.2";
+
+  src = fetchFromGitHub {
+    owner = "roddhjav";
+    repo = "pass-import";
+    rev = "v${version}";
+    sha256 = "189wf2jz2j43k27930cnl53sm2drh1s0nq1nmh4is3rzn8cna6wq";
+  };
+
+  nativeBuildInputs = [ makeWrapper ];
+
+  buildInputs = [ pythonEnv ];
+
+  dontBuild = true;
+
+  installFlags = [ "PREFIX=$(out)" ];
+
+  postFixup = ''
+    wrapProgram $out/lib/password-store/extensions/import.bash \
+      --prefix PATH : "${pythonEnv}/bin"
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Pass extension for importing data from existing password managers";
+    homepage = https://github.com/roddhjav/pass-import;
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ lovek323 the-kenny fpletz tadfisher ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/tools/security/pass-otp/default.nix b/pkgs/tools/security/pass/extensions/otp.nix
index 7f0f44bdfa44..60198675b29d 100644
--- a/pkgs/tools/security/pass-otp/default.nix
+++ b/pkgs/tools/security/pass/extensions/otp.nix
@@ -1,4 +1,5 @@
-{ stdenv, pass, fetchFromGitHub, oathToolkit }:
+{ stdenv, fetchFromGitHub, oathToolkit }:
+
 stdenv.mkDerivation rec {
   name = "pass-otp-${version}";
   version = "1.1.0";
@@ -10,15 +11,15 @@ stdenv.mkDerivation rec {
     sha256 = "1cgj4zc8fq88n3h6c0vkv9i5al785mdprpgpbv5m22dz9p1wqvbb";
   };
 
-  buildInputs = [ pass oathToolkit ];
+  buildInputs = [ oathToolkit ];
+
+  dontBuild = true;
 
   patchPhase = ''
     sed -i -e 's|OATH=\$(which oathtool)|OATH=${oathToolkit}/bin/oathtool|' otp.bash
   '';
 
-  installPhase = ''
-    make PREFIX=$out install
-  '';
+  installFlags = [ "PREFIX=$(out)" ];
 
   meta = with stdenv.lib; {
     description = "A pass extension for managing one-time-password (OTP) tokens";
diff --git a/pkgs/tools/security/pass/extensions/tomb.nix b/pkgs/tools/security/pass/extensions/tomb.nix
new file mode 100644
index 000000000000..b9f458cd4e12
--- /dev/null
+++ b/pkgs/tools/security/pass/extensions/tomb.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchFromGitHub, tomb }:
+
+stdenv.mkDerivation rec {
+  name = "pass-tomb-${version}";
+  version = "1.1";
+
+  src = fetchFromGitHub {
+    owner = "roddhjav";
+    repo = "pass-tomb";
+    rev = "v${version}";
+    sha256 = "0wxa673yyzasjlkpd5f3yl5zf7bhsw7h1jbhf6sdjz65bypr2596";
+  };
+
+  buildInputs = [ tomb ];
+
+  dontBuild = true;
+
+  installFlags = [ "PREFIX=$(out)" ];
+
+  postFixup = ''
+    substituteInPlace $out/lib/password-store/extensions/tomb.bash \
+      --replace 'TOMB="''${PASSWORD_STORE_TOMB:-tomb}"' 'TOMB="''${PASSWORD_STORE_TOMB:-${tomb}/bin/tomb}"'
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Pass extension that keeps the password store encrypted inside a tomb";
+    homepage = https://github.com/roddhjav/pass-tomb;
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ lovek323 the-kenny fpletz tadfisher ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/tools/security/pass/extensions/update.nix b/pkgs/tools/security/pass/extensions/update.nix
new file mode 100644
index 000000000000..dd145b069720
--- /dev/null
+++ b/pkgs/tools/security/pass/extensions/update.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+  name = "pass-update-${version}";
+  version = "2.0";
+
+  src = fetchFromGitHub {
+    owner = "roddhjav";
+    repo = "pass-update";
+    rev = "v${version}";
+    sha256 = "0a81q0jfni185zmbislzbcv0qr1rdp0cgr9wf9riygis2xv6rs6k";
+  };
+
+  dontBuild = true;
+
+  installFlags = [ "PREFIX=$(out)" ];
+
+  meta = with stdenv.lib; {
+    description = "Pass extension that provides an easy flow for updating passwords";
+    homepage = https://github.com/roddhjav/pass-update;
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ lovek323 the-kenny fpletz tadfisher ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/tools/security/pcsc-scm-scl011/default.nix b/pkgs/tools/security/pcsc-scm-scl011/default.nix
index 88b5c147f303..1418a4ead580 100644
--- a/pkgs/tools/security/pcsc-scm-scl011/default.nix
+++ b/pkgs/tools/security/pcsc-scm-scl011/default.nix
@@ -17,10 +17,9 @@ stdenv.mkDerivation rec {
   buildInputs = [ unzip ];
 
   unpackPhase = ''
-    echo ${stdenv.system}
     unzip $src
     tar xf "Linux Driver Ver${version}/sclgeneric_${version}_linux_${arch}bit.tar.gz"
-    cd sclgeneric_${version}_linux_${arch}bit; export sourceRoot=`pwd`
+    export sourceRoot=$(readlink -e sclgeneric_${version}_linux_${arch}bit)
   '';
 
   # Add support for SCL011 nPA (subsidized model for German eID)
diff --git a/pkgs/tools/security/pius/default.nix b/pkgs/tools/security/pius/default.nix
index eb05c3748078..f9dced33ed46 100644
--- a/pkgs/tools/security/pius/default.nix
+++ b/pkgs/tools/security/pius/default.nix
@@ -32,7 +32,7 @@ pythonPackages.buildPythonApplication {
 
     license = stdenv.lib.licenses.gpl2;
 
-    platforms = stdenv.lib.platforms.gnu;
+    platforms = stdenv.lib.platforms.gnu ++ stdenv.lib.platforms.linux;
     maintainers = with stdenv.lib.maintainers; [ fuuzetsu kierdavis ];
   };
 }
diff --git a/pkgs/tools/security/sudo/default.nix b/pkgs/tools/security/sudo/default.nix
index 85dba08255da..0ca4507d5d93 100644
--- a/pkgs/tools/security/sudo/default.nix
+++ b/pkgs/tools/security/sudo/default.nix
@@ -5,14 +5,14 @@
 }:
 
 stdenv.mkDerivation rec {
-  name = "sudo-1.8.22";
+  name = "sudo-1.8.23";
 
   src = fetchurl {
     urls =
       [ "ftp://ftp.sudo.ws/pub/sudo/${name}.tar.gz"
         "ftp://ftp.sudo.ws/pub/sudo/OLD/${name}.tar.gz"
       ];
-    sha256 = "00pxp74xkwdcmrjwy55j0k8p684jk1zx3nzdc11v30q8q8kwnmkj";
+    sha256 = "0yg62wq8rcrbr7qvh3wgfg2g4bwanbi50cr2lf2cfyy8dydx4qyq";
   };
 
   prePatch = ''
diff --git a/pkgs/tools/security/vulnix/default.nix b/pkgs/tools/security/vulnix/default.nix
index b28fa7cfd475..70640563aa31 100644
--- a/pkgs/tools/security/vulnix/default.nix
+++ b/pkgs/tools/security/vulnix/default.nix
@@ -2,16 +2,16 @@
 
 pythonPackages.buildPythonApplication rec {
   pname = "vulnix";
-  version = "1.6.1";
+  version = "1.6.3";
 
   src = pythonPackages.fetchPypi {
     inherit pname version;
-    sha256 = "0j6v6phq3naqnpvzxxnynsyv9y7bhig1gzvg594qpknqgyzj16bf";
+    sha256 = "0ia71l0210dgcxf63bg07csx40nmpdghr4mszz91qrri7lsa5qqi";
   };
 
-  buildInputs =
-    [ ronn ] ++
-    (with pythonPackages; [ freezegun pytest pytestcov ]);
+  buildInputs = [ ronn ];
+
+  checkInputs = with pythonPackages; [ freezegun pytest pytestcov pytest-flake8 ];
 
   propagatedBuildInputs = [
     nix
@@ -27,11 +27,6 @@ pythonPackages.buildPythonApplication rec {
 
   outputs = [ "out" "doc" ];
 
-  # pytest-flake8 is currently broken
-  # re-enable after it has been fixed
-  # https://github.com/NixOS/nixpkgs/issues/39206
-  patches = [ ./disable-flake8.patch ];
-
   postBuild = ''
     make -C doc
   '';
diff --git a/pkgs/tools/security/vulnix/disable-flake8.patch b/pkgs/tools/security/vulnix/disable-flake8.patch
deleted file mode 100644
index cd165d05ccc1..000000000000
--- a/pkgs/tools/security/vulnix/disable-flake8.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-diff --git a/setup.cfg b/setup.cfg
-index a9e37ce..41b9886 100644
---- a/setup.cfg
-+++ b/setup.cfg
-@@ -1,5 +1,5 @@
- [tool:pytest]
--addopts = --flake8 --tb=native --cov=src --cov-report=html --junitxml=report.xml -m 'not jenkinsonly' src/vulnix
-+addopts = --tb=native --cov=src --cov-report=html --junitxml=report.xml -m 'not jenkinsonly' src/vulnix
- markers = slow: This is a non-unit test and thus is not run by default. Use ``-m slow`` to run these, or ``-m 1`` to run all tests.
- 
- [aliases]
-diff --git a/setup.py b/setup.py
-index a9315e5..d14ad59 100644
---- a/setup.py
-+++ b/setup.py
-@@ -35,7 +35,6 @@ setup(
-             'freezegun>0.3',
-             'pytest>=3.2',
-             'pytest-cov>=2.5',
--            'pytest-flake8',
-             'pytest-runner>=2.11,<3dev',
-             'pytest-timeout>=1.2',
-             'setuptools_scm>=1.15',
diff --git a/pkgs/tools/system/dd_rescue/default.nix b/pkgs/tools/system/dd_rescue/default.nix
index ee82af1a4707..1ea574dbe8ea 100644
--- a/pkgs/tools/system/dd_rescue/default.nix
+++ b/pkgs/tools/system/dd_rescue/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, autoconf }:
 
 stdenv.mkDerivation rec {
-  version = "1.99.7";
+  version = "1.99.8";
   name = "dd_rescue-${version}";
 
   src = fetchurl {
-    sha256 = "0d318i1i5d7hbj06wmb3xag14x542cv7fpkh5zjf5ccm64nyzir4";
+    sha256 = "1gbxm8gr9sx5g1q9dycs21hkxikcy97q09lp1lvs59pnd9qpdnwh";
     url="http://www.garloff.de/kurt/linux/ddrescue/${name}.tar.bz2";
   };
 
diff --git a/pkgs/tools/system/di/default.nix b/pkgs/tools/system/di/default.nix
index 54c9bbb14060..b9fcb502124f 100644
--- a/pkgs/tools/system/di/default.nix
+++ b/pkgs/tools/system/di/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   name = "di-${version}";
-  version = "4.45";
+  version = "4.46";
 
   src = fetchurl {
     url = "http://gentoo.com/di/${name}.tar.gz";
-    sha256 = "18z56rprhpm6y0s7pqs19yf7ilq7n50020qzxdm9yra77ivdr09z";
+    sha256 = "0cskiqywiqkw44zdg4q78bjns6jjp1dz5lzdxrhpnpldc6075irw";
   };
 
   makeFlags = [ "INSTALL_DIR=$(out)" ];
diff --git a/pkgs/tools/system/fio/default.nix b/pkgs/tools/system/fio/default.nix
index ee7c70240b0a..6e63f467f600 100644
--- a/pkgs/tools/system/fio/default.nix
+++ b/pkgs/tools/system/fio/default.nix
@@ -15,11 +15,15 @@ stdenv.mkDerivation rec {
     inherit sha256;
   };
 
-  buildInputs = [ libaio python zlib ];
+  buildInputs = [ python zlib ]
+    ++ stdenv.lib.optional (!stdenv.isDarwin) libaio;
 
   enableParallelBuilding = true;
 
   postPatch = ''
+    substituteInPlace Makefile \
+      --replace "mandir = /usr/share/man" "mandir = \$(prefix)/man" \
+      --replace "sharedir = /usr/share/fio" "sharedir = \$(prefix)/share/fio"
     substituteInPlace tools/plot/fio2gnuplot --replace /usr/share/fio $out/share/fio
   '';
 
diff --git a/pkgs/tools/system/freeipmi/default.nix b/pkgs/tools/system/freeipmi/default.nix
index fd70dce4edf3..6996d66abe0c 100644
--- a/pkgs/tools/system/freeipmi/default.nix
+++ b/pkgs/tools/system/freeipmi/default.nix
@@ -36,7 +36,7 @@ stdenv.mkDerivation rec {
     license = stdenv.lib.licenses.gpl3Plus;
 
     maintainers = with stdenv.lib.maintainers; [ raskin ];
-    platforms = stdenv.lib.platforms.gnu;  # arbitrary choice
+    platforms = stdenv.lib.platforms.gnu ++ stdenv.lib.platforms.linux;  # arbitrary choice
 
     updateWalker = true;
     inherit version;
diff --git a/pkgs/tools/system/hwinfo/default.nix b/pkgs/tools/system/hwinfo/default.nix
index 67258399d8bc..839be268b5b4 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.52";
+  version = "21.53";
 
   src = fetchFromGitHub {
     owner = "opensuse";
     repo = "hwinfo";
     rev = "${version}";
-    sha256 = "1kva5bhylxbxgp2lv48av8mzcyybigj45rbwl9736l1kiv58i21r";
+    sha256 = "1hrazksr95pxl5p0r0x3cdph1ps98cls2v9avg0qs0qf9y18hady";
   };
 
   patchPhase = ''
diff --git a/pkgs/tools/system/ipmiutil/default.nix b/pkgs/tools/system/ipmiutil/default.nix
index 6b206ea8761a..bace31a17bda 100644
--- a/pkgs/tools/system/ipmiutil/default.nix
+++ b/pkgs/tools/system/ipmiutil/default.nix
@@ -2,12 +2,12 @@
 
 stdenv.mkDerivation rec {
   baseName = "ipmiutil";
-  version = "3.0.9";
+  version = "3.1.0";
   name = "${baseName}-${version}";
 
   src = fetchurl {
     url = "mirror://sourceforge/project/${baseName}/${name}.tar.gz";
-    sha256 = "0j4lsfdj2bk1b1vw9l00zv1g4jan05p09szqbzxgqqw2lpnca4i7";
+    sha256 = "1vvdydql5gmq103wr0ris2fvr3l5an2a8zgg2mmgdi88pxi11xfx";
   };
 
   buildInputs = [ openssl ];
diff --git a/pkgs/tools/system/lr/default.nix b/pkgs/tools/system/lr/default.nix
index 8fac35fbe431..f4b451026d11 100644
--- a/pkgs/tools/system/lr/default.nix
+++ b/pkgs/tools/system/lr/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   name = "lr-${version}";
-  version = "1.3";
+  version = "1.4";
 
   src = fetchFromGitHub {
     owner = "chneukirchen";
     repo = "lr";
     rev = "v${version}";
-    sha256 = "0g4iqz8ddv7dsrfhx0828bmc16ff8qp8xh5ya9f0n5qj4zh4cn35";
+    sha256 = "0lwnd5whq5f0czhqgaj4y6myzw4wssk6bji4z3dck95c8rpvg05a";
   };
 
   makeFlags = "PREFIX=$(out)";
diff --git a/pkgs/tools/system/osquery/default.nix b/pkgs/tools/system/osquery/default.nix
index 2a719efd79b3..a0aaa846bc73 100644
--- a/pkgs/tools/system/osquery/default.nix
+++ b/pkgs/tools/system/osquery/default.nix
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
 
   # this is what `osquery --help` will show as the version.
   OSQUERY_BUILD_VERSION = version;
-  OSQUERY_PLATFORM = "nixos;${builtins.readFile "${toString path}/.version"}";
+  OSQUERY_PLATFORM = "nixos;${stdenv.lib.version}";
 
   src = fetchFromGitHub {
     owner = "facebook";
diff --git a/pkgs/tools/system/psstop/default.nix b/pkgs/tools/system/psstop/default.nix
new file mode 100644
index 000000000000..178e08938fea
--- /dev/null
+++ b/pkgs/tools/system/psstop/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchFromGitHub, autoreconfHook, pkgconfig, glib }:
+
+stdenv.mkDerivation rec {
+  name = "psstop-${version}";
+  version = "1.3";
+
+  src = fetchFromGitHub {
+    owner = "clearlinux";
+    repo = "psstop";
+    rev = "v${version}";
+    sha256 = "03ir3jjpzm7q8n1qc5jr99hqarr9r529w1zb6f7q4wak2vfj7w9h";
+  };
+
+  nativeBuildInputs = [ autoreconfHook pkgconfig ];
+
+  buildInputs = [ glib ];
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/clearlinux/psstop;
+    description = "Show processes' memory usage by looking into pss"; # upstream summary
+    license = licenses.gpl3;
+    maintainers = with maintainers; [ dtzWill ];
+  };
+}
diff --git a/pkgs/tools/system/storebrowse/default.nix b/pkgs/tools/system/storebrowse/default.nix
index 40332f7b0d44..e56919acc5d5 100644
--- a/pkgs/tools/system/storebrowse/default.nix
+++ b/pkgs/tools/system/storebrowse/default.nix
@@ -1,7 +1,5 @@
 { stdenv, fetchurl, fetchhg, go, sqlite}:
 
-assert stdenv.isLinux && (stdenv.isi686 || stdenv.isx86_64 || stdenv.isArm);
-
 stdenv.mkDerivation rec {
   name = "storebrowse-20130318212204";
 
diff --git a/pkgs/tools/text/highlight/default.nix b/pkgs/tools/text/highlight/default.nix
index 1fcfdd85e7ae..c2fe3fcd5761 100644
--- a/pkgs/tools/text/highlight/default.nix
+++ b/pkgs/tools/text/highlight/default.nix
@@ -4,13 +4,13 @@ with stdenv.lib;
 
 stdenv.mkDerivation rec {
   name = "highlight-${version}";
-  version = "3.42";
+  version = "3.43";
 
   src = fetchFromGitHub {
     owner = "andre-simon";
     repo = "highlight";
-    rev = "${version}";
-    sha256 = "1fxx827igzqjn5rri57b8980hnd3ixz3j7smfxwi1ivfhlfznzgr";
+    rev = "v${version}";
+    sha256 = "126nsf4cjxflg2kiv72qf1xl5fsilk0jqcncs6qqgm72cpjfmlsy";
   };
 
   nativeBuildInputs = [ pkgconfig ] ++ optional stdenv.isDarwin  gcc ;
diff --git a/pkgs/tools/text/namazu/default.nix b/pkgs/tools/text/namazu/default.nix
index 21548de5efbd..67a26cb41aa0 100644
--- a/pkgs/tools/text/namazu/default.nix
+++ b/pkgs/tools/text/namazu/default.nix
@@ -38,7 +38,7 @@ stdenv.mkDerivation rec {
     license = stdenv.lib.licenses.gpl2Plus;
     homepage = http://namazu.org/;
 
-    platforms = stdenv.lib.platforms.gnu;  # arbitrary choice
+    platforms = stdenv.lib.platforms.gnu ++ stdenv.lib.platforms.linux;  # arbitrary choice
     maintainers = [ ];
     broken = true; # File-MMagic is not compatible with our Perl version
   };
diff --git a/pkgs/tools/text/numdiff/default.nix b/pkgs/tools/text/numdiff/default.nix
index 96c91def9ac7..4741fecb90c1 100644
--- a/pkgs/tools/text/numdiff/default.nix
+++ b/pkgs/tools/text/numdiff/default.nix
@@ -18,6 +18,6 @@ stdenv.mkDerivation rec {
     homepage = http://www.nongnu.org/numdiff/;
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ ndowens ];
-    platforms = platforms.gnu;
+    platforms = platforms.gnu ++ platforms.linux;
   };
 }
diff --git a/pkgs/tools/text/vale/default.nix b/pkgs/tools/text/vale/default.nix
index 057f1c48a1f2..84ef164ce248 100644
--- a/pkgs/tools/text/vale/default.nix
+++ b/pkgs/tools/text/vale/default.nix
@@ -2,16 +2,16 @@
 
 buildGoPackage rec {
   name = "vale-${version}";
-  version = "0.10.1";
-  rev    = "${version}";
+  version = "0.11.2";
+  rev    = "v${version}";
 
-  goPackagePath = "github.com/ValeLint/vale";
+  goPackagePath = "github.com/errata-ai/vale";
 
   src = fetchFromGitHub {
     inherit rev;
-    owner  = "ValeLint";
+    owner  = "errata-ai";
     repo   = "vale";
-    sha256 = "1iyc9mny3nb6j3allj3szkiygc2v3gi7l7syq9ifjrm1wknk8wrf";
+    sha256 = "0zs6bdwnc5fpa0skw1xhdwg6jzsc7wcb8lsfj235jc8jd2w13mvm";
   };
 
   goDeps = ./deps.nix;
diff --git a/pkgs/tools/text/vale/deps.nix b/pkgs/tools/text/vale/deps.nix
index 7bf61f433cee..e63becb5b4b3 100644
--- a/pkgs/tools/text/vale/deps.nix
+++ b/pkgs/tools/text/vale/deps.nix
@@ -1,275 +1,246 @@
-
-  # file automatically generated from Gopkg.lock with https://github.com/nixcloud/dep2nix (golang dep)
-  [
-
-    {
-      goPackagePath  = "github.com/ValeLint/gospell";
-      fetch = {
-        type = "git";
-        url = "https://github.com/ValeLint/gospell";
-        rev =  "90dfc71015dfebd3a7274f1ad2756c1dbf09e250";
-        sha256 = "0i2ha76q2xja8r4j72kqiarnylrbk4l1b29632skgzib6k4fh4g1";
-      };
-    }
-
-    {
-      goPackagePath  = "github.com/client9/gospell";
-      fetch = {
-        type = "git";
-        url = "https://github.com/client9/gospell";
-        rev =  "90dfc71015dfebd3a7274f1ad2756c1dbf09e250";
-        sha256 = "0i2ha76q2xja8r4j72kqiarnylrbk4l1b29632skgzib6k4fh4g1";
-      };
-    }
-
-    {
-      goPackagePath  = "github.com/davecgh/go-spew";
-      fetch = {
-        type = "git";
-        url = "https://github.com/davecgh/go-spew";
-        rev =  "346938d642f2ec3594ed81d874461961cd0faa76";
-        sha256 = "0d4jfmak5p6lb7n2r6yvf5p1zcw0l8j74kn55ghvr7zr7b7axm6c";
-      };
-    }
-
-    {
-      goPackagePath  = "github.com/fatih/color";
-      fetch = {
-        type = "git";
-        url = "https://github.com/fatih/color";
-        rev =  "570b54cabe6b8eb0bc2dfce68d964677d63b5260";
-        sha256 = "1hw9hgkfzbzqjhy29pqpk20xggxaqjv45wx8yn69488mw5ph7khh";
-      };
-    }
-
-    {
-      goPackagePath  = "github.com/gobwas/glob";
-      fetch = {
-        type = "git";
-        url = "https://github.com/gobwas/glob";
-        rev =  "bea32b9cd2d6f55753d94a28e959b13f0244797a";
-        sha256 = "0dx0f293v1a0d8qi7ik5hdl26dapd8xm0hj9a9gc620vhj7khi9q";
-      };
-    }
-
-    {
-      goPackagePath  = "github.com/jdkato/prose";
-      fetch = {
-        type = "git";
-        url = "https://github.com/jdkato/prose";
-        rev =  "4d68d1b77f66e36b6897a79f59f434d558e5e0c2";
-        sha256 = "1g2wwj6azpcjy6j7pk4dqx868v3hrqwjg5d737p4441a55026prj";
-      };
-    }
-
-    {
-      goPackagePath  = "github.com/jdkato/regexp";
-      fetch = {
-        type = "git";
-        url = "https://github.com/jdkato/regexp";
-        rev =  "38ab2f7842bf2a539528aa7d0014b37421b886e1";
-        sha256 = "11z21z2h2l8vlh4nwkcn7vbfdcmdjk9sc90kn8ji1923i3s7p3bw";
-      };
-    }
-
-    {
-      goPackagePath  = "github.com/mattn/go-colorable";
-      fetch = {
-        type = "git";
-        url = "https://github.com/mattn/go-colorable";
-        rev =  "941b50ebc6efddf4c41c8e4537a5f68a4e686b24";
-        sha256 = "0dw492z5w0fzv1cxm3xx26n8qpqjaf2ybiwpmvimzyhv65n8nrf8";
-      };
-    }
-
-    {
-      goPackagePath  = "github.com/mattn/go-isatty";
-      fetch = {
-        type = "git";
-        url = "https://github.com/mattn/go-isatty";
-        rev =  "fc9e8d8ef48496124e79ae0df75490096eccf6fe";
-        sha256 = "1r5f9gkavkb1w6sr0qs5kj16706xirl3qnlq3hqpszkw9w27x65a";
-      };
-    }
-
-    {
-      goPackagePath  = "github.com/mattn/go-runewidth";
-      fetch = {
-        type = "git";
-        url = "https://github.com/mattn/go-runewidth";
-        rev =  "9e777a8366cce605130a531d2cd6363d07ad7317";
-        sha256 = "0vkrfrz3fzn5n6ix4k8s0cg0b448459sldq8bp4riavsxm932jzb";
-      };
-    }
-
-    {
-      goPackagePath  = "github.com/mitchellh/go-homedir";
-      fetch = {
-        type = "git";
-        url = "https://github.com/mitchellh/go-homedir";
-        rev =  "b8bc1bf767474819792c23f32d8286a45736f1c6";
-        sha256 = "13ry4lylalkh4g2vny9cxwvryslzyzwp9r92z0b10idhdq3wad1q";
-      };
-    }
-
-    {
-      goPackagePath  = "github.com/mitchellh/mapstructure";
-      fetch = {
-        type = "git";
-        url = "https://github.com/mitchellh/mapstructure";
-        rev =  "d0303fe809921458f417bcf828397a65db30a7e4";
-        sha256 = "1fjwi5ghc1ibyx93apz31n4hj6gcq1hzismpdfbg2qxwshyg0ya8";
-      };
-    }
-
-    {
-      goPackagePath  = "github.com/montanaflynn/stats";
-      fetch = {
-        type = "git";
-        url = "https://github.com/montanaflynn/stats";
-        rev =  "eeaced052adbcfeea372c749c281099ed7fdaa38";
-        sha256 = "0kamcla633692n81w0j0d423ws3qdds97r2c0i193ypsh9xknpq9";
-      };
-    }
-
-    {
-      goPackagePath  = "github.com/olekukonko/tablewriter";
-      fetch = {
-        type = "git";
-        url = "https://github.com/olekukonko/tablewriter";
-        rev =  "be5337e7b39e64e5f91445ce7e721888dbab7387";
-        sha256 = "04zg261i4bq29bc460nyx9r2j70mj0sbxlprn87ylk8y5j2m1d1w";
-      };
-    }
-
-    {
-      goPackagePath  = "github.com/pmezard/go-difflib";
-      fetch = {
-        type = "git";
-        url = "https://github.com/pmezard/go-difflib";
-        rev =  "792786c7400a136282c1664665ae0a8db921c6c2";
-        sha256 = "0c1cn55m4rypmscgf0rrb88pn58j3ysvc2d0432dp3c6fqg6cnzw";
-      };
-    }
-
-    {
-      goPackagePath  = "github.com/remeh/sizedwaitgroup";
-      fetch = {
-        type = "git";
-        url = "https://github.com/remeh/sizedwaitgroup";
-        rev =  "4b44541c93591ee0e73747d6081e61bd8c58b5c7";
-        sha256 = "1kz7h8r09c95r3hc8bngznc4lrnkz2vm50lrl96cqxja0pw8jl92";
-      };
-    }
-
-    {
-      goPackagePath  = "github.com/russross/blackfriday";
-      fetch = {
-        type = "git";
-        url = "https://github.com/russross/blackfriday";
-        rev =  "0b647d0506a698cca42caca173e55559b12a69f2";
-        sha256 = "1bv6mvnrqrcrp5d45l5p07q855sval8l3jzw1cf2dajkpcpysqln";
-      };
-    }
-
-    {
-      goPackagePath  = "github.com/shogo82148/go-shuffle";
-      fetch = {
-        type = "git";
-        url = "https://github.com/shogo82148/go-shuffle";
-        rev =  "4789c7c401f229b3ae1673acbccca451480660cd";
-        sha256 = "1gaii1h51df8vr28ww5np8nhvfcy4plv0nja9b9h0cmcxa3jf1lp";
-      };
-    }
-
-    {
-      goPackagePath  = "github.com/shurcooL/sanitized_anchor_name";
-      fetch = {
-        type = "git";
-        url = "https://github.com/shurcooL/sanitized_anchor_name";
-        rev =  "541ff5ee47f1dddf6a5281af78307d921524bcb5";
-        sha256 = "1fslblamqkd0yrvl1kbq95hnnji78bq9m33nnxiqs7y9w32zylv5";
-      };
-    }
-
-    {
-      goPackagePath  = "github.com/stretchr/testify";
-      fetch = {
-        type = "git";
-        url = "https://github.com/stretchr/testify";
-        rev =  "69483b4bd14f5845b5a1e55bca19e954e827f1d0";
-        sha256 = "11lzrwkdzdd8yyag92akncc008h2f9d1bpc489mxiwp0jrmz4ivb";
-      };
-    }
-
-    {
-      goPackagePath  = "github.com/urfave/cli";
-      fetch = {
-        type = "git";
-        url = "https://github.com/urfave/cli";
-        rev =  "0bdeddeeb0f650497d603c4ad7b20cfe685682f6";
-        sha256 = "1ny63c7bfwfrsp7vfkvb4i0xhq4v7yxqnwxa52y4xlfxs4r6v6fg";
-      };
-    }
-
-    {
-      goPackagePath  = "github.com/xrash/smetrics";
-      fetch = {
-        type = "git";
-        url = "https://github.com/xrash/smetrics";
-        rev =  "a3153f7040e90324c58c6287535e26a0ac5c1cc1";
-        sha256 = "1phq5y6mcg741spq7snc6xsky1ybc7fllh2444sfr3p41sjq9hg6";
-      };
-    }
-
-    {
-      goPackagePath  = "golang.org/x/net";
-      fetch = {
-        type = "git";
-        url = "https://go.googlesource.com/net";
-        rev =  "ab5485076ff3407ad2d02db054635913f017b0ed";
-        sha256 = "10805rk5rfgc3ivx35r9qmnps8hy3k3m57g0j6mz10w96k8i7pk7";
-      };
-    }
-
-    {
-      goPackagePath  = "golang.org/x/sys";
-      fetch = {
-        type = "git";
-        url = "https://go.googlesource.com/sys";
-        rev =  "14ac33bf8474b62c65cae263af2e4d3b543cc699";
-        sha256 = "1453l5v5kizq142fiq3bg5hka7b0yvnf9fsq8y2ayj4bc9h5vqf3";
-      };
-    }
-
-    {
-      goPackagePath  = "gopkg.in/ini.v1";
-      fetch = {
-        type = "git";
-        url = "https://gopkg.in/ini.v1";
-        rev =  "d3de07a94d22b4a0972deb4b96d790c2c0ce8333";
-        sha256 = "1lpwqhcfhaa6aighd2lpjfswbb6aw5d5bsmyr0vqaqg6g5kz0ikg";
-      };
-    }
-
-    {
-      goPackagePath  = "gopkg.in/neurosnap/sentences.v1";
-      fetch = {
-        type = "git";
-        url = "https://gopkg.in/neurosnap/sentences.v1";
-        rev =  "a7f18ead1433a139742a8b42ce7a059cfb484d60";
-        sha256 = "1b64xv5anfbnq6354jaygxapwgkdhbszzi604b96sm682brwl0p7";
-      };
-    }
-
-    {
-      goPackagePath  = "gopkg.in/yaml.v2";
-      fetch = {
-        type = "git";
-        url = "https://gopkg.in/yaml.v2";
-        rev =  "25c4ec802a7d637f88d584ab26798e94ad14c13b";
-        sha256 = "053mknsl3xhjscmd552005xnwbfcg0z2iphvbvj3wi0w3pvmlw44";
-      };
-    }
-
+# file generated from Gopkg.lock using dep2nix (https://github.com/nixcloud/dep2nix)
+[
+  {
+    goPackagePath  = "github.com/ValeLint/gospell";
+    fetch = {
+      type = "git";
+      url = "https://github.com/ValeLint/gospell";
+      rev =  "90dfc71015dfebd3a7274f1ad2756c1dbf09e250";
+      sha256 = "0i2ha76q2xja8r4j72kqiarnylrbk4l1b29632skgzib6k4fh4g1";
+    };
+  }
+  {
+    goPackagePath  = "github.com/client9/gospell";
+    fetch = {
+      type = "git";
+      url = "https://github.com/client9/gospell";
+      rev =  "90dfc71015dfebd3a7274f1ad2756c1dbf09e250";
+      sha256 = "0i2ha76q2xja8r4j72kqiarnylrbk4l1b29632skgzib6k4fh4g1";
+    };
+  }
+  {
+    goPackagePath  = "github.com/davecgh/go-spew";
+    fetch = {
+      type = "git";
+      url = "https://github.com/davecgh/go-spew";
+      rev =  "8991bc29aa16c548c550c7ff78260e27b9ab7c73";
+      sha256 = "0hka6hmyvp701adzag2g26cxdj47g21x6jz4sc6jjz1mn59d474y";
+    };
+  }
+  {
+    goPackagePath  = "github.com/fatih/color";
+    fetch = {
+      type = "git";
+      url = "https://github.com/fatih/color";
+      rev =  "507f6050b8568533fb3f5504de8e5205fa62a114";
+      sha256 = "0k1v9dkhrxiqhg48yqkwzpd7x40xx38gv2pgknswbsy4r8w644i7";
+    };
+  }
+  {
+    goPackagePath  = "github.com/gobwas/glob";
+    fetch = {
+      type = "git";
+      url = "https://github.com/gobwas/glob";
+      rev =  "f00a7392b43971b2fdb562418faab1f18da2067a";
+      sha256 = "1b7jnb7rx99na25lkm9m9jr583mv7y0lwp57w58sv7ir9iiilx29";
+    };
+  }
+  {
+    goPackagePath  = "github.com/jdkato/prose";
+    fetch = {
+      type = "git";
+      url = "https://github.com/jdkato/prose";
+      rev =  "e27abfd3f31b84c37bbce37179b0428fcb1384be";
+      sha256 = "04rjqh3jdxaqr9czp4vcj14hqfv7yppv4nb7ynb04c9jcq23ajw7";
+    };
+  }
+  {
+    goPackagePath  = "github.com/jdkato/regexp";
+    fetch = {
+      type = "git";
+      url = "https://github.com/jdkato/regexp";
+      rev =  "38ab2f7842bf2a539528aa7d0014b37421b886e1";
+      sha256 = "11z21z2h2l8vlh4nwkcn7vbfdcmdjk9sc90kn8ji1923i3s7p3bw";
+    };
+  }
+  {
+    goPackagePath  = "github.com/mattn/go-colorable";
+    fetch = {
+      type = "git";
+      url = "https://github.com/mattn/go-colorable";
+      rev =  "efa589957cd060542a26d2dd7832fd6a6c6c3ade";
+      sha256 = "0kshi4hvm0ayrsxqxy0599iv81kryhd2fn9lwjyczpj593cq069r";
+    };
+  }
+  {
+    goPackagePath  = "github.com/mattn/go-isatty";
+    fetch = {
+      type = "git";
+      url = "https://github.com/mattn/go-isatty";
+      rev =  "6ca4dbf54d38eea1a992b3c722a76a5d1c4cb25c";
+      sha256 = "0zs92j2cqaw9j8qx1sdxpv3ap0rgbs0vrvi72m40mg8aa36gd39w";
+    };
+  }
+  {
+    goPackagePath  = "github.com/mattn/go-runewidth";
+    fetch = {
+      type = "git";
+      url = "https://github.com/mattn/go-runewidth";
+      rev =  "ce7b0b5c7b45a81508558cd1dba6bb1e4ddb51bb";
+      sha256 = "0lc39b6xrxv7h3v3y1kgz49cgi5qxwlygs715aam6ba35m48yi7g";
+    };
+  }
+  {
+    goPackagePath  = "github.com/mitchellh/go-homedir";
+    fetch = {
+      type = "git";
+      url = "https://github.com/mitchellh/go-homedir";
+      rev =  "b8bc1bf767474819792c23f32d8286a45736f1c6";
+      sha256 = "13ry4lylalkh4g2vny9cxwvryslzyzwp9r92z0b10idhdq3wad1q";
+    };
+  }
+  {
+    goPackagePath  = "github.com/mitchellh/mapstructure";
+    fetch = {
+      type = "git";
+      url = "https://github.com/mitchellh/mapstructure";
+      rev =  "00c29f56e2386353d58c599509e8dc3801b0d716";
+      sha256 = "1vw8fvhax0d567amgvxr7glcl12lvzg2sbzs007q5k5bbwn1szyb";
+    };
+  }
+  {
+    goPackagePath  = "github.com/montanaflynn/stats";
+    fetch = {
+      type = "git";
+      url = "https://github.com/montanaflynn/stats";
+      rev =  "1bf9dbcd8cbe1fdb75add3785b1d4a9a646269ab";
+      sha256 = "0qnx3hvd3lhwnmxg7nr4nwl5kbsc7ffnjk9ifyk0f05h61l3v9pz";
+    };
+  }
+  {
+    goPackagePath  = "github.com/olekukonko/tablewriter";
+    fetch = {
+      type = "git";
+      url = "https://github.com/olekukonko/tablewriter";
+      rev =  "d5dd8a50526aadb3d5f2c9b5233277bc2db90e88";
+      sha256 = "0l7y3mmwkzpa7p56drw6d6416j9zfapznfyr1dab44d6kk48rvjx";
+    };
+  }
+  {
+    goPackagePath  = "github.com/pmezard/go-difflib";
+    fetch = {
+      type = "git";
+      url = "https://github.com/pmezard/go-difflib";
+      rev =  "792786c7400a136282c1664665ae0a8db921c6c2";
+      sha256 = "0c1cn55m4rypmscgf0rrb88pn58j3ysvc2d0432dp3c6fqg6cnzw";
+    };
+  }
+  {
+    goPackagePath  = "github.com/remeh/sizedwaitgroup";
+    fetch = {
+      type = "git";
+      url = "https://github.com/remeh/sizedwaitgroup";
+      rev =  "5582a674300c427060d06980c142aeb52ed20040";
+      sha256 = "152a1xnaswh9fx6f71llggm513c6ch171gc61jk3b6b0il6npb57";
+    };
+  }
+  {
+    goPackagePath  = "github.com/russross/blackfriday";
+    fetch = {
+      type = "git";
+      url = "https://github.com/russross/blackfriday";
+      rev =  "16ac584625fae401e2778e7af317dc415844c44b";
+      sha256 = "0g0dbqm76aqsc2a43j95i0h5138cmlgnldhkv3blgn0ga6s8ypfg";
+    };
+  }
+  {
+    goPackagePath  = "github.com/shogo82148/go-shuffle";
+    fetch = {
+      type = "git";
+      url = "https://github.com/shogo82148/go-shuffle";
+      rev =  "27e6095f230d6c769aafa7232db643a628bd87ad";
+      sha256 = "0nig0q0f0v6ay2w0k3r0pqlvjp1yg9s06f00qpizp679vc46gqs1";
+    };
+  }
+  {
+    goPackagePath  = "github.com/shurcooL/sanitized_anchor_name";
+    fetch = {
+      type = "git";
+      url = "https://github.com/shurcooL/sanitized_anchor_name";
+      rev =  "86672fcb3f950f35f2e675df2240550f2a50762f";
+      sha256 = "142m507s9971cl8qdmbcw7sqxnkgi3xqd8wzvfq15p0w7w8i4a3h";
+    };
+  }
+  {
+    goPackagePath  = "github.com/stretchr/testify";
+    fetch = {
+      type = "git";
+      url = "https://github.com/stretchr/testify";
+      rev =  "c679ae2cc0cb27ec3293fea7e254e47386f05d69";
+      sha256 = "1rrdn7k83j492rzhqwkh6956sj8m2nbk44d7r1xa9nsn3hfwj691";
+    };
+  }
+  {
+    goPackagePath  = "github.com/urfave/cli";
+    fetch = {
+      type = "git";
+      url = "https://github.com/urfave/cli";
+      rev =  "8e01ec4cd3e2d84ab2fe90d8210528ffbb06d8ff";
+      sha256 = "0cpr10n4ps3gcdbcink71ry9hzhdb5rrcysmylybs8h2lzxqgc1i";
+    };
+  }
+  {
+    goPackagePath  = "github.com/xrash/smetrics";
+    fetch = {
+      type = "git";
+      url = "https://github.com/xrash/smetrics";
+      rev =  "a3153f7040e90324c58c6287535e26a0ac5c1cc1";
+      sha256 = "1phq5y6mcg741spq7snc6xsky1ybc7fllh2444sfr3p41sjq9hg6";
+    };
+  }
+  {
+    goPackagePath  = "golang.org/x/net";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/net";
+      rev =  "5f9ae10d9af5b1c89ae6904293b14b064d4ada23";
+      sha256 = "10vzmdg8z73krbp2qhsqygvqd0f0s98376mrxm614xdcdljn73dn";
+    };
+  }
+  {
+    goPackagePath  = "golang.org/x/sys";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/sys";
+      rev =  "bb9c189858d91f42db229b04d45a4c3d23a7662a";
+      sha256 = "0z20pql3hzlplcc8ywfq7a1s8mfixmcp84k656fdkmkdjfyvsl0v";
+    };
+  }
+  {
+    goPackagePath  = "gopkg.in/ini.v1";
+    fetch = {
+      type = "git";
+      url = "https://github.com/go-ini/ini";
+      rev =  "bda519ae5f4cbc60d391ff8610711627a08b86ae";
+      sha256 = "05vcc3ssxyrk8g3sr4gs888vllgjqfq11na63qz2pvaiy7m0rqrs";
+    };
+  }
+  {
+    goPackagePath  = "gopkg.in/neurosnap/sentences.v1";
+    fetch = {
+      type = "git";
+      url = "https://github.com/neurosnap/sentences";
+      rev =  "b0f23a5b35b961fe821f49e51235242d2a8193f3";
+      sha256 = "0f5lmww1g4frd5avmqw120zzklcxk5z4l20r4d8zix7406ry7zrg";
+    };
+  }
+  {
+    goPackagePath  = "gopkg.in/yaml.v2";
+    fetch = {
+      type = "git";
+      url = "https://github.com/go-yaml/yaml";
+      rev =  "5420a8b6744d3b0345ab293f6fcba19c978f1183";
+      sha256 = "0dwjrs2lp2gdlscs7bsrmyc5yf6mm4fvgw71bzr9mv2qrd2q73s1";
+    };
+  }
 ]
\ No newline at end of file
diff --git a/pkgs/tools/text/xml/html-xml-utils/default.nix b/pkgs/tools/text/xml/html-xml-utils/default.nix
index 987d192bafcd..f681ae62aeaa 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 {
   name = "html-xml-utils-${version}";
-  version = "7.6";
+  version = "7.7";
 
   src = fetchurl {
     url = "http://www.w3.org/Tools/HTML-XML-utils/${name}.tar.gz";
-    sha256 = "0l97ps089byy62838wf2jwvvc465iw29z9r5kwmwcq7f3bn11y3m";
+    sha256 = "1vwqp5q276j8di9zql3kygf31z2frp2c59yjqlrvvwcvccvkcdwr";
   };
 
   buildInputs = [curl libiconv];
diff --git a/pkgs/tools/text/xml/xmlformat/default.nix b/pkgs/tools/text/xml/xmlformat/default.nix
new file mode 100644
index 000000000000..5982aa3828ef
--- /dev/null
+++ b/pkgs/tools/text/xml/xmlformat/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchurl, perl }:
+stdenv.mkDerivation rec {
+  name = "xmlformat-${version}";
+  version = "1.04";
+
+  src = fetchurl {
+    url = "http://www.kitebird.com/software/xmlformat/xmlformat-${version}.tar.gz";
+    sha256 = "1vwgzn4ha0az7dx0cyc6dx5nywwrx9gxhyh08mvdcq27wjbh79vi";
+  };
+
+  buildInputs = [ perl ];
+  buildPhase = ''
+    patchShebangs ./xmlformat.pl
+  '';
+
+  installPhase = ''
+    mkdir -p $out/bin
+    cp ./xmlformat.pl $out/bin/xmlformat
+    cp ./LICENSE $out/
+  '';
+
+  meta = {
+    description = "a configurable formatter (or 'pretty-printer') for XML documents";
+    homepage = "http://www.kitebird.com/software/xmlformat/";
+    license = stdenv.lib.licenses.bsd3;
+    platforms = stdenv.lib.platforms.all;
+  };
+}
diff --git a/pkgs/tools/typesetting/pdfgrep/default.nix b/pkgs/tools/typesetting/pdfgrep/default.nix
index 0c288ca02ccf..3509eb569b1c 100644
--- a/pkgs/tools/typesetting/pdfgrep/default.nix
+++ b/pkgs/tools/typesetting/pdfgrep/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   name = "pdfgrep-${version}";
-  version = "2.0.1";
+  version = "2.1.0";
 
   src = fetchurl {
     url = "https://pdfgrep.org/download/${name}.tar.gz";
-    sha256 = "07llkrkcfjwd3ybai9ad10ybhr0biffcplmy7lw4fb87nd2dfw03";
+    sha256 = "13al23c2wlpsha6c1z1h6gh5lxzphsnzpd7b78qj16rq2r46phf9";
   };
 
   postPatch = ''
diff --git a/pkgs/tools/video/dvgrab/default.nix b/pkgs/tools/video/dvgrab/default.nix
index cec4fc1ce8bf..752a6f314325 100644
--- a/pkgs/tools/video/dvgrab/default.nix
+++ b/pkgs/tools/video/dvgrab/default.nix
@@ -34,6 +34,6 @@ stdenv.mkDerivation rec {
     homepage = http://kinodv.org/;
 
     license = licenses.gpl2Plus;
-    platforms = platforms.gnu;
+    platforms = platforms.gnu ++ platforms.linux;
   };
 }
diff --git a/pkgs/tools/virtualization/awsebcli/default.nix b/pkgs/tools/virtualization/awsebcli/default.nix
index 3b3bda0f22dc..b55ac457305b 100644
--- a/pkgs/tools/virtualization/awsebcli/default.nix
+++ b/pkgs/tools/virtualization/awsebcli/default.nix
@@ -19,6 +19,14 @@ let
         };
       });
 
+      pathspec = super.pathspec.overridePythonAttrs (oldAttrs: rec {
+        version = "0.5.5";
+        src = oldAttrs.src.override {
+          inherit version;
+          sha256 = "72c495d1bbe76674219e307f6d1c6062f2e1b0b483a5e4886435127d0df3d0d3";
+        };
+      });
+
       requests = super.requests.overridePythonAttrs (oldAttrs: rec {
         version = "2.9.1";
         src = oldAttrs.src.override {
@@ -46,11 +54,11 @@ let
   };
 in with localPython.pkgs; buildPythonApplication rec {
   pname = "awsebcli";
-  version = "3.12.3";
+  version = "3.12.4";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0jj6xhvsrgvc5pm05zbd95zvx36ssywq70j6q1kzcdv1flfzzyp9";
+    sha256 = "128dgxyz2bgl3r4jdkbmjs280004bm0dwzln7p6ly3yjs2x37jl6";
   };
 
   checkInputs = [
diff --git a/pkgs/tools/virtualization/nixos-container/nixos-container.pl b/pkgs/tools/virtualization/nixos-container/nixos-container.pl
index 2cb723a7b71a..a210a65f431c 100755
--- a/pkgs/tools/virtualization/nixos-container/nixos-container.pl
+++ b/pkgs/tools/virtualization/nixos-container/nixos-container.pl
@@ -242,11 +242,21 @@ sub terminateContainer {
     while ( kill 0, $leader ) { Time::HiRes::sleep(0.1) }
 }
 
+sub startContainer {
+    system("systemctl", "start", "container\@$containerName") == 0
+        or die "$0: failed to start container\n";
+}
+
 sub stopContainer {
     system("systemctl", "stop", "container\@$containerName") == 0
         or die "$0: failed to stop container\n";
 }
 
+sub restartContainer {
+    stopContainer;
+    startContainer;
+}
+
 # Run a command in the container.
 sub runInContainer {
     my @args = @_;
@@ -285,9 +295,12 @@ if ($action eq "destroy") {
     unlink($confFile) or die;
 }
 
+elsif ($action eq "restart") {
+    restartContainer;
+}
+
 elsif ($action eq "start") {
-    system("systemctl", "start", "container\@$containerName") == 0
-        or die "$0: failed to start container\n";
+    startContainer;
 }
 
 elsif ($action eq "stop") {