about summary refs log tree commit diff
path: root/pkgs/tools
diff options
context:
space:
mode:
authorRobin Gloster <mail@glob.in>2016-04-18 13:00:40 +0000
committerRobin Gloster <mail@glob.in>2016-04-18 13:49:22 +0000
commitd020caa5b2eca90ea051403fbb4c52b99ee071b9 (patch)
treeba44ef1e784bca89e0df6b249956fd035b1d86e3 /pkgs/tools
parent3e68106afd95df012ddb548575f0133681687a90 (diff)
parent0729f606973870c03d21bb2f21b70d91216943ca (diff)
downloadnixlib-d020caa5b2eca90ea051403fbb4c52b99ee071b9.tar
nixlib-d020caa5b2eca90ea051403fbb4c52b99ee071b9.tar.gz
nixlib-d020caa5b2eca90ea051403fbb4c52b99ee071b9.tar.bz2
nixlib-d020caa5b2eca90ea051403fbb4c52b99ee071b9.tar.lz
nixlib-d020caa5b2eca90ea051403fbb4c52b99ee071b9.tar.xz
nixlib-d020caa5b2eca90ea051403fbb4c52b99ee071b9.tar.zst
nixlib-d020caa5b2eca90ea051403fbb4c52b99ee071b9.zip
Merge remote-tracking branch 'upstream/master' into hardened-stdenv
Diffstat (limited to 'pkgs/tools')
-rw-r--r--pkgs/tools/X11/bumblebee/default.nix2
-rw-r--r--pkgs/tools/X11/xlaunch/default.nix2
-rw-r--r--pkgs/tools/X11/xpra/default.nix4
-rw-r--r--pkgs/tools/X11/xpra/gtk3.nix4
-rw-r--r--pkgs/tools/admin/daemontools/default.nix42
-rw-r--r--pkgs/tools/admin/gtk-vnc/default.nix2
-rw-r--r--pkgs/tools/admin/tigervnc/default.nix8
-rw-r--r--pkgs/tools/archivers/gnutar/default.nix8
-rw-r--r--pkgs/tools/archivers/p7zip/default.nix4
-rw-r--r--pkgs/tools/archivers/unrar/default.nix2
-rw-r--r--pkgs/tools/archivers/unshield/default.nix42
-rw-r--r--pkgs/tools/archivers/zpaq/default.nix8
-rw-r--r--pkgs/tools/archivers/zpaq/zpaqd.nix8
-rw-r--r--pkgs/tools/audio/beets/default.nix2
-rw-r--r--pkgs/tools/audio/qastools/default.nix2
-rw-r--r--pkgs/tools/backup/borg/default.nix4
-rw-r--r--pkgs/tools/backup/partimage/default.nix2
-rw-r--r--pkgs/tools/backup/store-backup/default.nix2
-rw-r--r--pkgs/tools/bluetooth/obex-data-server/default.nix2
-rw-r--r--pkgs/tools/bluetooth/obexd/default.nix2
-rw-r--r--pkgs/tools/cd-dvd/bashburn/default.nix2
-rw-r--r--pkgs/tools/cd-dvd/brasero/default.nix2
-rw-r--r--pkgs/tools/compression/bzip2/default.nix13
-rw-r--r--pkgs/tools/compression/gzip/default.nix6
-rw-r--r--pkgs/tools/compression/kzipmix/default.nix4
-rw-r--r--pkgs/tools/compression/pbzip2/default.nix4
-rw-r--r--pkgs/tools/compression/pxz/default.nix2
-rw-r--r--pkgs/tools/compression/xz/default.nix2
-rw-r--r--pkgs/tools/compression/zstd/default.nix4
-rw-r--r--pkgs/tools/filesystems/e2fsprogs/default.nix23
-rw-r--r--pkgs/tools/filesystems/glusterfs/default.nix8
-rw-r--r--pkgs/tools/filesystems/nixpart/0.4/blivet.nix12
-rw-r--r--pkgs/tools/filesystems/nixpart/0.4/default.nix6
-rw-r--r--pkgs/tools/filesystems/nixpart/0.4/lvm2.nix8
-rw-r--r--pkgs/tools/filesystems/nixpart/0.4/multipath-tools.nix6
-rw-r--r--pkgs/tools/filesystems/svnfs/default.nix4
-rw-r--r--pkgs/tools/filesystems/xfsprogs/default.nix4
-rw-r--r--pkgs/tools/filesystems/xtreemfs/default.nix2
-rw-r--r--pkgs/tools/filesystems/yandex-disk/default.nix2
-rw-r--r--pkgs/tools/graphics/asymptote/default.nix8
-rw-r--r--pkgs/tools/graphics/fgallery/default.nix2
-rw-r--r--pkgs/tools/graphics/gnuplot/default.nix2
-rw-r--r--pkgs/tools/graphics/graphviz/2.0.nix6
-rw-r--r--pkgs/tools/graphics/graphviz/2.32.nix8
-rw-r--r--pkgs/tools/graphics/graphviz/default.nix19
-rw-r--r--pkgs/tools/graphics/imgur-screenshot/default.nix8
-rw-r--r--pkgs/tools/graphics/imgurbash/default.nix27
-rw-r--r--pkgs/tools/graphics/imgurbash2/default.nix31
-rw-r--r--pkgs/tools/graphics/jhead/default.nix2
-rw-r--r--pkgs/tools/graphics/netpbm/default.nix2
-rw-r--r--pkgs/tools/graphics/optipng/default.nix4
-rw-r--r--pkgs/tools/graphics/pdfread/default.nix2
-rw-r--r--pkgs/tools/graphics/pngcheck/default.nix2
-rw-r--r--pkgs/tools/graphics/pngcrush/default.nix4
-rw-r--r--pkgs/tools/graphics/pngout/default.nix4
-rw-r--r--pkgs/tools/graphics/quirc/default.nix2
-rw-r--r--pkgs/tools/inputmethods/ibus-engines/ibus-libpinyin/default.nix29
-rw-r--r--pkgs/tools/inputmethods/m17n-db/default.nix4
-rw-r--r--pkgs/tools/misc/coreutils/default.nix6
-rw-r--r--pkgs/tools/misc/debian-devscripts/default.nix2
-rw-r--r--pkgs/tools/misc/duc/default.nix22
-rw-r--r--pkgs/tools/misc/dumptorrent/default.nix24
-rw-r--r--pkgs/tools/misc/entr/default.nix2
-rw-r--r--pkgs/tools/misc/findutils/default.nix2
-rw-r--r--pkgs/tools/misc/grub/2.0x.nix3
-rw-r--r--pkgs/tools/misc/kde-gtk-config/default.nix4
-rw-r--r--pkgs/tools/misc/mcrl2/default.nix14
-rw-r--r--pkgs/tools/misc/pipelight/default.nix2
-rw-r--r--pkgs/tools/misc/plowshare/default.nix2
-rw-r--r--pkgs/tools/misc/profile-cleaner/default.nix2
-rw-r--r--pkgs/tools/misc/staruml/default.nix21
-rw-r--r--pkgs/tools/misc/tlp/default.nix2
-rw-r--r--pkgs/tools/misc/tmux/default.nix29
-rw-r--r--pkgs/tools/misc/trash-cli/default.nix2
-rw-r--r--pkgs/tools/misc/venus/default.nix4
-rw-r--r--pkgs/tools/misc/wv/default.nix10
-rw-r--r--pkgs/tools/misc/xdummy/default.nix4
-rw-r--r--pkgs/tools/misc/xfstests/default.nix2
-rw-r--r--pkgs/tools/misc/xvfb-run/default.nix2
-rw-r--r--pkgs/tools/misc/youtube-dl/default.nix8
-rw-r--r--pkgs/tools/networking/aria2/default.nix4
-rw-r--r--pkgs/tools/networking/cjdns/default.nix23
-rw-r--r--pkgs/tools/networking/cmst/default.nix4
-rw-r--r--pkgs/tools/networking/curl/default.nix7
-rw-r--r--pkgs/tools/networking/dnscrypt-proxy/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/gupnp-tools/default.nix2
-rw-r--r--pkgs/tools/networking/i2p/default.nix4
-rw-r--r--pkgs/tools/networking/inetutils/default.nix2
-rw-r--r--pkgs/tools/networking/megatools/default.nix2
-rw-r--r--pkgs/tools/networking/minidlna/default.nix6
-rw-r--r--pkgs/tools/networking/netsniff-ng/default.nix2
-rw-r--r--pkgs/tools/networking/network-manager-applet/default.nix2
-rw-r--r--pkgs/tools/networking/network-manager/default.nix4
-rw-r--r--pkgs/tools/networking/nylon/default.nix12
-rw-r--r--pkgs/tools/networking/openconnect.nix4
-rw-r--r--pkgs/tools/networking/openssh/CVE-2015-8325.patch28
-rw-r--r--pkgs/tools/networking/openssh/default.nix4
-rw-r--r--pkgs/tools/networking/p2p/gtk-gnutella/default.nix2
-rw-r--r--pkgs/tools/networking/p2p/seeks/default.nix6
-rw-r--r--pkgs/tools/networking/p2p/tahoe-lafs/default.nix15
-rw-r--r--pkgs/tools/networking/plasma-nm/default.nix2
-rw-r--r--pkgs/tools/networking/ppp/default.nix2
-rw-r--r--pkgs/tools/networking/sipsak/default.nix2
-rw-r--r--pkgs/tools/networking/unbound/default.nix12
-rw-r--r--pkgs/tools/networking/urlwatch/default.nix6
-rw-r--r--pkgs/tools/networking/uwimap/default.nix5
-rw-r--r--pkgs/tools/networking/wget/default.nix2
-rw-r--r--pkgs/tools/networking/wget/remove-runtime-dep-on-openssl-headers.patch17
-rw-r--r--pkgs/tools/networking/zerotierone/default.nix2
-rw-r--r--pkgs/tools/package-management/checkinstall/default.nix2
-rw-r--r--pkgs/tools/package-management/nix-prefetch-scripts/default.nix4
-rw-r--r--pkgs/tools/package-management/nix/default.nix6
-rw-r--r--pkgs/tools/package-management/nix/unstable.nix76
-rw-r--r--pkgs/tools/package-management/rpm/default.nix2
-rw-r--r--pkgs/tools/security/chntpw/default.nix3
-rw-r--r--pkgs/tools/security/cipherscan/default.nix4
-rw-r--r--pkgs/tools/security/clamav/default.nix4
-rw-r--r--pkgs/tools/security/eid-mw/default.nix4
-rw-r--r--pkgs/tools/security/modsecurity/default.nix3
-rw-r--r--pkgs/tools/security/mpw/default.nix2
-rw-r--r--pkgs/tools/security/pass/default.nix4
-rw-r--r--pkgs/tools/security/pass/rofi-pass.nix2
-rw-r--r--pkgs/tools/security/pcsctools/default.nix2
-rw-r--r--pkgs/tools/security/prey/default.nix2
-rw-r--r--pkgs/tools/security/softhsm/default.nix31
-rw-r--r--pkgs/tools/security/sshuttle/default.nix4
-rw-r--r--pkgs/tools/security/sudo/default.nix4
-rw-r--r--pkgs/tools/security/thc-hydra/default.nix7
-rw-r--r--pkgs/tools/security/tor/tor-arm.nix2
-rw-r--r--pkgs/tools/security/trousers/default.nix2
-rw-r--r--pkgs/tools/system/facter/default.nix8
-rw-r--r--pkgs/tools/system/gptfdisk/default.nix2
-rw-r--r--pkgs/tools/system/monit/default.nix2
-rw-r--r--pkgs/tools/system/netdata/default.nix26
-rw-r--r--pkgs/tools/system/netdata/web_access.patch19
-rw-r--r--pkgs/tools/system/plan9port/builder.sh4
-rw-r--r--pkgs/tools/system/plan9port/default.nix4
-rw-r--r--pkgs/tools/system/storebrowse/default.nix6
-rw-r--r--pkgs/tools/system/syslog-ng/default.nix4
-rw-r--r--pkgs/tools/system/thermald/default.nix2
-rw-r--r--pkgs/tools/text/diffutils/default.nix6
-rw-r--r--pkgs/tools/text/gawk/default.nix24
-rw-r--r--pkgs/tools/text/gnugrep/default.nix10
-rw-r--r--pkgs/tools/text/gnused/default.nix4
-rw-r--r--pkgs/tools/text/groff/default.nix4
-rw-r--r--pkgs/tools/text/multitran/data/default.nix2
-rw-r--r--pkgs/tools/text/unrtf/default.nix2
-rw-r--r--pkgs/tools/text/xidel/default.nix2
-rw-r--r--pkgs/tools/typesetting/asciidoc/default.nix4
-rw-r--r--pkgs/tools/typesetting/djvu2pdf/default.nix2
-rw-r--r--pkgs/tools/typesetting/tex/dblatex/default.nix8
-rw-r--r--pkgs/tools/typesetting/tex/texlive-new/bin.nix3
-rw-r--r--pkgs/tools/typesetting/tex/texlive-new/default.nix2
-rw-r--r--pkgs/tools/typesetting/tex/texlive/aggregate.nix2
-rw-r--r--pkgs/tools/typesetting/tex/texlive/default.nix8
-rw-r--r--pkgs/tools/typesetting/xmlto/default.nix2
-rw-r--r--pkgs/tools/virtualization/aws/default.nix2
-rw-r--r--pkgs/tools/virtualization/ec2-ami-tools/default.nix2
160 files changed, 773 insertions, 353 deletions
diff --git a/pkgs/tools/X11/bumblebee/default.nix b/pkgs/tools/X11/bumblebee/default.nix
index 2206905aa3e4..d1f2318d6d45 100644
--- a/pkgs/tools/X11/bumblebee/default.nix
+++ b/pkgs/tools/X11/bumblebee/default.nix
@@ -43,7 +43,7 @@ let
 
   nvidiaLibs = lib.makeLibraryPath nvidia_x11s;
 
-  bbdPath = lib.makeSearchPath "bin" [ module_init_tools xorgserver ];
+  bbdPath = lib.makeBinPath [ module_init_tools xorgserver ];
   bbdLibs = lib.makeLibraryPath [ libX11 libXext ];
 
   xmodules = lib.concatStringsSep "," (map (x: "${x}/lib/xorg/modules") ([ xorgserver ] ++ lib.optional (!useNvidia) xf86videonouveau));
diff --git a/pkgs/tools/X11/xlaunch/default.nix b/pkgs/tools/X11/xlaunch/default.nix
index 06dfd28b7399..ccf998951a34 100644
--- a/pkgs/tools/X11/xlaunch/default.nix
+++ b/pkgs/tools/X11/xlaunch/default.nix
@@ -45,7 +45,7 @@ EOF
       else
         RESET_OPTION=\"-noreset\"
       fi;
-      XCMD=\"\$(egrep \"^Environment=\" /etc/systemd/system/display-manager.service | sed -e \"s/Environment=/ export /\" | sed -e '\\''s/#.*//'\\'' ; echo export _XARGS_=\\\$\\( grep xserver_arguments \\\$SLIM_CFGFILE \\| sed -e s/xserver_arguments// \\| sed -e s/:0/:\${_display}/ \\| sed -e s/vt7/vt\$((7+_display))/ \\) ; echo ${xorgserver}/bin/X \\\$_XARGS_ \$RESET_OPTION )\" 
+      XCMD=\"\$(egrep \"^Environment=\" /etc/systemd/system/display-manager.service | sed -e \"s/Environment=/ export /\" | sed -e '\\''s/#.*//'\\'' ; echo export _XARGS_=\\\$\\( grep xserver_arguments \\\$SLIM_CFGFILE \\| sed -e s/xserver_arguments// \\| sed -e s/:0/:\${_display}/ \\| sed -e s/vt7/vt\$((7+_display))/ \\) ; echo ${xorgserver.out}/bin/X \\\$_XARGS_ \$RESET_OPTION )\" 
       PRE_XCMD=\"\$(egrep \"^ExecStartPre=\" /etc/systemd/system/display-manager.service | sed -e \"\s/ExecStartPre=//\")\"
       echo \"\$PRE_XCMD\" 
       echo \"\$PRE_XCMD\" | bash
