summary refs log tree commit diff
path: root/pkgs/tools
diff options
context:
space:
mode:
authorMichael Raskin <7c6f434c@mail.ru>2018-08-11 16:34:22 +0000
committerGitHub <noreply@github.com>2018-08-11 16:34:22 +0000
commita68e5e918e52f1b45a13c585f6b015a254e94f18 (patch)
tree6e825fe861796e75ddf87da42d3f63c4c4889b88 /pkgs/tools
parentb9c8d68452aca58f4588788b78ec2e255f5b6192 (diff)
parent35c9435d15b31bdfc000d67670b7ac58dca30c4e (diff)
downloadnixlib-a68e5e918e52f1b45a13c585f6b015a254e94f18.tar
nixlib-a68e5e918e52f1b45a13c585f6b015a254e94f18.tar.gz
nixlib-a68e5e918e52f1b45a13c585f6b015a254e94f18.tar.bz2
nixlib-a68e5e918e52f1b45a13c585f6b015a254e94f18.tar.lz
nixlib-a68e5e918e52f1b45a13c585f6b015a254e94f18.tar.xz
nixlib-a68e5e918e52f1b45a13c585f6b015a254e94f18.tar.zst
nixlib-a68e5e918e52f1b45a13c585f6b015a254e94f18.zip
Merge pull request #44825 from oxij/docheck/continues-in-a-big-way
treewide: enable working, fix fixable, disable broken tests
Diffstat (limited to 'pkgs/tools')
-rw-r--r--pkgs/tools/compression/zstd/default.nix5
-rw-r--r--pkgs/tools/filesystems/e2fsprogs/default.nix8
-rw-r--r--pkgs/tools/filesystems/nixpart/0.4/parted.nix9
-rw-r--r--pkgs/tools/filesystems/sshfs-fuse/default.nix8
-rw-r--r--pkgs/tools/misc/jdupes/default.nix3
-rw-r--r--pkgs/tools/misc/memtest86+/default.nix2
-rw-r--r--pkgs/tools/misc/parted/default.nix10
-rw-r--r--pkgs/tools/misc/recutils/default.nix10
-rw-r--r--pkgs/tools/misc/system-config-printer/default.nix2
-rw-r--r--pkgs/tools/networking/aria2/default.nix4
-rw-r--r--pkgs/tools/networking/chrony/default.nix4
-rw-r--r--pkgs/tools/networking/mailutils/default.nix39
-rw-r--r--pkgs/tools/networking/socat/default.nix12
-rw-r--r--pkgs/tools/networking/swec/default.nix4
-rw-r--r--pkgs/tools/networking/tcpdump/default.nix8
-rw-r--r--pkgs/tools/nix/info/default.nix11
-rw-r--r--pkgs/tools/security/paperkey/default.nix7
-rw-r--r--pkgs/tools/security/pass/default.nix18
-rw-r--r--pkgs/tools/system/gptfdisk/default.nix4
-rw-r--r--pkgs/tools/text/kakasi/default.nix10
-rw-r--r--pkgs/tools/text/recode/default.nix2
-rw-r--r--pkgs/tools/text/wdiff/default.nix4
-rw-r--r--pkgs/tools/typesetting/xmlto/default.nix4
23 files changed, 134 insertions, 54 deletions
diff --git a/pkgs/tools/compression/zstd/default.nix b/pkgs/tools/compression/zstd/default.nix
index edb771b5b3ec..f9a05c4281af 100644
--- a/pkgs/tools/compression/zstd/default.nix
+++ b/pkgs/tools/compression/zstd/default.nix
@@ -1,5 +1,6 @@
 { stdenv, fetchFromGitHub, gnugrep
 , fixDarwinDylibNames
+, file
 , legacySupport ? false }:
 
 stdenv.mkDerivation rec {
@@ -19,6 +20,10 @@ stdenv.mkDerivation rec {
     "ZSTD_LEGACY_SUPPORT=${if legacySupport then "1" else "0"}"
   ];
 
+  checkInputs = [ file ];
+  doCheck = false; # fails with "zstd: --list does not support reading from standard input"
+                   # probably a bug
+
   installFlags = [
     "PREFIX=$(out)"
   ];
diff --git a/pkgs/tools/filesystems/e2fsprogs/default.nix b/pkgs/tools/filesystems/e2fsprogs/default.nix
index ef18d24778ff..0e983ca219bb 100644
--- a/pkgs/tools/filesystems/e2fsprogs/default.nix
+++ b/pkgs/tools/filesystems/e2fsprogs/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPackages, fetchurl, pkgconfig, libuuid, gettext, texinfo }:
+{ stdenv, buildPackages, fetchurl, pkgconfig, libuuid, gettext, texinfo, perl }:
 
 stdenv.mkDerivation rec {
   name = "e2fsprogs-1.44.3";
@@ -21,8 +21,10 @@ stdenv.mkDerivation rec {
       "--disable-libuuid" "--disable-uuidd" "--disable-libblkid" "--disable-fsck"
     ] else [
       "--enable-libuuid --disable-e2initrd-helper"
-    ]
-  ;
+    ];
+
+  checkInputs = [ perl ];
+  doCheck = false; # fails
 
   # hacky way to make it install *.pc
   postInstall = ''
