File ejabberd.spec of Package ejabberd
#
# spec file for package ejabberd
#
# Copyright (c) 2021 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
%define systemuser ejabberd
%if 0%{?suse_version} > 1310
%define split_out_epmd 1
%endif
%if 0%{?suse_version} > 1140
%define have_systemd 1
%endif
%{!?_tmpfilesdir:%global _tmpfilesdir %{_prefix}/lib/tmpfiles.d}
%global ejabberd_dir %{_libdir}/%{name}-%{version}/
%bcond_with elixir
%bcond_without redis
%bcond_with riak
%bcond_with sqlite
%bcond_without graphics
Name: ejabberd
Version: 24.12
Release: 0
Summary: A distributed, fault-tolerant Jabber/XMPP server
License: GPL-2.0-only
Group: Productivity/Networking/Talk/Servers
URL: https://ejabberd.im/
Source0: https://github.com/processone/ejabberd/archive/refs/tags/%{version}.tar.gz#/ejabberd-%{version}.tar.gz
Source1: ejabberd.init.suse
Source3: ejabberd.Notes
Source4: ejabberd.service
Source5: ejabberd-rpmlintrc
Source6: ejabberd-tmpfiles-.conf
Source99: series
Patch0: ejabberd-fix_make_install_when_using_system_deps.patch
Patch1: ejabberd-16.01_document_optional.patch
Patch2: ejabberd-16.06_dont_run_as_root.patch
Provides: group(ejabberd)
Provides: user(ejabberd)
BuildRequires: autoconf
BuildRequires: automake
BuildRequires: libtool
BuildRequires: fdupes
BuildRequires: xz
#
# FIXME: use proper Requires(pre/post/preun/...)
PreReq: pwdutils
%global erlang_minimum_version 25
BuildRequires: erlang >= %{erlang_minimum_version}
%if 0%{?split_out_empd}
BuildRequires: erlang-epmd-devel >= %{erlang_minimum_version}
%endif
BuildRequires: erlang-rebar-devel
# from rebar.config
BuildRequires: erlang-base64url-devel >= 1.0.1
%requires_eq erlang-base64url
#
BuildRequires: erlang-p1_cache_tab-devel >= 1.0.31
%requires_eq erlang-p1_cache_tab
#
%if %{with graphics}
BuildRequires: erlang-eimp-devel >= 1.0.23
%requires_eq erlang-eimp
%endif
#
%if %{with elixir}
BuildRequires: elixir >= 1.4.5
BuildRequires: erlang-rebar_elixir_plugin
%requires_eq elixir
%endif
#
BuildRequires: erlang-epam-devel >= 1.0.14
%requires_eq erlang-epam
#
%if %{with redis}
BuildRequires: erlang-eredis-devel >= 1.7.1
%requires_eq erlang-eredis
%endif
#
BuildRequires: erlang-esip-devel >= 1.0.56
%requires_eq erlang-esip
#
BuildRequires: erlang-ezlib-devel >= 1.0.13
%requires_eq erlang-ezlib
#
BuildRequires: erlang-fast_tls-devel >= 1.1.22
%requires_eq erlang-fast_tls
#
BuildRequires: erlang-fast_xml-devel >= 1.1.55
%requires_eq erlang-fast_xml
#
BuildRequires: erlang-fast_yaml-devel >= 1.0.37
%requires_eq erlang-fast_yaml
#
BuildRequires: erlang-idna-devel >= 6.0.0
%requires_eq erlang-idna
#
BuildRequires: erlang-jiffy-devel >= 1.1.2
%requires_eq erlang-jiffy
#
BuildRequires: erlang-jose-devel
%requires_eq erlang-jose
#
BuildRequires: erlang-lager-devel >= 3.9.1
%requires_eq erlang-lager
#
BuildRequires: erlang-luerl-devel >= 1.2
%requires_eq erlang-luerl
#
BuildRequires: erlang-mqtree-devel >= 1.0.17
%requires_eq erlang-mqtree
#
BuildRequires: erlang-p1_acme-devel >= 1.0.25
%requires_eq erlang-p1_acme
#
BuildRequires: erlang-p1_mysql-devel >= 1.0.25
%requires_eq erlang-p1_mysql
#
BuildRequires: erlang-p1_oauth2-devel >= 0.6.14
%requires_eq erlang-p1_oauth2
#
BuildRequires: erlang-p1_pgsql-devel >= 1.1.29
%requires_eq erlang-p1_pgsql
#
BuildRequires: erlang-p1_utils-devel >= 1.0.26
%requires_eq erlang-p1_utils
#
BuildRequires: erlang-pkix-devel >= 1.0.10
%requires_eq erlang-pkix
#
%if %{with sqlite}
BuildRequires: erlang-sqlite3-devel >= 1.1.15
BuildRequires: sqlite-devel >= 3.6.19
%requires_eq erlang-sqlite3
%endif
#
BuildRequires: erlang-stringprep-devel >= 1.0.30
%requires_eq erlang-stringprep
#
BuildRequires: erlang-stun-devel >= 1.2.15
%requires_eq erlang-stun
#
BuildRequires: erlang-xmpp-devel >= 1.9.1
%requires_eq erlang-xmpp
#
BuildRequires: erlang-yconf-devel >= 1.0.17
%requires_eq erlang-yconf
#
%requires_eq erlang
%if 0%{?split_out_empd}
%requires_eq erlang-epmd
%endif
Recommends: ImageMagick
# needed by captcha
Recommends: ghostscript-x11
Requires: inotify-tools
Requires: sudo
%if 0%{?have_systemd}
BuildRequires: pkgconfig(systemd)
%{?systemd_requires}
%else
# FIXME: use proper Requires(pre/post/preun/...)
PreReq: %insserv_prereq
%endif
Obsoletes: ejabberd-contrib < 0~git1518710694
%description
ejabberd is a Free and Open Source distributed fault-tolerant
Jabber/XMPP server.
%package doc
Summary: Documentation for ejabberd
Group: Documentation/Other
%description doc
Documentation for ejabberd. Release Notes and User Guide
%package devel
Summary: Development files for ejabberd
Group: Development/Libraries/Other
Requires: %{name} = %{version}
%description devel
Development files for ejabberd. Use it for build ejabberd modules.
%pre
getent group %{systemuser} >/dev/null || groupadd -r %{systemuser}
getent passwd %{systemuser} >/dev/null || useradd -r -g %{systemuser} -d %{_localstatedir}/lib/ejabberd -s /bin/false -c "user for ejabberd" %{systemuser}
%if 0%{?have_systemd}
%service_add_pre %{name}.service
%endif
exit 0
%if 0%{?have_systemd}
%post
systemd-tmpfiles --create %{_tmpfilesdir}/%{name}.conf
%service_add_post %{name}.service
%endif
%preun
%if 0%{?have_systemd}
%service_del_preun %{name}.service
%else
%stop_on_removal ejabberd
%endif
%postun
%if 0%{?have_systemd}
%service_del_postun %{name}.service
%else
%restart_on_update ejabberd
%insserv_cleanup
%endif
%prep
%autosetup -p1
perl -p -i -e 's|/lib/ejabberd/priv/bin/captcha.sh|%{ejabberd_dir}/priv/bin/captcha.sh|g' ejabberd.yml.example
%build
autoreconf -fi
export REBAR_DEPS_PREFER_LIBS=1
rm -f rebar
ln -s %{_bindir}/rebar rebar
%configure \
--with-rebar=%{_bindir}/rebar \
%if %{with tools}
--enable-tools \
%else
--disable-tools \
%endif
--enable-odbc \
--enable-mysql \
--enable-lua \
--enable-pgsql \
%if %{with sqlite}
--enable-sqlite \
%endif
--enable-pam \
--enable-zlib \
%if %{with riak}
--enable-riak \
%endif
%if %{with redis}
--enable-redis \
%endif
%if %{with elixir}
--enable-elixir \
%endif
--enable-iconv \
--enable-debug \
--enable-stun \
--enable-sip \
--enable-system-deps \
--enable-user=%{systemuser} \
--enable-group=%{systemuser} \
--docdir=%{_docdir}/%{name}
perl -p -i -e "s|deps/p1_utils/include|$(rpm -ql erlang-p1_utils-devel | grep -E '/include$' )|g" rebar.config
perl -p -i -e "s|deps/fast_xml/include|$(rpm -ql erlang-fast_xml | grep -E '/include$' )|g" rebar.config
perl -p -i -e "s|deps/xmpp/include|$(rpm -ql erlang-xmpp-devel | grep -E '/include$' )|g" rebar.config
%make_build SKIPDEPS=skip_deps=true
%install
export REBAR_DEPS_PREFER_LIBS=1
%make_install INSTALLUSER= INSTALLGROUP= SKIPDEPS=skip_deps=true
install -D -d -m 0755 %{buildroot}%{ejabberd_dir}/priv/sql/
cp -av sql/mysql.sql sql/pg.sql %{buildroot}%{ejabberd_dir}/priv/sql/
mkdir -p %{buildroot}%{_localstatedir}/log/%{name}
mkdir -p %{buildroot}%{_localstatedir}/lib/%{name}/spool
mkdir -p %{buildroot}%{_localstatedir}/lock/ejabberdctl
mkdir -p %{buildroot}{/var,}/run/%{name}
mkdir -p %{buildroot}%{_sbindir}
# systemd
%if 0%{?have_systemd}
install -D -m 0644 %{SOURCE4} %{buildroot}%{_unitdir}/%{name}.service
install -D -m 0644 %{SOURCE6} %{buildroot}%{_tmpfilesdir}/%{name}.conf
ln -s /sbin/service %{buildroot}%{_sbindir}/rcejabberd
%else
# SysV
install -D %{SOURCE1} %{buildroot}%{_initddir}/ejabberd
ln -s %{_initddir}/ejabberd %{buildroot}%{_sbindir}/rcejabberd
perl -pi -e 's!\@libdir\@!%{_libdir}!g' %{buildroot}%{_initddir}/ejabberd
%endif
cp %{SOURCE3} %{buildroot}%{_docdir}/%{name}
touch %{buildroot}%{_sysconfdir}/ejabberd/ejabberd.cfg
mkdir -p %{buildroot}%{ejabberd_dir}/data
%fdupes -s %{buildroot}%{_docdir}/%{name}/
%files
%attr(750,root,%{systemuser}) %dir %{_sysconfdir}/ejabberd
%ghost %attr(640,root,%{systemuser}) %config(noreplace) %{_sysconfdir}/ejabberd/ejabberd.cfg
%attr(640,root,%{systemuser}) %config(noreplace) %{_sysconfdir}/ejabberd/ejabberd.yml
%attr(640,root,%{systemuser}) %config(noreplace) %{_sysconfdir}/ejabberd/ejabberdctl.cfg
%attr(640,root,%{systemuser}) %config(noreplace) %{_sysconfdir}/ejabberd/inetrc
%{_sbindir}/rcejabberd
%attr(755,root,root) %{_sbindir}/ejabberdctl
%if 0%{?have_systemd}
%{_unitdir}/%{name}.service
%{_tmpfilesdir}/%{name}.conf
%dir %ghost %attr(755,ejabberd,ejabberd) /run/ejabberd
%dir %ghost /run/lock/
%dir %ghost %attr(755,ejabberd,ejabberd) /run/lock/ejabberdctl
%else
%{_initddir}/ejabberd
%endif
%dir %{ejabberd_dir}
%dir %{ejabberd_dir}/data
%dir %{ejabberd_dir}/ebin
%dir %{ejabberd_dir}/priv
%dir %{ejabberd_dir}/priv/bin
%dir %{ejabberd_dir}/priv/css
%dir %{ejabberd_dir}/priv/img
%dir %{ejabberd_dir}/priv/js
%dir %{ejabberd_dir}/priv/lua
%dir %{ejabberd_dir}/priv/msgs
%dir %{ejabberd_dir}/priv/sql
%{ejabberd_dir}/COPYING
%{ejabberd_dir}/ebin/ELDAPv3.beam
%{ejabberd_dir}/ebin/acl.beam
%{ejabberd_dir}/ebin/econf.beam
%{ejabberd_dir}/ebin/ejabberd.app
%{ejabberd_dir}/ebin/ejabberd.beam
%{ejabberd_dir}/ebin/ejabberd_access_permissions.beam
%{ejabberd_dir}/ebin/ejabberd_acme.beam
%{ejabberd_dir}/ebin/ejabberd_admin.beam
%{ejabberd_dir}/ebin/ejabberd_app.beam
%{ejabberd_dir}/ebin/ejabberd_auth.beam
%{ejabberd_dir}/ebin/ejabberd_auth_anonymous.beam
%{ejabberd_dir}/ebin/ejabberd_auth_external.beam
%{ejabberd_dir}/ebin/ejabberd_auth_jwt.beam
%{ejabberd_dir}/ebin/ejabberd_auth_ldap.beam
%{ejabberd_dir}/ebin/ejabberd_auth_mnesia.beam
%{ejabberd_dir}/ebin/ejabberd_auth_pam.beam
%{ejabberd_dir}/ebin/ejabberd_auth_sql.beam
%{ejabberd_dir}/ebin/ejabberd_backend_sup.beam
%{ejabberd_dir}/ebin/ejabberd_batch.beam
%{ejabberd_dir}/ebin/ejabberd_bosh.beam
%{ejabberd_dir}/ebin/ejabberd_c2s.beam
%{ejabberd_dir}/ebin/ejabberd_c2s_config.beam
%{ejabberd_dir}/ebin/ejabberd_captcha.beam
%{ejabberd_dir}/ebin/ejabberd_cluster.beam
%{ejabberd_dir}/ebin/ejabberd_cluster_mnesia.beam
%{ejabberd_dir}/ebin/ejabberd_commands.beam
%{ejabberd_dir}/ebin/ejabberd_commands_doc.beam
%{ejabberd_dir}/ebin/ejabberd_config.beam
%{ejabberd_dir}/ebin/ejabberd_config_transformer.beam
%{ejabberd_dir}/ebin/ejabberd_ctl.beam
%{ejabberd_dir}/ebin/ejabberd_db_sup.beam
%{ejabberd_dir}/ebin/ejabberd_doc.beam
%{ejabberd_dir}/ebin/ejabberd_hooks.beam
%{ejabberd_dir}/ebin/ejabberd_http.beam
%{ejabberd_dir}/ebin/ejabberd_http_ws.beam
%{ejabberd_dir}/ebin/ejabberd_iq.beam
%{ejabberd_dir}/ebin/ejabberd_listener.beam
%{ejabberd_dir}/ebin/ejabberd_local.beam
%{ejabberd_dir}/ebin/ejabberd_logger.beam
%{ejabberd_dir}/ebin/ejabberd_mnesia.beam
%{ejabberd_dir}/ebin/ejabberd_oauth.beam
%{ejabberd_dir}/ebin/ejabberd_oauth_mnesia.beam
%{ejabberd_dir}/ebin/ejabberd_oauth_rest.beam
%{ejabberd_dir}/ebin/ejabberd_oauth_sql.beam
%{ejabberd_dir}/ebin/ejabberd_old_config.beam
%{ejabberd_dir}/ebin/ejabberd_option.beam
%{ejabberd_dir}/ebin/ejabberd_options.beam
%{ejabberd_dir}/ebin/ejabberd_options_doc.beam
%{ejabberd_dir}/ebin/ejabberd_piefxis.beam
%{ejabberd_dir}/ebin/ejabberd_pkix.beam
%{ejabberd_dir}/ebin/ejabberd_redis.beam
%{ejabberd_dir}/ebin/ejabberd_redis_sup.beam
%{ejabberd_dir}/ebin/ejabberd_regexp.beam
%{ejabberd_dir}/ebin/ejabberd_router.beam
%{ejabberd_dir}/ebin/ejabberd_router_mnesia.beam
%{ejabberd_dir}/ebin/ejabberd_router_multicast.beam
%{ejabberd_dir}/ebin/ejabberd_router_redis.beam
%{ejabberd_dir}/ebin/ejabberd_router_sql.beam
%{ejabberd_dir}/ebin/ejabberd_s2s.beam
%{ejabberd_dir}/ebin/ejabberd_s2s_in.beam
%{ejabberd_dir}/ebin/ejabberd_s2s_out.beam
%{ejabberd_dir}/ebin/ejabberd_service.beam
%{ejabberd_dir}/ebin/ejabberd_shaper.beam
%{ejabberd_dir}/ebin/ejabberd_sip.beam
%{ejabberd_dir}/ebin/ejabberd_sm.beam
%{ejabberd_dir}/ebin/ejabberd_sm_mnesia.beam
%{ejabberd_dir}/ebin/ejabberd_sm_redis.beam
%{ejabberd_dir}/ebin/ejabberd_sm_sql.beam
%{ejabberd_dir}/ebin/ejabberd_sql.beam
%{ejabberd_dir}/ebin/ejabberd_sql_pt.beam
%{ejabberd_dir}/ebin/ejabberd_sql_schema.beam
%{ejabberd_dir}/ebin/ejabberd_sql_sup.beam
%{ejabberd_dir}/ebin/ejabberd_stun.beam
%{ejabberd_dir}/ebin/ejabberd_sup.beam
%{ejabberd_dir}/ebin/ejabberd_system_monitor.beam
%{ejabberd_dir}/ebin/ejabberd_systemd.beam
%{ejabberd_dir}/ebin/ejabberd_tmp_sup.beam
%{ejabberd_dir}/ebin/ejabberd_update.beam
%{ejabberd_dir}/ebin/ejabberd_web.beam
%{ejabberd_dir}/ebin/ejabberd_web_admin.beam
%{ejabberd_dir}/ebin/ejabberd_websocket.beam
%{ejabberd_dir}/ebin/ejabberd_xmlrpc.beam
%{ejabberd_dir}/ebin/ejd2sql.beam
%{ejabberd_dir}/ebin/eldap.beam
%{ejabberd_dir}/ebin/eldap_filter.beam
%{ejabberd_dir}/ebin/eldap_filter_yecc.beam
%{ejabberd_dir}/ebin/eldap_pool.beam
%{ejabberd_dir}/ebin/eldap_utils.beam
%{ejabberd_dir}/ebin/elixir_logger_backend.beam
%{ejabberd_dir}/ebin/ext_mod.beam
%{ejabberd_dir}/ebin/extauth.beam
%{ejabberd_dir}/ebin/extauth_sup.beam
%{ejabberd_dir}/ebin/gen_iq_handler.beam
%{ejabberd_dir}/ebin/gen_mod.beam
%{ejabberd_dir}/ebin/gen_pubsub_node.beam
%{ejabberd_dir}/ebin/gen_pubsub_nodetree.beam
%{ejabberd_dir}/ebin/jd2ejd.beam
%{ejabberd_dir}/ebin/misc.beam
%{ejabberd_dir}/ebin/mod_adhoc.beam
%{ejabberd_dir}/ebin/mod_adhoc_opt.beam
%{ejabberd_dir}/ebin/mod_admin_extra.beam
%{ejabberd_dir}/ebin/mod_admin_update_sql.beam
%{ejabberd_dir}/ebin/mod_announce.beam
%{ejabberd_dir}/ebin/mod_announce_mnesia.beam
%{ejabberd_dir}/ebin/mod_announce_opt.beam
%{ejabberd_dir}/ebin/mod_announce_sql.beam
%{ejabberd_dir}/ebin/mod_auth_fast.beam
%{ejabberd_dir}/ebin/mod_auth_fast_mnesia.beam
%{ejabberd_dir}/ebin/mod_auth_fast_opt.beam
%{ejabberd_dir}/ebin/mod_avatar.beam
%{ejabberd_dir}/ebin/mod_avatar_opt.beam
%{ejabberd_dir}/ebin/mod_block_strangers.beam
%{ejabberd_dir}/ebin/mod_block_strangers_opt.beam
%{ejabberd_dir}/ebin/mod_blocking.beam
%{ejabberd_dir}/ebin/mod_bosh.beam
%{ejabberd_dir}/ebin/mod_bosh_mnesia.beam
%{ejabberd_dir}/ebin/mod_bosh_opt.beam
%{ejabberd_dir}/ebin/mod_bosh_redis.beam
%{ejabberd_dir}/ebin/mod_bosh_sql.beam
%{ejabberd_dir}/ebin/mod_caps.beam
%{ejabberd_dir}/ebin/mod_caps_mnesia.beam
%{ejabberd_dir}/ebin/mod_caps_opt.beam
%{ejabberd_dir}/ebin/mod_caps_sql.beam
%{ejabberd_dir}/ebin/mod_carboncopy.beam
%{ejabberd_dir}/ebin/mod_client_state.beam
%{ejabberd_dir}/ebin/mod_client_state_opt.beam
%{ejabberd_dir}/ebin/mod_configure.beam
%{ejabberd_dir}/ebin/mod_conversejs.beam
%{ejabberd_dir}/ebin/mod_conversejs_opt.beam
%{ejabberd_dir}/ebin/mod_delegation.beam
%{ejabberd_dir}/ebin/mod_delegation_opt.beam
%{ejabberd_dir}/ebin/mod_disco.beam
%{ejabberd_dir}/ebin/mod_disco_opt.beam
%{ejabberd_dir}/ebin/mod_fail2ban.beam
%{ejabberd_dir}/ebin/mod_fail2ban_opt.beam
%{ejabberd_dir}/ebin/mod_host_meta.beam
%{ejabberd_dir}/ebin/mod_host_meta_opt.beam
%{ejabberd_dir}/ebin/mod_http_api.beam
%{ejabberd_dir}/ebin/mod_http_api_opt.beam
%{ejabberd_dir}/ebin/mod_http_fileserver.beam
%{ejabberd_dir}/ebin/mod_http_fileserver_opt.beam
%{ejabberd_dir}/ebin/mod_http_upload.beam
%{ejabberd_dir}/ebin/mod_http_upload_opt.beam
%{ejabberd_dir}/ebin/mod_http_upload_quota.beam
%{ejabberd_dir}/ebin/mod_http_upload_quota_opt.beam
%{ejabberd_dir}/ebin/mod_jidprep.beam
%{ejabberd_dir}/ebin/mod_jidprep_opt.beam
%{ejabberd_dir}/ebin/mod_last.beam
%{ejabberd_dir}/ebin/mod_last_mnesia.beam
%{ejabberd_dir}/ebin/mod_last_opt.beam
%{ejabberd_dir}/ebin/mod_last_sql.beam
%{ejabberd_dir}/ebin/mod_legacy_auth.beam
%{ejabberd_dir}/ebin/mod_mam.beam
%{ejabberd_dir}/ebin/mod_mam_mnesia.beam
%{ejabberd_dir}/ebin/mod_mam_opt.beam
%{ejabberd_dir}/ebin/mod_mam_sql.beam
%{ejabberd_dir}/ebin/mod_matrix_gw.beam
%{ejabberd_dir}/ebin/mod_matrix_gw_opt.beam
%{ejabberd_dir}/ebin/mod_matrix_gw_room.beam
%{ejabberd_dir}/ebin/mod_matrix_gw_s2s.beam
%{ejabberd_dir}/ebin/mod_matrix_gw_sup.beam
%{ejabberd_dir}/ebin/mod_metrics.beam
%{ejabberd_dir}/ebin/mod_metrics_opt.beam
%{ejabberd_dir}/ebin/mod_mix.beam
%{ejabberd_dir}/ebin/mod_mix_mnesia.beam
%{ejabberd_dir}/ebin/mod_mix_opt.beam
%{ejabberd_dir}/ebin/mod_mix_pam.beam
%{ejabberd_dir}/ebin/mod_mix_pam_mnesia.beam
%{ejabberd_dir}/ebin/mod_mix_pam_opt.beam
%{ejabberd_dir}/ebin/mod_mix_pam_sql.beam
%{ejabberd_dir}/ebin/mod_mix_sql.beam
%{ejabberd_dir}/ebin/mod_mqtt.beam
%{ejabberd_dir}/ebin/mod_mqtt_mnesia.beam
%{ejabberd_dir}/ebin/mod_mqtt_opt.beam
%{ejabberd_dir}/ebin/mod_mqtt_session.beam
%{ejabberd_dir}/ebin/mod_mqtt_sql.beam
%{ejabberd_dir}/ebin/mod_mqtt_ws.beam
%{ejabberd_dir}/ebin/mod_muc.beam
%{ejabberd_dir}/ebin/mod_muc_admin.beam
%{ejabberd_dir}/ebin/mod_muc_admin_opt.beam
%{ejabberd_dir}/ebin/mod_muc_log.beam
%{ejabberd_dir}/ebin/mod_muc_log_opt.beam
%{ejabberd_dir}/ebin/mod_muc_mnesia.beam
%{ejabberd_dir}/ebin/mod_muc_occupantid.beam
%{ejabberd_dir}/ebin/mod_muc_opt.beam
%{ejabberd_dir}/ebin/mod_muc_room.beam
%{ejabberd_dir}/ebin/mod_muc_rtbl.beam
%{ejabberd_dir}/ebin/mod_muc_rtbl_opt.beam
%{ejabberd_dir}/ebin/mod_muc_sql.beam
%{ejabberd_dir}/ebin/mod_muc_sup.beam
%{ejabberd_dir}/ebin/mod_multicast.beam
%{ejabberd_dir}/ebin/mod_multicast_opt.beam
%{ejabberd_dir}/ebin/mod_offline.beam
%{ejabberd_dir}/ebin/mod_offline_mnesia.beam
%{ejabberd_dir}/ebin/mod_offline_opt.beam
%{ejabberd_dir}/ebin/mod_offline_sql.beam
%{ejabberd_dir}/ebin/mod_ping.beam
%{ejabberd_dir}/ebin/mod_ping_opt.beam
%{ejabberd_dir}/ebin/mod_pres_counter.beam
%{ejabberd_dir}/ebin/mod_pres_counter_opt.beam
%{ejabberd_dir}/ebin/mod_privacy.beam
%{ejabberd_dir}/ebin/mod_privacy_mnesia.beam
%{ejabberd_dir}/ebin/mod_privacy_opt.beam
%{ejabberd_dir}/ebin/mod_privacy_sql.beam
%{ejabberd_dir}/ebin/mod_private.beam
%{ejabberd_dir}/ebin/mod_private_mnesia.beam
%{ejabberd_dir}/ebin/mod_private_opt.beam
%{ejabberd_dir}/ebin/mod_private_sql.beam
%{ejabberd_dir}/ebin/mod_privilege.beam
%{ejabberd_dir}/ebin/mod_privilege_opt.beam
%{ejabberd_dir}/ebin/mod_proxy65.beam
%{ejabberd_dir}/ebin/mod_proxy65_lib.beam
%{ejabberd_dir}/ebin/mod_proxy65_mnesia.beam
%{ejabberd_dir}/ebin/mod_proxy65_opt.beam
%{ejabberd_dir}/ebin/mod_proxy65_redis.beam
%{ejabberd_dir}/ebin/mod_proxy65_service.beam
%{ejabberd_dir}/ebin/mod_proxy65_sql.beam
%{ejabberd_dir}/ebin/mod_proxy65_stream.beam
%{ejabberd_dir}/ebin/mod_pubsub.beam
%{ejabberd_dir}/ebin/mod_pubsub_mnesia.beam
%{ejabberd_dir}/ebin/mod_pubsub_opt.beam
%{ejabberd_dir}/ebin/mod_pubsub_sql.beam
%{ejabberd_dir}/ebin/mod_push.beam
%{ejabberd_dir}/ebin/mod_push_keepalive.beam
%{ejabberd_dir}/ebin/mod_push_keepalive_opt.beam
%{ejabberd_dir}/ebin/mod_push_mnesia.beam
%{ejabberd_dir}/ebin/mod_push_opt.beam
%{ejabberd_dir}/ebin/mod_push_sql.beam
%{ejabberd_dir}/ebin/mod_register.beam
%{ejabberd_dir}/ebin/mod_register_opt.beam
%{ejabberd_dir}/ebin/mod_register_web.beam
%{ejabberd_dir}/ebin/mod_roster.beam
%{ejabberd_dir}/ebin/mod_roster_mnesia.beam
%{ejabberd_dir}/ebin/mod_roster_opt.beam
%{ejabberd_dir}/ebin/mod_roster_sql.beam
%{ejabberd_dir}/ebin/mod_s2s_bidi.beam
%{ejabberd_dir}/ebin/mod_s2s_dialback.beam
%{ejabberd_dir}/ebin/mod_s2s_dialback_opt.beam
%{ejabberd_dir}/ebin/mod_scram_upgrade.beam
%{ejabberd_dir}/ebin/mod_scram_upgrade_opt.beam
%{ejabberd_dir}/ebin/mod_service_log.beam
%{ejabberd_dir}/ebin/mod_service_log_opt.beam
%{ejabberd_dir}/ebin/mod_shared_roster.beam
%{ejabberd_dir}/ebin/mod_shared_roster_ldap.beam
%{ejabberd_dir}/ebin/mod_shared_roster_ldap_opt.beam
%{ejabberd_dir}/ebin/mod_shared_roster_mnesia.beam
%{ejabberd_dir}/ebin/mod_shared_roster_opt.beam
%{ejabberd_dir}/ebin/mod_shared_roster_sql.beam
%{ejabberd_dir}/ebin/mod_sic.beam
%{ejabberd_dir}/ebin/mod_sip.beam
%{ejabberd_dir}/ebin/mod_sip_opt.beam
%{ejabberd_dir}/ebin/mod_sip_proxy.beam
%{ejabberd_dir}/ebin/mod_sip_registrar.beam
%{ejabberd_dir}/ebin/mod_stats.beam
%{ejabberd_dir}/ebin/mod_stream_mgmt.beam
%{ejabberd_dir}/ebin/mod_stream_mgmt_opt.beam
%{ejabberd_dir}/ebin/mod_stun_disco.beam
%{ejabberd_dir}/ebin/mod_stun_disco_opt.beam
%{ejabberd_dir}/ebin/mod_time.beam
%{ejabberd_dir}/ebin/mod_vcard.beam
%{ejabberd_dir}/ebin/mod_vcard_ldap.beam
%{ejabberd_dir}/ebin/mod_vcard_ldap_opt.beam
%{ejabberd_dir}/ebin/mod_vcard_mnesia.beam
%{ejabberd_dir}/ebin/mod_vcard_mnesia_opt.beam
%{ejabberd_dir}/ebin/mod_vcard_opt.beam
%{ejabberd_dir}/ebin/mod_vcard_sql.beam
%{ejabberd_dir}/ebin/mod_vcard_xupdate.beam
%{ejabberd_dir}/ebin/mod_vcard_xupdate_opt.beam
%{ejabberd_dir}/ebin/mod_version.beam
%{ejabberd_dir}/ebin/mod_version_opt.beam
%{ejabberd_dir}/ebin/mqtt_codec.beam
%{ejabberd_dir}/ebin/node_flat.beam
%{ejabberd_dir}/ebin/node_flat_sql.beam
%{ejabberd_dir}/ebin/node_pep.beam
%{ejabberd_dir}/ebin/node_pep_sql.beam
%{ejabberd_dir}/ebin/nodetree_tree.beam
%{ejabberd_dir}/ebin/nodetree_tree_sql.beam
%{ejabberd_dir}/ebin/nodetree_virtual.beam
%{ejabberd_dir}/ebin/prosody2ejabberd.beam
%{ejabberd_dir}/ebin/proxy_protocol.beam
%{ejabberd_dir}/ebin/pubsub_db_sql.beam
%{ejabberd_dir}/ebin/pubsub_index.beam
%{ejabberd_dir}/ebin/pubsub_migrate.beam
%{ejabberd_dir}/ebin/pubsub_subscription.beam
%{ejabberd_dir}/ebin/pubsub_subscription_sql.beam
%{ejabberd_dir}/ebin/rest.beam
%{ejabberd_dir}/ebin/str.beam
%{ejabberd_dir}/ebin/translate.beam
%{ejabberd_dir}/ebin/win32_dns.beam
%{ejabberd_dir}/ebin/xml_compress.beam
%if %{with tools}
%{ejabberd_dir}/ebin/xml_compress_gen.beam
%endif
%{ejabberd_dir}/ebin/ejabberd_websocket_codec.beam
%{ejabberd_dir}/ebin/mod_mqtt_bridge.beam
%{ejabberd_dir}/ebin/mod_mqtt_bridge_opt.beam
%{ejabberd_dir}/ebin/mod_mqtt_bridge_session.beam
%{ejabberd_dir}/priv/css/*.css
%{ejabberd_dir}/priv/img/*
%{ejabberd_dir}/priv/js/*
%{ejabberd_dir}/priv/lua/*
%{ejabberd_dir}/priv/msgs/*.msg
# those get only installed when sqlite is enabled.
#{ejabberd_dir}/priv/sql/lite*.sql
%{ejabberd_dir}/priv/sql/mysql.sql
%{ejabberd_dir}/priv/sql/pg.sql
%attr(750,root,%{systemuser}) %{ejabberd_dir}/priv/bin/*.sh
%attr(750,%{systemuser},%{systemuser}) %dir %{_localstatedir}/lib/ejabberd
%attr(750,%{systemuser},%{systemuser}) %dir %{_localstatedir}/lib/ejabberd/spool
%attr(750,%{systemuser},%{systemuser}) %dir %{_localstatedir}/log/ejabberd
%if ! 0%{?have_systemd}
%attr(750,%{systemuser},%{systemuser}) %dir %{_localstatedir}/lock/ejabberdctl
%attr(750,%{systemuser},%{systemuser}) %dir %{_localstatedir}/run/ejabberd
%endif
%dir %{_docdir}/%{name}/
%{_docdir}/%{name}/COPYING
%{_mandir}/man5/ejabberd.yml.5%{?ext_man}
%files devel
%{ejabberd_dir}/include
%files doc
%defattr(644,root,root,755)
%{_docdir}/%{name}/ejabberd.Notes
%changelog