Badlop
b18fa2ebc2
Runtime: Rebars: Use the rebar binaries included in the repository
2024-01-17 10:24:34 +01:00
Badlop
f838319455
Runtime: Rebars: Get old rebar binaries when testing old erlang versions
2024-01-17 10:24:34 +01:00
Badlop
0d852474be
Use Mix or Rebar3 by default instead of Rebar2 to compile ejabberd
...
Use the program specified in option: --with-rebar=/path/to/bin
When none is specified, use the system mix
When Elixir not found, use the system rebar3
When Rebar3 not found, use the rebar3 binary included with ejabberd
2024-01-17 10:24:34 +01:00
Badlop
dd5a198222
Rebar3: Include Elixir files when making a release
2024-01-17 10:24:34 +01:00
Badlop
2d067f7498
Rebar3: Workaround to fix protocol consolidation
2024-01-17 10:24:34 +01:00
Badlop
a6c1e42c0a
Rebar3: Add support to compile Elixir dependencies
...
As described in
https://rebar3.org/docs/configuration/plugins/#elixir-dependencies
2024-01-17 10:24:34 +01:00
Badlop
ff783d15e8
Rebar3: Compile explicitly our Elixir files when --enable-elixir
2024-01-17 10:24:34 +01:00
Badlop
e1f14aca9b
Rebar3: Provide proper path to iex
...
We can't use iex variable, because rebar3/relx_overlay.erl already uses
all existing app names as variables.
2024-01-17 10:24:34 +01:00
Badlop
65ff45e202
Rebar/Rebar3: Remove elixir as a gitonly_deps, and add ejabberd_po
...
Adding ejabberd_po to gitonly_deps isn't strictly needed,
because we request a branch in the ejabberd-po git repository,
and rebar.config.script understands that this means ejabberd_po
should be downloaded from git, not hex.pm.
2024-01-17 10:24:34 +01:00
Badlop
f330267361
Rebar/Rebar3: Remove Elixir as a rebar dependency
...
Elixir is standalone since years ago. When Elixir support is required,
better simply install Elixir and use Mix as build tool.
Or install Elixir and use the experimental Rebar3 support to compile
Elixir files and dependencies.
2024-01-17 10:24:34 +01:00
Badlop
1de28fa566
Rebar/Rebar3: Update binaries to work with Erlang/OTP 23-26
...
They are compiled from their git repositories, main branches,
using erlang:23-slim docker image.
To compile ejabberd using rebar/rebar3 and Erlang 22.3 or older,
you can download the old binaries from ejabberd 21.12, available at:
https://github.com/processone/ejabberd/raw/21.12/rebar
https://github.com/processone/ejabberd/raw/21.12/rebar3
2024-01-17 10:24:34 +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
4daeb41f0e
Elixir: Fix compiling ejabberd as a dependency (4128)
2024-01-17 10:24:34 +01:00
Badlop
b2df22469b
Elixir: Fix ejabberdctl start/live when installed
...
The problem appeared when:
./configure --with-rebar=mix
make install
ejabberdctl live
=INFO REPORT==== 19-Dec-2023::21:28:36.006306 ===
application: ssl
exited: stopped
type: temporary
...
2024-01-17 10:24:34 +01:00
Badlop
1bf80e861d
Elixir: Fix: FORMATTER ERROR: bad return value (4087)
...
This is required since Elixir 1.15 when starting ejabberd with:
./configure --with-rebar=mix
make relive
make relive && ejabberdctl iexlive
make install && ejabberdctl iexlive
Reference:
https://elixir-lang.org/blog/2023/06/19/elixir-v1-15-0-released/
https://hexdocs.pm/logger/Logger.Formatter.html#module-formatting
2024-01-17 10:24:34 +01:00
Badlop
5bb2beb179
Elixir: Fix: Couldn't find file Elixir.Hex.API
...
Fix for error when starting ejabberd with Elixir 1.15:
[critical] Couldn't find file Elixir.Hex.API needed for Erlang application 'hex'.
2024-01-17 10:24:34 +01:00
Badlop
852a540cb0
Elixir: Fix Elixir 1.17-dev warnings about single-quoted charlists
2024-01-17 10:24:34 +01:00
Badlop
8b38aebbc7
Mix: Enable stun by default when vars.config not found
...
configure.ac by default enables stun and zlib, in fact ejabberd.yml
has ejabberd_stun enabled by default, so for coherence mix.exs should
enable stun too when vars.config is not found.
2024-01-17 10:24:34 +01:00
Badlop
fa3c25ab66
Mix: New option vars_config_path to set path to vars.config (4128)
...
Useful when setting ejabberd as dependency in another Elixir project,
and you want to enable or disable some ejabberd dependencies, see
https://www.process-one.net/blog/how-to-use-ejabberd-as-an-elixir-application-dependency/
2024-01-17 10:24:34 +01:00
Badlop
30df1dbe3f
Mix: Set the nodename when using the ejabberd script generated by Elixir
...
Also use start instead of console in Elixir script
2024-01-17 10:24:34 +01:00
Badlop
6d61e3590d
Mix: Print shell commands output to the console when "make dev"
2024-01-17 10:24:34 +01:00
Badlop
e71650e6ab
Mix: Fix ejabberdctl iexlive problem locating iex in an OTP release
...
The problem appeared when:
./configure --with-rebar=mix
make dev
_build/dev/rel/ejabberd/bin/ejabberdctl iexlive
2024-01-17 10:24:34 +01:00
Badlop
d81b3805e3
Mix: Elixir 1.14 requires mix, and Elixir 1.16 warns about duplicate
2024-01-17 10:24:34 +01:00
Badlop
416253496d
Mix: Add yecc compiler as suggested by Elixir 1.16 warning over p1_pgsql
2024-01-17 10:24:34 +01:00
Paweł Chmielowski
29ec5bff60
Add option to disable XEP-0474: SASL SCRAM Downgrade Protection support
...
Looks like clients using strophejs aren't able to authenticate when we
add data required by that spec to scram packets, so at least give a way
to disable this until clients will be fixed.
2024-01-16 12:03:35 +01:00
Holger Weiss
6c691a73bd
Support XEP-0198 pings
...
If stream management is enabled, let mod_ping trigger XEP-0198
<r/>equests rather than sending XEP-0199 pings. This avoids the
overhead of the ping IQ stanzas, which, if stream management is enabled,
are accompanied by XEP-0198 elements anyway.
Thanks to MoyaApp (<https://moya.app >) for sponsoring this work.
2024-01-15 21:38:54 +01:00
Badlop
74cb2e054f
Rephrase sentences to avoid using "allow to + verb"
2024-01-11 13:42:06 +01:00
Badlop
5b6329a12e
Fix a few spelling errors
2024-01-11 13:41:40 +01:00
Badlop
973ba58744
mod_avatar implements XEP-0398 0.2.0 since ddc29d4
2024-01-08 18:21:15 +01:00
Badlop
1f60bcb2d0
Fix syntax of enable-user and enable-group options help
2024-01-08 18:21:13 +01:00
Badlop
8e8354caec
Fix explanation of --enable-group option ( #4135 )
2024-01-08 18:21:10 +01:00
badlop
e26c547afc
Merge pull request #4118 from badlop/api-version-1
...
Commands API version 1
2024-01-05 13:10:06 +01:00
Badlop
fc13fdceca
Docs: Separate tags with commas in markdown docs
2024-01-04 22:01:21 +01:00
Badlop
d585b1fcb6
Docs: When definer is unknown, don't show Module section
2024-01-04 22:01:21 +01:00
Badlop
57bd0ef4f5
Docs: Optional support to get commands from runtime instead of BEAM files, based in bdeb4a7
2024-01-04 22:01:21 +01:00
Badlop
d140f99b68
ejabberd_xmlrpc: Fix support for restuple error response
2024-01-04 22:01:21 +01:00
Badlop
90766685ae
ejabberd_ctl: When API version>0, update syntax of list results
2024-01-04 21:53:14 +01:00
Badlop
d65638efe1
ejabberd_ctl: Pass API version to format_result
2024-01-04 21:53:14 +01:00
Badlop
b34572e7ce
ejabberd_ctl: Show proper command help when version is explicitly set
2024-01-04 21:53:14 +01:00
Badlop
c4c0cd1b77
ejabberd_ctl: Add support for list and tuple arguments
...
Tuple elements are separated with :
List elements are separated with ,
For example:
ejabberdctl add_rosteritem user1 localhost testuser7 localhost NickUser77l gr1,gr2,gr3 both
ejabberdctl create_room_with_opts room1 conference.localhost localhost public:false,persistent:true
ejabberdctl subscribe_room_many user1@localhost:User1,admin@localhost:Admin room1@conference.localhost urn:xmpp:mucsub:nodes:messages,urn:xmpp:mucsub:nodes:affiliations
Affected commands:
- add_rosteritem
- create_room_with_opts
- oauth_issue_token
- send_direct_invitation
- set_vcard2_multi
- srg_create
- subscribe_room
- subscribe_room_many
2024-01-04 21:53:14 +01:00
Badlop
9f42f17088
mod_http_api: Fix to allow the client override the API version
...
When configured like:
listen:
-
request_handlers:
/api: mod_http_api
/apizero/v0: mod_http_api
What API version will be used depending on the URL:
- api/commandname use the latest available version
- api/commandname/v0 use version 0
- apizero/v0/commandname use version 0
- apizero/v0/commandname/v2 use version 2
2024-01-04 21:53:14 +01:00
Badlop
d570870be5
mod_http_api: When using API version>0, avoid result names for integers and strings
2024-01-04 21:53:14 +01:00
Badlop
8671bf70ab
mod_http_api: When no specific API version is requested, use the latest
2024-01-04 21:53:14 +01:00
Badlop
e26729b483
Commands: Use list arguments in many commands that used separators
...
Commands that has some argument change:
- add_rosteritem
- oauth_issue_token
- send_direct_invitation
- srg_create
- subscribe_room
- subscribe_room_many
2024-01-04 21:53:14 +01:00
Badlop
d4113d9569
Commands: set_presence: switch priority argument from string to integer
2024-01-04 21:53:14 +01:00
Badlop
c5a5dd859e
Commands: Improve syntax of many commands documentation
2024-01-04 21:53:14 +01:00
Badlop
0961fa1830
Commands: When result is rescode, result_desc is automatically added
2024-01-04 21:53:14 +01:00
Badlop
f18b8d464d
Commands: Add a new muc_sub tag to all the relevant commands
2024-01-04 21:53:14 +01:00
Badlop
98d7519274
ejabberd_commands: Add the command version as a tag "vX"
2024-01-04 21:53:14 +01:00