summary refs log tree commit diff
path: root/pkgs/tools
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/tools')
-rw-r--r--pkgs/tools/bluetooth/obexftp/default.nix1
-rw-r--r--pkgs/tools/bluetooth/openobex/default.nix1
-rw-r--r--pkgs/tools/filesystems/mtools/default.nix11
-rw-r--r--pkgs/tools/filesystems/sshfs-fuse/default.nix1
-rw-r--r--pkgs/tools/graphics/qrdecode/default.nix5
-rw-r--r--pkgs/tools/misc/gource/default.nix13
-rw-r--r--pkgs/tools/misc/screen/default.nix40
-rw-r--r--pkgs/tools/networking/altermime/default.nix50
-rw-r--r--pkgs/tools/networking/dnsmasq/default.nix12
-rw-r--r--pkgs/tools/networking/fdm/default.nix53
-rw-r--r--pkgs/tools/networking/getmail/default.nix48
-rw-r--r--pkgs/tools/networking/philter/default.nix57
-rw-r--r--pkgs/tools/networking/ripmime/default.nix51
-rw-r--r--pkgs/tools/security/gnupg1/default.nix12
-rw-r--r--pkgs/tools/text/ebook-tools/default.nix4
-rw-r--r--pkgs/tools/text/kdiff3/adjust-docbook-xml-version-to-4.2.patch45
-rw-r--r--pkgs/tools/text/kdiff3/default.nix11
-rw-r--r--pkgs/tools/text/recode/default.nix46
-rw-r--r--pkgs/tools/text/recode/recode-3.6-as-if.patch19
-rw-r--r--pkgs/tools/text/recode/recode-3.6-gettextfix.diff23
20 files changed, 474 insertions, 29 deletions
diff --git a/pkgs/tools/bluetooth/obexftp/default.nix b/pkgs/tools/bluetooth/obexftp/default.nix
index c1531b1ce162a..7326b1b407528 100644
--- a/pkgs/tools/bluetooth/obexftp/default.nix
+++ b/pkgs/tools/bluetooth/obexftp/default.nix
@@ -15,5 +15,6 @@ stdenv.mkDerivation rec {
   meta = {
     homepage = http://dev.zuckschwerdt.org/openobex/wiki/ObexFtp;
     description = "A library and tool to access files on OBEX-based devices (such as Bluetooth phones)";
+    platforms = stdenv.lib.platforms.linux;
   };
 }
diff --git a/pkgs/tools/bluetooth/openobex/default.nix b/pkgs/tools/bluetooth/openobex/default.nix
index 21c0c119c4cb4..97ed96371c8f4 100644
--- a/pkgs/tools/bluetooth/openobex/default.nix
+++ b/pkgs/tools/bluetooth/openobex/default.nix
@@ -15,5 +15,6 @@ stdenv.mkDerivation rec {
   meta = {
     homepage = http://dev.zuckschwerdt.org/openobex/;
     description = "An open source implementation of the Object Exchange (OBEX) protocol";
+    platforms = stdenv.lib.platforms.linux;
   };
 }
diff --git a/pkgs/tools/filesystems/mtools/default.nix b/pkgs/tools/filesystems/mtools/default.nix
index 5bb5bbc6d9ade..19ec65e4fca06 100644
--- a/pkgs/tools/filesystems/mtools/default.nix
+++ b/pkgs/tools/filesystems/mtools/default.nix
@@ -1,17 +1,18 @@
-{ stdenv, fetchurl, texinfo }:
+{ stdenv, fetchurl }:
 
 stdenv.mkDerivation rec {
-  name = "mtools-4.0.13";
+  name = "mtools-4.0.15";
 
   src = fetchurl {
     url = "mirror://gnu/mtools/${name}.tar.bz2";
-    sha256 = "1nj7lc2q1g66l3ma8z1c95nglf9himnr6k85b5rry99f9za7npbg";
+    sha256 = "169qjy3fmmhxiy0jljh84jvjh8mh1p8gglwqgjhq7hbw235fy399";
   };
 
-  buildInputs = [ texinfo ];
+  doCheck = true;
 
   meta = {
     homepage = http://www.gnu.org/software/mtools/;
-    description = "Utilities to access MS-DOS disks without mounting them";
+    description = "GNU mtools, utilities to access MS-DOS disks";
+    platforms = stdenv.lib.platforms.gnu;  # arbitrary choice
   };
 }
