diff options
Diffstat (limited to 'pkgs/tools/text/popfile/default.nix')
-rw-r--r-- | pkgs/tools/text/popfile/default.nix | 71 |
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; + }; + +} + |