From 7c121e60c5625eb7683fbbc12cb1d6ac9bdc1744 Mon Sep 17 00:00:00 2001 From: Daniel Nagy Date: Tue, 5 Jan 2021 21:04:57 +0100 Subject: [PATCH] nixos/httpd: fix lua paths Account for the fact that, when creating a lua package without the "withPackages" helper, we dont get an extra "lua" attribute in the package. Therefore we need to distinguish between the "withPackages" case and the direct ( or "empty" ) lua package. For example with this nixos config: ```nix { services.httpd = { enable = true; package = pkgs.apacheHttpd.override { luaSupport = true; lua5 = pkgs.lua5_3.withPackages (ps: with ps; [ luafilesystem ] ); }; }; } ``` Here we say that we want to have apache to use a lua, packaged with the `luafilesystem` module so that we can `require` that in scripts to render http responses. There, the set that gets assigned to `lua5 ` does not have a `luaversion` attribute, rather it has a `lua` attribute wherein lies a `luaversion` attribute. If we dont package additional modules, then we dont have that `lua` attribute in between and rather directly have to use `luaversion` directly. --- .../services/web-servers/apache-httpd/default.nix | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/nixos/modules/services/web-servers/apache-httpd/default.nix b/nixos/modules/services/web-servers/apache-httpd/default.nix index de3c7d693d47..7f50b8fd8d44 100644 --- a/nixos/modules/services/web-servers/apache-httpd/default.nix +++ b/nixos/modules/services/web-servers/apache-httpd/default.nix @@ -126,10 +126,14 @@ let ''; - luaSetPaths = '' + luaSetPaths = let + # support both lua and lua.withPackages derivations + luaversion = cfg.package.lua5.lua.luaversion or cfg.package.lua5.luaversion; + in + '' - LuaPackageCPath ${cfg.package.lua5}/lib/lua/${cfg.package.lua5.lua.luaversion}/?.so - LuaPackagePath ${cfg.package.lua5}/share/lua/${cfg.package.lua5.lua.luaversion}/?.lua + LuaPackageCPath ${cfg.package.lua5}/lib/lua/${luaversion}/?.so + LuaPackagePath ${cfg.package.lua5}/share/lua/${luaversion}/?.lua ''; @@ -333,7 +337,7 @@ let ${sslConf} - ${if cfg.package.luaSupport then luaSetPaths else ""} + ${optionalString cfg.package.luaSupport luaSetPaths} # Fascist default - deny access to everything.