summary refs log tree commit diff
path: root/pkgs/tools/text/popfile/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/tools/text/popfile/default.nix')
-rw-r--r--pkgs/tools/text/popfile/default.nix71
1 files changed, 71 insertions, 0 deletions
diff --git a/pkgs/tools/text/popfile/default.nix b/pkgs/tools/text/popfile/default.nix
new file mode 100644
index 00000000000..3310c1a2fe4
--- /dev/null
+++ b/pkgs/tools/text/popfile/default.nix
@@ -0,0 +1,71 @@
+{ stdenv, fetchzip, makeWrapper, perlPackages,
+... }:
+
+stdenv.mkDerivation rec {
+  appname = "popfile";
+  version = "1.1.3";
+  name = "${appname}-${version}";
+
+  src = fetchzip {
+    url = "http://getpopfile.org/downloads/${appname}-${version}.zip";
+    sha256 = "0gcib9j7zxk8r2vb5dbdz836djnyfza36vi8215nxcdfx1xc7l63";
+    stripRoot = false;
+  };
+
+  buildInputs = [ makeWrapper ] ++ (with perlPackages; [
+    ## These are all taken from the popfile documentation as applicable to Linux
+    ## http://getpopfile.org/docs/howtos:allplatformsrequireperl
+    perl
+    DBI
+    DBDSQLite
+    Digest
+    DigestMD5
+    HTMLTagset
+    MIMEBase64 # == MIMEQuotedPrint
+    TimeDate # == DateParse
+    HTMLTemplate
+    # IO::Socket::Socks is not in nixpkgs
+    # IOSocketSocks 
+    IOSocketSSL
+    NetSSLeay
+    SOAPLite
+  ]);
+
+
+  phases = [ "unpackPhase" "installPhase" "patchPhase" "postInstall" ];
+
+  installPhase = ''
+    mkdir -p $out/bin
+    # I user `cd` rather than `cp $out/* ...` b/c the * breaks syntax
+    # highlighting in emacs for me.
+    cd $src
+    cp -r * $out/bin
+    cd $out/bin
+    chmod +x *.pl
+  '';
+
+  patchPhase = "patchShebangs $out";
+
+  postInstall = ''
+    find $out -name '*.pl' -executable | while read path; do
+      wrapProgram "$path" \
+        --prefix PERL5LIB : $PERL5LIB:$out/bin \
+        --set POPFILE_ROOT $out/bin \
+        --set POPFILE_USER \$\{POPFILE_USER:-\$HOME/.popfile\} \
+        --run "test -d \$POPFILE_USER || mkdir -m 0700 -p \$POPFILE_USER"
+    done
+  '';
+
+  meta = {
+    description = "An email classification system that automatically sorts messages and fights spam.";
+    homepage = http://getpopfile.org;
+    license = stdenv.lib.licenses.gpl2;
+
+    # Should work on OS X, but havent tested it.
+    # Windows support is more complicated.
+    # http://getpopfile.org/docs/faq:systemrequirements
+    platforms = stdenv.lib.platforms.linux;
+  };
+
+}
+