Skip to content
Snippets Groups Projects
Commit aa077dc5 authored by rubicon's avatar rubicon
Browse files

testing/ejabberd: fix and upgrade vendored elixir

it no longer conflicts with community/elixir, upgraded version
no longer complains about get_stacktrace being removed, fixes
the crash in Elixir.Logger.App, and the missing plugins warnings
at compilation are reduced by compiling rebar_elixir_plugin earlier
parent ad5a3a50
No related branches found
No related tags found
2 merge requests!39304[3.16] main/expat: security upgrade to 2.4.9,!35656testing/ejabberd: stop using aports git as version & assume maintainership
...@@ -9,7 +9,7 @@ _base64url=1.0.1 ...@@ -9,7 +9,7 @@ _base64url=1.0.1
_cache_tab=1.0.30 _cache_tab=1.0.30
_eimp=1.0.22 _eimp=1.0.22
_ejabberd_po=9849703c3664e43452eae3245016a1c187f3edc4 _ejabberd_po=9849703c3664e43452eae3245016a1c187f3edc4
_elixir=1.4.4 _elixir=1.12.3
_epam=1.0.12 _epam=1.0.12
_eredis=1.2.0 _eredis=1.2.0
_esip=1.0.47 _esip=1.0.47
...@@ -54,6 +54,7 @@ source="$pkgname-$pkgver.tar.gz::https://github.com/processone/ejabberd/archive/ ...@@ -54,6 +54,7 @@ source="$pkgname-$pkgver.tar.gz::https://github.com/processone/ejabberd/archive/
eimp-$_eimp.tar.gz::https://github.com/processone/eimp/archive/refs/tags/$_eimp.tar.gz eimp-$_eimp.tar.gz::https://github.com/processone/eimp/archive/refs/tags/$_eimp.tar.gz
ejabberd_po-$_ejabberd_po.tar.gz::https://github.com/processone/ejabberd-po/archive/$_ejabberd_po.tar.gz ejabberd_po-$_ejabberd_po.tar.gz::https://github.com/processone/ejabberd-po/archive/$_ejabberd_po.tar.gz
elixir-$_elixir.tar.gz::https://github.com/elixir-lang/elixir/archive/refs/tags/v$_elixir.tar.gz elixir-$_elixir.tar.gz::https://github.com/elixir-lang/elixir/archive/refs/tags/v$_elixir.tar.gz
elixir.app.src elixir-mix.sh elixir-rebar.config
epam-$_epam.tar.gz::https://github.com/processone/epam/archive/refs/tags/$_epam.tar.gz epam-$_epam.tar.gz::https://github.com/processone/epam/archive/refs/tags/$_epam.tar.gz
eredis-$_eredis.tar.gz::https://github.com/wooga/eredis/archive/refs/tags/v$_eredis.tar.gz eredis-$_eredis.tar.gz::https://github.com/wooga/eredis/archive/refs/tags/v$_eredis.tar.gz
esip-$_esip.tar.gz::https://github.com/processone/esip/archive/refs/tags/$_esip.tar.gz esip-$_esip.tar.gz::https://github.com/processone/esip/archive/refs/tags/$_esip.tar.gz
...@@ -87,6 +88,8 @@ source="$pkgname-$pkgver.tar.gz::https://github.com/processone/ejabberd/archive/ ...@@ -87,6 +88,8 @@ source="$pkgname-$pkgver.tar.gz::https://github.com/processone/ejabberd/archive/
ejabberd.confd ejabberd.confd
dont-leak-destdir.patch dont-leak-destdir.patch
fix-elixir-dirs.patch
fix-missing-plugins.patch
" "
prepare() { prepare() {
...@@ -126,7 +129,20 @@ prepare() { ...@@ -126,7 +129,20 @@ prepare() {
mv "$srcdir"/erlang-sqlite3-$_sqlite3 "$builddir"/deps/sqlite3 mv "$srcdir"/erlang-sqlite3-$_sqlite3 "$builddir"/deps/sqlite3
mv "$srcdir"/erlang-idna-$_idna "$builddir"/deps/idna mv "$srcdir"/erlang-idna-$_idna "$builddir"/deps/idna
mv "$srcdir"/erlang-jose-$_jose "$builddir"/deps/jose mv "$srcdir"/erlang-jose-$_jose "$builddir"/deps/jose
install -Dm755 "$srcdir"/elixir-mix.sh \
"$builddir"/deps/elixir/bin/mix
install -Dm644 "$srcdir"/elixir-rebar.config \
"$builddir"/deps/elixir/rebar.config
install -Dm644 "$srcdir"/elixir.app.src \
-t "$builddir"/deps/elixir/src/
sed -i "s/@ELIXIR_VERSION@/$_elixir/" \
"$builddir"/deps/elixir/src/elixir.app.src
cp -a "$builddir"/deps/elixir/bin/elixir \
"$builddir"/deps/elixir/bin/elixir-install
default_prepare default_prepare
sed -i "s/@ELIXIR_VERSION@/$_elixir/" Makefile.in
GIT_DIR=. sh ./autogen.sh GIT_DIR=. sh ./autogen.sh
} }
...@@ -167,6 +183,9 @@ package() { ...@@ -167,6 +183,9 @@ package() {
chgrp ejabberd "$pkgdir"/etc/ejabberd/ejabberd.yml \ chgrp ejabberd "$pkgdir"/etc/ejabberd/ejabberd.yml \
"$pkgdir"/etc/ejabberd/ejabberdctl.cfg "$pkgdir"/etc/ejabberd "$pkgdir"/etc/ejabberd/ejabberdctl.cfg "$pkgdir"/etc/ejabberd
sed -i "s|/usr/bin/iex|/usr/lib/ejabberd/ejabberd-$pkgver/priv/bin/iex|" \
"$pkgdir"/usr/sbin/ejabberdctl
cd "$pkgdir"/usr/lib/ejabberd/ejabberd-$pkgver/priv/bin/ cd "$pkgdir"/usr/lib/ejabberd/ejabberd-$pkgver/priv/bin/
rm -f captcha.sh rm -f captcha.sh
ln -sf ../../../*/priv/bin/* . ln -sf ../../../*/priv/bin/* .
...@@ -178,7 +197,10 @@ sha512sums=" ...@@ -178,7 +197,10 @@ sha512sums="
bc8aaacea404d8a8b9a8fb14bc1eec9ec0c07ba4fac910287f448be66b0b3475b3913297dfce8d9de9fc208d9eb413dd8bf154cd1bd6edf86ee40100629e4553 cache_tab-1.0.30.tar.gz bc8aaacea404d8a8b9a8fb14bc1eec9ec0c07ba4fac910287f448be66b0b3475b3913297dfce8d9de9fc208d9eb413dd8bf154cd1bd6edf86ee40100629e4553 cache_tab-1.0.30.tar.gz
5426df9a00d5b614ebb236729e2b397d5e72e12e68cbed32550a074b1b86557e1dee6585b917166e5ebf2fc41297329574c181471885638236c82a66a29d2232 eimp-1.0.22.tar.gz 5426df9a00d5b614ebb236729e2b397d5e72e12e68cbed32550a074b1b86557e1dee6585b917166e5ebf2fc41297329574c181471885638236c82a66a29d2232 eimp-1.0.22.tar.gz
ee70d9fcd28b5b1b43206ead9283b848f1d526a242b323ccc4e1211759683d914ad8ce9e33d4b864490b1a6e3f0542956eb1fa4fc8e1502a0a36587f41c3aab9 ejabberd_po-9849703c3664e43452eae3245016a1c187f3edc4.tar.gz ee70d9fcd28b5b1b43206ead9283b848f1d526a242b323ccc4e1211759683d914ad8ce9e33d4b864490b1a6e3f0542956eb1fa4fc8e1502a0a36587f41c3aab9 ejabberd_po-9849703c3664e43452eae3245016a1c187f3edc4.tar.gz
e339a27e1b31c7783077fc336703c30066d18af990c26741508caa16f15d33d71c56ca7884ed27d046b310db5e051adc428fc51535abecb06992225c6d2d274d elixir-1.4.4.tar.gz 945e33ca9c3e50015531f87630c1bc1b9966acc64bbf7d01c8c4f8cfc104ee1e08113f572f0ad6a9f5e8ee37e33144e58b2ac33dc0a2b01e1355fc5f8b1b9329 elixir-1.12.3.tar.gz
ffb1ed8db363f008bc08af2871d6defa89f197347e488c739218c80143e217c71a7fd7579ba4949ce21f15027221038a78fc33803264502be8fa0b0a475ccf13 elixir.app.src
29ac3d68b3a69c720ed94194c24702cb1ceb2cafd47ad1dd52a7a74a29557fe06a31d671612c4e4d03c60b15be7208d0d993fec22cc1334dcc04ab6c34a79b58 elixir-mix.sh
4b10f66bdfe044b71849499127c68891185b1d3ec05efae5b5f9c7969cd364deea0d7635a9c918a0791ce84001470c267c087a41c647bed67c9aae1648e6d447 elixir-rebar.config
61a1d49c3316fb7f8fcc8b7d7c1ab0b5dd87fa31cecac679a850d191fe9171f7e01473b9979f8107c1c4567836e07ced67336dd5133dfdc5d4680cb3b6c3b270 epam-1.0.12.tar.gz 61a1d49c3316fb7f8fcc8b7d7c1ab0b5dd87fa31cecac679a850d191fe9171f7e01473b9979f8107c1c4567836e07ced67336dd5133dfdc5d4680cb3b6c3b270 epam-1.0.12.tar.gz
c72ae291389e47d1ac4c1de69dccb6121f4f9195283665d490904226b2ea15cb7671b48bb08db507a5e62c6bced62d890a9ecb9752da6e0aad24a28da137907c eredis-1.2.0.tar.gz c72ae291389e47d1ac4c1de69dccb6121f4f9195283665d490904226b2ea15cb7671b48bb08db507a5e62c6bced62d890a9ecb9752da6e0aad24a28da137907c eredis-1.2.0.tar.gz
68be1c8cf507180e73f3a16dfd8ca44ffad825c40df0d1874888afa41f3cb89b445b033036d041af29ec3fdbdab7acc68f770124171ba4af73abd0775a03c0ba esip-1.0.47.tar.gz 68be1c8cf507180e73f3a16dfd8ca44ffad825c40df0d1874888afa41f3cb89b445b033036d041af29ec3fdbdab7acc68f770124171ba4af73abd0775a03c0ba esip-1.0.47.tar.gz
...@@ -210,4 +232,6 @@ ee5bc1600ea00ad9c1d9f1565d04d073dd357c6f69c0728e770e17f7e4f1a07c2d2883d05e344d33 ...@@ -210,4 +232,6 @@ ee5bc1600ea00ad9c1d9f1565d04d073dd357c6f69c0728e770e17f7e4f1a07c2d2883d05e344d33
47fd2cfd9177c4e978a9799a153ba74392a9891822221af8194686a40f6bf01f38644833e1e1f5416c6357e0bfb7ca3dae96f55a4fcd7cd629ec798d85a72807 ejabberd.logrotate 47fd2cfd9177c4e978a9799a153ba74392a9891822221af8194686a40f6bf01f38644833e1e1f5416c6357e0bfb7ca3dae96f55a4fcd7cd629ec798d85a72807 ejabberd.logrotate
96a571c0ab2be366e931bda423a61ef920cbaba2107e61ddbc501472ce3efe2804418cc6579c99310b902a9a99aaecb9284cf2420c071dbca2f670efb4034135 ejabberd.confd 96a571c0ab2be366e931bda423a61ef920cbaba2107e61ddbc501472ce3efe2804418cc6579c99310b902a9a99aaecb9284cf2420c071dbca2f670efb4034135 ejabberd.confd
7b6debff487880dfacd8e882c03a9d948178dfd450c336657e11442a51b62574e9bd41c0af131b6b4f3b1b0f450c442c2eff04ad3f13439540685740295bf71e dont-leak-destdir.patch 7b6debff487880dfacd8e882c03a9d948178dfd450c336657e11442a51b62574e9bd41c0af131b6b4f3b1b0f450c442c2eff04ad3f13439540685740295bf71e dont-leak-destdir.patch
e1efee3ef1535febfe9a9d10b1ba1ecf798d1b17d14accc43b2c77536b93a956ae6c4c71c135f7e6d03bf2cd4f61bb0c12d27ef69576db71c3a915dc7c61c103 fix-elixir-dirs.patch
b6e23b16a8f931a2da9f052333dedc2b37667cf9265b84174590ac9a72e5f16d9dcd4c7153532bf45def7f94a71ce012dbb9d3227b7c7449b105fd711d085d59 fix-missing-plugins.patch
" "
#!/bin/sh
set -e
readlink_f () {
cd "$(dirname "$1")" > /dev/null
filename="$(basename "$1")"
if [ -h "$filename" ]; then
readlink_f "$(readlink "$filename")"
else
echo "$(pwd -P)/$filename"
fi
}
SELF=$(readlink_f "$0")
SCRIPT_PATH=$(dirname "$SELF")
exec "$SCRIPT_PATH"/elixir -e "Mix.start(); Mix.CLI.main()" -- "$@"
%% Using Elixir as a Rebar dependency
%% This configuration file only exists so Elixir can be used
%% as a Rebar dependency, the same happens for the file
%% src/elixir.app.src.
%% In practice, Elixir is structured as OTP where many applications
%% are placed in the lib directory. Since this structure is not
%% supported by default by Rebar, after adding Elixir as a dependency
%% you need to explicitly add it to lib_dirs:
%%
%% {lib_dirs, [
%% "deps/elixir/lib"
%% ]}.
%%
%% Run "make" as the proper compilation step
{post_hooks, [{compile, "make compile"}]}.
%% This prevents rebar_elixir_plugin from recompiling Elixir
{ex_opts, [{src_dirs, [".PHONY"]}]}.
{application, elixir,
[{description, "elixir"},
{vsn, "@ELIXIR_VERSION@"},
{modules, [
elixir
]},
{registered, [elixir_config, elixir_code_server]},
{applications, [kernel,stdlib,compiler]},
{mod, {elixir,[]}},
{env, [{ansi_enabled, false}]}
]}.
--- a/Makefile.in
+++ b/Makefile.in
@@ -324,10 +324,10 @@
[ -d $(DESTDIR)$(SBINDIR) ] || $(INSTALL) -d -m 755 $(DESTDIR)$(SBINDIR)
$(INSTALL) -m 550 $(G_USER) ejabberdctl.example $(DESTDIR)$(SBINDIR)/ejabberdctl
# Elixir binaries
- [ -d $(DESTDIR)$(BINDIR) ] || $(INSTALL) -d -m 755 $(DESTDIR)$(BINDIR)
- [ -f $(DEPSDIR)/elixir/bin/iex ] && $(INSTALL) -m 550 $(G_USER) $(DEPSDIR)/elixir/bin/iex $(DESTDIR)$(BINDIR)/iex || true
- [ -f $(DEPSDIR)/elixir/bin/elixir ] && $(INSTALL) -m 550 $(G_USER) $(DEPSDIR)/elixir/bin/elixir $(DESTDIR)$(BINDIR)/elixir || true
- [ -f $(DEPSDIR)/elixir/bin/mix ] && $(INSTALL) -m 550 $(G_USER) $(DEPSDIR)/elixir/bin/mix $(DESTDIR)$(BINDIR)/mix || true
+ [ -f $(DEPSDIR)/elixir/bin/iex ] && $(INSTALL) -Dm 550 $(G_USER) $(DEPSDIR)/elixir/bin/iex -t $(DESTDIR)$(LIBDIR)/elixir-@ELIXIR_VERSION@/priv/bin/ || true
+ [ -f $(DEPSDIR)/elixir/bin/elixir-install ] && $(INSTALL) -Dm 550 $(G_USER) $(DEPSDIR)/elixir/bin/elixir-install $(DESTDIR)$(LIBDIR)/elixir-@ELIXIR_VERSION@/priv/bin/elixir || true
+ [ -f $(DEPSDIR)/elixir/bin/elixirc ] && $(INSTALL) -Dm 550 $(G_USER) $(DEPSDIR)/elixir/bin/elixirc -t $(DESTDIR)$(LIBDIR)/elixir-@ELIXIR_VERSION@/priv/bin/ || true
+ [ -f $(DEPSDIR)/elixir/bin/mix ] && $(INSTALL) -Dm 550 $(G_USER) $(DEPSDIR)/elixir/bin/mix -t $(DESTDIR)$(LIBDIR)/elixir-@ELIXIR_VERSION@/priv/bin/ || true
#
# Init script
$(SED) -e "s*@ctlscriptpath@*$(SBINDIR)*g" \
--- a/deps/elixir/bin/elixir-install
+++ b/deps/elixir/bin/elixir-install
@@ -211,7 +211,7 @@
fi
ERTS_BIN=
-set -- "$ERTS_BIN$ERL_EXEC" -pa "$SCRIPT_PATH"/../lib/*/ebin $ELIXIR_ERL_OPTIONS $ERL "$@"
+set -- "$ERTS_BIN$ERL_EXEC" -pa "$SCRIPT_PATH"/../../../*/ebin $ELIXIR_ERL_OPTIONS $ERL "$@"
if [ -n "$RUN_ERL_PIPE" ]; then
ESCAPED=""
--- a/rebar.config
+++ b/rebar.config
@@ -18,13 +18,16 @@
%%%
%%%----------------------------------------------------------------------
-{deps, [{base64url, ".*", {git, "https://github.com/dvv/base64url", {tag, "1.0.1"}}},
+{deps, [{if_not_rebar3, %% Needed because modules are not fully migrated to new structure and mix
+ {if_var_true, elixir,
+ {rebar_elixir_plugin, ".*", {git, "https://github.com/processone/rebar_elixir_plugin", "0.1.0"}}}},
+ {if_var_true, elixir,
+ {elixir, ".*", {git, "https://github.com/elixir-lang/elixir", {tag, "v1.4.4"}}}},
+ {base64url, ".*", {git, "https://github.com/dvv/base64url", {tag, "1.0.1"}}},
{cache_tab, ".*", {git, "https://github.com/processone/cache_tab", {tag, "1.0.30"}}},
{eimp, ".*", {git, "https://github.com/processone/eimp", {tag, "1.0.22"}}},
{if_var_true, tools,
{ejabberd_po, ".*", {git, "https://github.com/processone/ejabberd-po", {branch, "main"}}}},
- {if_var_true, elixir,
- {elixir, ".*", {git, "https://github.com/elixir-lang/elixir", {tag, "v1.4.4"}}}},
{if_var_true, pam,
{epam, ".*", {git, "https://github.com/processone/epam", {tag, "1.0.12"}}}},
{if_var_true, redis,
@@ -62,9 +65,6 @@
{p1_pgsql, ".*", {git, "https://github.com/processone/p1_pgsql", {tag, "1.1.18"}}}},
{p1_utils, ".*", {git, "https://github.com/processone/p1_utils", {tag, "1.0.25"}}},
{pkix, ".*", {git, "https://github.com/processone/pkix", {tag, "1.0.9"}}},
- {if_not_rebar3, %% Needed because modules are not fully migrated to new structure and mix
- {if_var_true, elixir,
- {rebar_elixir_plugin, ".*", {git, "https://github.com/processone/rebar_elixir_plugin", "0.1.0"}}}},
{if_var_true, sqlite,
{sqlite3, ".*", {git, "https://github.com/processone/erlang-sqlite3", {tag, "1.1.13"}}}},
{stringprep, ".*", {git, "https://github.com/processone/stringprep", {tag, "1.0.28"}}},
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment