diff options
author | Robin Gloster <mail@glob.in> | 2018-03-22 03:40:46 +0100 |
---|---|---|
committer | Robin Gloster <mail@glob.in> | 2018-03-22 03:40:46 +0100 |
commit | 0a80f2c0f4284428235b0f54e228f6e76f1673a7 (patch) | |
tree | e47d5435c8f3cbca827633637af674f1f051b624 | |
parent | 88f06c5ce9800d661fa85c019838fe67635aa64f (diff) | |
download | nixlib-0a80f2c0f4284428235b0f54e228f6e76f1673a7.tar nixlib-0a80f2c0f4284428235b0f54e228f6e76f1673a7.tar.gz nixlib-0a80f2c0f4284428235b0f54e228f6e76f1673a7.tar.bz2 nixlib-0a80f2c0f4284428235b0f54e228f6e76f1673a7.tar.lz nixlib-0a80f2c0f4284428235b0f54e228f6e76f1673a7.tar.xz nixlib-0a80f2c0f4284428235b0f54e228f6e76f1673a7.tar.zst nixlib-0a80f2c0f4284428235b0f54e228f6e76f1673a7.zip |
prosody: improve module handling
-rw-r--r-- | nixos/doc/manual/release-notes/rl-1803.xml | 5 | ||||
-rw-r--r-- | nixos/modules/services/networking/prosody.nix | 14 | ||||
-rw-r--r-- | pkgs/servers/xmpp/prosody/default.nix | 10 |
3 files changed, 23 insertions, 6 deletions
diff --git a/nixos/doc/manual/release-notes/rl-1803.xml b/nixos/doc/manual/release-notes/rl-1803.xml index 20f23261b608..e67f14484660 100644 --- a/nixos/doc/manual/release-notes/rl-1803.xml +++ b/nixos/doc/manual/release-notes/rl-1803.xml @@ -347,6 +347,11 @@ following incompatible changes:</para> <para> The better-performing <literal>libevent</literal> backend is now enabled by default. </para> + + <para> + <literal>withCommunityModules</literal> now passes through the modules to <option>services.prosody.extraModules</option>. + Use <literal>withOnlyInstalledCommunityModules</literal> for modules that should not be enabled directly, e.g <literal>lib_ldap</literal>. + </para> </listitem> </itemizedlist> diff --git a/nixos/modules/services/networking/prosody.nix b/nixos/modules/services/networking/prosody.nix index a7b43fb78a95..d57ebb61f636 100644 --- a/nixos/modules/services/networking/prosody.nix +++ b/nixos/modules/services/networking/prosody.nix @@ -362,6 +362,12 @@ in description = "Enable custom modules"; }; + extraPluginPaths = mkOption { + type = types.listOf types.path; + default = []; + description = "Addtional path in which to look find plugins/modules"; + }; + virtualHosts = mkOption { description = "Define the virtual hosts"; @@ -411,16 +417,18 @@ in config = mkIf cfg.enable { - environment.systemPackages = [ pkgs.prosody ]; + environment.systemPackages = [ cfg.package ]; environment.etc."prosody/prosody.cfg.lua".text = '' pidfile = "/var/lib/prosody/prosody.pid" - log = "*syslog" data_path = "/var/lib/prosody" + plugin_paths = { + ${lib.concatStringsSep ", " (map (n: "\"${n}\"") cfg.extraPluginPaths) } + } ${ optionalString (cfg.ssl != null) (createSSLOptsStr cfg.ssl) } @@ -434,7 +442,7 @@ in ${ lib.concatStringsSep "\n\ \ " (lib.mapAttrsToList (name: val: optionalString val "${toLua name};") cfg.modules) } - + ${ lib.concatStringsSep "\n" (map (x: "${toLua x};") cfg.package.communityModules)} ${ lib.concatStringsSep "\n" (map (x: "${toLua x};") cfg.extraModules)} }; diff --git a/pkgs/servers/xmpp/prosody/default.nix b/pkgs/servers/xmpp/prosody/default.nix index 1567a4a6b30b..2d0e1a529dac 100644 --- a/pkgs/servers/xmpp/prosody/default.nix +++ b/pkgs/servers/xmpp/prosody/default.nix @@ -4,6 +4,7 @@ , withDBI ? true, luadbi ? null # use withExtraLibs to add additional dependencies of community modules , withExtraLibs ? [ ] +, withOnlyInstalledCommunityModules ? [ ] , withCommunityModules ? [ ] }: assert withLibevent -> luaevent != null; @@ -38,7 +39,8 @@ stdenv.mkDerivation rec { sha256 = "0nfx3lngcy88nd81gb7v4kh3nz1bzsm67bxgpd2lprk54diqcrz1"; }; - buildInputs = [ lua5 makeWrapper libidn openssl ]; + buildInputs = [ lua5 makeWrapper libidn openssl ] + ++ optional withDBI luadbi; configureFlags = [ "--ostype=linux" @@ -49,7 +51,7 @@ stdenv.mkDerivation rec { postInstall = '' ${concatMapStringsSep "\n" (module: '' cp -r $communityModules/mod_${module} $out/lib/prosody/modules/ - '') withCommunityModules} + '') (withCommunityModules ++ withOnlyInstalledCommunityModules)} wrapProgram $out/bin/prosody \ --set LUA_PATH '${luaPath};' \ --set LUA_CPATH '${luaCPath};' @@ -59,11 +61,13 @@ stdenv.mkDerivation rec { --set LUA_CPATH '${luaCPath};' ''; + passthru.communityModules = withCommunityModules; + meta = { description = "Open-source XMPP application server written in Lua"; license = licenses.mit; homepage = https://prosody.im; platforms = platforms.linux; - maintainers = [ ]; + maintainers = with maintainers; [ fpletz globin ]; }; } |