diff --git a/pkgs/tools/filesystems/sshfs-fuse/default.nix b/pkgs/tools/filesystems/sshfs-fuse/default.nix
index 74a367e852250..92e7d854fd886 100644
--- a/pkgs/tools/filesystems/sshfs-fuse/default.nix
+++ b/pkgs/tools/filesystems/sshfs-fuse/default.nix
@@ -13,5 +13,6 @@ stdenv.mkDerivation rec {
   meta = {
     homepage = http://fuse.sourceforge.net/sshfs.html;
     description = "FUSE-based filesystem that allows remote filesystems to be mounted over SSH";
+    platforms = stdenv.lib.platforms.linux;
   };
 }
diff --git a/pkgs/tools/graphics/qrdecode/default.nix b/pkgs/tools/graphics/qrdecode/default.nix
index 39e61aba6670b..16c91720964a5 100644
--- a/pkgs/tools/graphics/qrdecode/default.nix
+++ b/pkgs/tools/graphics/qrdecode/default.nix
@@ -6,7 +6,7 @@ let
 
   version = lib.attrByPath ["version"] "0.9.3" args; 
   buildInputs = with args; [
-    libpng libcv
+    libpng opencv
   ];
 in
 rec {
@@ -25,6 +25,9 @@ rec {
   preConfigure = fullDepEntry ''
     cd src
     sed -e /LDCONFIG/d -i libdecodeqr/Makefile.in
+    sed -e '/#include <cv.h>/a#include <ml.h>' -i libdecodeqr/imagereader.h
+    export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -I${args.opencv}/include/opencv"
+    export NIX_LDFLAGS="$NIX_LDFLAGS -lcxcore"
   '' ["doUnpack"];
   postInstall = fullDepEntry ''
     cp sample/simple/simpletest $out/bin/qrdecode 
diff --git a/pkgs/tools/misc/gource/default.nix b/pkgs/tools/misc/gource/default.nix
new file mode 100644
index 0000000000000..30e5a73685e69
--- /dev/null
+++ b/pkgs/tools/misc/gource/default.nix
@@ -0,0 +1,13 @@
+{stdenv, fetchurl, SDL, ftgl, pkgconfig, libpng, libjpeg, pcre, SDL_image, glew, mesa}:
+ 
+stdenv.mkDerivation {
+  name = "gource-0.28";
+  
+  src = fetchurl {
+    url = http://gource.googlecode.com/files/gource-0.28.tar.gz;
+    sha256 = "09538vcf9n21qx4cmcjrki6ilayvm4x6s0zdf00mrd1h0bklhxn3";
+  };
+  
+  buildInputs = [glew SDL ftgl pkgconfig libpng libjpeg pcre SDL_image mesa];
+
+}
diff --git a/pkgs/tools/misc/screen/default.nix b/pkgs/tools/misc/screen/default.nix
index f31a28c221a2c..ee3a79b7aa02e 100644
--- a/pkgs/tools/misc/screen/default.nix
+++ b/pkgs/tools/misc/screen/default.nix
@@ -1,19 +1,47 @@
 {stdenv, fetchurl, ncurses}:
 
-stdenv.mkDerivation {
+stdenv.mkDerivation rec {
   name = "screen-4.0.3";
+
   src = fetchurl {
-    url = mirror://gnu/screen/screen-4.0.3.tar.gz;
+    url = "mirror://gnu/screen/${name}.tar.gz";
     sha256 = "0xvckv1ia5pjxk7fs4za6gz2njwmfd54sc464n8ab13096qxbw3q";
   };
 
-  buildInputs = [ncurses];
+  configureFlags = [ "--enable-telnet" ];
+  buildInputs = [ ncurses ];
+
+  doCheck = true;
 
   meta = {
-    homepage = "http://www.gnu.org/software/screen/";
-    description = "Full-screen window manager that multiplexes a physical terminal";
+    homepage = http://www.gnu.org/software/screen/;
+    description = "GNU Screen, a window manager that multiplexes a physical terminal";
+
+    longDescription =
+      '' GNU Screen is a full-screen window manager that multiplexes a physical
+         terminal between several processes, typically interactive shells.
+         Each virtual terminal provides the functions of the DEC VT100
+         terminal and, in addition, several control functions from the ANSI
+         X3.64 (ISO 6429) and ISO 2022 standards (e.g., insert/delete line
+         and support for multiple character sets).  There is a scrollback
+         history buffer for each virtual terminal and a copy-and-paste
+         mechanism that allows the user to move text regions between windows.
+         When screen is called, it creates a single window with a shell in it
+         (or the specified command) and then gets out of your way so that you
+         can use the program as you normally would.  Then, at any time, you
+         can create new (full-screen) windows with other programs in them
+         (including more shells), kill the current window, view a list of the
+         active windows, turn output logging on and off, copy text between
+         windows, view the scrollback history, switch between windows, etc.
+         All windows run their programs completely independent of each other.
+         Programs continue to run when their window is currently not visible
+         and even when the whole screen session is detached from the users
+         terminal.
+      '';
+
+    license = stdenv.lib.licenses.gpl2Plus;
 
     platforms = stdenv.lib.platforms.unix;
-    maintainers = [];
+    maintainers = [ stdenv.lib.maintainers.ludo ];
   };
 }
diff --git a/pkgs/tools/networking/altermime/default.nix b/pkgs/tools/networking/altermime/default.nix
new file mode 100644
index 0000000000000..3b0de2805be11
--- /dev/null
+++ b/pkgs/tools/networking/altermime/default.nix
@@ -0,0 +1,50 @@
+x@{builderDefsPackage
+  
+  , ...}:
+builderDefsPackage
+(a :  
+let 
+  helperArgNames = ["stdenv" "fetchurl" "builderDefsPackage"] ++ 
+    [];
+
+  buildInputs = map (n: builtins.getAttr n x)
+    (builtins.attrNames (builtins.removeAttrs x helperArgNames));
+  sourceInfo = rec {
+    baseName="altermime";
+    version="0.3.10";
+    name="${baseName}-${version}";
+    url="http://www.pldaniels.com/${baseName}/${name}.tar.gz";
+    hash="0vn3vmbcimv0n14khxr1782m76983zz9sf4j2kz5v86lammxld43";
+  };
+in
+rec {
+  src = a.fetchurl {
+    url = sourceInfo.url;
+    sha256 = sourceInfo.hash;
+  };
+
+  inherit (sourceInfo) name version;
+  inherit buildInputs;
+
+  phaseNames = ["fixTarget" "doMakeInstall"];
+  fixTarget = a.fullDepEntry (''
+    sed -i Makefile -e "s@/usr/local@$out@"
+    ensureDir "$out/bin"
+  '') ["doUnpack" "minInit" "defEnsureDir"];
+      
+  meta = {
+    description = "MIME alteration tool";
+    maintainers = with a.lib.maintainers;
+    [
+      raskin
+    ];
+    platforms = with a.lib.platforms;
+      linux;
+  };
+  passthru = {
+    updateInfo = {
+      downloadPage = "http://www.pldaniels.com/altermime/";
+    };
+  };
+}) x
+
diff --git a/pkgs/tools/networking/dnsmasq/default.nix b/pkgs/tools/networking/dnsmasq/default.nix
index f7c881b1859ba..c88ce3522d52a 100644
--- a/pkgs/tools/networking/dnsmasq/default.nix
+++ b/pkgs/tools/networking/dnsmasq/default.nix
@@ -1,17 +1,17 @@
 { stdenv, fetchurl }:
 
-stdenv.mkDerivation {
-  name = "dnsmasq-2.40";
+stdenv.mkDerivation rec {
+  name = "dnsmasq-2.55";
 
   src = fetchurl {
-    url = http://www.thekelleys.org.uk/dnsmasq/dnsmasq-2.40.tar.gz;
-    sha256 = "1q346l403rvvmvr14fk2l201p8fl3p5417vkp95zlx00jdb7hl8n";
+    url = "http://www.thekelleys.org.uk/dnsmasq/${name}.tar.gz";
+    sha256 = "0agrz7lvqdvh7ps173nr5yl00dblv2lpd0x9pm64f03zjzsyqqyg";
   };
 
-  installPhase = "ensureDir \$out/bin; make DESTDIR= BINDIR=\$out/bin MANDIR=\$out/man LOCALEDIR=\$out/share/locale install"; 
+  makeFlags = "DESTDIR= BINDIR=$(out)/bin MANDIR=$(out)/man LOCALEDIR=$(out)/share/locale";
 
   meta = { 
-    description = "DNS forwarder and DHCP server";
+    description = "An integrated DNS, DHCP and TFTP server for small networks";
     homepage = http://www.thekelleys.org.uk/dnsmasq/doc.html;
     license = "GPL";
   };
diff --git a/pkgs/tools/networking/fdm/default.nix b/pkgs/tools/networking/fdm/default.nix
new file mode 100644
index 0000000000000..b9e4558bc8fd9
--- /dev/null
+++ b/pkgs/tools/networking/fdm/default.nix
@@ -0,0 +1,53 @@
+x@{builderDefsPackage
+  , openssl, tdb, zlib, flex, bison
+  , ...}:
+builderDefsPackage
+(a :  
+let 
+  helperArgNames = ["stdenv" "fetchurl" "builderDefsPackage"] ++ 
+    [];
+
+  buildInputs = map (n: builtins.getAttr n x)
+    (builtins.attrNames (builtins.removeAttrs x helperArgNames));
+  sourceInfo = rec {
+    baseName="fdm";
+    version="1.6";
+    name="${baseName}-${version}";
+    url="http://downloads.sourceforge.net/${baseName}/${name}.tar.gz";
+    hash="01ipxay4rv52ra2zzybf92x6n1hyklib94ncsg04k3rp4w5a8sbj";
+  };
+in
+rec {
+  src = a.fetchurl {
+    url = sourceInfo.url;
+    sha256 = sourceInfo.hash;
+  };
+
+  inherit (sourceInfo) name version;
+  inherit buildInputs;
+
+  phaseNames = ["fixInstall" "doMakeInstall"];
+  makeFlags = ["PREFIX=$out"];
+  fixInstall = a.fullDepEntry (''
+    sed -i */Makefile -i Makefile -e 's@ -g bin @ @'
+    sed -i */Makefile -i Makefile -e 's@ -o root @ @'
+    sed -i GNUmakefile -e 's@ -g $(BIN_OWNER) @ @'
+    sed -i GNUmakefile -e 's@ -o $(BIN_GROUP) @ @'
+  '') ["minInit" "doUnpack"];
+      
+  meta = {
+    description = "Mail fetching and delivery tool - should do the job of getmail and procmail";
+    maintainers = with a.lib.maintainers;
+    [
+      raskin
+    ];
+    platforms = with a.lib.platforms;
+      linux;
+  };
+  passthru = {
+    updateInfo = {
+      downloadPage = "http://fdm.sourceforge.net/";
+    };
+  };
+}) x
+
diff --git a/pkgs/tools/networking/getmail/default.nix b/pkgs/tools/networking/getmail/default.nix
new file mode 100644
index 0000000000000..4e10a2b3be1e9
--- /dev/null
+++ b/pkgs/tools/networking/getmail/default.nix
@@ -0,0 +1,48 @@
+x@{builderDefsPackage
+  , python, makeWrapper
+  , ...}:
+builderDefsPackage
+(a :  
+let 
+  helperArgNames = ["stdenv" "fetchurl" "builderDefsPackage"] ++ 
+    [];
+
+  buildInputs = map (n: builtins.getAttr n x)
+    (builtins.attrNames (builtins.removeAttrs x helperArgNames));
+  sourceInfo = rec {
+    baseName="getmail";
+    version="4.20.0";
+    name="${baseName}-${version}";
+    url="http://pyropus.ca/software/${baseName}/old-versions/${name}.tar.gz";
+    hash="17cpyra61virk1d223w8pdwhv2qzhbwdbnrr1ab1znf4cv9m3knn";
+  };
+in
+rec {
+  src = a.fetchurl {
+    url = sourceInfo.url;
+    sha256 = sourceInfo.hash;
+  };
+
+  inherit (sourceInfo) name version;
+  inherit buildInputs;
+
+  /* doConfigure should be removed if not needed */
+  phaseNames = ["installPythonPackage" "patchShebangs" "wrapBinContentsPython"];
+  patchShebangs = (a.doPatchShebangs "$out/bin");
+      
+  meta = {
+    description = "A program for retrieval of mail";
+    maintainers = with a.lib.maintainers;
+    [
+      raskin
+    ];
+    platforms = with a.lib.platforms;
+      linux;
+  };
+  passthru = {
+    updateInfo = {
+      downloadPage = "http://pyropus.ca/software/getmail/";
+    };
+  };
+}) x
+
diff --git a/pkgs/tools/networking/philter/default.nix b/pkgs/tools/networking/philter/default.nix
new file mode 100644
index 0000000000000..8ade37976b6a8
--- /dev/null
+++ b/pkgs/tools/networking/philter/default.nix
@@ -0,0 +1,57 @@
+x@{builderDefsPackage
+  , python, makeWrapper
+  , ...}:
+builderDefsPackage
+(a :  
+let 
+  helperArgNames = ["stdenv" "fetchurl" "builderDefsPackage"] ++ 
+    [];
+
+  buildInputs = map (n: builtins.getAttr n x)
+    (builtins.attrNames (builtins.removeAttrs x helperArgNames));
+  sourceInfo = rec {
+    baseName="philter";
+    version="1.1";
+    name="${baseName}-${version}";
+    url="http://prdownloads.sourceforge.net/${baseName}/${name}.tar.gz";
+    hash="177pqfflhdn2mw9lc1wv9ik32ji69rjqr6dw83hfndwlsva5151l";
+  };
+in
+rec {
+  src = a.fetchurl {
+    url = sourceInfo.url;
+    sha256 = sourceInfo.hash;
+  };
+
+  inherit (sourceInfo) name version;
+  inherit buildInputs;
+
+  /* doConfigure should be removed if not needed */
+  phaseNames = ["installProgram" "patchShebangs" "wrapBinContentsPython"];
+  patchShebangs = (a.doPatchShebangs "$out/bin");
+
+  installProgram = a.fullDepEntry(''
+    mv "$out/share/philter/".*rc "$out/share/philter/philterrc"
+    ensureDir "$out/bin"
+    cp "$out/share/philter/src/philter.py" "$out/bin/philter"
+    chmod a+x "$out/bin/philter"
+  '') ["addInputs" "copyToShare" "minInit"];
+
+  copyToShare = (a.simplyShare "philter");
+      
+  meta = {
+    description = "Mail sorter for Maildirs";
+    maintainers = with a.lib.maintainers;
+    [
+      raskin
+    ];
+    platforms = with a.lib.platforms;
+      linux;
+  };
+  passthru = {
+    updateInfo = {
+      downloadPage = "http://philter.sourceforge.net/";
+    };
+  };
+}) x
+
diff --git a/pkgs/tools/networking/ripmime/default.nix b/pkgs/tools/networking/ripmime/default.nix
new file mode 100644
index 0000000000000..895b2c4be4fd3
--- /dev/null
+++ b/pkgs/tools/networking/ripmime/default.nix
@@ -0,0 +1,51 @@
+x@{builderDefsPackage
+  
+  , ...}:
+builderDefsPackage
+(a :  
+let 
+  helperArgNames = ["stdenv" "fetchurl" "builderDefsPackage"] ++ 
+    [];
+
+  buildInputs = map (n: builtins.getAttr n x)
+    (builtins.attrNames (builtins.removeAttrs x helperArgNames));
+  sourceInfo = rec {
+    baseName="ripmime";
+    version="1.4.0.9";
+    name="${baseName}-${version}";
+    url="http://www.pldaniels.com/${baseName}/${name}.tar.gz";
+    hash="15c48n8n8qavdigw5qycnwp6gys9dv3mgk18ylf5hd4491nnnrhz";
+  };
+in
+rec {
+  src = a.fetchurl {
+    url = sourceInfo.url;
+    sha256 = sourceInfo.hash;
+  };
+
+  inherit (sourceInfo) name version;
+  inherit buildInputs;
+
+  /* doConfigure should be removed if not needed */
+  phaseNames = ["fixTarget" "doMakeInstall"];
+  fixTarget = a.fullDepEntry (''
+    sed -i Makefile -e "s@LOCATION=.*@LOCATION=$out@"
+    ensureDir "$out/bin" "$out/man/man1"
+  '') ["doUnpack" "minInit" "defEnsureDir"];
+      
+  meta = {
+    description = "Attachment extractor for MIME messages";
+    maintainers = with a.lib.maintainers;
+    [
+      raskin
+    ];
+    platforms = with a.lib.platforms;
+      linux;
+  };
+  passthru = {
+    updateInfo = {
+      downloadPage = "http://www.pldaniels.com/ripmime/";
+    };
+  };
+}) x
+
diff --git a/pkgs/tools/security/gnupg1/default.nix b/pkgs/tools/security/gnupg1/default.nix
index dc396d9f35b35..0674fc4e48036 100644
--- a/pkgs/tools/security/gnupg1/default.nix
+++ b/pkgs/tools/security/gnupg1/default.nix
@@ -15,11 +15,11 @@ let
 in
 
 stdenv.mkDerivation rec {
-  name = "gnupg-1.4.10";
+  name = "gnupg-1.4.11";
 
   src = fetchurl {
     url = "mirror://gnupg/gnupg/${name}.tar.bz2";
-    sha256 = "0f5v8c8fkxcnrlmnijaq2sqfqq6xhmbyi2p44pj98y6n6927z452";
+    sha256 = "1xkfxr4z2fy9d5d6hj4lzv854lk227kgv6qb2w0sam752snfx36i";
   };
 
   buildInputs = [ readline bzip2 ];
@@ -28,9 +28,13 @@ stdenv.mkDerivation rec {
     ''
       gunzip < ${idea} > ./cipher/idea.c
     '';
-  
+
+  doCheck = true;
+
   meta = {
-    description = "A free implementation of the OpenPGP standard for encrypting and signing data";
+    description = "GnuPG, a free implementation of the OpenPGP standard for encrypting and signing data";
     homepage = http://www.gnupg.org/;
+    license = "GPLv3+";
+    platforms = stdenv.lib.platforms.gnu; # arbitrary choice
   };
 }
diff --git a/pkgs/tools/text/ebook-tools/default.nix b/pkgs/tools/text/ebook-tools/default.nix
index 2ced27edc2a7f..87a75b2559bba 100644
--- a/pkgs/tools/text/ebook-tools/default.nix
+++ b/pkgs/tools/text/ebook-tools/default.nix
@@ -5,11 +5,11 @@ let
 in
 
 stdenv.mkDerivation rec {
-  name = "${pn}-0.2.0";
+  name = "${pn}-0.2.1";
 
   src = fetchurl {
     url = "mirror://sf/${pn}/${name}.tar.gz";
-    sha256 = "18jb6v20pzk0kxv2dgjqgzzrcg7qid569apr63phfq1as1h09x67";
+    sha256 = "0wgwdsd3jwwfg36jyr5j0wayqjli3ia80lxzk10byd4cmkywnhy2";
   };
 
   buildInputs = [ cmake libxml2 libzip ];
diff --git a/pkgs/tools/text/kdiff3/adjust-docbook-xml-version-to-4.2.patch b/pkgs/tools/text/kdiff3/adjust-docbook-xml-version-to-4.2.patch
new file mode 100644
index 0000000000000..fdb96176abd3b
--- /dev/null
+++ b/pkgs/tools/text/kdiff3/adjust-docbook-xml-version-to-4.2.patch
@@ -0,0 +1,45 @@
+The DocBook DTD must be 4.2 to validate with KDE 4.5.2.  In the upstream release 0.9.95
+of kdiff3 some languages have index.docbook with the 4.1.2 DTD.  This patch changes
+the version number in the DOCTYPE to 4.2 for these languages.
+
+
+diff -Naur kdiff3-upstream-0.9.95/doc/de/index.docbook kdiff3-0.9.95/doc/de/index.docbook
+--- kdiff3-upstream-0.9.95/doc/de/index.docbook	2010-10-18 22:38:40.043252907 -0430
++++ kdiff3-0.9.95/doc/de/index.docbook	2010-10-18 22:41:05.954329524 -0430
+@@ -1,5 +1,5 @@
+ <?xml version="1.0" ?>
+-<!DOCTYPE book PUBLIC "-//KDE//DTD DocBook XML V4.1.2-Based Variant V1.1//EN" "dtd/kdex.dtd" [
++<!DOCTYPE book PUBLIC "-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN" "dtd/kdex.dtd" [
+   <!ENTITY kdiff3 "<application
+ >KDiff3</application
+ >">
+diff -Naur kdiff3-upstream-0.9.95/doc/fr/index.docbook kdiff3-0.9.95/doc/fr/index.docbook
+--- kdiff3-upstream-0.9.95/doc/fr/index.docbook	2010-10-18 22:38:40.043252907 -0430
++++ kdiff3-0.9.95/doc/fr/index.docbook	2010-10-18 22:41:05.965408604 -0430
+@@ -1,5 +1,5 @@
+ <?xml version="1.0" ?>
+-<!DOCTYPE book PUBLIC "-//KDE//DTD DocBook XML V4.1.2-Based Variant V1.1//EN" "dtd/kdex.dtd" [
++<!DOCTYPE book PUBLIC "-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN" "dtd/kdex.dtd" [
+   <!ENTITY kdiff3 "<application
+ >KDiff3</application
+ >">
+diff -Naur kdiff3-upstream-0.9.95/doc/it/index.docbook kdiff3-0.9.95/doc/it/index.docbook
+--- kdiff3-upstream-0.9.95/doc/it/index.docbook	2010-10-18 22:38:40.044252773 -0430
++++ kdiff3-0.9.95/doc/it/index.docbook	2010-10-18 22:41:05.976408528 -0430
+@@ -1,5 +1,5 @@
+ <?xml version="1.0" ?>
+-<!DOCTYPE book PUBLIC "-//KDE//DTD DocBook XML V4.1.2-Based Variant V1.1//EN" "dtd/kdex.dtd" [
++<!DOCTYPE book PUBLIC "-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN" "dtd/kdex.dtd" [
+   <!ENTITY kdiff3 "<application
+ >KDiff3</application
+ >">
+diff -Naur kdiff3-upstream-0.9.95/doc/nl/index.docbook kdiff3-0.9.95/doc/nl/index.docbook
+--- kdiff3-upstream-0.9.95/doc/nl/index.docbook	2010-10-18 22:38:40.043252907 -0430
++++ kdiff3-0.9.95/doc/nl/index.docbook	2010-10-18 22:41:05.986408860 -0430
+@@ -1,5 +1,5 @@
+ <?xml version="1.0" ?>
+-<!DOCTYPE book PUBLIC "-//KDE//DTD DocBook XML V4.1.2-Based Variant V1.1//EN" "dtd/kdex.dtd" [
++<!DOCTYPE book PUBLIC "-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN" "dtd/kdex.dtd" [
+   <!ENTITY kdiff3 "<application
+ >KDiff3</application
+ >">
diff --git a/pkgs/tools/text/kdiff3/default.nix b/pkgs/tools/text/kdiff3/default.nix
index 1a313ca215bee..63956a6303541 100644
--- a/pkgs/tools/text/kdiff3/default.nix
+++ b/pkgs/tools/text/kdiff3/default.nix
@@ -1,17 +1,18 @@
 { stdenv, fetchurl, cmake, qt4, perl, kdelibs, kdebase, automoc4, phonon, gettext}:
 
-stdenv.mkDerivation {
+stdenv.mkDerivation rec {
   name = "kdiff3-0.9.95";
   src = fetchurl {
-    url = http://downloads.sourceforge.net/project/kdiff3/kdiff3/0.9.95/kdiff3-0.9.95.tar.gz;
-    sha256 = "0372cebc8957f256a98501a4ac3c3634c7ecffb486ece7e7819c90d876202f0f";   
+    url = "mirror://sourceforge/kdiff3/${name}.tar.gz";
+    sha256 = "03rg41vdi44wh7kygv46nkzyrirl6qyar901hnlmdwjpi6ycwwh3";
   };
 
-  cmakeFlags = [ "-DGETTEXT_INCLUDE_DIR=${gettext}/include" ];
-
   # kdebase allows having a konqueror plugin built
   buildInputs = [ cmake qt4 perl kdelibs automoc4 phonon gettext kdebase ];
 
+  # Adjust the version of the DocBook XML to 4.2 ( so that it validates ).
+  patches = [ ./adjust-docbook-xml-version-to-4.2.patch ];
+
   meta = {
     homepage = http://kdiff3.sourceforge.net/;
     license = "GPLv2+";
diff --git a/pkgs/tools/text/recode/default.nix b/pkgs/tools/text/recode/default.nix
new file mode 100644
index 0000000000000..e7c5997021db1
--- /dev/null
+++ b/pkgs/tools/text/recode/default.nix
@@ -0,0 +1,46 @@
+{stdenv, fetchurl, autoconf, automake, libtool, gettext, perl}:
+
+let
+  asIfPatch = ./recode-3.6-as-if.patch;
+
+  gettextPatch = ./recode-3.6-gettextfix.diff;
+
+  debianPatch = fetchurl {
+    url = "http://ftp.de.debian.org/debian/pool/main/r/recode/recode_3.6-15.diff.gz";
+    sha256 = "114qxm29wk95w5760bswgd46d5p00g5kbfai5wchjvcbi722p5qf";
+  };
+in
+stdenv.mkDerivation {
+  name = "recode-3.6";
+
+  src = fetchurl {
+    url = "ftp://ftp.halifax.rwth-aachen.de/gnu/recode/recode-3.6.tar.gz";
+    sha256 = "1krgjqfhsxcls4qvxhagc45sm1sd0w69jm81nwm0bip5z3rs9rp3";
+  };
+
+  buildInputs = [ autoconf automake libtool gettext perl ];
+
+  patchPhase = ''
+    patch -Np1 -i ${asIfPatch}
+    patch -Np1 -i ${gettextPatch}
+    gunzip <${debianPatch} | patch -Np1 -i -
+    sed -i '1i#include <stdlib.h>' src/argmatch.c
+    rm -f acinclude.m4
+    autoreconf -fi
+    libtoolize
+  '';
+
+  configureFlags = "--without-included-gettext";
+
+  doCheck = true;
+
+  meta = {
+    homepage = "http://www.gnu.org/software/recode/";
+    description = "Converts files between various character sets and usages";
+
+    license = "GPLv2+";
+
+    platforms = stdenv.lib.platforms.unix;
+    maintainers = [];
+  };
+}
diff --git a/pkgs/tools/text/recode/recode-3.6-as-if.patch b/pkgs/tools/text/recode/recode-3.6-as-if.patch
new file mode 100644
index 0000000000000..c7bcc27c87501
--- /dev/null
+++ b/pkgs/tools/text/recode/recode-3.6-as-if.patch
@@ -0,0 +1,19 @@
+http://bugs.gentoo.org/283029
+
+--- a/m4/flex.m4
++++ b/m4/flex.m4
+@@ -8,11 +8,11 @@ dnl ad_AC_PROG_FLEX
+ dnl Look for flex or missing, then run AC_PROG_LEX and AC_DECL_YYTEXT
+ AC_DEFUN(ad_AC_PROG_FLEX,
+ [AC_CHECK_PROGS(LEX, flex, missing)
+-if test "$LEX" = missing; then
++AS_IF([test "$LEX" = missing], [dnl
+   LEX="\$(top_srcdir)/$ac_aux_dir/missing flex"
+   LEX_OUTPUT_ROOT=lex.yy
+   AC_SUBST(LEX_OUTPUT_ROOT)dnl
+-else
++], [:
+   AC_PROG_LEX
+   AC_DECL_YYTEXT
+-fi])
++])])
diff --git a/pkgs/tools/text/recode/recode-3.6-gettextfix.diff b/pkgs/tools/text/recode/recode-3.6-gettextfix.diff
new file mode 100644
index 0000000000000..3b7eb8ba20e6c
--- /dev/null
+++ b/pkgs/tools/text/recode/recode-3.6-gettextfix.diff
@@ -0,0 +1,23 @@
+http://bugs.gentoo.org/239372
+
+patch by Dmitry Karasik
+
+--- recode-3.6/m4/gettext.m4
++++ recode-3.6/m4/gettext.m4
+@@ -109,12 +109,12 @@
+     else
+       ac_items="$LINGUAS"
+       for ac_item in $ac_items; do
+-	case "$ALL_LINGUAS" in
+-	  *$ac_item*)
++        for supported_item in $ALL_LINGUAS; do
++          if test "$ac_item" = "$supported_item"; then
+ 	    ac_print="$ac_print $ac_item"
+ 	    MOFILES="$MOFILES $ac_item.mo"
+-	    ;;
+-	esac
++          fi
++        done
+       done
+     fi
+     AC_SUBST(MOFILES)