summary refs log tree commit diff
path: root/pkgs/tools/misc
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/tools/misc')
-rw-r--r--pkgs/tools/misc/autojump/default.nix3
-rw-r--r--pkgs/tools/misc/autorandr/default.nix21
-rw-r--r--pkgs/tools/misc/bcunit/default.nix4
-rw-r--r--pkgs/tools/misc/cloc/default.nix14
-rw-r--r--pkgs/tools/misc/ddccontrol/default.nix21
-rw-r--r--pkgs/tools/misc/edid-decode/default.nix26
-rw-r--r--pkgs/tools/misc/fd/default.nix9
-rw-r--r--pkgs/tools/misc/figlet/default.nix17
-rw-r--r--pkgs/tools/misc/findutils/default.nix1
-rw-r--r--pkgs/tools/misc/geteltorito/default.nix2
-rw-r--r--pkgs/tools/misc/hyperfine/default.nix25
-rw-r--r--pkgs/tools/misc/ipxe/default.nix8
-rw-r--r--pkgs/tools/misc/less/default.nix4
-rw-r--r--pkgs/tools/misc/man-db/default.nix20
-rw-r--r--pkgs/tools/misc/massren/default.nix22
-rw-r--r--pkgs/tools/misc/ministat/default.nix31
-rw-r--r--pkgs/tools/misc/mktorrent/default.nix2
-rw-r--r--pkgs/tools/misc/mongodb-tools/default.nix11
-rw-r--r--pkgs/tools/misc/mongodb-tools/deps.nix182
-rw-r--r--pkgs/tools/misc/mprime/default.nix21
-rw-r--r--pkgs/tools/misc/mprime/makefile.patch47
-rw-r--r--pkgs/tools/misc/otfcc/default.nix4
-rw-r--r--pkgs/tools/misc/papis/default.nix44
-rw-r--r--pkgs/tools/misc/plotinus/default.nix44
-rw-r--r--pkgs/tools/misc/rename/default.nix18
-rw-r--r--pkgs/tools/misc/roundup/default.nix38
-rw-r--r--pkgs/tools/misc/screen/default.nix7
-rw-r--r--pkgs/tools/misc/screenfetch/default.nix65
-rw-r--r--pkgs/tools/misc/smenu/default.nix4
-rw-r--r--pkgs/tools/misc/ultrastar-creator/default.nix2
-rw-r--r--pkgs/tools/misc/ultrastar-manager/default.nix2
-rw-r--r--pkgs/tools/misc/uudeview/default.nix24
-rw-r--r--pkgs/tools/misc/vdirsyncer/default.nix4
-rw-r--r--pkgs/tools/misc/watchexec/default.nix25
-rw-r--r--pkgs/tools/misc/yle-dl/default.nix4
-rw-r--r--pkgs/tools/misc/youtube-dl/default.nix4
-rw-r--r--pkgs/tools/misc/zsh-autoenv/default.nix40
37 files changed, 516 insertions, 304 deletions
diff --git a/pkgs/tools/misc/autojump/default.nix b/pkgs/tools/misc/autojump/default.nix
index 817510bfb761..ba38a55dda02 100644
--- a/pkgs/tools/misc/autojump/default.nix
+++ b/pkgs/tools/misc/autojump/default.nix
@@ -22,6 +22,9 @@ in
       mkdir -p "$out/etc/bash_completion.d"
       cp -v $out/share/autojump/autojump.bash "$out/etc/bash_completion.d"
 
+      mkdir -p $out/share/fish/vendor_completions.d/
+      cp -v $out/share/autojump/autojump.fish "$out/share/fish/vendor_completions.d/autojump.fish"
+
       cat <<SCRIPT > $out/bin/autojump-share
       #!/bin/sh
       # Run this script to find the autojump shared folder where all the shell
diff --git a/pkgs/tools/misc/autorandr/default.nix b/pkgs/tools/misc/autorandr/default.nix
index 405eb29f6bf9..db2e1fc622fa 100644
--- a/pkgs/tools/misc/autorandr/default.nix
+++ b/pkgs/tools/misc/autorandr/default.nix
@@ -2,19 +2,23 @@
 , python3Packages
 , fetchFromGitHub
 , systemd
-, xrandr
-, makeWrapper }:
+, xrandr }:
 
 let
   python = python3Packages.python;
