summaryrefslogtreecommitdiffstats
path: root/tv/3modules/ejabberd/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'tv/3modules/ejabberd/default.nix')
-rw-r--r--tv/3modules/ejabberd/default.nix27
1 files changed, 26 insertions, 1 deletions
diff --git a/tv/3modules/ejabberd/default.nix b/tv/3modules/ejabberd/default.nix
index 2966a4f6..2a87b59c 100644
--- a/tv/3modules/ejabberd/default.nix
+++ b/tv/3modules/ejabberd/default.nix
@@ -25,7 +25,32 @@ in {
};
configFile = mkOption {
type = types.either types.package types.absolute-pathname;
- default = settingsFormat.generate "ejabberd.yaml" cfg.settings;
+ default =
+ (settingsFormat.generate "ejabberd.yaml" cfg.settings)
+ # XXX ejabberd cannot parse MQTT topic filters enclosed in single
+ # quotes. By changing the YAML formatting style, double quotes will
+ # be used instead.
+ #
+ # Related error message:
+ # Invalid value of option modules->mod_mqtt->access_publish:
+ # Malformed topic filter
+ #
+ .overrideAttrs (old: {
+ nativeBuildInputs =
+ filter
+ (pkg: (parseDrvName pkg.name).name != "remarshal")
+ old.nativeBuildInputs
+ ++
+ singleton (pkgs.symlinkJoin {
+ name = "remarshal";
+ paths = [
+ (pkgs.writeDashBin "json2yaml" ''
+ exec ${pkgs.remarshal}/bin/json2yaml --yaml-style \> "$@"
+ '')
+ pkgs.remarshal
+ ];
+ });
+ });
};
ciphers = mkOption {
type = types.listOf types.str;