buildLuarocksPackage: extraVariables is now an attrset

This commit is contained in:
Matthieu Coudron 2020-02-26 01:09:31 +01:00
parent 7aee5b838b
commit 6eeb434b33
2 changed files with 13 additions and 10 deletions

View File

@ -56,7 +56,7 @@ name ? "${attrs.pname}-${attrs.version}"
# Appended to the generated luarocks config
, extraConfig ? ""
# Inserted into the generated luarocks config in the "variables" table
, extraVariables ? ""
, extraVariables ? {}
# The two above arguments have access to builder variables -- e.g. to $out
# relative to srcRoot, path to the rockspec to use when using rocks
@ -77,7 +77,10 @@ let
# luarocks only looks for rockspecs in the default/system tree instead of all
# configured trees)
luarocks_config = "luarocks-config.lua";
luarocks_content = ''
luarocks_content = let
extraVariablesStr = lib.concatStringsSep "\n "
(lib.mapAttrsToList (k: v: "${k}='${v}';") extraVariables);
in ''
local_cache = ""
-- To prevent collisions when creating environments, we install the rock
-- files into per-package subdirectories
@ -105,8 +108,8 @@ let
-- Some needed machinery to handle multiple-output external dependencies,
-- as per https://github.com/luarocks/luarocks/issues/766
${lib.optionalString (lib.length depVariables > 0) ''
${lib.concatStringsSep "\n " depVariables}''}
${extraVariables}
${lib.concatStringsSep "\n " depVariables}''}
${extraVariablesStr}
}
${extraConfig}
'';
@ -139,7 +142,7 @@ let
externalDeps' = lib.filter (dep: !lib.isDerivation dep) externalDeps;
in
toLuaModule ( lua.stdenv.mkDerivation (
builtins.removeAttrs attrs ["disabled" "checkInputs" "externalDeps"] // {
builtins.removeAttrs attrs ["disabled" "checkInputs" "externalDeps" "extraVariables"] // {
name = namePrefix + name;

View File

@ -153,11 +153,11 @@ with super;
});
luadbi-mysql = super.luadbi-mysql.override({
extraVariables = ''
-- Can't just be /include and /lib, unfortunately needs the trailing 'mysql'
MYSQL_INCDIR='${pkgs.libmysqlclient}/include/mysql';
MYSQL_LIBDIR='${pkgs.libmysqlclient}/lib/mysql';
'';
extraVariables = {
# Can't just be /include and /lib, unfortunately needs the trailing 'mysql'
MYSQL_INCDIR="${pkgs.libmysqlclient}/include/mysql";
MYSQL_LIBDIR="${pkgs.libmysqlclient}/lib/mysql";
};
buildInputs = [
pkgs.mysql.client
pkgs.libmysqlclient