From 871e26a01ed410601c861ef046c98f9ae9936bf3 Mon Sep 17 00:00:00 2001 From: Holger Weiss Date: Thu, 10 Mar 2022 16:29:32 +0100 Subject: [PATCH] mix.exs: Don't allow admins to override boot flags Add the -boot and -boot_var options via ERLANG_OPTS rather than ERL_OPTIONS. The difference is that administrators might override the latter in the ejabberdctl.cfg file, which isn't desired as the boot flags must be specified exactly that way in a Mix-generated release (otherwise, ejabberd would fail to start up). --- mix.exs | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/mix.exs b/mix.exs index c18ad15c6..4d1c451dc 100644 --- a/mix.exs +++ b/mix.exs @@ -269,9 +269,10 @@ defmodule Ejabberd.MixProject do execute.("sed -e 's|{{\\(\[_a-z\]*\\)}}|<%= @\\1 %>|g' ejabberdctl.example2> ejabberdctl.example2a") Mix.Generator.copy_template("ejabberdctl.example2a", "ejabberdctl.example2b", assigns) execute.("sed -e 's|{{\\(\[_a-z\]*\\)}}|<%= @\\1 %>|g' ejabberdctl.example2b > ejabberdctl.example3") - execute.("sed -e 's|ERLANG_NODE=ejabberd@localhost|ERLANG_NODE=ejabberd|g' ejabberdctl.example3 > ejabberdctl.example4") - execute.("sed -e 's|INSTALLUSER=|ERL_OPTIONS=\"-boot ../releases/#{release.version}/start_clean -boot_var RELEASE_LIB ../lib -setcookie \\$\\(cat \"\\${SCRIPT_DIR%/*}/releases/COOKIE\")\"\\nINSTALLUSER=|g' ejabberdctl.example4 > ejabberdctl.example5") - Mix.Generator.copy_template("ejabberdctl.example5", "#{ro}/bin/ejabberdctl", assigns) + execute.("sed -e 's|^ERLANG_NODE=ejabberd@localhost|ERLANG_NODE=ejabberd|g' ejabberdctl.example3 > ejabberdctl.example4") + execute.("sed -e 's|^ERLANG_OPTS=\"|ERLANG_OPTS=\"-boot ../releases/#{release.version}/start_clean -boot_var RELEASE_LIB ../lib |' ejabberdctl.example4 > ejabberdctl.example5") + execute.("sed -e 's|^INSTALLUSER=|ERL_OPTIONS=\"-setcookie \\$\\(cat \"\\${SCRIPT_DIR%/*}/releases/COOKIE\")\"\\nINSTALLUSER=|g' ejabberdctl.example5 > ejabberdctl.example6") + Mix.Generator.copy_template("ejabberdctl.example6", "#{ro}/bin/ejabberdctl", assigns) File.chmod("#{ro}/bin/ejabberdctl", 0o755) File.rm("ejabberdctl.example1") @@ -281,6 +282,7 @@ defmodule Ejabberd.MixProject do File.rm("ejabberdctl.example3") File.rm("ejabberdctl.example4") File.rm("ejabberdctl.example5") + File.rm("ejabberdctl.example6") suffix = case Mix.env() do :dev ->