forked from mirrors/nixpkgs
popfile: init at 1.1.3
Popfile by default assumes that it is run directly from the install directory, in which it has full write access. This assumption is invalid on Nix, and so Popfile is pachted to accomodate this: - define `POPFILE_ROOT` in wrapper Default POPFile configuration assumes it is running in the installation directory. This patch wraps `popfile.pl` so that `POPFILE_ROOT` points to the installation directory - define and create if missing `POPFILE_USER` in wrapper POPFile stores stores state in the `POPFILE_USER` directory, which by default is the installation directory. This change sets `POPFILE_USER` to `$HOME/.popfile` by default, creating it with 0700 mode if necessary.
This commit is contained in:
parent
eeb3600e55
commit
1cf106dd06
71
pkgs/tools/text/popfile/default.nix
Normal file
71
pkgs/tools/text/popfile/default.nix
Normal file
|
@ -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;
|
||||
};
|
||||
|
||||
}
|
||||
|
|
@ -2824,6 +2824,8 @@ let
|
|||
|
||||
ponysay = callPackage ../tools/misc/ponysay { };
|
||||
|
||||
popfile = callPackage ../tools/text/popfile { };
|
||||
|
||||
povray = callPackage ../tools/graphics/povray {
|
||||
automake = automake113x; # fails with 14
|
||||
};
|
||||
|
|
Loading…
Reference in a new issue