package/ejabberd: bump to version 18.09

This version requires much less patches than the previous one packaged
in Buildroot. It is compatible with Erlang OTP 21.
There are two remainning patches to:
- change the Makefile rules so dependencies are not downloaded/compiled;
- fix ejabberd user and load a default file in ejabberdctl script.

The patch 0006-fix-install-permissions has been replaced by setting
permissions on /etc/ejabberd directory via EJABBERD_PERMISSIONS.

The patch 0009-disable-mod_avatar has been removed because eimp is
a mandatory dependency since 0f86559d.

Signed-off-by: Johan Oudinet <johan.oudinet@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
This commit is contained in:
Johan Oudinet 2018-11-26 12:08:07 +01:00 committed by Thomas Petazzoni
parent 091c950fb0
commit e1a43490e9
12 changed files with 45 additions and 2176 deletions

View file

@ -0,0 +1,35 @@
From 277103e886c9b3ddfede8b3f5b92d3e94736f404 Mon Sep 17 00:00:00 2001
From: Johan Oudinet <johan.oudinet@gmail.com>
Date: Fri, 23 Nov 2018 16:13:21 +0100
Subject: [PATCH] Makefile.in: do not download or compile dependencies
Signed-off-by: Johan Oudinet <johan.oudinet@gmail.com>
---
Makefile.in | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/Makefile.in b/Makefile.in
index 48dca7d8..d2324dae 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -94,7 +94,7 @@ ifneq ($(INSTALLGROUP),)
G_USER=-g $(INSTALLGROUP)
endif
-all: deps src
+all: src
deps: deps/.got
@@ -108,7 +108,7 @@ deps/.built: deps/.got
$(REBAR) configure-deps
$(REBAR) compile && :> deps/.built
-src: deps/.built
+src:
$(REBAR) skip_deps=true compile
update:
--
2.17.1

View file

@ -1,43 +0,0 @@
From 21d1f05a8882657c151397d0e4723535402f1757 Mon Sep 17 00:00:00 2001
From: Philipp Huebner <debalance@debian.org>
Date: Wed, 20 Jan 2016 10:22:57 -0500
Subject: [PATCH] remove make targets for deps
Without this patch, dependencies would be downloaded and compiled
using rebar at build time.
Signed-off-by: Frank Hunleth <fhunleth@troodon-software.com>
diff --git a/Makefile.in b/Makefile.in
index df2abfdc..8c8fd714 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -86,27 +86,11 @@ else
INIT_USER=$(INSTALLUSER)
endif
-all: deps src
+all: src
-deps: deps/.got
-
-deps/.got:
- rm -rf deps/.got
- rm -rf deps/.built
- mkdir -p deps
- $(REBAR) get-deps && :> deps/.got
-
-deps/.built: deps/.got
- $(REBAR) compile && :> deps/.built
-
-src: deps/.built
+src:
$(REBAR) skip_deps=true compile
-update:
- rm -rf deps/.got
- rm -rf deps/.built
- $(REBAR) update-deps && :> deps/.got
-
xref: all
$(REBAR) skip_deps=true xref

View file

@ -1,32 +0,0 @@
From f384518dedec4ad657ad69d55754076c13c22d96 Mon Sep 17 00:00:00 2001
From: Johan Oudinet <johan.oudinet@gmail.com>
Date: Wed, 20 Jan 2016 08:11:32 -0500
Subject: [PATCH] remove checking erlang version
Without this patch, the configure will try to run erlang to simply check
if the version is supported by ejabberd. Instead, we do this test
statically.
Signed-off-by: Johan Oudinet <johan.oudinet@gmail.com>
---
configure.ac | 2 --
1 file changed, 2 deletions(-)
diff --git a/configure.ac b/configure.ac
index 97e89a2..cd1ab08 100644
--- a/configure.ac
+++ b/configure.ac
@@ -39,10 +39,8 @@ AC_ARG_ENABLE(erlang-version-check,
[Check Erlang/OTP version @<:@default=yes@:>@])])
case "$enable_erlang_version_check" in
yes|'')
- ERLANG_VERSION_CHECK([$REQUIRE_ERLANG_MIN],[$REQUIRE_ERLANG_MAX])
;;
no)
- ERLANG_VERSION_CHECK([$REQUIRE_ERLANG_MIN],[$REQUIRE_ERLANG_MAX],[warn])
;;
esac
--
2.5.0

File diff suppressed because it is too large Load diff

View file

