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/backup/borg/default.nix4
-rw-r--r--pkgs/tools/bootloaders/refind/default.nix31
-rw-r--r--pkgs/tools/filesystems/relfs/default.nix74
-rw-r--r--pkgs/tools/graphics/logstalgia/default.nix8
-rw-r--r--pkgs/tools/graphics/neural-style/default.nix57
-rw-r--r--pkgs/tools/graphics/neural-style/neural-style.sh25
-rw-r--r--pkgs/tools/graphics/quirc/default.nix12
-rw-r--r--pkgs/tools/misc/blink1-tool/default.nix29
-rw-r--r--pkgs/tools/misc/exa/default.nix2
-rw-r--r--pkgs/tools/misc/system-config-printer/default.nix9
-rw-r--r--pkgs/tools/misc/vmtouch/default.nix6
-rw-r--r--pkgs/tools/networking/ferm/default.nix38
-rw-r--r--pkgs/tools/security/chaps/default.nix3
-rw-r--r--pkgs/tools/security/duo-unix/default.nix4
-rw-r--r--pkgs/tools/security/tor/default.nix23
-rw-r--r--pkgs/tools/system/facter/default.nix8
-rw-r--r--pkgs/tools/system/runit/Makefile.patch11
-rw-r--r--pkgs/tools/system/runit/default.nix36
-rw-r--r--pkgs/tools/text/a2ps/default.nix2
19 files changed, 270 insertions, 112 deletions
diff --git a/pkgs/tools/backup/borg/default.nix b/pkgs/tools/backup/borg/default.nix
index 09683ce4b8ff..9649e35c074b 100644
--- a/pkgs/tools/backup/borg/default.nix
+++ b/pkgs/tools/backup/borg/default.nix
@@ -2,13 +2,13 @@
 
 python3Packages.buildPythonApplication rec {
   name = "borgbackup-${version}";
-  version = "1.0.6";
+  version = "1.0.7";
   namePrefix = "";
 
   src = fetchurl {
     url = "https://github.com/borgbackup/borg/releases/download/"
       + "${version}/${name}.tar.gz";
-    sha256 = "1dxn9p4xm0zd32xzzd9hs4a542db34clykrrnnv3hrdnc394895p";
+    sha256 = "1l9iw55w5x51yxl3q89cf6avg80lajxvc8qz584hrsmnk6i56cr0";
   };
 
   nativeBuildInputs = with python3Packages; [
diff --git a/pkgs/tools/bootloaders/refind/default.nix b/pkgs/tools/bootloaders/refind/default.nix
index 110e00976e83..744d67c75248 100644
--- a/pkgs/tools/bootloaders/refind/default.nix
+++ b/pkgs/tools/bootloaders/refind/default.nix
@@ -1,5 +1,5 @@
-{ stdenv, fetchurl
-, unzip, gnu-efi, efibootmgr, dosfstools, imagemagick }:
+{ stdenv, fetchurl, fetchpatch
+, gnu-efi, efibootmgr, dosfstools, imagemagick }:
 
 assert (stdenv.system == "x86_64-linux" ||stdenv.system == "i686-linux");
 
@@ -9,18 +9,26 @@ stdenv.mkDerivation rec {
   srcName = "refind-src-${meta.version}";
 
   src = fetchurl {
-    url = "mirror://sourceforge/project/refind/${meta.version}/${srcName}.zip";
-    sha256 = "0ai150rzx20sfl92j6y1p6qnyy0wbmazrlp2fg19acs98qyxl8lh";
+    url = "mirror://sourceforge/project/refind/${meta.version}/${srcName}.tar.gz";
+    sha256 = "1r2qp29mz08lx36i7x52i2598773bxvfhwryd954ssq2baifjav5";
   };
 
-  buildInputs = [ unzip gnu-efi efibootmgr dosfstools imagemagick ];
+  patches = [
+    (fetchpatch {
+      url = "https://bugs.debian.org/cgi-bin/bugreport.cgi?att=1;bug=831258;filename=002-efiprot.patch;msg=10";
+      sha256 = "17h03h5mgkpamcj9jcq8h6x2admpknysrbdwccg7yxirlc52fc2s";
+      name = "002-efiprot.patch";
+    })
+  ];
+
+  buildInputs = [ gnu-efi efibootmgr dosfstools imagemagick ];
 
   HOSTARCH =
     if stdenv.system == "x86_64-linux" then "x64"
     else if stdenv.system == "i686-linux" then "ia32"
     else "null";
 
-  patchPhase = ''
+  postPatch = ''
     sed -e 's|-DEFI_FUNCTION_WRAPPER|-DEFI_FUNCTION_WRAPPER -maccumulate-outgoing-args|g' -i Make.common
     sed -e 's|-DEFIX64|-DEFIX64 -maccumulate-outgoing-args|g' -i Make.common
     sed -e 's|-m64|-maccumulate-outgoing-args -m64|g' -i filesystems/Make.gnuefi
@@ -55,9 +63,9 @@ stdenv.mkDerivation rec {
     install -D -m0644 gptsync/gptsync_${HOSTARCH}.efi $out/share/refind/tools_${HOSTARCH}/gptsync_${HOSTARCH}.efi
 
     # helper scripts
-    install -D -m0755 install.sh $out/bin/refind-install
-    install -D -m0755 mkrlconf.sh $out/bin/refind-mkrlconf
-    install -D -m0755 mvrefind.sh $out/bin/refind-mvrefind
+    install -D -m0755 refind-install $out/bin/refind-install
+    install -D -m0755 mkrlconf $out/bin/refind-mkrlconf
+    install -D -m0755 mvrefind $out/bin/refind-mvrefind
     install -D -m0755 fonts/mkfont.sh $out/bin/refind-mkfont
 
     # sample config files
@@ -76,7 +84,7 @@ stdenv.mkDerivation rec {
     rm -f $out/share/refind/fonts/mkfont.sh
 
     # icons
-    install -D -m0644 icons/* $out/share/refind/icons/
+    install -D -m0644 icons/*.png $out/share/refind/icons/
 
     # images
     install -D -m0644 images/*.{png,bmp} $out/share/refind/images/
@@ -90,11 +98,10 @@ stdenv.mkDerivation rec {
     # Post-install fixes
     sed -e "s|^ThisDir=.*|ThisDir=$out/share/refind/|g" -i $out/bin/refind-install
     sed -e "s|^RefindDir=.*|RefindDir=$out/share/refind/|g" -i $out/bin/refind-install
-    sed -e "s|^ThisScript=.*|ThisScript=$out/bin/refind-install|g" -i $out/bin/refind-install
   '';
 
   meta = with stdenv.lib; {
-    version = "0.9.2";
+    version = "0.10.3";
     description = "A graphical {,U}EFI boot manager";
     longDescription = ''
       rEFInd is a graphical boot manager for EFI- and UEFI-based
diff --git a/pkgs/tools/filesystems/relfs/default.nix b/pkgs/tools/filesystems/relfs/default.nix
index 6d803f725318..0c8e1c4ef81a 100644
--- a/pkgs/tools/filesystems/relfs/default.nix
+++ b/pkgs/tools/filesystems/relfs/default.nix
@@ -1,54 +1,48 @@
-{ stdenv, fetchcvs, builderDefs, ocaml, fuse, postgresql, pcre
+{ stdenv, fetchcvs, ocaml, fuse, postgresql, pcre
 , libuuid, gnome_vfs, pkgconfig, GConf }:
 
-	let localDefs = builderDefs.passthru.function {
+stdenv.mkDerivation rec {
+	name = "relfs-2008.03.05";
+
 	src = fetchcvs {
 		cvsRoot = ":pserver:anonymous@relfs.cvs.sourceforge.net:/cvsroot/relfs";
 		module = "relfs";
 		date = "2008-03-05";
 		sha256 = "949f8eff7e74ff2666cccf8a1efbfcce8d54bc41bec6ad6db8c029de7ca832a3";
 	};
-		
-		buildInputs = [ocaml fuse postgresql pcre
-			libuuid gnome_vfs pkgconfig GConf];
-		configureFlags = [];
-		    build = builderDefs.stringsWithDeps.fullDepEntry ("
-			cd deps 
-			sed -e 's/^CPP/#&/ ; s/^# CPP=gcc/CPP=gcc/' -i Makefile.camlidl
-			make 
-			cd ../src
-			sed -e 's/NULL\\|FALSE/0/g' -i Mimetype_lib.c
-			sed -e 's@/usr/local/@'\$out/'@' -i Makefile
-			sed -e '/install:/a\\\tmkdir -p '\$out'/share' -i Makefile
-			make
-			mkdir -p \$out/bin
-			echo '
-				createuser -A -D \$1
-				dropdb relfs_\$1 ; 
-				rm -rf /tmp/relfs-\$1-tmp;  
-				mkdir /tmp/relfs-\$1-tmp;  
-				USER=\$1 relfs -f -s /tmp/relfs-\$1-tmp  & 
-				sleep 1 && 
-				kill -15 \${!};
-				rm -rf /tmp/relfs-\$1-tmp ; 
-				psql -d relfs_\$1 <<< \"ALTER DATABASE relfs_\$1 OWNER TO \$1; 
-					ALTER TABLE obj OWNER TO \$1; 
-					ALTER TABLE obj_mimetype OWNER TO \$1; 
-					ALTER TABLE membership OWNER TO \$1;\"' > \$out/bin/relfs_grant;
-			chmod a+x \$out/bin/relfs_grant;
-		") ["minInit" "doUnpack" "addInputs"];
-	};
-	in with localDefs;
 
-assert libuuid != null;
-        
-stdenv.mkDerivation rec {
-	name = "relfs-2008.03.05";
-	builder = writeScript (name + "-builder")
-		(textClosure localDefs ["build" "doMakeInstall" "doForceShare" "doPropagate"]);
+  buildInputs = [ ocaml fuse postgresql pcre libuuid gnome_vfs pkgconfig GConf ];
+
+  buildPhase = ''
+    cd deps
+		sed -e 's/^CPP/#&/ ; s/^# CPP=gcc/CPP=gcc/' -i Makefile.camlidl
+		make
+		cd ../src
+		sed -e 's/NULL\\|FALSE/0/g' -i Mimetype_lib.c
+		sed -e 's@/usr/local/@'\$out/'@' -i Makefile
+		sed -e '/install:/a\\\tmkdir -p '\$out'/share' -i Makefile
+		make
+		mkdir -p \$out/bin
+		echo '
+		  createuser -A -D \$1
+			dropdb relfs_\$1 ;
+			rm -rf /tmp/relfs-\$1-tmp;
+			mkdir /tmp/relfs-\$1-tmp;
+			USER=\$1 relfs -f -s /tmp/relfs-\$1-tmp  &
+			sleep 1 &&
+			kill -15 \''${!};
+			rm -rf /tmp/relfs-\$1-tmp ;
+			psql -d relfs_\$1 <<< \"ALTER DATABASE relfs_\$1 OWNER TO \$1;
+				ALTER TABLE obj OWNER TO \$1;
+				ALTER TABLE obj_mimetype OWNER TO \$1;
+				ALTER TABLE membership OWNER TO \$1;\"' > \$out/bin/relfs_grant;
+		chmod a+x \$out/bin/relfs_grant;
+  '';
+
 	meta = {
 		description = "A relational filesystem on top of FUSE";
-    		maintainers = [stdenv.lib.maintainers.raskin];
+    maintainers = [stdenv.lib.maintainers.raskin];
 		platforms = stdenv.lib.platforms.linux;
+    broken = true;
 	};
 }
diff --git a/pkgs/tools/graphics/logstalgia/default.nix b/pkgs/tools/graphics/logstalgia/default.nix
index 0deb24ed56f9..f7f9211b5154 100644
--- a/pkgs/tools/graphics/logstalgia/default.nix
+++ b/pkgs/tools/graphics/logstalgia/default.nix
@@ -1,5 +1,5 @@
-{ stdenv, fetchurl, SDL, ftgl, pkgconfig, libpng, libjpeg, pcre, SDL_image, glew
-, mesa, boost, glm }:
+{ stdenv, fetchurl, SDL2, ftgl, pkgconfig, libpng, libjpeg, pcre, SDL2_image, glew
+, mesa, boost, glm, freetype }:
 
 stdenv.mkDerivation rec {
   name = "logstalgia-${version}";
@@ -10,8 +10,8 @@ stdenv.mkDerivation rec {
     sha256 = "1qghz1j3jmfj093br2hfyibayg3fmhg8fvp5ix9n9rbvzc1zslsm";
   };
 
-  buildInputs = [ glew SDL ftgl pkgconfig libpng libjpeg pcre SDL_image mesa boost
-                  glm ];
+  buildInputs = [ glew SDL2 ftgl pkgconfig libpng libjpeg pcre SDL2_image mesa boost
+                  glm freetype ];
 
   meta = with stdenv.lib; {
     homepage = http://code.google.com/p/logstalgia;
diff --git a/pkgs/tools/graphics/neural-style/default.nix b/pkgs/tools/graphics/neural-style/default.nix
new file mode 100644
index 000000000000..4efa6aa29768
--- /dev/null
+++ b/pkgs/tools/graphics/neural-style/default.nix
@@ -0,0 +1,57 @@
+{stdenv, fetchFromGitHub, torch, loadcaffe, fetchurl, bash}:
+stdenv.mkDerivation rec {
+  name = "neural-style-${version}";
+  version = "0.0pre2016.08.15";
+  buildInputs = [torch loadcaffe];
+  src = fetchFromGitHub {
+    owner = "jcjohnson";
+    repo = "neural-style";
+    rev = "ec5ba3a690d3090428d3b92b0c5d686a311bf432";
+    sha256 = "14qzbs9f95izvd0vbbirhymdw9pq2nw0jvhrh7vnyzr99xllwp02";
+  };
+  models = [
+    (fetchurl {
+      url = "https://gist.githubusercontent.com/ksimonyan/3785162f95cd2d5fee77/raw/bb2b4fe0a9bb0669211cf3d0bc949dfdda173e9e/VGG_ILSVRC_19_layers_deploy.prototxt";
+      sha256 = "09cpz7pyvc8sypg2q5j2i8yqwj1sjdbnmd6skl293p9pv13dmjg7";
+    })
+    (fetchurl {
+      url = "https://bethgelab.org/media/uploads/deeptextures/vgg_normalised.caffemodel";
+      sha256 = "11qckdvlck7wwl3pan0nawgxm8l2ccddi272i5l8rs9qzm7b23rf";
+    })
+    (fetchurl {
+      url = "http://www.robots.ox.ac.uk/~vgg/software/very_deep/caffe/VGG_ILSVRC_19_layers.caffemodel";
+      sha256 = "0m399x7pl4lnhy435ycsyz8xpzapqmx9n1sz698y2vhcqhkwdd1i";
+    })
+  ];
+  installPhase = ''
+    mkdir -p "$out"/{bin,lib/lua/neural-style/models,share/doc/neural-style,share/neural-style}
+    for file in $models; do
+      cp "$file" "$out/lib/lua/neural-style/models/$(basename "$file" | sed -e 's/[^-]*-//')"
+    done;
+    cp README* INSTALL* LICEN?E* "$out"/share/doc/neural-style/
+    cp neural_style.lua "$out"/lib/lua/neural-style
+
+    substituteAll "${./neural-style.sh}" "$out/bin/neural-style"
+    chmod a+x "$out/bin/neural-style"
+    cp "$out/bin/neural-style" .
+    cp "$out/lib/lua/neural-style/models/"* models/
+
+    echo "Testing..."
+
+    "$out/bin/neural-style" -style_image examples/inputs/golden_gate.jpg \
+      -content_image examples/inputs/golden_gate.jpg -output_image $PWD/test.png \
+      -gpu -1 -save_iter 1 -print_iter 1 -num_iterations 1 || true
+
+    cp -f "$out/lib/lua/neural-style/models/"* models/
+
+    test -e test.png || exit 1
+  '';
+  inherit torch bash loadcaffe;
+  meta = {
+    inherit version;
+    description = ''A torch implementation of the paper A Neural Algorithm of Artistic Style'';
+    license = stdenv.lib.licenses.mit ;
+    maintainers = [stdenv.lib.maintainers.raskin];
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/pkgs/tools/graphics/neural-style/neural-style.sh b/pkgs/tools/graphics/neural-style/neural-style.sh
new file mode 100644
index 000000000000..07a4d6dedc04
--- /dev/null
+++ b/pkgs/tools/graphics/neural-style/neural-style.sh
@@ -0,0 +1,25 @@
+#! @bash@/bin/bash
+
+declare -a args
+c=1
+flag=
+
+for arg in "$@"; do
+        if test "$arg" = "${arg#-}" && test "$arg" = "${arg#/}" && test -n "$flag"; then
+                arg="$PWD/$arg"
+                flag=
+        elif test "$arg" != "${arg%_image}" && test "$arg" != "${arg#-}"; then
+                flag=1
+        else
+                flag=
+        fi
+        args[c]="$arg";
+        c=$((c+1));
+done
+
+cd "@out@/lib/lua/neural-style"
+
+export LUA_PATH="$LUA_PATH${LUA_PATH:+;}@loadcaffe@/lua/?/init.lua;@loadcaffe@/lua/?.lua"
+export LUA_CPATH="$LUA_CPATH${LUA_CPATH:+;}@loadcaffe@/lib/?.so"
+
+@torch@/bin/th neural_style.lua "${args[@]}"
diff --git a/pkgs/tools/graphics/quirc/default.nix b/pkgs/tools/graphics/quirc/default.nix
index 2769a9886695..a801dd8ebda9 100644
--- a/pkgs/tools/graphics/quirc/default.nix
+++ b/pkgs/tools/graphics/quirc/default.nix
@@ -1,17 +1,17 @@
-{stdenv, fetchgit, SDL_gfx, SDL, libjpeg, pkgconfig}:
+{stdenv, fetchgit, SDL_gfx, SDL, libjpeg, libpng, pkgconfig}:
 let
   s =
   rec {
-    date = "2014-11-01";
+    date = "2016-08-16";
     version = "git-${date}";
     baseName = "quirc";
     name = "${baseName}-${version}";
     url = "https://github.com/dlbeer/quirc";
-    rev = "3a3df0d1d6adc59fdc2cadecfaed91650b84cacb";
-    sha256 = "1r7jzxl4j93dmky8p5szpcxq7i5f7p1kfrklnzhazlizjc7a2844";
+    rev = "5b262480091d5f84a67a4a56c728fc8b39844339";
+    sha256 = "1w5qvjafn14s6jjs7kiwsqirlsqbgv0p152hrsq463pm34hp0lzy";
   };
   buildInputs = [
-    SDL SDL_gfx libjpeg pkgconfig
+    SDL SDL_gfx libjpeg pkgconfig libpng
   ];
 in
 stdenv.mkDerivation {
@@ -20,7 +20,7 @@ stdenv.mkDerivation {
   src = fetchgit {
     inherit (s) url sha256 rev;
   };
-  NIX_CFLAGS_COMPILE="-I${SDL.dev}/include/SDL";
+  NIX_CFLAGS_COMPILE="-I${SDL.dev}/include/SDL -I${SDL_gfx}/include/SDL";
   configurePhase = ''
     sed -e 's/-[og] root//g' -i Makefile
   '';
diff --git a/pkgs/tools/misc/blink1-tool/default.nix b/pkgs/tools/misc/blink1-tool/default.nix
new file mode 100644
index 000000000000..29b199e5866b
--- /dev/null
+++ b/pkgs/tools/misc/blink1-tool/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchurl, libusb1, pkgconfig, ... }:
+
+stdenv.mkDerivation rec {
+  name = "blink1-${version}";
+  version = "v1.98";
+
+  src = fetchurl {
+    url = "https://github.com/todbot/blink1/archive/${version}.tar.gz";
+    sha256 = "05hbnp20cdvyyqf6jr01waz1ycis20qzsd8hn27snmn6qd48igrb";
+  };
+
+  buildInputs = [ libusb1 pkgconfig ];
+
+  configurePhase = ''
+    cd commandline
+  '';
+
+  installPhase = ''
+    PREFIX=$out make install
+  '';
+
+  meta = {
+    description = "Command line client for the blink(1) notification light";
+    homepage = https://blink1.thingm.com/;
+    license = stdenv.lib.licenses.cc-by-sa-30;
+    maintainers = [ stdenv.lib.maintainers.cransom ];
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/pkgs/tools/misc/exa/default.nix b/pkgs/tools/misc/exa/default.nix
index 62f8d31ee7ea..d743a68c83b9 100644
--- a/pkgs/tools/misc/exa/default.nix
+++ b/pkgs/tools/misc/exa/default.nix
@@ -6,7 +6,7 @@ buildRustPackage rec {
   name = "exa-${version}";
   version = "2016-04-20";
 
-  depsSha256 = "0nyrdl57nhr3lxqs3gaij3mdmlrm0z52qv6mznvgw0ziwqmlq5w1";
+  depsSha256 = "0qsqkgc1wxigvskhaamgfp5pyc2kprsikhcfccysgs07w44nxkd0";
 
   src = fetchFromGitHub {
     owner = "ogham";
diff --git a/pkgs/tools/misc/system-config-printer/default.nix b/pkgs/tools/misc/system-config-printer/default.nix
index 67ec9585c7ab..ab4a008fa092 100644
--- a/pkgs/tools/misc/system-config-printer/default.nix
+++ b/pkgs/tools/misc/system-config-printer/default.nix
@@ -1,6 +1,7 @@
 { stdenv, fetchurl, udev, intltool, pkgconfig, glib, xmlto
 , makeWrapper, gtk3, docbook_xml_dtd_412, docbook_xsl
 , libxml2, desktop_file_utils, libusb1, cups, gdk_pixbuf, pango, atk, libnotify
+, cups-filters
 , pythonPackages
 , withGUI ? true
 }:
@@ -39,7 +40,9 @@ in stdenv.mkDerivation rec {
       giTypelibPath = stdenv.lib.makeSearchPath "lib/girepository-1.0" [ gdk_pixbuf.out gtk3.out pango.out atk.out libnotify.out ];
     in
     ''
-      export makeWrapperArgs="--set prefix $out --set GI_TYPELIB_PATH ${giTypelibPath}"
+      export makeWrapperArgs="--set prefix $out \
+          --set GI_TYPELIB_PATH ${giTypelibPath} \
+          --set CUPS_DATADIR ${cups-filters}/share/cups"
       wrapPythonPrograms
       # The program imports itself, so we need to move shell wrappers to a proper place.
       fixupWrapper() {
@@ -59,6 +62,10 @@ in stdenv.mkDerivation rec {
 
       # The below line will be unneeded when the next upstream release arrives.
       sed -i -e "s|/usr/bin|$out/bin|" "$out/share/dbus-1/services/org.fedoraproject.Config.Printing.service"
+
+      # Manually expand literal "$(out)", which have failed to expand
+      sed -e "s|ExecStart=\$(out)|ExecStart=$out|" \
+          -i "$out/etc/systemd/system/configure-printer@.service"
     '';
 
   meta = {
diff --git a/pkgs/tools/misc/vmtouch/default.nix b/pkgs/tools/misc/vmtouch/default.nix
index 34328b339fc7..ec2f9c63547c 100644
--- a/pkgs/tools/misc/vmtouch/default.nix
+++ b/pkgs/tools/misc/vmtouch/default.nix
@@ -2,14 +2,14 @@
 
 stdenv.mkDerivation rec {
   pname = "vmtouch";
-  version = "1.0.2";
+  version = "1.1.0";
   name = "${pname}-git-${version}";
 
   src = fetchFromGitHub {
     owner = "hoytech";
     repo = "vmtouch";
-    rev = "vmtouch-${version}";
-    sha256 = "0m4s1am1r3qp8si3rnc8j2qc7sbf1k3gxvxr6fnpbf8fcfhh6cay";
+    rev = "v${version}";
+    sha256 = "1cr8bw3favdvc3kc05n1r7f5fibqqv54bn3z2jwj70br8s5g0qx0";
   };
 
   buildInputs = [perl];
diff --git a/pkgs/tools/networking/ferm/default.nix b/pkgs/tools/networking/ferm/default.nix
new file mode 100644
index 000000000000..f4cf387ecc52
--- /dev/null
+++ b/pkgs/tools/networking/ferm/default.nix
@@ -0,0 +1,38 @@
+{ stdenv, fetchurl, makeWrapper, perl, ebtables, ipset, iptables }:
+
+stdenv.mkDerivation rec {
+  version = "2.3";
+  name = "ferm-${version}";
+
+  src = fetchurl {
+    url = "http://ferm.foo-projects.org/download/${version}/ferm-${version}.tar.gz";
+    sha256 = "0jx63fhjw5y1ahgdbn4hgd7sq6clxl80dr8a2hkryibfbwz3vs4x";
+  };
+
+  buildInputs = [ perl ipset ebtables iptables makeWrapper ];
+  preConfigure = ''
+    substituteInPlace config.mk --replace "PERL = /usr/bin/perl" "PERL = ${perl}/bin/perl"
+    substituteInPlace config.mk --replace "PREFIX = /usr" "PREFIX = $out"
+  '';
+  postInstall = ''
+    rm -r $out/lib/systemd
+    for i in "$out/sbin/"*; do
+      wrapProgram "$i" --prefix PATH : "${iptables}/bin:${ipset}/bin:${ebtables}/bin"
+    done
+  '';
+
+  meta = {
+    homepage = http://ferm.foo-projects.org/;
+    description = "Tool to maintain complex firewalls";
+    longDescription = ''
+      ferm is a tool to maintain complex firewalls, without having the trouble to
+      rewrite the complex rules over and over again. ferm allows the entire
+      firewall rule set to be stored in a separate file, and to be loaded with one
+      command. The firewall configuration resembles structured programming-like
+      language, which can contain levels and lists.
+    '';
+    license = stdenv.lib.licenses.gpl2;
+    maintainers = with stdenv.lib.maintainers; [mic92];
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/pkgs/tools/security/chaps/default.nix b/pkgs/tools/security/chaps/default.nix
index 43e324ec2694..2c6b31500895 100644
--- a/pkgs/tools/security/chaps/default.nix
+++ b/pkgs/tools/security/chaps/default.nix
@@ -31,6 +31,9 @@ stdenv.mkDerivation rec {
     sha256 = "0chk6pnn365d5kcz6vfqx1d0383ksk97icc0lzg0vvb0kvyj0ff1";
   };
 
+  # readdir_r(3) is deprecated in glibc >= 2.24
+  NIX_CFLAGS_COMPILE = "-Wno-error=deprecated-declarations";
+
   patches = [ ./fix_absolute_path.patch  ./fix_environment_variables.patch  ./fix_scons.patch  ./insert_prefetches.patch ];
 
   postPatch = ''
diff --git a/pkgs/tools/security/duo-unix/default.nix b/pkgs/tools/security/duo-unix/default.nix
index af5e72faca44..05ce60a05084 100644
--- a/pkgs/tools/security/duo-unix/default.nix
+++ b/pkgs/tools/security/duo-unix/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   name = "duo-unix-${version}";
-  version = "1.9.11";
+  version = "1.9.19";
 
   src = fetchurl {
     url    = "https://dl.duosecurity.com/duo_unix-${version}.tar.gz";
-    sha256 = "0747avzmzzz1gaisahgjlpxyxxbrn04w1mip90lfj9wp2x6a9jgm";
+    sha256 = "02hvayknj0kvdik4mqm9j9isqzxk0f992i9v274s27891xqgj8rd";
   };
 
   buildInputs = [ pam openssl zlib ];
diff --git a/pkgs/tools/security/tor/default.nix b/pkgs/tools/security/tor/default.nix
index 8ac7472a2bc3..533cb0dcd8eb 100644
--- a/pkgs/tools/security/tor/default.nix
+++ b/pkgs/tools/security/tor/default.nix
@@ -1,29 +1,30 @@
-{ stdenv, fetchurl, libevent, openssl, zlib, torsocks, libseccomp }:
+{ stdenv, fetchurl, pkgconfig, libevent, openssl, zlib, torsocks
+, libseccomp, systemd, libcap
+}:
 
 stdenv.mkDerivation rec {
-  name = "tor-0.2.7.6";
+  name = "tor-0.2.8.7";
 
   src = fetchurl {
     url = "https://archive.torproject.org/tor-package-archive/${name}.tar.gz";
-    sha256 = "0p8hjlfi8dwghlyjif5s0q98cmpgz9kn9jja25430l04z5wqcfj9";
+    sha256 = "1iigfi8ljl88s8b5y1g4ak8im57simazscl467zvfbg8k6vf4i5f";
   };
 
-  # Note: torsocks is specified as a dependency, as the distributed
-  # 'torify' wrapper attempts to use it; although there is no
-  # ./configure time check for any of this.
-  buildInputs = [ libevent openssl zlib torsocks ] ++
-    stdenv.lib.optional stdenv.isLinux libseccomp;
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ libevent openssl zlib ] ++
+    stdenv.lib.optionals stdenv.isLinux [ libseccomp systemd libcap ];
 
   NIX_CFLAGS_LINK = stdenv.lib.optionalString stdenv.cc.isGNU "-lgcc_s";
 
-  # Patch 'torify' to point directly to torsocks.
-  patchPhase = ''
+  postPatch = ''
     substituteInPlace contrib/client-tools/torify \
       --replace 'pathfind torsocks' true          \
       --replace 'exec torsocks' 'exec ${torsocks}/bin/torsocks'
   '';
 
-  doCheck = true;
+  # Fails in a sandboxed environment; at some point we want to disable
+  # just the tests that require networking.
+  doCheck = false;
 
   meta = with stdenv.lib; {
     homepage = https://www.torproject.org/;
diff --git a/pkgs/tools/system/facter/default.nix b/pkgs/tools/system/facter/default.nix
index de9b79d79c35..58521ad0f208 100644
--- a/pkgs/tools/system/facter/default.nix
+++ b/pkgs/tools/system/facter/default.nix
@@ -1,11 +1,11 @@
-{ stdenv, fetchurl, boost, cmake, curl, leatherman, libyamlcpp, openssl, ruby, utillinux }:
+{ stdenv, fetchurl, boost, cmake, cpp-hocon, curl, leatherman, libyamlcpp, openssl, ruby, utillinux }:
 
 stdenv.mkDerivation rec {
   name = "facter-${version}";
-  version = "3.1.8";
+  version = "3.4.1";
   src = fetchurl {
     url = "https://downloads.puppetlabs.com/facter/${name}.tar.gz";
-    sha256 = "1fhfjf5bm5kyjiady14fxhpp7hdrkgx56vsvdbqj82km0xqcxpj9";
+    sha256 = "1vvvqni68l3hmnxi8jp0n2rwzxyh1vmgv6xa2954h94dfax6dmcj";
   };
 
   cmakeFlags = [ "-DFACTER_RUBY=${ruby}/lib/libruby.so" ];
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
 
   libyamlcpp_ = libyamlcpp.override { makePIC = true; };
 
-  buildInputs = [ boost cmake curl leatherman libyamlcpp_ openssl ruby utillinux ];
+  buildInputs = [ boost cmake cpp-hocon curl leatherman libyamlcpp_ openssl ruby utillinux ];
 
   meta = with stdenv.lib; {
     homepage = https://github.com/puppetlabs/facter;
diff --git a/pkgs/tools/system/runit/Makefile.patch b/pkgs/tools/system/runit/Makefile.patch
deleted file mode 100644
index 43257728e928..000000000000
--- a/pkgs/tools/system/runit/Makefile.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-diff -ur admin.orig/runit-2.1.2/src/Makefile admin/runit-2.1.2/src/Makefile
---- admin.orig/runit-2.1.2/src/Makefile	2014-08-10 20:22:35.000000000 +0200
-+++ admin/runit-2.1.2/src/Makefile	2014-10-15 13:04:02.892937939 +0200
-@@ -234,7 +234,6 @@
- 
- hasshsgr.h: chkshsgr choose compile hasshsgr.h1 hasshsgr.h2 load \
- tryshsgr.c warn-shsgr
--	./chkshsgr || ( cat warn-shsgr; exit 1 )
- 	./choose clr tryshsgr hasshsgr.h1 hasshsgr.h2 > hasshsgr.h
- 
- haswaitp.h: choose compile haswaitp.h1 haswaitp.h2 load trywaitp.c
diff --git a/pkgs/tools/system/runit/default.nix b/pkgs/tools/system/runit/default.nix
index c10e41d709bc..54899cb14df5 100644
--- a/pkgs/tools/system/runit/default.nix
+++ b/pkgs/tools/system/runit/default.nix
@@ -1,4 +1,6 @@
-{ stdenv, fetchurl }:
+{ stdenv, fetchurl
+, static ? false
+}:
 
 stdenv.mkDerivation rec {
   name = "runit-${version}";
@@ -9,33 +11,39 @@ stdenv.mkDerivation rec {
     sha256 = "065s8w62r6chjjs6m9hapcagy33m75nlnxb69vg0f4ngn061dl3g";
   };
 
-  patches = [ ./Makefile.patch ];
+  outputs = [ "out" "man" ];
 
-  postPatch = ''
-    cd ${name}
+  sourceRoot = "admin/${name}";
+
+  doCheck = true;
+
+  buildInputs = stdenv.lib.optionals static [ stdenv.cc.libc stdenv.cc.libc.static ];
+
+  postPatch = stdenv.lib.optionalString (!static) ''
     sed -i 's,-static,,g' src/Makefile
   '';
 
-  buildPhase = ''
-    make -C 'src'
-  '';
+  preBuild = ''
+    cd src
 
-  checkPhase = ''
-    make -C 'src' check
+    # Both of these are originally hard-coded to gcc
+    echo cc > conf-cc
+    echo cc > conf-ld
   '';
 
   installPhase = ''
     mkdir -p $out/bin
-    for f in $(cat package/commands); do
-      mv src/$f $out/bin/
-    done
+    cp -t $out/bin $(< ../package/commands)
+
+    mkdir -p $man/share/man
+    cp -r ../man $man/share/man/man8
   '';
 
   meta = with stdenv.lib; {
     description = "UNIX init scheme with service supervision";
     license = licenses.bsd3;
     homepage = "http://smarden.org/runit";
-    maintainers = with maintainers; [ rickynils ];
-    platforms = platforms.linux;
+    maintainers = with maintainers; [ rickynils joachifm ];
+    platforms = platforms.unix;
   };
 }
diff --git a/pkgs/tools/text/a2ps/default.nix b/pkgs/tools/text/a2ps/default.nix
index 7de6a8dd5745..e26b4ad89a35 100644
--- a/pkgs/tools/text/a2ps/default.nix
+++ b/pkgs/tools/text/a2ps/default.nix
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ libpaper gperf file ];
 
   meta = with stdenv.lib; {
-    description = "An Anyithing to PostScript converter and pretty-printer";
+    description = "An Anything to PostScript converter and pretty-printer";
     longDescription = ''
       GNU a2ps converts files into PostScript for printing or viewing. It uses a nice default format,
       usually two pages on each physical page, borders surrounding pages, headers with useful information