From 94a733c6669afb7b41fdafcb9bf0a4ac24a483f2 Mon Sep 17 00:00:00 2001 From: Holger Weiss Date: Thu, 23 Dec 2021 14:24:27 +0100 Subject: [PATCH] Fix ERTS path in ejabberdctl with `rebar3 release` Rebar 2 expands {{erts-vsn}} to "erts-$vsn", Rebar 3 expands it to just "$vsn". Make sure `make rel` doesn't end up with a "$vsn" directory next to "erts-$vsn" (which happened when using Rebar 3), and make sure that ejabberdctl expects both "erl" and "epmd" to be installed below "erts-$vsn" (which it didn't when using Rebar 3). --- ejabberdctl.template | 1 + rebar.config | 2 +- vars.config.in | 5 +++-- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/ejabberdctl.template b/ejabberdctl.template index 9bd76749c..679db7a73 100755 --- a/ejabberdctl.template +++ b/ejabberdctl.template @@ -12,6 +12,7 @@ ERLANG_NODE=ejabberd@localhost # define default environment variables [ -z "$SCRIPT" ] && SCRIPT=$0 SCRIPT_DIR="$(cd "$(dirname "$SCRIPT")" && pwd -P)" +ERTS_VSN="{{erts_vsn}}" ERL="{{erl}}" IEX="{{bindir}}/iex" EPMD="{{epmd}}" diff --git a/rebar.config b/rebar.config index 02993d899..80683b442 100644 --- a/rebar.config +++ b/rebar.config @@ -181,7 +181,7 @@ {overlay, [{mkdir, "var/log/ejabberd"}, {mkdir, "var/lib/ejabberd"}, {mkdir, "etc/ejabberd"}, - {copy, "rel/files/erl", "\{\{erts_vsn\}\}/bin/erl"}, % in rebar2 this prepends erts- + {copy, "rel/files/erl", "erts-\{\{erts_vsn\}\}/bin/erl"}, {template, "ejabberdctl.template", "bin/ejabberdctl"}, {copy, "inetrc", "etc/ejabberd/inetrc"}, {copy, "tools/captcha*.sh", "lib/ejabberd-\{\{release_version\}\}/priv/bin/"}, diff --git a/vars.config.in b/vars.config.in index 9b3ac7585..04024fd73 100644 --- a/vars.config.in +++ b/vars.config.in @@ -51,9 +51,10 @@ {release, true}. {release_dir, "${SCRIPT_DIR%/*}"}. {sysconfdir, "{{release_dir}}/etc"}. +{erts_dir, "{{release_dir}}/erts-${ERTS_VSN#erts-}"}. {installuser, "@INSTALLUSER@"}. -{erl, "{{release_dir}}/{{erts_vsn}}/bin/erl"}. -{epmd, "{{release_dir}}/{{erts_vsn}}/bin/epmd"}. +{erl, "{{erts_dir}}/bin/erl"}. +{epmd, "{{erts_dir}}/bin/epmd"}. {localstatedir, "{{release_dir}}/var"}. {libdir, "{{release_dir}}/lib"}. {docdir, "{{release_dir}}/doc"}.