@ -1,29 +0,0 @@
From d43a65b112ec995a5ee52aca2a16e5cf9699d7c1 Mon Sep 17 00:00:00 2001
From: Johan Oudinet <johan.oudinet@gmail.com>
Date: Wed, 20 Jan 2016 08:16:26 -0500
Subject: [PATCH] disable ERLANG_DEPRECATED_CHECK
Without this patch, the configure will try to execute erlang to check
if it uses deprecated types. Assume the answer is false.
Signed-off-by: Johan Oudinet <johan.oudinet@gmail.com>
---
configure.ac | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/configure.ac b/configure.ac
index cd1ab08..a4f1533 100644
--- a/configure.ac
+++ b/configure.ac
@@ -235,7 +235,7 @@ if test "$ENABLEUSER" != ""; then
AC_SUBST([INSTALLUSER], [$ENABLEUSER])
fi
-ERLANG_DEPRECATED_TYPES_CHECK
+AC_SUBST(erlang_deprecated_types, false)
if test "$sqlite" = "true"; then
AX_LIB_SQLITE3([3.6.19])
--
2.5.0

View file

@ -1,84 +0,0 @@
From ef847479778cc58818e066b87aa1789ba1c4148b Mon Sep 17 00:00:00 2001
From: Johan Oudinet <johan.oudinet@gmail.com>
Date: Wed, 20 Jan 2016 09:34:07 -0500
Subject: [PATCH] fix install permissions
Without this patch, the makefile will try to install directories and
files with incompatible permissions for ejabberd, which run as an
ejabberd user.
Signed-off-by: Frank Hunleth <fhunleth@troodon-software.com>
diff --git a/Makefile.in b/Makefile.in
index a0b4553d..2cae2db4 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -169,10 +169,8 @@ copy-files-sub: copy-files-sub2
install: all copy-files
#
# Configuration files
- $(INSTALL) -d -m 750 $(G_USER) $(ETCDIR)
- [ -f $(ETCDIR)/ejabberd.yml ] \
- && $(INSTALL) -b -m 640 $(G_USER) ejabberd.yml.example $(ETCDIR)/ejabberd.yml-new \
- || $(INSTALL) -b -m 640 $(G_USER) ejabberd.yml.example $(ETCDIR)/ejabberd.yml
+ $(INSTALL) -d $(ETCDIR)
+ $(INSTALL) -b -m 644 ejabberd.yml.example $(ETCDIR)/ejabberd.yml
$(SED) -e "s*{{rootdir}}*@prefix@*g" \
-e "s*{{installuser}}*@INSTALLUSER@*g" \
-e "s*{{bindir}}*@bindir@*g" \
@@ -183,53 +181,16 @@ install: all copy-files
-e "s*{{erl}}*@ERL@*g" \
-e "s*{{epmd}}*@EPMD@*g" ejabberdctl.template \
> ejabberdctl.example
- [ -f $(ETCDIR)/ejabberdctl.cfg ] \
- && $(INSTALL) -b -m 640 $(G_USER) ejabberdctl.cfg.example $(ETCDIR)/ejabberdctl.cfg-new \
- || $(INSTALL) -b -m 640 $(G_USER) ejabberdctl.cfg.example $(ETCDIR)/ejabberdctl.cfg
- $(INSTALL) -b -m 644 $(G_USER) inetrc $(ETCDIR)/inetrc
+ $(INSTALL) -b -m 644 ejabberdctl.cfg.example $(ETCDIR)/ejabberdctl.cfg
+ $(INSTALL) -b -m 644 inetrc $(ETCDIR)/inetrc
#
# Administration script
- [ -d $(SBINDIR) ] || $(INSTALL) -d -m 755 $(SBINDIR)
- $(INSTALL) -m 550 $(G_USER) ejabberdctl.example $(SBINDIR)/ejabberdctl
+ $(INSTALL) -D ejabberdctl.example $(SBINDIR)/ejabberdctl
# Elixir binaries
[ -d $(BINDIR) ] || $(INSTALL) -d -m 755 $(BINDIR)
[ -f deps/elixir/bin/iex ] && $(INSTALL) -m 550 $(G_USER) deps/elixir/bin/iex $(BINDIR)/iex || true
[ -f deps/elixir/bin/elixir ] && $(INSTALL) -m 550 $(G_USER) deps/elixir/bin/elixir $(BINDIR)/elixir || true
[ -f deps/elixir/bin/mix ] && $(INSTALL) -m 550 $(G_USER) deps/elixir/bin/mix $(BINDIR)/mix || true
- #
- # Init script
- $(SED) -e "s*@ctlscriptpath@*$(SBINDIR)*g" \
- -e "s*@installuser@*$(INIT_USER)*g" ejabberd.init.template \
- > ejabberd.init
- chmod 755 ejabberd.init
- #
- # Service script
- $(SED) -e "s*@ctlscriptpath@*$(SBINDIR)*g" ejabberd.service.template \
- > ejabberd.service
- chmod 644 ejabberd.service
- #
- # Spool directory
- $(INSTALL) -d -m 750 $(O_USER) $(SPOOLDIR)
- $(CHOWN_COMMAND) -R @INSTALLUSER@ $(SPOOLDIR) >$(CHOWN_OUTPUT)
- chmod -R 750 $(SPOOLDIR)
- [ ! -f $(COOKIEFILE) ] || { $(CHOWN_COMMAND) @INSTALLUSER@ $(COOKIEFILE) >$(CHOWN_OUTPUT) ; chmod 400 $(COOKIEFILE) ; }
- #
- # ejabberdctl lock directory
- $(INSTALL) -d -m 750 $(O_USER) $(CTLLOCKDIR)
- $(CHOWN_COMMAND) -R @INSTALLUSER@ $(CTLLOCKDIR) >$(CHOWN_OUTPUT)
- chmod -R 750 $(CTLLOCKDIR)
- #
- # Log directory
- $(INSTALL) -d -m 750 $(O_USER) $(LOGDIR)
- $(CHOWN_COMMAND) -R @INSTALLUSER@ $(LOGDIR) >$(CHOWN_OUTPUT)
- chmod -R 750 $(LOGDIR)
- #
- # Documentation
- $(INSTALL) -d $(DOCDIR)
- [ -f doc/guide.html ] \
- && $(INSTALL) -m 644 doc/guide.html $(DOCDIR) \
- || echo "Documentation not included in sources"
- $(INSTALL) -m 644 COPYING $(DOCDIR)
uninstall: uninstall-binary

