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
openSUSE Build Service is sponsored by