File prosody.spec of Package prosody
#
# spec file for package prosody
#
# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
#
# 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 http://bugs.opensuse.org/
#
%if 0%{?suse_version} > 1230 || 0%{?rhel_version} > 600 || 0%{?centos_version} > 600 || 0%{?fedora_version} >= 20 || 0%{?el7}%{?fc20}%{?fc21}%{?fc22}%{?fc23}%{?fc24}%{?fc25}
%bcond_without systemd
%define _piddir /run
%else
%bcond_with systemd
%define _piddir %{_localstatedir}/run
%endif
%{!?_tmpfilesdir: %global _tmpfilesdir /usr/lib/tmpfiles.d }
Name: prosody
Version: 0.9.12
Release: 0
Summary: Modern flexible communications server for Jabber/XMPP
License: MIT
Group: Productivity/Networking/Other
Url: http://prosody.im/downloads/source
Source: http://prosody.im/downloads/source/%{name}-%{version}.tar.gz
Source2: http://prosody.im/downloads/source/%{name}-%{version}.tar.gz.asc
Source3: %{name}.keyring
Source4: %{name}.service
Source5: prosody.tmpfile
# Make prosody work on systems that have lua 5.1 AND 5.2 installed
Patch0: prosody-lua51coexist.patch
Patch1: prosody-configure.patch
Patch2: prosody-makefile.patch
# PATCH-FIX-OPENSUSE marguerite@opensuse.org - enable Unix features
Patch3: prosody-cfg.patch
BuildRequires: libidn-devel
BuildRequires: libopenssl-devel
Requires: lua51-luaexpat
Requires: lua51-luafilesystem
Requires: lua51-luasec
Requires: lua51-luasocket
Requires(pre): permissions
Requires(pre): pwdutils
Recommends: lua51-luadbi
Recommends: lua51-luaevent
Recommends: lua51-zlib
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%if 0%{?suse_version} <= 1210
BuildRequires: lua-devel
BuildRequires: openssl
Requires: lua
%else
BuildRequires: lua51-devel
Requires: lua51
%endif
%if %{with systemd}
%{?systemd_requires}
BuildRequires: systemd
%endif
%description
Prosody is a flexible communications server for Jabber/XMPP written in Lua.
It aims to be easy to use, and light on resources.
For developers it aims to be easy to extend and give a flexible system
on which to rapidly develop added functionality, or prototype new protocols.
%prep
%setup -q
%patch0 -p1
%patch1
%patch2
%patch3 -p1
sed -i 's|@@LIBDIR@@|%{_libdir}|g;s|@@INCLUDEDIR@@|%{_includedir}|g;' configure
sed -i 's|@@LIBDIR@@|%{_libdir}|g;s|@@INCLUDEDIR@@|%{_includedir}|g;' Makefile
sed -i 's|@@PIDDIR@@|%{_piddir}|g;' prosody.cfg.lua.dist
%build
# CFLAGS need to keep -fPIC for shared modules
./configure --lua-suffix="5.1" --cflags="%{optflags} -fPIC" --c-compiler=gcc
make %{?_smp_mflags}
%install
make DESTDIR=%{buildroot} install %{?_smp_mflags}
%if %{with systemd}
install -D -m 0644 %{SOURCE4} %{buildroot}%{_unitdir}/%{name}.service
# tmpfiles.d
install -D -m 0644 %{SOURCE5} %{buildroot}%{_tmpfilesdir}/%{name}.conf
mkdir -p %{buildroot}%{_sbindir}
ln -s %{_sbindir}/service %{buildroot}%{_sbindir}/rcprosody
%endif #systemd
# mkdir read/write by prosody
mkdir -p %{buildroot}%{_piddir}/prosody
mkdir -p %{buildroot}%{_localstatedir}/log/prosody
# clean up for rpmlint
chmod 644 %{buildroot}/%{_libdir}/prosody/prosody.version
chmod -R g+rX,o= %{buildroot}%{_sysconfdir}/prosody
%pre
getent group %{name} > /dev/null || groupadd -r %{name}
getent passwd %{name} > /dev/null || useradd -r -g %{name} -d %{_localstatedir}/lib/%{name} -s/sbin/nologin -c "user for %{name}" %{name}
%if %{with systemd}
%service_add_pre %{name}.service
%post
%service_add_post %{name}.service
systemd-tmpfiles --create %{_tmpfilesdir}/%{name}.conf ||:
%preun
%service_del_preun %{name}.service
%postun
%service_del_postun %{name}.service
%endif
%files
%defattr(-,root,root)
%config %attr(-,root,prosody) %{_sysconfdir}/prosody/
%{_bindir}/prosody
%{_bindir}/prosodyctl
%dir %{_libdir}/prosody
%dir %{_libdir}/prosody/core
%{_libdir}/prosody/core/certmanager.lua
%{_libdir}/prosody/core/configmanager.lua
%{_libdir}/prosody/core/hostmanager.lua
%{_libdir}/prosody/core/loggingmanager.lua
%{_libdir}/prosody/core/moduleapi.lua
%{_libdir}/prosody/core/modulemanager.lua
%{_libdir}/prosody/core/portmanager.lua
%{_libdir}/prosody/core/rostermanager.lua
%{_libdir}/prosody/core/s2smanager.lua
%{_libdir}/prosody/core/sessionmanager.lua
%{_libdir}/prosody/core/stanza_router.lua
%{_libdir}/prosody/core/storagemanager.lua
%{_libdir}/prosody/core/usermanager.lua
%dir %{_libdir}/prosody/modules
%dir %{_libdir}/prosody/modules/adhoc
%{_libdir}/prosody/modules/adhoc/adhoc.lib.lua
%{_libdir}/prosody/modules/adhoc/mod_adhoc.lua
%{_libdir}/prosody/modules/mod_admin_adhoc.lua
%{_libdir}/prosody/modules/mod_admin_telnet.lua
%{_libdir}/prosody/modules/mod_announce.lua
%{_libdir}/prosody/modules/mod_auth_anonymous.lua
%{_libdir}/prosody/modules/mod_auth_cyrus.lua
%{_libdir}/prosody/modules/mod_auth_internal_hashed.lua
%{_libdir}/prosody/modules/mod_auth_internal_plain.lua
%{_libdir}/prosody/modules/mod_bosh.lua
%{_libdir}/prosody/modules/mod_c2s.lua
%{_libdir}/prosody/modules/mod_component.lua
%{_libdir}/prosody/modules/mod_compression.lua
%{_libdir}/prosody/modules/mod_dialback.lua
%{_libdir}/prosody/modules/mod_disco.lua
%{_libdir}/prosody/modules/mod_groups.lua
%{_libdir}/prosody/modules/mod_http.lua
%{_libdir}/prosody/modules/mod_http_errors.lua
%{_libdir}/prosody/modules/mod_http_files.lua
%{_libdir}/prosody/modules/mod_iq.lua
%{_libdir}/prosody/modules/mod_lastactivity.lua
%{_libdir}/prosody/modules/mod_legacyauth.lua
%{_libdir}/prosody/modules/mod_message.lua
%{_libdir}/prosody/modules/mod_motd.lua
%{_libdir}/prosody/modules/mod_net_multiplex.lua
%{_libdir}/prosody/modules/mod_offline.lua
%{_libdir}/prosody/modules/mod_pep.lua
%{_libdir}/prosody/modules/mod_ping.lua
%{_libdir}/prosody/modules/mod_posix.lua
%{_libdir}/prosody/modules/mod_presence.lua
%{_libdir}/prosody/modules/mod_privacy.lua
%{_libdir}/prosody/modules/mod_private.lua
%{_libdir}/prosody/modules/mod_proxy65.lua
%{_libdir}/prosody/modules/mod_pubsub.lua
%{_libdir}/prosody/modules/mod_register.lua
%{_libdir}/prosody/modules/mod_roster.lua
%dir %{_libdir}/prosody/modules/mod_s2s
%{_libdir}/prosody/modules/mod_s2s/mod_s2s.lua
%{_libdir}/prosody/modules/mod_s2s/s2sout.lib.lua
%{_libdir}/prosody/modules/mod_saslauth.lua
%{_libdir}/prosody/modules/mod_storage_internal.lua
%{_libdir}/prosody/modules/mod_storage_none.lua
%{_libdir}/prosody/modules/mod_storage_sql.lua
%{_libdir}/prosody/modules/mod_time.lua
%{_libdir}/prosody/modules/mod_tls.lua
%{_libdir}/prosody/modules/mod_uptime.lua
%{_libdir}/prosody/modules/mod_vcard.lua
%{_libdir}/prosody/modules/mod_version.lua
%{_libdir}/prosody/modules/mod_watchregistrations.lua
%{_libdir}/prosody/modules/mod_welcome.lua
%dir %{_libdir}/prosody/modules/muc
%{_libdir}/prosody/modules/muc/mod_muc.lua
%{_libdir}/prosody/modules/muc/muc.lib.lua
%{_libdir}/prosody/modules/sql.lib.lua
%dir %{_libdir}/prosody/modules/storage
%{_libdir}/prosody/modules/storage/mod_xep0227.lua
%{_libdir}/prosody/modules/storage/sqlbasic.lib.lua
%{_libdir}/prosody/modules/storage/xep227store.lib.lua
%dir %{_libdir}/prosody/net
%{_libdir}/prosody/net/adns.lua
%{_libdir}/prosody/net/connlisteners.lua
%{_libdir}/prosody/net/dns.lua
%dir %{_libdir}/prosody/net/http
%{_libdir}/prosody/net/http/codes.lua
%{_libdir}/prosody/net/http/parser.lua
%{_libdir}/prosody/net/http/server.lua
%{_libdir}/prosody/net/http.lua
%{_libdir}/prosody/net/httpserver.lua
%{_libdir}/prosody/net/server_event.lua
%{_libdir}/prosody/net/server.lua
%{_libdir}/prosody/net/server_select.lua
%{_libdir}/prosody/prosody.version
%dir %{_libdir}/prosody/util
%{_libdir}/prosody/util/adhoc.lua
%{_libdir}/prosody/util/array.lua
%{_libdir}/prosody/util/caps.lua
%{_libdir}/prosody/util/dataforms.lua
%{_libdir}/prosody/util/datamanager.lua
%{_libdir}/prosody/util/datetime.lua
%{_libdir}/prosody/util/debug.lua
%{_libdir}/prosody/util/dependencies.lua
%{_libdir}/prosody/util/encodings.so
%{_libdir}/prosody/util/envload.lua
%{_libdir}/prosody/util/events.lua
%{_libdir}/prosody/util/filters.lua
%{_libdir}/prosody/util/hashes.so
%{_libdir}/prosody/util/helpers.lua
%{_libdir}/prosody/util/hmac.lua
%{_libdir}/prosody/util/http.lua
%{_libdir}/prosody/util/import.lua
%{_libdir}/prosody/util/ip.lua
%{_libdir}/prosody/util/iterators.lua
%{_libdir}/prosody/util/jid.lua
%{_libdir}/prosody/util/json.lua
%{_libdir}/prosody/util/logger.lua
%{_libdir}/prosody/util/multitable.lua
%{_libdir}/prosody/util/net.so
%{_libdir}/prosody/util/openssl.lua
%{_libdir}/prosody/util/pluginloader.lua
%{_libdir}/prosody/util/pposix.so
%{_libdir}/prosody/util/prosodyctl.lua
%{_libdir}/prosody/util/pubsub.lua
%{_libdir}/prosody/util/rfc6724.lua
%dir %{_libdir}/prosody/util/sasl
%{_libdir}/prosody/util/sasl/anonymous.lua
%{_libdir}/prosody/util/sasl_cyrus.lua
%{_libdir}/prosody/util/sasl/digest-md5.lua
%{_libdir}/prosody/util/sasl.lua
%{_libdir}/prosody/util/sasl/plain.lua
%{_libdir}/prosody/util/sasl/scram.lua
%{_libdir}/prosody/util/serialization.lua
%{_libdir}/prosody/util/set.lua
%{_libdir}/prosody/util/signal.so
%{_libdir}/prosody/util/sql.lua
%{_libdir}/prosody/util/stanza.lua
%{_libdir}/prosody/util/template.lua
%{_libdir}/prosody/util/termcolours.lua
%{_libdir}/prosody/util/throttle.lua
%{_libdir}/prosody/util/timer.lua
%{_libdir}/prosody/util/uuid.lua
%{_libdir}/prosody/util/watchdog.lua
%{_libdir}/prosody/util/x509.lua
%{_libdir}/prosody/util/xml.lua
%{_libdir}/prosody/util/xmppstream.lua
%{_mandir}/man1/prosodyctl.1*
%dir %attr(-,prosody,prosody) %{_localstatedir}/lib/prosody
%dir %attr(-,prosody,prosody) %{_localstatedir}/log/prosody
%if %{with systemd}
%{_sbindir}/rcprosody
%{_unitdir}/%{name}.service
%{_tmpfilesdir}/%{name}.conf
%dir %attr(0755,prosody,prosody) %ghost %{_piddir}/prosody
%else
%dir %attr(0755,prosody,prosody) %{_piddir}/prosody
%endif # systemd
%changelog