Gentoo Archives: gentoo-commits

From: Pacho Ramos <pacho@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: net-im/ejabberd/files/, net-im/ejabberd/
Date: Sun, 24 Feb 2019 10:53:41
Message-Id: 1551005588.df82a20555aeb41fec827e3541928b6b40f38365.pacho@gentoo
1 commit: df82a20555aeb41fec827e3541928b6b40f38365
2 Author: Pacho Ramos <pacho <AT> gentoo <DOT> org>
3 AuthorDate: Sun Feb 24 10:34:59 2019 +0000
4 Commit: Pacho Ramos <pacho <AT> gentoo <DOT> org>
5 CommitDate: Sun Feb 24 10:53:08 2019 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=df82a205
7
8 net-im/ejabberd: Drop old
9
10 Package-Manager: Portage-2.3.62, Repoman-2.3.12
11 Signed-off-by: Pacho Ramos <pacho <AT> gentoo.org>
12
13 net-im/ejabberd/Manifest | 2 -
14 net-im/ejabberd/ejabberd-16.09.ebuild | 319 --------------------
15 net-im/ejabberd/ejabberd-17.01-r2.ebuild | 326 --------------------
16 net-im/ejabberd/ejabberd-17.04-r1.ebuild | 327 ---------------------
17 .../files/ejabberd-16.09-ejabberdctl.patch | 62 ----
18 ...rd-17.01-0001-Dont-overwrite-service-file.patch | 15 -
19 .../files/ejabberd-17.01-ejabberdctl.patch | 62 ----
20 7 files changed, 1113 deletions(-)
21
22 diff --git a/net-im/ejabberd/Manifest b/net-im/ejabberd/Manifest
23 index 6ac1c7f8a8c..57e9e73b4c0 100644
24 --- a/net-im/ejabberd/Manifest
25 +++ b/net-im/ejabberd/Manifest
26 @@ -1,3 +1 @@
27 -DIST ejabberd-16.09.tar.gz 1687485 BLAKE2B 01bdfc0ebfc54bf94f5ce645fdb7e4c86070249fe9c5bd6ae40fb355bb0cce8707b285b8e4519a38148a75d8a14719b2815dd0a987de74fe69099bce1401f9da SHA512 506365eff83f9ab97c9a632c4b8b2428aacbfc570c34ca65a78903d95c64755489ff7327be3efa2172c9d05d7891f83986b1ff3928a7ce806c0ab2aa5dbb647f
28 -DIST ejabberd-17.01.tar.gz 1638418 BLAKE2B 016224277c45f753018a4e82783be1924acc1e747f1674ce1c902b06644908762750770debe5c06e8e4befcb4246b65efed4592d948188c30dcbf158bb049688 SHA512 d64125f81efbf841eded140d877c950439c11e65377e167994d25f85fa66437aad771d94548d063900bd3c472922e6bfa8f8bbe65413f18e7b641f0ed32db566
29 DIST ejabberd-17.04.tar.gz 1690441 BLAKE2B 2d31f1f0a393c6531653a55021b9deb729357bb53e86e85b85796a65f505257bcf7a14b0d168af2d13a6820e1524e1164ea7f17797df23ae41d7a8379f9e2066 SHA512 03467434dba92bd1ff2f70d78aa8fcf86fc73cb52aaaa73e4947229e1d14225e7b0d0133c3da7c8efe4c9db13aab932f40f757be46b120d0f280f96d62c203d7
30
31 diff --git a/net-im/ejabberd/ejabberd-16.09.ebuild b/net-im/ejabberd/ejabberd-16.09.ebuild
32 deleted file mode 100644
33 index 8c86270fcf8..00000000000
34 --- a/net-im/ejabberd/ejabberd-16.09.ebuild
35 +++ /dev/null
36 @@ -1,319 +0,0 @@
37 -# Copyright 1999-2018 Gentoo Foundation
38 -# Distributed under the terms of the GNU General Public License v2
39 -
40 -EAPI=6
41 -
42 -SSL_CERT_MANDATORY=1
43 -
44 -inherit eutils pam rebar ssl-cert systemd
45 -
46 -DESCRIPTION="Robust, scalable and extensible XMPP server"
47 -HOMEPAGE="https://www.ejabberd.im/ https://github.com/processone/ejabberd/"
48 -SRC_URI="https://www.process-one.net/downloads/${PN}/${PV}/${P}.tgz
49 - -> ${P}.tar.gz"
50 -
51 -LICENSE="GPL-2"
52 -SLOT="0"
53 -KEYWORDS="amd64 ~arm ~ia64 ppc ~sparc x86"
54 -REQUIRED_USE="mssql? ( odbc )"
55 -# TODO: Add 'tools' flag.
56 -IUSE="captcha debug full-xml hipe ldap mssql mysql nls odbc pam postgres redis
57 - riak roster-gw sqlite zlib"
58 -
59 -RESTRICT="test"
60 -
61 -# TODO: Add dependencies for 'tools' flag enabled.
62 -# TODO: tools? (
63 -# TODO: >=dev-erlang/meck-0.8.4
64 -# TODO: >=dev-erlang/moka-1.0.5b
65 -# TODO: )
66 -CDEPEND="
67 - >=dev-erlang/cache_tab-1.0.4
68 - >=dev-erlang/esip-1.0.8
69 - >=dev-erlang/fast_tls-1.0.7
70 - >=dev-erlang/fast_xml-1.1.15
71 - >=dev-erlang/fast_yaml-1.0.6
72 - >=dev-erlang/jiffy-0.14.7
73 - >=dev-erlang/lager-3.2.1
74 - >=dev-erlang/luerl-0.2
75 - >=dev-erlang/p1_oauth2-0.6.1
76 - >=dev-erlang/p1_utils-1.0.5
77 - >=dev-erlang/stringprep-1.0.6
78 - >=dev-erlang/stun-1.0.7
79 - >=dev-lang/erlang-17.1[hipe?,odbc?,ssl]
80 - !>=dev-lang/erlang-20.0
81 - >=net-im/jabber-base-0.01
82 - ldap? ( =net-nds/openldap-2* )
83 - mysql? ( >=dev-erlang/p1_mysql-1.0.1 )
84 - nls? ( >=dev-erlang/iconv-1.0.2 )
85 - odbc? ( dev-db/unixODBC )
86 - pam? ( >=dev-erlang/epam-1.0.0
87 - <dev-erlang/epam-1.0.1 )
88 - postgres? ( >=dev-erlang/p1_pgsql-1.1.0 )
89 - redis? ( >=dev-erlang/eredis-1.0.8 )
90 - riak? (
91 - >=dev-erlang/hamcrest-0.1.0_p20150103
92 - >=dev-erlang/riakc-2.1.1_p20151111
93 - )
94 - sqlite? ( >=dev-erlang/sqlite3-1.1.5 )
95 - zlib? ( >=dev-erlang/ezlib-1.0.1 )"
96 -DEPEND="${CDEPEND}
97 - >=sys-apps/gawk-4.1"
98 -RDEPEND="${CDEPEND}
99 - captcha? ( media-gfx/imagemagick[truetype,png] )"
100 -
101 -DOCS=( README )
102 -PATCHES=( "${FILESDIR}/${P}-ejabberdctl.patch" )
103 -
104 -EJABBERD_CERT="${EPREFIX}/etc/ssl/ejabberd/server.pem"
105 -# Paths in net-im/jabber-base
106 -JABBER_ETC="${EPREFIX}/etc/jabber"
107 -JABBER_LOG="${EPREFIX}/var/log/jabber"
108 -JABBER_SPOOL="${EPREFIX}/var/spool/jabber"
109 -
110 -# Adjust example configuration file to Gentoo.
111 -# - Use our sample certificates.
112 -# - Correct PAM service name.
113 -adjust_config() {
114 - sed -e "s|\"/path/to/ssl.pem\"|\"${EJABBERD_CERT}\"|g" \
115 - -e "s|\"pamservicename\"|\"xmpp\"|" \
116 - -i "${S}/ejabberd.yml.example" \
117 - || die 'failed to adjust example config'
118 -}
119 -
120 -# Set paths to ejabberd lib directory consistently to point always to directory
121 -# suffixed with version.
122 -correct_ejabberd_paths() {
123 - sed -e "/^EJABBERDDIR[[:space:]]*=/{s:ejabberd:${P}:}" \
124 - -i "${S}/Makefile.in" \
125 - || die 'failed to set ejabberd path in Makefile.in'
126 - sed -e "/EJABBERD_BIN_PATH=/{s:ejabberd:${P}:}" \
127 - -i "${S}/ejabberdctl.template" \
128 - || die 'failed to set ejabberd path in ejabberdctl.template'
129 - sed -e 's|\(captcha_cmd:[[:space:]]*"\).\+"|\1'$(get_ejabberd_path)'/priv/bin/captcha.sh"|' \
130 - -i "${S}/ejabberd.yml.example" \
131 - || die 'failed to correct path to captcha.sh in example config'
132 -}
133 -
134 -# Get epam-wrapper from 'files' directory and correct path to lib directory in
135 -# it. epam-wrapper is placed into work directory. It is assumed no epam-wrapper
136 -# file exists there already.
137 -customize_epam_wrapper() {
138 - local epam_wrapper_src="$1"
139 - local epam_wrapper_dst="${S}/epam-wrapper"
140 -
141 - [[ -e ${epam_wrapper_dst} ]] && die 'epam-wrapper already exists'
142 - sed -r -e "s@^(ERL_LIBS=).*\$@\1${EPREFIX}$(get_erl_libs)@" \
143 - "${epam_wrapper_src}" >"${epam_wrapper_dst}" \
144 - || die 'failed to install epam-wrapper'
145 -}
146 -
147 -# Disable mod_irc in example configuration file.
148 -disable_mod_irc() {
149 - local needs_iconv='needs dev-erlang/iconv (+nls USE flag)'
150 - sed -r \
151 - -e "s@^(\s*)(mod_irc\s*:.*$)@\1## \2 # ${needs_iconv}@" \
152 - -i "${S}/ejabberd.yml.example" \
153 - || die 'failed to modify example config'
154 -}
155 -
156 -# Check if there already exists a certificate.
157 -ejabberd_cert_exists() {
158 - local cert
159 -
160 - for cert in $(gawk -- \
161 - 'match($0, /^[[:space:]]*certfile: "([^"]+)"/, m) {print m[1];}' \
162 - "${EROOT%/}${JABBER_ETC}/ejabberd.yml"); do
163 - [[ -f ${cert} ]] && return 0
164 - done
165 -
166 - return 1
167 -}
168 -
169 -# Generate and install sample ejabberd certificate. It's installed into
170 -# EJABBERD_CERT path.
171 -ejabberd_cert_install() {
172 - SSL_ORGANIZATION="${SSL_ORGANIZATION:-ejabberd XMPP Server}"
173 - install_cert "${EJABBERD_CERT%.*}"
174 - chown root:jabber "${EROOT%/}${EJABBERD_CERT}" || die
175 - chmod 0440 "${EROOT%/}${EJABBERD_CERT}" || die
176 -}
177 -
178 -# Get path to ejabberd lib directory.
179 -#
180 -# This is the path ./configure script Base for this path is path set in
181 -# ./configure script which is /usr/lib by default. If libdir is explicitely set
182 -# to something else than this should be adjusted here as well.
183 -get_ejabberd_path() {
184 - echo "/usr/$(get_libdir)/${P}"
185 -}
186 -
187 -# Check whether mod_irc is enabled in ejabberd configuration on target system.
188 -is_mod_irc_enabled() {
189 - egrep '^(\s*)(mod_irc\s*:.*$)' \
190 - "${EROOT%/}${JABBER_ETC}/ejabberd.yml"
191 -}
192 -
193 -# Make ejabberd.service for systemd from upstream provided template.
194 -make_ejabberd_service() {
195 - sed -r \
196 - -e 's!@ctlscriptpath@!/usr/sbin!' \
197 - -e 's!(User|Group)=(.*)!\1=jabber!' \
198 - "${PN}.service.template" >"${PN}.service" \
199 - || die 'failed to make ejabberd.service'
200 -}
201 -
202 -# Set paths to defined by net-im/jabber-base.
203 -set_jabberbase_paths() {
204 - sed -e "/^ETCDIR[[:space:]]*=/{s:@sysconfdir@/ejabberd:${JABBER_ETC}:}" \
205 - -e "/^LOGDIR[[:space:]]*=/{s:@localstatedir@/log/ejabberd:${JABBER_LOG}:}" \
206 - -e "/^SPOOLDIR[[:space:]]*=/{s:@localstatedir@/lib/ejabberd:${JABBER_SPOOL}:}" \
207 - -i "${S}/Makefile.in" \
208 - || die 'failed to set paths in Makefile.in'
209 - sed -e "s|\(ETC_DIR=\){{sysconfdir}}.*|\1${JABBER_ETC}|" \
210 - -e "s|\(LOGS_DIR=\){{localstatedir}}.*|\1${JABBER_LOG}|" \
211 - -e "s|\(SPOOL_DIR=\){{localstatedir}}.*|\1${JABBER_SPOOL}|" \
212 - -i "${S}/ejabberdctl.template" \
213 - || die 'failed to set paths ejabberdctl.template'
214 -}
215 -
216 -# Skip installing docs because it's only COPYING that's installed by Makefile.
217 -skip_docs() {
218 - gawk -i inplace '
219 -/# Documentation/, /^[[:space:]]*#?[[:space:]]*$/ {
220 - if ($0 ~ /^[[:space:]]*#?[[:space:]]*$/) {
221 - print $0;
222 - } else {
223 - next;
224 - }
225 -}
226 -1
227 -' "${S}/Makefile.in" || die 'failed to remove docs section from Makefile.in'
228 -}
229 -
230 -src_prepare() {
231 - default
232 -
233 - rebar_remove_deps
234 - correct_ejabberd_paths
235 - set_jabberbase_paths
236 - make_ejabberd_service
237 - skip_docs
238 - adjust_config
239 - use nls || disable_mod_irc
240 - customize_epam_wrapper "${FILESDIR}/epam-wrapper"
241 -
242 - # Fix bug #591862. ERL_LIBS should point directly to ejabberd directory
243 - # rather than its parent which is default. That way ejabberd directory
244 - # takes precedence is module lookup.
245 - local ejabberd_erl_libs="$(get_ejabberd_path):$(get_erl_libs)"
246 - sed -e "s|\(ERL_LIBS=\){{libdir}}.*|\1${ejabberd_erl_libs}|" \
247 - -i "${S}/ejabberdctl.template" \
248 - || die 'failed to set ERL_LIBS in ejabberdctl.template'
249 -}
250 -
251 -src_configure() {
252 - econf \
253 - --docdir="${EPREFIX}/usr/share/doc/${PF}/html" \
254 - --enable-user=jabber \
255 - $(use_enable debug) \
256 - $(use_enable full-xml) \
257 - $(use_enable hipe) \
258 - $(use_enable mssql) \
259 - $(use_enable mysql) \
260 - $(use_enable nls iconv) \
261 - $(use_enable odbc) \
262 - $(use_enable pam) \
263 - $(use_enable postgres pgsql) \
264 - $(use_enable redis) \
265 - $(use_enable riak) \
266 - $(use_enable roster-gw roster-gateway-workaround) \
267 - $(use_enable sqlite) \
268 - $(use_enable zlib)
269 -}
270 -
271 -src_compile() {
272 - emake REBAR='rebar -v' src
273 -}
274 -
275 -src_install() {
276 - default
277 -
278 - if use pam; then
279 - local epam_path="$(get_ejabberd_path)/priv/bin/epam"
280 -
281 - pamd_mimic_system xmpp auth account || die "cannot create pam.d file"
282 - into "$(get_ejabberd_path)/priv"
283 - newbin epam-wrapper epam
284 - # PAM helper module permissions
285 - # https://www.process-one.net/docs/ejabberd/guide_en.html#pam
286 - fowners root:jabber "${epam_path}"
287 - fperms 4750 "${epam_path}"
288 - fi
289 -
290 - newconfd "${FILESDIR}/${PN}.confd" "${PN}"
291 - newinitd "${FILESDIR}/${PN}.initd" "${PN}"
292 - systemd_dounit "${PN}.service"
293 - systemd_dotmpfilesd "${FILESDIR}/${PN}.tmpfiles.conf"
294 -
295 - insinto /etc/logrotate.d
296 - newins "${FILESDIR}/${PN}.logrotate" "${PN}"
297 -}
298 -
299 -pkg_postinst() {
300 - if [[ ! ${REPLACING_VERSIONS} ]]; then
301 - echo
302 - elog "For configuration instructions, please see"
303 - elog " https://docs.ejabberd.im/"
304 - echo
305 - if [[ " ${REPLACING_VERSIONS} " =~ \ 2\. ]]; then
306 - ewarn "If you have used pubsub in ejabberd-2.* you may encounter issues after"
307 - ewarn "migration to ${PV}. pubsub data may not be migrated automatically and"
308 - ewarn "you may need to run migration script manually, see:"
309 - ewarn
310 - ewarn " https://github.com/processone/ejabberd/issues/479#issuecomment-124497456"
311 - ewarn
312 - ewarn "In case you don't care about all stored moods, activities, geoinfo and you"
313 - ewarn "know you don't store in pubsub anything important, you can just remove"
314 - ewarn "pubsub tables:"
315 - ewarn
316 - ewarn " rm ${EROOT%/}${JABBER_SPOOL}/pubsub_*"
317 - ewarn
318 - ewarn "See also: https://bugs.gentoo.org/show_bug.cgi?id=588244"
319 - echo
320 - fi
321 - elif [[ -f ${EROOT}etc/jabber/ejabberd.cfg ]]; then
322 - elog "Ejabberd now defaults to using a YAML format for its config file."
323 - elog "The old ejabberd.cfg file can be converted using the following instructions:"
324 - echo
325 - elog "1. Make sure all processes related to the previous version of ejabberd aren't"
326 - elog " running. Usually this just means the ejabberd and epmd daemons and possibly"
327 - elog " the pam-related process (epam) if pam support is enabled."
328 - elog "2. Run \`ejabberdctl start\` with sufficient permissions. Note that this can"
329 - elog " fail to start ejabberd properly for various reasons. Check ejabberd's main"
330 - elog " log file at /var/log/jabber/ejabberd.log to confirm it started successfully."
331 - elog "3. Run"
332 - elog " \`ejabberdctl convert_to_yaml /etc/jabber/ejabberd.cfg /etc/jabber/ejabberd.yml.new\`"
333 - elog " with sufficient permissions, edit and rename /etc/jabber/ejabberd.yml.new to"
334 - elog " /etc/jabber/ejabberd.yml, and finally restart ejabberd with the new config"
335 - elog " file."
336 - echo
337 - fi
338 -
339 - if ! ejabberd_cert_exists; then
340 - ejabberd_cert_install
341 - fi
342 -
343 - if use pam; then
344 - # sfperms drops read bit from files with suid. Reapply it.
345 - # Fix bug #592218.
346 - local epam_path="$(get_ejabberd_path)/priv/bin/epam"
347 - chmod g+r "${EROOT%/}${epam_path}" \
348 - || die "failed to correct ${epam_path} permissions"
349 - fi
350 -
351 - if ! use nls && is_mod_irc_enabled; then
352 - ewarn "nls support (dev-erlang/iconv) is required by mod_irc. Either rebuild ejabberd"
353 - ewarn "with nls enabled or disable mod_irc in ${EROOT%/}${JABBER_ETC}/ejabberd.yml."
354 - fi
355 -}
356
357 diff --git a/net-im/ejabberd/ejabberd-17.01-r2.ebuild b/net-im/ejabberd/ejabberd-17.01-r2.ebuild
358 deleted file mode 100644
359 index d20acca57fe..00000000000
360 --- a/net-im/ejabberd/ejabberd-17.01-r2.ebuild
361 +++ /dev/null
362 @@ -1,326 +0,0 @@
363 -# Copyright 1999-2018 Gentoo Foundation
364 -# Distributed under the terms of the GNU General Public License v2
365 -
366 -EAPI=6
367 -
368 -SSL_CERT_MANDATORY=1
369 -
370 -inherit eutils pam rebar ssl-cert systemd
371 -
372 -DESCRIPTION="Robust, scalable and extensible XMPP server"
373 -HOMEPAGE="https://www.ejabberd.im/ https://github.com/processone/ejabberd/"
374 -SRC_URI="https://www.process-one.net/downloads/${PN}/${PV}/${P}.tgz
375 - -> ${P}.tar.gz"
376 -
377 -LICENSE="GPL-2"
378 -SLOT="0"
379 -KEYWORDS="~amd64 ~arm ~ia64 ~ppc ~sparc ~x86"
380 -REQUIRED_USE="mssql? ( odbc )"
381 -# TODO: Add 'tools' flag.
382 -IUSE="captcha debug full-xml hipe ldap mssql mysql nls odbc pam postgres redis
383 - riak roster-gw sqlite zlib"
384 -
385 -RESTRICT="test"
386 -
387 -# TODO: Add dependencies for 'tools' flag enabled.
388 -# TODO: tools? (
389 -# TODO: >=dev-erlang/meck-0.8.4
390 -# TODO: >=dev-erlang/moka-1.0.5b
391 -# TODO: )
392 -CDEPEND="
393 - >=dev-erlang/cache_tab-1.0.6
394 - >=dev-erlang/esip-1.0.10
395 - >=dev-erlang/fast_tls-1.0.10
396 - >=dev-erlang/fast_xml-1.1.19
397 - >=dev-erlang/fast_yaml-1.0.8
398 - >=dev-erlang/jiffy-0.14.8
399 - >=dev-erlang/lager-3.2.1
400 - >=dev-erlang/luerl-0.2
401 - >=dev-erlang/p1_oauth2-0.6.1
402 - >=dev-erlang/p1_utils-1.0.6
403 - >=dev-erlang/stringprep-1.0.7
404 - >=dev-erlang/stun-1.0.9
405 - >=dev-erlang/xmpp-1.1.6
406 - <dev-erlang/xmpp-1.2.0
407 - >=dev-lang/erlang-17.1[hipe?,odbc?,ssl]
408 - !>=dev-lang/erlang-20.0
409 - >=net-im/jabber-base-0.01
410 - ldap? ( =net-nds/openldap-2* )
411 - mysql? ( >=dev-erlang/p1_mysql-1.0.2 )
412 - nls? ( >=dev-erlang/iconv-1.0.3 )
413 - odbc? ( dev-db/unixODBC )
414 - pam? ( >=dev-erlang/epam-1.0.0-r1
415 - <dev-erlang/epam-1.0.1 )
416 - postgres? ( >=dev-erlang/p1_pgsql-1.1.2 )
417 - redis? ( >=dev-erlang/eredis-1.0.8 )
418 - riak? (
419 - >=dev-erlang/hamcrest-0.1.0_p20150103
420 - >=dev-erlang/riakc-2.4.1
421 - )
422 - sqlite? ( >=dev-erlang/sqlite3-1.1.5 )
423 - zlib? ( >=dev-erlang/ezlib-1.0.2 )"
424 -DEPEND="${CDEPEND}
425 - >=sys-apps/gawk-4.1"
426 -RDEPEND="${CDEPEND}
427 - captcha? ( media-gfx/imagemagick[truetype,png] )"
428 -
429 -DOCS=( README )
430 -PATCHES=( "${FILESDIR}/${P}-ejabberdctl.patch"
431 - "${FILESDIR}/${P}-0001-Dont-overwrite-service-file.patch" )
432 -
433 -EJABBERD_CERT="${EPREFIX}/etc/ssl/ejabberd/server.pem"
434 -# Paths in net-im/jabber-base
435 -JABBER_ETC="${EPREFIX}/etc/jabber"
436 -JABBER_LOG="${EPREFIX}/var/log/jabber"
437 -JABBER_SPOOL="${EPREFIX}/var/spool/jabber"
438 -
439 -# Adjust example configuration file to Gentoo.
440 -# - Use our sample certificates.
441 -# - Correct PAM service name.
442 -adjust_config() {
443 - sed -e "s|\"/path/to/ssl.pem\"|\"${EJABBERD_CERT}\"|g" \
444 - -e "s|\"pamservicename\"|\"xmpp\"|" \
445 - -i "${S}/ejabberd.yml.example" \
446 - || die 'failed to adjust example config'
447 -}
448 -
449 -# Set paths to ejabberd lib directory consistently to point always to directory
450 -# suffixed with version.
451 -correct_ejabberd_paths() {
452 - sed -e "/^EJABBERDDIR[[:space:]]*=/{s:ejabberd:${P}:}" \
453 - -i "${S}/Makefile.in" \
454 - || die 'failed to set ejabberd path in Makefile.in'
455 - sed -e "/EJABBERD_BIN_PATH=/{s:ejabberd:${P}:}" \
456 - -i "${S}/ejabberdctl.template" \
457 - || die 'failed to set ejabberd path in ejabberdctl.template'
458 - sed -e 's|\(captcha_cmd:[[:space:]]*"\).\+"|\1'$(get_ejabberd_path)'/priv/bin/captcha.sh"|' \
459 - -i "${S}/ejabberd.yml.example" \
460 - || die 'failed to correct path to captcha.sh in example config'
461 -}
462 -
463 -# Get epam-wrapper from 'files' directory and correct path to lib directory in
464 -# it. epam-wrapper is placed into work directory. It is assumed no epam-wrapper
465 -# file exists there already.
466 -customize_epam_wrapper() {
467 - local epam_wrapper_src="$1"
468 - local epam_wrapper_dst="${S}/epam-wrapper"
469 -
470 - [[ -e ${epam_wrapper_dst} ]] && die 'epam-wrapper already exists'
471 - sed -r -e "s@^(ERL_LIBS=).*\$@\1${EPREFIX}$(get_erl_libs)@" \
472 - "${epam_wrapper_src}" >"${epam_wrapper_dst}" \
473 - || die 'failed to install epam-wrapper'
474 -}
475 -
476 -# Disable mod_irc in example configuration file.
477 -disable_mod_irc() {
478 - local needs_iconv='needs dev-erlang/iconv (+nls USE flag)'
479 - sed -r \
480 - -e "s@^(\s*)(mod_irc\s*:.*$)@\1## \2 # ${needs_iconv}@" \
481 - -i "${S}/ejabberd.yml.example" \
482 - || die 'failed to modify example config'
483 -}
484 -
485 -# Check if there already exists a certificate.
486 -ejabberd_cert_exists() {
487 - local cert
488 -
489 - for cert in $(gawk -- \
490 - 'match($0, /^[[:space:]]*certfile: "([^"]+)"/, m) {print m[1];}' \
491 - "${EROOT%/}${JABBER_ETC}/ejabberd.yml"); do
492 - [[ -f ${cert} ]] && return 0
493 - done
494 -
495 - return 1
496 -}
497 -
498 -# Generate and install sample ejabberd certificate. It's installed into
499 -# EJABBERD_CERT path.
500 -ejabberd_cert_install() {
501 - SSL_ORGANIZATION="${SSL_ORGANIZATION:-ejabberd XMPP Server}"
502 - install_cert "${EJABBERD_CERT%.*}"
503 - chown root:jabber "${EROOT%/}${EJABBERD_CERT}" || die
504 - chmod 0440 "${EROOT%/}${EJABBERD_CERT}" || die
505 -}
506 -
507 -# Get path to ejabberd lib directory.
508 -#
509 -# This is the path ./configure script Base for this path is path set in
510 -# ./configure script which is /usr/lib by default. If libdir is explicitely set
511 -# to something else than this should be adjusted here as well.
512 -get_ejabberd_path() {
513 - echo "/usr/$(get_libdir)/${P}"
514 -}
515 -
516 -# Check whether mod_irc is enabled in ejabberd configuration on target system.
517 -is_mod_irc_enabled() {
518 - egrep '^(\s*)(mod_irc\s*:.*$)' \
519 - "${EROOT%/}${JABBER_ETC}/ejabberd.yml"
520 -}
521 -
522 -# Make ejabberd.service for systemd from upstream provided template.
523 -make_ejabberd_service() {
524 - sed -r \
525 - -e 's!@ctlscriptpath@!/usr/sbin!g' \
526 - -e 's!(User|Group)=(.*)!\1=jabber!' \
527 - "${PN}.service.template" >"${PN}.service" \
528 - || die 'failed to make ejabberd.service'
529 -}
530 -
531 -# Set paths to defined by net-im/jabber-base.
532 -set_jabberbase_paths() {
533 - sed -e "/^ETCDIR[[:space:]]*=/{s:@sysconfdir@/ejabberd:${JABBER_ETC}:}" \
534 - -e "/^LOGDIR[[:space:]]*=/{s:@localstatedir@/log/ejabberd:${JABBER_LOG}:}" \
535 - -e "/^SPOOLDIR[[:space:]]*=/{s:@localstatedir@/lib/ejabberd:${JABBER_SPOOL}:}" \
536 - -i "${S}/Makefile.in" \
537 - || die 'failed to set paths in Makefile.in'
538 - sed -e "s|\(ETC_DIR=\){{sysconfdir}}.*|\1${JABBER_ETC}|" \
539 - -e "s|\(LOGS_DIR=\){{localstatedir}}.*|\1${JABBER_LOG}|" \
540 - -e "s|\(SPOOL_DIR=\){{localstatedir}}.*|\1${JABBER_SPOOL}|" \
541 - -i "${S}/ejabberdctl.template" \
542 - || die 'failed to set paths ejabberdctl.template'
543 -}
544 -
545 -# Skip installing docs because it's only COPYING that's installed by Makefile.
546 -skip_docs() {
547 - gawk -i inplace '
548 -/# Documentation/, /^[[:space:]]*#?[[:space:]]*$/ {
549 - if ($0 ~ /^[[:space:]]*#?[[:space:]]*$/) {
550 - print $0;
551 - } else {
552 - next;
553 - }
554 -}
555 -1
556 -' "${S}/Makefile.in" || die 'failed to remove docs section from Makefile.in'
557 -}
558 -
559 -pkg_setup() {
560 - if use pam; then
561 - einfo "Adding jabber user to epam group to allow ejabberd to use PAM" \
562 - "authentication"
563 - # See
564 - # <https://docs.ejabberd.im/admin/configuration/#pam-authentication>.
565 - # epam binary is installed by dev-erlang/epam package, therefore SUID
566 - # is set by that package. Instead of jabber group it uses epam group,
567 - # therefore we need to add jabber user to epam group.
568 - usermod -a -G epam jabber || die
569 - fi
570 -}
571 -
572 -src_prepare() {
573 - default
574 -
575 - rebar_remove_deps
576 - correct_ejabberd_paths
577 - set_jabberbase_paths
578 - make_ejabberd_service
579 - skip_docs
580 - adjust_config
581 - use nls || disable_mod_irc
582 - customize_epam_wrapper "${FILESDIR}/epam-wrapper"
583 -
584 - rebar_fix_include_path fast_xml
585 - rebar_fix_include_path xmpp
586 -
587 - # Fix bug #591862. ERL_LIBS should point directly to ejabberd directory
588 - # rather than its parent which is default. That way ejabberd directory
589 - # takes precedence is module lookup.
590 - local ejabberd_erl_libs="$(get_ejabberd_path):$(get_erl_libs)"
591 - sed -e "s|\(ERL_LIBS=\){{libdir}}.*|\1${ejabberd_erl_libs}|" \
592 - -i "${S}/ejabberdctl.template" \
593 - || die 'failed to set ERL_LIBS in ejabberdctl.template'
594 -}
595 -
596 -src_configure() {
597 - econf \
598 - --docdir="${EPREFIX}/usr/share/doc/${PF}/html" \
599 - --enable-user=jabber \
600 - $(use_enable debug) \
601 - $(use_enable full-xml) \
602 - $(use_enable hipe) \
603 - $(use_enable mssql) \
604 - $(use_enable mysql) \
605 - $(use_enable nls iconv) \
606 - $(use_enable odbc) \
607 - $(use_enable pam) \
608 - $(use_enable postgres pgsql) \
609 - $(use_enable redis) \
610 - $(use_enable riak) \
611 - $(use_enable roster-gw roster-gateway-workaround) \
612 - $(use_enable sqlite) \
613 - $(use_enable zlib)
614 -}
615 -
616 -src_compile() {
617 - emake REBAR='rebar -v' src
618 -}
619 -
620 -src_install() {
621 - default
622 -
623 - if use pam; then
624 - local epam_path="$(get_ejabberd_path)/priv/bin/epam"
625 -
626 - pamd_mimic_system xmpp auth account || die "cannot create pam.d file"
627 - into "$(get_ejabberd_path)/priv"
628 - newbin epam-wrapper epam
629 - fi
630 -
631 - newconfd "${FILESDIR}/${PN}.confd" "${PN}"
632 - newinitd "${FILESDIR}/${PN}.initd" "${PN}"
633 - systemd_dounit "${PN}.service"
634 - systemd_dotmpfilesd "${FILESDIR}/${PN}.tmpfiles.conf"
635 -
636 - insinto /etc/logrotate.d
637 - newins "${FILESDIR}/${PN}.logrotate" "${PN}"
638 -}
639 -
640 -pkg_postinst() {
641 - if [[ ! ${REPLACING_VERSIONS} ]]; then
642 - echo
643 - elog "For configuration instructions, please see"
644 - elog " https://docs.ejabberd.im/"
645 - echo
646 - if [[ " ${REPLACING_VERSIONS} " =~ \ 2\. ]]; then
647 - ewarn "If you have used pubsub in ejabberd-2.* you may encounter issues after"
648 - ewarn "migration to ${PV}. pubsub data may not be migrated automatically and"
649 - ewarn "you may need to run migration script manually, see:"
650 - ewarn
651 - ewarn " https://github.com/processone/ejabberd/issues/479#issuecomment-124497456"
652 - ewarn
653 - ewarn "In case you don't care about all stored moods, activities, geoinfo and you"
654 - ewarn "know you don't store in pubsub anything important, you can just remove"
655 - ewarn "pubsub tables:"
656 - ewarn
657 - ewarn " rm ${EROOT%/}${JABBER_SPOOL}/pubsub_*"
658 - ewarn
659 - ewarn "See also: https://bugs.gentoo.org/show_bug.cgi?id=588244"
660 - echo
661 - fi
662 - elif [[ -f ${EROOT}etc/jabber/ejabberd.cfg ]]; then
663 - elog "Ejabberd now defaults to using a YAML format for its config file."
664 - elog "The old ejabberd.cfg file can be converted using the following instructions:"
665 - echo
666 - elog "1. Make sure all processes related to the previous version of ejabberd aren't"
667 - elog " running. Usually this just means the ejabberd and epmd daemons and possibly"
668 - elog " the pam-related process (epam) if pam support is enabled."
669 - elog "2. Run \`ejabberdctl start\` with sufficient permissions. Note that this can"
670 - elog " fail to start ejabberd properly for various reasons. Check ejabberd's main"
671 - elog " log file at /var/log/jabber/ejabberd.log to confirm it started successfully."
672 - elog "3. Run"
673 - elog " \`ejabberdctl convert_to_yaml /etc/jabber/ejabberd.cfg /etc/jabber/ejabberd.yml.new\`"
674 - elog " with sufficient permissions, edit and rename /etc/jabber/ejabberd.yml.new to"
675 - elog " /etc/jabber/ejabberd.yml, and finally restart ejabberd with the new config"
676 - elog " file."
677 - echo
678 - fi
679 -
680 - if ! ejabberd_cert_exists; then
681 - ejabberd_cert_install
682 - fi
683 -
684 - if ! use nls && is_mod_irc_enabled; then
685 - ewarn "nls support (dev-erlang/iconv) is required by mod_irc. Either rebuild ejabberd"
686 - ewarn "with nls enabled or disable mod_irc in ${EROOT%/}${JABBER_ETC}/ejabberd.yml."
687 - fi
688 -}
689
690 diff --git a/net-im/ejabberd/ejabberd-17.04-r1.ebuild b/net-im/ejabberd/ejabberd-17.04-r1.ebuild
691 deleted file mode 100644
692 index 02947b6b739..00000000000
693 --- a/net-im/ejabberd/ejabberd-17.04-r1.ebuild
694 +++ /dev/null
695 @@ -1,327 +0,0 @@
696 -# Copyright 1999-2018 Gentoo Foundation
697 -# Distributed under the terms of the GNU General Public License v2
698 -
699 -EAPI=6
700 -
701 -SSL_CERT_MANDATORY=1
702 -
703 -inherit eutils pam rebar ssl-cert systemd
704 -
705 -DESCRIPTION="Robust, scalable and extensible XMPP server"
706 -HOMEPAGE="https://www.ejabberd.im/ https://github.com/processone/ejabberd/"
707 -SRC_URI="https://www.process-one.net/downloads/${PN}/${PV}/${P}.tgz
708 - -> ${P}.tar.gz"
709 -
710 -LICENSE="GPL-2"
711 -SLOT="0"
712 -KEYWORDS="~amd64 ~arm ~ia64 ~ppc ~sparc ~x86"
713 -REQUIRED_USE="mssql? ( odbc )"
714 -# TODO: Add 'tools' flag.
715 -IUSE="captcha debug full-xml hipe ldap mssql mysql nls odbc pam postgres redis
716 - riak roster-gw sqlite zlib"
717 -
718 -RESTRICT="test"
719 -
720 -# TODO: Add dependencies for 'tools' flag enabled.
721 -# TODO: tools? (
722 -# TODO: >=dev-erlang/meck-0.8.4
723 -# TODO: >=dev-erlang/moka-1.0.5b
724 -# TODO: )
725 -CDEPEND="
726 - >=dev-erlang/cache_tab-1.0.7
727 - >=dev-erlang/esip-1.0.11
728 - >=dev-erlang/fast_tls-1.0.11
729 - >=dev-erlang/fast_xml-1.1.21
730 - >=dev-erlang/fast_yaml-1.0.9
731 - >=dev-erlang/jiffy-0.14.8
732 - >=dev-erlang/lager-3.2.1
733 - >=dev-erlang/luerl-0.2
734 - >=dev-erlang/p1_oauth2-0.6.1
735 - >=dev-erlang/p1_utils-1.0.8
736 - >=dev-erlang/stringprep-1.0.8
737 - >=dev-erlang/stun-1.0.10
738 - >=dev-erlang/xmpp-1.1.9
739 - <dev-erlang/xmpp-1.2.0
740 - >=dev-lang/erlang-17.1[hipe?,odbc?,ssl]
741 - !>=dev-lang/erlang-20.0
742 - >=net-im/jabber-base-0.01
743 - ldap? ( =net-nds/openldap-2* )
744 - mysql? ( >=dev-erlang/p1_mysql-1.0.2 )
745 - nls? ( >=dev-erlang/iconv-1.0.4 )
746 - odbc? ( dev-db/unixODBC )
747 - pam? ( >=dev-erlang/epam-1.0.2 )
748 - postgres? ( >=dev-erlang/p1_pgsql-1.1.2 )
749 - redis? ( >=dev-erlang/eredis-1.0.8 )
750 - riak? (
751 - >=dev-erlang/hamcrest-0.1.0_p20150103
752 - >=dev-erlang/riakc-2.4.1
753 - )
754 - sqlite? ( >=dev-erlang/sqlite3-1.1.5 )
755 - zlib? ( >=dev-erlang/ezlib-1.0.2 )"
756 -DEPEND="${CDEPEND}
757 - >=sys-apps/gawk-4.1"
758 -RDEPEND="${CDEPEND}
759 - captcha? ( media-gfx/imagemagick[truetype,png] )"
760 -
761 -DOCS=( README )
762 -PATCHES=( "${FILESDIR}/${P}-ejabberdctl.patch"
763 - "${FILESDIR}/${P}-0001-Don-t-configure-or-compile-deps.patch"
764 - "${FILESDIR}/${P}-0002-Dont-overwrite-service-file.patch" )
765 -
766 -EJABBERD_CERT="${EPREFIX}/etc/ssl/ejabberd/server.pem"
767 -# Paths in net-im/jabber-base
768 -JABBER_ETC="${EPREFIX}/etc/jabber"
769 -JABBER_LOG="${EPREFIX}/var/log/jabber"
770 -JABBER_SPOOL="${EPREFIX}/var/spool/jabber"
771 -
772 -# Adjust example configuration file to Gentoo.
773 -# - Use our sample certificates.
774 -# - Correct PAM service name.
775 -adjust_config() {
776 - sed -e "s|\"/path/to/ssl.pem\"|\"${EJABBERD_CERT}\"|g" \
777 - -e "s|\"pamservicename\"|\"xmpp\"|" \
778 - -i "${S}/ejabberd.yml.example" \
779 - || die 'failed to adjust example config'
780 -}
781 -
782 -# Set paths to ejabberd lib directory consistently to point always to directory
783 -# suffixed with version.
784 -correct_ejabberd_paths() {
785 - sed -e "/^EJABBERDDIR[[:space:]]*=/{s:ejabberd:${P}:}" \
786 - -i "${S}/Makefile.in" \
787 - || die 'failed to set ejabberd path in Makefile.in'
788 - sed -e "/EJABBERD_BIN_PATH=/{s:ejabberd:${P}:}" \
789 - -i "${S}/ejabberdctl.template" \
790 - || die 'failed to set ejabberd path in ejabberdctl.template'
791 - sed -e 's|\(captcha_cmd:[[:space:]]*"\).\+"|\1'$(get_ejabberd_path)'/priv/bin/captcha.sh"|' \
792 - -i "${S}/ejabberd.yml.example" \
793 - || die 'failed to correct path to captcha.sh in example config'
794 -}
795 -
796 -# Get epam-wrapper from 'files' directory and correct path to lib directory in
797 -# it. epam-wrapper is placed into work directory. It is assumed no epam-wrapper
798 -# file exists there already.
799 -customize_epam_wrapper() {
800 - local epam_wrapper_src="$1"
801 - local epam_wrapper_dst="${S}/epam-wrapper"
802 -
803 - [[ -e ${epam_wrapper_dst} ]] && die 'epam-wrapper already exists'
804 - sed -r -e "s@^(ERL_LIBS=).*\$@\1${EPREFIX}$(get_erl_libs)@" \
805 - "${epam_wrapper_src}" >"${epam_wrapper_dst}" \
806 - || die 'failed to install epam-wrapper'
807 -}
808 -
809 -# Disable mod_irc in example configuration file.
810 -disable_mod_irc() {
811 - local needs_iconv='needs dev-erlang/iconv (+nls USE flag)'
812 - sed -r \
813 - -e "s@^(\s*)(mod_irc\s*:.*$)@\1## \2 # ${needs_iconv}@" \
814 - -i "${S}/ejabberd.yml.example" \
815 - || die 'failed to modify example config'
816 -}
817 -
818 -# Check if there already exists a certificate.
819 -ejabberd_cert_exists() {
820 - local cert
821 -
822 - for cert in $(gawk -- \
823 - 'match($0, /^[[:space:]]*certfile: "([^"]+)"/, m) {print m[1];}' \
824 - "${EROOT%/}${JABBER_ETC}/ejabberd.yml"); do
825 - [[ -f ${cert} ]] && return 0
826 - done
827 -
828 - return 1
829 -}
830 -
831 -# Generate and install sample ejabberd certificate. It's installed into
832 -# EJABBERD_CERT path.
833 -ejabberd_cert_install() {
834 - SSL_ORGANIZATION="${SSL_ORGANIZATION:-ejabberd XMPP Server}"
835 - install_cert "${EJABBERD_CERT%.*}"
836 - chown root:jabber "${EROOT%/}${EJABBERD_CERT}" || die
837 - chmod 0440 "${EROOT%/}${EJABBERD_CERT}" || die
838 -}
839 -
840 -# Get path to ejabberd lib directory.
841 -#
842 -# This is the path ./configure script Base for this path is path set in
843 -# ./configure script which is /usr/lib by default. If libdir is explicitely set
844 -# to something else than this should be adjusted here as well.
845 -get_ejabberd_path() {
846 - echo "/usr/$(get_libdir)/${P}"
847 -}
848 -
849 -# Check whether mod_irc is enabled in ejabberd configuration on target system.
850 -is_mod_irc_enabled() {
851 - egrep '^(\s*)(mod_irc\s*:.*$)' \
852 - "${EROOT%/}${JABBER_ETC}/ejabberd.yml"
853 -}
854 -
855 -# Make ejabberd.service for systemd from upstream provided template.
856 -make_ejabberd_service() {
857 - sed -r \
858 - -e 's!@ctlscriptpath@!/usr/sbin!g' \
859 - -e 's!(User|Group)=(.*)!\1=jabber!' \
860 - "${PN}.service.template" >"${PN}.service" \
861 - || die 'failed to make ejabberd.service'
862 -}
863 -
864 -# Set paths to defined by net-im/jabber-base.
865 -set_jabberbase_paths() {
866 - sed -e "/^ETCDIR[[:space:]]*=/{s:@sysconfdir@/ejabberd:${JABBER_ETC}:}" \
867 - -e "/^LOGDIR[[:space:]]*=/{s:@localstatedir@/log/ejabberd:${JABBER_LOG}:}" \
868 - -e "/^SPOOLDIR[[:space:]]*=/{s:@localstatedir@/lib/ejabberd:${JABBER_SPOOL}:}" \
869 - -i "${S}/Makefile.in" \
870 - || die 'failed to set paths in Makefile.in'
871 - sed -e "s|\(ETC_DIR=\){{sysconfdir}}.*|\1${JABBER_ETC}|" \
872 - -e "s|\(LOGS_DIR=\){{localstatedir}}.*|\1${JABBER_LOG}|" \
873 - -e "s|\(SPOOL_DIR=\){{localstatedir}}.*|\1${JABBER_SPOOL}|" \
874 - -i "${S}/ejabberdctl.template" \
875 - || die 'failed to set paths ejabberdctl.template'
876 -}
877 -
878 -# Skip installing docs because it's only COPYING that's installed by Makefile.
879 -skip_docs() {
880 - gawk -i inplace '
881 -/# Documentation/, /^[[:space:]]*#?[[:space:]]*$/ {
882 - if ($0 ~ /^[[:space:]]*#?[[:space:]]*$/) {
883 - print $0;
884 - } else {
885 - next;
886 - }
887 -}
888 -1
889 -' "${S}/Makefile.in" || die 'failed to remove docs section from Makefile.in'
890 -}
891 -
892 -pkg_setup() {
893 - if use pam; then
894 - einfo "Adding jabber user to epam group to allow ejabberd to use PAM" \
895 - "authentication"
896 - # See
897 - # <https://docs.ejabberd.im/admin/configuration/#pam-authentication>.
898 - # epam binary is installed by dev-erlang/epam package, therefore SUID
899 - # is set by that package. Instead of jabber group it uses epam group,
900 - # therefore we need to add jabber user to epam group.
901 - usermod -a -G epam jabber || die
902 - fi
903 -}
904 -
905 -src_prepare() {
906 - default
907 -
908 - rebar_remove_deps
909 - correct_ejabberd_paths
910 - set_jabberbase_paths
911 - make_ejabberd_service
912 - skip_docs
913 - adjust_config
914 - use nls || disable_mod_irc
915 - customize_epam_wrapper "${FILESDIR}/epam-wrapper"
916 -
917 - rebar_fix_include_path fast_xml
918 - rebar_fix_include_path p1_utils
919 - rebar_fix_include_path xmpp
920 -
921 - # Fix bug #591862. ERL_LIBS should point directly to ejabberd directory
922 - # rather than its parent which is default. That way ejabberd directory
923 - # takes precedence is module lookup.
924 - local ejabberd_erl_libs="$(get_ejabberd_path):$(get_erl_libs)"
925 - sed -e "s|\(ERL_LIBS=\){{libdir}}.*|\1${ejabberd_erl_libs}|" \
926 - -i "${S}/ejabberdctl.template" \
927 - || die 'failed to set ERL_LIBS in ejabberdctl.template'
928 -}
929 -
930 -src_configure() {
931 - econf \
932 - --docdir="${EPREFIX}/usr/share/doc/${PF}/html" \
933 - --enable-user=jabber \
934 - $(use_enable debug) \
935 - $(use_enable full-xml) \
936 - $(use_enable hipe) \
937 - $(use_enable mssql) \
938 - $(use_enable mysql) \
939 - $(use_enable nls iconv) \
940 - $(use_enable odbc) \
941 - $(use_enable pam) \
942 - $(use_enable postgres pgsql) \
943 - $(use_enable redis) \
944 - $(use_enable riak) \
945 - $(use_enable roster-gw roster-gateway-workaround) \
946 - $(use_enable sqlite) \
947 - $(use_enable zlib)
948 -}
949 -
950 -src_compile() {
951 - emake REBAR='rebar -v' src
952 -}
953 -
954 -src_install() {
955 - default
956 -
957 - if use pam; then
958 - local epam_path="$(get_ejabberd_path)/priv/bin/epam"
959 -
960 - pamd_mimic_system xmpp auth account || die "cannot create pam.d file"
961 - into "$(get_ejabberd_path)/priv"
962 - newbin epam-wrapper epam
963 - fi
964 -
965 - newconfd "${FILESDIR}/${PN}.confd" "${PN}"
966 - newinitd "${FILESDIR}/${PN}.initd" "${PN}"
967 - systemd_dounit "${PN}.service"
968 - systemd_dotmpfilesd "${FILESDIR}/${PN}.tmpfiles.conf"
969 -
970 - insinto /etc/logrotate.d
971 - newins "${FILESDIR}/${PN}.logrotate" "${PN}"
972 -}
973 -
974 -pkg_postinst() {
975 - if [[ ! ${REPLACING_VERSIONS} ]]; then
976 - echo
977 - elog "For configuration instructions, please see"
978 - elog " https://docs.ejabberd.im/"
979 - echo
980 - if [[ " ${REPLACING_VERSIONS} " =~ \ 2\. ]]; then
981 - ewarn "If you have used pubsub in ejabberd-2.* you may encounter issues after"
982 - ewarn "migration to ${PV}. pubsub data may not be migrated automatically and"
983 - ewarn "you may need to run migration script manually, see:"
984 - ewarn
985 - ewarn " https://github.com/processone/ejabberd/issues/479#issuecomment-124497456"
986 - ewarn
987 - ewarn "In case you don't care about all stored moods, activities, geoinfo and you"
988 - ewarn "know you don't store in pubsub anything important, you can just remove"
989 - ewarn "pubsub tables:"
990 - ewarn
991 - ewarn " rm ${EROOT%/}${JABBER_SPOOL}/pubsub_*"
992 - ewarn
993 - ewarn "See also: https://bugs.gentoo.org/show_bug.cgi?id=588244"
994 - echo
995 - fi
996 - elif [[ -f ${EROOT}etc/jabber/ejabberd.cfg ]]; then
997 - elog "Ejabberd now defaults to using a YAML format for its config file."
998 - elog "The old ejabberd.cfg file can be converted using the following instructions:"
999 - echo
1000 - elog "1. Make sure all processes related to the previous version of ejabberd aren't"
1001 - elog " running. Usually this just means the ejabberd and epmd daemons and possibly"
1002 - elog " the pam-related process (epam) if pam support is enabled."
1003 - elog "2. Run \`ejabberdctl start\` with sufficient permissions. Note that this can"
1004 - elog " fail to start ejabberd properly for various reasons. Check ejabberd's main"
1005 - elog " log file at /var/log/jabber/ejabberd.log to confirm it started successfully."
1006 - elog "3. Run"
1007 - elog " \`ejabberdctl convert_to_yaml /etc/jabber/ejabberd.cfg /etc/jabber/ejabberd.yml.new\`"
1008 - elog " with sufficient permissions, edit and rename /etc/jabber/ejabberd.yml.new to"
1009 - elog " /etc/jabber/ejabberd.yml, and finally restart ejabberd with the new config"
1010 - elog " file."
1011 - echo
1012 - fi
1013 -
1014 - if ! ejabberd_cert_exists; then
1015 - ejabberd_cert_install
1016 - fi
1017 -
1018 - if ! use nls && is_mod_irc_enabled; then
1019 - ewarn "nls support (dev-erlang/iconv) is required by mod_irc. Either rebuild ejabberd"
1020 - ewarn "with nls enabled or disable mod_irc in ${EROOT%/}${JABBER_ETC}/ejabberd.yml."
1021 - fi
1022 -}
1023
1024 diff --git a/net-im/ejabberd/files/ejabberd-16.09-ejabberdctl.patch b/net-im/ejabberd/files/ejabberd-16.09-ejabberdctl.patch
1025 deleted file mode 100644
1026 index 6001c651f5d..00000000000
1027 --- a/net-im/ejabberd/files/ejabberd-16.09-ejabberdctl.patch
1028 +++ /dev/null
1029 @@ -1,62 +0,0 @@
1030 -From 185923a3c5f11c2d29599416a52b6594bc94d8c9 Mon Sep 17 00:00:00 2001
1031 -From: =?UTF-8?q?Amadeusz=20=C5=BBo=C5=82nowski?= <aidecoe@×××××××.name>
1032 -Date: Mon, 29 Aug 2016 22:29:41 +0100
1033 -Subject: [PATCH] Adjust ejabberdctl for Gentoo jabberbase setup
1034 -
1035 -Set SHELL since the generic jabber user used on Gentoo for jabber
1036 -servers doesn't have a valid shell set by default and fix EXEC_CMD
1037 -otherwise it fails with "This account is currently not available" again
1038 -due to jabber not having a valid shell.
1039 -
1040 -Also, workaround the assumption that jabber's $HOME is a directory when
1041 -instead it defaults to /dev/null on Gentoo.
1042 ----
1043 - ejabberdctl.template | 8 ++++++--
1044 - 1 file changed, 6 insertions(+), 2 deletions(-)
1045 -
1046 -diff --git a/ejabberdctl.template b/ejabberdctl.template
1047 -index 5b34ebe..3c080fd 100755
1048 ---- a/ejabberdctl.template
1049 -+++ b/ejabberdctl.template
1050 -@@ -16,6 +16,7 @@ IEX={{bindir}}/iex
1051 - EPMD={{epmd}}
1052 - INSTALLUSER={{installuser}}
1053 - ERL_LIBS={{libdir}}
1054 -+SHELL=/bin/sh
1055 -
1056 - # check the proper system user is used if defined
1057 - if [ "$INSTALLUSER" != "" ] ; then
1058 -@@ -23,11 +24,11 @@ if [ "$INSTALLUSER" != "" ] ; then
1059 - for GID in `id -G`; do
1060 - if [ $GID -eq 0 ] ; then
1061 - INSTALLUSER_HOME=$(getent passwd "$INSTALLUSER" | cut -d: -f6)
1062 -- if [ -n "$INSTALLUSER_HOME" ] && [ ! -d "$INSTALLUSER_HOME" ] ; then
1063 -+ if [ -n "$INSTALLUSER_HOME" ] && [ ! -e "$INSTALLUSER_HOME" ] ; then
1064 - mkdir -p "$INSTALLUSER_HOME"
1065 - chown "$INSTALLUSER" "$INSTALLUSER_HOME"
1066 - fi
1067 -- EXEC_CMD="su $INSTALLUSER -c"
1068 -+ EXEC_CMD="su $INSTALLUSER -p -c"
1069 - fi
1070 - done
1071 - if [ `id -g` -eq `id -g $INSTALLUSER` ] ; then
1072 -@@ -91,6 +92,7 @@ EJABBERD_LOG_PATH=$LOGS_DIR/ejabberd.log
1073 - DATETIME=`date "+%Y%m%d-%H%M%S"`
1074 - ERL_CRASH_DUMP=$LOGS_DIR/erl_crash_$DATETIME.dump
1075 - ERL_INETRC=$ETC_DIR/inetrc
1076 -+HOME=$SPOOL_DIR
1077 -
1078 - # define mnesia options
1079 - MNESIA_OPTS="-mnesia dir \"\\\"$SPOOL_DIR\\\"\" $MNESIA_OPTIONS"
1080 -@@ -149,6 +151,8 @@ export ERL_MAX_ETS_TABLES
1081 - export CONTRIB_MODULES_PATH
1082 - export CONTRIB_MODULES_CONF_DIR
1083 - export ERL_LIBS
1084 -+export HOME
1085 -+export SHELL
1086 -
1087 - shell_escape_str()
1088 - {
1089 ---
1090 -2.9.2
1091 -
1092
1093 diff --git a/net-im/ejabberd/files/ejabberd-17.01-0001-Dont-overwrite-service-file.patch b/net-im/ejabberd/files/ejabberd-17.01-0001-Dont-overwrite-service-file.patch
1094 deleted file mode 100644
1095 index 92b7b023309..00000000000
1096 --- a/net-im/ejabberd/files/ejabberd-17.01-0001-Dont-overwrite-service-file.patch
1097 +++ /dev/null
1098 @@ -1,15 +0,0 @@
1099 -diff --git a/Makefile.in b/Makefile.in
1100 -index 5ff3efe0..644ed713 100644
1101 ---- a/Makefile.in
1102 -+++ b/Makefile.in
1103 -@@ -204,8 +204,8 @@ install: all copy-files
1104 - chmod 755 ejabberd.init
1105 - #
1106 - # Service script
1107 -- $(SED) -e "s*@ctlscriptpath@*$(SBINDIR)*g" ejabberd.service.template \
1108 -- > ejabberd.service
1109 -+ [ -f ejabberd.service ] || $(SED) -e "s*@ctlscriptpath@*$(SBINDIR)*g" \
1110 -+ ejabberd.service.template > ejabberd.service
1111 - chmod 644 ejabberd.service
1112 - #
1113 - # Spool directory
1114
1115 diff --git a/net-im/ejabberd/files/ejabberd-17.01-ejabberdctl.patch b/net-im/ejabberd/files/ejabberd-17.01-ejabberdctl.patch
1116 deleted file mode 100644
1117 index 6001c651f5d..00000000000
1118 --- a/net-im/ejabberd/files/ejabberd-17.01-ejabberdctl.patch
1119 +++ /dev/null
1120 @@ -1,62 +0,0 @@
1121 -From 185923a3c5f11c2d29599416a52b6594bc94d8c9 Mon Sep 17 00:00:00 2001
1122 -From: =?UTF-8?q?Amadeusz=20=C5=BBo=C5=82nowski?= <aidecoe@×××××××.name>
1123 -Date: Mon, 29 Aug 2016 22:29:41 +0100
1124 -Subject: [PATCH] Adjust ejabberdctl for Gentoo jabberbase setup
1125 -
1126 -Set SHELL since the generic jabber user used on Gentoo for jabber
1127 -servers doesn't have a valid shell set by default and fix EXEC_CMD
1128 -otherwise it fails with "This account is currently not available" again
1129 -due to jabber not having a valid shell.
1130 -
1131 -Also, workaround the assumption that jabber's $HOME is a directory when
1132 -instead it defaults to /dev/null on Gentoo.
1133 ----
1134 - ejabberdctl.template | 8 ++++++--
1135 - 1 file changed, 6 insertions(+), 2 deletions(-)
1136 -
1137 -diff --git a/ejabberdctl.template b/ejabberdctl.template
1138 -index 5b34ebe..3c080fd 100755
1139 ---- a/ejabberdctl.template
1140 -+++ b/ejabberdctl.template
1141 -@@ -16,6 +16,7 @@ IEX={{bindir}}/iex
1142 - EPMD={{epmd}}
1143 - INSTALLUSER={{installuser}}
1144 - ERL_LIBS={{libdir}}
1145 -+SHELL=/bin/sh
1146 -
1147 - # check the proper system user is used if defined
1148 - if [ "$INSTALLUSER" != "" ] ; then
1149 -@@ -23,11 +24,11 @@ if [ "$INSTALLUSER" != "" ] ; then
1150 - for GID in `id -G`; do
1151 - if [ $GID -eq 0 ] ; then
1152 - INSTALLUSER_HOME=$(getent passwd "$INSTALLUSER" | cut -d: -f6)
1153 -- if [ -n "$INSTALLUSER_HOME" ] && [ ! -d "$INSTALLUSER_HOME" ] ; then
1154 -+ if [ -n "$INSTALLUSER_HOME" ] && [ ! -e "$INSTALLUSER_HOME" ] ; then
1155 - mkdir -p "$INSTALLUSER_HOME"
1156 - chown "$INSTALLUSER" "$INSTALLUSER_HOME"
1157 - fi
1158 -- EXEC_CMD="su $INSTALLUSER -c"
1159 -+ EXEC_CMD="su $INSTALLUSER -p -c"
1160 - fi
1161 - done
1162 - if [ `id -g` -eq `id -g $INSTALLUSER` ] ; then
1163 -@@ -91,6 +92,7 @@ EJABBERD_LOG_PATH=$LOGS_DIR/ejabberd.log
1164 - DATETIME=`date "+%Y%m%d-%H%M%S"`
1165 - ERL_CRASH_DUMP=$LOGS_DIR/erl_crash_$DATETIME.dump
1166 - ERL_INETRC=$ETC_DIR/inetrc
1167 -+HOME=$SPOOL_DIR
1168 -
1169 - # define mnesia options
1170 - MNESIA_OPTS="-mnesia dir \"\\\"$SPOOL_DIR\\\"\" $MNESIA_OPTIONS"
1171 -@@ -149,6 +151,8 @@ export ERL_MAX_ETS_TABLES
1172 - export CONTRIB_MODULES_PATH
1173 - export CONTRIB_MODULES_CONF_DIR
1174 - export ERL_LIBS
1175 -+export HOME
1176 -+export SHELL
1177 -
1178 - shell_escape_str()
1179 - {
1180 ---
1181 -2.9.2
1182 -