1 |
commit: 0912204c84b553560a7a48ad1393b7906cccf351 |
2 |
Author: Amadeusz Żołnowski <aidecoe <AT> gentoo <DOT> org> |
3 |
AuthorDate: Sun May 28 18:06:04 2017 +0000 |
4 |
Commit: Amadeusz Piotr Żołnowski <aidecoe <AT> gentoo <DOT> org> |
5 |
CommitDate: Sun May 28 18:06:26 2017 +0000 |
6 |
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=0912204c |
7 |
|
8 |
net-im/ejabberd: Disable mod_irc if nls USE flag is disbled |
9 |
|
10 |
mod_irc is only required for mod_irc. If nls support is disabled, |
11 |
disable mod_irc in example configuration file and warn user if he/she |
12 |
has mod_irc enabled in configuration. Otherwise ejabberd will fail to |
13 |
start. |
14 |
|
15 |
Gentoo-Bug: 603822 |
16 |
Package-Manager: Portage-2.3.5, Repoman-2.3.2 |
17 |
|
18 |
net-im/ejabberd/ejabberd-16.09.ebuild | 21 +++++++++++++++++++++ |
19 |
net-im/ejabberd/ejabberd-17.01-r1.ebuild | 21 +++++++++++++++++++++ |
20 |
net-im/ejabberd/ejabberd-17.01.ebuild | 21 +++++++++++++++++++++ |
21 |
net-im/ejabberd/ejabberd-17.04.ebuild | 21 +++++++++++++++++++++ |
22 |
4 files changed, 84 insertions(+) |
23 |
|
24 |
diff --git a/net-im/ejabberd/ejabberd-16.09.ebuild b/net-im/ejabberd/ejabberd-16.09.ebuild |
25 |
index 5621156189e..99e4a3aabcc 100644 |
26 |
--- a/net-im/ejabberd/ejabberd-16.09.ebuild |
27 |
+++ b/net-im/ejabberd/ejabberd-16.09.ebuild |
28 |
@@ -107,6 +107,15 @@ customize_epam_wrapper() { |
29 |
|| die 'failed to install epam-wrapper' |
30 |
} |
31 |
|
32 |
+# Disable mod_irc in example configuration file. |
33 |
+disable_mod_irc() { |
34 |
+ local needs_iconv='needs dev-erlang/iconv (+nls USE flag)' |
35 |
+ sed -r \ |
36 |
+ -e "s@^(\s*)(mod_irc\s*:.*$)@\1## \2 # ${needs_iconv}@" \ |
37 |
+ -i "${S}/ejabberd.yml.example" \ |
38 |
+ || die 'failed to modify example config' |
39 |
+} |
40 |
+ |
41 |
# Check if there already exists a certificate. |
42 |
ejabberd_cert_exists() { |
43 |
local cert |
44 |
@@ -138,6 +147,12 @@ get_ejabberd_path() { |
45 |
echo "/usr/$(get_libdir)/${P}" |
46 |
} |
47 |
|
48 |
+# Check whether mod_irc is enabled in ejabberd configuration on target system. |
49 |
+is_mod_irc_enabled() { |
50 |
+ egrep '^(\s*)(mod_irc\s*:.*$)' \ |
51 |
+ "${EROOT%/}${JABBER_ETC}/ejabberd.yml" |
52 |
+} |
53 |
+ |
54 |
# Make ejabberd.service for systemd from upstream provided template. |
55 |
make_ejabberd_service() { |
56 |
sed -r \ |
57 |
@@ -184,6 +199,7 @@ src_prepare() { |
58 |
make_ejabberd_service |
59 |
skip_docs |
60 |
adjust_config |
61 |
+ use nls || disable_mod_irc |
62 |
customize_epam_wrapper "${FILESDIR}/epam-wrapper" |
63 |
|
64 |
# Fix bug #591862. ERL_LIBS should point directly to ejabberd directory |
65 |
@@ -294,4 +310,9 @@ pkg_postinst() { |
66 |
chmod g+r "${EROOT%/}${epam_path}" \ |
67 |
|| die "failed to correct ${epam_path} permissions" |
68 |
fi |
69 |
+ |
70 |
+ if ! use nls && is_mod_irc_enabled; then |
71 |
+ ewarn "nls support (dev-erlang/iconv) is required by mod_irc. Either rebuild ejabberd" |
72 |
+ ewarn "with nls enabled or disable mod_irc in ${EROOT%/}${JABBER_ETC}/ejabberd.yml." |
73 |
+ fi |
74 |
} |
75 |
|
76 |
diff --git a/net-im/ejabberd/ejabberd-17.01-r1.ebuild b/net-im/ejabberd/ejabberd-17.01-r1.ebuild |
77 |
index 6ee9e157db6..7c2e9586ebd 100644 |
78 |
--- a/net-im/ejabberd/ejabberd-17.01-r1.ebuild |
79 |
+++ b/net-im/ejabberd/ejabberd-17.01-r1.ebuild |
80 |
@@ -108,6 +108,15 @@ customize_epam_wrapper() { |
81 |
|| die 'failed to install epam-wrapper' |
82 |
} |
83 |
|
84 |
+# Disable mod_irc in example configuration file. |
85 |
+disable_mod_irc() { |
86 |
+ local needs_iconv='needs dev-erlang/iconv (+nls USE flag)' |
87 |
+ sed -r \ |
88 |
+ -e "s@^(\s*)(mod_irc\s*:.*$)@\1## \2 # ${needs_iconv}@" \ |
89 |
+ -i "${S}/ejabberd.yml.example" \ |
90 |
+ || die 'failed to modify example config' |
91 |
+} |
92 |
+ |
93 |
# Check if there already exists a certificate. |
94 |
ejabberd_cert_exists() { |
95 |
local cert |
96 |
@@ -139,6 +148,12 @@ get_ejabberd_path() { |
97 |
echo "/usr/$(get_libdir)/${P}" |
98 |
} |
99 |
|
100 |
+# Check whether mod_irc is enabled in ejabberd configuration on target system. |
101 |
+is_mod_irc_enabled() { |
102 |
+ egrep '^(\s*)(mod_irc\s*:.*$)' \ |
103 |
+ "${EROOT%/}${JABBER_ETC}/ejabberd.yml" |
104 |
+} |
105 |
+ |
106 |
# Make ejabberd.service for systemd from upstream provided template. |
107 |
make_ejabberd_service() { |
108 |
sed -r \ |
109 |
@@ -198,6 +213,7 @@ src_prepare() { |
110 |
make_ejabberd_service |
111 |
skip_docs |
112 |
adjust_config |
113 |
+ use nls || disable_mod_irc |
114 |
customize_epam_wrapper "${FILESDIR}/epam-wrapper" |
115 |
|
116 |
rebar_fix_include_path fast_xml |
117 |
@@ -299,4 +315,9 @@ pkg_postinst() { |
118 |
if ! ejabberd_cert_exists; then |
119 |
ejabberd_cert_install |
120 |
fi |
121 |
+ |
122 |
+ if ! use nls && is_mod_irc_enabled; then |
123 |
+ ewarn "nls support (dev-erlang/iconv) is required by mod_irc. Either rebuild ejabberd" |
124 |
+ ewarn "with nls enabled or disable mod_irc in ${EROOT%/}${JABBER_ETC}/ejabberd.yml." |
125 |
+ fi |
126 |
} |
127 |
|
128 |
diff --git a/net-im/ejabberd/ejabberd-17.01.ebuild b/net-im/ejabberd/ejabberd-17.01.ebuild |
129 |
index a55828a551e..061059b6183 100644 |
130 |
--- a/net-im/ejabberd/ejabberd-17.01.ebuild |
131 |
+++ b/net-im/ejabberd/ejabberd-17.01.ebuild |
132 |
@@ -108,6 +108,15 @@ customize_epam_wrapper() { |
133 |
|| die 'failed to install epam-wrapper' |
134 |
} |
135 |
|
136 |
+# Disable mod_irc in example configuration file. |
137 |
+disable_mod_irc() { |
138 |
+ local needs_iconv='needs dev-erlang/iconv (+nls USE flag)' |
139 |
+ sed -r \ |
140 |
+ -e "s@^(\s*)(mod_irc\s*:.*$)@\1## \2 # ${needs_iconv}@" \ |
141 |
+ -i "${S}/ejabberd.yml.example" \ |
142 |
+ || die 'failed to modify example config' |
143 |
+} |
144 |
+ |
145 |
# Check if there already exists a certificate. |
146 |
ejabberd_cert_exists() { |
147 |
local cert |
148 |
@@ -139,6 +148,12 @@ get_ejabberd_path() { |
149 |
echo "/usr/$(get_libdir)/${P}" |
150 |
} |
151 |
|
152 |
+# Check whether mod_irc is enabled in ejabberd configuration on target system. |
153 |
+is_mod_irc_enabled() { |
154 |
+ egrep '^(\s*)(mod_irc\s*:.*$)' \ |
155 |
+ "${EROOT%/}${JABBER_ETC}/ejabberd.yml" |
156 |
+} |
157 |
+ |
158 |
# Make ejabberd.service for systemd from upstream provided template. |
159 |
make_ejabberd_service() { |
160 |
sed -r \ |
161 |
@@ -185,6 +200,7 @@ src_prepare() { |
162 |
make_ejabberd_service |
163 |
skip_docs |
164 |
adjust_config |
165 |
+ use nls || disable_mod_irc |
166 |
customize_epam_wrapper "${FILESDIR}/epam-wrapper" |
167 |
|
168 |
rebar_fix_include_path fast_xml |
169 |
@@ -298,4 +314,9 @@ pkg_postinst() { |
170 |
chmod g+r "${EROOT%/}${epam_path}" \ |
171 |
|| die "failed to correct ${epam_path} permissions" |
172 |
fi |
173 |
+ |
174 |
+ if ! use nls && is_mod_irc_enabled; then |
175 |
+ ewarn "nls support (dev-erlang/iconv) is required by mod_irc. Either rebuild ejabberd" |
176 |
+ ewarn "with nls enabled or disable mod_irc in ${EROOT%/}${JABBER_ETC}/ejabberd.yml." |
177 |
+ fi |
178 |
} |
179 |
|
180 |
diff --git a/net-im/ejabberd/ejabberd-17.04.ebuild b/net-im/ejabberd/ejabberd-17.04.ebuild |
181 |
index 8b82f975af8..1cec62f2eba 100644 |
182 |
--- a/net-im/ejabberd/ejabberd-17.04.ebuild |
183 |
+++ b/net-im/ejabberd/ejabberd-17.04.ebuild |
184 |
@@ -108,6 +108,15 @@ customize_epam_wrapper() { |
185 |
|| die 'failed to install epam-wrapper' |
186 |
} |
187 |
|
188 |
+# Disable mod_irc in example configuration file. |
189 |
+disable_mod_irc() { |
190 |
+ local needs_iconv='needs dev-erlang/iconv (+nls USE flag)' |
191 |
+ sed -r \ |
192 |
+ -e "s@^(\s*)(mod_irc\s*:.*$)@\1## \2 # ${needs_iconv}@" \ |
193 |
+ -i "${S}/ejabberd.yml.example" \ |
194 |
+ || die 'failed to modify example config' |
195 |
+} |
196 |
+ |
197 |
# Check if there already exists a certificate. |
198 |
ejabberd_cert_exists() { |
199 |
local cert |
200 |
@@ -139,6 +148,12 @@ get_ejabberd_path() { |
201 |
echo "/usr/$(get_libdir)/${P}" |
202 |
} |
203 |
|
204 |
+# Check whether mod_irc is enabled in ejabberd configuration on target system. |
205 |
+is_mod_irc_enabled() { |
206 |
+ egrep '^(\s*)(mod_irc\s*:.*$)' \ |
207 |
+ "${EROOT%/}${JABBER_ETC}/ejabberd.yml" |
208 |
+} |
209 |
+ |
210 |
# Make ejabberd.service for systemd from upstream provided template. |
211 |
make_ejabberd_service() { |
212 |
sed -r \ |
213 |
@@ -198,6 +213,7 @@ src_prepare() { |
214 |
make_ejabberd_service |
215 |
skip_docs |
216 |
adjust_config |
217 |
+ use nls || disable_mod_irc |
218 |
customize_epam_wrapper "${FILESDIR}/epam-wrapper" |
219 |
|
220 |
rebar_fix_include_path fast_xml |
221 |
@@ -300,4 +316,9 @@ pkg_postinst() { |
222 |
if ! ejabberd_cert_exists; then |
223 |
ejabberd_cert_install |
224 |
fi |
225 |
+ |
226 |
+ if ! use nls && is_mod_irc_enabled; then |
227 |
+ ewarn "nls support (dev-erlang/iconv) is required by mod_irc. Either rebuild ejabberd" |
228 |
+ ewarn "with nls enabled or disable mod_irc in ${EROOT%/}${JABBER_ETC}/ejabberd.yml." |
229 |
+ fi |
230 |
} |