diff --git a/pkgs/by-name/do/dovecot/fix-lua-build.patch b/pkgs/by-name/do/dovecot/fix-lua-build.patch new file mode 100644 index 000000000000..23d2dcb9bcd3 --- /dev/null +++ b/pkgs/by-name/do/dovecot/fix-lua-build.patch @@ -0,0 +1,28 @@ +diff --git a/src/auth/Makefile.am b/src/auth/Makefile.am +index 7474e76fb6..e7fc4aad0f 100644 +--- a/src/auth/Makefile.am ++++ b/src/auth/Makefile.am +@@ -21,12 +21,11 @@ LUA_LIB = + AUTH_LUA_LIBS = + AUTH_LUA_LDADD = + if HAVE_LUA +- ++AUTH_LUA_LDADD += $(LUA_LIBS) + if AUTH_LUA_PLUGIN + LUA_LIB += libauthdb_lua.la + else + AUTH_LUA_LIBS += $(LIBDOVECOT_LUA) +-AUTH_LUA_LDADD += $(LUA_LIBS) + endif + endif + +@@ -200,7 +199,7 @@ endif + endif + + if HAVE_LUA +-auth_libs += $(LIBDOVECOT_LUA) $(LUA_LIBS) ++auth_libs += $(LIBDOVECOT_LUA) + endif + + if AUTH_LUA_PLUGIN + diff --git a/pkgs/by-name/do/dovecot/generic.nix b/pkgs/by-name/do/dovecot/generic.nix index 40326745401c..7c54332c89ab 100644 --- a/pkgs/by-name/do/dovecot/generic.nix +++ b/pkgs/by-name/do/dovecot/generic.nix @@ -78,9 +78,9 @@ stdenv.mkDerivation (finalAttrs: { bison perl pkg-config + autoreconfHook ] ++ lib.optionals (stdenv.hostPlatform.isLinux && !stdenv.hostPlatform.isDarwin) [ rpcsvc-proto ] - ++ lib.optionals (stdenv.hostPlatform.isDarwin) [ autoreconfHook ] ++ lib.optional (withMySQL && lib.versionOlder version "2.4") fake_mysql_config; buildInputs = [ @@ -125,7 +125,10 @@ stdenv.mkDerivation (finalAttrs: { enableParallelBuilding = true; - env.NIX_LDFLAGS = lib.optionalString stdenv.hostPlatform.isDarwin "-liconv"; + env = { + NIX_LDFLAGS = lib.optionalString stdenv.hostPlatform.isDarwin "-liconv"; + LUA_PATH = lib.optionalString withLua "${lua5_3.pkgs.json}/share/lua/${lua5_3.luaversion}/?.lua"; + }; postPatch = '' sed -i -E \ diff --git a/pkgs/by-name/do/dovecot/package.nix b/pkgs/by-name/do/dovecot/package.nix index ccd716f729e3..aae29eb5e8fd 100644 --- a/pkgs/by-name/do/dovecot/package.nix +++ b/pkgs/by-name/do/dovecot/package.nix @@ -4,5 +4,6 @@ import ./generic.nix { patches = _: [ # Fix loading extended modules. ./load-extended-modules.patch + ./fix-lua-build.patch ]; } diff --git a/pkgs/development/lua-modules/json/default.nix b/pkgs/development/lua-modules/json/default.nix new file mode 100644 index 000000000000..9485c5c4eef1 --- /dev/null +++ b/pkgs/development/lua-modules/json/default.nix @@ -0,0 +1,34 @@ +{ + buildLuaPackage, + fetchFromGitHub, + lib, + lua, +}: + +buildLuaPackage rec { + pname = "json"; + version = "0.1.2"; + src = fetchFromGitHub { + owner = "rxi"; + repo = "json.lua"; + rev = "v${version}"; + hash = "sha256-JSKMxF5NSHW3QaELFPWm1sx7kHmOXEPsUkM3i/px7Gk="; + }; + + dontBuild = true; + + installPhase = '' + runHook preInstall + + mkdir -p $out/share/lua/${lua.luaversion} + cp -r json.lua $out/share/lua/${lua.luaversion} + + runHook postInstall + ''; + + meta = { + homepage = "https://github.com/rxi/json.lua"; + description = "A lightweight JSON library for Lua"; + license = lib.licenses.mit; + }; +} diff --git a/pkgs/top-level/lua-packages.nix b/pkgs/top-level/lua-packages.nix index aed979e7a5d5..873e872640ab 100644 --- a/pkgs/top-level/lua-packages.nix +++ b/pkgs/top-level/lua-packages.nix @@ -113,6 +113,8 @@ rec { image-nvim = callPackage ../development/lua-modules/image-nvim { }; + json = callPackage ../development/lua-modules/json { }; + lua-https = callPackage ../development/lua-modules/lua-https { }; lua-pam = callPackage (