-  wrapPython = python3Packages.wrapPython;
-  version = "1.1";
+  version = "1.4";
 in
   stdenv.mkDerivation {
     name = "autorandr-${version}";
 
     buildInputs = [ python ];
-    nativeBuildInputs = [ makeWrapper ];
+
+    # no wrapper, as autorandr --batch does os.environ.clear()
+    buildPhase = ''
+      substituteInPlace autorandr.py \
+        --replace 'os.popen("xrandr' 'os.popen("${xrandr}/bin/xrandr' \
+        --replace '["xrandr"]' '["${xrandr}/bin/xrandr"]'
+    '';
 
     installPhase = ''
       runHook preInstall
@@ -40,16 +44,11 @@ in
       runHook postInstall
     '';
 
-    postFixup = ''
-      wrapProgram $out/bin/autorandr \
-        --prefix PATH : ${xrandr}/bin
-    '';
-
     src = fetchFromGitHub {
       owner = "phillipberndt";
       repo = "autorandr";
       rev = "${version}";
-      sha256 = "05jlzxlrdyd4j90srr71fv91c2hf32diw40n9rmybgcdvy45kygd";
+      sha256 = "08i71r221ilc8k1c59w89g3iq5m7zwhnjjzapavhqxlr8y9dcpf5";
     };
 
     meta = {
diff --git a/pkgs/tools/misc/bcunit/default.nix b/pkgs/tools/misc/bcunit/default.nix
index b1ca28a7ca9d..1c681d4986d7 100644
--- a/pkgs/tools/misc/bcunit/default.nix
+++ b/pkgs/tools/misc/bcunit/default.nix
@@ -2,13 +2,13 @@
 stdenv.mkDerivation rec {
   name = "${baseName}-${version}";
   baseName = "bcunit";
-  version = "3.0";
+  version = "3.0.2";
   buildInputs = [cmake];
   src = fetchFromGitHub {
     owner = "BelledonneCommunications";
     repo = "${baseName}";
     rev = "${version}";
-    sha256 = "1kdq9w8i3nypfz7d43rmv1csqrqpip9p8xfa7vyp52aqkmhrby9l";
+    sha256 = "063yl7kxkix76r49qrj0h1qpz2p538d1yw8aih0x4i47g35k00y7";
   };
 
   meta = {
diff --git a/pkgs/tools/misc/cloc/default.nix b/pkgs/tools/misc/cloc/default.nix
index a1c04f06d144..97c0251d9d64 100644
--- a/pkgs/tools/misc/cloc/default.nix
+++ b/pkgs/tools/misc/cloc/default.nix
@@ -1,21 +1,25 @@
-{ stdenv, fetchFromGitHub, makeWrapper, perl, AlgorithmDiff, RegexpCommon }:
+{ stdenv, fetchFromGitHub, makeWrapper, perl
+, AlgorithmDiff, ParallelForkManager, RegexpCommon
+}:
 
 stdenv.mkDerivation rec {
   name = "cloc-${version}";
-  version = "1.74";
+  version = "1.76";
 
   src = fetchFromGitHub {
     owner = "AlDanial";
     repo = "cloc";
-    rev = version;
-    sha256 = "1ihma4f6f92jp1mvzr4rjrgyh9m5wzrlxngaxfn7g0a8r2kyi65b";
+    rev = "v${version}";
+    sha256 = "03z4ar959ximsddd92zchi013lh82ganzisk309y3b09q10hl9k7";
   };
 
   setSourceRoot = ''
     sourceRoot=$(echo */Unix)
   '';
 
-  buildInputs = [ makeWrapper perl AlgorithmDiff RegexpCommon ];
+  buildInputs = [
+    makeWrapper perl AlgorithmDiff ParallelForkManager RegexpCommon
+  ];
 
   makeFlags = [ "prefix=" "DESTDIR=$(out)" "INSTALL=install" ];
 
diff --git a/pkgs/tools/misc/ddccontrol/default.nix b/pkgs/tools/misc/ddccontrol/default.nix
index 45995f02c689..b03a286d2022 100644
--- a/pkgs/tools/misc/ddccontrol/default.nix
+++ b/pkgs/tools/misc/ddccontrol/default.nix
@@ -1,9 +1,10 @@
 { stdenv, fetchurl, autoreconfHook, intltool, perl, perlPackages, libxml2
 , pciutils, pkgconfig, gtk2, ddccontrol-db
+, makeDesktopItem
 }:
 
 let version = "0.4.2"; in
-stdenv.mkDerivation {
+stdenv.mkDerivation rec {
   name = "ddccontrol-${version}";
 
   src = fetchurl {
@@ -32,6 +33,24 @@ stdenv.mkDerivation {
       sed -e "s/chmod 4711/chmod 0711/" -i src/ddcpci/Makefile*
   '';
 
+  postInstall = ''
+    mkdir -p $out/share/applications/
+    cp $desktopItem/share/applications/* $out/share/applications/
+    for entry in $out/share/applications/*.desktop; do
+      substituteAllInPlace $entry
+    done
+  '';
+
+  desktopItem = makeDesktopItem {
+    name = "gddccontrol";
+    desktopName = "gddccontrol";
+    genericName = "DDC/CI control";
+    comment = meta.description;
+    exec = "@out@/bin/gddccontrol";
+    icon = "gddccontrol";
+    categories = "Settings;HardwareSettings;";
+  };
+
   meta = with stdenv.lib; {
     description = "A program used to control monitor parameters by software";
     homepage = http://ddccontrol.sourceforge.net/;
diff --git a/pkgs/tools/misc/edid-decode/default.nix b/pkgs/tools/misc/edid-decode/default.nix
new file mode 100644
index 000000000000..e4968b12e6cc
--- /dev/null
+++ b/pkgs/tools/misc/edid-decode/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchgit }:
+let
+  version = "2017-09-18";
+in stdenv.mkDerivation rec {
+  name = "edid-decode-unstable-${version}";
+
+  src = fetchgit {
+    url = "git://anongit.freedesktop.org/xorg/app/edid-decode";
+    rev = "f56f329ed23a25d002352dedba1e8f092a47286f";
+    sha256 = "1qzaq342dsdid0d99y7kj60p6bzgp2zjsmspyckddc68mmz4cs9n";
+  };
+
+  installPhase = ''
+    mkdir -p $out/bin
+    cp edid-decode $out/bin
+  '';
+
+  meta = {
+    description = "EDID decoder and conformance tester";
+    homepage = http://cgit.freedesktop.org/xorg/app/edid-decode/;
+    license = stdenv.lib.licenses.mit;
+    maintainers = [ stdenv.lib.maintainers.chiiruno ];
+    platforms = stdenv.lib.platforms.all;
+  };
+}
+
diff --git a/pkgs/tools/misc/fd/default.nix b/pkgs/tools/misc/fd/default.nix
index 2681d14665cb..3c8262068693 100644
--- a/pkgs/tools/misc/fd/default.nix
+++ b/pkgs/tools/misc/fd/default.nix
@@ -2,13 +2,13 @@
 
 rustPlatform.buildRustPackage rec {
   name = "fd-${version}";
-  version = "6.2.0";
+  version = "6.3.0";
 
   src = fetchFromGitHub {
     owner = "sharkdp";
     repo = "fd";
     rev = "v${version}";
-    sha256 = "1l1p7jlrryd54jwwrwgvs4njr3r59m8xsh31z7db0bzpw3dk7n5k";
+    sha256 = "1q666k7rssjd2cbkm8bm2gsn5shlkh756qpam53kibi5ahrwa7dc";
   };
 
   cargoSha256 = "1dikix9d46f0ydi81ray2vdvsy6y326w8ql6c89zx0p9cjm8m83r";
@@ -17,9 +17,9 @@ rustPlatform.buildRustPackage rec {
     mkdir -p "$out/man/man1"
     cp "$src/doc/fd.1" "$out/man/man1"
 
-    mkdir -p "$out/share/"{bash-completion/completions,fish/completions,zsh/site-functions}
+    mkdir -p "$out/share/"{bash-completion/completions,fish/vendor_completions.d,zsh/site-functions}
     cp target/release/build/fd-find-*/out/fd.bash "$out/share/bash-completion/completions/"
-    cp target/release/build/fd-find-*/out/fd.fish "$out/share/fish/completions/"
+    cp target/release/build/fd-find-*/out/fd.fish "$out/share/fish/vendor_completions.d/"
     cp target/release/build/fd-find-*/out/_fd "$out/share/zsh/site-functions/"
   '';
 
@@ -33,6 +33,7 @@ rustPlatform.buildRustPackage rec {
     '';
     homepage = "https://github.com/sharkdp/fd";
     license = with licenses; [ asl20 /* or */ mit ];
+    maintainers = with maintainers; [ dywedir ];
     platforms = platforms.all;
   };
 }
diff --git a/pkgs/tools/misc/figlet/default.nix b/pkgs/tools/misc/figlet/default.nix
index f68ae1ec2455..86434847b4a2 100644
--- a/pkgs/tools/misc/figlet/default.nix
+++ b/pkgs/tools/misc/figlet/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl }:
+{ stdenv, fetchurl, fetchpatch }:
 
 stdenv.mkDerivation {
   name = "figlet-2.2.5";
@@ -9,12 +9,17 @@ stdenv.mkDerivation {
     sha256 = "0za1ax15x7myjl8jz271ybly8ln9kb9zhm1gf6rdlxzhs07w925z";
   };
 
-  installPhase = "make prefix=$out install";
+  patches = [
+    (fetchpatch {
+      url = https://git.alpinelinux.org/cgit/aports/plain/main/figlet/musl-fix-cplusplus-decls.patch?h=3.4-stable&id=71776c73a6f04b6f671430f702bcd40b29d48399;
+      name = "musl-fix-cplusplus-decls.patch";
+      sha256 = "1720zgrfk9makznqkbjrnlxm7nnhk6zx7g458fv53337n3g3zn7j";
+    })
+  ];
 
-  preConfigure = ''
-    mkdir -p $out/{man/man6,bin}
-    makeFlags="DESTDIR=$out/bin MANDIR=$out/man/man6 DEFAULTFONTDIR=$out/share/figlet CC=cc LD=cc"
-  '';
+  makeFlags = [ "prefix=$(out)" "CC:=$(CC)" "LD:=$(CC)" ];
+
+  doCheck = true;
 
   meta = {
     description = "Program for making large letters out of ordinary text";
diff --git a/pkgs/tools/misc/findutils/default.nix b/pkgs/tools/misc/findutils/default.nix
index 4eef3f7a9d59..f79720289bf5 100644
--- a/pkgs/tools/misc/findutils/default.nix
+++ b/pkgs/tools/misc/findutils/default.nix
@@ -21,6 +21,7 @@ stdenv.mkDerivation rec {
   doCheck
     =  !hostPlatform.isDarwin
     && !(hostPlatform.libc == "glibc" && hostPlatform.isi686)
+    && (hostPlatform.libc != "musl")
     && hostPlatform == buildPlatform;
 
   outputs = [ "out" "info" ];
diff --git a/pkgs/tools/misc/geteltorito/default.nix b/pkgs/tools/misc/geteltorito/default.nix
index 7336665594a7..b95c7179141d 100644
--- a/pkgs/tools/misc/geteltorito/default.nix
+++ b/pkgs/tools/misc/geteltorito/default.nix
@@ -41,7 +41,7 @@ stdenv.mkDerivation rec {
   meta = with stdenv.lib; {
     description = "Extract the initial/default boot image from a CD image if existent";
     homepage = https://userpages.uni-koblenz.de/~krienke/ftp/noarch/geteltorito/;
-    maintainers = [ maintainers.profpatsch ];
+    maintainers = [ maintainers.Profpatsch ];
     license = licenses.gpl2;
   };
 
diff --git a/pkgs/tools/misc/hyperfine/default.nix b/pkgs/tools/misc/hyperfine/default.nix
new file mode 100644
index 000000000000..322151739843
--- /dev/null
+++ b/pkgs/tools/misc/hyperfine/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchFromGitHub, rustPlatform }:
+
+with rustPlatform;
+
+buildRustPackage rec {
+  name = "hyperfine-${version}";
+  version = "0.4.0";
+
+  src = fetchFromGitHub {
+    owner  = "sharkdp";
+    repo   = "hyperfine";
+    rev    = "refs/tags/v${version}";
+    sha256 = "1ynqyacbx0x971lyd1k406asms58bc7vzl8gca3sg34rx0hx3wzi";
+  };
+
+  cargoSha256 = "109yv1618bi19vh1jjv2ki06mafhcrv35a3a1zsr34kg3gsjv0rb";
+
+  meta = with stdenv.lib; {
+    description = "Command-line benchmarking tool";
+    homepage    = https://github.com/sharkdp/hyperfine;
+    license     = with licenses; [ asl20 /* or */ mit ];
+    maintainers = [ maintainers.thoughtpolice ];
+    platforms   = platforms.all;
+  };
+}
diff --git a/pkgs/tools/misc/ipxe/default.nix b/pkgs/tools/misc/ipxe/default.nix
index 2d36ad17eec7..786b3992a5cc 100644
--- a/pkgs/tools/misc/ipxe/default.nix
+++ b/pkgs/tools/misc/ipxe/default.nix
@@ -1,4 +1,6 @@
-{ stdenv, fetchgit, perl, cdrkit, syslinux, xz, openssl }:
+{ stdenv, lib, fetchgit, perl, cdrkit, syslinux, xz, openssl
+, embedScript ? null
+}:
 
 let
   date = "20170922";
@@ -24,7 +26,7 @@ stdenv.mkDerivation {
   makeFlags =
     [ "ECHO_E_BIN_ECHO=echo" "ECHO_E_BIN_ECHO_E=echo" # No /bin/echo here.
       "ISOLINUX_BIN_LIST=${syslinux}/share/syslinux/isolinux.bin"
-    ];
+    ] ++ lib.optional (embedScript != null) "EMBED=${embedScript}";
 
 
   enabledOptions = [ "DOWNLOAD_PROTO_HTTPS" ];
@@ -46,6 +48,8 @@ stdenv.mkDerivation {
     ln -s undionly.kpxe $out/undionly.kpxe.0
   '';
 
+  enableParallelBuilding = true;
+
   meta = with stdenv.lib;
     { description = "Network boot firmware";
       homepage = http://ipxe.org/;
diff --git a/pkgs/tools/misc/less/default.nix b/pkgs/tools/misc/less/default.nix
index 2907af43a296..57eeb39f5431 100644
--- a/pkgs/tools/misc/less/default.nix
+++ b/pkgs/tools/misc/less/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, ncurses, lessSecure ? false }:
 
 stdenv.mkDerivation rec {
-  name = "less-529";
+  name = "less-530";
 
   src = fetchurl {
     url = "http://www.greenwoodsoftware.com/less/${name}.tar.gz";
-    sha256 = "02wspzv90cki8936m50qxk0vrribvwwqlva21nyvfx41qga2r96v";
+    sha256 = "1qpj2z38c53qmvqn8jaa0kq26q989cfbfjj4y0s6z17l1amr2gsh";
   };
 
   configureFlags = [ "--sysconfdir=/etc" ] # Look for ‘sysless’ in /etc.
diff --git a/pkgs/tools/misc/man-db/default.nix b/pkgs/tools/misc/man-db/default.nix
index d0cb9a223366..eadb736aeeb2 100644
--- a/pkgs/tools/misc/man-db/default.nix
+++ b/pkgs/tools/misc/man-db/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, pkgconfig, libpipeline, db, groff, makeWrapper }:
+{ stdenv, fetchurl, pkgconfig, libpipeline, db, groff, libiconv, makeWrapper, buildPackages }:
 
 stdenv.mkDerivation rec {
   name = "man-db-2.7.5";
@@ -11,8 +11,10 @@ stdenv.mkDerivation rec {
   outputs = [ "out" "doc" ];
   outputMan = "out"; # users will want `man man` to work
 
-  nativeBuildInputs = [ pkgconfig makeWrapper ];
-  buildInputs = [ libpipeline db groff ];
+  nativeBuildInputs = [ pkgconfig makeWrapper groff ]
+    ++ stdenv.lib.optionals doCheck checkInputs;
+  buildInputs = [ libpipeline db groff ]; # (Yes, 'groff' is both native and build input)
+  checkInputs = [ libiconv /* for 'iconv' binary */ ];
 
   postPatch = ''
     substituteInPlace src/man_db.conf.in \
@@ -41,6 +43,18 @@ stdenv.mkDerivation rec {
     done
   '';
 
+  postFixup = stdenv.lib.optionalString (buildPackages.groff != groff) ''
+    # Check to make sure none of the outputs depend on build-time-only groff:
+    for outName in $outputs; do
+      out=''${!outName}
+      echo "Checking $outName(=$out) for references to build-time groff..."
+      if grep -r '${buildPackages.groff}' $out; then
+        echo "Found an erroneous dependency on groff ^^^" >&2
+        exit 1
+      fi
+    done
+  '';
+
   enableParallelBuilding = true;
 
   doCheck = true;
diff --git a/pkgs/tools/misc/massren/default.nix b/pkgs/tools/misc/massren/default.nix
new file mode 100644
index 000000000000..085e6f41a091
--- /dev/null
+++ b/pkgs/tools/misc/massren/default.nix
@@ -0,0 +1,22 @@
+{ stdenv, lib, buildGoPackage, fetchFromGitHub }:
+
+buildGoPackage rec {
+  name = "massren-${version}";
+  version = "1.5.4";
+
+  src = fetchFromGitHub {
+    owner = "laurent22";
+    repo = "massren";
+    rev = "v${version}";
+    sha256 = "1bn6qy30kpxi3rkr3bplsc80xnhj0hgfl0qaczbg3zmykfmsl3bl";
+  };
+
+  goPackagePath = "github.com/laurent22/massren";
+
+  meta = with lib; {
+    description = "Easily rename multiple files using your text editor";
+    license = licenses.mit;
+    homepage = https://github.com/laurent22/massren;
+    maintainers = with maintainers; [ andrew-d ];
+  };
+}
diff --git a/pkgs/tools/misc/ministat/default.nix b/pkgs/tools/misc/ministat/default.nix
new file mode 100644
index 000000000000..7b9549a80fea
--- /dev/null
+++ b/pkgs/tools/misc/ministat/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchgit }:
+
+stdenv.mkDerivation rec {
+  name = "ministat-${version}";
+  version = "20150715-1";
+
+  src = fetchgit {
+    url = "https://git.decadent.org.uk/git/ministat.git";
+    rev = "refs/tags/debian/${version}";
+    sha256 = "1p4g0yqgsy4hiqhr8gqp8d38zxzrss5qz70s0bw3i2pg4w668k6f";
+  };
+
+  postPatch = ''
+    patch -p1 < debian/patches/fix-ctype-usage.patch
+    patch -p1 < debian/patches/not-bsd
+  '';
+
+  installPhase = ''
+    mkdir -p $out/bin $out/share/man/man1
+    cp ministat $out/bin
+    cp ministat.1 $out/share/man/man1/
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Simple tool for statistical comparison of data sets";
+    homepage = https://git.decadent.org.uk/gitweb/?p=ministat.git;
+    license = licenses.beerware;
+    maintainers = [ maintainers.dezgeg ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/tools/misc/mktorrent/default.nix b/pkgs/tools/misc/mktorrent/default.nix
index 0e1d3b8f49f3..6f56267ebf72 100644
--- a/pkgs/tools/misc/mktorrent/default.nix
+++ b/pkgs/tools/misc/mktorrent/default.nix
@@ -25,6 +25,6 @@ stdenv.mkDerivation rec {
     homepage = http://mktorrent.sourceforge.net/;
     license = stdenv.lib.licenses.gpl2Plus;
     description = "Command line utility to create BitTorrent metainfo files";
-    maintainers = with stdenv.lib.maintainers; [viric profpatsch];
+    maintainers = with stdenv.lib.maintainers; [viric Profpatsch];
   };
 }
diff --git a/pkgs/tools/misc/mongodb-tools/default.nix b/pkgs/tools/misc/mongodb-tools/default.nix
index 7e24c955a806..a728450d76e5 100644
--- a/pkgs/tools/misc/mongodb-tools/default.nix
+++ b/pkgs/tools/misc/mongodb-tools/default.nix
@@ -3,7 +3,7 @@
 let
   tools = [
     "bsondump" "mongodump" "mongoexport" "mongofiles" "mongoimport"
-    "mongooplog" "mongorestore" "mongostat" "mongotop"
+    "mongoreplay" "mongorestore" "mongostat" "mongotop"
   ];
 in
 
@@ -11,7 +11,7 @@ with stdenv.lib;
 
 buildGoPackage rec {
   name = "mongo-tools-${version}";
-  version = "3.5.13";
+  version = "3.7.2";
   rev = "r${version}";
 
   goPackagePath = "github.com/mongodb/mongo-tools";
@@ -21,17 +21,18 @@ buildGoPackage rec {
     inherit rev;
     owner = "mongodb";
     repo = "mongo-tools";
-    sha256 = "00klm4pyx5k39nn4pmfrpnkqxdhbzm7lprgwxszpirzrarh2g164";
+    sha256 = "1y5hd4qw7422sqkj8vmy4agscvin3ck54r515bjrzn69iw73nhfl";
   };
 
-  goDeps = ./deps.nix;
-
   nativeBuildInputs = [ pkgconfig ];
   buildInputs = [ openssl_1_0_2 libpcap ];
 
   # Mongodb incorrectly names all of their binaries main
   # Let's work around this with our own installer
   buildPhase = ''
+    # move vendored codes so nixpkgs go builder could find it
+    mv go/src/github.com/mongodb/mongo-tools/vendor/src/* go/src/github.com/mongodb/mongo-tools/vendor/
+
     runHook preBuild
     ${stdenv.lib.concatMapStrings (t: ''
       go build -o "$bin/bin/${t}" -tags ssl -ldflags "-s -w" $goPackagePath/${t}/main
diff --git a/pkgs/tools/misc/mongodb-tools/deps.nix b/pkgs/tools/misc/mongodb-tools/deps.nix
deleted file mode 100644
index 30de006db6f7..000000000000
--- a/pkgs/tools/misc/mongodb-tools/deps.nix
+++ /dev/null
@@ -1,182 +0,0 @@
-[
-  {
-    goPackagePath = "golang.org/x/sys";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/sys";
-      rev = "314a259e304ff91bd6985da2a7149bbf91237993";
-      sha256 = "0vya62c3kmhmqx6awlxx8hc84987xkym9rhs0q28vlhwk9kczdaa";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/crypto";
-    fetch = {
-      type = "git";
-      url = "https://github.com/golang/crypto";
-      rev = "1f22c0103821b9390939b6776727195525381532";
-      sha256 = "1acy12f396sr3lrnbcnym5q72qnlign5bagving41qijzjnc219m";
-    };
-  }
-  {
-    goPackagePath = "github.com/howeyc/gopass";
-    fetch = {
-      type = "git";
-      url = "https://github.com/howeyc/gopass";
-      rev = "bf9dde6d0d2c004a008c27aaee91170c786f6db8";
-      sha256 = "1jxzyfnqi0h1fzlsvlkn10bncic803bfhslyijcxk55mgh297g45";
-    };
-  }
-  {
-    goPackagePath = "gopkg.in/mgo.v2";
-    fetch = {
-      type = "git";
-      url = "https://github.com/10gen/mgo";
-      rev = "39b4000d99037e917f3a3b9d2dcab667a9ef284a";
-      sha256 = "1m0xgd3y32g15fhl204g2caarfi5rn41m8pyym0i2gl3jnv5zw99";
-    };
-  }
-  {
-    goPackagePath = "github.com/google/gopacket";
-    fetch = {
-      type = "git";
-      url = "https://github.com/google/gopacket";
-      rev = "93b782132903d1846aab74cb1f62e6138564949f";
-      sha256 = "0l5m5a8dnqbkhphyfq7anj5zv59s74q2l7i6w9r7xwysfiqyq335";
-    };
-  }
-  {
-    goPackagePath = "github.com/patrickmn/go-cache";
-    fetch = {
-      type = "git";
-      url = "https://github.com/patrickmn/go-cache";
-      rev = "1881a9bccb818787f68c52bfba648c6cf34c34fa";
-      sha256 = "1nd0kqijx6mrxb8wlh20bx73mwj0fqzla2sr68y6j6lz3fsy1fw2";
-    };
-  }
-  {
-    goPackagePath = "github.com/spacemonkeygo/openssl";
-    fetch = {
-      type = "git";
-      url = "https://github.com/10gen/openssl";
-      rev = "2692b9f6fa95e72c75f8d9ba76e49c5dfd2cf8e4";
-      sha256 = "16x2mx51977jrqw8d9hqhqmx892v2qf1k5xb01hhfklh58f527k2";
-    };
-  }
-  {
-    goPackagePath = "github.com/jtolds/gls";
-    fetch = {
-      type = "git";
-      url = "https://github.com/jtolds/gls";
-      rev = "8ddce2a84170772b95dd5d576c48d517b22cac63";
-      sha256 = "11rp9wbzkd71640rq0nwmgsddskx3qac8wzqz71ksdb7ixjj5fmj";
-    };
-  }
-  {
-    goPackagePath = "github.com/spacemonkeygo/spacelog";
-    fetch = {
-      type = "git";
-      url = "https://github.com/spacemonkeygo/spacelog";
-      rev = "f936fb050dc6b5fe4a96b485a6f069e8bdc59aeb";
-      sha256 = "00an6zlhjk5l0vk1zjzshhswsd0h4syi48n50hv0fcnbmpxc5hv2";
-    };
-  }
-  {
-    goPackagePath = "gopkg.in/tomb.v2";
-    fetch = {
-      type = "git";
-      url = "https://gopkg.in/tomb.v2";
-      rev = "14b3d72120e8d10ea6e6b7f87f7175734b1faab8";
-      sha256 = "1nza31jvkpka5431c4bdbirvjdy36b1b55sbzljqhqih25jrcjx5";
-    };
-  }
-  {
-    goPackagePath = "github.com/jtolds/gls";
-    fetch = {
-      type = "git";
-      url = "https://github.com/jtolds/gls";
-      rev = "8ddce2a84170772b95dd5d576c48d517b22cac63";
-      sha256 = "11rp9wbzkd71640rq0nwmgsddskx3qac8wzqz71ksdb7ixjj5fmj";
-    };
-  }
-  {
-    goPackagePath = "github.com/smartystreets/assertions";
-    fetch = {
-      type = "git";
-      url = "https://github.com/smartystreets/assertions";
-      rev = "287b4346dc4e71a038c346375a9d572453bc469b";
-      sha256 = "1nw9j9aircra68lbkp5bq4l8ayq4g3fvbb2x8qd2hg0vwgn5yaij";
-    };
-  }
-  {
-    goPackagePath = "github.com/smartystreets/goconvey";
-    fetch = {
-      type = "git";
-      url = "https://github.com/smartystreets/goconvey";
-      rev = "bf58a9a1291224109919756b4dcc469c670cc7e4";
-      sha256 = "1k8k6vvlpl5a19dbrywxjmcia36macjbajx2hb6ci64rdfyf5kz5";
-    };
-  }
-  {
-    goPackagePath = "github.com/jacobsa/oglematchers";
-    fetch = {
-      type = "git";
-      url = "https://github.com/jacobsa/oglematchers";
-      rev = "3ecefc49db07722beca986d9bb71ddd026b133f0";
-      sha256 = "0vrk5sfs1ymkg0gv5n5dn9x0kqiaw8gaapljj8q75mgrr1p5149y";
-    };
-  }
-  {
-    goPackagePath = "github.com/3rf/mongo-lint";
-    fetch = {
-      type = "git";
-      url = "https://github.com/3rf/mongo-lint";
-      rev = "3550fdcf1f43b89aaeabaa4559eaae6dc4407e42";
-      sha256 = "19b60a3i6kzssd15dg57y4bg49sw41idrsjdi8vr4j5lr5d7gviv";
-    };
-  }
-  {
-    goPackagePath = "github.com/mattn/go-runewidth";
-    fetch = {
-      type = "git";
-      url = "https://github.com/mattn/go-runewidth";
-      rev = "d6bea18f789704b5f83375793155289da36a3c7f";
-      sha256 = "1hnigpn7rjbwd1ircxkyx9hvi0xmxr32b2jdy2jzw6b3jmcnz1fs";
-    };
-  }
-  {
-    goPackagePath = "github.com/10gen/escaper";
-    fetch = {
-      type = "git";
-      url = "https://github.com/10gen/escaper";
-      rev = "17fe61c658dcbdcbf246c783f4f7dc97efde3a8b";
-      sha256 = "1iw86lg8ad5gdm46ryf4v431ix834l52lrjvcahq3c4dw1ylnbvl";
-    };
-  }
-  {
-    goPackagePath = "github.com/golang/snappy";
-    fetch = {
-      type = "git";
-      url = "https://github.com/golang/snappy";
-      rev = "d9eb7a3d35ec988b8585d4a0068e462c27d28380";
-      sha256 = "0wynarlr1y8sm9y9l29pm9dgflxriiialpwn01066snzjxnpmbyn";
-    };
-  }
-  {
-    goPackagePath = "github.com/nsf/termbox-go";
-    fetch = {
-      type = "git";
-      url = "https://github.com/nsf/termbox-go";
-      rev = "0723e7c3d0a317dea811f0fbe4d6edd81908c971";
-      sha256 = "1ak35nhlgjpbpnh7v9qvjyfsq52liz3niqfqva76p7a68pblwbr7";
-    };
-  }
-  {
-    goPackagePath = "github.com/jessevdk/go-flags";
-    fetch = {
-      type = "git";
-      url = "https://github.com/jessevdk/go-flags";
-      rev = "97448c91aac742cbca3d020b3e769013a420a06f";
-      sha256 = "0fv3yxvq8m3639a279hq4pf0c52ngqfl5n1vklcfympndrb7zjzj";
-    };
-  }
-]
diff --git a/pkgs/tools/misc/mprime/default.nix b/pkgs/tools/misc/mprime/default.nix
index 3ef039507d4e..556d21ee2fc7 100644
--- a/pkgs/tools/misc/mprime/default.nix
+++ b/pkgs/tools/misc/mprime/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, unzip, pkgconfig, curl }:
+{ stdenv, lib, fetchurl, unzip, curl, hwloc, gmp }:
 
 let
   srcDir =
@@ -14,25 +14,24 @@ let
     else throwSystem;
 in
 
-stdenv.mkDerivation {
-  name = "mprime-28.7";
+stdenv.mkDerivation rec {
+  name = "mprime-${version}";
+  version = "29.4b7";
 
   src = fetchurl {
-    url = http://www.mersenne.org/ftp_root/gimps/p95v287.source.zip;
-    sha256 = "1k3gxhs3g8hfghzpmidhcwpwyayj8r83v8zjai1z4xgsql4jwby1";
+    url = "http://www.mersenne.org/ftp_root/gimps/p95v${lib.replaceStrings ["."] [""] version}.source.zip";
+    sha256 = "0idaqm46m4yis7vl014scx57lpccvjbnyy79gmj8caxghyajws0m";
   };
 
-  unpackCmd = "unzip -d src -q $curSrc";
+  unpackCmd = "unzip -d src -q $curSrc || true";
 
-  nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [ unzip curl ];
+  nativeBuildInputs = [ unzip ];
+  buildInputs = [ curl hwloc gmp ];
 
   patches = [ ./makefile.patch ];
 
   buildPhase = ''
     make -C gwnum -f ${gwnum}
-    echo 'override CFLAGS := $(CFLAGS)' $(pkg-config --cflags libcurl) >> ${srcDir}/makefile
-    echo 'override LIBS := $(LIBS)' $(pkg-config --libs libcurl) >> ${srcDir}/makefile
     make -C ${srcDir}
   '';
 
@@ -48,7 +47,7 @@ stdenv.mkDerivation {
       client. It is identical to Prime95 in functionality, except it lacks a
       graphical user interface.
     '';
-    homepage = http://www.mersenne.org/;
+    homepage = "http://www.mersenne.org/";
     # Unfree, because of a license requirement to share prize money if you find
     # a suitable prime. http://www.mersenne.org/legal/#EULA
     license = stdenv.lib.licenses.unfree;
diff --git a/pkgs/tools/misc/mprime/makefile.patch b/pkgs/tools/misc/mprime/makefile.patch
index 7f758af7b7c4..6ed9cf69384d 100644
--- a/pkgs/tools/misc/mprime/makefile.patch
+++ b/pkgs/tools/misc/mprime/makefile.patch
@@ -1,46 +1,41 @@
-diff -ru orig/linux/makefile patched/linux/makefile
---- orig/linux/makefile	2015-08-09 21:06:18.000000000 +0100
-+++ patched/linux/makefile	2016-02-16 16:25:45.988662423 +0000
-@@ -25,8 +25,8 @@
+diff -dur src.old/linux/makefile src.new/linux/makefile
+--- src.old/linux/makefile	2018-01-04 20:49:00.000000000 +0300
++++ src.new/linux/makefile	2018-02-15 12:32:02.913011604 +0300
+@@ -28,8 +28,8 @@
  CPP = g++
  CPPFLAGS = -I.. -I../gwnum -O2 -march=i486 -malign-double
  
 -LFLAGS = -Wl,-M -Wl,-L/usr/local/lib
--LIBS = ../gwnum/gwnum.a ../gwnum/gwnum.ld -lm -lpthread -Wl,-Bstatic -lcurl -Wl,-Bdynamic -lrt -lstdc++ -ldl
+-LIBS = ../gwnum/gwnum.a ../gwnum/gwnum.ld -lm -lpthread -Wl,-Bstatic -lhwloc -Wl,-Bstatic -lcurl -Wl,-Bdynamic -lrt -lstdc++ -ldl -lgmp
 +LFLAGS =
-+LIBS = ../gwnum/gwnum.a ../gwnum/gwnum.ld -lm -lpthread -lrt -lstdc++ -ldl
++LIBS = ../gwnum/gwnum.a ../gwnum/gwnum.ld -lm -lpthread -lhwloc -lcurl -lrt -lstdc++ -ldl -lgmp
  
  FACTOROBJ = factor32.o
  LINUXOBJS = prime.o menu.o
-diff -ru orig/linux64/makefile patched/linux64/makefile
---- orig/linux64/makefile	2015-08-09 21:06:20.000000000 +0100
-+++ patched/linux64/makefile	2016-02-16 16:25:57.076531585 +0000
-@@ -13,13 +13,13 @@
- #	LIBS = ../gwnum/gwnum.a ../gwnum/gwnum.ld -lm -lpthread -Wl,-Bstatic $(shell pkg-config --static --libs libcurl) -lstdc++ -Wl,-Bdynamic -ldl
- 
- CC = gcc
--CFLAGS = -I.. -I../gwnum -I/usr/local/include -DX86_64 -O2 
-+CFLAGS = -I.. -I../gwnum -I/usr/local/include -DX86_64 -O2
- 
+diff -dur src.old/linux64/makefile src.new/linux64/makefile
+--- src.old/linux64/makefile	2018-01-04 20:49:00.000000000 +0300
++++ src.new/linux64/makefile	2018-02-15 12:32:28.836286995 +0300
+@@ -26,9 +26,9 @@
  CPP = g++
  CPPFLAGS = -I.. -I../gwnum -DX86_64 -O2
  
 -LFLAGS = -Wl,-M -Wl,-L/usr/local/lib
--LIBS = ../gwnum/gwnum.a ../gwnum/gwnum.ld -lm -lpthread -Wl,-Bstatic -lcurl -Wl,-Bdynamic -lrt -lstdc++ -ldl
 +LFLAGS =
-+LIBS = ../gwnum/gwnum.a ../gwnum/gwnum.ld -lm -lpthread -lrt -lstdc++ -ldl
+ #LIBS = ../gwnum/gwnum.a ../gwnum/gwnum.ld -lm -lpthread -Wl,-Bstatic -lhwloc -Wl,-Bstatic -lcurl -Wl,-Bdynamic -lrt -lstdc++ -lz -lxml2 -ldl -lgmp
+-LIBS = ../gwnum/gwnum.a ../gwnum/gwnum.ld -lm -lpthread -Wl,-Bstatic -lhwloc -Wl,-Bstatic -lcurl -Wl,-Bdynamic -lrt -lstdc++ -ldl -lgmp
++LIBS = ../gwnum/gwnum.a ../gwnum/gwnum.ld -lm -lpthread -lhwloc -lcurl -lrt -lstdc++ -ldl -lgmp
  
  FACTOROBJ = factor64.o
  LINUXOBJS = prime.o menu.o
-diff -ru orig/macosx64/makefile patched/macosx64/makefile
---- orig/macosx64/makefile	2015-08-09 21:06:22.000000000 +0100
-+++ patched/macosx64/makefile	2016-02-16 16:19:03.988415925 +0000
-@@ -10,7 +10,7 @@
+diff -dur src.old/macosx64/makefile src.new/macosx64/makefile
+--- src.old/macosx64/makefile	2018-01-04 20:49:02.000000000 +0300
++++ src.new/macosx64/makefile	2018-02-15 12:33:32.401902535 +0300
+@@ -12,7 +12,7 @@
+ CPP = g++
  CPPFLAGS = -I.. -I../gwnum -I../linux -O2 -DX86_64 -DCOMMAND_LINE_MPRIME -m64
  
- LFLAGS = -m64 -Wl,-no_pie
--LIBS   = ../gwnum/amd64/release/gwnum.a -lm -lpthread -lcurl -framework IOKit -framework CoreFoundation -lstdc++
-+LIBS   = ../gwnum/amd64/release/gwnum.a -lm -lpthread -framework IOKit -framework CoreFoundation -lstdc++
+-LFLAGS = -m64 -Wl,-no_pie -L/usr/local/lib
++LFLAGS = -m64 -Wl,-no_pie
+ LIBS   = ../gwnum/amd64/release/gwnum.a -lm -lpthread -lhwloc -lcurl -framework IOKit -framework CoreFoundation -lstdc++ -lgmp
  
  FACTOROBJ = ../prime95/macosx64/factor64.o
- OBJS = prime.o menu.o
diff --git a/pkgs/tools/misc/otfcc/default.nix b/pkgs/tools/misc/otfcc/default.nix
index 8e2ecdcd6bbb..052999033a1e 100644
--- a/pkgs/tools/misc/otfcc/default.nix
+++ b/pkgs/tools/misc/otfcc/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   name = "otfcc-${version}";
-  version = "0.8.6";
+  version = "0.9.6";
 
   src = fetchFromGitHub {
     owner = "caryll";
     repo = "otfcc";
     rev = "v${version}";
-    sha256 = "0yy9awffxxs0cdlf0akld73ndnwmylxvplac4k6j7641m3vk1g8p";
+    sha256 = "1rnjfqqyc6d9nhlh8if9k37wk94mcwz4wf3k239v6idg48nrk10b";
   };
 
   nativeBuildInputs = [ premake5 ninja ];
diff --git a/pkgs/tools/misc/papis/default.nix b/pkgs/tools/misc/papis/default.nix
new file mode 100644
index 000000000000..de69712eb5ee
--- /dev/null
+++ b/pkgs/tools/misc/papis/default.nix
@@ -0,0 +1,44 @@
+{ buildPythonApplication, lib, fetchFromGitHub
+, argcomplete, arxiv2bib, beautifulsoup4, bibtexparser
+, configparser, habanero, papis-python-rofi, pylibgen
+, prompt_toolkit, pyparser, python_magic, pyyaml
+, requests, unidecode, urwid, vobject, tkinter
+, vim
+}:
+
+buildPythonApplication rec {
+  pname = "papis";
+  version = "0.5.2";
+
+  # Missing tests on Pypi
+  src = fetchFromGitHub {
+    owner = "alejandrogallo";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0cw6ajdaknijka3j2bkkkn0bcxqifk825kq0a0rdbbmc6661pgxb";
+  };
+
+  postPatch = "sed -i 's/configparser>=3.0.0/# configparser>=3.0.0/' setup.py";
+
+  propagatedBuildInputs = [
+    argcomplete arxiv2bib beautifulsoup4 bibtexparser
+    configparser habanero papis-python-rofi pylibgen
+    prompt_toolkit pyparser python_magic pyyaml
+    requests unidecode urwid vobject tkinter
+    vim
+  ];
+
+  # Papis tries to create the config folder under $HOME during the tests
+  preCheck = ''
+    mkdir -p check-phase
+    export HOME=$(pwd)/check-phase
+  '';
+
+
+  meta = {
+    description = "Powerful command-line document and bibliography manager";
+    homepage = http://papis.readthedocs.io/en/latest/;
+    license = lib.licenses.gpl3;
+    maintainers = [ lib.maintainers.nico202 ];
+  };
+}
diff --git a/pkgs/tools/misc/plotinus/default.nix b/pkgs/tools/misc/plotinus/default.nix
new file mode 100644
index 000000000000..41913f966534
--- /dev/null
+++ b/pkgs/tools/misc/plotinus/default.nix
@@ -0,0 +1,44 @@
+{ stdenv
+, fetchFromGitHub
+, gettext
+, libxml2
+, pkgconfig
+, gtk3
+, cmake
+, ninja
+, vala
+, wrapGAppsHook }:
+
+stdenv.mkDerivation rec {
+  name = "plotinus-${version}";
+  version = "0.2.0";
+
+  src = fetchFromGitHub {
+    owner = "p-e-w";
+    repo = "plotinus";
+    rev = "v${version}";
+    sha256 = "19k6f6ivg4ab57m62g6fkg85q9sv049snmzq1fyqnqijggwshxfz";
+  };
+
+  nativeBuildInputs = [
+    pkgconfig
+    wrapGAppsHook
+    vala
+    cmake
+    ninja
+    gettext
+    libxml2
+  ];
+  buildInputs = [
+    gtk3
+  ];
+
+  meta = with stdenv.lib; {
+    description = "A searchable command palette in every modern GTK+ application";
+    homepage = https://github.com/p-e-w/plotinus;
+    maintainers = with maintainers; [ samdroid-apps ];
+    platforms = platforms.linux;
+    # No COPYING file, but headers in the source code
+    license = licenses.gpl3;
+  };
+}
diff --git a/pkgs/tools/misc/rename/default.nix b/pkgs/tools/misc/rename/default.nix
new file mode 100644
index 000000000000..e30c2e89349d
--- /dev/null
+++ b/pkgs/tools/misc/rename/default.nix
@@ -0,0 +1,18 @@
+{ stdenv, fetchFromGitHub, buildPerlPackage }:
+
+buildPerlPackage rec {
+  name = "rename-${version}";
+  version = "1.9";
+  src = fetchFromGitHub {
+    owner = "pstray";
+    repo = "rename";
+    rev = "d46f1d0ced25dc5849acb5d5974a3e2e9d97d536";
+    sha256 = "0qahs1cqfaci2hdf1xncrz4k0z5skkfr43apnm3kybs7za33apzw";
+  };
+  meta = with stdenv.lib; {
+    description = "Rename files according to a Perl rewrite expression";
+    homepage = http://search.cpan.org/~pederst/rename-1.9/bin/rename.PL;
+    maintainers = with maintainers; [ mkg ];
+    license = with licenses; [ gpl1Plus ];
+  };
+}
diff --git a/pkgs/tools/misc/roundup/default.nix b/pkgs/tools/misc/roundup/default.nix
new file mode 100644
index 000000000000..e24b1fce06ef
--- /dev/null
+++ b/pkgs/tools/misc/roundup/default.nix
@@ -0,0 +1,38 @@
+{ stdenv, fetchFromGitHub, ronn, shocco }:
+
+stdenv.mkDerivation rec {
+  name = "roundup-${version}";
+  version = "0.0.6";
+
+  src = fetchFromGitHub {
+    owner = "bmizerany";
+    repo = "roundup";
+    rev = "v${version}";
+    sha256 = "0nxaqmbv8mdvq9wcaqxk6k5mr31i68jzxf1wxa6pp7xp4prwdc9z";
+  };
+
+  prePatch = ''
+    # Don't change $PATH
+    substituteInPlace configure --replace PATH= NIRVANA=
+    # There are only man pages in sections 1 and 5 \
+    substituteInPlace Makefile --replace "{1..9}" "1 5"
+  '';
+
+  nativeBuildInputs = [ ronn shocco ];
+
+  installTargets = [ "install" "install-man" ];
+
+  preInstall = ''
+    for i in 1 5; do
+      mkdir -p $out/share/man/man$i
+    done
+  '';
+
+  meta = with stdenv.lib; {
+    description = "A unit testing tool for running test plans which are written in any POSIX shell";
+    homepage = http://bmizerany.github.io/roundup/;
+    license = licenses.mit;
+    maintainers = with maintainers; [ dotlambda ];
+    platforms = platforms.all;
+  };
+}
diff --git a/pkgs/tools/misc/screen/default.nix b/pkgs/tools/misc/screen/default.nix
index 156db640acdf..1753f52ab1b6 100644
--- a/pkgs/tools/misc/screen/default.nix
+++ b/pkgs/tools/misc/screen/default.nix
@@ -16,6 +16,13 @@ stdenv.mkDerivation rec {
     "--enable-colors256"
   ];
 
+  patches = stdenv.lib.optional stdenv.hostPlatform.isMusl
+    (fetchpatch {
+      url = https://gist.githubusercontent.com/yujinakayama/4608863/raw/76b9f89af5e5a2e97d9a0f36aac989fb56cf1447/gistfile1.diff;
+      sha256 = "0f9bf83p8zdxaa1pr75jyf5g8xr3r8kv7cyzzbpraa1q4j15ss1p";
+      stripLen = 1;
+    });
+
   buildInputs = [ ncurses ] ++ stdenv.lib.optional stdenv.isLinux pam
                             ++ stdenv.lib.optional stdenv.isDarwin utmp;
 
diff --git a/pkgs/tools/misc/screenfetch/default.nix b/pkgs/tools/misc/screenfetch/default.nix
index 9ef0c9ebdf7d..a9cd9d75de8e 100644
--- a/pkgs/tools/misc/screenfetch/default.nix
+++ b/pkgs/tools/misc/screenfetch/default.nix
@@ -3,14 +3,30 @@
 , darwin
 }:
 
-stdenv.mkDerivation {
-  name = "screenFetch-2016-10-11";
+let
+  path = lib.makeBinPath ([
+    coreutils gawk gnused findutils
+    gnugrep ncurses bc
+  ] ++ lib.optionals stdenv.isLinux [
+    procps
+    xdpyinfo
+    xprop
+  ] ++ lib.optionals stdenv.isDarwin (with darwin; [
+    adv_cmds
+    DarwinTools
+    system_cmds
+    "/usr" # some commands like defaults is not available to us
+  ]));
+
+in stdenv.mkDerivation rec {
+  name = "screenFetch-${version}";
+  version = "3.8.0";
 
   src = fetchFromGitHub {
-    owner = "KittyKatt";
-    repo = "screenFetch";
-    rev = "89e51f24018c89b3647deb24406a9af3a78bbe99";
-    sha256 = "0i2k261jj2s4sfhav7vbsd362pa0gghw6qhwafhmicmf8hq2a18v";
+    owner  = "KittyKatt";
+    repo   = "screenFetch";
+    rev    = "v${version}";
+    sha256 = "00ibv72cb7cqfpljyzgvajhbp0clqsqliz18nyv83bfy3gkf2qs8";
   };
 
   nativeBuildInputs = [ makeWrapper ];
@@ -18,40 +34,29 @@ stdenv.mkDerivation {
   installPhase = ''
     install -Dm 0755 screenfetch-dev $out/bin/screenfetch
     install -Dm 0644 screenfetch.1 $out/share/man/man1/screenfetch.1
+    install -Dm 0644 -t $out/share/doc/screenfetch CHANGELOG COPYING README.mkdn TODO
 
-    # Fix all of the depedencies of screenfetch
+    # Fix all of the dependencies of screenfetch
     patchShebangs $out/bin/screenfetch
     wrapProgram "$out/bin/screenfetch" \
-      --set PATH ${lib.makeBinPath ([
-        coreutils gawk gnused findutils
-        gnugrep ncurses bc
-      ] ++ lib.optionals stdenv.isLinux [
-        procps
-        xdpyinfo
-        xprop
-      ] ++ lib.optionals stdenv.isDarwin (with darwin; [
-        adv_cmds
-        DarwinTools
-        system_cmds
-        "/usr" # some commands like defaults is not available to us
-      ]))}
+      --prefix PATH : ${path}
   '';
 
   meta = with lib; {
     description = "Fetches system/theme information in terminal for Linux desktop screenshots";
     longDescription = ''
-    screenFetch is a "Bash Screenshot Information Tool". This handy Bash
-    script can be used to generate one of those nifty terminal theme
-    information + ASCII distribution logos you see in everyone's screenshots
-    nowadays. It will auto-detect your distribution and display an ASCII
-    version of that distribution's logo and some valuable information to the
-    right. There are options to specify no ascii art, colors, taking a
-    screenshot upon displaying info, and even customizing the screenshot
-    command! This script is very easy to add to and can easily be extended.
+      screenFetch is a "Bash Screenshot Information Tool". This handy Bash
+      script can be used to generate one of those nifty terminal theme
+      information + ASCII distribution logos you see in everyone's screenshots
+      nowadays. It will auto-detect your distribution and display an ASCII
+      version of that distribution's logo and some valuable information to the
+      right. There are options to specify no ascii art, colors, taking a
+      screenshot upon displaying info, and even customizing the screenshot
+      command! This script is very easy to add to and can easily be extended.
     '';
     license = licenses.gpl3;
-    homepage = http://git.silverirc.com/cgit.cgi/screenfetch-dev.git/;
-    maintainers = with maintainers; [relrod];
+    homepage = https://github.com/KittyKatt/screenFetch;
+    maintainers = with maintainers; [ relrod ];
     platforms = platforms.all;
   };
 }
diff --git a/pkgs/tools/misc/smenu/default.nix b/pkgs/tools/misc/smenu/default.nix
index f1493630a2a5..061a6c58d237 100644
--- a/pkgs/tools/misc/smenu/default.nix
+++ b/pkgs/tools/misc/smenu/default.nix
@@ -1,14 +1,14 @@
 { stdenv, fetchFromGitHub, ncurses }:
 
 stdenv.mkDerivation rec {
-  version = "v0.9.10";
+  version = "v0.9.11";
   name = "smenu-${version}";
 
   src = fetchFromGitHub {
     owner  = "p-gen";
     repo   = "smenu";
     rev    = version;
-    sha256 = "1fh0s5zhx8ps760w0yxjv682lhahz1j63i0gdwvvr5vnvyx6c40d";
+    sha256 = "1va5gsxniin02casgdrqxvpzccm0vwjiql60qrsvncrq6nm6bz0d";
   };
 
   buildInputs = [ ncurses ];
diff --git a/pkgs/tools/misc/ultrastar-creator/default.nix b/pkgs/tools/misc/ultrastar-creator/default.nix
index 30473059d6d9..435a5850920a 100644
--- a/pkgs/tools/misc/ultrastar-creator/default.nix
+++ b/pkgs/tools/misc/ultrastar-creator/default.nix
@@ -35,6 +35,6 @@ stdenv.mkDerivation rec {
     description = "Ultrastar karaoke song creation tool";
     homepage = https://github.com/UltraStar-Deluxe/UltraStar-Creator;
     license = licenses.gpl2;
-    maintainers = with maintainers; [ profpatsch ];
+    maintainers = with maintainers; [ Profpatsch ];
   };
 }
diff --git a/pkgs/tools/misc/ultrastar-manager/default.nix b/pkgs/tools/misc/ultrastar-manager/default.nix
index af443661b6cd..d9739f7846b7 100644
--- a/pkgs/tools/misc/ultrastar-manager/default.nix
+++ b/pkgs/tools/misc/ultrastar-manager/default.nix
@@ -115,6 +115,6 @@ in stdenv.mkDerivation {
     description = "Ultrastar karaoke song manager";
     homepage = https://github.com/UltraStar-Deluxe/UltraStar-Manager;
     license = licenses.gpl2;
-    maintainers = with maintainers; [ profpatsch ];
+    maintainers = with maintainers; [ Profpatsch ];
   };
 }
diff --git a/pkgs/tools/misc/uudeview/default.nix b/pkgs/tools/misc/uudeview/default.nix
new file mode 100644
index 000000000000..e66580f25ffb
--- /dev/null
+++ b/pkgs/tools/misc/uudeview/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchurl, tcl, tk }:
+
+stdenv.mkDerivation rec {
+  name = "uudeview-0.5.20";
+  src = fetchurl {
+    url = "http://www.fpx.de/fp/Software/UUDeview/download/${name}.tar.gz";
+    sha256 = "0dg4v888fxhmf51vxq1z1gd57fslsidn15jf42pj4817vw6m36p4";
+  };
+
+  buildInputs = [ tcl tk ];
+  hardeningDisable = [ "format" ];
+  configureFlags = [ "--enable-tk=${tk.dev}" "--enable-tcl=${tcl}" ];
+  postPatch = ''
+    substituteInPlace tcl/xdeview --replace "exec uuwish" "exec $out/bin/uuwish"
+  '';
+
+  meta = {
+    description = "The Nice and Friendly Decoder";
+    homepage = http://www.fpx.de/fp/Software/UUDeview/;
+    license = stdenv.lib.licenses.gpl2;
+    maintainers = with stdenv.lib.maintainers; [ woffs ];
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/pkgs/tools/misc/vdirsyncer/default.nix b/pkgs/tools/misc/vdirsyncer/default.nix
index 382b69722a42..ad5b259eb77a 100644
--- a/pkgs/tools/misc/vdirsyncer/default.nix
+++ b/pkgs/tools/misc/vdirsyncer/default.nix
@@ -6,12 +6,12 @@ let
   pythonPackages = python3Packages;
 in
 pythonPackages.buildPythonApplication rec {
-  version = "0.16.3";
+  version = "0.16.4";
   name = "vdirsyncer-${version}";
 
   src = fetchurl {
     url = "mirror://pypi/v/vdirsyncer/${name}.tar.gz";
-    sha256 = "0dpwbfi97ksijqng191659m8k0v215y8ld95w8gb126m4m96qpzw";
+    sha256 = "03wva48bgv1ad3df6plc9b8xxh6k8bcaxrhlzwh81c9mzn5bspzv";
   };
 
   propagatedBuildInputs = with pythonPackages; [
diff --git a/pkgs/tools/misc/watchexec/default.nix b/pkgs/tools/misc/watchexec/default.nix
new file mode 100644
index 000000000000..2b801bb74a42
--- /dev/null
+++ b/pkgs/tools/misc/watchexec/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, lib, rustPlatform, fetchFromGitHub }:
+
+with rustPlatform;
+
+buildRustPackage rec {
+  name = "watchexec-${version}";
+  version = "1.8.6";
+
+  src = fetchFromGitHub {
+    owner = "mattgreen";
+    repo = "watchexec";
+    rev = "${version}";
+    sha256 = "1jib51dbr6s1iq21inm2xfsjnz1730nyd3af1x977iqivmwdisax";
+  };
+
+  cargoSha256 = "0sm1jvx1y18h7y66ilphsqmkbdxc76xly8y7kxmqwdi4lw54i9vl";
+
+  meta = with stdenv.lib; {
+    description = "Executes commands in response to file modifications";
+    homepage = https://github.com/mattgreen/watchexec;
+    license = with licenses; [ asl20 ];
+    maintainers = [ maintainers.michalrus ];
+    platforms = [ "x86_64-linux" ];
+  };
+}
diff --git a/pkgs/tools/misc/yle-dl/default.nix b/pkgs/tools/misc/yle-dl/default.nix
index 2967892521ca..303722aac0b8 100644
--- a/pkgs/tools/misc/yle-dl/default.nix
+++ b/pkgs/tools/misc/yle-dl/default.nix
@@ -2,13 +2,13 @@
 
 pythonPackages.buildPythonApplication rec {
   name = "yle-dl-${version}";
-  version = "2.30";
+  version = "2.31";
 
   src = fetchFromGitHub {
     owner = "aajanki";
     repo = "yle-dl";
     rev = version;
-    sha256 = "08qqsg0rmp4xfzmla81f0a4vblqfw3rh90wvxm91vbm6937b4i7i";
+    sha256 = "0k93p9csyjm0w33diwl5s22kzs3g78jl3n9k8nxxpqrybfjl912f";
   };
 
   propagatedBuildInputs = with pythonPackages; [ lxml pyamf pycrypto requests future ffmpeg ];
diff --git a/pkgs/tools/misc/youtube-dl/default.nix b/pkgs/tools/misc/youtube-dl/default.nix
index c4595a1a94e1..0386896d97f8 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 {
 
   name = "youtube-dl-${version}";
-  version = "2018.01.27";
+  version = "2018.02.08";
 
   src = fetchurl {
     url = "https://yt-dl.org/downloads/${version}/${name}.tar.gz";
-    sha256 = "14vbm8pr6xdrdbk8j9k4v82rnalbdpk2lcm7n9wj6z6d441ymji9";
+    sha256 = "0iq5mav782gz0gm00rry3v7gdxkkx4y1k0p20pvz32ga4id5k1mg";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/tools/misc/zsh-autoenv/default.nix b/pkgs/tools/misc/zsh-autoenv/default.nix
new file mode 100644
index 000000000000..492b72a176ed
--- /dev/null
+++ b/pkgs/tools/misc/zsh-autoenv/default.nix
@@ -0,0 +1,40 @@
+{ stdenv, fetchFromGitHub, bash }:
+
+stdenv.mkDerivation rec {
+  name = "zsh-autoenv-${version}";
+  version = "2017-12-16";
+
+  src = fetchFromGitHub {
+    owner = "Tarrasch";
+    repo = "zsh-autoenv";
+    rev = "2c8cfbcea8e7286649840d7ec98d7e9d5e1d45a0";
+    sha256 = "004svkfzhc3ab6q2qvwzgj36wvicg5bs8d2gcibx6adq042di7zj";
+  };
+
+  buildPhase = ":";
+
+  installPhase = ''
+    mkdir -p $out/{bin,share}
+    cp -R $src $out/share/zsh-autoenv
+
+    cat <<SCRIPT > $out/bin/zsh-autoenv-share
+    #!${stdenv.shell}
+    # Run this script to find the fzf shared folder where all the shell
+    # integration scripts are living.
+    echo $out/share/zsh-autoenv
+    SCRIPT
+    chmod +x $out/bin/zsh-autoenv-share
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Automatically sources whitelisted .autoenv.zsh files";
+    longDescription = ''
+      zsh-autoenv automatically sources (known/whitelisted)
+      .autoenv.zsh files, typically used in project root directories.
+      It handles "enter" and "leave" events, nesting, and stashing of
+      variables (overwriting and restoring).
+    '';
+    homepage = https://github.com/Tarrasch/zsh-autoenv;
+    platforms = stdenv.lib.platforms.all;
+  };
+}