From d2194a294e201f28a58192070f2943bb672c4100 Mon Sep 17 00:00:00 2001
From: Peter Simons <simons@cryp.to>
Date: Sat, 17 Aug 2013 14:42:06 +0200
Subject: [PATCH] mpack: add version 1.6

---
 pkgs/tools/networking/mpack/build-fix.patch | 29 +++++++++++++++++++++
 pkgs/tools/networking/mpack/default.nix     | 20 ++++++++++++++
 pkgs/top-level/all-packages.nix             |  4 ++-
 3 files changed, 52 insertions(+), 1 deletion(-)
 create mode 100644 pkgs/tools/networking/mpack/build-fix.patch
 create mode 100644 pkgs/tools/networking/mpack/default.nix

diff --git a/pkgs/tools/networking/mpack/build-fix.patch b/pkgs/tools/networking/mpack/build-fix.patch
new file mode 100644
index 000000000000..0329bedd07f3
--- /dev/null
+++ b/pkgs/tools/networking/mpack/build-fix.patch
@@ -0,0 +1,29 @@
+diff -ubr mpack-1.6-orig/unixos.c mpack-1.6/unixos.c
+--- mpack-1.6-orig/unixos.c	2013-08-17 14:32:38.102772775 +0200
++++ mpack-1.6/unixos.c	2013-08-17 14:32:43.180792505 +0200
+@@ -38,10 +38,6 @@
+ #define MAXHOSTNAMELEN 64
+ #endif
+ 
+-extern int errno;
+-extern char *malloc();
+-extern char *getenv();
+-
+ int overwrite_files = 0;
+ int didchat;
+ 
+Only in mpack-1.6: unixos.o
+Only in mpack-1.6: unixunpk.o
+Only in mpack-1.6: uudecode.o
+diff -ubr mpack-1.6-orig/xmalloc.c mpack-1.6/xmalloc.c
+--- mpack-1.6-orig/xmalloc.c	2013-08-17 14:32:38.102772775 +0200
++++ mpack-1.6/xmalloc.c	2013-08-17 14:33:08.900892319 +0200
+@@ -24,7 +24,6 @@
+  */
+ #include <stdio.h>
+ #include <string.h>
+-extern char *malloc(), *realloc();
+ 
+ char *xmalloc (int size)
+ {
+Only in mpack-1.6: xmalloc.o
diff --git a/pkgs/tools/networking/mpack/default.nix b/pkgs/tools/networking/mpack/default.nix
new file mode 100644
index 000000000000..0d004a63920e
--- /dev/null
+++ b/pkgs/tools/networking/mpack/default.nix
@@ -0,0 +1,20 @@
+{ stdenv, fetchurl, pkgconfig, glib }:
+
+stdenv.mkDerivation rec {
+  name = "mpack-1.6";
+
+  src = fetchurl {
+    url = "http://ftp.andrew.cmu.edu/pub/mpack/${name}.tar.gz";
+    sha256 = "0k590z96509k96zxmhv72gkwhrlf55jkmyqlzi72m61r7axhhh97";
+  };
+
+  patches = [ ./build-fix.patch ];
+
+  preConfigure = "configureFlags=--mandir=$out/share/man";
+
+  meta = {
+    description = "utilities for encoding and decoding binary files in MIME";
+    maintainers = [ stdenv.lib.maintainers.simons ];
+    platforms = stdenv.lib.platforms.unix;
+  };
+}
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 74334d9c6f64..a4957d412335 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -833,7 +833,7 @@ let
   finger_bsd = callPackage ../tools/networking/bsd-finger { };
 
   fio = callPackage ../tools/system/fio { };
-  
+
   flpsed = callPackage ../applications/editors/flpsed { };
 
   flvstreamer = callPackage ../tools/networking/flvstreamer { };
@@ -1349,6 +1349,8 @@ let
 
   newsbeuter = callPackage ../applications/networking/feedreaders/newsbeuter { };
 
+  mpack = callPackage ../tools/networking/mpack { };
+
   pa_applet = callPackage ../tools/audio/pa-applet { };
 
   nilfs_utils = callPackage ../tools/filesystems/nilfs-utils {};