diff --git a/pkgs/tools/filesystems/nixpart/0.4/parted.nix b/pkgs/tools/filesystems/nixpart/0.4/parted.nix
index 3f43fdc0c395..f356727e64bb 100644
--- a/pkgs/tools/filesystems/nixpart/0.4/parted.nix
+++ b/pkgs/tools/filesystems/nixpart/0.4/parted.nix
@@ -13,8 +13,7 @@ stdenv.mkDerivation rec {
     ++ stdenv.lib.optional (readline != null) readline
     ++ stdenv.lib.optional (gettext != null) gettext
     ++ stdenv.lib.optional (lvm2 != null) lvm2
-    ++ stdenv.lib.optional (hurd != null) hurd
-    ++ stdenv.lib.optional doCheck check;
+    ++ stdenv.lib.optional (hurd != null) hurd;
 
   configureFlags =
        (if (readline != null)
@@ -24,11 +23,7 @@ stdenv.mkDerivation rec {
     ++ stdenv.lib.optional enableStatic "--enable-static";
 
   doCheck = true;
-
-  preCheck =
-    stdenv.lib.optionalString doCheck
-      # The `t0400-loop-clobber-infloop.sh' test wants `mkswap'.
-      "export PATH=\"${utillinux}/sbin:$PATH\"";
+  checkInputs = [ check utillinux ];
 
   meta = {
     description = "Create, destroy, resize, check, and copy partitions";
diff --git a/pkgs/tools/filesystems/sshfs-fuse/default.nix b/pkgs/tools/filesystems/sshfs-fuse/default.nix
index 6d95d5ee12b5..b7cccae0f38d 100644
--- a/pkgs/tools/filesystems/sshfs-fuse/default.nix
+++ b/pkgs/tools/filesystems/sshfs-fuse/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchFromGitHub, meson, pkgconfig, ninja, glib, fuse3
-, docutils
+, docutils, which, python3Packages
 }:
 
 stdenv.mkDerivation rec {
@@ -25,6 +25,12 @@ stdenv.mkDerivation rec {
     ln -sf $out/bin/sshfs $out/sbin/mount.sshfs
   '';
 
+  checkInputs = [ which ] ++ (with python3Packages; [ python pytest ]);
+
+  checkPhase = ''
+    python3 -m pytest test/
+  '';
+
   meta = with stdenv.lib; {
     inherit (src.meta) homepage;
     description = "FUSE-based filesystem that allows remote filesystems to be mounted over SSH";
diff --git a/pkgs/tools/misc/jdupes/default.nix b/pkgs/tools/misc/jdupes/default.nix
index acd58c9bcbd5..bf5e04a511f7 100644
--- a/pkgs/tools/misc/jdupes/default.nix
+++ b/pkgs/tools/misc/jdupes/default.nix
@@ -19,9 +19,10 @@ stdenv.mkDerivation rec {
 
   enableParallelBuilding = true;
 
+  doCheck = false; # broken Makefile, the above also removes tests
+
   postInstall = ''
     install -Dm644 -t $out/share/doc/jdupes CHANGES LICENSE README
-
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/tools/misc/memtest86+/default.nix b/pkgs/tools/misc/memtest86+/default.nix
index 6103ba021260..7bebc26d7ec2 100644
--- a/pkgs/tools/misc/memtest86+/default.nix
+++ b/pkgs/tools/misc/memtest86+/default.nix
@@ -24,6 +24,8 @@ stdenv.mkDerivation rec {
 
   buildFlags = "memtest.bin";
 
+  doCheck = false; # fails
+
   installPhase = ''
     mkdir -p $out
     chmod -x memtest.bin
diff --git a/pkgs/tools/misc/parted/default.nix b/pkgs/tools/misc/parted/default.nix
index 6649db4c48da..643a3bafc66f 100644
--- a/pkgs/tools/misc/parted/default.nix
+++ b/pkgs/tools/misc/parted/default.nix
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
       sha256 = "0i29lfg8cwj342q5s7qwqhncz2bkifj5rjc7cx6jd4zqb6ykkndj";
     });
 
-  postPatch = stdenv.lib.optionalString doCheck ''
+  postPatch = ''
     patchShebangs tests
   '';
 
@@ -31,8 +31,7 @@ stdenv.mkDerivation rec {
     ++ stdenv.lib.optional (readline != null) readline
     ++ stdenv.lib.optional (gettext != null) gettext
     ++ stdenv.lib.optional (lvm2 != null) lvm2
-    ++ stdenv.lib.optional (hurd != null) hurd
-    ++ stdenv.lib.optionals doCheck [ check perl python2 ];
+    ++ stdenv.lib.optional (hurd != null) hurd;
 
   configureFlags =
        (if (readline != null)
@@ -45,10 +44,7 @@ stdenv.mkDerivation rec {
   # That should hopefully be fixed now.
   doCheck = !stdenv.hostPlatform.isMusl; /* translation test */
 
-  preCheck =
-    stdenv.lib.optionalString doCheck
-      # The `t0400-loop-clobber-infloop.sh' test wants `mkswap'.
-      "export PATH=\"${utillinux}/sbin:$PATH\"";
+  checkInputs = [ check perl python2 utillinux ];
 
   meta = {
     description = "Create, destroy, resize, check, and copy partitions";
diff --git a/pkgs/tools/misc/recutils/default.nix b/pkgs/tools/misc/recutils/default.nix
index a1fa7dee0836..3dd3baed0996 100644
--- a/pkgs/tools/misc/recutils/default.nix
+++ b/pkgs/tools/misc/recutils/default.nix
@@ -8,14 +8,16 @@ stdenv.mkDerivation rec {
     sha256 = "0cdwa4094x3yx7vn98xykvnlp9rngvd58d19vs3vh5hrvggccg93";
   };
 
-  doCheck = true;
-
   hardeningDisable = [ "format" ];
 
-  buildInputs = [ curl emacs ] ++ (stdenv.lib.optionals doCheck [ check bc ]);
+  buildInputs = [ curl emacs ];
+
+  checkInputs = [ check bc ];
+  doCheck = true;
 
+  # one file fails to compile with emacs 26
   postInstall = ''
-    ${emacs}/bin/emacs -Q -batch -f batch-byte-compile $out/share/emacs/site-lisp/*.el #*/
+    ${emacs}/bin/emacs -Q -batch -f batch-byte-compile $out/share/emacs/site-lisp/*.el || true
   '';
 
   meta = {
diff --git a/pkgs/tools/misc/system-config-printer/default.nix b/pkgs/tools/misc/system-config-printer/default.nix
index a58eb3156384..c898761e424b 100644
--- a/pkgs/tools/misc/system-config-printer/default.nix
+++ b/pkgs/tools/misc/system-config-printer/default.nix
@@ -41,6 +41,8 @@ stdenv.mkDerivation rec {
 
   stripDebugList = [ "bin" "lib" "etc/udev" ];
 
+  doCheck = false; # generates shebangs in check phase, too lazy to fix
+
   postInstall =
     ''
       buildPythonPath "$out $pythonPath"
diff --git a/pkgs/tools/networking/aria2/default.nix b/pkgs/tools/networking/aria2/default.nix
index 87725f51a7fb..028691229e3b 100644
--- a/pkgs/tools/networking/aria2/default.nix
+++ b/pkgs/tools/networking/aria2/default.nix
@@ -1,5 +1,6 @@
 { stdenv, fetchFromGitHub, pkgconfig, autoreconfHook
 , openssl, c-ares, libxml2, sqlite, zlib, libssh2
+, cppunit
 , Security
 }:
 
@@ -21,6 +22,9 @@ stdenv.mkDerivation rec {
 
   configureFlags = [ "--with-ca-bundle=/etc/ssl/certs/ca-certificates.crt" ];
 
+  checkInputs = [ cppunit ];
+  doCheck = false; # needs the net
+
   enableParallelBuilding = true;
 
   meta = with stdenv.lib; {
diff --git a/pkgs/tools/networking/chrony/default.nix b/pkgs/tools/networking/chrony/default.nix
index 2db26985dcf9..bf1ef0600bcc 100644
--- a/pkgs/tools/networking/chrony/default.nix
+++ b/pkgs/tools/networking/chrony/default.nix
@@ -13,6 +13,10 @@ stdenv.mkDerivation rec {
     sha256 = "0a1ilzr88xhzx1ql3xhn36a4rvl79hvp0dvgm3az4cjhhzav47qd";
   };
 
+  postPatch = ''
+    patchShebangs test
+  '';
+
   buildInputs = [ readline texinfo nss nspr ]
     ++ stdenv.lib.optionals stdenv.isLinux [ libcap libseccomp pps-tools ];
   nativeBuildInputs = [ pkgconfig ];
diff --git a/pkgs/tools/networking/mailutils/default.nix b/pkgs/tools/networking/mailutils/default.nix
index 4df7f80fff6c..f4e14d982480 100644
--- a/pkgs/tools/networking/mailutils/default.nix
+++ b/pkgs/tools/networking/mailutils/default.nix
@@ -2,9 +2,7 @@
 , gdbm, pam, readline, ncurses, gnutls, guile, texinfo, gnum4, sasl, fribidi, nettools
 , python, gss, mysql, sendmailPath ? "/run/wrappers/bin/sendmail" }:
 
-let
-  p = "https://raw.githubusercontent.com/gentoo/gentoo/9c921e89d51876fd876f250324893fd90c019326/net-mail/mailutils/files";
-in stdenv.mkDerivation rec {
+stdenv.mkDerivation rec {
   name = "${project}-${version}";
   project = "mailutils";
   version = "3.2";
@@ -14,9 +12,21 @@ in stdenv.mkDerivation rec {
     sha256 = "0zh7xn8yvnw9zkc7gi5290i34viwxp1rn0g1q9nyvmckkvk59lwn";
   };
 
+  postPatch = ''
+    sed -i -e '/chown root:mail/d' \
+           -e 's/chmod [24]755/chmod 0755/' \
+      */Makefile{.in,.am}
+    sed -i 's:/usr/lib/mysql:${mysql.connector-c}/lib/mysql:' configure.ac
+    sed -i 's/0\.18/0.19/' configure.ac
+    sed -i -e 's:mysql/mysql.h:mysql.h:' \
+           -e 's:mysql/errmsg.h:errmsg.h:' \
+      sql/mysql.c
+  '';
+
   nativeBuildInputs = [
     autoreconfHook gettext pkgconfig
-  ] ++ stdenv.lib.optional doCheck dejagnu;
+  ];
+
   buildInputs = [
     gdbm pam readline ncurses gnutls guile texinfo gnum4 sasl fribidi nettools
     gss mysql.connector-c python
@@ -33,7 +43,6 @@ in stdenv.mkDerivation rec {
     ./path-to-cat.patch
   ];
 
-  doCheck = true;
   enableParallelBuilding = false;
   hardeningDisable = [ "format" ];
 
@@ -44,26 +53,21 @@ in stdenv.mkDerivation rec {
     "--with-path-sendmail=${sendmailPath}"
   ];
 
-  readmsg-tests = stdenv.lib.optionals doCheck [
+  readmsg-tests = let
+    p = "https://raw.githubusercontent.com/gentoo/gentoo/9c921e89d51876fd876f250324893fd90c019326/net-mail/mailutils/files";
+  in [
     (fetchurl { url = "${p}/hdr.at"; sha256 = "0phpkqyhs26chn63wjns6ydx9468ng3ssbjbfhcvza8h78jlsd98"; })
     (fetchurl { url = "${p}/nohdr.at"; sha256 = "1vkbkfkbqj6ml62s1am8i286hxwnpsmbhbnq0i2i0j1i7iwkk4b7"; })
     (fetchurl { url = "${p}/twomsg.at"; sha256 = "15m29rg2xxa17xhx6jp4s2vwa9d4khw8092vpygqbwlhw68alk9g"; })
     (fetchurl { url = "${p}/weed.at"; sha256 = "1101xakhc99f5gb9cs3mmydn43ayli7b270pzbvh7f9rbvh0d0nh"; })
   ];
 
-  postPatch = ''
-    sed -i -e '/chown root:mail/d' \
-           -e 's/chmod [24]755/chmod 0755/' \
-      */Makefile{.in,.am}
-    sed -i 's:/usr/lib/mysql:${mysql.connector-c}/lib/mysql:' configure.ac
-    sed -i 's/0\.18/0.19/' configure.ac
-    sed -i -e 's:mysql/mysql.h:mysql.h:' \
-           -e 's:mysql/errmsg.h:errmsg.h:' \
-      sql/mysql.c
-  '';
-
   NIX_CFLAGS_COMPILE = "-L${mysql.connector-c}/lib/mysql -I${mysql.connector-c}/include/mysql";
 
+  checkInputs = [ dejagnu ];
+  doCheck = false; # fails 1 out of a bunch of tests, looks like a bug
+  doInstallCheck = false; # fails
+
   preCheck = ''
     # Add missing test files
     cp ${builtins.toString readmsg-tests} readmsg/tests/
@@ -79,6 +83,7 @@ in stdenv.mkDerivation rec {
     # Provide libraries for mhn.
     export LD_LIBRARY_PATH=$(pwd)/lib/.libs
   '';
+
   postCheck = ''
     unset LD_LIBRARY_PATH
   '';
diff --git a/pkgs/tools/networking/socat/default.nix b/pkgs/tools/networking/socat/default.nix
index 0e9efb028ba8..37fe3398ae8b 100644
--- a/pkgs/tools/networking/socat/default.nix
+++ b/pkgs/tools/networking/socat/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, openssl, readline }:
+{ stdenv, fetchurl, openssl, readline, which, nettools }:
 
 stdenv.mkDerivation rec {
   name = "socat-1.7.3.2";
@@ -8,10 +8,20 @@ stdenv.mkDerivation rec {
     sha256 = "0lcj6zpra33xhgvhmz9l3cqz10v8ybafb8dd1yqkwf1rhy01ymp3";
   };
 
+  postPatch = ''
+    patchShebangs test.sh
+    substituteInPlace test.sh \
+      --replace /bin/rm rm \
+      --replace /sbin/ifconfig ifconfig
+  '';
+
   buildInputs = [ openssl readline ];
 
   hardeningEnable = [ "pie" ];
 
+  checkInputs = [ which nettools ];
+  doCheck = false; # fails a bunch, hangs
+
   meta = {
     description = "A utility for bidirectional data transfer between two independent data channels";
     homepage = http://www.dest-unreach.org/socat/;
diff --git a/pkgs/tools/networking/swec/default.nix b/pkgs/tools/networking/swec/default.nix
index 4af7e1eb5bab..bc9c9532e4f0 100644
--- a/pkgs/tools/networking/swec/default.nix
+++ b/pkgs/tools/networking/swec/default.nix
@@ -9,8 +9,8 @@ stdenv.mkDerivation rec {
     sha256 = "1m3971z4z1wr0paggprfz0n8ng8vsnkc9m6s3bdplgyz7qjk6jwx";
   };
 
-  buildInputs = [ makeWrapper perl LWP URI HTMLParser ]
-   ++ stdenv.lib.optionals doCheck [ HTTPServerSimple Parent ];
+  buildInputs = [ makeWrapper perl LWP URI HTMLParser ];
+  checkInputs = [ HTTPServerSimple Parent ];
 
   configurePhase = ''
     for i in swec tests/{runTests,testServer}
diff --git a/pkgs/tools/networking/tcpdump/default.nix b/pkgs/tools/networking/tcpdump/default.nix
index 8b4850a6347c..58f020e1bdd8 100644
--- a/pkgs/tools/networking/tcpdump/default.nix
+++ b/pkgs/tools/networking/tcpdump/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, libpcap }:
+{ stdenv, fetchurl, libpcap, perl }:
 
 stdenv.mkDerivation rec {
   name = "tcpdump-${version}";
@@ -16,6 +16,12 @@ stdenv.mkDerivation rec {
   #   sha256 = "1vzrvn1q7x28h18yskqc390y357pzpg5xd3pzzj4xz3llnvsr64p";
   # };
 
+  postPatch = ''
+    patchShebangs tests
+  '';
+
+  checkInputs = [ perl ];
+
   buildInputs = [ libpcap ];
 
   configureFlags = stdenv.lib.optional
diff --git a/pkgs/tools/nix/info/default.nix b/pkgs/tools/nix/info/default.nix
index cfdef4dd5613..898026a62902 100644
--- a/pkgs/tools/nix/info/default.nix
+++ b/pkgs/tools/nix/info/default.nix
@@ -1,15 +1,12 @@
-{ stdenv, lib, coreutils, findutils, gnugrep, darwin, shellcheck
-, doCheck ? false # Avoid having GHC in the build-time closure of all NixOS configuratinos
+{ stdenv, lib, coreutils, findutils, gnugrep, darwin
+# Avoid having GHC in the build-time closure of all NixOS configurations
+, doCheck ? false, shellcheck
 }:
 
 stdenv.mkDerivation {
   name = "nix-info";
   src = ./info.sh;
 
-  nativeBuildInputs = lib.optionals doCheck [
-    shellcheck
-  ];
-
   path = lib.makeBinPath ([
     coreutils findutils gnugrep
   ] ++ (if stdenv.isDarwin then [ darwin.DarwinTools ] else []));
@@ -29,6 +26,8 @@ stdenv.mkDerivation {
   '';
 
   inherit doCheck;
+  checkInputs = [ shellcheck ];
+
   checkPhase = ''
     shellcheck ./nix-info
   '';
diff --git a/pkgs/tools/security/paperkey/default.nix b/pkgs/tools/security/paperkey/default.nix
index 1c235c9d8839..44cee21bc497 100644
--- a/pkgs/tools/security/paperkey/default.nix
+++ b/pkgs/tools/security/paperkey/default.nix
@@ -9,6 +9,13 @@ stdenv.mkDerivation rec {
     sha256 = "1prd2jaf4zjad3xhv160hmi5n408ssljfg7iz90jxs9w111pjwy4";
   };
 
+  postPatch = ''
+    for a in checks/*.sh ; do
+      substituteInPlace $a \
+        --replace /bin/echo echo
+    done
+  '';
+
   enableParallelBuilding = true;
 
   meta = with stdenv.lib; {
diff --git a/pkgs/tools/security/pass/default.nix b/pkgs/tools/security/pass/default.nix
index 007414d68a5e..e7a3d2e0759b 100644
--- a/pkgs/tools/security/pass/default.nix
+++ b/pkgs/tools/security/pass/default.nix
@@ -87,6 +87,24 @@ let
         --prefix PATH : "$out/bin:${wrapperPath}"
     '';
 
+    # Turn "check" into "installcheck", since we want to test our pass,
+    # not the one before the fixup.
+    postPatch = ''
+      patchShebangs tests
+
+      # the turning
+      sed -i -e 's@^PASS=.*''$@PASS=$out/bin/pass@' \
+             -e 's@^GPGS=.*''$@GPG=${gnupg}/bin/gpg2@' \
+             -e '/which gpg/ d' \
+        tests/setup.sh
+    '';
+
+    doCheck = false;
+
+    doInstallCheck = true;
+    installCheckInputs = [ git ];
+    installCheckTarget = "test";
+
     passthru = {
       extensions = passExtensions;
     } // extraPassthru;
diff --git a/pkgs/tools/system/gptfdisk/default.nix b/pkgs/tools/system/gptfdisk/default.nix
index 4a3c895c3b93..25d60ffca5dc 100644
--- a/pkgs/tools/system/gptfdisk/default.nix
+++ b/pkgs/tools/system/gptfdisk/default.nix
@@ -11,7 +11,9 @@ stdenv.mkDerivation rec {
     sha256 = "13d7gff4prl1nsdknjigmb7bbqhn79165n01v4y9mwbnd0d3jqxn";
   };
 
-  patchPhase = stdenv.lib.optionalString stdenv.isDarwin ''
+  postPatch = ''
+    patchShebangs gdisk_test.sh
+  '' + stdenv.lib.optionalString stdenv.isDarwin ''
     substituteInPlace Makefile.mac --replace \
       "-mmacosx-version-min=10.4" "-mmacosx-version-min=10.6"
     substituteInPlace Makefile.mac --replace \
diff --git a/pkgs/tools/text/kakasi/default.nix b/pkgs/tools/text/kakasi/default.nix
index b0baeaab5f66..626455732599 100644
--- a/pkgs/tools/text/kakasi/default.nix
+++ b/pkgs/tools/text/kakasi/default.nix
@@ -21,4 +21,14 @@ stdenv.mkDerivation rec {
     url = "http://kakasi.namazu.org/stable/${name}.tar.xz";
     sha256 = "1qry3xqb83pjgxp3my8b1sy77z4f0893h73ldrvdaky70cdppr9f";
   };
+
+  postPatch = ''
+    for a in tests/kakasi-* ; do
+      substituteInPlace $a \
+        --replace "/bin/echo" echo
+    done
+  '';
+
+  doCheck = false; # fails 1 of 6 tests
+
 }
diff --git a/pkgs/tools/text/recode/default.nix b/pkgs/tools/text/recode/default.nix
index 9946da614c71..f097ed5c0fa8 100644
--- a/pkgs/tools/text/recode/default.nix
+++ b/pkgs/tools/text/recode/default.nix
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
     substituteInPlace src/Makefile.am --replace "ansi2knr" ""
   '';
 
-  #doCheck = true; # doesn't work yet
+  doCheck = false; # fails 10 out of 16 tests
 
   preCheck = ''
     checkFlagsArray=(CPPFLAGS="-I../lib" LDFLAGS="-L../src/.libs -Wl,-rpath=../src/.libs")
diff --git a/pkgs/tools/text/wdiff/default.nix b/pkgs/tools/text/wdiff/default.nix
index f4edc02b9fae..df2ef2150691 100644
--- a/pkgs/tools/text/wdiff/default.nix
+++ b/pkgs/tools/text/wdiff/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, texinfo }:
+{ stdenv, fetchurl, texinfo, which }:
 
 stdenv.mkDerivation rec {
   name = "wdiff-1.2.2";
@@ -10,6 +10,8 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ texinfo ];
 
+  checkInputs = [ which ];
+
   meta = {
     homepage = http://www.gnu.org/software/wdiff/;
     description = "Comparing files on a word by word basis";
diff --git a/pkgs/tools/typesetting/xmlto/default.nix b/pkgs/tools/typesetting/xmlto/default.nix
index 939615f5797c..400a26f84fd2 100644
--- a/pkgs/tools/typesetting/xmlto/default.nix
+++ b/pkgs/tools/typesetting/xmlto/default.nix
@@ -9,7 +9,9 @@ stdenv.mkDerivation rec {
     sha256 = "0xhj8b2pwp4vhl9y16v3dpxpsakkflfamr191mprzsspg4xdyc0i";
   };
 
-  patchPhase = ''
+  postPatch = ''
+    patchShebangs xmlif/test/run-test
+
     substituteInPlace "xmlto.in" \
       --replace "/bin/bash" "${bash}/bin/bash"
     substituteInPlace "xmlto.in" \