From bb8e1c4512e6556dfc46fc9af10d005599b84b7f Mon Sep 17 00:00:00 2001 From: Matthias Beyer Date: Sun, 11 Mar 2018 13:43:50 +0100 Subject: [PATCH] lumail: Fix package definition 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 --- .../networking/mailreaders/lumail/default.nix | 46 ++++++++++++++++--- 1 file changed, 39 insertions(+), 7 deletions(-) diff --git a/pkgs/applications/networking/mailreaders/lumail/default.nix b/pkgs/applications/networking/mailreaders/lumail/default.nix index ff85c98d9702..5a333c8d982c 100644 --- a/pkgs/applications/networking/mailreaders/lumail/default.nix +++ b/pkgs/applications/networking/mailreaders/lumail/default.nix @@ -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}"; @@ -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 @@ -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/;