ejabberd: Bump to version 17.11

* Adapt all patches.
* Use the new configure option enable-system-deps even though there is
  still a patch needed to correct includes.
* Disable graphics to not depends on X libraries. Disable also
  mod_avatar from the default loaded modules, since this module
  requires graphics enabled.

Signed-off-by: Johan Oudinet <johan.oudinet@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
This commit is contained in:
Johan Oudinet 2018-01-19 17:29:31 +01:00 committed by Thomas Petazzoni
parent c683d37cdc
commit c8ed115508
10 changed files with 2074 additions and 149 deletions

View File

@ -9,10 +9,10 @@ using rebar at build time.
Signed-off-by: Frank Hunleth <fhunleth@troodon-software.com>
diff --git a/Makefile.in b/Makefile.in
index a0b4553d..4190a515 100644
index df2abfdc..8c8fd714 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -77,26 +77,11 @@ else
@@ -86,27 +86,11 @@ else
INIT_USER=$(INSTALLUSER)
endif
@ -24,6 +24,7 @@ index a0b4553d..4190a515 100644
-deps/.got:
- rm -rf deps/.got
- rm -rf deps/.built
- mkdir -p deps
- $(REBAR) get-deps && :> deps/.got
-
-deps/.built: deps/.got

View File

@ -1,54 +1,61 @@
From d399ecdd99e62b5554210a3b5c733e738e4d54be Mon Sep 17 00:00:00 2001
From: Philipp Huebner <debalance@debian.org>
Date: Wed, 20 Jan 2016 08:08:42 -0500
From 8674f61701da41cc53c532b5fa3a516838a2c5d4 Mon Sep 17 00:00:00 2001
From: Johan Oudinet <johan.oudinet@gmail.com>
Date: Wed, 10 Jan 2018 15:14:56 +0100
Subject: [PATCH] remove dependencies from rebar config
Without this patch, dependencies would be downloaded and compiled
by rebar at build time.
Without this patch, dependencies would be downloaded and compiled by
rebar at build time.
Signed-off-by: Frank Hunleth <fhunleth@troodon-software.com>
Signed-off-by: Johan Oudinet <johan.oudinet@gmail.com>
---
rebar.config | 72 ------------------------------------------------------------
1 file changed, 72 deletions(-)
diff --git a/rebar.config b/rebar.config
index aef3a017..71937023 100644
index d6ad5e7b..0b246b92 100644
--- a/rebar.config
+++ b/rebar.config
@@ -18,63 +18,6 @@
@@ -18,68 +18,6 @@
%%%
%%%----------------------------------------------------------------------
-{deps, [{lager, ".*", {git, "https://github.com/basho/lager", {tag, "3.2.1"}}},
- {p1_utils, ".*", {git, "https://github.com/processone/p1_utils", {tag, "1.0.8"}}},
- {cache_tab, ".*", {git, "https://github.com/processone/cache_tab", {tag, "1.0.7"}}},
- {fast_tls, ".*", {git, "https://github.com/processone/fast_tls", {tag, "1.0.11"}}},
- {stringprep, ".*", {git, "https://github.com/processone/stringprep", {tag, "1.0.8"}}},
- {fast_xml, ".*", {git, "https://github.com/processone/fast_xml", {tag, "1.1.21"}}},
- {xmpp, ".*", {git, "https://github.com/processone/xmpp", {tag, "1.1.9"}}},
- {stun, ".*", {git, "https://github.com/processone/stun", {tag, "1.0.10"}}},
- {esip, ".*", {git, "https://github.com/processone/esip", {tag, "1.0.11"}}},
- {fast_yaml, ".*", {git, "https://github.com/processone/fast_yaml", {tag, "1.0.9"}}},
-{deps, [{lager, ".*", {git, "https://github.com/erlang-lager/lager",
- {tag, {if_version_above, "17", "3.4.2", "3.2.1"}}}},
- {p1_utils, ".*", {git, "https://github.com/processone/p1_utils", {tag, "1.0.10"}}},
- {cache_tab, ".*", {git, "https://github.com/processone/cache_tab", {tag, "1.0.12"}}},
- {fast_tls, ".*", {git, "https://github.com/processone/fast_tls", {tag, "1.0.17"}}},
- {stringprep, ".*", {git, "https://github.com/processone/stringprep", {tag, "1.0.10"}}},
- {fast_xml, ".*", {git, "https://github.com/processone/fast_xml", {tag, "1.1.25"}}},
- {xmpp, ".*", {git, "https://github.com/processone/xmpp", {tag, "1.1.16"}}},
- {fast_yaml, ".*", {git, "https://github.com/processone/fast_yaml", {tag, "1.0.12"}}},
- {jiffy, ".*", {git, "https://github.com/davisp/jiffy", {tag, "0.14.8"}}},
- {p1_oauth2, ".*", {git, "https://github.com/processone/p1_oauth2", {tag, "0.6.1"}}},
- {p1_oauth2, ".*", {git, "https://github.com/processone/p1_oauth2", {tag, "0.6.2"}}},
- {luerl, ".*", {git, "https://github.com/rvirding/luerl", {tag, "v0.2"}}},
- {jose, ".*", {git, "git://github.com/potatosalad/erlang-jose.git", {tag, "1.8.4"}}},
- {fs, ".*", {git, "https://github.com/synrc/fs.git", {tag, "2.12.0"}}},
- {if_var_true, stun, {stun, ".*", {git, "https://github.com/processone/stun", {tag, "1.0.16"}}}},
- {if_var_true, sip, {esip, ".*", {git, "https://github.com/processone/esip", {tag, "1.0.17"}}}},
- {if_var_true, mysql, {p1_mysql, ".*", {git, "https://github.com/processone/p1_mysql",
- {tag, "1.0.2"}}}},
- {tag, "1.0.4"}}}},
- {if_var_true, pgsql, {p1_pgsql, ".*", {git, "https://github.com/processone/p1_pgsql",
- {tag, "1.1.2"}}}},
- {tag, "1.1.4"}}}},
- {if_var_true, sqlite, {sqlite3, ".*", {git, "https://github.com/processone/erlang-sqlite3",
- {tag, "1.1.5"}}}},
- {if_var_true, pam, {epam, ".*", {git, "https://github.com/processone/epam",
- {tag, "1.0.2"}}}},
- {tag, "1.0.3"}}}},
- {if_var_true, zlib, {ezlib, ".*", {git, "https://github.com/processone/ezlib",
- {tag, "1.0.2"}}}},
- {if_var_true, riak, {riakc, ".*", {git, "https://github.com/basho/riak-erlang-client",
- {tag, "2.4.1"}}}},
- {tag, "1.0.3"}}}},
- {if_var_true, riak, {riakc, ".*", {git, "https://github.com/processone/riak-erlang-client.git",
- {tag, {if_version_above, "19", "develop", "2.5.3"}}}}},
- {if_var_true, graphics, {eimp, ".*", {git, "https://github.com/processone/eimp.git", {tag, "1.0.2"}}}},
- %% Elixir support, needed to run tests
- {if_var_true, elixir, {elixir, ".*", {git, "https://github.com/elixir-lang/elixir",
- {tag, {if_version_above, "17", "v1.2.6", "v1.1.1"}}}}},
- {tag, {if_version_above, "17", "v1.4.4", "v1.1.1"}}}}},
- %% TODO: When modules are fully migrated to new structure and mix, we will not need anymore rebar_elixir_plugin
- {if_not_rebar3, {if_var_true, elixir, {rebar_elixir_plugin, ".*",
- {git, "https://github.com/processone/rebar_elixir_plugin", "0.1.0"}}}},
- {if_var_true, iconv, {iconv, ".*", {git, "https://github.com/processone/iconv",
- {tag, "1.0.4"}}}},
- {tag, "1.0.6"}}}},
- {if_var_true, tools, {meck, "0.8.*", {git, "https://github.com/eproxus/meck",
- {tag, "0.8.4"}}}},
- {if_var_true, tools, {moka, ".*", {git, "https://github.com/processone/moka.git",
@ -62,33 +69,38 @@ index aef3a017..71937023 100644
- stringprep,
- fast_xml,
- esip,
- luerl,
- stun,
- fast_yaml,
- xmpp,
- p1_utils,
- p1_mysql,
- p1_pgsql,
- p1_oauth2,
- epam,
- ezlib,
- eimp,
- iconv]}}.
-
{erl_first_files, ["src/ejabberd_config.erl", "src/gen_mod.erl", "src/mod_muc_room.erl"]}.
{erl_first_files, ["src/ejabberd_config.erl", "src/gen_mod.erl", "src/mod_muc_room.erl", "src/mod_push.erl"]}.
{erl_opts, [nowarn_deprecated_function,
@@ -142,15 +85,6 @@
@@ -153,16 +91,6 @@
{if_version_above, "17", {cover_enabled, true}}.
{cover_export_enabled, true}.
-{post_hook_configure, [{"fast_tls", []},
- {"stringprep", []},
- {"fast_yaml", []},
- {"esip", []},
- {if_var_true, sip, {"esip", []}},
- {"fast_xml", [{if_var_true, full_xml, "--enable-full-xml"}]},
- {if_var_true, pam, {"epam", []}},
- {if_var_true, zlib, {"ezlib", []}},
- {if_var_true, graphics, {"eimp", []}},
- {if_var_true, iconv, {"iconv", []}}]}.
-
{port_env, [{"CFLAGS", "-g -O2 -Wall"}]}.
{port_specs, [{"priv/lib/jid.so", ["c_src/jid.c"]}]}.
--
2.14.1

View File

@ -1,58 +0,0 @@
From 705a9ad229de49cd9cce226a2025716902455663 Mon Sep 17 00:00:00 2001
From: Philipp Huebner <debalance@debian.org>
Date: Wed, 20 Jan 2016 08:13:21 -0500
Subject: [PATCH] correct include
This part of the code was moved into it's own project and was packaged
separately by me. To make the build process work, this small fix is
necessary.
Signed-off-by: Johan Oudinet <johan.oudinet@gmail.com>
---
src/mod_sip.erl | 2 +-
src/mod_sip_proxy.erl | 2 +-
src/mod_sip_registrar.erl | 2 +-
3 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/mod_sip.erl b/src/mod_sip.erl
index c8c9533..7f188a0 100644
--- a/src/mod_sip.erl
+++ b/src/mod_sip.erl
@@ -38,7 +38,7 @@
-include("ejabberd.hrl").
-include("logger.hrl").
--include_lib("esip/include/esip.hrl").
+-include_lib("p1_sip/include/esip.hrl").
%%%===================================================================
%%% API
diff --git a/src/mod_sip_proxy.erl b/src/mod_sip_proxy.erl
index bf297bc..d8b65cd 100644
--- a/src/mod_sip_proxy.erl
+++ b/src/mod_sip_proxy.erl
@@ -40,7 +40,7 @@
-include("ejabberd.hrl").
-include("logger.hrl").
--include_lib("esip/include/esip.hrl").
+-include_lib("p1_sip/include/esip.hrl").
-define(SIGN_LIFETIME, 300). %% in seconds.
diff --git a/src/mod_sip_registrar.erl b/src/mod_sip_registrar.erl
index 44091ed..4d2ec82 100644
--- a/src/mod_sip_registrar.erl
+++ b/src/mod_sip_registrar.erl
@@ -37,7 +37,7 @@
-include("ejabberd.hrl").
-include("logger.hrl").
--include_lib("esip/include/esip.hrl").
+-include_lib("p1_sip/include/esip.hrl").
-define(CALL_TIMEOUT, timer:seconds(30)).
-define(DEFAULT_EXPIRES, 3600).
--
2.5.0

File diff suppressed because it is too large Load Diff

View File

@ -1,28 +1,32 @@
From 53d7d654026afa163a55b860e33c6901129e8dc1 Mon Sep 17 00:00:00 2001
From 168d5840dc2a541ec16385e666c1932cf02907e9 Mon Sep 17 00:00:00 2001
From: Johan Oudinet <johan.oudinet@gmail.com>
Date: Wed, 20 Jan 2016 09:35:07 -0500
Date: Wed, 10 Jan 2018 15:00:07 +0100
Subject: [PATCH] fix ejabberdctl
Change default values so ejabberdctl run commands as ejabberd user
Change default values so ejabberdctl run commands as ejabberd user.
Also add a way for the user to change default values.
Signed-off-by: Johan Oudinet <johan.oudinet@gmail.com>
---
ejabberdctl.template | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/ejabberdctl.template b/ejabberdctl.template
index 5b34ebee..51acaca8 100755
index 83637766..5a8a8795 100755
--- a/ejabberdctl.template
+++ b/ejabberdctl.template
@@ -14,9 +14,12 @@ SCRIPT_DIR=`cd ${0%/*} && pwd`
ERL={{erl}}
IEX={{bindir}}/iex
EPMD={{epmd}}
-INSTALLUSER={{installuser}}
@@ -15,7 +15,10 @@ SCRIPT_DIR=$(cd "${0%/*}" && pwd)
ERL="{{erl}}"
IEX="{{bindir}}/iex"
EPMD="{{epmd}}"
-INSTALLUSER="{{installuser}}"
+INSTALLUSER=ejabberd
ERL_LIBS={{libdir}}
+
+# Read default configuration file if present
+[ ! -r /etc/default/ejabberd ] || . /etc/default/ejabberd
+
# check the proper system user is used if defined
if [ "$INSTALLUSER" != "" ] ; then
EXEC_CMD="false"
# check the proper system user is used
case $(id -un) in
--
2.14.1

View File

@ -0,0 +1,32 @@
From d0bfcbbfd8a6e7ee6213112e4078b020e4e1d15d Mon Sep 17 00:00:00 2001
From: Paweł Chmielowski <pchmielowski@process-one.net>
Date: Wed, 10 Jan 2018 16:34:01 +0100
Subject: [PATCH] Handle error case from code:lib_dir in ResolveDepPath in
rebar.config.script
This patch have already been applied in upstream/master.
Signed-off-by: Paweł Chmielowski <pchmielowski@process-one.net>
---
rebar.config.script | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/rebar.config.script b/rebar.config.script
index 85f918fffd..ba374e5c5f 100644
--- a/rebar.config.script
+++ b/rebar.config.script
@@ -233,9 +233,10 @@ ResolveDepPath = case {SystemDeps, IsRebar3} of
{true, _} ->
fun("deps/" ++ Rest) ->
Slash = string:str(Rest, "/"),
- code:lib_dir(
- string:sub_string(Rest, 1, Slash -1)) ++
- string:sub_string(Rest, Slash);
+ case code:lib_dir(string:sub_string(Rest, 1, Slash -1)) of
+ {error, _} -> Rest;
+ V -> V ++ string:sub_string(Rest, Slash)
+ end;
(Path) ->
Path
end;

View File

@ -1,33 +0,0 @@
Fix location of rebar dependencies.
Signed-off-by: Christophe Romain <cromain@process-one.net>
diff --git a/rebar.config.script b/rebar.config.script
index 19142b9e..9107af26 100644
--- a/rebar.config.script
+++ b/rebar.config.script
@@ -218,20 +218,10 @@ TestConfig = case file:read_file_info(TestConfigFile) of
""
end,
-ResolveDepPath = case IsRebar3 of
- true ->
- fun("deps/" ++ Rest) ->
- Slash = string:str(Rest, "/"),
- Dir = "_build/default/lib/" ++
- string:sub_string(Rest, 1, Slash - 1),
- Dir ++ string:sub_string(Rest, Slash);
- (Path) ->
- Path
- end;
- _ ->
- fun(P) ->
- P
- end
+ResolveDepPath = fun("deps/fast_xml/include") -> code:lib_dir(p1_xml) ++ "/include";
+ ("deps/xmpp/include") -> code:lib_dir(p1_xmpp) ++ "/include";
+ ("deps/p1_utils/include") -> code:lib_dir(p1_utils) ++ "/include";
+ (Path) -> Path
end,
CtParams = fun(CompileOpts) ->

View File

@ -0,0 +1,32 @@
From e6eac74e82975e7d87b1f59c50eb007ab04c1392 Mon Sep 17 00:00:00 2001
From: Johan Oudinet <johan.oudinet@gmail.com>
Date: Tue, 16 Jan 2018 14:29:56 +0100
Subject: [PATCH] disable mod_avatar
This module requires to compile with graphics enabled.
Signed-off-by: Johan Oudinet <johan.oudinet@gmail.com>
---
ejabberd.yml.example | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/ejabberd.yml.example b/ejabberd.yml.example
index e178e956..7c12b76c 100644
--- a/ejabberd.yml.example
+++ b/ejabberd.yml.example
@@ -796,9 +796,9 @@ modules:
search: false
mod_vcard_xupdate: {}
## Convert all avatars posted by Android clients from WebP to JPEG
- mod_avatar:
- convert:
- webp: jpeg
+ ## mod_avatar:
+ ## convert:
+ ## webp: jpeg
mod_version: {}
mod_stream_mgmt: {}
## Non-SASL Authentication (XEP-0078) is now disabled by default
--
2.14.1

View File

@ -1,2 +1,2 @@
# Locally computed
sha256 b8395bc65b09f135a60320b62338258acd6056cc241e9e245fde267fb18dd3c9 ejabberd-17.04.tgz
sha256 bd16b33a2f1345e5847fd05b70a5fa992181bac756cd6d5d621de9c18cb76801 ejabberd-17.11.tgz

View File

@ -4,7 +4,7 @@
#
################################################################################
EJABBERD_VERSION = 17.04
EJABBERD_VERSION = 17.11
EJABBERD_SOURCE = ejabberd-$(EJABBERD_VERSION).tgz
EJABBERD_SITE = https://www.process-one.net/downloads/ejabberd/$(EJABBERD_VERSION)
EJABBERD_LICENSE = GPL-2.0+ with OpenSSL exception
@ -23,22 +23,38 @@ ifeq ($(BR2_PACKAGE_LINUX_PAM),y)
EJABBERD_DEPENDENCIES += linux-pam
endif
EJABBERD_ERLANG_LIBS = sasl crypto public_key ssl mnesia inets compiler
# Install check-erlang-lib script to the directory in which the
# package has been uncompressed, so it is available during the
# configure step.
define EJABBERD_INSTALL_CHECK_ERLANG_LIB
$(INSTALL) -m 0755 $(EJABBERD_PKGDIR)/check-erlang-lib \
$(@D)/check-erlang-lib
endef
EJABBERD_POST_EXTRACT_HOOKS += EJABBERD_INSTALL_CHECK_ERLANG_LIB
EJABBERD_ERLANG_LIBS = sasl public_key mnesia inets compiler
# Guess answers for these tests, configure will bail out otherwise
# saying error: cannot run test program while cross compiling.
EJABBERD_CONF_ENV = \
ac_cv_erlang_root_dir="$(HOST_DIR)/lib/erlang" \
$(foreach lib,$(EJABBERD_ERLANG_LIBS), \
ac_cv_erlang_lib_dir_$(lib)="`package/ejabberd/check-erlang-lib $(lib)`")
ac_cv_erlang_lib_dir_$(lib)="`./check-erlang-lib $(lib)`")
EJABBERD_CONF_OPTS = \
--enable-system-deps \
--disable-erlang-version-check \
--disable-graphics
define EJABBERD_INSTALL_TARGET_CMDS
$(TARGET_MAKE_ENV) $(MAKE) DESTDIR=$(TARGET_DIR) install -C $(@D)
endef
# Replace HOST_DIR prefix to /usr in ERL path of ejabberctl script.
# Replace HOST_DIR prefix to /usr in environment variables of
# ejabberctl script.
define EJABBERD_FIX_EJABBERDCTL
$(SED) 's,ERL=$(HOST_DIR),ERL=/usr,' '$(TARGET_DIR)/usr/sbin/ejabberdctl'
$(SED) 's,="$(HOST_DIR),="/usr,' '$(TARGET_DIR)/usr/sbin/ejabberdctl'
endef
EJABBERD_POST_INSTALL_TARGET_HOOKS += EJABBERD_FIX_EJABBERDCTL