Skip to content

Commit

Permalink
lumail: Fix package definition
Browse files Browse the repository at this point in the history
Includes:

* Package gets a flag to use the debug build
* install phase installs all lua scripts from the package and makes
  lumail find them
* global configuration which is shipped with the package can be
  overridden, if desired
* parallel building enabled
  • Loading branch information
matthiasbeyer committed Mar 12, 2018
1 parent 29c33ba commit bb8e1c4
Showing 1 changed file with 39 additions and 7 deletions.
46 changes: 39 additions & 7 deletions pkgs/applications/networking/mailreaders/lumail/default.nix
Original file line number Diff line number Diff line change
@@ -1,8 +1,28 @@
{ stdenv, fetchurl, pkgconfig, lua5_2, file, ncurses, gmime, pcre-cpp
, perl, perlPackages }:
, perl, perlPackages
, debugBuild ? false
, alternativeGlobalConfigFilePath ? null
}:

let
version = "3.1";
version = "3.1";
binaryName = if debugBuild then "lumail2-debug" else "lumail2";
alternativeConfig = builtins.toFile "lumail2.lua"
(builtins.readFile alternativeGlobalConfigFilePath);

globalConfig = if isNull alternativeGlobalConfigFilePath then ''
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";
in
stdenv.mkDerivation {
name = "lumail-${version}";
Expand All @@ -12,7 +32,9 @@ stdenv.mkDerivation {
sha256 = "0vj7p7f02m3w8wb74ilajcwznc4ai4h2ikkz9ildy0c00aqsi5w4";
};

nativeBuildInputs = [ pkgconfig ];
enableParallelBuilding = true;

nativeBuildInputs = [ pkgconfig makeWrapper ];
buildInputs = [
lua5_2 file ncurses gmime pcre-cpp
perl perlPackages.JSON perlPackages.NetIMAPClient
Expand All @@ -29,16 +51,26 @@ stdenv.mkDerivation {
sed -e "s|^#\!\(.*/perl.*\)$|#\!\1$perlFlags|" -i perl.d/imap-proxy
'';

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}"
'';

makeFlags = [
"LVER=lua"
"PREFIX=$(out)"
"SYSCONFDIR=$(out)/etc"
"LUMAIL_LIBS=$(out)/etc/lumail2"
];

postInstall = ''
cp lumail2.user.lua $out/etc/lumail2/
'';

meta = with stdenv.lib; {
description = "Console-based email client";
homepage = https://lumail.org/;
Expand Down

0 comments on commit bb8e1c4

Please sign in to comment.