diff --git a/pkgs/tools/X11/xpra/default.nix b/pkgs/tools/X11/xpra/default.nix
index b0c79342d42a..ae869cfb1c4f 100644
--- a/pkgs/tools/X11/xpra/default.nix
+++ b/pkgs/tools/X11/xpra/default.nix
@@ -48,7 +48,7 @@ buildPythonApplication rec {
       --set XKB_BINDIR "${xkbcomp}/bin" \
       --set FONTCONFIG_FILE "${fontsConf}" \
       --prefix LD_LIBRARY_PATH : ${libfakeXinerama}/lib \
-      --prefix PATH : ${getopt}/bin:${xorgserver}/bin:${xauth}/bin:${which}/bin:${utillinux}/bin
+      --prefix PATH : ${getopt}/bin:${xorgserver.out}/bin:${xauth}/bin:${which}/bin:${utillinux}/bin
   '';
 
   preCheck = "exit 0";
@@ -57,7 +57,7 @@ buildPythonApplication rec {
   #postFixup = ''
   #  sed -i '2iexport XKB_BINDIR="${xkbcomp}/bin"' $out/bin/xpra
   #  sed -i '3iexport FONTCONFIG_FILE="${fontsConf}"' $out/bin/xpra
-  #  sed -i '4iexport PATH=${getopt}/bin:${xorgserver}/bin:${xauth}/bin:${which}/bin:${utillinux}/bin\${PATH:+:}\$PATH' $out/bin/xpra
+  #  sed -i '4iexport PATH=${getopt}/bin:${xorgserver.out}/bin:${xauth}/bin:${which}/bin:${utillinux}/bin\${PATH:+:}\$PATH' $out/bin/xpra
   #'';
 
 
diff --git a/pkgs/tools/X11/xpra/gtk3.nix b/pkgs/tools/X11/xpra/gtk3.nix
index 7fd24a510d5d..f30c0751c3f2 100644
--- a/pkgs/tools/X11/xpra/gtk3.nix
+++ b/pkgs/tools/X11/xpra/gtk3.nix
@@ -54,7 +54,7 @@ buildPythonApplication rec {
       --set XKB_BINDIR "${xkbcomp}/bin" \
       --set FONTCONFIG_FILE "${fontsConf}" \
       --prefix LD_LIBRARY_PATH : ${libfakeXinerama}/lib \
-      --prefix PATH : ${getopt}/bin:${xorgserver}/bin:${xauth}/bin:${which}/bin:${utillinux}/bin
+      --prefix PATH : ${getopt}/bin:${xorgserver.out}/bin:${xauth}/bin:${which}/bin:${utillinux}/bin
   '';
 
   preCheck = "exit 0";
@@ -64,7 +64,7 @@ buildPythonApplication rec {
   #postFixup = ''
   #  sed -i '2iexport XKB_BINDIR="${xkbcomp}/bin"' $out/bin/xpra
   #  sed -i '3iexport FONTCONFIG_FILE="${fontsConf}"' $out/bin/xpra
-  #  sed -i '4iexport PATH=${getopt}/bin:${xorgserver}/bin:${xauth}/bin:${which}/bin:${utillinux}/bin\${PATH:+:}\$PATH' $out/bin/xpra
+  #  sed -i '4iexport PATH=${getopt}/bin:${xorgserver.out}/bin:${xauth}/bin:${which}/bin:${utillinux}/bin\${PATH:+:}\$PATH' $out/bin/xpra
   #'';
 
 
diff --git a/pkgs/tools/admin/daemontools/default.nix b/pkgs/tools/admin/daemontools/default.nix
new file mode 100644
index 000000000000..08f21dc62622
--- /dev/null
+++ b/pkgs/tools/admin/daemontools/default.nix
@@ -0,0 +1,42 @@
+{ fetchurl, bash, glibc, stdenv }:
+
+stdenv.mkDerivation rec {
+  name = "daemontools-0.76";
+  
+  src = fetchurl {
+    url = "https://cr.yp.to/daemontools/${name}.tar.gz";
+    sha256 = "07scvw88faxkscxi91031pjkpccql6wspk4yrlnsbrrb5c0kamd5";
+  };
+  
+  configurePhase = ''
+    cd ${name}
+    
+    sed -ie '1 s_$_ -include ${glibc}/include/errno.h_' src/conf-cc
+    
+    substituteInPlace src/Makefile \
+      --replace '/bin/sh' '${bash}/bin/bash -oxtrace'
+    
+    sed -ie "s_^PATH=.*_PATH=$src/${name}/compile:''${PATH}_" src/rts.tests
+    
+    cat ${glibc}/include/errno.h
+  '';
+  
+  buildPhase = ''
+    package/compile
+  '';
+  
+  installPhase = ''
+    for cmd in $(cat package/commands); do
+      install -Dm755 "command/$cmd" "$out/bin/$cmd"
+    done
+  '';
+  
+  meta = {
+    license = stdenv.lib.licenses.publicDomain;
+    homepage = https://cr.yp.to/daemontools.html;
+    description = "A collection of tools for managing UNIX services.";
+    
+    maintainers = with stdenv.lib.maintainers; [ kevincox ];
+    platforms = stdenv.lib.platforms.unix;
+  };
+}
diff --git a/pkgs/tools/admin/gtk-vnc/default.nix b/pkgs/tools/admin/gtk-vnc/default.nix
index fddb9505c984..657d08026e4a 100644
--- a/pkgs/tools/admin/gtk-vnc/default.nix
+++ b/pkgs/tools/admin/gtk-vnc/default.nix
@@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
 
   # Fix broken .la files
   preFixup = ''
-    sed 's,-lgpg-error,-L${libgpgerror}/lib -lgpg-error,' -i $out/lib/*.la
+    sed 's,-lgpg-error,-L${libgpgerror.out}/lib -lgpg-error,' -i $out/lib/*.la
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/tools/admin/tigervnc/default.nix b/pkgs/tools/admin/tigervnc/default.nix
index d6156ab49099..cac1b9b3c92c 100644
--- a/pkgs/tools/admin/tigervnc/default.nix
+++ b/pkgs/tools/admin/tigervnc/default.nix
@@ -1,7 +1,7 @@
 { stdenv, fetchgit, xorg
 , autoconf, automake, cvs, libtool, nasm, pixman, xkeyboard_config
 , fontDirectories, libgcrypt, gnutls, pam, flex, bison, gettext
-, cmake, libjpeg_turbo, fltk
+, cmake, libjpeg_turbo, fltk, nettle, libiconv, libtasn1
 }:
 
 with stdenv.lib;
@@ -69,12 +69,12 @@ stdenv.mkDerivation rec {
   buildInputs =
     [ xorg.libX11 xorg.libXext gettext xorg.libICE xorg.libXtst xorg.libXi xorg.libSM xorg.libXft
       nasm libgcrypt gnutls pam pixman libjpeg_turbo fltk xorg.xineramaproto
-      xorg.libXinerama xorg.libXcursor
+      xorg.libXinerama xorg.libXcursor nettle libiconv libtasn1
     ];
 
   nativeBuildInputs =
     [ autoconf automake cvs xorg.utilmacros xorg.fontutil libtool flex bison
-      cmake
+      cmake gettext
     ]
       ++ xorg.xorgserver.nativeBuildInputs;
 
@@ -91,4 +91,4 @@ stdenv.mkDerivation rec {
     # Prevent a store collision.
     priority = 4;
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/tools/archivers/gnutar/default.nix b/pkgs/tools/archivers/gnutar/default.nix
index 71b43bf2de9a..36d3ebd9816f 100644
--- a/pkgs/tools/archivers/gnutar/default.nix
+++ b/pkgs/tools/archivers/gnutar/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, autoreconfHook }:
+{ stdenv, fetchurl, autoreconfHook, acl }:
 
 stdenv.mkDerivation rec {
   name = "gnutar-${version}";
@@ -24,7 +24,11 @@ stdenv.mkDerivation rec {
     substituteInPlace src/system.c --replace '_(' 'N_('
   '';
 
-  buildInputs = stdenv.lib.optional stdenv.isDarwin autoreconfHook;
+  outputs = [ "out" "info" ];
+
+  buildInputs = [ ]
+    ++ stdenv.lib.optional stdenv.isLinux acl
+    ++ stdenv.lib.optional stdenv.isDarwin autoreconfHook;
 
   # May have some issues with root compilation because the bootstrap tool
   # cannot be used as a login shell for now.
diff --git a/pkgs/tools/archivers/p7zip/default.nix b/pkgs/tools/archivers/p7zip/default.nix
index 6769540d8dfb..a0f3bcb0ebb9 100644
--- a/pkgs/tools/archivers/p7zip/default.nix
+++ b/pkgs/tools/archivers/p7zip/default.nix
@@ -1,14 +1,14 @@
 { stdenv, fetchurl }:
 
 let
-  version = "9.38";
+  version = "15.14.1";
 in
 stdenv.mkDerivation rec {
   name = "p7zip-${version}";
 
   src = fetchurl {
     url = "mirror://sourceforge/p7zip/p7zip_${version}_src_all.tar.bz2";
-    sha256 = "0mxribb9a3lz3bifz6002hg7vyy8h9piinypian533hw8qvswfx7";
+    sha256 = "1m15iwglyjpiw82m7dbpykz8s55imch34w20w09l34116vdb97b9";
   };
 
   preConfigure = ''
diff --git a/pkgs/tools/archivers/unrar/default.nix b/pkgs/tools/archivers/unrar/default.nix
index 768c7afd7eb7..f2fdc71dc86c 100644
--- a/pkgs/tools/archivers/unrar/default.nix
+++ b/pkgs/tools/archivers/unrar/default.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
   '';
 
   installPhase = ''
-    installBin unrar
+    install -Dt "$out/bin" unrar
 
     mkdir -p $out/share/doc/unrar
     cp acknow.txt license.txt \
diff --git a/pkgs/tools/archivers/unshield/default.nix b/pkgs/tools/archivers/unshield/default.nix
index 251a62ee4894..fae72e5fcd84 100644
--- a/pkgs/tools/archivers/unshield/default.nix
+++ b/pkgs/tools/archivers/unshield/default.nix
@@ -1,15 +1,31 @@
-{stdenv, fetchsvn, zlib, autoconf, automake, libtool}:
-
-stdenv.mkDerivation {
-  name = "unshield-0.7pre3955";
-  src = fetchsvn {
-    url = https://synce.svn.sourceforge.net/svnroot/synce/trunk/unshield;
-    rev = 3955;
-    sha256 = "0rpk7sb7b0v19qn4jn0iih505l4zkpns3mrbmm88p61xiz06zg7a";
+{ stdenv, fetchFromGitHub, fetchpatch, cmake, zlib, openssl }:
+
+stdenv.mkDerivation rec {
+  name = "unshield-${version}";
+  version = "1.3";
+
+  src = fetchFromGitHub {
+    owner = "twogood";
+    repo = "unshield";
+    rev = version;
+    sha256 = "0cg84jr0ymvi8bmm3lx5hshhgm33vnr1rma1mfyqkc065c7gi9ja";
+  };
+
+  patches = [
+    # Fix build in separate directory
+    (fetchpatch {
+      url = "https://github.com/twogood/unshield/commit/07ce8d82f0f60b9048265410fa8063298ab520c4.patch";
+      sha256 = "160pbk2r98lv3vd0qxsxm6647qn5mddj37jzfmccdja4dpxhxz2z";
+    })
+  ];
+
+  nativeBuildInputs = [ cmake ];
+  buildInputs = [ zlib openssl ];
+
+  meta = with stdenv.lib; {
+    description = "Tool and library to extract CAB files from InstallShield installers";
+    homepage = https://github.com/twogood/unshield;
+    license = licenses.mit;
+    platforms = platforms.linux;
   };
-  configureFlags = "--with-zlib=${zlib}";
-  buildInputs = [autoconf automake libtool];
-  preConfigure = ''
-    ./bootstrap
-  '';
 }
diff --git a/pkgs/tools/archivers/zpaq/default.nix b/pkgs/tools/archivers/zpaq/default.nix
index ed0cd8086341..ba0a174ed0a8 100644
--- a/pkgs/tools/archivers/zpaq/default.nix
+++ b/pkgs/tools/archivers/zpaq/default.nix
@@ -3,11 +3,11 @@ let
   s = # Generated upstream information
   rec {
     baseName="zpaq";
-    version="708";
+    version="711";
     name="${baseName}-${version}";
-    hash="15qvsr7mmb77n1gfyr2h1mkql6m8a313z2f1j9qv50qiivw2v4i6";
-    url="http://mattmahoney.net/dc/zpaq708.zip";
-    sha256="15qvsr7mmb77n1gfyr2h1mkql6m8a313z2f1j9qv50qiivw2v4i6";
+    hash="0kva9xn3rhm2xpbbq3yrx3c9y150fw434ayd82fzhr24nsjjaxsf";
+    url="http://mattmahoney.net/dc/zpaq711.zip";
+    sha256="0kva9xn3rhm2xpbbq3yrx3c9y150fw434ayd82fzhr24nsjjaxsf";
   };
 in
 stdenv.mkDerivation {
diff --git a/pkgs/tools/archivers/zpaq/zpaqd.nix b/pkgs/tools/archivers/zpaq/zpaqd.nix
index 6a7891d2ebe1..3268135b57b6 100644
--- a/pkgs/tools/archivers/zpaq/zpaqd.nix
+++ b/pkgs/tools/archivers/zpaq/zpaqd.nix
@@ -3,11 +3,11 @@ let
   s = # Generated upstream information
   rec {
     baseName="zpaqd";
-    version="633";
+    version="707";
     name="${baseName}-${version}";
-    hash="00zgc4mcmsd3d4afgzmrp6ymcyy8gb9kap815d5a3f9zhhzkz4dx";
-    url="http://mattmahoney.net/dc/zpaqd633.zip";
-    sha256="00zgc4mcmsd3d4afgzmrp6ymcyy8gb9kap815d5a3f9zhhzkz4dx";
+    hash="0012jzs2gk232shgx60323jd3g1i5ab5sjydynz2d1k3dkjxs688";
+    url="http://mattmahoney.net/dc/zpaqd707.zip";
+    sha256="0012jzs2gk232shgx60323jd3g1i5ab5sjydynz2d1k3dkjxs688";
   };
   isUnix = with stdenv; isLinux || isGNU || isDarwin || isFreeBSD || isOpenBSD;
   isx86 = stdenv.isi686 || stdenv.isx86_64;
diff --git a/pkgs/tools/audio/beets/default.nix b/pkgs/tools/audio/beets/default.nix
index 4532d6424116..0079270e29fa 100644
--- a/pkgs/tools/audio/beets/default.nix
+++ b/pkgs/tools/audio/beets/default.nix
@@ -128,7 +128,7 @@ in buildPythonApplication rec {
     }' beets/ui/commands.py
   '' + optionalString enableBadfiles ''
     sed -i -e '/self\.run_command(\[/ {
-      s,"flac","${flac}/bin/flac",
+      s,"flac","${flac.bin}/bin/flac",
       s,"mp3val","${mp3val}/bin/mp3val",
     }' beetsplug/badfiles.py
   '' + optionalString enableReplaygain ''
diff --git a/pkgs/tools/audio/qastools/default.nix b/pkgs/tools/audio/qastools/default.nix
index 920f6913d090..3743b38a2103 100644
--- a/pkgs/tools/audio/qastools/default.nix
+++ b/pkgs/tools/audio/qastools/default.nix
@@ -18,7 +18,7 @@ stdenv.mkDerivation {
 
   cmakeFlags = [
     "-DCMAKE_INSALL_PREFIX=$out"
-    "-DALSA_INCLUDE=${alsaLib}/include/alsa/version.h"
+    "-DALSA_INCLUDE=${alsaLib.dev}/include/alsa/version.h"
   ];
 
   meta = with stdenv.lib; {
diff --git a/pkgs/tools/backup/borg/default.nix b/pkgs/tools/backup/borg/default.nix
index b46ea186dee3..ada4ef29c84e 100644
--- a/pkgs/tools/backup/borg/default.nix
+++ b/pkgs/tools/backup/borg/default.nix
@@ -2,12 +2,12 @@
 
 python3Packages.buildPythonApplication rec {
   name = "borgbackup-${version}";
-  version = "1.0.0";
+  version = "1.0.2";
   namePrefix = "";
 
   src = fetchurl {
     url = "https://pypi.python.org/packages/source/b/borgbackup/borgbackup-${version}.tar.gz";
-    sha256 = "0wa6cvqs3rni5nwrgagigchcly8a53rxk56z0zn8iaii2cqrw2sh";
+    sha256 = "1myz10pwxnac9z59gw1w3xjhz6ghx03vngpl97ca527pj0r39shi";
   };
 
   nativeBuildInputs = with python3Packages; [
diff --git a/pkgs/tools/backup/partimage/default.nix b/pkgs/tools/backup/partimage/default.nix
index 18e8bb400253..37d99a115f8b 100644
--- a/pkgs/tools/backup/partimage/default.nix
+++ b/pkgs/tools/backup/partimage/default.nix
@@ -21,7 +21,7 @@ stdenv.mkDerivation {
       name = "no-SSLv2.patch";
       url = "https://projects.archlinux.org/svntogit/community.git/plain/trunk"
         + "/use-SSLv3-by-default.patch?h=packages/partimage&id=7e95d1c6614e";
-      sha256 = "1zfixa6g1nb1hqfzn2wvyvxsr38gm7908zfml2iaqnwy6iz6jd8v";
+      sha256 = "17dfqwvwnkinz8vs0l3bjjbmfx3a7y8nv3wn67gjsqpmggcpdnd6";
     })
   ];
 
diff --git a/pkgs/tools/backup/store-backup/default.nix b/pkgs/tools/backup/store-backup/default.nix
index 93a7f9e1e39f..9329cd23e83f 100644
--- a/pkgs/tools/backup/store-backup/default.nix
+++ b/pkgs/tools/backup/store-backup/default.nix
@@ -41,7 +41,7 @@ stdenv.mkDerivation rec {
     for p in $out/bin/*
       do wrapProgram "$p" \
       --prefix PERL5LIB ":" "${perlPackages.DBFile}/lib/perl5/site_perl" \
-      --prefix PATH ":" "${which}/bin:${bzip2}/bin"
+      --prefix PATH ":" "${which}/bin:${bzip2.bin}/bin"
     done
 
     patchShebangs $out
diff --git a/pkgs/tools/bluetooth/obex-data-server/default.nix b/pkgs/tools/bluetooth/obex-data-server/default.nix
index 53e854c34ebc..15167ee57b13 100644
--- a/pkgs/tools/bluetooth/obex-data-server/default.nix
+++ b/pkgs/tools/bluetooth/obex-data-server/default.nix
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
 
   preConfigure = ''
   addToSearchPath PKG_CONFIG_PATH ${openobex}/lib64/pkgconfig
-  export PKG_CONFIG_PATH="${dbus_libs}/lib/pkgconfig:$PKG_CONFIG_PATH"
+  export PKG_CONFIG_PATH="${dbus_libs.dev}/lib/pkgconfig:$PKG_CONFIG_PATH"
   '';
 
   meta = {
diff --git a/pkgs/tools/bluetooth/obexd/default.nix b/pkgs/tools/bluetooth/obexd/default.nix
index f900a81caa0e..a3486569b518 100644
--- a/pkgs/tools/bluetooth/obexd/default.nix
+++ b/pkgs/tools/bluetooth/obexd/default.nix
@@ -8,7 +8,7 @@ stdenv.mkDerivation rec {
     sha256 = "1i20dnibvnq9lnkkhajr5xx3kxlwf9q5c4jm19kyb0q1klzgzlb8";
   };
 
-  buildInputs = [ glib dbus.libs openobex bluez libical ];
+  buildInputs = [ glib dbus openobex bluez libical ];
 
   nativeBuildInputs = [ pkgconfig ];
 
diff --git a/pkgs/tools/cd-dvd/bashburn/default.nix b/pkgs/tools/cd-dvd/bashburn/default.nix
index 5d4ed2414c79..1a14aae62636 100644
--- a/pkgs/tools/cd-dvd/bashburn/default.nix
+++ b/pkgs/tools/cd-dvd/bashburn/default.nix
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
       BB_MP3DEC=${mpg123}/bin/mpg123 \
       BB_OGGENC=${vorbis-tools}/bin/oggenc \
       BB_OGGDEC=${vorbis-tools}/bin/oggdec \
-      BB_FLACCMD=${flac}/bin/flac \
+      BB_FLACCMD=${flac.bin}/bin/flac \
       BB_EJECT=${utillinux}/bin/eject \
       BB_NORMCMD=${normalize}/bin/normalize \
     ; do
diff --git a/pkgs/tools/cd-dvd/brasero/default.nix b/pkgs/tools/cd-dvd/brasero/default.nix
index 3185242f5ce4..91a5440df3ec 100644
--- a/pkgs/tools/cd-dvd/brasero/default.nix
+++ b/pkgs/tools/cd-dvd/brasero/default.nix
@@ -5,7 +5,7 @@
 let
   major = "3.12";
   minor = "0";
-  binpath = stdenv.lib.makeSearchPath "bin" [ dvdauthor cdrdao dvdplusrwtools cdrtools ];
+  binpath = stdenv.lib.makeBinPath [ dvdauthor cdrdao dvdplusrwtools cdrtools ];
 
 in stdenv.mkDerivation rec {
   version = "${major}.${minor}";
diff --git a/pkgs/tools/compression/bzip2/default.nix b/pkgs/tools/compression/bzip2/default.nix
index 66ff5612dd4a..a165ab2b157b 100644
--- a/pkgs/tools/compression/bzip2/default.nix
+++ b/pkgs/tools/compression/bzip2/default.nix
@@ -41,6 +41,8 @@ in stdenv.mkDerivation {
     postInstall = "";
   };
 
+  outputs = [ "dev" "bin" "static" ] ++ stdenv.lib.optional sharedLibrary "out";
+
   preBuild = stdenv.lib.optionalString sharedLibrary ''
     make -f ${if stdenv.isDarwin then "Makefile-libbz2_dylib" else "Makefile-libbz2_so"}
   '';
@@ -61,12 +63,15 @@ in stdenv.mkDerivation {
     )
   '');
 
-  installFlags = [ "PREFIX=$(out)" ];
+  installFlags = [ "PREFIX=$(bin)" ];
 
   postInstall = ''
-    rm $out/bin/bunzip2* $out/bin/bzcat*
-    ln -s bzip2 $out/bin/bunzip2
-    ln -s bzip2 $out/bin/bzcat
+    rm $bin/bin/bunzip2* $bin/bin/bzcat*
+    ln -s bzip2 $bin/bin/bunzip2
+    ln -s bzip2 $bin/bin/bzcat
+
+    mkdir "$static"
+    mv "$bin/lib" "$static/"
   '';
 
   postPatch = ''
diff --git a/pkgs/tools/compression/gzip/default.nix b/pkgs/tools/compression/gzip/default.nix
index 6772e21cb0cb..009246b69a08 100644
--- a/pkgs/tools/compression/gzip/default.nix
+++ b/pkgs/tools/compression/gzip/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl }:
+{ stdenv, fetchurl, xz }:
 
 stdenv.mkDerivation rec {
   name = "gzip-1.6";
@@ -8,8 +8,12 @@ stdenv.mkDerivation rec {
     sha256 = "0ivqnbhiwd12q8hp3qw6rpsrpw2jg5y2mymk8cn22lsx90dfvprp";
   };
 
+  outputs = [ "out" "man" "info" ];
+
   enableParallelBuilding = true;
 
+  buildInputs = [ xz.bin ];
+
   preConfigure = if stdenv.isCygwin then ''
     sed -i lib/fpending.h -e 's,include <stdio_ext.h>,,'
   '' else null;
diff --git a/pkgs/tools/compression/kzipmix/default.nix b/pkgs/tools/compression/kzipmix/default.nix
index f768189040b5..6fcff7b29280 100644
--- a/pkgs/tools/compression/kzipmix/default.nix
+++ b/pkgs/tools/compression/kzipmix/default.nix
@@ -12,8 +12,8 @@ stdenv.mkDerivation {
     mkdir -p $out/bin
     cp kzip zipmix $out/bin
     
-    patchelf --set-interpreter ${stdenv.glibc}/lib/ld-linux.so.2 $out/bin/kzip
-    patchelf --set-interpreter ${stdenv.glibc}/lib/ld-linux.so.2 $out/bin/zipmix
+    patchelf --set-interpreter ${stdenv.glibc.out}/lib/ld-linux.so.2 $out/bin/kzip
+    patchelf --set-interpreter ${stdenv.glibc.out}/lib/ld-linux.so.2 $out/bin/zipmix
   '';
 
   meta = {
diff --git a/pkgs/tools/compression/pbzip2/default.nix b/pkgs/tools/compression/pbzip2/default.nix
index 352b4db6a341..fb3da5e48d68 100644
--- a/pkgs/tools/compression/pbzip2/default.nix
+++ b/pkgs/tools/compression/pbzip2/default.nix
@@ -1,14 +1,14 @@
 { stdenv, fetchurl, bzip2 }:
 
 let major = "1.1";
-    version = "${major}.12";
+    version = "${major}.13";
 in
 stdenv.mkDerivation rec {
   name = "pbzip2-${version}";
 
   src = fetchurl {
     url = "https://launchpad.net/pbzip2/${major}/${version}/+download/${name}.tar.gz";
-    sha256 = "1vk6065dv3a47p86vmp8hv3n1ygd9hraz0gq89gvzlx7lmcb6fsp";
+    sha256 = "1rnvgcdixjzbrmcr1nv9b6ccrjfrhryaj7jwz28yxxv6lam3xlcg";
   };
 
   buildInputs = [ bzip2 ];
diff --git a/pkgs/tools/compression/pxz/default.nix b/pkgs/tools/compression/pxz/default.nix
index 07c3e205a982..f6424b5e8803 100644
--- a/pkgs/tools/compression/pxz/default.nix
+++ b/pkgs/tools/compression/pxz/default.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation {
     gcc -o pxz pxz.c -llzma \
         -fopenmp -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -O2 \
         -DPXZ_BUILD_DATE=\"nixpkgs\" \
-        -DXZ_BINARY=\"${xz}/bin/xz\" \
+        -DXZ_BINARY=\"${xz.bin}/bin/xz\" \
         -DPXZ_VERSION=\"${version}\"
   '';
 
diff --git a/pkgs/tools/compression/xz/default.nix b/pkgs/tools/compression/xz/default.nix
index 986f940b9069..64571e24d9a3 100644
--- a/pkgs/tools/compression/xz/default.nix
+++ b/pkgs/tools/compression/xz/default.nix
@@ -8,6 +8,8 @@ stdenv.mkDerivation rec {
     sha256 = "1da071wyx921pyx3zkxlnbpp14p6km98pnp66mg1arwi9dxgbxbg";
   };
 
+  outputs = [ "dev" "out" "bin" "man" "doc" ];
+
   doCheck = true;
 
   # In stdenv-linux, prevent a dependency on bootstrap-tools.
diff --git a/pkgs/tools/compression/zstd/default.nix b/pkgs/tools/compression/zstd/default.nix
index 0d5ad10efcf9..45c91d46a2e8 100644
--- a/pkgs/tools/compression/zstd/default.nix
+++ b/pkgs/tools/compression/zstd/default.nix
@@ -3,10 +3,10 @@
 
 stdenv.mkDerivation rec {
   name = "zstd-${version}";
-  version = "0.5.1";
+  version = "0.6.0";
 
   src = fetchFromGitHub {
-    sha256 = "18mfrq5fqd7gkkqrgc32rlb98vw45rq1vsbrg44bprg3mv6ca3ls";
+    sha256 = "1r1l4pak289bjnkak2yrw65yhxfvqcmdsh10c1k0hi0wm7k3qcbw";
     rev = "v${version}";
     repo = "zstd";
     owner = "Cyan4973";
diff --git a/pkgs/tools/filesystems/e2fsprogs/default.nix b/pkgs/tools/filesystems/e2fsprogs/default.nix
index a53e93960aef..c091158bff63 100644
--- a/pkgs/tools/filesystems/e2fsprogs/default.nix
+++ b/pkgs/tools/filesystems/e2fsprogs/default.nix
@@ -8,7 +8,11 @@ stdenv.mkDerivation rec {
     sha256 = "1m72lk90b5i3h9qnmss6aygrzyn8x2avy3hyaq2fb0jglkrkz6ar";
   };
 
-  buildInputs = [ pkgconfig libuuid ];
+  outputs = [ "bin" "out" "man" ];
+  outputDev = "bin"; # just for *.pc
+
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ libuuid ];
 
   crossAttrs = {
     preConfigure = ''
@@ -16,14 +20,19 @@ stdenv.mkDerivation rec {
     '';
   };
 
-  # libuuid, libblkid, uuidd and fsck are in util-linux-ng (the "libuuid" dependency).
-  configureFlags = "--enable-elf-shlibs --disable-libuuid --disable-libblkid --disable-uuidd --disable-fsck --enable-symlink-install";
-
-  enableParallelBuilding = true;
+  configureFlags = [
+    "--enable-elf-shlibs" "--enable-symlink-install" "--enable-relative-symlinks"
+    # libuuid, libblkid, uuidd and fsck are in util-linux-ng (the "libuuid" dependency).
+    "--disable-libuuid" "--disable-uuidd" "--disable-libblkid" "--disable-fsck"
+  ];
 
-  preInstall = "installFlagsArray=('LN=ln -s')";
+  # hacky way to make it install *.pc
+  postInstall = ''
+    make install-libs
+    rm "$out"/lib/*.a
+  '';
 
-  postInstall = "make install-libs";
+  enableParallelBuilding = true;
 
   meta = {
     homepage = http://e2fsprogs.sourceforge.net/;
diff --git a/pkgs/tools/filesystems/glusterfs/default.nix b/pkgs/tools/filesystems/glusterfs/default.nix
index 7fd56e7dd7f8..94bfb5fb4988 100644
--- a/pkgs/tools/filesystems/glusterfs/default.nix
+++ b/pkgs/tools/filesystems/glusterfs/default.nix
@@ -6,11 +6,11 @@ let
   s = # Generated upstream information 
   rec {
     baseName="glusterfs";
-    version="3.7.8";
+    version="3.7.10";
     name="${baseName}-${version}";
-    hash="0r5l8ax1gavhl06k30lg88xs8fj7w6iyd69s5qq5fw1jvavkx709";
-    url="http://download.gluster.org/pub/gluster/glusterfs/3.7/3.7.8/glusterfs-3.7.8.tar.gz";
-    sha256="0r5l8ax1gavhl06k30lg88xs8fj7w6iyd69s5qq5fw1jvavkx709";
+    hash="0shqvhqlmiywrr3vy8yazc8xcj6b04ci2zjgyca2vy7wa60lzfgg";
+    url="http://download.gluster.org/pub/gluster/glusterfs/3.7/3.7.10/glusterfs-3.7.10.tar.gz";
+    sha256="0shqvhqlmiywrr3vy8yazc8xcj6b04ci2zjgyca2vy7wa60lzfgg";
   };
   buildInputs = [
     fuse bison flex_2_5_35 openssl python ncurses readline
diff --git a/pkgs/tools/filesystems/nixpart/0.4/blivet.nix b/pkgs/tools/filesystems/nixpart/0.4/blivet.nix
index d3b3b716ffa0..7a8501b7a891 100644
--- a/pkgs/tools/filesystems/nixpart/0.4/blivet.nix
+++ b/pkgs/tools/filesystems/nixpart/0.4/blivet.nix
@@ -1,9 +1,9 @@
 { stdenv, fetchurl, buildPythonApplication, pykickstart, pyparted, pyblock
 , libselinux, cryptsetup, multipath_tools, lsof, utillinux
-, useNixUdev ? true, udev ? null
+, useNixUdev ? true, libudev ? null
 }:
 
-assert useNixUdev -> udev != null;
+assert useNixUdev -> libudev != null;
 
 buildPythonApplication rec {
   name = "blivet-${version}";
@@ -21,21 +21,21 @@ buildPythonApplication rec {
     sed -i -e 's|"multipath"|"${multipath_tools}/sbin/multipath"|' \
       blivet/devicelibs/mpath.py blivet/devices.py
     sed -i -e '/"wipefs"/ {
-      s|wipefs|${utillinux}/sbin/wipefs|
+      s|wipefs|${utillinux.bin}/sbin/wipefs|
       s/-f/--force/
     }' blivet/formats/__init__.py
     sed -i -e 's|"lsof"|"${lsof}/bin/lsof"|' blivet/formats/fs.py
-    sed -i -r -e 's|"(u?mount)"|"${utillinux}/bin/\1"|' blivet/util.py
+    sed -i -r -e 's|"(u?mount)"|"${utillinux.bin}/bin/\1"|' blivet/util.py
     sed -i '/pvscan/s/, *"--cache"//' blivet/devicelibs/lvm.py
   '' + stdenv.lib.optionalString useNixUdev ''
     sed -i -e '/find_library/,/find_library/ {
-      c libudev = "${udev}/lib/libudev.so.1"
+      c libudev = "${libudev.out}/lib/libudev.so.1"
     }' blivet/pyudev.py
   '';
 
   propagatedBuildInputs = [
     pykickstart pyparted pyblock libselinux cryptsetup
-  ] ++ stdenv.lib.optional useNixUdev udev;
+  ] ++ stdenv.lib.optional useNixUdev libudev;
 
   # tests are currently _heavily_ broken upstream
   doCheck = false;
diff --git a/pkgs/tools/filesystems/nixpart/0.4/default.nix b/pkgs/tools/filesystems/nixpart/0.4/default.nix
index 1d9838168952..bdf0a5c4323d 100644
--- a/pkgs/tools/filesystems/nixpart/0.4/default.nix
+++ b/pkgs/tools/filesystems/nixpart/0.4/default.nix
@@ -12,7 +12,7 @@ let
     inherit stdenv fetchurl buildPythonApplication;
     inherit pykickstart pyparted pyblock cryptsetup multipath_tools;
     inherit useNixUdev;
-    inherit (pkgs) lsof utillinux udev;
+    inherit (pkgs) lsof utillinux libudev;
     libselinux = pkgs.libselinux.override { enablePython = true; };
   };
 
@@ -29,12 +29,12 @@ let
 
   lvm2 = import ./lvm2.nix {
     inherit stdenv fetchurl;
-    inherit (pkgs) pkgconfig utillinux udev coreutils;
+    inherit (pkgs) pkgconfig utillinux libudev systemd coreutils;
   };
 
   multipath_tools = import ./multipath-tools.nix {
     inherit stdenv fetchurl lvm2;
-    inherit (pkgs) readline udev libaio gzip;
+    inherit (pkgs) readline systemd libaio gzip;
   };
 
   parted = import ./parted.nix {
diff --git a/pkgs/tools/filesystems/nixpart/0.4/lvm2.nix b/pkgs/tools/filesystems/nixpart/0.4/lvm2.nix
index 9e2b0c900794..b92c40ba99e6 100644
--- a/pkgs/tools/filesystems/nixpart/0.4/lvm2.nix
+++ b/pkgs/tools/filesystems/nixpart/0.4/lvm2.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, pkgconfig, udev, utillinux, coreutils }:
+{ stdenv, fetchurl, pkgconfig, libudev, systemd, utillinux, coreutils }:
 
 let
   v = "2.02.106";
@@ -15,7 +15,7 @@ stdenv.mkDerivation {
   configureFlags =
     "--disable-readline --enable-udev_rules --enable-udev_sync --enable-pkgconfig --enable-applib";
 
-  buildInputs = [ pkgconfig udev ];
+  buildInputs = [ pkgconfig libudev ];
 
   preConfigure =
     ''
@@ -23,7 +23,7 @@ stdenv.mkDerivation {
         --replace /usr/bin/tr ${coreutils}/bin/tr
       substituteInPlace scripts/lvm2_activation_generator_systemd_red_hat.c \
         --replace /usr/sbin/lvm $out/sbin/lvm \
-        --replace /usr/bin/udevadm ${udev}/bin/udevadm
+        --replace /usr/bin/udevadm ${systemd.udev.bin}/bin/udevadm
 
       sed -i /DEFAULT_SYS_DIR/d Makefile.in
       sed -i /DEFAULT_PROFILE_DIR/d conf/Makefile.in
@@ -42,7 +42,7 @@ stdenv.mkDerivation {
   postInstall =
     ''
       substituteInPlace $out/lib/udev/rules.d/13-dm-disk.rules \
-        --replace $out/sbin/blkid ${utillinux}/sbin/blkid
+        --replace $out/sbin/blkid ${utillinux.bin}/sbin/blkid
 
       # Systemd stuff
       mkdir -p $out/etc/systemd/system $out/lib/systemd/system-generators
diff --git a/pkgs/tools/filesystems/nixpart/0.4/multipath-tools.nix b/pkgs/tools/filesystems/nixpart/0.4/multipath-tools.nix
index 90722d74ace1..b78605504bf8 100644
--- a/pkgs/tools/filesystems/nixpart/0.4/multipath-tools.nix
+++ b/pkgs/tools/filesystems/nixpart/0.4/multipath-tools.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, lvm2, libaio, gzip, readline, udev }:
+{ stdenv, fetchurl, lvm2, libaio, gzip, readline, systemd }:
 
 stdenv.mkDerivation rec {
   name = "multipath-tools-0.4.9";
@@ -22,8 +22,8 @@ stdenv.mkDerivation rec {
       substituteInPlace kpartx/kpartx.rules --replace /sbin/kpartx $out/sbin/kpartx
       substituteInPlace kpartx/kpartx_id --replace /sbin/dmsetup ${lvm2}/sbin/dmsetup
 
-      substituteInPlace libmultipath/defaults.h --replace /lib/udev/scsi_id ${udev}/lib/udev/scsi_id
-      substituteInPlace libmultipath/hwtable.c --replace /lib/udev/scsi_id ${udev}/lib/udev/scsi_id
+      substituteInPlace libmultipath/defaults.h --replace /lib/udev/scsi_id ${systemd.udev.lib}/lib/udev/scsi_id
+      substituteInPlace libmultipath/hwtable.c --replace /lib/udev/scsi_id ${systemd.udev.lib}/lib/udev/scsi_id
     '';
 
   meta = {
diff --git a/pkgs/tools/filesystems/svnfs/default.nix b/pkgs/tools/filesystems/svnfs/default.nix
index fba066d0f4cb..333714182177 100644
--- a/pkgs/tools/filesystems/svnfs/default.nix
+++ b/pkgs/tools/filesystems/svnfs/default.nix
@@ -12,10 +12,10 @@ stdenv.mkDerivation {
 
   # why is this required?
   preConfigure=''
-    export LD_LIBRARY_PATH=${subversion}/lib
+    export LD_LIBRARY_PATH=${subversion.out}/lib
   '';
 
-  NIX_CFLAGS_COMPILE="-I ${subversion}/include/subversion-1";
+  NIX_CFLAGS_COMPILE="-I ${subversion.dev}/include/subversion-1";
   NIX_LDFLAGS="-lsvn_client-1";
 
   meta = {
diff --git a/pkgs/tools/filesystems/xfsprogs/default.nix b/pkgs/tools/filesystems/xfsprogs/default.nix
index de61809a1aea..e30f67af3e95 100644
--- a/pkgs/tools/filesystems/xfsprogs/default.nix
+++ b/pkgs/tools/filesystems/xfsprogs/default.nix
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ gettext libuuid readline ];
 
-  outputs = [ "out" "lib" ];
+  outputs = [ "dev" "out" "bin" ]; # TODO: review xfs
 
   preConfigure = ''
     NIX_LDFLAGS="$(echo $NIX_LDFLAGS | sed "s,$out,$lib,g")"
@@ -39,8 +39,6 @@ stdenv.mkDerivation rec {
     "XGETTEXT=xgettext"
     "--disable-lib64"
     "--enable-readline"
-    "--includedir=$(lib)/include"
-    "--libdir=$(lib)/lib"
   ];
 
   installFlags = [ "install-dev" ];
diff --git a/pkgs/tools/filesystems/xtreemfs/default.nix b/pkgs/tools/filesystems/xtreemfs/default.nix
index 8f090c297813..556cb674212d 100644
--- a/pkgs/tools/filesystems/xtreemfs/default.nix
+++ b/pkgs/tools/filesystems/xtreemfs/default.nix
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
       --replace "/usr/local" "${valgrind}"
 
     substituteInPlace cpp/CMakeLists.txt \
-      --replace '"/lib64" "/usr/lib64"' '"${attr}/lib" "${fuse}/lib"'
+      --replace '"/lib64" "/usr/lib64"' '"${attr.out}/lib" "${fuse}/lib"'
 
     export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -I${fuse}/include"
     export NIX_CFLAGS_LINK="$NIX_CFLAGS_LINK -L${fuse}/lib"
diff --git a/pkgs/tools/filesystems/yandex-disk/default.nix b/pkgs/tools/filesystems/yandex-disk/default.nix
index f32f180f1d6e..966b3df8b175 100644
--- a/pkgs/tools/filesystems/yandex-disk/default.nix
+++ b/pkgs/tools/filesystems/yandex-disk/default.nix
@@ -43,7 +43,7 @@ stdenv.mkDerivation rec {
 
     ${patchelf}/bin/patchelf \
       --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
-      --set-rpath "${zlib}/lib:${p.gcclib}" \
+      --set-rpath "${zlib.out}/lib:${p.gcclib}" \
       $out/bin/yandex-disk
   '';
 
diff --git a/pkgs/tools/graphics/asymptote/default.nix b/pkgs/tools/graphics/asymptote/default.nix
index db7fad78a49c..1c5c4983c801 100644
--- a/pkgs/tools/graphics/asymptote/default.nix
+++ b/pkgs/tools/graphics/asymptote/default.nix
@@ -10,11 +10,11 @@ let
   s = # Generated upstream information
   rec {
     baseName="asymptote";
-    version="2.36";
+    version="2.37";
     name="${baseName}-${version}";
-    hash="0l0pznrn4k3v07cmn5rx8nq088zjs9bv2mkcks65z5lqlk5pccnd";
-    url="mirror://sourceforge/project/asymptote/2.36/asymptote-2.36.src.tgz";
-    sha256="0l0pznrn4k3v07cmn5rx8nq088zjs9bv2mkcks65z5lqlk5pccnd";
+    hash="16nh02m52mk9a53i8wc6l9vg710gnzr3lfbypcbvamghvaj0458i";
+    url="mirror://sourceforge/project/asymptote/2.37/asymptote-2.37.src.tgz";
+    sha256="16nh02m52mk9a53i8wc6l9vg710gnzr3lfbypcbvamghvaj0458i";
   };
   buildInputs = [
    freeglut ghostscriptX imagemagick fftw 
diff --git a/pkgs/tools/graphics/fgallery/default.nix b/pkgs/tools/graphics/fgallery/default.nix
index 6b8de80ee70e..4b263b555d21 100644
--- a/pkgs/tools/graphics/fgallery/default.nix
+++ b/pkgs/tools/graphics/fgallery/default.nix
@@ -34,7 +34,7 @@ stdenv.mkDerivation rec {
 
     wrapProgram "$out/share/fgallery/fgallery" \
         --set PERL5LIB "$PERL5LIB" \
-        --set PATH "${stdenv.lib.makeSearchPath "bin"
+        --set PATH "${stdenv.lib.makeBinPath
                      [ coreutils zip imagemagick pngcrush lcms2 fbida ]}"
   '';
 
diff --git a/pkgs/tools/graphics/gnuplot/default.nix b/pkgs/tools/graphics/gnuplot/default.nix
index 8a9df4982a3e..2b78f1fba405 100644
--- a/pkgs/tools/graphics/gnuplot/default.nix
+++ b/pkgs/tools/graphics/gnuplot/default.nix
@@ -46,7 +46,7 @@ stdenv.mkDerivation rec {
     wrapProgram $out/bin/gnuplot \
        --prefix PATH : '${gnused}/bin' \
        --prefix PATH : '${coreutils}/bin' \
-       --prefix PATH : '${fontconfig}/bin' \
+       --prefix PATH : '${fontconfig.bin}/bin' \
        --run '. ${./set-gdfontpath-from-fontconfig.sh}'
   '';
 
diff --git a/pkgs/tools/graphics/graphviz/2.0.nix b/pkgs/tools/graphics/graphviz/2.0.nix
index 6f236509a310..9e0eea516d31 100644
--- a/pkgs/tools/graphics/graphviz/2.0.nix
+++ b/pkgs/tools/graphics/graphviz/2.0.nix
@@ -18,11 +18,11 @@ stdenv.mkDerivation rec {
 
   configureFlags =
     [ "--with-pngincludedir=${libpng}/include"
-      "--with-pnglibdir=${libpng}/lib"
+      "--with-pnglibdir=${libpng.out}/lib"
       "--with-jpegincludedir=${libjpeg}/include"
-      "--with-jpeglibdir=${libjpeg}/lib"
+      "--with-jpeglibdir=${libjpeg.out}/lib"
       "--with-expatincludedir=${expat}/include"
-      "--with-expatlibdir=${expat}/lib"
+      "--with-expatlibdir=${expat.out}/lib"
     ]
     ++ stdenv.lib.optional (xlibsWrapper == null) "--without-x";
 
diff --git a/pkgs/tools/graphics/graphviz/2.32.nix b/pkgs/tools/graphics/graphviz/2.32.nix
index ede6624ac59d..b40672754bcf 100644
--- a/pkgs/tools/graphics/graphviz/2.32.nix
+++ b/pkgs/tools/graphics/graphviz/2.32.nix
@@ -17,15 +17,15 @@ stdenv.mkDerivation rec {
     ] ++ stdenv.lib.optionals (xorg != null) [ xorg.xlibsWrapper xorg.libXrender ]
     ++ stdenv.lib.optional (stdenv.system == "x86_64-darwin") gettext;
 
-  CPPFLAGS = stdenv.lib.optionalString (stdenv.system == "x86_64-darwin") "-I${cairo}/include/cairo";
+  CPPFLAGS = stdenv.lib.optionalString (stdenv.system == "x86_64-darwin") "-I${cairo.dev}/include/cairo";
 
   configureFlags =
     [ "--with-pngincludedir=${libpng}/include"
-      "--with-pnglibdir=${libpng}/lib"
+      "--with-pnglibdir=${libpng.out}/lib"
       "--with-jpegincludedir=${libjpeg}/include"
-      "--with-jpeglibdir=${libjpeg}/lib"
+      "--with-jpeglibdir=${libjpeg.out}/lib"
       "--with-expatincludedir=${expat}/include"
-      "--with-expatlibdir=${expat}/lib"
+      "--with-expatlibdir=${expat.out}/lib"
       "--with-cgraph=no"
       "--with-sparse=no"
     ]
diff --git a/pkgs/tools/graphics/graphviz/default.nix b/pkgs/tools/graphics/graphviz/default.nix
index 82f958321bdd..9b49cca8d7b3 100644
--- a/pkgs/tools/graphics/graphviz/default.nix
+++ b/pkgs/tools/graphics/graphviz/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, pkgconfig, libpng, libjpeg, expat, libXaw
+{ stdenv, fetchurl, pkgconfig, libpng, libjpeg, expat
 , yacc, libtool, fontconfig, pango, gd, xorg, gts, libdevil, gettext, cairo
 , flex
 }:
@@ -23,22 +23,15 @@ stdenv.mkDerivation rec {
     ];
 
   buildInputs =
-    [ pkgconfig libpng libjpeg expat yacc libtool fontconfig gd gts libdevil flex
-    ] ++ stdenv.lib.optionals (xorg != null) [ xorg.xlibsWrapper xorg.libXrender pango libXaw ]
+    [ pkgconfig libpng libjpeg expat yacc libtool fontconfig gd gts libdevil flex pango
+    ] ++ stdenv.lib.optionals (xorg != null)
+      (with xorg; [ xlibsWrapper libXrender libXaw libXpm ])
     ++ stdenv.lib.optional (stdenv.system == "x86_64-darwin") gettext;
 
   CPPFLAGS = stdenv.lib.optionalString (xorg != null && stdenv.system == "x86_64-darwin")
-    "-I${cairo}/include/cairo";
+    "-I${cairo.dev}/include/cairo";
 
-  configureFlags =
-    [ "--with-pngincludedir=${libpng}/include"
-      "--with-pnglibdir=${libpng}/lib"
-      "--with-jpegincludedir=${libjpeg}/include"
-      "--with-jpeglibdir=${libjpeg}/lib"
-      "--with-expatincludedir=${expat}/include"
-      "--with-expatlibdir=${expat}/lib"
-    ]
-    ++ stdenv.lib.optional (xorg == null) "--without-x";
+  configureFlags = stdenv.lib.optional (xorg == null) "--without-x";
 
   postPatch = stdenv.lib.optionalString stdenv.isDarwin ''
     for foo in cmd/dot/Makefile.in cmd/edgepaint/Makefile.in \
diff --git a/pkgs/tools/graphics/imgur-screenshot/default.nix b/pkgs/tools/graphics/imgur-screenshot/default.nix
index 777139d47fee..4eb464530556 100644
--- a/pkgs/tools/graphics/imgur-screenshot/default.nix
+++ b/pkgs/tools/graphics/imgur-screenshot/default.nix
@@ -1,15 +1,15 @@
 { stdenv, fetchFromGitHub, makeWrapper, curl, gnugrep, libnotify, scrot, which, xclip }:
 
-let deps = stdenv.lib.makeSearchPath "bin" [ curl gnugrep libnotify scrot which xclip ];
+let deps = stdenv.lib.makeBinPath [ curl gnugrep libnotify scrot which xclip ];
 in stdenv.mkDerivation rec {
-  version = "1.5.4";
+  version = "1.7.1";
   name = "imgur-screenshot-${version}";
 
   src = fetchFromGitHub {
     owner = "jomo";
     repo = "imgur-screenshot";
     rev = "v${version}";
-    sha256 = "1ff88mvrd0b7nmrkjljs3rnprk5ih0iif92dn39s3vnag3fp9f10";
+    sha256 = "01wiqrc7xxvk7kzgw756jahwa0szb200l8030iwfcgxb679k3v0j";
   };
 
   nativeBuildInputs = [ makeWrapper ];
@@ -26,4 +26,4 @@ in stdenv.mkDerivation rec {
     license = licenses.mit;
     maintainers = with maintainers; [ lw ];
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/tools/graphics/imgurbash/default.nix b/pkgs/tools/graphics/imgurbash/default.nix
deleted file mode 100644
index 66f85af87935..000000000000
--- a/pkgs/tools/graphics/imgurbash/default.nix
+++ /dev/null
@@ -1,27 +0,0 @@
-{ stdenv, fetchurl, bash, curl, xsel }:
-
-stdenv.mkDerivation {
-  name = "imgurbash-4";
-
-  src = fetchurl {
-    url = "https://imgur.com/tools/imgurbash.sh";
-    sha256 = "16m7dn5vqzx1q4pzssnwiwajfzrbhrz0niyhf5abxi1lwr3h0ca1";
-  };
-
-  buildCommand = ''
-    mkdir -p $out/bin
-    cat <<EOF >$out/bin/imgurbash
-    #!${bash}/bin/bash
-    PATH=${stdenv.lib.makeSearchPath "bin" [curl xsel]}:\$PATH
-    EOF
-    cat $src >>$out/bin/imgurbash
-    chmod +x $out/bin/imgurbash
-  '';
-
-  meta = with stdenv.lib; {
-    description = "A simple bash script to upload an image to imgur from the commandline";
-    license = licenses.publicDomain;
-    platforms = platforms.linux;
-    maintainers = with maintainers; [ abbradar ];
-  };
-}
diff --git a/pkgs/tools/graphics/imgurbash2/default.nix b/pkgs/tools/graphics/imgurbash2/default.nix
new file mode 100644
index 000000000000..99ef87ca5dfe
--- /dev/null
+++ b/pkgs/tools/graphics/imgurbash2/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchFromGitHub, bash, curl, xsel }:
+
+stdenv.mkDerivation rec {
+  name = "imgurbash2-${version}";
+  version = "1.0";
+
+  src = fetchFromGitHub {
+    owner = "ram-on";
+    repo = "imgurbash2";
+    rev = version;
+    sha256 = "0w8xfdvv6h0cqln9a2b1rskpyv4v5qsywqzg10smg05xlrh9f5nx";
+  };
+
+  installPhase = ''
+    mkdir -p $out/bin
+    cat <<EOF >$out/bin/imgurbash2
+    #!${bash}/bin/bash
+    PATH=${stdenv.lib.makeBinPath [curl xsel]}:\$PATH
+    EOF
+    cat imgurbash2 >> $out/bin/imgurbash2
+    chmod +x $out/bin/imgurbash2
+  '';
+
+  meta = with stdenv.lib; {
+    description = "A shell script that uploads images to imgur";
+    license = licenses.mit;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ abbradar ];
+    homepage = https://github.com/ram-on/imgurbash2;
+  };
+}
diff --git a/pkgs/tools/graphics/jhead/default.nix b/pkgs/tools/graphics/jhead/default.nix
index dfbd7c4e5e06..2fb1c9325c03 100644
--- a/pkgs/tools/graphics/jhead/default.nix
+++ b/pkgs/tools/graphics/jhead/default.nix
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
 
     substituteInPlace jhead.c \
       --replace "\"   Compiled: \"__DATE__" "" \
-      --replace "jpegtran -trim" "${libjpeg}/bin/jpegtran -trim"
+      --replace "jpegtran -trim" "${libjpeg.bin}/bin/jpegtran -trim"
   '';
 
   installPhase = ''
diff --git a/pkgs/tools/graphics/netpbm/default.nix b/pkgs/tools/graphics/netpbm/default.nix
index c31d0b32ea09..a3a5e30d41b5 100644
--- a/pkgs/tools/graphics/netpbm/default.nix
+++ b/pkgs/tools/graphics/netpbm/default.nix
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
     cp config.mk.in config.mk
     echo "STATICLIB_TOO = n" >> config.mk
     substituteInPlace "config.mk" \
-        --replace "TIFFLIB = NONE" "TIFFLIB = ${libtiff}/lib/libtiff.so" \
+        --replace "TIFFLIB = NONE" "TIFFLIB = ${libtiff.out}/lib/libtiff.so" \
         --replace "TIFFHDR_DIR =" "TIFFHDR_DIR = ${libtiff}/include"
   '';
 
diff --git a/pkgs/tools/graphics/optipng/default.nix b/pkgs/tools/graphics/optipng/default.nix
index 08f99469d255..767ea0e54254 100644
--- a/pkgs/tools/graphics/optipng/default.nix
+++ b/pkgs/tools/graphics/optipng/default.nix
@@ -5,11 +5,11 @@
 with stdenv.lib;
 
 stdenv.mkDerivation rec {
-  name = "optipng-0.7.5";
+  name = "optipng-0.7.6";
 
   src = fetchurl {
     url = "mirror://sourceforge/optipng/${name}.tar.gz";
-    sha256 = "17b197437z5wn29llpwklk7ihgx8bhc913gvjf4zyb81idwlprbl";
+    sha256 = "105yk5qykvhiahzag67gm36s2kplxf6qn5hay02md0nkrcgn6w28";
   };
 
   buildInputs = [ libpng ];
diff --git a/pkgs/tools/graphics/pdfread/default.nix b/pkgs/tools/graphics/pdfread/default.nix
index 69ab7f27e343..a4184fd9514b 100644
--- a/pkgs/tools/graphics/pdfread/default.nix
+++ b/pkgs/tools/graphics/pdfread/default.nix
@@ -39,7 +39,7 @@ stdenv.mkDerivation {
     cp -R *.py pylrs $PYDIR
 
     wrapProgram $out/bin/pdfread.py --prefix PYTHONPATH : $PYTHONPATH:${pillow}/$LIBSUFFIX/PIL:$PYDIR \
-      --prefix PATH : ${ghostscript}/bin:${pngnq}/bin:${djvulibre}/bin:${unrar}/bin:${optipng}/bin
+      --prefix PATH : ${ghostscript}/bin:${pngnq}/bin:${djvulibre.bin}/bin:${unrar}/bin:${optipng}/bin
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/tools/graphics/pngcheck/default.nix b/pkgs/tools/graphics/pngcheck/default.nix
index 496b1d355729..b8d020ca4343 100644
--- a/pkgs/tools/graphics/pngcheck/default.nix
+++ b/pkgs/tools/graphics/pngcheck/default.nix
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
   hardeningDisable = [ "format" ];
 
   makefile = "Makefile.unx";
-  makeFlags = "ZPATH=${zlib}/lib";
+  makeFlags = "ZPATH=${zlib.out}/lib";
 
   buildInputs = [ zlib ];
 
diff --git a/pkgs/tools/graphics/pngcrush/default.nix b/pkgs/tools/graphics/pngcrush/default.nix
index 6a6f3e7b13c6..3bcbc5d5eade 100644
--- a/pkgs/tools/graphics/pngcrush/default.nix
+++ b/pkgs/tools/graphics/pngcrush/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, libpng }:
 
 stdenv.mkDerivation rec {
-  name = "pngcrush-1.7.92";
+  name = "pngcrush-1.8.1";
 
   src = fetchurl {
     url = "mirror://sourceforge/pmt/${name}-nolib.tar.xz";
-    sha256 = "0dlwbqckv90cpvg8qhkl3nk5yb75ddi61vbpmmp9n0j6qq9lp6y4";
+    sha256 = "1h3sibmmiq4ynvf8hrpksfrbcmszxh4bqpkqy5c0m8828c7drpr9";
   };
 
   makeFlags = [ "CC=cc" "LD=cc" ];      # gcc and/or clang compat
diff --git a/pkgs/tools/graphics/pngout/default.nix b/pkgs/tools/graphics/pngout/default.nix
index 471823ed9235..afc1a2519fe1 100644
--- a/pkgs/tools/graphics/pngout/default.nix
+++ b/pkgs/tools/graphics/pngout/default.nix
@@ -18,9 +18,9 @@ stdenv.mkDerivation {
     cp ${folder}/pngout $out/bin
     
     ${if stdenv.system == "i686-linux" then ''
-        patchelf --set-interpreter ${stdenv.glibc}/lib/ld-linux.so.2 $out/bin/pngout
+        patchelf --set-interpreter ${stdenv.glibc.out}/lib/ld-linux.so.2 $out/bin/pngout
       '' else if stdenv.system == "x86_64-linux" then ''
-        patchelf --set-interpreter ${stdenv.glibc}/lib/ld-linux-x86-64.so.2 $out/bin/pngout
+        patchelf --set-interpreter ${stdenv.glibc.out}/lib/ld-linux-x86-64.so.2 $out/bin/pngout
       '' else ""}
   '';
 
diff --git a/pkgs/tools/graphics/quirc/default.nix b/pkgs/tools/graphics/quirc/default.nix
index d84989d4372b..6da565b292f9 100644
--- a/pkgs/tools/graphics/quirc/default.nix
+++ b/pkgs/tools/graphics/quirc/default.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation {
   src = fetchgit {
     inherit (s) url sha256 rev;
   };
-  NIX_CFLAGS_COMPILE="-I${SDL}/include/SDL";
+  NIX_CFLAGS_COMPILE="-I${SDL.dev}/include/SDL";
   configurePhase = ''
     sed -e 's/-[og] root//g' -i Makefile
   '';
diff --git a/pkgs/tools/inputmethods/ibus-engines/ibus-libpinyin/default.nix b/pkgs/tools/inputmethods/ibus-engines/ibus-libpinyin/default.nix
new file mode 100644
index 000000000000..1cb849fa09b1
--- /dev/null
+++ b/pkgs/tools/inputmethods/ibus-engines/ibus-libpinyin/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchurl, intltool, pkgconfig, sqlite, libpinyin, db
+, ibus, glib, gtk3, python3, pygobject3
+}:
+
+stdenv.mkDerivation rec {
+  name = "ibus-libpinyin-${version}";
+  version = "1.7.4";
+
+  meta = with stdenv.lib; {
+    isIbusEngine = true;
+    description  = "IBus interface to the libpinyin input method";
+    homepage     = https://github.com/libpinyin/ibus-libpinyin;
+    license      = licenses.gpl2;
+    platforms    = platforms.linux;
+  };
+
+  #configureFlags = "--with-anthy-zipcode=${anthy}/share/anthy/zipcode.t";
+
+  buildInputs = [
+  ibus glib sqlite libpinyin python3 gtk3 db
+  ];
+
+  nativeBuildInputs = [ intltool pkgconfig ];
+
+  src = fetchurl {
+    url = "mirror://sourceforge/project/libpinyin/ibus-libpinyin/ibus-libpinyin-${version}.tar.gz";
+    sha256 = "c2085992f76ca669ebe4b7e7c0170433bbfb61f764f8336b3b17490b9fb1c334";
+  };
+}
diff --git a/pkgs/tools/inputmethods/m17n-db/default.nix b/pkgs/tools/inputmethods/m17n-db/default.nix
index fbe7188ef9ac..944d6de1084a 100644
--- a/pkgs/tools/inputmethods/m17n-db/default.nix
+++ b/pkgs/tools/inputmethods/m17n-db/default.nix
@@ -1,4 +1,4 @@
-{stdenv, fetchurl, gettext}:
+{ stdenv, fetchurl, gettext }:
 
 stdenv.mkDerivation rec {
   name = "m17n-db-1.7.0";
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ gettext ];
 
   configureFlags = stdenv.lib.optional (stdenv ? glibc)
-    "--with-charmaps=${stdenv.glibc}/share/i18n/charmaps"
+    "--with-charmaps=${stdenv.glibc.out}/share/i18n/charmaps"
   ;
 
   meta = {
diff --git a/pkgs/tools/misc/coreutils/default.nix b/pkgs/tools/misc/coreutils/default.nix
index a06d3d0729a1..6836ee46ba14 100644
--- a/pkgs/tools/misc/coreutils/default.nix
+++ b/pkgs/tools/misc/coreutils/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, perl, gmp ? null
+{ lib, stdenv, fetchurl, perl, xz, gmp ? null
 , aclSupport ? false, acl ? null
 , selinuxSupport? false, libselinux ? null, libsepol ? null
 , autoconf, automake114x, texinfo
@@ -32,9 +32,11 @@ let
       sed '2i echo Skipping du long-from-unreadable test && exit 0' -i ./tests/du/long-from-unreadable.sh
     '';
 
+    outputs = [ "out" "info" ];
+
+    nativeBuildInputs = [ perl xz.bin ];
     configureFlags = optionalString stdenv.isSunOS "ac_cv_func_inotify_init=no";
 
-    nativeBuildInputs = [ perl ];
     buildInputs = [ gmp ]
       ++ optional aclSupport acl
       ++ optionals stdenv.isCygwin [ autoconf automake114x texinfo ]   # due to patch
diff --git a/pkgs/tools/misc/debian-devscripts/default.nix b/pkgs/tools/misc/debian-devscripts/default.nix
index 51b9a1e847e6..617cd5f55481 100644
--- a/pkgs/tools/misc/debian-devscripts/default.nix
+++ b/pkgs/tools/misc/debian-devscripts/default.nix
@@ -28,7 +28,7 @@ stdenv.mkDerivation rec {
       -e "s@/usr/(s|)bin/sendmail@${sendmailPath}@g" \
       -e "s@/usr/bin/diff@${diffutils}/bin/diff@g" \
       -e "s@/usr/bin/gpgv(2|)@${gnupg}/bin/gpgv2@g" \
-      -e "s@(command -v|/usr/bin/)curl@${curl}/bin/curl@g" \
+      -e "s@(command -v|/usr/bin/)curl@${curl.bin}/bin/curl@g" \
       -i {} +
     sed -e "s@/usr/share/sgml/[^ ]*/manpages/docbook.xsl@${docbook_xsl}/xml/xsl/docbook/manpages/docbook.xsl@" -i scripts/Makefile
     sed -r \
diff --git a/pkgs/tools/misc/duc/default.nix b/pkgs/tools/misc/duc/default.nix
new file mode 100644
index 000000000000..e113bd86bac3
--- /dev/null
+++ b/pkgs/tools/misc/duc/default.nix
@@ -0,0 +1,22 @@
+{ stdenv, fetchurl, pkgconfig, tokyocabinet, cairo, pango, ncurses }:
+
+stdenv.mkDerivation rec {
+  name = "duc-${version}";
+  version = "1.3.3";
+
+  src = fetchurl {
+    url = "http://duc.zevv.nl/release/${name}.tar.gz";
+    sha256 = "09mp8cq6s43sfhvms4mwhx3lw51vkaxgg34fbfbimafyjh4jdx3k";
+  };
+
+  buildInputs = [ pkgconfig tokyocabinet cairo pango ncurses ];
+
+  meta = with stdenv.lib; {
+    homepage = http://duc.zevv.nl/;
+    description = "Collection of tools for inspecting and visualizing disk usage";
+    license = licenses.gpl2;
+
+    platforms = platforms.linux;
+    maintainers = [ maintainers.lethalman ];
+  };
+}
diff --git a/pkgs/tools/misc/dumptorrent/default.nix b/pkgs/tools/misc/dumptorrent/default.nix
new file mode 100644
index 000000000000..60a2ed29bbf8
--- /dev/null
+++ b/pkgs/tools/misc/dumptorrent/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+    name = "dumptorrent-${version}";
+    version = "1.2";
+    
+    src = fetchurl {
+      url = "mirror://sourceforge/dumptorrent/dumptorrent-${version}.tar.gz";
+      sha256 = "073h03bmpfdy15qh37lvppayld2747i4acpyk0pm5nf2raiak0zm";
+    };
+
+    installPhase = ''
+      mkdir -p $out/bin
+      cp ./dumptorrent $out/bin
+    '';
+
+    meta = with stdenv.lib; {
+      description = "Dump .torrent file information";
+      homepage = https://sourceforge.net/projects/dumptorrent/;
+      license = licenses.gpl2;
+      maintainers = [ maintainers.zohl ];
+      platforms = platforms.all;
+    };
+}
diff --git a/pkgs/tools/misc/entr/default.nix b/pkgs/tools/misc/entr/default.nix
index e18b115df87c..c6bca6e9d8f6 100644
--- a/pkgs/tools/misc/entr/default.nix
+++ b/pkgs/tools/misc/entr/default.nix
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
   postPatch = ''
     substituteInPlace Makefile.bsd --replace /bin/echo echo
     substituteInPlace entr.c --replace /bin/cat ${coreutils}/bin/cat
-    substituteInPlace entr.c --replace /usr/bin/clear ${ncurses}/bin/clear
+    substituteInPlace entr.c --replace /usr/bin/clear ${ncurses.out}/bin/clear
     substituteInPlace entr.1 --replace /bin/cat cat
     substituteInPlace entr.1 --replace /usr/bin/clear clear
   '';
diff --git a/pkgs/tools/misc/findutils/default.nix b/pkgs/tools/misc/findutils/default.nix
index b6ab3985f239..1271aa8c9863 100644
--- a/pkgs/tools/misc/findutils/default.nix
+++ b/pkgs/tools/misc/findutils/default.nix
@@ -12,6 +12,8 @@ stdenv.mkDerivation rec {
 
   doCheck = !stdenv.isDarwin;
 
+  outputs = [ "out" "info" ];
+
   crossAttrs = {
     # http://osdir.com/ml/bug-findutils-gnu/2009-08/msg00026.html
     configureFlags = [ "gl_cv_func_wcwidth_works=yes" ];
diff --git a/pkgs/tools/misc/grub/2.0x.nix b/pkgs/tools/misc/grub/2.0x.nix
index d56f9b3ce0f0..15b1740638e2 100644
--- a/pkgs/tools/misc/grub/2.0x.nix
+++ b/pkgs/tools/misc/grub/2.0x.nix
@@ -100,6 +100,9 @@ stdenv.mkDerivation rec {
 
   postInstall = ''
     paxmark pms $out/sbin/grub-{probe,bios-setup}
+
+    # Avoid a runtime reference to gcc
+    sed -i $out/lib/grub/*/modinfo.sh -e "/grub_target_cppflags=/ s|'.*'|' '|"
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/tools/misc/kde-gtk-config/default.nix b/pkgs/tools/misc/kde-gtk-config/default.nix
index 809d0c65c6ec..bf868790de2d 100644
--- a/pkgs/tools/misc/kde-gtk-config/default.nix
+++ b/pkgs/tools/misc/kde-gtk-config/default.nix
@@ -22,8 +22,8 @@ stdenv.mkDerivation {
   ];
 
   cmakeFlags = ''
-    -DGTK2_GLIBCONFIG_INCLUDE_DIR=${glib}/lib/glib-2.0/include
-    -DGTK2_GDKCONFIG_INCLUDE_DIR=${gtk2}/lib/gtk-2.0/include
+    -DGTK2_GLIBCONFIG_INCLUDE_DIR=${glib.out}/lib/glib-2.0/include
+    -DGTK2_GDKCONFIG_INCLUDE_DIR=${gtk2.out}/lib/gtk-2.0/include
     -DGTK2_INCLUDE_DIRS=${gtk2}/include/gtk-2.0
     -DKDE4_LIBEXEC_INSTALL_DIR=lib/kde4/libexec
   '';
diff --git a/pkgs/tools/misc/mcrl2/default.nix b/pkgs/tools/misc/mcrl2/default.nix
deleted file mode 100644
index a67081d5ef21..000000000000
--- a/pkgs/tools/misc/mcrl2/default.nix
+++ /dev/null
@@ -1,14 +0,0 @@
-{stdenv, fetchurl, mesa, wxGTK, libX11}:
-
-stdenv.mkDerivation {
-  name = "mcrl2-200901";
-  src = fetchurl {
-    url = http://www.win.tue.nl/mcrl2/download/release/mcrl2-200901-src.tar.bz2 ;
-    sha256 = "0lji31d7dv15q8092b8g01j023dd7miq3nw8klgc8jd136xpwdp9";
-  };
-
-  buildInputs = [ mesa wxGTK libX11 ] ;
-}
-
-
-
diff --git a/pkgs/tools/misc/pipelight/default.nix b/pkgs/tools/misc/pipelight/default.nix
index b79f43cfbc35..77fcb186ef1d 100644
--- a/pkgs/tools/misc/pipelight/default.nix
+++ b/pkgs/tools/misc/pipelight/default.nix
@@ -32,7 +32,7 @@ in stdenv.mkDerivation rec {
       --wine-path=${wine_custom} \
       --gpg-exec=${gnupg}/bin/gpg2 \
       --bash-interp=${bash}/bin/bash \
-      --downloader=${curl}/bin/curl
+      --downloader=${curl.bin}/bin/curl
       $configureFlags
   '';
 
diff --git a/pkgs/tools/misc/plowshare/default.nix b/pkgs/tools/misc/plowshare/default.nix
index 40540ad1c20d..a1a12a82471d 100644
--- a/pkgs/tools/misc/plowshare/default.nix
+++ b/pkgs/tools/misc/plowshare/default.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
     make PREFIX="$out" install
 
     for fn in plow{del,down,list,up}; do
-      wrapProgram "$out/bin/$fn" --prefix PATH : "${curl}/bin:${spidermonkey}/bin"
+      wrapProgram "$out/bin/$fn" --prefix PATH : "${curl.bin}/bin:${spidermonkey.out}/bin"
     done
   '';
 
diff --git a/pkgs/tools/misc/profile-cleaner/default.nix b/pkgs/tools/misc/profile-cleaner/default.nix
index 55c44770c3e1..2c1f3d77def3 100644
--- a/pkgs/tools/misc/profile-cleaner/default.nix
+++ b/pkgs/tools/misc/profile-cleaner/default.nix
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
   installPhase = ''
     PREFIX=\"\" DESTDIR=$out make install
     wrapProgram $out/bin/profile-cleaner \
-      --prefix PATH : "${parallel}/bin:${sqlite}/bin"
+      --prefix PATH : "${parallel}/bin:${sqlite.bin}/bin"
   '';
 
   meta = {
diff --git a/pkgs/tools/misc/staruml/default.nix b/pkgs/tools/misc/staruml/default.nix
index 4c60e790238e..0d2982c022f9 100644
--- a/pkgs/tools/misc/staruml/default.nix
+++ b/pkgs/tools/misc/staruml/default.nix
@@ -1,5 +1,12 @@
-{ stdenv, fetchurl, makeWrapper, dpkg, patchelf, gtk2, glib, gdk_pixbuf, alsaLib, nss, nspr, GConf, cups, libgcrypt, dbus, udev }:
+{ stdenv, fetchurl, makeWrapper
+, dpkg, patchelf
+, gtk2, glib, gdk_pixbuf, alsaLib, nss, nspr, GConf, cups, libgcrypt, dbus, libudev }:
 
+let
+  inherit (stdenv) lib;
+  LD_LIBRARY_PATH = lib.makeLibraryPath
+    [ glib gtk2 gdk_pixbuf alsaLib nss nspr GConf cups libgcrypt dbus ];
+in
 stdenv.mkDerivation rec {
   version = "2.6.0";
   name = "staruml-${version}";
@@ -16,13 +23,13 @@ stdenv.mkDerivation rec {
   buildInputs = [ dpkg ];
 
   nativeBuildInputs = [ makeWrapper ];
-  
+
   unpackPhase = ''
     mkdir pkg
     dpkg-deb -x $src pkg
     sourceRoot=pkg
   '';
-  
+
   installPhase = ''
     mkdir $out
     mv opt/staruml $out/bin
@@ -30,14 +37,14 @@ stdenv.mkDerivation rec {
     ${patchelf}/bin/patchelf \
       --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
       $out/bin/StarUML
-    
+
     mkdir -p $out/lib
-    
+
     ln -s ${stdenv.cc.cc}/lib/libstdc++.so.6 $out/lib/
-    ln -s ${udev}/lib/libudev.so.1 $out/lib/libudev.so.0
+    ln -s ${libudev.out}/lib/libudev.so.1 $out/lib/libudev.so.0
 
     wrapProgram $out/bin/StarUML \
-      --prefix LD_LIBRARY_PATH : $out/lib:${glib}/lib:${gtk2}/lib:${gdk_pixbuf}/lib/:${alsaLib}/lib/:${nss}/lib/:${nspr}/lib/:${GConf}/lib/:${cups}/lib/:${libgcrypt}/lib/:${dbus}/lib/
+      --prefix LD_LIBRARY_PATH : $out/lib:${LD_LIBRARY_PATH}
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/tools/misc/tlp/default.nix b/pkgs/tools/misc/tlp/default.nix
index 7b57458bd3f4..e20dc850008a 100644
--- a/pkgs/tools/misc/tlp/default.nix
+++ b/pkgs/tools/misc/tlp/default.nix
@@ -26,7 +26,7 @@ in stdenv.mkDerivation {
 
   buildInputs = [ perl ];
 
-  paths = lib.makeSearchPath "bin"
+  paths = lib.makeBinPath
           ([ iw rfkill hdparm ethtool inetutils systemd module_init_tools pciutils smartmontools
              x86_energy_perf_policy gawk gnugrep coreutils
            ]
diff --git a/pkgs/tools/misc/tmux/default.nix b/pkgs/tools/misc/tmux/default.nix
index aab229c0ad22..7bd79b308859 100644
--- a/pkgs/tools/misc/tmux/default.nix
+++ b/pkgs/tools/misc/tmux/default.nix
@@ -1,15 +1,28 @@
-{ stdenv, fetchurl, ncurses, libevent, pkgconfig }:
+{ stdenv, fetchFromGitHub, autoreconfHook, ncurses, libevent, pkgconfig }:
+
+let
+
+  bashCompletion = fetchFromGitHub {
+    owner = "przepompownia";
+    repo = "tmux-bash-completion";
+    rev = "678a27616b70c649c6701cae9cd8c92b58cc051b";
+    sha256 = "1d2myrh4xiay9brsxafb02pi922760sdkyyy5xjm4sfh4iimc4zf";
+  };
+
+in
 
 stdenv.mkDerivation rec {
   name = "tmux-${version}";
-  version = "2.1";
+  version = "2.2";
 
-  src = fetchurl {
-    url = "https://github.com/tmux/tmux/releases/download/${version}/${name}.tar.gz";
-    sha256 = "0xk1mylsb08sf0w597mdgj9s6hxxjvjvjd6bngpjvvxwyixlwmii";
+  src = fetchFromGitHub {
+    owner = "tmux";
+    repo = "tmux";
+    rev = version;
+    sha256 = "04k9yxjp357sdw6365z6qx87vmwygl3v3wpvd78pp63ky5hzbbay";
   };
 
-  nativeBuildInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig autoreconfHook ];
 
   buildInputs = [ ncurses libevent ];
 
@@ -20,7 +33,7 @@ stdenv.mkDerivation rec {
 
   postInstall = ''
     mkdir -p $out/etc/bash_completion.d
-    cp -v examples/bash_completion_tmux.sh $out/etc/bash_completion.d/tmux
+    cp -v ${bashCompletion}/completions/tmux $out/etc/bash_completion.d/tmux
   '';
 
   meta = {
@@ -44,6 +57,6 @@ stdenv.mkDerivation rec {
     license = stdenv.lib.licenses.bsd3;
 
     platforms = stdenv.lib.platforms.unix;
-    maintainers = with stdenv.lib.maintainers; [ thammers ];
+    maintainers = with stdenv.lib.maintainers; [ thammers fpletz ];
   };
 }
diff --git a/pkgs/tools/misc/trash-cli/default.nix b/pkgs/tools/misc/trash-cli/default.nix
index e3adbfe3887d..75b3cb160671 100644
--- a/pkgs/tools/misc/trash-cli/default.nix
+++ b/pkgs/tools/misc/trash-cli/default.nix
@@ -19,7 +19,7 @@ python2Packages.buildPythonApplication rec {
       src = ./nix-paths.patch;
       df = "${coreutils}/bin/df";
       python = "${python2}/bin/${python2.executable}";
-      libc = "${stdenv.cc.libc}/lib/libc.so.6";
+      libc = "${stdenv.cc.libc.out}/lib/libc.so.6";
     })
 
     # Apply https://github.com/JaviMerino/trash-cli/commit/4f45a37a3
diff --git a/pkgs/tools/misc/venus/default.nix b/pkgs/tools/misc/venus/default.nix
index 4206f468ec76..6fc4e436153f 100644
--- a/pkgs/tools/misc/venus/default.nix
+++ b/pkgs/tools/misc/venus/default.nix
@@ -20,9 +20,9 @@ stdenv.mkDerivation rec {
     substituteInPlace planet.py \
         --replace "#!/usr/bin/env python" "#!${python}/bin/python"
     substituteInPlace tests/test_apply.py \
-        --replace "'xsltproc" "'${libxslt}/bin/xsltproc"
+        --replace "'xsltproc" "'${libxslt.bin}/bin/xsltproc"
     substituteInPlace planet/shell/xslt.py \
-        --replace "'xsltproc" "'${libxslt}/bin/xsltproc"
+        --replace "'xsltproc" "'${libxslt.bin}/bin/xsltproc"
   '';
 
   doCheck = true;
diff --git a/pkgs/tools/misc/wv/default.nix b/pkgs/tools/misc/wv/default.nix
index debc2c239ad6..ce5a00708f99 100644
--- a/pkgs/tools/misc/wv/default.nix
+++ b/pkgs/tools/misc/wv/default.nix
@@ -1,12 +1,14 @@
 { stdenv, fetchurl, zlib, imagemagick, libpng, glib, pkgconfig, libgsf
 , libxml2, bzip2 }:
 
-stdenv.mkDerivation {
-  name = "wv-1.2.4";
+stdenv.mkDerivation rec {
+  pname = "wv";
+  version = "1.2.9";
+  name = "${pname}-${version}";
 
   src = fetchurl {
-    url = mirror://sourceforge/wvware/wv-1.2.4.tar.gz;
-    sha256 = "1mn2ax6qjy3pvixlnvbkn6ymy6y4l2wxrr4brjaczm121s8hjcb7";
+    url = "http://www.abisource.com/downloads/${pname}/${version}/${name}.tar.gz";
+    sha256 = "17f16lkdv1c3amaz2hagiicih59ynpp4786k1m2qa1sw68xhswsc";
   };
 
   buildInputs = [ zlib imagemagick libpng glib pkgconfig libgsf libxml2 bzip2 ];
diff --git a/pkgs/tools/misc/xdummy/default.nix b/pkgs/tools/misc/xdummy/default.nix
index 30aba19930c7..1f4dbc863327 100644
--- a/pkgs/tools/misc/xdummy/default.nix
+++ b/pkgs/tools/misc/xdummy/default.nix
@@ -18,7 +18,7 @@ let
     EndSection
 
     Section "Files"
-      ModulePath "${xorg.xorgserver}/lib/xorg/modules"
+      ModulePath "${xorg.xorgserver.out}/lib/xorg/modules"
       ModulePath "${xorg.xf86videodummy}/lib/xorg/modules"
       XkbDir "${xkeyboard_config}/share/X11/xkb"
       FontPath "${xorg.fontadobe75dpi}/lib/X11/fonts/75dpi"
@@ -75,7 +75,7 @@ let
 in writeScriptBin "xdummy" ''
   #!${stdenv.shell}
   export XKB_BINDIR="${xorg.xkbcomp}/bin"
-  exec ${xorg.xorgserver}/bin/Xorg \
+  exec ${xorg.xorgserver.out}/bin/Xorg \
     -noreset \
     -logfile /dev/null \
     "$@" \
diff --git a/pkgs/tools/misc/xfstests/default.nix b/pkgs/tools/misc/xfstests/default.nix
index 31b6e74917e8..abca512b1d08 100644
--- a/pkgs/tools/misc/xfstests/default.nix
+++ b/pkgs/tools/misc/xfstests/default.nix
@@ -74,7 +74,7 @@ stdenv.mkDerivation {
       ln -s @out@/lib/xfstests/$f $f
     done
 
-    export PATH=${lib.makeSearchPath "bin" [acl attr bc e2fsprogs fio gawk libcap_progs lvm2 perl procps psmisc su utillinux which xfsprogs]}:$PATH
+    export PATH=${lib.makeBinPath [acl attr bc e2fsprogs fio gawk libcap_progs lvm2 perl procps psmisc su utillinux which xfsprogs]}:$PATH
     exec ./check "$@"
   '';
 
diff --git a/pkgs/tools/misc/xvfb-run/default.nix b/pkgs/tools/misc/xvfb-run/default.nix
index 162fb73b3f00..f1cf04424349 100644
--- a/pkgs/tools/misc/xvfb-run/default.nix
+++ b/pkgs/tools/misc/xvfb-run/default.nix
@@ -17,6 +17,6 @@ stdenv.mkDerivation {
     wrapProgram $out/bin/xvfb-run \
       --set XKB_BINDIR "${xkbcomp}/bin" \
       --set FONTCONFIG_FILE "${fontsConf}" \
-      --prefix PATH : ${getopt}/bin:${xorgserver}/bin:${xauth}/bin:${which}/bin:${utillinux}/bin
+      --prefix PATH : ${getopt}/bin:${xorgserver.out}/bin:${xauth}/bin:${which}/bin:${utillinux}/bin
   '';
 }
diff --git a/pkgs/tools/misc/youtube-dl/default.nix b/pkgs/tools/misc/youtube-dl/default.nix
index a7bb5a3083d9..a10fd37da281 100644
--- a/pkgs/tools/misc/youtube-dl/default.nix
+++ b/pkgs/tools/misc/youtube-dl/default.nix
@@ -12,18 +12,18 @@
 buildPythonApplication rec {
 
   name = "youtube-dl-${version}";
-  version = "2016.02.13";
+  version = "2016.04.06";
 
   src = fetchurl {
-    url = "http://yt-dl.org/downloads/${stdenv.lib.getVersion name}/${name}.tar.gz";
-    sha256 = "0d6ml6nas0pnp6is73fn326ayxkdmxvarzyr96qd6gyjm9icpdcb";
+    url = "http://yt-dl.org/downloads/${version}/${name}.tar.gz";
+    sha256 = "1kdrjwrn0x1wmvansvd2222gfqnld4zdihf2jwnz36112r1p8nhi";
   };
 
   buildInputs = [ makeWrapper zip pandoc ];
 
   # Ensure ffmpeg is available in $PATH for post-processing & transcoding support.
   postInstall = stdenv.lib.optionalString (ffmpeg != null)
-    ''wrapProgram $out/bin/youtube-dl --prefix PATH : "${ffmpeg}/bin"'';
+    ''wrapProgram $out/bin/youtube-dl --prefix PATH : "${ffmpeg.bin}/bin"'';
 
   # Requires network
   doCheck = false;
diff --git a/pkgs/tools/networking/aria2/default.nix b/pkgs/tools/networking/aria2/default.nix
index 8cb6172d87b6..189be8be9e26 100644
--- a/pkgs/tools/networking/aria2/default.nix
+++ b/pkgs/tools/networking/aria2/default.nix
@@ -5,11 +5,11 @@
 
 stdenv.mkDerivation rec {
   name = "aria2-${version}";
-  version = "1.20.0";
+  version = "1.21.0";
 
   src = fetchurl {
     url = "https://github.com/tatsuhiro-t/aria2/releases/download/release-${version}/${name}.tar.xz";
-    sha256 = "1l4gzz3yr0cl6a9xdy7843c5sb7afyq0i80wi2hasfpfdx5k95mz";
+    sha256 = "1035rzx9y7qv4p7cv04f461343dxha7ikprch059x2fci8n5yp12";
   };
 
   nativeBuildInputs = [ pkgconfig ];
diff --git a/pkgs/tools/networking/cjdns/default.nix b/pkgs/tools/networking/cjdns/default.nix
index 906ca5f39dd3..32cf5750c6a4 100644
--- a/pkgs/tools/networking/cjdns/default.nix
+++ b/pkgs/tools/networking/cjdns/default.nix
@@ -1,28 +1,23 @@
-{ stdenv, fetchFromGitHub, nodejs, which, python27, utillinux }:
+{ stdenv, fetchurl, nodejs, which, python27, utillinux }:
 
-let
-  version = "16"; # see ${src}/util/version/Version.h
-  date = "20150509";
-in
+let version = "17.3"; in
 stdenv.mkDerivation {
-  name = "cjdns-${version}-${date}";
+  name = "cjdns-"+version;
 
-  src = fetchFromGitHub {
-    owner = "cjdelisle";
-    repo = "cjdns";
-    rev = "a05ade40dc31caebaf3aa770aac3ab2ecb02d867";
-    sha256 = "07vwsw5d0sdxypl187cyzzdrv0chf4yyjxcymf847afkfr249n29";
+  src = fetchurl {
+    url = "https://github.com/cjdelisle/cjdns/archive/cjdns-v${version}.tar.gz";
+    sha256 = "00p62y7b89y3piirpj27crprji8nh0zv7zh4mcqhzh6r39jxz4ri";
   };
 
   buildInputs = [ which python27 nodejs ] ++
     # for flock
-    stdenv.lib.optional stdenv.isLinux [ utillinux ];
+    stdenv.lib.optional stdenv.isLinux utillinux;
 
   buildPhase =
     stdenv.lib.optionalString stdenv.isArm "Seccomp_NO=1 "
     + "bash do";
   installPhase = ''
-    installBin cjdroute makekeys privatetopublic publictoip6
+    install -Dt "$out/bin/" cjdroute makekeys privatetopublic publictoip6
     sed -i 's,/usr/bin/env node,'$(type -P node), \
       $(find contrib -name "*.js")
     sed -i 's,/usr/bin/env python,'$(type -P python), \
@@ -35,7 +30,7 @@ stdenv.mkDerivation {
     homepage = https://github.com/cjdelisle/cjdns;
     description = "Encrypted networking for regular people";
     license = licenses.gpl3;
-    maintainers = with maintainers; [ viric ehmry ];
+    maintainers = with maintainers; [ ehmry ];
     platforms = platforms.unix;
   };
 }
diff --git a/pkgs/tools/networking/cmst/default.nix b/pkgs/tools/networking/cmst/default.nix
index 24010e20f374..5c8b801dbbe3 100644
--- a/pkgs/tools/networking/cmst/default.nix
+++ b/pkgs/tools/networking/cmst/default.nix
@@ -13,6 +13,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ qtbase makeWrapper ];
 
   configurePhase = ''
+    runHook preConfigure
     substituteInPlace ./cmst.pro \
       --replace "/usr/bin" "$out/bin" \
       --replace "/usr/share" "$out/usr/share"
@@ -28,11 +29,14 @@ stdenv.mkDerivation rec {
     substituteInPlace ./apps/rootapp/rootapp.pro \
       --replace "/etc" "$out/etc" \
       --replace "/usr/share" "$out/share"
+    runHook postConfigure
   '';
 
   buildPhase = ''
+    runHook preBuild
     qmake PREFIX=$out
     make
+    runHook postBuild
   '';
 
   postInstall = ''
diff --git a/pkgs/tools/networking/curl/default.nix b/pkgs/tools/networking/curl/default.nix
index c59ea619942d..6008afa27872 100644
--- a/pkgs/tools/networking/curl/default.nix
+++ b/pkgs/tools/networking/curl/default.nix
@@ -25,6 +25,8 @@ stdenv.mkDerivation rec {
     sha256 = "13z9gba3q2ybp50z0gdkzhwcx9m0i7qkvm278yz4pql2jfml7inx";
   };
 
+  outputs = [ "dev" "out" "bin" "man" "docdev" ];
+
   nativeBuildInputs = [ pkgconfig perl ];
 
   # Zlib and OpenSSL must be propagated because `libcurl.la' contains
@@ -62,6 +64,11 @@ stdenv.mkDerivation rec {
   CXX = "g++";
   CXXCPP = "g++ -E";
 
+  postInstall = ''
+    moveToOutput bin/curl-config "$dev"
+    sed '/^dependency_libs/s|${libssh2.dev}|${libssh2.out}|' -i "$out"/lib/*.la
+  '';
+
   crossAttrs = {
     # We should refer to the cross built openssl
     # For the 'urandom', maybe it should be a cross-system option
diff --git a/pkgs/tools/networking/dnscrypt-proxy/default.nix b/pkgs/tools/networking/dnscrypt-proxy/default.nix
index 565a83047efe..23f081c8be35 100644
--- a/pkgs/tools/networking/dnscrypt-proxy/default.nix
+++ b/pkgs/tools/networking/dnscrypt-proxy/default.nix
@@ -19,6 +19,8 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ libsodium ] ++ optional stdenv.isLinux systemd;
 
+  outputs = [ "out" "man" ];
+
   meta = {
     description = "A tool for securing communications between a client and a DNS resolver";
     homepage = https://dnscrypt.org/;
diff --git a/pkgs/tools/networking/easyrsa/2.x.nix b/pkgs/tools/networking/easyrsa/2.x.nix
index e49c32aac704..493243cf81c8 100644
--- a/pkgs/tools/networking/easyrsa/2.x.nix
+++ b/pkgs/tools/networking/easyrsa/2.x.nix
@@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
     for prog in $(find "$out/share/easy-rsa" -executable -type f); do
       makeWrapper "$prog" "$out/bin/$(basename $prog)" \
         --set EASY_RSA "$out/share/easy-rsa" \
-        --set OPENSSL "${openssl}/bin/openssl" \
+        --set OPENSSL "${openssl.bin}/bin/openssl" \
         --set GREP "${gnugrep}/bin/grep"
     done
     sed -i "/EASY_RSA=\|OPENSSL=\|GREP=/d" $out/share/easy-rsa/vars
diff --git a/pkgs/tools/networking/easyrsa/default.nix b/pkgs/tools/networking/easyrsa/default.nix
index 2b41f8ca1d3c..59d97a4a18b6 100644
--- a/pkgs/tools/networking/easyrsa/default.nix
+++ b/pkgs/tools/networking/easyrsa/default.nix
@@ -20,7 +20,7 @@ in stdenv.mkDerivation rec {
     install -D -m755 easyrsa3/easyrsa $out/bin/easyrsa
     substituteInPlace $out/bin/easyrsa \
       --subst-var out \
-      --subst-var-by openssl ${openssl}/bin/openssl
+      --subst-var-by openssl ${openssl.bin}/bin/openssl
 
     # Helper utility
     cat > $out/bin/easyrsa-init <<EOF
diff --git a/pkgs/tools/networking/gupnp-tools/default.nix b/pkgs/tools/networking/gupnp-tools/default.nix
index af6eff5c31e9..f846a711aa4a 100644
--- a/pkgs/tools/networking/gupnp-tools/default.nix
+++ b/pkgs/tools/networking/gupnp-tools/default.nix
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
   postInstall = ''
     for program in gupnp-av-cp gupnp-universal-cp; do
       wrapProgram "$out/bin/$program" \
-        --prefix XDG_DATA_DIRS : "${gtk3}/share:${gnome3.gnome_themes_standard}/share:${gnome2.gnome_icon_theme}/share:$out/share"
+        --prefix XDG_DATA_DIRS : "${gtk3.out}/share:${gnome3.gnome_themes_standard}/share:${gnome2.gnome_icon_theme}/share:$out/share"
     done
   '';
 
diff --git a/pkgs/tools/networking/i2p/default.nix b/pkgs/tools/networking/i2p/default.nix
index b1bfeb215f68..dbb85f386354 100644
--- a/pkgs/tools/networking/i2p/default.nix
+++ b/pkgs/tools/networking/i2p/default.nix
@@ -1,10 +1,10 @@
 { stdenv, procps, coreutils, fetchurl, jdk, jre, ant, gettext, which }:
 
 stdenv.mkDerivation rec {
-  name = "i2p-0.9.24";
+  name = "i2p-0.9.25";
   src = fetchurl {
     url = "https://github.com/i2p/i2p.i2p/archive/${name}.tar.gz";
-    sha256 = "0hk28cigil6ia707zb6p8n7959xg7v816bacxxlln780cc1wi830";
+    sha256 = "1lj4khln0k0b4f55hjighwn5j3cyal8flmapjmadjyj6cd5py0v8";
   };
   buildInputs = [ jdk ant gettext which ];
   patches = [ ./i2p.patch ];
diff --git a/pkgs/tools/networking/inetutils/default.nix b/pkgs/tools/networking/inetutils/default.nix
index eca416b53d4e..a92c34328579 100644
--- a/pkgs/tools/networking/inetutils/default.nix
+++ b/pkgs/tools/networking/inetutils/default.nix
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ ncurses /* for `talk' */ ];
 
-  configureFlags = "--with-ncurses-include-dir=${ncurses}/include";
+  configureFlags = "--with-ncurses-include-dir=${ncurses.dev}/include";
 
   # Test fails with "UNIX socket name too long", probably because our
   # $TMPDIR is too long.
diff --git a/pkgs/tools/networking/megatools/default.nix b/pkgs/tools/networking/megatools/default.nix
index 10a951f84fc1..7c2a437ab658 100644
--- a/pkgs/tools/networking/megatools/default.nix
+++ b/pkgs/tools/networking/megatools/default.nix
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
   postInstall = ''
     for i in $(find $out/bin/ -type f); do
       wrapProgram "$i" \
-            --prefix GIO_EXTRA_MODULES : "${glib_networking}/lib/gio/modules" \
+            --prefix GIO_EXTRA_MODULES : "${glib_networking.out}/lib/gio/modules" \
             --prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH"
     done
   '';
diff --git a/pkgs/tools/networking/minidlna/default.nix b/pkgs/tools/networking/minidlna/default.nix
index c0944bb891ec..9e8e0c180d7e 100644
--- a/pkgs/tools/networking/minidlna/default.nix
+++ b/pkgs/tools/networking/minidlna/default.nix
@@ -16,6 +16,12 @@ stdenv.mkDerivation {
 
   buildInputs = [ ffmpeg flac libvorbis libogg libid3tag libexif libjpeg sqlite gettext ];
 
+  postInstall = ''
+    mkdir -p $out/share/man/man{5,8}
+    cp minidlna.conf.5 $out/share/man/man5
+    cp minidlnad.8 $out/share/man/man8
+  '';
+
   meta = with stdenv.lib; {
     description = "Media server software";
     longDescription = ''
diff --git a/pkgs/tools/networking/netsniff-ng/default.nix b/pkgs/tools/networking/netsniff-ng/default.nix
index 93b20704620a..742e6a93b655 100644
--- a/pkgs/tools/networking/netsniff-ng/default.nix
+++ b/pkgs/tools/networking/netsniff-ng/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
   configurePhase = ''
     patchShebangs configure
     substituteInPlace configure --replace "which" "command -v"
-    NACL_INC_DIR=${libsodium}/include/sodium NACL_LIB=sodium ./configure
+    NACL_INC_DIR=${libsodium.dev}/include/sodium NACL_LIB=sodium ./configure
   '';
 
   enableParallelBuilding = true;
diff --git a/pkgs/tools/networking/network-manager-applet/default.nix b/pkgs/tools/networking/network-manager-applet/default.nix
index d2e2215831b7..5e8931579cb3 100644
--- a/pkgs/tools/networking/network-manager-applet/default.nix
+++ b/pkgs/tools/networking/network-manager-applet/default.nix
@@ -41,7 +41,7 @@ stdenv.mkDerivation rec {
 
   preFixup = ''
     wrapProgram "$out/bin/nm-applet" \
-      --prefix GIO_EXTRA_MODULES : "${glib_networking}/lib/gio/modules:${gnome3.dconf}/lib/gio/modules" \
+      --prefix GIO_EXTRA_MODULES : "${glib_networking.out}/lib/gio/modules:${gnome3.dconf}/lib/gio/modules" \
       --prefix XDG_DATA_DIRS : "${gnome3.gtk}/share:$out/share:$GSETTINGS_SCHEMAS_PATH" \
       --set GCONF_CONFIG_SOURCE "xml::~/.gconf" \
       --prefix PATH ":" "${gnome3.gconf}/bin"
diff --git a/pkgs/tools/networking/network-manager/default.nix b/pkgs/tools/networking/network-manager/default.nix
index 7403490e58f8..afdca314ae64 100644
--- a/pkgs/tools/networking/network-manager/default.nix
+++ b/pkgs/tools/networking/network-manager/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchurl, intltool, wirelesstools, pkgconfig, dbus_glib, xz
-, udev, libgudev, libnl, libuuid, polkit, gnutls, ppp, dhcp, dhcpcd, iptables
+, systemd, libgudev, libnl, libuuid, polkit, gnutls, ppp, dhcp, dhcpcd, iptables
 , libgcrypt, dnsmasq, avahi, bind, perl, bluez5, substituteAll, readline
 , gobjectIntrospection, modemmanager, openresolv, libndp, newt, libsoup
 , ethtool, gnused, coreutils, file, inetutils }:
@@ -54,7 +54,7 @@ stdenv.mkDerivation rec {
     "--with-libsoup=yes"
   ];
 
-  buildInputs = [ wirelesstools udev libgudev libnl libuuid polkit ppp libndp
+  buildInputs = [ wirelesstools systemd libgudev libnl libuuid polkit ppp libndp
                   xz bluez5 dnsmasq gobjectIntrospection modemmanager readline newt libsoup ];
 
   propagatedBuildInputs = [ dbus_glib gnutls libgcrypt ];
diff --git a/pkgs/tools/networking/nylon/default.nix b/pkgs/tools/networking/nylon/default.nix
index daeb7ffb57bb..fc89ea8db51b 100644
--- a/pkgs/tools/networking/nylon/default.nix
+++ b/pkgs/tools/networking/nylon/default.nix
@@ -1,5 +1,11 @@
-{ stdenv, fetchurl, libevent }:
-
+{ stdenv, fetchurl, libevent, buildEnv }:
+let
+  # failed to find a better way to make it work
+  libevent-comb = buildEnv {
+    inherit (libevent.out) name;
+    paths = [ libevent.dev libevent.out ];
+  };
+in
 stdenv.mkDerivation {
   name = "nylon-1.21";
   src = fetchurl {
@@ -9,7 +15,7 @@ stdenv.mkDerivation {
 
   patches = [ ./configure-use-solib.patch ];
 
-  configureFlags = [ "--with-libevent=${libevent}" ];
+  configureFlags = [ "--with-libevent=${libevent-comb}" ];
 
   buildInputs = [ libevent ];
 
diff --git a/pkgs/tools/networking/openconnect.nix b/pkgs/tools/networking/openconnect.nix
index 54239b766174..43e48e9a4cdf 100644
--- a/pkgs/tools/networking/openconnect.nix
+++ b/pkgs/tools/networking/openconnect.nix
@@ -18,8 +18,8 @@ stdenv.mkDerivation rec {
 
   preConfigure = ''
       export PKG_CONFIG=${pkgconfig}/bin/pkg-config
-      export LIBXML2_CFLAGS="-I ${libxml2}/include/libxml2"
-      export LIBXML2_LIBS="-L${libxml2}/lib -lxml2"
+      export LIBXML2_CFLAGS="-I ${libxml2.dev}/include/libxml2"
+      export LIBXML2_LIBS="-L${libxml2.out}/lib -lxml2"
     '';
 
   configureFlags = [
diff --git a/pkgs/tools/networking/openssh/CVE-2015-8325.patch b/pkgs/tools/networking/openssh/CVE-2015-8325.patch
new file mode 100644
index 000000000000..c752726aeae7
--- /dev/null
+++ b/pkgs/tools/networking/openssh/CVE-2015-8325.patch
@@ -0,0 +1,28 @@
+From 85bdcd7c92fe7ff133bbc4e10a65c91810f88755 Mon Sep 17 00:00:00 2001
+From: Damien Miller <djm@mindrot.org>
+Date: Wed, 13 Apr 2016 10:39:57 +1000
+Subject: [PATCH] ignore PAM environment vars when UseLogin=yes
+
+If PAM is configured to read user-specified environment variables
+and UseLogin=yes in sshd_config, then a hostile local user may
+attack /bin/login via LD_PRELOAD or similar environment variables
+set via PAM.
+
+CVE-2015-8325, found by Shayan Sadigh, via Colin Watson
+---
+ session.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/session.c b/session.c
+index 4859245..4653b09 100644
+--- a/session.c
++++ b/session.c
+@@ -1322,7 +1322,7 @@ do_setup_env(Session *s, const char *shell)
+ 	 * Pull in any environment variables that may have
+ 	 * been set by PAM.
+ 	 */
+-	if (options.use_pam) {
++	if (options.use_pam && !options.use_login) {
+ 		char **p;
+ 
+ 		p = fetch_pam_child_environment();
diff --git a/pkgs/tools/networking/openssh/default.nix b/pkgs/tools/networking/openssh/default.nix
index 79c9613ee4c9..064745f88558 100644
--- a/pkgs/tools/networking/openssh/default.nix
+++ b/pkgs/tools/networking/openssh/default.nix
@@ -41,8 +41,10 @@ stdenv.mkDerivation rec {
     '';
 
   patches =
-    [ ./locale_archive.patch
+    [
+      ./locale_archive.patch
       ./fix-host-key-algorithms-plus.patch
+      ./CVE-2015-8325.patch
     ]
     ++ optional withGssapiPatches gssapiSrc;
 
diff --git a/pkgs/tools/networking/p2p/gtk-gnutella/default.nix b/pkgs/tools/networking/p2p/gtk-gnutella/default.nix
index 5f335c8f76a9..ec2821f4d818 100644
--- a/pkgs/tools/networking/p2p/gtk-gnutella/default.nix
+++ b/pkgs/tools/networking/p2p/gtk-gnutella/default.nix
@@ -16,7 +16,7 @@ stdenv.mkDerivation {
   nativeBuildInputs = [ bison pkgconfig ];
   buildInputs = [ glib gtk libxml2 gettext zlib ];
 
-  NIX_LDFLAGS = "-rpath ${zlib}/lib";
+  NIX_LDFLAGS = "-rpath ${zlib.out}/lib";
   configureScript = "./Configure";
   dontAddPrefix = true;
   configureFlags = "-d -e -D prefix=$out -D gtkversion=2 -D official=true";
diff --git a/pkgs/tools/networking/p2p/seeks/default.nix b/pkgs/tools/networking/p2p/seeks/default.nix
index 28dce0f567e9..621e71c9eae2 100644
--- a/pkgs/tools/networking/p2p/seeks/default.nix
+++ b/pkgs/tools/networking/p2p/seeks/default.nix
@@ -1,4 +1,4 @@
-{ fetchgit, stdenv, zlib, docbook2x, pcre, curl, libxml2, libevent, perl
+{ fetchgit, stdenv, zlib, bzip2, docbook2x, pcre, curl, libxml2, libevent, perl
 , pkgconfig, protobuf, tokyocabinet, tokyotyrant, opencv, autoconf, automake
 , libtool, seeks_confDir ? ""
 }:
@@ -13,14 +13,14 @@ stdenv.mkDerivation {
   };
 
   buildInputs =
-    [ zlib docbook2x pcre curl libxml2 libevent perl pkgconfig
+    [ zlib bzip2 docbook2x pcre curl libxml2 libevent perl pkgconfig
       protobuf tokyocabinet tokyotyrant opencv autoconf automake libtool
     ];
 
   configureFlags =
     [ # Enable the built-in web server providing a web search interface.
       "--enable-httpserv-plugin=yes"
-      "--with-libevent=${libevent}"
+      "--with-libevent=${libevent.dev}"
     ];
 
   preConfigure = ''
diff --git a/pkgs/tools/networking/p2p/tahoe-lafs/default.nix b/pkgs/tools/networking/p2p/tahoe-lafs/default.nix
index 5f1d6b4ef1a4..aa1b01c11fad 100644
--- a/pkgs/tools/networking/p2p/tahoe-lafs/default.nix
+++ b/pkgs/tools/networking/p2p/tahoe-lafs/default.nix
@@ -6,13 +6,13 @@
 # some loss of functionality because of it.
 
 pythonPackages.buildPythonApplication rec {
-  version = "1.10.2";
+  version = "1.11.0";
   name = "tahoe-lafs-${version}";
   namePrefix = "";
 
   src = fetchurl {
-    url = "http://tahoe-lafs.org/source/tahoe-lafs/releases/allmydata-tahoe-${version}.tar.bz2";
-    sha256 = "1rvv0ik5biy7ji8pg56v0qycnggzr3k6dbg88n555nb6r4cxgmgy";
+    url = "https://tahoe-lafs.org/downloads/tahoe-lafs-${version}.tar.bz2";
+    sha256 = "0hrp87rarbmmpnrxk91s83h6irkykds3pl263dagcddbdl5inqdi";
   };
 
   patchPhase = ''
@@ -30,7 +30,6 @@ pythonPackages.buildPythonApplication rec {
     sed -i 's/"pycrypto.*"/"pycrypto"/' src/allmydata/_auto_deps.py
   '';
 
-  # Some tests want this + http://tahoe-lafs.org/source/tahoe-lafs/deps/tahoe-dep-sdists/mock-0.6.0.tar.bz2
   buildInputs = with pythonPackages; [ unzip numpy mock ];
 
   # The `backup' command requires `sqlite3'.
@@ -48,8 +47,8 @@ pythonPackages.buildPythonApplication rec {
   '';
 
   checkPhase = ''
-    # TODO: broken with wheels
-    #${pythonPackages.python.interpreter} setup.py trial
+    # Still broken. ~ C.
+    #   trial allmydata
   '';
 
   meta = {
@@ -60,9 +59,9 @@ pythonPackages.buildPythonApplication rec {
       such a way that it remains available even when some of the peers
       are unavailable, malfunctioning, or malicious.
     '';
-    homepage = http://allmydata.org/;
+    homepage = http://tahoe-lafs.org/;
     license = [ lib.licenses.gpl2Plus /* or */ "TGPPLv1+" ];
-    maintainers = [ lib.maintainers.simons ];
+    maintainers = with lib.maintainers; [ simons MostAwesomeDude ];
     platforms = lib.platforms.gnu;  # arbitrary choice
   };
 }
diff --git a/pkgs/tools/networking/plasma-nm/default.nix b/pkgs/tools/networking/plasma-nm/default.nix
index 0c10e6655b8e..f0f379d38295 100644
--- a/pkgs/tools/networking/plasma-nm/default.nix
+++ b/pkgs/tools/networking/plasma-nm/default.nix
@@ -14,7 +14,7 @@ stdenv.mkDerivation {
     sha256 = "0xj14isvjq8ll70b6q66n8adm8ff4j9ng195ndk2gmavjf6bb751";
   };
 
-  NIX_CFLAGS_COMPILE = "-I${glib}/include/glib-2.0 -I${glib}/lib/glib-2.0/include";
+  NIX_CFLAGS_COMPILE = "-I${glib.dev}/include/glib-2.0 -I${glib.out}/lib/glib-2.0/include";
 
   nativeBuildInputs = [ automoc4 cmake gettext perl pkgconfig ];
 
diff --git a/pkgs/tools/networking/ppp/default.nix b/pkgs/tools/networking/ppp/default.nix
index dd07e53ee6f9..bc6b2b0e5ded 100644
--- a/pkgs/tools/networking/ppp/default.nix
+++ b/pkgs/tools/networking/ppp/default.nix
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
     [ ( substituteAll {
         src = ./nix-purity.patch;
         inherit libpcap;
-        glibc = stdenv.cc.libc;
+        glibc = stdenv.cc.libc.dev or stdenv.cc.libc;
       })
       # Without nonpriv.patch, pppd --version doesn't work when not run as
       # root.
diff --git a/pkgs/tools/networking/sipsak/default.nix b/pkgs/tools/networking/sipsak/default.nix
index 7242417bf2be..1149d9aa8e4e 100644
--- a/pkgs/tools/networking/sipsak/default.nix
+++ b/pkgs/tools/networking/sipsak/default.nix
@@ -10,6 +10,8 @@ stdenv.mkDerivation rec {
     c-ares
   ];
 
+  NIX_CFLAGS_COMPILE = "--std=gnu89";
+
   src = fetchurl {
     url = "https://github.com/sipwise/sipsak/archive/mr${version}.tar.gz";
     sha256 = "769fe59966b1962b67aa35aad7beb9a2110ebdface36558072a05c6405fb5374";
diff --git a/pkgs/tools/networking/unbound/default.nix b/pkgs/tools/networking/unbound/default.nix
index edbf32bb775a..f639044a195d 100644
--- a/pkgs/tools/networking/unbound/default.nix
+++ b/pkgs/tools/networking/unbound/default.nix
@@ -9,12 +9,14 @@ stdenv.mkDerivation rec {
     sha256 = "33567a20f73e288f8daa4ec021fbb30fe1824b346b34f12677ad77899ecd09be";
   };
 
+  outputs = [ "out" "lib" "man" ]; # "dev" would only split ~20 kB
+
   buildInputs = [ openssl expat libevent ];
 
   configureFlags = [
-    "--with-ssl=${openssl}"
+    "--with-ssl=${openssl.dev}"
     "--with-libexpat=${expat}"
-    "--with-libevent=${libevent}"
+    "--with-libevent=${libevent.dev}"
     "--localstatedir=/var"
     "--sysconfdir=/etc"
     "--sbindir=\${out}/bin"
@@ -24,6 +26,12 @@ stdenv.mkDerivation rec {
 
   installFlags = [ "configfile=\${out}/etc/unbound/unbound.conf" ];
 
+  # get rid of runtime dependencies on $dev outputs
+  postInstall = ''substituteInPlace "$lib/lib/libunbound.la" ''
+    + stdenv.lib.concatMapStrings
+      (pkg: " --replace '-L${pkg.dev}/lib' '-L${pkg.out}/lib' ")
+      [ openssl expat libevent ];
+
   meta = with stdenv.lib; {
     description = "Validating, recursive, and caching DNS resolver";
     license = licenses.bsd3;
diff --git a/pkgs/tools/networking/urlwatch/default.nix b/pkgs/tools/networking/urlwatch/default.nix
index 8ad930951607..67b53c83448f 100644
--- a/pkgs/tools/networking/urlwatch/default.nix
+++ b/pkgs/tools/networking/urlwatch/default.nix
@@ -1,17 +1,17 @@
 { stdenv, fetchurl, python3Packages }:
 
 python3Packages.buildPythonApplication rec {
-  name = "urlwatch-2.0";
+  name = "urlwatch-2.1";
 
   src = fetchurl {
     url = "http://thp.io/2008/urlwatch/${name}.tar.gz";
-    sha256 = "0j38qzw4jxw41vnnpi6j851hqpv8d6p1cbni6cv8r2vqf5307s3b";
+    sha256 = "0xn435cml9wjwk39117p1diqmvw3jbmv9ccr7230iaf7z59vf9v6";
   };
 
   propagatedBuildInputs = with python3Packages; [
-    keyring
     minidb
     pyyaml
+    requests2
   ];
 
   postFixup = ''
diff --git a/pkgs/tools/networking/uwimap/default.nix b/pkgs/tools/networking/uwimap/default.nix
index e7c771618480..69b3e633f379 100644
--- a/pkgs/tools/networking/uwimap/default.nix
+++ b/pkgs/tools/networking/uwimap/default.nix
@@ -20,8 +20,9 @@ stdenv.mkDerivation {
     ++ stdenv.lib.optional (!stdenv.isDarwin) pam;
 
   patchPhase = ''
-    sed -i -e s,/usr/local/ssl,${openssl}, \
-      src/osdep/unix/Makefile
+    sed -i src/osdep/unix/Makefile -e 's,/usr/local/ssl,${openssl},'
+    sed -i src/osdep/unix/Makefile -e 's,^SSLCERTS=.*,SSLCERTS=/etc/ssl/certs,'
+    sed -i src/osdep/unix/Makefile -e 's,^SSLLIB=.*,SSLLIB=${openssl.out}/lib,'
   '';
 
   NIX_CFLAGS_COMPILE = stdenv.lib.optionalString stdenv.isDarwin
diff --git a/pkgs/tools/networking/wget/default.nix b/pkgs/tools/networking/wget/default.nix
index a6d2913abf66..9b9909a89432 100644
--- a/pkgs/tools/networking/wget/default.nix
+++ b/pkgs/tools/networking/wget/default.nix
@@ -10,6 +10,8 @@ stdenv.mkDerivation rec {
     sha256 = "1jcpvl5sxb2ag8yahpy370c5jlfb097a21k2mhsidh4wxdhrnmgy";
   };
 
+  patches = [ ./remove-runtime-dep-on-openssl-headers.patch ];
+
   preConfigure = ''
     for i in "doc/texi2pod.pl" "util/rmold.pl"; do
       sed -i "$i" -e 's|/usr/bin.*perl|${perl}/bin/perl|g'
diff --git a/pkgs/tools/networking/wget/remove-runtime-dep-on-openssl-headers.patch b/pkgs/tools/networking/wget/remove-runtime-dep-on-openssl-headers.patch
new file mode 100644
index 000000000000..a6a1fcfcb37b
--- /dev/null
+++ b/pkgs/tools/networking/wget/remove-runtime-dep-on-openssl-headers.patch
@@ -0,0 +1,17 @@
+diff --git a/src/Makefile.in b/src/Makefile.in
+index 1a36a9b..e279c84 100644
+--- a/src/Makefile.in
++++ b/src/Makefile.in
+@@ -2211,10 +2211,9 @@ version.c:  $(wget_SOURCES) ../lib/libgnu.a
+ 	echo '' >> $@
+ 	echo '#include "version.h"' >> $@
+ 	echo 'const char *version_string = "@VERSION@";' >> $@
+-	echo 'const char *compilation_string = "'$(COMPILE)'";' \
++	echo 'const char *compilation_string = 0;' \
+ 	    | $(ESCAPEQUOTE) >> $@
+-	echo 'const char *link_string = "'$(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+-	$(AM_LDFLAGS) $(LDFLAGS) $(LIBS) $(wget_LDADD)'";' \
++	echo 'const char *link_string = 0;' \
+ 	    | $(ESCAPEQUOTE) >> $@
+ 
+ css.c: $(srcdir)/css.l
diff --git a/pkgs/tools/networking/zerotierone/default.nix b/pkgs/tools/networking/zerotierone/default.nix
index 9f5f777a239b..e05a65d6967e 100644
--- a/pkgs/tools/networking/zerotierone/default.nix
+++ b/pkgs/tools/networking/zerotierone/default.nix
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ openssl lzo zlib gcc iproute ];
 
   installPhase = ''
-    installBin zerotier-one
+    install -Dt "$out/bin/" zerotier-one
     ln -s $out/bin/zerotier-one $out/bin/zerotier-idtool
     ln -s $out/bin/zerotier-one $out/bin/zerotier-cli
   '';
diff --git a/pkgs/tools/package-management/checkinstall/default.nix b/pkgs/tools/package-management/checkinstall/default.nix
index c47f1664cd6e..fea6ccedd34f 100644
--- a/pkgs/tools/package-management/checkinstall/default.nix
+++ b/pkgs/tools/package-management/checkinstall/default.nix
@@ -53,7 +53,7 @@ stdenv.mkDerivation {
     substituteInPlace checkinstallrc-dist --replace /usr/local $out
 
     substituteInPlace installwatch/create-localdecls \
-      --replace /usr/include/unistd.h ${stdenv.glibc}/include/unistd.h
+      --replace /usr/include/unistd.h ${stdenv.glibc.dev}/include/unistd.h
   '';
 
   postInstall =
diff --git a/pkgs/tools/package-management/nix-prefetch-scripts/default.nix b/pkgs/tools/package-management/nix-prefetch-scripts/default.nix
index e70659aff00f..aa109ab80fe3 100644
--- a/pkgs/tools/package-management/nix-prefetch-scripts/default.nix
+++ b/pkgs/tools/package-management/nix-prefetch-scripts/default.nix
@@ -36,8 +36,8 @@ in rec {
   nix-prefetch-cvs = mkPrefetchScript "cvs" ../../../build-support/fetchcvs/nix-prefetch-cvs [cvs];
   nix-prefetch-git = mkPrefetchScript "git" ../../../build-support/fetchgit/nix-prefetch-git [git coreutils];
   nix-prefetch-hg  = mkPrefetchScript "hg"  ../../../build-support/fetchhg/nix-prefetch-hg   [mercurial];
-  nix-prefetch-svn = mkPrefetchScript "svn" ../../../build-support/fetchsvn/nix-prefetch-svn [subversion];
-  nix-prefetch-zip = mkPrefetchScript "zip" ../../../build-support/fetchzip/nix-prefetch-zip [unzip curl];
+  nix-prefetch-svn = mkPrefetchScript "svn" ../../../build-support/fetchsvn/nix-prefetch-svn [subversion.out];
+  nix-prefetch-zip = mkPrefetchScript "zip" ../../../build-support/fetchzip/nix-prefetch-zip [unzip curl.bin];
 
   nix-prefetch-scripts = buildEnv {
     name = "nix-prefetch-scripts";
diff --git a/pkgs/tools/package-management/nix/default.nix b/pkgs/tools/package-management/nix/default.nix
index 608fb31df783..16078906bc2b 100644
--- a/pkgs/tools/package-management/nix/default.nix
+++ b/pkgs/tools/package-management/nix/default.nix
@@ -9,7 +9,7 @@ let
   common = { name, src }: stdenv.mkDerivation rec {
     inherit name src;
 
-    outputs = [ "out" "doc" ];
+    outputs = [ "out" "man" "doc" ];
 
     nativeBuildInputs = [ perl pkgconfig ];
 
@@ -22,8 +22,8 @@ let
     # would end up using the wrong bzip2 when cross-compiling.
     # XXX: The right thing would be to reinstate `--with-bzip2' in Nix.
     postUnpack =
-      '' export CPATH="${bzip2}/include"
-         export LIBRARY_PATH="${bzip2}/lib"
+      '' export CPATH="${bzip2.dev}/include"
+         export LIBRARY_PATH="${bzip2.out}/lib"
          export CXXFLAGS="-Wno-error=reserved-user-defined-literal"
       '';
 
diff --git a/pkgs/tools/package-management/nix/unstable.nix b/pkgs/tools/package-management/nix/unstable.nix
new file mode 100644
index 000000000000..88bd8f460375
--- /dev/null
+++ b/pkgs/tools/package-management/nix/unstable.nix
@@ -0,0 +1,76 @@
+{ lib, stdenv, fetchurl, perl, curl, bzip2, sqlite, openssl ? null
+, pkgconfig, boehmgc, perlPackages, libsodium
+, storeDir ? "/nix/store"
+, stateDir ? "/nix/var"
+}:
+
+stdenv.mkDerivation rec {
+  name = "nix-1.9pre4100_4bbcfaf";
+
+  src = fetchurl {
+    url = "http://hydra.nixos.org/build/21565942/download/4/${name}.tar.xz";
+    sha256 = "1jcy0n8mi17k5vk89vammfh74lvsgnm4gjsk23cq1shspjnbbgxs";
+  };
+
+  nativeBuildInputs = [ perl pkgconfig ];
+
+  buildInputs = [ curl openssl sqlite ] ++ lib.optional stdenv.isLinux libsodium;
+
+  propagatedBuildInputs = [ boehmgc ];
+
+  # Note: bzip2 is not passed as a build input, because the unpack phase
+  # would end up using the wrong bzip2 when cross-compiling.
+  # XXX: The right thing would be to reinstate `--with-bzip2' in Nix.
+  postUnpack =
+    '' export CPATH="${bzip2.dev}/include"
+       export LIBRARY_PATH="${bzip2.out}/lib"
+       export CXXFLAGS="-Wno-error=reserved-user-defined-literal"
+    '';
+
+  configureFlags =
+    ''
+      --with-store-dir=${storeDir} --localstatedir=${stateDir} --sysconfdir=/etc
+      --with-dbi=${perlPackages.DBI}/${perl.libPrefix}
+      --with-dbd-sqlite=${perlPackages.DBDSQLite}/${perl.libPrefix}
+      --with-www-curl=${perlPackages.WWWCurl}/${perl.libPrefix}
+      --disable-init-state
+      --enable-gc
+    '';
+
+  makeFlags = "profiledir=$(out)/etc/profile.d";
+
+  installFlags = "sysconfdir=$(out)/etc";
+
+  doInstallCheck = true;
+
+  crossAttrs = {
+    postUnpack =
+      '' export CPATH="${bzip2.crossDrv}/include"
+         export NIX_CROSS_LDFLAGS="-L${bzip2.crossDrv}/lib -rpath-link ${bzip2.crossDrv}/lib $NIX_CROSS_LDFLAGS"
+      '';
+
+    configureFlags =
+      ''
+        --with-store-dir=${storeDir} --localstatedir=${stateDir}
+        --with-dbi=${perlPackages.DBI}/${perl.libPrefix}
+        --with-dbd-sqlite=${perlPackages.DBDSQLite}/${perl.libPrefix}
+        --with-www-curl=${perlPackages.WWWCurl}/${perl.libPrefix}
+        --disable-init-state
+        --enable-gc
+      '' + stdenv.lib.optionalString (
+          stdenv.cross ? nix && stdenv.cross.nix ? system
+      ) ''--with-system=${stdenv.cross.nix.system}'';
+
+    doInstallCheck = false;
+  };
+
+  enableParallelBuilding = true;
+
+  meta = {
+    description = "The Nix Deployment System";
+    homepage = http://nixos.org/;
+    license = stdenv.lib.licenses.lgpl2Plus;
+    maintainers = [ stdenv.lib.maintainers.eelco ];
+    platforms = stdenv.lib.platforms.all;
+  };
+}
diff --git a/pkgs/tools/package-management/rpm/default.nix b/pkgs/tools/package-management/rpm/default.nix
index 7b5281220fab..24346fb0eb70 100644
--- a/pkgs/tools/package-management/rpm/default.nix
+++ b/pkgs/tools/package-management/rpm/default.nix
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
 
   # Note: we don't add elfutils to buildInputs, since it provides a
   # bad `ld' and other stuff.
-  NIX_CFLAGS_COMPILE = "-I${nspr}/include/nspr -I${nss}/include/nss -I${elfutils}/include";
+  NIX_CFLAGS_COMPILE = "-I${nspr.dev}/include/nspr -I${nss.dev}/include/nss -I${elfutils}/include";
 
   NIX_CFLAGS_LINK = "-L${elfutils}/lib";
 
diff --git a/pkgs/tools/security/chntpw/default.nix b/pkgs/tools/security/chntpw/default.nix
index 814fb0ea0ecc..1f999e9d726d 100644
--- a/pkgs/tools/security/chntpw/default.nix
+++ b/pkgs/tools/security/chntpw/default.nix
@@ -10,7 +10,8 @@ stdenv.mkDerivation rec {
     sha256 = "1k1cxsj0221dpsqi5yibq2hr7n8xywnicl8yyaicn91y8h2hkqln";
   };
 
-  buildInputs = [ unzip ];
+  buildInputs = [ unzip ]
+    ++ stdenv.lib.optionals stdenv.isLinux [ stdenv.glibc.out stdenv.glibc.static ];
 
   patches = [
     ./00-chntpw-build-arch-autodetect.patch
diff --git a/pkgs/tools/security/cipherscan/default.nix b/pkgs/tools/security/cipherscan/default.nix
index bde9756ee1a0..eac237f2ff47 100644
--- a/pkgs/tools/security/cipherscan/default.nix
+++ b/pkgs/tools/security/cipherscan/default.nix
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
   buildPhase = ''
     substituteInPlace cipherscan \
       --replace "@OPENSSLBIN@" \
-                "${openssl}/bin/openssl" \
+                "${openssl.bin}/bin/openssl" \
       --replace "@TIMEOUTBIN@" \
                 "${coreutils}/bin/timeout" \
       --replace "@READLINKBIN@" \
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
 
     substituteInPlace analyze.py \
       --replace "@OPENSSLBIN@" \
-                "${openssl}/bin/openssl"
+                "${openssl.bin}/bin/openssl"
   '';
   installPhase = ''
     mkdir -p $out/bin
diff --git a/pkgs/tools/security/clamav/default.nix b/pkgs/tools/security/clamav/default.nix
index 0a172935bb59..bebb8a95a58a 100644
--- a/pkgs/tools/security/clamav/default.nix
+++ b/pkgs/tools/security/clamav/default.nix
@@ -3,11 +3,11 @@
 
 stdenv.mkDerivation rec {
   name = "clamav-${version}";
-  version = "0.99";
+  version = "0.99.1";
 
   src = fetchurl {
     url = "mirror://sourceforge/clamav/clamav-${version}.tar.gz";
-    sha256 = "1abyg349yr31z764jcgx67q5v098jrkrj88bqkzmys6xza62qyfj";
+    sha256 = "12nm4mxzx3qlbm65cadflzncjfkxdfqcp0lch29i5yfk4a8nhi71";
   };
 
   buildInputs = [ zlib bzip2 libxml2 openssl ncurses curl libiconv libmilter pcre ];
diff --git a/pkgs/tools/security/eid-mw/default.nix b/pkgs/tools/security/eid-mw/default.nix
index 32cf4f9a4e2c..85409fae85b9 100644
--- a/pkgs/tools/security/eid-mw/default.nix
+++ b/pkgs/tools/security/eid-mw/default.nix
@@ -3,10 +3,10 @@
 
 stdenv.mkDerivation rec {
   name = "eid-mw-${version}";
-  version = "4.1.13";
+  version = "4.1.14";
 
   src = fetchFromGitHub {
-    sha256 = "1fkazhw6gs191w789fnp6mwnxrx9p38b3kh5bngb1ir0zhkgghkq";
+    sha256 = "1gj08dylcwdfjmdci1ja853n9xqkhgxy0x8m30bks81qwbnd12lp";
     rev = "v${version}";
     repo = "eid-mw";
     owner = "Fedict";
diff --git a/pkgs/tools/security/modsecurity/default.nix b/pkgs/tools/security/modsecurity/default.nix
index 2f3101cffea8..09754f53a9ed 100644
--- a/pkgs/tools/security/modsecurity/default.nix
+++ b/pkgs/tools/security/modsecurity/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, fetchurl
+{ stdenv, lib, fetchurl, pkgconfig
 , curl, apacheHttpd, pcre, apr, aprutil, libxml2 }:
 
 with lib;
@@ -12,6 +12,7 @@ stdenv.mkDerivation rec {
     sha256 = "e2bbf789966c1f80094d88d9085a81bde082b2054f8e38e0db571ca49208f434";
   };
 
+  nativeBuildInputs = [ pkgconfig ];
   buildInputs = [ curl apacheHttpd pcre apr aprutil libxml2 ];
   configureFlags = [
     "--enable-standalone-module"
diff --git a/pkgs/tools/security/mpw/default.nix b/pkgs/tools/security/mpw/default.nix
index 15937a6792e6..a565c3b96e14 100644
--- a/pkgs/tools/security/mpw/default.nix
+++ b/pkgs/tools/security/mpw/default.nix
@@ -27,7 +27,7 @@ in stdenv.mkDerivation {
     patchShebangs .
   '';
 
-  NIX_CFLAGS_COMPILE = "-I${libxml2}/include/libxml2";
+  NIX_CFLAGS_COMPILE = "-I${libxml2.dev}/include/libxml2";
 
   buildInputs = [ autoconf automake openssl libxml2 ];
 
diff --git a/pkgs/tools/security/pass/default.nix b/pkgs/tools/security/pass/default.nix
index 56e20726793d..534e06814e2b 100644
--- a/pkgs/tools/security/pass/default.nix
+++ b/pkgs/tools/security/pass/default.nix
@@ -44,7 +44,7 @@ stdenv.mkDerivation rec {
   preInstall = ''
     mkdir -p "$out/share/bash-completion/completions"
     mkdir -p "$out/share/zsh/site-functions"
-    mkdir -p "$out/share/fish/completions"
+    mkdir -p "$out/share/fish/vendor_completions.d"
   '';
 
   installFlags = [ "PREFIX=$(out)" ];
@@ -61,7 +61,7 @@ stdenv.mkDerivation rec {
     '' else ""}
   '';
 
-  wrapperPath = with stdenv.lib; makeSearchPath "bin/" ([
+  wrapperPath = with stdenv.lib; makeBinPath ([
     coreutils
     gnused
     getopt
diff --git a/pkgs/tools/security/pass/rofi-pass.nix b/pkgs/tools/security/pass/rofi-pass.nix
index 94dca5dca680..45cd0f0e20b0 100644
--- a/pkgs/tools/security/pass/rofi-pass.nix
+++ b/pkgs/tools/security/pass/rofi-pass.nix
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
     cp -a $src/config.example $out/share/doc/rofi-pass/config.example
   '';
 
-  wrapperPath = with stdenv.lib; makeSearchPath "bin/" [
+  wrapperPath = with stdenv.lib; makeBinPath [
     coreutils
     findutils
     gnugrep
diff --git a/pkgs/tools/security/pcsctools/default.nix b/pkgs/tools/security/pcsctools/default.nix
index af0090cdf965..2932143fa0e1 100644
--- a/pkgs/tools/security/pcsctools/default.nix
+++ b/pkgs/tools/security/pcsctools/default.nix
@@ -3,7 +3,7 @@
 , perl, pcscperl, Glib, Gtk2, Pango
 }:
 
-let deps = lib.makeSearchPath "bin" [ wget coreutils ];
+let deps = lib.makeBinPath [ wget coreutils ];
 
 in stdenv.mkDerivation rec {
   name = "pcsc-tools-1.4.25";
diff --git a/pkgs/tools/security/prey/default.nix b/pkgs/tools/security/prey/default.nix
index b36c11cf9345..f9bd6ea50e8d 100644
--- a/pkgs/tools/security/prey/default.nix
+++ b/pkgs/tools/security/prey/default.nix
@@ -34,7 +34,7 @@ in stdenv.mkDerivation rec {
     cp -R . $out
     cp -R ${modulesSrc}/* $out/modules/
     wrapProgram "$out/prey.sh" \
-      --prefix PATH ":" "${xawtv}/bin:${imagemagick}/bin:${curl}/bin:${scrot}/bin:${inetutils}/bin:${coreutils}/bin" \
+      --prefix PATH ":" "${xawtv}/bin:${imagemagick}/bin:${curl.bin}/bin:${scrot}/bin:${inetutils}/bin:${coreutils}/bin" \
       --set CURL_CA_BUNDLE "/etc/ssl/certs/ca-certificates.crt"
   '';
 
diff --git a/pkgs/tools/security/softhsm/default.nix b/pkgs/tools/security/softhsm/default.nix
new file mode 100644
index 000000000000..4bd199686763
--- /dev/null
+++ b/pkgs/tools/security/softhsm/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchurl, botan }:
+
+stdenv.mkDerivation rec {
+
+  name = "softhsm-${version}";
+  version = "2.1.0";
+
+  src = fetchurl {
+    url = "https://dist.opendnssec.org/source/${name}.tar.gz";
+    sha256 = "0399b06f196fbfaebe73b4aeff2e2d65d0dc1901161513d0d6a94f031dcd827e";
+  };
+
+  configureFlags = [
+    "--with-crypto-backend=botan"
+    "--with-botan=${botan}"
+    "--sysconfdir=$out/etc"
+    "--localstatedir=$out/var"
+    ];
+
+  buildInputs = [ botan ];
+
+  postInstall = "rm -rf $out/var";
+
+  meta = {
+    homepage = https://www.opendnssec.org/softhsm;
+    description = "Cryptographic store accessible through a PKCS #11 interface";
+    license = stdenv.lib.licenses.bsd2;
+    maintainers = stdenv.lib.maintainers.leenaars;
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/pkgs/tools/security/sshuttle/default.nix b/pkgs/tools/security/sshuttle/default.nix
index 4a8d7518e9c2..411195747678 100644
--- a/pkgs/tools/security/sshuttle/default.nix
+++ b/pkgs/tools/security/sshuttle/default.nix
@@ -3,10 +3,10 @@
   
 pythonPackages.buildPythonApplication rec {
   name = "sshuttle-${version}";
-  version = "0.77.2";
+  version = "0.78.0";
 
   src = fetchurl {
-    sha256 = "1fwlhr5r9pl3pns65nn4mxf5ivypmd2a12gv3vpyznfy5f097k10";
+    sha256 = "18hrwi2gyri1n2rq0nghvv7hfhbhh5h67am89524vc1yyx40vn3b";
     url = "https://pypi.python.org/packages/source/s/sshuttle/${name}.tar.gz";
   };
 
diff --git a/pkgs/tools/security/sudo/default.nix b/pkgs/tools/security/sudo/default.nix
index df8024e040e3..b2af5451b8b5 100644
--- a/pkgs/tools/security/sudo/default.nix
+++ b/pkgs/tools/security/sudo/default.nix
@@ -4,14 +4,14 @@
 }:
 
 stdenv.mkDerivation rec {
-  name = "sudo-1.8.15";
+  name = "sudo-1.8.16";
 
   src = fetchurl {
     urls =
       [ "ftp://ftp.sudo.ws/pub/sudo/${name}.tar.gz"
         "ftp://ftp.sudo.ws/pub/sudo/OLD/${name}.tar.gz"
       ];
-    sha256 = "0263gi6i19fyzzc488n0qw3m518i39f6a7qmrfvahk9j10bkh5j3";
+    sha256 = "0k86sm9ilhxhvnfwq3092zhfxazj3kddn0y2mirz0nqjqmpq50rd";
   };
 
   configureFlags = [
diff --git a/pkgs/tools/security/thc-hydra/default.nix b/pkgs/tools/security/thc-hydra/default.nix
index c06636dc3677..a06754cb58d2 100644
--- a/pkgs/tools/security/thc-hydra/default.nix
+++ b/pkgs/tools/security/thc-hydra/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, openssl, libidn, ncurses, pcre, libssh, postgresql92 }:
+{ stdenv, fetchurl, pkgconfig, openssl, libidn, ncurses, pcre, libssh, postgresql92 }:
 
 with stdenv.lib;
 
@@ -12,10 +12,11 @@ stdenv.mkDerivation rec {
   };
 
   preConfigure = ''
-   substituteInPlace configure --replace "\$LIBDIRS" "${openssl}/lib ${pcre}/lib ${libssh}/lib ${postgresql92}/lib"
-   substituteInPlace configure --replace "\$INCDIRS" "${openssl}/include ${pcre}/include ${libssh}/include ${postgresql92}/include"
+   substituteInPlace configure --replace "\$LIBDIRS" "${openssl.out}/lib ${pcre.out}/lib ${libssh.out}/lib ${postgresql92.lib}/lib"
+   substituteInPlace configure --replace "\$INCDIRS" "${openssl.dev}/include ${pcre.dev}/include ${libssh.dev}/include ${postgresql92}/include"
   '';
 
+  nativeBuildInputs = [ pkgconfig ];
   buildInputs = [ openssl libidn ncurses pcre libssh ];
 
   meta = {
diff --git a/pkgs/tools/security/tor/tor-arm.nix b/pkgs/tools/security/tor/tor-arm.nix
index 6c4d61d825f9..365379c8f6a8 100644
--- a/pkgs/tools/security/tor/tor-arm.nix
+++ b/pkgs/tools/security/tor/tor-arm.nix
@@ -37,7 +37,7 @@ stdenv.mkDerivation rec {
     for i in $(cd $out/bin && ls); do
       wrapProgram $out/bin/$i \
         --prefix PYTHONPATH : "$(toPythonPath $out):$(toPythonPath ${pythonPackages.curses}):$out/libexec:$PYTHONPATH" \
-        --set TERMINFO "${ncurses}/share/terminfo" \
+        --set TERMINFO "${ncurses.out}/share/terminfo" \
         --set TERM     "xterm"
     done
   '';
diff --git a/pkgs/tools/security/trousers/default.nix b/pkgs/tools/security/trousers/default.nix
index e910241113b9..d57aa8c63a92 100644
--- a/pkgs/tools/security/trousers/default.nix
+++ b/pkgs/tools/security/trousers/default.nix
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
 
   # Fix broken libtool file
   preFixup = stdenv.lib.optionalString (!stdenv.isDarwin) ''
-    sed 's,-lcrypto,-L${openssl}/lib -lcrypto,' -i $out/lib/libtspi.la
+    sed 's,-lcrypto,-L${openssl.out}/lib -lcrypto,' -i $out/lib/libtspi.la
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/tools/system/facter/default.nix b/pkgs/tools/system/facter/default.nix
index 117a3c1c1a2d..6d162188a539 100644
--- a/pkgs/tools/system/facter/default.nix
+++ b/pkgs/tools/system/facter/default.nix
@@ -1,14 +1,14 @@
-{ stdenv, fetchurl, boost, cmake, curl, libyamlcpp, openssl, utillinux }:
+{ stdenv, fetchurl, boost, cmake, curl, leatherman, libyamlcpp, openssl, utillinux }:
 
 stdenv.mkDerivation rec {
   name = "facter-${version}";
-  version = "3.1.3";
+  version = "3.1.5";
   src = fetchurl {
     url = "https://downloads.puppetlabs.com/facter/${name}.tar.gz";
-    sha256 = "1ngp3xjdh6x1w7lsi4lji2xzqp0x950jngcdlq11lcr0wfnzwyxj";
+    sha256 = "0k2k92y42zb6vf542zwkhvg15kv32yb4zvw6nlcqlgmyg19c5qmv";
   };
 
-  buildInputs = [ boost cmake curl libyamlcpp openssl utillinux ];
+  buildInputs = [ boost cmake curl leatherman libyamlcpp openssl utillinux ];
 
   meta = with stdenv.lib; {
     homepage = https://github.com/puppetlabs/facter;
diff --git a/pkgs/tools/system/gptfdisk/default.nix b/pkgs/tools/system/gptfdisk/default.nix
index 264dbf1eb279..0b034819651d 100644
--- a/pkgs/tools/system/gptfdisk/default.nix
+++ b/pkgs/tools/system/gptfdisk/default.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
     substituteInPlace Makefile.mac --replace \
       " -I/opt/local/include -I /usr/local/include -I/opt/local/include" ""
     substituteInPlace Makefile.mac --replace \
-      "/opt/local/lib/libncurses.a" "${ncurses}/lib/libncurses.dylib"
+      "/opt/local/lib/libncurses.a" "${ncurses.out}/lib/libncurses.dylib"
   '';
 
   buildPhase = stdenv.lib.optionalString stdenv.isDarwin "make -f Makefile.mac";
diff --git a/pkgs/tools/system/monit/default.nix b/pkgs/tools/system/monit/default.nix
index 1b15fbbb6281..0ee32a49c07b 100644
--- a/pkgs/tools/system/monit/default.nix
+++ b/pkgs/tools/system/monit/default.nix
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
 
   configureFlags = [
     "--with-ssl-incl-dir=${openssl}/include"
-    "--with-ssl-lib-dir=${openssl}/lib"
+    "--with-ssl-lib-dir=${openssl.out}/lib"
   ] ++ stdenv.lib.optionals (! usePAM) [ "--without-pam" ];
 
   meta = {
diff --git a/pkgs/tools/system/netdata/default.nix b/pkgs/tools/system/netdata/default.nix
new file mode 100644
index 000000000000..28ec7f1be427
--- /dev/null
+++ b/pkgs/tools/system/netdata/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchFromGitHub, autoreconfHook, zlib, pkgconfig }:
+
+stdenv.mkDerivation rec{
+  version = "1.0.0";
+  name = "netdata-${version}";
+
+  src = fetchFromGitHub {
+    rev = "v${version}";
+    owner = "firehol";
+    repo = "netdata";
+    sha256 = "03107ny98zks05p44jzypkk4lw8lbvmqja5b537ln6cnrgp20yvq";
+  };
+
+  buildInputs = [ autoreconfHook zlib pkgconfig ];
+
+  patches = [ ./web_access.patch ];
+
+  meta = with stdenv.lib; {
+    description = "Real-time performance monitoring tool";
+    homepage = http://netdata.firehol.org;
+    license = licenses.gpl3;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.lethalman ];
+  };
+
+}
diff --git a/pkgs/tools/system/netdata/web_access.patch b/pkgs/tools/system/netdata/web_access.patch
new file mode 100644
index 000000000000..3c0fbf7507d7
--- /dev/null
+++ b/pkgs/tools/system/netdata/web_access.patch
@@ -0,0 +1,19 @@
+--- a/src/web_client.c.orig	2016-04-17 11:34:20.044455323 +0200
++++ b/src/web_client.c	2016-04-17 11:34:47.432897957 +0200
+@@ -291,14 +291,14 @@
+ 		buffer_sprintf(w->response.data, "File '%s' does not exist, or is not accessible.", filename);
+ 		return 404;
+ 	}
+-
++#if 0
+ 	// check if the file is owned by us
+ 	if(stat.st_uid != web_files_uid()) {
+ 		error("%llu: File '%s' is owned by user %d (I run as user %d). Access Denied.", w->id, webfilename, stat.st_uid, getuid());
+ 		buffer_sprintf(w->response.data, "Access to file '%s' is not permitted.", filename);
+ 		return 403;
+ 	}
+-
++#endif
+ 	if((stat.st_mode & S_IFMT) == S_IFDIR) {
+ 		snprintf(webfilename, FILENAME_MAX+1, "%s/index.html", filename);
+ 		return mysendfile(w, webfilename);
diff --git a/pkgs/tools/system/plan9port/builder.sh b/pkgs/tools/system/plan9port/builder.sh
index 2434889581ed..15fcdcf6c9dd 100644
--- a/pkgs/tools/system/plan9port/builder.sh
+++ b/pkgs/tools/system/plan9port/builder.sh
@@ -5,8 +5,8 @@ export PLAN9_TARGET=$PLAN9
 
 configurePhase()
 {
-    echo CFLAGS=\"-I${fontconfig}/include -I${libXt}/include\" > LOCAL.config
-    echo X11=\"${libXt}/include\" >> LOCAL.config
+    echo CFLAGS=\"-I${fontconfig_dev}/include -I${libXt_dev}/include\" > LOCAL.config
+    echo X11=\"${libXt_dev}/include\" >> LOCAL.config
 
     for f in `grep -l -r /usr/local/plan9`; do
         sed "s,/usr/local/plan9,${PLAN9},g" -i $f
diff --git a/pkgs/tools/system/plan9port/default.nix b/pkgs/tools/system/plan9port/default.nix
index 3a78cb2baf63..70f792953b85 100644
--- a/pkgs/tools/system/plan9port/default.nix
+++ b/pkgs/tools/system/plan9port/default.nix
@@ -47,6 +47,6 @@ stdenv.mkDerivation rec {
     platforms = platforms.unix;
   };
 
-  inherit libXt;
-  inherit fontconfig;
+  libXt_dev = libXt.dev;
+  fontconfig_dev = fontconfig.dev;
 }
diff --git a/pkgs/tools/system/storebrowse/default.nix b/pkgs/tools/system/storebrowse/default.nix
index 041dd96e1ca8..aa510a28c231 100644
--- a/pkgs/tools/system/storebrowse/default.nix
+++ b/pkgs/tools/system/storebrowse/default.nix
@@ -28,9 +28,9 @@ stdenv.mkDerivation rec {
     GOSQLITE=$GOPATH/src/code.google.com/p/gosqlite
     mkdir -p $GOSQLITE
     cp -R $srcGoSqlite/* $GOSQLITE/
-    export CGO_CFLAGS=-I${sqlite}/include
-    export CGO_LDFLAGS=-L${sqlite}/lib
-    go build -ldflags "-r ${sqlite}/lib" -o storebrowse
+    export CGO_CFLAGS=-I${sqlite.dev}/include
+    export CGO_LDFLAGS=-L${sqlite.out}/lib
+    go build -ldflags "-r ${sqlite.out}/lib" -o storebrowse
   '';
 
   installPhase = ''
diff --git a/pkgs/tools/system/syslog-ng/default.nix b/pkgs/tools/system/syslog-ng/default.nix
index 4fcc0680ada6..d98f05c6aabb 100644
--- a/pkgs/tools/system/syslog-ng/default.nix
+++ b/pkgs/tools/system/syslog-ng/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchurl, eventlog, pkgconfig, glib, python, systemd, perl
-, riemann_c_client, protobufc, yacc }:
+, riemann_c_client, protobufc, pcre, yacc }:
 
 stdenv.mkDerivation rec {
   name = "syslog-ng-${version}";
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
     sha256 = "0qc21mwajk6xrra3gqy2nvaza5gq62psamq4ayphj7lqabdglizg";
   };
 
-  buildInputs = [ eventlog pkgconfig glib python systemd perl riemann_c_client protobufc yacc ];
+  buildInputs = [ eventlog pkgconfig glib python systemd perl riemann_c_client protobufc yacc pcre ];
 
   configureFlags = [
     "--enable-dynamic-linking"
diff --git a/pkgs/tools/system/thermald/default.nix b/pkgs/tools/system/thermald/default.nix
index 9fe9adaedadb..dd28d5b2b1da 100644
--- a/pkgs/tools/system/thermald/default.nix
+++ b/pkgs/tools/system/thermald/default.nix
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
   patchPhase = ''sed -e 's/upstartconfdir = \/etc\/init/upstartconfdir = $(out)\/etc\/init/' -i data/Makefile.am'';
 
   preConfigure = ''
-                   export PKG_CONFIG_PATH="${dbus_libs}/lib/pkgconfig:$PKG_CONFIG_PATH"
+                   export PKG_CONFIG_PATH="${dbus_libs.dev}/lib/pkgconfig:$PKG_CONFIG_PATH"
                    ./autogen.sh #--prefix="$out"
                  '';
 
diff --git a/pkgs/tools/text/diffutils/default.nix b/pkgs/tools/text/diffutils/default.nix
index f8413b9a0d0f..70a3bdeb7984 100644
--- a/pkgs/tools/text/diffutils/default.nix
+++ b/pkgs/tools/text/diffutils/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, coreutils ? null }:
+{ stdenv, fetchurl, xz, coreutils ? null }:
 
 stdenv.mkDerivation rec {
   name = "diffutils-3.3";
@@ -8,8 +8,10 @@ stdenv.mkDerivation rec {
     sha256 = "1761vymxbp4wb5rzjvabhdkskk95pghnn67464byvzb5mfl8jpm2";
   };
 
+  outputs = [ "out" "info" ];
+
   /* If no explicit coreutils is given, use the one from stdenv. */
-  nativeBuildInputs = [ coreutils ];
+  nativeBuildInputs = [ xz.bin coreutils ];
 
   meta = {
     homepage = http://www.gnu.org/software/diffutils/diffutils.html;
diff --git a/pkgs/tools/text/gawk/default.nix b/pkgs/tools/text/gawk/default.nix
index e2856b7acaa4..8578960b9875 100644
--- a/pkgs/tools/text/gawk/default.nix
+++ b/pkgs/tools/text/gawk/default.nix
@@ -1,6 +1,9 @@
-{ stdenv, fetchurl, libsigsegv, readline, readlineSupport ? false
+{ stdenv, fetchurl, xz, libsigsegv, readline, interactive ? false
 , locale ? null }:
 
+let
+  inherit (stdenv.lib) optional;
+in
 stdenv.mkDerivation rec {
   name = "gawk-4.1.3";
 
@@ -9,6 +12,9 @@ stdenv.mkDerivation rec {
     sha256 = "09d6pmx6h3i2glafm0jd1v1iyrs03vcyv2rkz12jisii3vlmbkz3";
   };
 
+  # When we do build separate interactive version, it makes sense to always include man.
+  outputs = [ "out" "info" ] ++ stdenv.lib.optional (!interactive) "man";
+
   doCheck = !(
        stdenv.isCygwin # XXX: `test-dup2' segfaults on Cygwin 6.1
     || stdenv.isDarwin # XXX: `locale' segfaults
@@ -16,18 +22,17 @@ stdenv.mkDerivation rec {
     || stdenv.isFreeBSD
   );
 
-  buildInputs = stdenv.lib.optional (stdenv.system != "x86_64-cygwin") libsigsegv
-    ++ stdenv.lib.optional readlineSupport readline
+  buildInputs = [ xz.bin ]
+    ++ stdenv.lib.optional (stdenv.system != "x86_64-cygwin") libsigsegv
+    ++ stdenv.lib.optional interactive readline
     ++ stdenv.lib.optional stdenv.isDarwin locale;
 
   configureFlags = stdenv.lib.optional (stdenv.system != "x86_64-cygwin") "--with-libsigsegv-prefix=${libsigsegv}"
-    ++ stdenv.lib.optional readlineSupport "--with-readline=${readline}"
-      # only darwin where reported, seems OK on non-chrooted Fedora (don't rebuild stdenv)
-    ++ stdenv.lib.optional (!readlineSupport && stdenv.isDarwin) "--without-readline";
+    ++ [(if interactive then "--with-readline=${readline}" else "--without-readline")];
 
   postInstall = "rm $out/bin/gawk-*";
 
-  meta = {
+  meta = with stdenv.lib; {
     homepage = http://www.gnu.org/software/gawk/;
     description = "GNU implementation of the Awk programming language";
 
@@ -45,8 +50,11 @@ stdenv.mkDerivation rec {
       lines of code.
     '';
 
-    license = stdenv.lib.licenses.gpl3Plus;
+    license = licenses.gpl3Plus;
+
+    platforms = platforms.unix;
 
     maintainers = [ ];
   };
 }
+
diff --git a/pkgs/tools/text/gnugrep/default.nix b/pkgs/tools/text/gnugrep/default.nix
index 8ef67674cd21..d618f842a4a5 100644
--- a/pkgs/tools/text/gnugrep/default.nix
+++ b/pkgs/tools/text/gnugrep/default.nix
@@ -12,6 +12,8 @@ stdenv.mkDerivation {
 
   # Perl is needed for testing
   nativeBuildInputs = [ perl ];
+  outputs = [ "out" "info" ]; # the man pages are rather small
+
   buildInputs = [ pcre libiconv ];
 
   # cygwin: FAIL: multibyte-white-space
@@ -38,7 +40,7 @@ stdenv.mkDerivation {
       chmod +x $out/bin/egrep $out/bin/fgrep
     '';
 
-  meta = {
+  meta = with stdenv.lib; {
     homepage = http://www.gnu.org/software/grep/;
     description = "GNU implementation of the Unix grep command";
 
@@ -48,10 +50,10 @@ stdenv.mkDerivation {
       prints the matching lines.
     '';
 
-    license = stdenv.lib.licenses.gpl3Plus;
+    license = licenses.gpl3Plus;
 
-    maintainers = [ stdenv.lib.maintainers.eelco ];
-    platforms = stdenv.lib.platforms.all;
+    maintainers = [ maintainers.eelco ];
+    platforms = platforms.all;
   };
 
   passthru = {inherit pcre;};
diff --git a/pkgs/tools/text/gnused/default.nix b/pkgs/tools/text/gnused/default.nix
index b1c5910029dd..037c2f17a63b 100644
--- a/pkgs/tools/text/gnused/default.nix
+++ b/pkgs/tools/text/gnused/default.nix
@@ -1,4 +1,4 @@
-{stdenv, fetchurl}:
+{ stdenv, fetchurl }:
 
 stdenv.mkDerivation {
   name = "gnused-4.2.2";
@@ -8,6 +8,8 @@ stdenv.mkDerivation {
     sha256 = "f048d1838da284c8bc9753e4506b85a1e0cc1ea8999d36f6995bcb9460cddbd7";
   };
 
+  outputs = [ "out" "info" ];
+
   meta = {
     homepage = http://www.gnu.org/software/sed/;
     description = "GNU sed, a batch stream editor";
diff --git a/pkgs/tools/text/groff/default.nix b/pkgs/tools/text/groff/default.nix
index 039bff8c655a..e08c10fd9ed2 100644
--- a/pkgs/tools/text/groff/default.nix
+++ b/pkgs/tools/text/groff/default.nix
@@ -35,9 +35,9 @@ stdenv.mkDerivation rec {
   postInstall = ''
       # Remove example output with (random?) colors to 
       # avoid non-determinism in the output
-      rm $out/share/doc/${name}/examples/hdtbl/*color*ps
+      rm $doc/share/doc/examples/hdtbl/*color*ps
       # Remove creation date
-      find $out/share/doc/${name} -type f -print0 | xargs -0 sed -i -e 's/%%CreationDate: .*//'
+      find $doc/share/doc/ -type f -print0 | xargs -0 sed -i -e 's/%%CreationDate: .*//'
     '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/tools/text/multitran/data/default.nix b/pkgs/tools/text/multitran/data/default.nix
index d0e39add665a..57a375d2a17b 100644
--- a/pkgs/tools/text/multitran/data/default.nix
+++ b/pkgs/tools/text/multitran/data/default.nix
@@ -3,7 +3,7 @@
 # This package requires a locale ru_RU.cp1251 locale entry.
 # Waiting for a better idea, I created it modifying a store file using:
 #   localedef -f CP1251 -i ru_RU ru_RU.CP1251
-# The store file mentioned is in "${glibc}/lib/locale/locale-archive"
+# The store file mentioned is in "${glibc.out}/lib/locale/locale-archive"
 
 stdenv.mkDerivation {
   name = "multitran-data-0.3";
diff --git a/pkgs/tools/text/unrtf/default.nix b/pkgs/tools/text/unrtf/default.nix
index c2b845064d91..b1d8525c4da3 100644
--- a/pkgs/tools/text/unrtf/default.nix
+++ b/pkgs/tools/text/unrtf/default.nix
@@ -13,6 +13,8 @@ stdenv.mkDerivation rec {
 
   preConfigure = "./bootstrap";
 
+  outputs = [ "out" "man" ];
+
   meta = with stdenv.lib; {
     description = "A converter from Rich Text Format to other formats";
     longDescription = ''
diff --git a/pkgs/tools/text/xidel/default.nix b/pkgs/tools/text/xidel/default.nix
index 89adcc75b195..000584a50e10 100644
--- a/pkgs/tools/text/xidel/default.nix
+++ b/pkgs/tools/text/xidel/default.nix
@@ -34,7 +34,7 @@ stdenv.mkDerivation rec {
   installPhase = ''
     mkdir -p "$out/bin"
     cp -a usr/* "$out/"
-    interpreter="$(echo ${stdenv.glibc}/lib/ld-linux*)"
+    interpreter="$(echo ${stdenv.glibc.out}/lib/ld-linux*)"
     patchelf --set-interpreter "$interpreter" "$out/bin/xidel"
     patchelf --set-rpath "${stdenv.lib.makeLibraryPath [stdenv.glibc]}" "$out/bin/xidel"
   '';
diff --git a/pkgs/tools/typesetting/asciidoc/default.nix b/pkgs/tools/typesetting/asciidoc/default.nix
index b26582a6cc71..7c393c524151 100644
--- a/pkgs/tools/typesetting/asciidoc/default.nix
+++ b/pkgs/tools/typesetting/asciidoc/default.nix
@@ -237,12 +237,12 @@ stdenv.mkDerivation rec {
     # We can remove PATH= when those impurities are fixed.
     sed -e "s|^ENV =.*|ENV = dict(XML_CATALOG_FILES='${docbook_xml_dtd_45}/xml/dtd/docbook/catalog.xml ${docbook5_xsl}/xml/xsl/docbook/catalog.xml ${docbook_xsl}/xml/xsl/docbook/catalog.xml', PATH='${tetex}/bin:${coreutils}/bin:${gnused}/bin')|" \
         -e "s|^ASCIIDOC =.*|ASCIIDOC = '$out/bin/asciidoc'|" \
-        -e "s|^XSLTPROC =.*|XSLTPROC = '${libxslt}/bin/xsltproc'|" \
+        -e "s|^XSLTPROC =.*|XSLTPROC = '${libxslt.bin}/bin/xsltproc'|" \
         -e "s|^DBLATEX =.*|DBLATEX = '${dblatexFull}/bin/dblatex'|" \
         -e "s|^FOP =.*|FOP = '${fop}/bin/fop'|" \
         -e "s|^W3M =.*|W3M = '${w3m}/bin/w3m'|" \
         -e "s|^LYNX =.*|LYNX = '${lynx}/bin/lynx'|" \
-        -e "s|^XMLLINT =.*|XMLLINT = '${libxml2}/bin/xmllint'|" \
+        -e "s|^XMLLINT =.*|XMLLINT = '${libxml2.bin}/bin/xmllint'|" \
         -e "s|^EPUBCHECK =.*|EPUBCHECK = 'nixpkgs_is_missing_epubcheck'|" \
         -i a2x.py
   '' + ''
diff --git a/pkgs/tools/typesetting/djvu2pdf/default.nix b/pkgs/tools/typesetting/djvu2pdf/default.nix
index 512efe497fa0..a426356a09f5 100644
--- a/pkgs/tools/typesetting/djvu2pdf/default.nix
+++ b/pkgs/tools/typesetting/djvu2pdf/default.nix
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
   installPhase = ''
     mkdir -p $out/bin
     cp -p djvu2pdf $out/bin
-    wrapProgram $out/bin/djvu2pdf --prefix PATH : ${ghostscript}/bin:${djvulibre}/bin:${which}/bin
+    wrapProgram $out/bin/djvu2pdf --prefix PATH : ${ghostscript}/bin:${djvulibre.bin}/bin:${which}/bin
 
     mkdir -p $out/man/man1
     cp -p djvu2pdf.1.gz $out/man/man1
diff --git a/pkgs/tools/typesetting/tex/dblatex/default.nix b/pkgs/tools/typesetting/tex/dblatex/default.nix
index 408ef8ae263c..18f9c99ee240 100644
--- a/pkgs/tools/typesetting/tex/dblatex/default.nix
+++ b/pkgs/tools/typesetting/tex/dblatex/default.nix
@@ -37,16 +37,16 @@ stdenv.mkDerivation rec {
     sed -i 's|self.install_layout == "deb"|False|' setup.py
   '' + stdenv.lib.optionalString enableAllFeatures ''
     for file in $(find -name "*.py"); do
-        sed -e 's|cmd = \["xsltproc|cmd = \["${libxslt}/bin/xsltproc|g' \
-            -e 's|Popen(\["xsltproc|Popen(\["${libxslt}/bin/xsltproc|g' \
+        sed -e 's|cmd = \["xsltproc|cmd = \["${libxslt.bin}/bin/xsltproc|g' \
+            -e 's|Popen(\["xsltproc|Popen(\["${libxslt.bin}/bin/xsltproc|g' \
             -e 's|cmd = \["texindy|cmd = ["nixpkgs_is_missing_texindy|g' \
             -e 's|cmd = "epstopdf|cmd = "${tex}/bin/epstopdf|g' \
             -e 's|cmd = \["makeindex|cmd = ["${tex}/bin/makeindex|g' \
             -e 's|doc.program = "pdflatex"|doc.program = "${tex}/bin/pdflatex"|g' \
             -e 's|self.program = "latex"|self.program = "${tex}/bin/latex"|g' \
             -e 's|Popen("pdflatex|Popen("${tex}/bin/pdflatex|g' \
-            -e 's|"fc-match"|"${fontconfig}/bin/fc-match"|g' \
-            -e 's|"fc-list"|"${fontconfig}/bin/fc-list"|g' \
+            -e 's|"fc-match"|"${fontconfig.bin}/bin/fc-match"|g' \
+            -e 's|"fc-list"|"${fontconfig.bin}/bin/fc-list"|g' \
             -e 's|cmd = "inkscape|cmd = "${inkscape}/bin/inkscape|g' \
             -e 's|cmd = "fig2dev|cmd = "${transfig}/bin/fig2dev|g' \
             -e 's|cmd = \["ps2pdf|cmd = ["${ghostscript}/bin/ps2pdf|g' \
diff --git a/pkgs/tools/typesetting/tex/texlive-new/bin.nix b/pkgs/tools/typesetting/tex/texlive-new/bin.nix
index 2cc673939038..83dcd4b72cd4 100644
--- a/pkgs/tools/typesetting/tex/texlive-new/bin.nix
+++ b/pkgs/tools/typesetting/tex/texlive-new/bin.nix
@@ -101,7 +101,8 @@ core = stdenv.mkDerivation rec {
     cp ../texk/texlive/linked_scripts/scripts.lst "$out/share/texmf-dist/scripts/texlive/"
   '' + /* doc location identical with individual TeX pkgs */ ''
     mkdir -p "$doc/doc"
-    mv "$out"/share/{man,info} "$doc"/doc
+    mv "$doc"/share/{man,info} "$doc"/doc
+    rmdir "$doc"/share
   '' + cleanBrokenLinks;
 
   setupHook = ./setup-hook.sh; # TODO: maybe texmf-nix -> texmf (and all references)
diff --git a/pkgs/tools/typesetting/tex/texlive-new/default.nix b/pkgs/tools/typesetting/tex/texlive-new/default.nix
index fbf4adde2ae7..a2f0bf706c87 100644
--- a/pkgs/tools/typesetting/tex/texlive-new/default.nix
+++ b/pkgs/tools/typesetting/tex/texlive-new/default.nix
@@ -104,6 +104,7 @@ let
   mkUrlName = { pname, tlType, ... }:
     pname + lib.optionalString (tlType != "run") ".${tlType}";
 
+  # command to unpack a single TL package
   unpackPkg =
     { # url ? null, urlPrefix ? null
       md5, pname, tlType, postUnpack ? "", stripPrefix ? 1, ...
@@ -119,6 +120,7 @@ let
             -C "$out" --anchored --exclude=tlpkg --keep-old-files
         '' + postUnpack;
 
+  # create a derivation that contains unpacked upstream TL packages
   mkPkgs = { pname, tlType, version, pkgList }@args:
       /* TODOs:
           - "historic" isn't mirrored; posted a question at #287
diff --git a/pkgs/tools/typesetting/tex/texlive/aggregate.nix b/pkgs/tools/typesetting/tex/texlive/aggregate.nix
index 56b093f921d1..550870b0a6a9 100644
--- a/pkgs/tools/typesetting/tex/texlive/aggregate.nix
+++ b/pkgs/tools/typesetting/tex/texlive/aggregate.nix
@@ -66,7 +66,7 @@ rec {
     # did the same thing in texLive, but couldn't get it to carry to the
     # binaries installed by texLiveFull
     for prog in $out/bin/*; do
-      wrapProgram "$prog" --prefix DYLD_LIBRARY_PATH : "${poppler}/lib"
+      wrapProgram "$prog" --prefix DYLD_LIBRARY_PATH : "${poppler.out}/lib"
     done
   '' ) [ "minInit" "defEnsureDir" "addInputs" ];
 
diff --git a/pkgs/tools/typesetting/tex/texlive/default.nix b/pkgs/tools/typesetting/tex/texlive/default.nix
index 74b3829cf89f..48a5ae8d6499 100644
--- a/pkgs/tools/typesetting/tex/texlive/default.nix
+++ b/pkgs/tools/typesetting/tex/texlive/default.nix
@@ -30,7 +30,7 @@ rec {
   setupHook = ./setup-hook.sh;
 
   doMainBuild = fullDepEntry ( stdenv.lib.optionalString stdenv.isDarwin ''
-    export DYLD_LIBRARY_PATH="${poppler}/lib"
+    export DYLD_LIBRARY_PATH="${poppler.out}/lib"
   '' + ''
     mkdir -p $out
     mkdir -p $out/nix-support
@@ -54,7 +54,7 @@ rec {
     # sed -e s@ncurses/curses.h@curses.h@g -i $(grep ncurses/curses.h -rl . )
     sed -e '1i\#include <string.h>\n\#include <stdlib.h>' -i $( find libs/teckit -name '*.cpp' -o -name '*.c' )
 
-    NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -I${icu}/include/layout";
+    NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -I${icu.dev}/include/layout";
 
     ./Build --prefix="$out" --datadir="$out/share" --mandir="$out/share/man" --infodir="$out/share/info" \
       ${args.lib.concatStringsSep " " configureFlags}
@@ -106,7 +106,7 @@ rec {
     PATH=$PATH:$out/bin mktexlsr $out/share/texmf*
   '' + stdenv.lib.optionalString stdenv.isDarwin ''
     for prog in $out/bin/*; do
-      wrapProgram "$prog" --prefix DYLD_LIBRARY_PATH : "${poppler}/lib"
+      wrapProgram "$prog" --prefix DYLD_LIBRARY_PATH : "${poppler.out}/lib"
     done
   '' ) [ "minInit" "defEnsureDir" "doUnpack" "doMakeInstall" "promoteLibexec" "patchShebangsInterim"];
 
@@ -119,7 +119,7 @@ rec {
     "patchShebangsInterimLibexec" "patchShebangsInterimTexmfDist"
     "patchShebangsInterimShareTexmfDist"];
 
-  buildInputs = [ zlib bzip2 ncurses libpng flex bison libX11 libICE xproto
+  buildInputs = [ zlib bzip2 ncurses libpng flex bison libX11.out libICE xproto
     freetype t1lib gd libXaw icu ghostscript ed libXt libXpm libXmu libXext
     xextproto perl libSM ruby expat curl libjpeg python fontconfig xz pkgconfig
     poppler libpaper graphite2 lesstif zziplib harfbuzz texinfo potrace gmp mpfr
diff --git a/pkgs/tools/typesetting/xmlto/default.nix b/pkgs/tools/typesetting/xmlto/default.nix
index 49fe7dc681fe..f99c14720760 100644
--- a/pkgs/tools/typesetting/xmlto/default.nix
+++ b/pkgs/tools/typesetting/xmlto/default.nix
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
 
   postInstall = ''
     wrapProgram "$out/bin/xmlto" \
-       --prefix PATH : "${libxslt}/bin:${libxml2}/bin:${getopt}/bin"
+       --prefix PATH : "${libxslt.bin}/bin:${libxml2.bin}/bin:${getopt}/bin"
 
     # `w3m' is needed for HTML to text conversions.
     substituteInPlace "$out/share/xmlto/format/docbook/txt" \
diff --git a/pkgs/tools/virtualization/aws/default.nix b/pkgs/tools/virtualization/aws/default.nix
index 123dbf647f0d..efce0c92b78f 100644
--- a/pkgs/tools/virtualization/aws/default.nix
+++ b/pkgs/tools/virtualization/aws/default.nix
@@ -15,7 +15,7 @@ stdenv.mkDerivation {
   installPhase =
     ''
       mkdir -p $out/bin
-      sed 's|\[curl|[${curl}/bin/curl|g' $src > $out/bin/aws
+      sed 's|\[curl|[${curl.bin}/bin/curl|g' $src > $out/bin/aws
       chmod +x $out/bin/aws
     '';
 
diff --git a/pkgs/tools/virtualization/ec2-ami-tools/default.nix b/pkgs/tools/virtualization/ec2-ami-tools/default.nix
index dee14db46bcf..6ccce4684ad5 100644
--- a/pkgs/tools/virtualization/ec2-ami-tools/default.nix
+++ b/pkgs/tools/virtualization/ec2-ami-tools/default.nix
@@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
       for i in $out/bin/*; do
           wrapProgram $i \
             --set EC2_HOME $out \
-            --prefix PATH : ${ruby}/bin:${openssl}/bin
+            --prefix PATH : ${ruby}/bin:${openssl.bin}/bin
       done
 
       sed -i 's|/bin/bash|${stdenv.shell}|' $out/lib/ec2/platform/base/pipeline.rb