View file

@ -1,32 +0,0 @@
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,32 +0,0 @@
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

@ -2,6 +2,7 @@ config BR2_PACKAGE_EJABBERD
bool "ejabberd"
depends on BR2_PACKAGE_ERLANG
depends on BR2_INSTALL_LIBSTDCPP # jiffy, stringprep
select BR2_PACKAGE_ERLANG_EIMP
select BR2_PACKAGE_ERLANG_JIFFY
select BR2_PACKAGE_ERLANG_LAGER
select BR2_PACKAGE_ERLANG_P1_CACHE_TAB

View file

@ -1,2 +1,2 @@
# Locally computed
sha256 bd16b33a2f1345e5847fd05b70a5fa992181bac756cd6d5d621de9c18cb76801 ejabberd-17.11.tgz
sha256 781a68d2deefb4afae563c29a8955063c759c244d308251167d46185f145d4ff ejabberd-18.09.tgz

View file

@ -4,12 +4,13 @@
#
################################################################################
EJABBERD_VERSION = 17.11
EJABBERD_VERSION = 18.09
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
EJABBERD_LICENSE_FILES = COPYING
EJABBERD_DEPENDENCIES = getent openssl host-erlang-lager erlang-lager \
EJABBERD_DEPENDENCIES = getent openssl erlang-eimp \
host-erlang-lager erlang-lager \
erlang-p1-cache-tab erlang-p1-iconv erlang-p1-sip \
erlang-p1-stringprep erlang-p1-stun erlang-p1-tls \
erlang-p1-utils erlang-p1-xml erlang-p1-xmpp erlang-p1-yaml \
@ -35,8 +36,7 @@ EJABBERD_CONF_ENV = \
EJABBERD_CONF_OPTS = \
--enable-system-deps \
--disable-erlang-version-check \
--disable-graphics
--disable-erlang-version-check
define EJABBERD_INSTALL_TARGET_CMDS
$(TARGET_MAKE_ENV) $(MAKE) DESTDIR=$(TARGET_DIR) install -C $(@D)
@ -54,6 +54,10 @@ define EJABBERD_USERS
ejabberd -1 ejabberd -1 * /var/lib/ejabberd /bin/sh - ejabberd daemon
endef
define EJABBERD_PERMISSIONS
/etc/ejabberd r 750 root ejabberd - - - - -
endef
define EJABBERD_INSTALL_INIT_SYSV
$(INSTALL) -D -m 0755 package/ejabberd/S50ejabberd \
$(TARGET_DIR)/etc/init.d/S50ejabberd