|
|
cec2678 |
%global _hardened_build 1
|
|
Peter Lemenkov |
d63babb |
%global srcname ejabberd
|
|
|
145e11b |
|
|
|
8c6bed6 |
# Since we require the version in both BuildRequires and Requires, let's make these variables for
|
|
|
8c6bed6 |
# easier maintenance.
|
|
|
be6016c |
%global base64url_ver 1.0
|
|
|
ee4aed9 |
%global cache_tab_ver 1.0.25
|
|
|
ee4aed9 |
%global eimp_ver 1.0.17
|
|
|
ee4aed9 |
%global epam_ver 1.0.9
|
|
|
ee4aed9 |
%global esip_ver 1.0.37
|
|
|
ee4aed9 |
%global ezlib_ver 1.0.8
|
|
|
ee4aed9 |
%global fast_tls_ver 1.1.8
|
|
|
ee4aed9 |
%global fast_xml_ver 1.1.43
|
|
|
ee4aed9 |
%global fast_yaml_ver 1.0.27
|
|
|
62e0873 |
%global idna_ver 6.0.0
|
|
|
ee4aed9 |
%global jiffy_ver 1.0.5
|
|
|
be6016c |
%global jose_ver 1.9.0
|
|
|
8c6bed6 |
%global luerl_ver 0.3
|
|
|
ee4aed9 |
%global mqtree_ver 1.0.10
|
|
|
ee4aed9 |
%global p1_acme_ver 1.0.8
|
|
|
ee4aed9 |
%global p1_mysql_ver 1.0.16
|
|
|
ee4aed9 |
%global p1_oauth2_ver 0.6.7
|
|
|
ee4aed9 |
%global p1_pgsql_ver 1.1.10
|
|
|
ee4aed9 |
%global p1_utils_ver 1.0.20
|
|
|
ee4aed9 |
%global pkix_ver 1.0.6
|
|
|
ee4aed9 |
%global stringprep_ver 1.0.22
|
|
|
ee4aed9 |
%global stun_ver 1.0.37
|
|
|
ee4aed9 |
%global xmpp_ver 1.4.9
|
|
|
ee4aed9 |
%global yconf_ver 1.0.7
|
|
|
8c6bed6 |
|
|
|
f0e0ee4 |
# Define SELinux policy variables
|
|
|
f0e0ee4 |
%global selinuxtype targeted
|
|
|
f0e0ee4 |
%global selinux_policyver 3.14.2
|
|
|
f0e0ee4 |
%global moduletype contrib
|
|
|
f0e0ee4 |
%global modulename ejabberd
|
|
|
f0e0ee4 |
|
|
|
9fe454b |
|
|
|
73b15bb |
Name: ejabberd
|
|
|
ee4aed9 |
Version: 20.07
|
|
|
d480662 |
Release: 5%{?dist}
|
|
|
23f97d5 |
BuildArch: noarch
|
|
|
73b15bb |
|
|
|
e15daba |
License: GPLv2+
|
|
|
40198c6 |
Summary: A distributed, fault-tolerant Jabber/XMPP server
|
|
|
c22efa0 |
URL: https://www.ejabberd.im/
|
|
|
6f00c58 |
VCS: scm:git:https://github.com/processone/ejabberd.git
|
|
|
e9cdddd |
Source0: https://github.com/processone/%{name}/archive/%{version}/%{name}-%{version}.tar.gz
|
|
|
420ea66 |
Source2: ejabberd.logrotate
|
|
|
73b15bb |
|
|
|
1519101 |
# Support for systemd
|
|
|
6f00c58 |
Source4: ejabberd.service
|
|
|
1519101 |
|
|
|
6406473 |
# PAM support
|
|
|
ed0d38d |
Source9: ejabberdctl.pam
|
|
|
84a00d0 |
Source11: ejabberd.pam
|
|
|
ed0d38d |
|
|
|
2309409 |
# polkit support
|
|
|
6f00c58 |
Source12: ejabberdctl.polkit.actions
|
|
|
6f00c58 |
Source13: ejabberdctl.polkit.rules
|
|
|
e9cdddd |
# SELinux module
|
|
|
e9cdddd |
Source14: ejabberd.te
|
|
|
e9cdddd |
Source15: ejabberd.fc
|
|
|
e9cdddd |
Source16: ejabberd.if
|
|
|
2309409 |
|
|
|
145e11b |
|
|
|
145e11b |
# Fedora-specific
|
|
|
c4fced3 |
Patch3: ejabberd-0003-Install-into-BINDIR-instead-of-SBINDIR.patch
|
|
|
145e11b |
# Fedora-specific
|
|
|
c4fced3 |
Patch4: ejabberd-0004-Enable-systemd-notification-if-available.patch
|
|
|
e9cdddd |
|
|
|
e9cdddd |
|
|
|
e9cdddd |
BuildRequires: elixir >= 1.4.4
|
|
|
be6016c |
BuildRequires: erlang-base64url >= %{base64url_ver}
|
|
|
8c6bed6 |
BuildRequires: erlang-cache_tab >= %{cache_tab_ver}
|
|
|
8c6bed6 |
BuildRequires: erlang-eimp >= %{eimp_ver}
|
|
|
8c6bed6 |
BuildRequires: erlang-epam >= %{epam_ver}
|
|
|
8c6bed6 |
BuildRequires: erlang-esip >= %{esip_ver}
|
|
|
8c6bed6 |
BuildRequires: erlang-ezlib >= %{ezlib_ver}
|
|
|
8c6bed6 |
BuildRequires: erlang-fast_tls >= %{fast_tls_ver}
|
|
|
8c6bed6 |
BuildRequires: erlang-fast_xml >= %{fast_xml_ver}
|
|
|
8c6bed6 |
BuildRequires: erlang-fast_yaml >= %{fast_yaml_ver}
|
|
|
62e0873 |
BuildRequires: erlang-idna >= %{idna_ver}
|
|
|
ee4aed9 |
BuildRequires: erlang-jiffy >= %{jiffy_ver}
|
|
|
be6016c |
BuildRequires: erlang-jose >= %{jose_ver}
|
|
|
cc06972 |
BuildRequires: erlang-lager >= 3.6
|
|
|
8c6bed6 |
BuildRequires: erlang-luerl >= %{luerl_ver}
|
|
|
d3b8b79 |
BuildRequires: erlang-mqtree >= %{mqtree_ver}
|
|
|
c4fced3 |
BuildRequires: erlang-odbc
|
|
|
62e0873 |
BuildRequires: erlang-p1_acme >= %{p1_acme_ver}
|
|
|
8c6bed6 |
BuildRequires: erlang-p1_mysql >= %{p1_mysql_ver}
|
|
|
d321ebf |
BuildRequires: erlang-p1_oauth2 >= %{p1_oauth2_ver}
|
|
|
8c6bed6 |
BuildRequires: erlang-p1_pgsql >= %{p1_pgsql_ver}
|
|
|
8c6bed6 |
BuildRequires: erlang-p1_utils >= %{p1_utils_ver}
|
|
|
cc06972 |
BuildRequires: erlang-pkix >= %{pkix_ver}
|
|
|
145e11b |
BuildRequires: erlang-rebar
|
|
|
c4fced3 |
BuildRequires: erlang-sd_notify
|
|
|
8c6bed6 |
BuildRequires: erlang-stringprep >= %{stringprep_ver}
|
|
|
8c6bed6 |
BuildRequires: erlang-stun >= %{stun_ver}
|
|
|
8c6bed6 |
BuildRequires: erlang-xmpp >= %{xmpp_ver}
|
|
|
62e0873 |
BuildRequires: erlang-yconf >= %{yconf_ver}
|
|
|
4a9295c |
BuildRequires: expat-devel >= 1.95
|
|
|
928f515 |
BuildRequires: git
|
|
|
4a9295c |
BuildRequires: libyaml-devel >= 0.1.4
|
|
|
4a9295c |
BuildRequires: openssl-devel >= 1.0.0
|
|
|
4a9295c |
BuildRequires: pam-devel
|
|
|
e9cdddd |
BuildRequires: selinux-policy-devel
|
|
|
6f00c58 |
|
|
|
25bb08c |
BuildRequires: autoconf
|
|
|
25bb08c |
BuildRequires: automake
|
|
|
35a1293 |
BuildRequires: make
|
|
|
73b15bb |
|
|
|
d8d4245 |
# For creating user and group
|
|
|
25bb08c |
Requires(pre): shadow-utils
|
|
|
d8d4245 |
|
|
|
2b0b4b0 |
Requires(post): /usr/bin/openssl
|
|
|
10a8041 |
Requires(post): systemd
|
|
|
10a8041 |
Requires(preun): systemd
|
|
|
10a8041 |
Requires(postun): systemd
|
|
|
73b15bb |
|
|
|
2309409 |
Provides: user(%{name})
|
|
|
2309409 |
Provides: group(%{name})
|
|
|
2309409 |
|
|
|
e880009 |
Requires: ejabberd-selinux == %{version}-%{release}
|
|
|
4a9295c |
# From rebar
|
|
|
e880009 |
Requires: elixir >= 1.4.4
|
|
|
be6016c |
Requires: erlang-base64url >= %{base64url_ver}
|
|
|
8c6bed6 |
Requires: erlang-cache_tab >= %{cache_tab_ver}
|
|
|
8c6bed6 |
Requires: erlang-eimp >= %{eimp_ver}
|
|
|
8c6bed6 |
Requires: erlang-epam >= %{epam_ver}
|
|
|
8c6bed6 |
Requires: erlang-esip >= %{esip_ver}
|
|
|
8c6bed6 |
Requires: erlang-ezlib >= %{ezlib_ver}
|
|
|
8c6bed6 |
Requires: erlang-fast_tls >= %{fast_tls_ver}
|
|
|
8c6bed6 |
Requires: erlang-fast_xml >= %{fast_xml_ver}
|
|
|
8c6bed6 |
Requires: erlang-fast_yaml >= %{fast_yaml_ver}
|
|
|
62e0873 |
Requires: erlang-idna >= %{idna_ver}
|
|
|
ee4aed9 |
Requires: erlang-jiffy >= %{jiffy_ver}
|
|
|
be6016c |
Requires: erlang-jose >= %{jose_ver}
|
|
|
8c6bed6 |
Requires: erlang-luerl >= %{luerl_ver}
|
|
|
d3b8b79 |
Requires: erlang-mqtree >= %{mqtree_ver}
|
|
|
3404dc0 |
Requires: erlang-os_mon
|
|
|
62e0873 |
Requires: erlang-p1_acme >= %{p1_acme_ver}
|
|
|
8c6bed6 |
Requires: erlang-p1_mysql >= %{p1_mysql_ver}
|
|
|
874622b |
Requires: erlang-p1_oauth2 >= %{p1_oauth2_ver}
|
|
|
8c6bed6 |
Requires: erlang-p1_pgsql >= %{p1_pgsql_ver}
|
|
|
8c6bed6 |
Requires: erlang-p1_utils >= %{p1_utils_ver}
|
|
|
cc06972 |
Requires: erlang-pkix >= %{pkix_ver}
|
|
|
8c6bed6 |
Requires: erlang-stringprep >= %{stringprep_ver}
|
|
|
8c6bed6 |
Requires: erlang-stun >= %{stun_ver}
|
|
|
8c6bed6 |
Requires: erlang-xmpp >= %{xmpp_ver}
|
|
|
62e0873 |
Requires: erlang-yconf >= %{yconf_ver}
|
|
|
a071f0d |
# We install a logrotate.d file
|
|
|
a071f0d |
Requires: logrotate
|
|
|
2309409 |
# for /usr/bin/pkexec
|
|
|
4a9295c |
Requires: polkit
|
|
|
9dca01c |
# for flock in ejabberdctl
|
|
|
25bb08c |
Requires: util-linux
|
|
|
63ecd49 |
|
|
|
be7ef5e |
|
|
|
73b15bb |
%description
|
|
|
73b15bb |
ejabberd is a Free and Open Source distributed fault-tolerant
|
|
|
73b15bb |
Jabber/XMPP server. It is mostly written in Erlang, and runs on many
|
|
|
73b15bb |
platforms (tested on Linux, FreeBSD, NetBSD, Solaris, Mac OS X and
|
|
|
73b15bb |
Windows NT/2000/XP).
|
|
|
73b15bb |
|
|
|
73b15bb |
|
|
|
e9cdddd |
%package selinux
|
|
|
e9cdddd |
BuildArch: noarch
|
|
|
e9cdddd |
|
|
|
e9cdddd |
Summary: SELinux policy for ejabberd
|
|
|
e9cdddd |
|
|
|
f0e0ee4 |
Requires: selinux-policy >= %{selinux_policyver}
|
|
|
f0e0ee4 |
Requires(post): selinux-policy-base >= %{selinux_policyver}
|
|
|
f0e0ee4 |
Requires(post): libselinux-utils
|
|
|
f0e0ee4 |
Requires(post): policycoreutils
|
|
|
f0e0ee4 |
Requires(post): policycoreutils-python-utils
|
|
|
e9cdddd |
|
|
|
e9cdddd |
|
|
|
e9cdddd |
%description selinux
|
|
|
e9cdddd |
This is the SELinux policy for ejabberd.
|
|
|
57a13ca |
|
|
|
e9cdddd |
|
|
|
e9cdddd |
%prep
|
|
|
e9cdddd |
%autosetup -p1
|
|
|
a1bb46c |
|
|
|
40198c6 |
# Upstream seems to import erlang-xmpp and erlang-fast_xml in a way that isn't compatible with them
|
|
|
40198c6 |
# being system libraries. We need to patch the include statements to fix this.
|
|
|
40198c6 |
# https://github.com/processone/ejabberd/pull/1446/
|
|
|
40198c6 |
find . -name "*.hrl" | xargs sed -i \
|
|
|
40198c6 |
"s/include(\"fxml.hrl/include_lib(\"fast_xml\/include\/fxml.hrl/"
|
|
|
40198c6 |
find . -name "*.erl" | xargs sed -i "s/include(\"jid.hrl/include_lib(\"xmpp\/include\/jid.hrl/"
|
|
|
40198c6 |
find . -name "*.hrl" | xargs sed -i "s/include(\"ns.hrl/include_lib(\"xmpp\/include\/ns.hrl/"
|
|
|
40198c6 |
find . -name "*.erl" | xargs sed -i "s/include(\"xmpp.hrl/include_lib(\"xmpp\/include\/xmpp.hrl/"
|
|
|
40198c6 |
find . -name "*.hrl" | xargs sed -i \
|
|
|
40198c6 |
"s/include(\"xmpp_codec.hrl/include_lib(\"xmpp\/include\/xmpp_codec.hrl/"
|
|
|
40198c6 |
|
|
|
e9cdddd |
# A few dependencies are configured to be found in the deps folder instead of in system libs
|
|
|
e9cdddd |
# https://github.com/processone/ejabberd/issues/1850
|
|
|
e9cdddd |
perl -p -i -e "s|deps/p1_utils/include|$(rpm -ql erlang-p1_utils | grep -E '/include$' )|g" rebar.config
|
|
|
e9cdddd |
perl -p -i -e "s|deps/fast_xml/include|$(rpm -ql erlang-fast_xml | grep -E '/include$' )|g" rebar.config
|
|
|
e9cdddd |
perl -p -i -e "s|deps/xmpp/include|$(rpm -ql erlang-xmpp | grep -E '/include$' )|g" rebar.config
|
|
|
e9cdddd |
|
|
|
e9cdddd |
cp %{S:14} %{S:15} %{S:16} .
|
|
|
e9cdddd |
|
|
|
9dca01c |
|
|
|
73b15bb |
%build
|
|
|
0f06d1e |
autoreconf -ivf
|
|
|
145e11b |
|
|
|
be6016c |
%configure --disable-graphics --enable-odbc --enable-mysql --enable-pgsql --enable-pam --enable-zlib --enable-debug --libdir=%{_libdir}/erlang/lib/ --with-erlang=%{_libdir}/erlang/ --enable-system-deps --enable-stun
|
|
Peter Lemenkov |
d63babb |
|
|
Peter Lemenkov |
d63babb |
%{erlang_compile}
|
|
|
73b15bb |
|
|
|
e9cdddd |
# Build the SELinux policy
|
|
|
e9cdddd |
make NAME=ejabberd -f /usr/share/selinux/devel/Makefile DISTRO=fedora%{fedora}
|
|
|
f0e0ee4 |
bzip2 ejabberd.pp
|
|
|
e9cdddd |
|
|
|
9dca01c |
|
|
|
73b15bb |
%install
|
|
Peter Lemenkov |
d63babb |
%{erlang_install}
|
|
Peter Lemenkov |
d63babb |
|
|
|
a647711 |
sed -e "s*{{rootdir}}*%{_prefix}*" \
|
|
|
a371d5c |
-e "s*{{installuser}}*%{name}*" \
|
|
|
a647711 |
-e "s*{{bindir}}*%{_bindir}*" \
|
|
|
a647711 |
-e "s*{{libdir}}*%{_erllibdir}*" \
|
|
|
a647711 |
-e "s*{{sysconfdir}}*%{_sysconfdir}*" \
|
|
|
a647711 |
-e "s*{{localstatedir}}*/var*" \
|
|
|
a647711 |
-e "s*{{docdir}}*%{_datadir}/doc/%{name}*" \
|
|
|
350e655 |
-e "s*{{erl}}*%{_bindir}/erl*" \
|
|
|
350e655 |
-e "s*{{epmd}}*%{_bindir}/epmd*" ejabberdctl.template \
|
|
Peter Lemenkov |
d63babb |
> ejabberdctl.example
|
|
Peter Lemenkov |
d63babb |
|
|
Peter Lemenkov |
d63babb |
install -d -m 0750 %{buildroot}%{_sysconfdir}/%{name}
|
|
Peter Lemenkov |
d63babb |
install -D -p -m 0644 ejabberd.yml.example %{buildroot}%{_sysconfdir}/%{name}/ejabberd.yml
|
|
Peter Lemenkov |
d63babb |
install -D -p -m 0644 ejabberdctl.cfg.example %{buildroot}%{_sysconfdir}/%{name}/ejabberdctl.cfg
|
|
Peter Lemenkov |
d63babb |
install -D -p -m 0644 inetrc %{buildroot}%{_sysconfdir}/%{name}/inetrc
|
|
Peter Lemenkov |
d63babb |
|
|
|
4c04c7f |
install -D -p -m 0755 ejabberdctl.example %{buildroot}%{_bindir}/ejabberdctl
|
|
Peter Lemenkov |
d63babb |
|
|
Peter Lemenkov |
d63babb |
install -d -m 0750 %{buildroot}/var/lib/ejabberd
|
|
Peter Lemenkov |
d63babb |
install -d -m 0750 %{buildroot}/var/lock/ejabberdctl
|
|
Peter Lemenkov |
d63babb |
install -d -m 0750 %{buildroot}/var/log/ejabberd
|
|
|
73b15bb |
|
|
|
63ecd49 |
# fix example SSL certificate path to real one, which we created recently (see above)
|
|
|
145e11b |
%{__perl} -pi -e 's!/path/to/ssl.pem!/etc/ejabberd/ejabberd.pem!g' %{buildroot}/etc/ejabberd/ejabberd.yml
|
|
|
73b15bb |
|
|
Peter Lemenkov |
d63babb |
install -D -p -m 0755 tools/captcha.sh %{buildroot}%{_erllibdir}/%{name}-%{version}/priv/bin/captcha.sh
|
|
|
838ab7b |
# fix captcha path
|
|
|
145e11b |
%{__perl} -pi -e 's!/lib/ejabberd/priv/bin/captcha.sh!%{_libdir}/%{name}/priv/bin/captcha.sh!g' %{buildroot}/etc/ejabberd/ejabberd.yml
|
|
|
73b15bb |
|
|
|
ed0d38d |
install -D -p -m 0644 %{S:9} %{buildroot}%{_sysconfdir}/pam.d/ejabberdctl
|
|
|
ddc001a |
install -D -p -m 0644 %{S:11} %{buildroot}%{_sysconfdir}/pam.d/ejabberd
|
|
|
ed0d38d |
|
|
|
10a8041 |
# install systemd entry
|
|
|
10a8041 |
install -D -m 0644 -p %{S:4} %{buildroot}%{_unitdir}/%{name}.service
|
|
|
73b15bb |
|
|
|
c30dbec |
# install config for logrotate
|
|
|
c30dbec |
install -D -p -m 0644 %{S:2} %{buildroot}%{_sysconfdir}/logrotate.d/ejabberd
|
|
|
c30dbec |
|
|
|
145e11b |
# create room for additional files (such as SQL schemas)
|
|
Peter Lemenkov |
d63babb |
install -d -m 0755 %{buildroot}%{_erllibdir}/%{name}-%{version}/priv/sql/
|
|
|
63ecd49 |
# install sql-scripts for creating db schemes for various RDBMS
|
|
Peter Lemenkov |
d63babb |
install -p -m 0644 sql/lite.sql %{buildroot}%{_erllibdir}/%{name}-%{version}/priv/sql/
|
|
Peter Lemenkov |
d63babb |
install -p -m 0644 sql/mssql.sql %{buildroot}%{_erllibdir}/%{name}-%{version}/priv/sql/
|
|
Peter Lemenkov |
d63babb |
install -p -m 0644 sql/mysql.sql %{buildroot}%{_erllibdir}/%{name}-%{version}/priv/sql/
|
|
Peter Lemenkov |
d63babb |
install -p -m 0644 sql/pg.sql %{buildroot}%{_erllibdir}/%{name}-%{version}/priv/sql/
|
|
|
5a46a66 |
# Install css files
|
|
|
5a46a66 |
install -d -m 0755 %{buildroot}%{_erllibdir}/%{name}-%{version}/priv/css
|
|
|
5a46a66 |
install -p -m 0644 priv/css/* %{buildroot}%{_erllibdir}/%{name}-%{version}/priv/css/
|
|
|
5a46a66 |
# Install img files
|
|
|
5a46a66 |
install -d -m 0755 %{buildroot}%{_erllibdir}/%{name}-%{version}/priv/img
|
|
|
5a46a66 |
install -p -m 0644 priv/img/* %{buildroot}%{_erllibdir}/%{name}-%{version}/priv/img/
|
|
|
5a46a66 |
# Install js files
|
|
|
5a46a66 |
install -d -m 0755 %{buildroot}%{_erllibdir}/%{name}-%{version}/priv/js
|
|
|
5a46a66 |
install -p -m 0644 priv/js/* %{buildroot}%{_erllibdir}/%{name}-%{version}/priv/js/
|
|
|
5a46a66 |
# Install lua files
|
|
|
5a46a66 |
install -d -m 0755 %{buildroot}%{_erllibdir}/%{name}-%{version}/priv/lua
|
|
|
5a46a66 |
install -p -m 0644 priv/lua/* %{buildroot}%{_erllibdir}/%{name}-%{version}/priv/lua/
|
|
Peter Lemenkov |
d63babb |
|
|
Peter Lemenkov |
d63babb |
install -d -m 0755 %{buildroot}%{_erllibdir}/%{name}-%{version}/priv/msgs/
|
|
Peter Lemenkov |
d63babb |
install -p -m 0644 priv/msgs/*.msg %{buildroot}%{_erllibdir}/%{name}-%{version}/priv/msgs/
|
|
|
145e11b |
|
|
|
be6016c |
# Install man page
|
|
|
be6016c |
install -d -m 0755 %{buildroot}%{_mandir}/man5/
|
|
|
be6016c |
install -p -m 0644 man/ejabberd.yml.5 %{buildroot}%{_mandir}/man5/
|
|
|
be6016c |
|
|
|
145e11b |
# Install polkit-related files
|
|
|
5357d2d |
install -D -p -m 0644 %{S:12} %{buildroot}%{_datadir}/polkit-1/actions/ejabberdctl.policy
|
|
|
5357d2d |
install -D -p -m 0644 %{S:13} %{buildroot}%{_datadir}/polkit-1/rules.d/51-ejabberdctl.rules
|
|
|
10a8041 |
|
|
|
e9cdddd |
# Install the SELinux policy
|
|
|
f0e0ee4 |
install -d %{buildroot}%{_datadir}/selinux/packages
|
|
|
f0e0ee4 |
install -d -p %{buildroot}%{_datadir}/selinux/devel/include/%{moduletype}
|
|
|
e9cdddd |
|
|
|
f0e0ee4 |
install -p -m 0644 ejabberd.if %{buildroot}%{_datadir}/selinux/devel/include/%{moduletype}
|
|
|
f0e0ee4 |
install -p -m 0644 ejabberd.pp.bz2 %{buildroot}%{_datadir}/selinux/packages
|
|
|
e9cdddd |
|
|
|
10a8041 |
|
|
|
40198c6 |
%check
|
|
|
40198c6 |
%{rebar_eunit}
|
|
|
40198c6 |
|
|
|
40198c6 |
|
|
|
9dca01c |
%pre
|
|
|
d8d4245 |
getent group %{name} >/dev/null || groupadd -r %{name}
|
|
|
d8d4245 |
getent passwd %{name} >/dev/null || \
|
|
|
d8d4245 |
useradd -r -g %{name} -d %{_localstatedir}/lib/%{name} -s /sbin/nologin -M \
|
|
|
d8d4245 |
-c "ejabberd" %{name} 2>/dev/null || :
|
|
|
9dca01c |
|
|
|
57a13ca |
|
|
|
57a13ca |
if [ $1 -gt 1 ]; then
|
|
|
25bb08c |
# we should backup DB in every upgrade
|
|
|
25bb08c |
if ejabberdctl status >/dev/null ; then
|
|
|
25bb08c |
# Use timestamp to make database restoring easier
|
|
|
25bb08c |
TIME=$(date +%%Y-%%m-%%dT%%H:%%M:%%S)
|
|
|
25bb08c |
BACKUPDIR=$(mktemp -d -p /var/tmp/ ejabberd-$TIME.XXXXXX)
|
|
|
25bb08c |
chown ejabberd:ejabberd $BACKUPDIR
|
|
|
25bb08c |
BACKUP=$BACKUPDIR/ejabberd-database
|
|
|
25bb08c |
ejabberdctl backup $BACKUP
|
|
|
25bb08c |
# Change ownership to root:root because ejabberd user might be
|
|
|
25bb08c |
# removed on package removal.
|
|
|
25bb08c |
chown -R root:root $BACKUPDIR
|
|
|
25bb08c |
chmod 700 $BACKUPDIR
|
|
|
25bb08c |
echo
|
|
|
25bb08c |
echo The ejabberd database has been backed up to $BACKUP.
|
|
|
25bb08c |
echo
|
|
|
25bb08c |
fi
|
|
|
25bb08c |
|
|
|
25bb08c |
# fix cookie path (since ver. 2.1.0 cookie stored in /var/lib/ejabberd/spool
|
|
|
25bb08c |
# rather than in /var/lib/ejabberd
|
|
|
25bb08c |
if [ -f /var/lib/ejabberd/spool/.erlang.cookie ]; then
|
|
|
25bb08c |
cp -pu /var/lib/ejabberd/{spool/,}.erlang.cookie
|
|
|
25bb08c |
echo
|
|
|
25bb08c |
echo The ejabberd cookie file was moved again.
|
|
|
25bb08c |
echo Please delete old one from /var/lib/ejabberd/spool/.erlang.cookie
|
|
|
25bb08c |
echo
|
|
|
25bb08c |
fi
|
|
|
9dca01c |
fi
|
|
|
9dca01c |
|
|
|
9dca01c |
|
|
|
f0e0ee4 |
%pre selinux
|
|
|
f0e0ee4 |
%selinux_relabel_pre -s %{selinuxtype}
|
|
|
f0e0ee4 |
|
|
|
f0e0ee4 |
|
|
|
9dca01c |
%post
|
|
|
10a8041 |
%systemd_post %{name}.service
|
|
|
9dca01c |
|
|
|
57a13ca |
# Create SSL certificate with default values if it doesn't exist
|
|
|
9dca01c |
(cd /etc/ejabberd
|
|
|
9dca01c |
if [ ! -f ejabberd.pem ]
|
|
|
9dca01c |
then
|
|
|
9dca01c |
echo "Generating SSL certificate /etc/ejabberd/ejabberd.pem..."
|
|
|
9dca01c |
HOSTNAME=$(hostname -s 2>/dev/null || echo "localhost")
|
|
|
9dca01c |
DOMAINNAME=$(hostname -d 2>/dev/null || echo "localdomain")
|
|
|
9dca01c |
openssl req -new -x509 -days 365 -nodes -out ejabberd.pem \
|
|
|
9dca01c |
-keyout ejabberd.pem > /dev/null 2>&1 <<+++
|
|
|
9dca01c |
.
|
|
|
9dca01c |
.
|
|
|
9dca01c |
.
|
|
|
9dca01c |
$DOMAINNAME
|
|
|
9dca01c |
$HOSTNAME
|
|
|
9dca01c |
ejabberd
|
|
|
9dca01c |
root@$HOSTNAME.$DOMAINNAME
|
|
|
9dca01c |
+++
|
|
|
9dca01c |
chown ejabberd:ejabberd ejabberd.pem
|
|
|
9dca01c |
chmod 600 ejabberd.pem
|
|
|
9dca01c |
fi)
|
|
|
9dca01c |
|
|
|
9dca01c |
|
|
|
e9cdddd |
%post selinux
|
|
|
f0e0ee4 |
%selinux_modules_install -s %{selinuxtype} %{_datadir}/selinux/packages/%{modulename}.pp.bz2
|
|
|
e9cdddd |
|
|
|
e9cdddd |
|
|
|
e9cdddd |
%posttrans selinux
|
|
|
e9cdddd |
/usr/sbin/restorecon -i -R /var/lib/ejabberd/
|
|
|
e9cdddd |
/usr/sbin/restorecon -i -R /var/log/ejabberd/
|
|
|
f0e0ee4 |
%selinux_relabel_post -s %{selinuxtype}
|
|
|
e9cdddd |
|
|
|
e9cdddd |
|
|
|
9dca01c |
%preun
|
|
|
10a8041 |
%systemd_preun %{name}.service
|
|
|
9dca01c |
|
|
|
9dca01c |
|
|
|
9dca01c |
%postun
|
|
|
10a8041 |
%systemd_postun_with_restart %{name}.service
|
|
|
73b15bb |
|
|
|
9dca01c |
|
|
|
f0e0ee4 |
%postun selinux
|
|
|
f0e0ee4 |
if [ $1 -eq 0 ]; then
|
|
|
f0e0ee4 |
%selinux_modules_uninstall -s %{selinuxtype} %{modulename}
|
|
|
f0e0ee4 |
fi
|
|
|
f0e0ee4 |
|
|
|
f0e0ee4 |
|
|
|
73b15bb |
%files
|
|
|
1e387fa |
%license COPYING
|
|
|
cc06972 |
%doc CHANGELOG.md CONTRIBUTING.md CONTRIBUTORS.md README.md
|
|
|
73b15bb |
|
|
|
73b15bb |
%attr(750,ejabberd,ejabberd) %dir %{_sysconfdir}/ejabberd
|
|
|
145e11b |
%attr(640,ejabberd,ejabberd) %config(noreplace) %{_sysconfdir}/ejabberd/ejabberd.yml
|
|
|
db40560 |
%attr(640,ejabberd,ejabberd) %config(noreplace) %{_sysconfdir}/ejabberd/ejabberdctl.cfg
|
|
|
73b15bb |
%attr(640,ejabberd,ejabberd) %config(noreplace) %{_sysconfdir}/ejabberd/inetrc
|
|
|
73b15bb |
|
|
|
10a8041 |
%{_unitdir}/%{name}.service
|
|
|
25d31e8 |
|
|
|
1519101 |
%config(noreplace) %{_sysconfdir}/logrotate.d/%{name}
|
|
|
1519101 |
%config(noreplace) %{_sysconfdir}/pam.d/%{name}
|
|
|
ed0d38d |
%config(noreplace) %{_sysconfdir}/pam.d/ejabberdctl
|
|
|
be6016c |
%{_mandir}/man5/ejabberd.yml.5*
|
|
|
5357d2d |
%{_datadir}/polkit-1/actions/ejabberdctl.policy
|
|
|
2309409 |
%{_datadir}/polkit-1/rules.d/51-ejabberdctl.rules
|
|
|
ed0d38d |
%{_bindir}/ejabberdctl
|
|
|
ed0d38d |
|
|
|
5a46a66 |
%{_erllibdir}/%{name}-%{version}
|
|
|
63ecd49 |
|
|
|
73b15bb |
%attr(750,ejabberd,ejabberd) %dir /var/lib/ejabberd
|
|
|
73b15bb |
%attr(750,ejabberd,ejabberd) %dir /var/log/ejabberd
|
|
|
73b15bb |
|
|
|
9fe454b |
|
|
|
e9cdddd |
%files selinux
|
|
|
f0e0ee4 |
%{_datadir}/selinux/devel/include/%{moduletype}/ejabberd.if
|
|
|
f0e0ee4 |
%{_datadir}/selinux/packages/ejabberd.pp.bz2
|
|
|
e9cdddd |
|
|
|
e9cdddd |
|
|
|
73b15bb |
%changelog
|
|
|
d480662 |
* Sat Aug 07 2021 Randy Barlow <bowlofeggs@fedoraproject.org> - 20.07-5
|
|
|
d480662 |
- Allow to bind to name_bind on udp (#1901466).
|
|
|
d480662 |
|
|
|
99e7c42 |
* Wed Jul 21 2021 Fedora Release Engineering <releng@fedoraproject.org> - 20.07-4
|
|
|
99e7c42 |
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
|
|
|
99e7c42 |
|
|
|
6e3b914 |
* Tue Mar 02 2021 Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> - 20.07-3
|
|
|
6e3b914 |
- Rebuilt for updated systemd-rpm-macros
|
|
|
6e3b914 |
See https://pagure.io/fesco/issue/2583.
|
|
|
6e3b914 |
|
|
|
c7b50fa |
* Tue Jan 26 2021 Fedora Release Engineering <releng@fedoraproject.org> - 20.07-2
|
|
|
c7b50fa |
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
|
|
|
c7b50fa |
|
|
|
ee4aed9 |
* Fri Jul 31 2020 Randy Barlow <bowlofeggs@fedoraproject.org> - 20.07-1
|
|
|
ee4aed9 |
- Update to 20.07 (#1807271).
|
|
|
ee4aed9 |
- https://www.process-one.net/blog/ejabberd-20-07/
|
|
|
ee4aed9 |
|
|
|
b3b5f1a |
* Mon Jul 27 2020 Fedora Release Engineering <releng@fedoraproject.org> - 20.01-2
|
|
|
b3b5f1a |
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
|
|
|
b3b5f1a |
|
|
|
be6016c |
* Fri Feb 14 2020 Randy Barlow <bowlofeggs@fedoraproject.org> - 20.01-1
|
|
|
be6016c |
- Update to 20.01 (#1792572).
|
|
|
be6016c |
- https://blog.process-one.net/ejabberd-20-01/
|
|
|
be6016c |
|
|
|
d702bce |
* Tue Jan 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 19.09.1-2
|
|
|
d702bce |
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
|
|
|
d702bce |
|
|
|
62e0873 |
* Thu Nov 14 2019 Randy Barlow <bowlofeggs@fedoraproject.org> - 19.09.1-1
|
|
|
62e0873 |
- Update to 19.09.1 (#1742538).
|
|
|
62e0873 |
- https://blog.process-one.net/ejabberd-19-08/
|
|
|
62e0873 |
- https://blog.process-one.net/ejabberd-19-09/
|
|
|
62e0873 |
- https://blog.process-one.net/ejabberd-19-09-1/
|
|
|
62e0873 |
|
|
|
1019780 |
* Wed Jul 24 2019 Fedora Release Engineering <releng@fedoraproject.org> - 19.05-2
|
|
|
1019780 |
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
|
|
|
1019780 |
|
|
|
091720a |
* Wed Jun 05 2019 Randy Barlow <bowlofeggs@fedoraproject.org> - 19.05-1
|
|
|
091720a |
- Update to 19.05.
|
|
|
091720a |
- https://blog.process-one.net/ejabberd-19-05/
|
|
|
091720a |
|
|
|
d3b8b79 |
* Sat Apr 13 2019 Randy Barlow <bowlofeggs@fedoraproject.org> - 19.02-1
|
|
|
d3b8b79 |
- Update to 19.02 (#1683310).
|
|
|
d3b8b79 |
- https://blog.process-one.net/ejabberd-19-02-the-mqtt-edition/
|
|
|
d3b8b79 |
|
|
|
91c6fad |
* Thu Jan 31 2019 Fedora Release Engineering <releng@fedoraproject.org> - 18.12.1-2
|
|
|
91c6fad |
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
|