diff --git a/pkgs/servers/xmpp/prosody/default.nix b/pkgs/servers/xmpp/prosody/default.nix index 684a06eff4a0..631073da4d4a 100644 --- a/pkgs/servers/xmpp/prosody/default.nix +++ b/pkgs/servers/xmpp/prosody/default.nix @@ -1,11 +1,16 @@ -{ stdenv, fetchurl, lua5, luasocket, luasec, luaexpat, luafilesystem, luabitop, luaevent ? null, libidn, openssl, makeWrapper, fetchhg, withLibevent ? false }: +{ stdenv, fetchurl, libidn, openssl, makeWrapper, fetchhg +, lua5, luasocket, luasec, luaexpat, luafilesystem, luabitop, luaevent ? null, luazlib ? null +, withLibevent ? true, withZlib ? true }: assert withLibevent -> luaevent != null; +assert withZlib -> luazlib != null; with stdenv.lib; let - libs = [ luasocket luasec luaexpat luafilesystem luabitop ] ++ optional withLibevent luaevent; + libs = [ luasocket luasec luaexpat luafilesystem luabitop ] + ++ optional withLibevent luaevent + ++ optional withZlib luazlib; getPath = lib : type : "${lib}/lib/lua/${lua5.luaversion}/?.${type};${lib}/share/lua/${lua5.luaversion}/?.${type}"; getLuaPath = lib : getPath lib "lua"; getLuaCPath = lib : getPath lib "so"; @@ -29,7 +34,8 @@ stdenv.mkDerivation rec { }; buildInputs = [ lua5 luasocket luasec luaexpat luabitop libidn openssl makeWrapper ] - ++ optional withLibevent luaevent; + ++ optional withLibevent luaevent + ++ optional withZlib luazlib; configureFlags = [ "--ostype=linux" diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 766dd90d25a6..d7ec3b8fcbf6 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -8266,8 +8266,7 @@ let prosody = callPackage ../servers/xmpp/prosody { lua5 = lua5_1; - inherit (lua51Packages) luasocket luasec luaexpat luafilesystem luabitop luaevent; - withLibevent = true; + inherit (lua51Packages) luasocket luasec luaexpat luafilesystem luabitop luaevent luazlib; }; elasticmq = callPackage ../servers/elasticmq { }; diff --git a/pkgs/top-level/lua-packages.nix b/pkgs/top-level/lua-packages.nix index ce75904418da..766ff90d5b7b 100644 --- a/pkgs/top-level/lua-packages.nix +++ b/pkgs/top-level/lua-packages.nix @@ -7,7 +7,7 @@ { fetchurl, stdenv, lua, callPackage, unzip, zziplib, pkgconfig, libtool , pcre, oniguruma, gnulib, tre, glibc, sqlite, openssl, expat, cairo -, perl, gtk, python, glib, gobjectIntrospection, libevent +, perl, gtk, python, glib, gobjectIntrospection, libevent, zlib }: let @@ -205,6 +205,37 @@ let }; }; + luazlib = buildLuaPackage rec { + name = "zlib-${version}"; + version = "0.4"; + + src = fetchurl { + url = "https://github.com/brimworks/lua-zlib/archive/v${version}.tar.gz"; + sha256 = "1l32nwyh8b4vicxvlhbv9qhkhklbhvjfn8wd72bjk7ac9kz172rd"; + }; + + buildInputs = [ zlib ]; + + preBuild = '' + makeFlagsArray=( + linux + LUAPATH="$out/share/lua/${lua.luaversion}" + LUACPATH="$out/lib/lua/${lua.luaversion}" + INCDIR="-I${lua}/include" + LIBDIR="-L$out/lib"); + ''; + + preInstall = "mkdir -p $out/lib/lua/${lua.luaversion}"; + + meta = with stdenv.lib; { + homepage = https://github.com/brimworks/lua-zlib; + hydraPlatforms = platforms.linux; + license = licenses.mit; + maintainers = [ maintainers.koral ]; + }; + }; + + luastdlib = buildLuaPackage { name = "stdlib"; src = fetchurl {