From 988ce5433f9b452dd419d7ada9a033fa4e44a8fc Mon Sep 17 00:00:00 2001 From: Satoshi Shishiku Date: Wed, 1 Mar 2017 00:57:02 +0000 Subject: [PATCH] prosody: support for DBI, extra community modules and extra Lua libraries --- pkgs/servers/xmpp/prosody/default.nix | 28 +++++++++++++++++---------- pkgs/top-level/all-packages.nix | 2 +- 2 files changed, 19 insertions(+), 11 deletions(-) diff --git a/pkgs/servers/xmpp/prosody/default.nix b/pkgs/servers/xmpp/prosody/default.nix index 3285456a3485..b6af22883bcb 100644 --- a/pkgs/servers/xmpp/prosody/default.nix +++ b/pkgs/servers/xmpp/prosody/default.nix @@ -1,16 +1,24 @@ { stdenv, fetchurl, libidn, openssl, makeWrapper, fetchhg -, lua5, luasocket, luasec, luaexpat, luafilesystem, luabitop, luaevent ? null, luazlib ? null -, withLibevent ? true, withZlib ? true }: +, lua5, luasocket, luasec, luaexpat, luafilesystem, luabitop +, withLibevent ? true, luaevent ? null +, withZlib ? true, luazlib ? null +, withDBI ? true, luadbi ? null +# use withExtraLibs to add additional dependencies of community modules +, withExtraLibs ? [ ] +, withCommunityModules ? [ ] }: assert withLibevent -> luaevent != null; assert withZlib -> luazlib != null; +assert withDBI -> luadbi != null; with stdenv.lib; let libs = [ luasocket luasec luaexpat luafilesystem luabitop ] ++ optional withLibevent luaevent - ++ optional withZlib luazlib; + ++ optional withZlib luazlib + ++ optional withDBI luadbi + ++ withExtraLibs; 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"; @@ -28,14 +36,12 @@ stdenv.mkDerivation rec { }; communityModules = fetchhg { - url = "http://prosody-modules.googlecode.com/hg/"; - rev = "4b55110b0aa8"; - sha256 = "0010x2rl9f9ihy2nwqan2jdlz25433srj2zna1xh10490mc28hij"; + url = "https://hg.prosody.im/prosody-modules"; + rev = "590ac12b7671"; + sha256 = "02f3nmvbidm2f32v6kvc1ljmslysgk0ab2lpg91szy0agmmj5xja"; }; - buildInputs = [ lua5 luasocket luasec luaexpat luabitop libidn openssl makeWrapper ] - ++ optional withLibevent luaevent - ++ optional withZlib luazlib; + buildInputs = [ lua5 makeWrapper libidn openssl ]; configureFlags = [ "--ostype=linux" @@ -44,7 +50,9 @@ stdenv.mkDerivation rec { ]; postInstall = '' - cp $communityModules/mod_websocket/mod_websocket.lua $out/lib/prosody/modules/ + ${concatMapStringsSep "\n" (module: '' + cp -r $communityModules/mod_${module} $out/lib/prosody/modules/ + '') withCommunityModules} wrapProgram $out/bin/prosody \ --set LUA_PATH '${luaPath};' \ --set LUA_CPATH '${luaCPath};' diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 2a96fbe66228..3d4c39313895 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -11498,7 +11498,7 @@ with pkgs; prosody = callPackage ../servers/xmpp/prosody { lua5 = lua5_1; - inherit (lua51Packages) luasocket luasec luaexpat luafilesystem luabitop luaevent luazlib; + inherit (lua51Packages) luasocket luasec luaexpat luafilesystem luabitop luaevent luazlib luadbi; }; biboumi = callPackage ../servers/xmpp/biboumi { };