25
1
mirror of https://github.com/processone/ejabberd.git synced 2024-11-22 16:20:52 +01:00
Commit Graph

92 Commits

Author SHA1 Message Date
Badlop
bd0332c716 ext_mod: Fix typo in log message 2024-07-16 17:16:33 +02:00
Badlop
936460212f Fix bug in 8a3344e when Elixir enabled but no need to compile elixir files 2024-07-15 10:59:14 +02:00
Badlop
101cce0c1e ext_mod: Fetch dependencies from hex.pm when mix is available
This doesn't work when running an OTP release build using mix,
which means it doesn't work in binary installers or containers;
only when using relive, or compiled with rebar3.

Set the desired hex package version in the module's rebar.config
For example, to fetch hex package recon 2.5.5 when mix is available,
and otherwise download using git: in the file
  ejabberd-contrib/ejabberd_observer_cli/rebar.config
set both the hex version and git details:
{deps, [
        {recon, "2.5.5", {git, "https://github.com/ferd/recon"}}
       ]}.
2024-07-12 15:47:10 +02:00
Badlop
df5291e4bd ext_mod: Improve error result when problem compiling elixir file 2024-07-11 16:35:24 +02:00
Badlop
28e37bcaad ext_mod: files_to_path is deprecated, use compile_to_path
As recommended in
d9cf285d71/lib/elixir/lib/kernel/parallel_compiler.ex (L240)
2024-07-11 16:35:21 +02:00
Badlop
8a3344e78a ext_mod: Compile all Elixir files in a library with one function call
Some Elixir libraries have files with dependencies between them.
Compiler can detect and solve those internal dependency if
we call Compile with a list of all the files
https://hexdocs.pm/elixir/1.17.2/Kernel.ParallelCompiler.html#compile/2

