From b920851ee8ec5aefff495628f2ac7f929c9c5c7a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Janne=20He=C3=9F?= Date: Thu, 9 Jul 2026 11:30:45 +0200 Subject: [PATCH 1/2] luaPackages.json: Init at 0.1.2 (cherry picked from commit cad704c42aef88ffe7cca9448e087873e72e2f6d) --- pkgs/development/lua-modules/json/default.nix | 34 +++++++++++++++++++ pkgs/top-level/lua-packages.nix | 2 ++ 2 files changed, 36 insertions(+) create mode 100644 pkgs/development/lua-modules/json/default.nix 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 91ba3125b977..c22b3ff859d8 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 ( From 7f3381ce1823aa65cc09400887cdef5bee70483e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Janne=20He=C3=9F?= Date: Thu, 9 Jul 2026 11:31:14 +0200 Subject: [PATCH 2/2] dovecot: Fix building with Lua Closes https://github.com/NixOS/nixpkgs/issues/538988 The committed patch file was generated by an agent, while all Nix code was hand-written and hand-tested. Assisted-by: GLM-5.1 (cherry picked from commit 46911f50942dac5efbd0b3c9e8d0c96e60646888) --- pkgs/by-name/do/dovecot/fix-lua-build.patch | 28 +++++++++++++++++++++ pkgs/by-name/do/dovecot/generic.nix | 7 ++++-- pkgs/by-name/do/dovecot/package.nix | 1 + 3 files changed, 34 insertions(+), 2 deletions(-) create mode 100644 pkgs/by-name/do/dovecot/fix-lua-build.patch 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 ]; }