2018-03-11 16:59:29 +01:00
|
|
|
{ stdenv, fetchurl, pkgconfig, lua, file, ncurses, gmime, pcre-cpp
|
|
|
|
, perl, perlPackages, makeWrapper
|
2018-03-11 13:43:50 +01:00
|
|
|
, debugBuild ? false
|
|
|
|
, alternativeGlobalConfigFilePath ? null
|
|
|
|
}:
|
2017-02-17 10:11:03 +01:00
|
|
|
|
|
|
|
let
|
2018-03-11 13:43:50 +01:00
|
|
|
version = "3.1";
|
|
|
|
binaryName = if debugBuild then "lumail2-debug" else "lumail2";
|
|
|
|
alternativeConfig = builtins.toFile "lumail2.lua"
|
|
|
|
(builtins.readFile alternativeGlobalConfigFilePath);
|
|
|
|
|
2019-04-24 05:48:22 +02:00
|
|
|
globalConfig = if alternativeGlobalConfigFilePath == null then ''
|
2018-03-11 13:43:50 +01:00
|
|
|
mkdir -p $out/etc/lumail2
|
|
|
|
cp global.config.lua $out/etc/lumail2.lua
|
|
|
|
for n in ./lib/*.lua; do
|
|
|
|
cp "$n" $out/etc/lumail2/
|
|
|
|
done
|
|
|
|
'' else ''
|
|
|
|
ln -s ${alternativeConfig} $out/etc/lumail2.lua
|
|
|
|
'';
|
|
|
|
|
|
|
|
getPath = type : "${lua}/lib/?.${type};";
|
|
|
|
luaPath = getPath "lua";
|
|
|
|
luaCPath = getPath "so";
|
2017-02-17 10:11:03 +01:00
|
|
|
in
|
|
|
|
stdenv.mkDerivation {
|
|
|
|
name = "lumail-${version}";
|
|
|
|
|
|
|
|
src = fetchurl {
|
|
|
|
url = "https://lumail.org/download/lumail-${version}.tar.gz";
|
2017-12-15 14:34:28 +01:00
|
|
|
sha256 = "0vj7p7f02m3w8wb74ilajcwznc4ai4h2ikkz9ildy0c00aqsi5w4";
|
2017-02-17 10:11:03 +01:00
|
|
|
};
|
|
|
|
|
2018-03-11 13:43:50 +01:00
|
|
|
enableParallelBuilding = true;
|
|
|
|
|
|
|
|
nativeBuildInputs = [ pkgconfig makeWrapper ];
|
2017-02-17 10:11:03 +01:00
|
|
|
buildInputs = [
|
2018-03-11 16:59:29 +01:00
|
|
|
lua file ncurses gmime pcre-cpp
|
2017-02-17 10:11:03 +01:00
|
|
|
perl perlPackages.JSON perlPackages.NetIMAPClient
|
|
|
|
];
|
|
|
|
|
|
|
|
preConfigure = ''
|
|
|
|
sed -e 's|"/etc/lumail2|LUMAIL_LUAPATH"/..|' -i src/lumail2.cc src/imap_proxy.cc
|
|
|
|
|
|
|
|
perlFlags=
|
|
|
|
for i in $(IFS=:; echo $PERL5LIB); do
|
|
|
|
perlFlags="$perlFlags -I$i"
|
|
|
|
done
|
|
|
|
|
|
|
|
sed -e "s|^#\!\(.*/perl.*\)$|#\!\1$perlFlags|" -i perl.d/imap-proxy
|
|
|
|
'';
|
|
|
|
|
2018-03-11 13:43:50 +01:00
|
|
|
buildFlags = if debugBuild then "lumail2-debug" else "";
|
|
|
|
|
|
|
|
installPhase = ''
|
|
|
|
mkdir -p $out/bin || true
|
|
|
|
install -m755 ${binaryName} $out/bin/
|
|
|
|
''
|
|
|
|
+ globalConfig
|
|
|
|
+ ''
|
|
|
|
wrapProgram $out/bin/${binaryName} \
|
|
|
|
--prefix LUA_PATH : "${luaPath}" \
|
|
|
|
--prefix LUA_CPATH : "${luaCPath}"
|
|
|
|
'';
|
|
|
|
|
2017-02-17 10:11:03 +01:00
|
|
|
makeFlags = [
|
|
|
|
"LVER=lua"
|
|
|
|
"PREFIX=$(out)"
|
|
|
|
"SYSCONFDIR=$(out)/etc"
|
2018-03-11 13:43:50 +01:00
|
|
|
"LUMAIL_LIBS=$(out)/etc/lumail2"
|
2017-02-17 10:11:03 +01:00
|
|
|
];
|
|
|
|
|
|
|
|
meta = with stdenv.lib; {
|
|
|
|
description = "Console-based email client";
|
|
|
|
homepage = https://lumail.org/;
|
|
|
|
license = licenses.gpl2;
|
|
|
|
platforms = platforms.linux;
|
|
|
|
maintainers = with maintainers; [orivej];
|
|
|
|
};
|
|
|
|
}
|