This is useful to compile libcluster
2024-07-11 16:35:18 +02:00
Badlop
543b874a10 ext_mod: Handle case when contrib module has no *.ex and no *.erl 2024-07-02 13:43:37 +02:00
Badlop
f3ad49ebc4 Fix copy deps *.app file, and strip *.src if present 2024-06-27 14:54:36 +02:00
Badlop
394ba26d1d ext_mod: Support to compile nested *.erl, and include other deps *.hrl
This is useful to compile as a dependency
https://github.com/deadtrickster/prometheus.erl
2024-06-27 14:54:35 +02:00
Badlop
5a34020d23 WebAdmin: Move content to commands; new pages; hook changes; new commands
Also:
- Added support to view user subpages in the menu
- Webadmin hooks now get the full request
- New commands added to be used in webadmin pages
2024-06-19 17:59:38 +02:00
Badlop
696e42b5b4 Use json module when Erlang/OTP 27, jiffy with older ones 2024-05-07 11:28:17 +02:00
Badlop
0ad1d315e8 Use maps instead of tuple+list+tuple as arguments in jiffy functions 2024-05-07 11:28:16 +02:00
Badlop
2979fb4a9b ext_mod: Support in WebAdmin when a module spec lacks some information 2024-02-06 17:52:29 +01:00
Badlop
589521bfd8 Update copyright year to 2024 (#4139) 2024-01-22 17:29:13 +01:00
Badlop
b08001183e ext_mod: Support Elixir modules with several defimpl, like Decimal 2024-01-17 10:24:34 +01:00
Badlop
0121adec03 ext_mod: Compile *.ex files also in source subfolders 2024-01-17 10:24:34 +01:00
Badlop
9534ca2da1 ext_mod: Support when git repository name is not identical to the module name
For example, ejabberd-contrib has an extra module, mod_prometheus,
that is hosted in a git repository named ejabberd-prometheus-exporter
2023-10-04 20:57:02 +02:00
Badlop
f9d11265d0 ext_mod: Don't crash when github page response is 403 2023-10-04 20:55:01 +02:00
Badlop
d85c125bef ext_mod: Use the same URL that ejabberd-contrib spec files 2023-10-04 20:54:49 +02:00
Badlop
78f81de252 Improve support to stop external modules written in Elixir 2023-07-13 13:41:18 +02:00
Badlop
c333cc0776 New option install_contrib_modules
This option is read during ejabberd start or config reload.
It installs the listed modules which aren't yet installed,
as long as allow_contrib_modules is not disabled.
Edit ejabberd.yml and configure the desired ejabberd-contrib modules,
add them in the install_contrib_modules option,
finally start ejabberd (or reload config).
2023-06-09 10:27:13 +02:00
Badlop
436074c67a When installing module already configured, keep config as example
When installing a module using ext_mod, if it has already configuration
in the modules section, copy its specific config file as an example
(copy file and rename it).
This may happen when using the new install_contrib_modules option.
2023-06-09 00:02:02 +02:00
Badlop
c5c7e7fc4d ext_mod: Improve support for loading *.so files from ext_mod dependencies
Copying files from deps/*/priv/*.so to the ejabberd priv/
is not possible when running ejabberd as OTP release or in a container.
Instead, let's copy the deps/*/priv/*.so maintaining the file structure,
and then using code:add_pathz for those dirs.

This partially reverts 5c1b72853f
2023-01-25 17:58:12 +01:00
Badlop
243697e25a Update copyright year to 2023 (#3967) 2023-01-10 13:52:04 +01:00
Badlop
5c1b72853f External modules: compile C files and install them in ejabberd's priv 2023-01-03 18:48:44 +01:00
Badlop
4ad4a3bf24 Support to get module status from Elixir modules 2022-12-22 14:00:38 +01:00
Badlop
d29fdc4d2e Remove unnecessary text string 2022-10-12 12:06:28 +02:00
Badlop
7d8fa3c880 ext_mod: Support managing remote nodes in the cluster 2022-08-05 16:15:05 +02:00
Badlop
72944d895b ext_mod: Handle correctly when COMMIT.json not found 2022-08-05 16:15:03 +02:00
Badlop
bc8050eb03 Don't bother with COMMIT.json user-friendly feature in automated user case 2022-07-27 15:16:51 +02:00
Badlop
a38ed7fb2c Handle not found COMMIT.json, for example in GH Actions 2022-07-27 15:16:49 +02:00
Badlop
033656d70e Add WebAdmin page for managing external modules 2022-07-26 15:42:13 +02:00
Badlop
b3211b1f71 Update copyright year to 2022 2022-02-11 09:39:25 +01:00
Badlop
ab5e726176 Use the most specific tag for ejabberd commands with several ones 2021-07-30 01:14:36 +02:00
Badlop
bb0c6e1e02 Show messages with next configuration steps when installing a module 2021-07-06 13:37:04 +02:00
Badlop
4495f0f0b9 For OTP<22 define LAGER macro in ext_mod like in rebar.config (#3493) 2021-02-16 13:09:21 +01:00
Badlop
6e0161470e Update newest copyright year to 2021 (#3464) 2021-01-27 17:02:06 +01:00
Paweł Chmielowski
9be3d948b2 Make ext_mod compile module with debug_info flags
This should fix issue #3472
2021-01-07 15:10:39 +01:00
Paweł Chmielowski
ec61c2f3dc Change split character in PROXY_USER from \x04 to :
This is clearly typo
2020-10-29 16:36:18 +01:00
Paweł Chmielowski
151b818af4 Use compilation flags used during build to compile modules in ext_mod
This fixes issue #3178
2020-03-03 11:25:17 +01:00
Badlop
2d32c66fd7 Update copyright to 2020 (#3149) 2020-01-28 15:49:23 +01:00
Evgeny Khramtsov
94b74c0cbe Fix loading of third-party modules at startup
Fixes #3019
2019-11-07 10:47:11 +03:00
Evgeny Khramtsov
5770946f03 Correctly handle unicode in log messages 2019-09-23 15:17:20 +03:00
Evgeny Khramtsov
6f5d99275b Process unexpected messages uniformly 2019-07-12 11:55:36 +03:00
Evgeny Khramtsov
a02cff0e78 Use new configuration validator 2019-06-14 12:33:26 +03:00
Badlop
4e591a73c5 Add ext_mod paths before checking config (processone/ejabberd-contrib#263) 2019-04-03 13:10:11 +02:00
Badlop
55417dfb37 Update copyright to 2019 (#2756) 2019-01-08 22:53:27 +01:00
Evgeny Khramtsov
2d246f61dd Fix some dialyzer warnings 2018-09-09 09:59:08 +03:00
Rogério da Silva Yokomizo
4a4cc32650 Export ext_mod:add_sources/1 2018-05-22 16:16:13 +02:00
Paweł Chmielowski
5b730cdbf2 Use httpc directly instead of using p1_http wrapper 2018-04-23 17:40:44 +02:00