13f1b3f
%global sslcert    %{_sysconfdir}/pki/%{name}/localhost.crt
13f1b3f
%global sslkey     %{_sysconfdir}/pki/%{name}/localhost.key
13f1b3f
%global luaver     5.1
13f1b3f
13f1b3f
Summary:           Flexible communications server for Jabber/XMPP
13f1b3f
Name:              prosody
13f1b3f
Version:           0.9.8
13f1b3f
Release:           1%{?dist}
13f1b3f
License:           MIT
13f1b3f
Group:             System Environment/Daemons
13f1b3f
URL:               https://prosody.im/
13f1b3f
Source0:           https://prosody.im/downloads/source/%{name}-%{version}.tar.gz
13f1b3f
Source1:           prosody.init
13f1b3f
Source2:           prosody.logrotate-init
13f1b3f
Source3:           prosody.service
13f1b3f
Source4:           prosody.logrotate-service
13f1b3f
Source5:           prosody.tmpfilesd
13f1b3f
Source6:           prosody-localhost.cfg.lua
13f1b3f
Source7:           prosody-example.com.cfg.lua
13f1b3f
Patch0:            prosody-0.9.8-config.patch
13f1b3f
BuildRequires:     libidn-devel, openssl-devel
13f1b3f
Requires(pre):     shadow-utils
13f1b3f
%if 0%{?rhel} > 6 || 0%{?fedora} > 17
13f1b3f
Requires(post):    systemd, %{_bindir}/openssl
13f1b3f
Requires(preun):   systemd
13f1b3f
Requires(postun):  systemd
13f1b3f
BuildRequires:     systemd
13f1b3f
%else
13f1b3f
Requires(post):    /sbin/chkconfig, %{_bindir}/openssl
13f1b3f
Requires(preun):   /sbin/service, /sbin/chkconfig
13f1b3f
Requires(postun):  /sbin/service
Johan Cwiklinski d3805ac
%endif
13f1b3f
%if 0%{?rhel} > 7 || 0%{?fedora} > 19
13f1b3f
# Prosody does not work with lua >= 5.2, so use compat-lua instead of lua
13f1b3f
# on Fedora >= 20; luajit (compatible with 5.1) would be second choice.
13f1b3f
Requires:          compat-lua, lua-filesystem-compat, lua-expat-compat
13f1b3f
Requires:          lua-socket-compat, lua-sec-compat
13f1b3f
BuildRequires:     compat-lua-devel
bdc9216
%else
13f1b3f
%if 0%{?rhel} > 6 || 0%{?fedora} > 15
13f1b3f
Requires:          lua(abi) = %{luaver}
Johan Cwiklinski d3805ac
%else
13f1b3f
Requires:          lua >= %{luaver}
Johan Cwiklinski d3805ac
%endif
13f1b3f
Requires:          lua-filesystem, lua-expat, lua-socket, lua-sec
13f1b3f
BuildRequires:     lua-devel
bdc9216
%endif
13f1b3f
BuildRoot:         %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
Johan Cwiklinski d3805ac
Johan Cwiklinski d3805ac
%description
13f1b3f
Prosody is a flexible communications server for Jabber/XMPP written in Lua.
Johan Cwiklinski d3805ac
It aims to be easy to use, and light on resources. For developers it aims
13f1b3f
to be easy to extend and give a flexible system on which to rapidly develop
13f1b3f
added functionality, or prototype new protocols.
Johan Cwiklinski d3805ac
Johan Cwiklinski d3805ac
%prep
13f1b3f
%setup -q
13f1b3f
%patch0 -p1 -b .config
Johan Cwiklinski d3805ac
Johan Cwiklinski d3805ac
%build
Johan Cwiklinski d3805ac
./configure \
13f1b3f
  --prefix=%{_prefix} \
13f1b3f
  --libdir=%{_libdir} \
13f1b3f
%if 0%{?rhel} > 7 || 0%{?fedora} > 19
13f1b3f
  --with-lua-include=%{_includedir}/lua-%{luaver} \
13f1b3f
  --runwith=lua-%{luaver} \
13f1b3f
%endif
13f1b3f
  --cflags="$RPM_OPT_FLAGS -fPIC -D_GNU_SOURCE" \
13f1b3f
  --ldflags="$RPM_LD_FLAGS -shared" \
13f1b3f
  --no-example-certs
13f1b3f
make %{?_smp_mflags}
Johan Cwiklinski d3805ac
13f1b3f
# Make prosody-migrator
13f1b3f
make -C tools/migration %{?_smp_mflags}
Johan Cwiklinski d3805ac
Johan Cwiklinski d3805ac
%install
Johan Cwiklinski d3805ac
rm -rf $RPM_BUILD_ROOT
13f1b3f
mkdir -p $RPM_BUILD_ROOT{%{_sysconfdir}/pki,%{_localstatedir}/{lib,log}/%{name}}/
13f1b3f
make DESTDIR=$RPM_BUILD_ROOT install
Johan Cwiklinski d3805ac
13f1b3f
# Install prosody-migrator
13f1b3f
make -C tools/migration DESTDIR=$RPM_BUILD_ROOT install
Johan Cwiklinski d3805ac
13f1b3f
# Install ejabberd2prosody
13f1b3f
install -p -m 755 tools/ejabberd2prosody.lua $RPM_BUILD_ROOT%{_bindir}/ejabberd2prosody
13f1b3f
sed -e 's@;../?.lua@;%{_libdir}/%{name}/util/?.lua;%{_libdir}/%{name}/?.lua;@' \
13f1b3f
  -e '1s@ lua$@ lua-%{luaver}@' -i $RPM_BUILD_ROOT%{_bindir}/ejabberd2prosody
13f1b3f
touch -c -r tools/ejabberd2prosody.lua $RPM_BUILD_ROOT%{_bindir}/ejabberd2prosody
13f1b3f
install -p -m 644 tools/erlparse.lua $RPM_BUILD_ROOT%{_libdir}/%{name}/util/
13f1b3f
13f1b3f
# Move certificates directory and symlink it
13f1b3f
mv -f $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/certs/ $RPM_BUILD_ROOT%{_sysconfdir}/pki/%{name}/
13f1b3f
ln -s ../pki/%{name}/ $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/certs
13f1b3f
13f1b3f
# Install systemd/tmpfiles or initscript files
13f1b3f
%if 0%{?fedora} >= 15 || 0%{?rhel} >= 7
13f1b3f
install -D -p -m 644 %{SOURCE3} $RPM_BUILD_ROOT%{_unitdir}/%{name}.service
13f1b3f
install -D -p -m 644 %{SOURCE4} $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d/%{name}
13f1b3f
install -D -p -m 644 %{SOURCE5} $RPM_BUILD_ROOT%{_tmpfilesdir}/%{name}.conf
13f1b3f
mkdir -p $RPM_BUILD_ROOT/run/%{name}
Johan Cwiklinski d3805ac
%else
13f1b3f
install -D -p -m 755 %{SOURCE1} $RPM_BUILD_ROOT%{_sysconfdir}/rc.d/init.d/%{name}
13f1b3f
install -D -p -m 644 %{SOURCE2} $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d/%{name}
13f1b3f
mkdir -p $RPM_BUILD_ROOT%{_localstatedir}/run/%{name}
13f1b3f
sed -e 's@/run@%{_localstatedir}/run@' -i $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/prosody.cfg.lua
Johan Cwiklinski d3805ac
%endif
Johan Cwiklinski d3805ac
13f1b3f
# Keep configuration file timestamp
13f1b3f
touch -c -r prosody.cfg.lua.dist.config $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/prosody.cfg.lua
Johan Cwiklinski d3805ac
13f1b3f
# Install virtual host configuration
13f1b3f
install -D -p -m 644 %{SOURCE6} $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/conf.d/localhost.cfg.lua
13f1b3f
install -D -p -m 644 %{SOURCE7} $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/conf.d/example.com.cfg.lua
Johan Cwiklinski d3805ac
13f1b3f
# Fix permissions for rpmlint
13f1b3f
chmod 755 $RPM_BUILD_ROOT%{_libdir}/%{name}/util/*.so
Johan Cwiklinski d3805ac
13f1b3f
# Fix incorrect end-of-line encoding
13f1b3f
sed -e 's/\r//g' -i doc/stanza.txt doc/session.txt doc/roster_format.txt
Johan Cwiklinski d3805ac
13f1b3f
%clean
13f1b3f
rm -rf $RPM_BUILD_ROOT
Johan Cwiklinski d3805ac
13f1b3f
%pre
13f1b3f
getent group %{name} > /dev/null || %{_sbindir}/groupadd -r %{name}
13f1b3f
getent passwd %{name} > /dev/null || %{_sbindir}/useradd -r -g %{name} -d %{_localstatedir}/lib/%{name} -s /sbin/nologin -c "Prosody XMPP Server" %{name}
13f1b3f
exit 0
Johan Cwiklinski d3805ac
Johan Cwiklinski d3805ac
%post
13f1b3f
%if 0%{?rhel} > 6 || 0%{?fedora} > 17
Johan Cwiklinski 0bbaa5f
%systemd_post %{name}.service
Johan Cwiklinski 0bbaa5f
%else
13f1b3f
/sbin/chkconfig --add %{name}
Johan Cwiklinski 0bbaa5f
%endif
Johan Cwiklinski d3805ac
13f1b3f
if [ ! -f %{sslkey} ]; then
13f1b3f
  umask 077
13f1b3f
  %{_bindir}/openssl genrsa 2048 > %{sslkey} 2> /dev/null
13f1b3f
  chown root:%{name} %{sslkey}
13f1b3f
  chmod 640 %{sslkey}
Johan Cwiklinski d3805ac
fi
Johan Cwiklinski d3805ac
13f1b3f
if [ ! -f %{sslcert} ]; then
13f1b3f
  FQDN=`hostname`
13f1b3f
  if [ "x${FQDN}" = "x" ]; then
13f1b3f
    FQDN=localhost.localdomain
13f1b3f
  fi
13f1b3f
13f1b3f
  cat << EOF | %{_bindir}/openssl req -new -key %{sslkey} -x509 -sha256 -days 365 -set_serial $RANDOM -out %{sslcert} 2> /dev/null
Johan Cwiklinski d3805ac
--
Johan Cwiklinski d3805ac
SomeState
Johan Cwiklinski d3805ac
SomeCity
Johan Cwiklinski d3805ac
SomeOrganization
Johan Cwiklinski d3805ac
SomeOrganizationalUnit
Johan Cwiklinski d3805ac
${FQDN}
Johan Cwiklinski d3805ac
root@${FQDN}
Johan Cwiklinski d3805ac
EOF
13f1b3f
  chmod 644 %{sslcert}
Johan Cwiklinski d3805ac
fi
Johan Cwiklinski d3805ac
13f1b3f
%preun
13f1b3f
%if 0%{?rhel} > 6 || 0%{?fedora} > 17
13f1b3f
%systemd_preun %{name}.service
13f1b3f
%else
13f1b3f
if [ $1 -eq 0 ]; then
13f1b3f
  /sbin/service %{name} stop > /dev/null 2>&1 || :
13f1b3f
  /sbin/chkconfig --del %{name}
13f1b3f
fi
13f1b3f
%endif
Johan Cwiklinski d3805ac
Johan Cwiklinski d3805ac
%postun
13f1b3f
%if 0%{?rhel} > 6 || 0%{?fedora} > 17
Johan Cwiklinski 0bbaa5f
%systemd_postun_with_restart %{name}.service
13f1b3f
%else
13f1b3f
if [ $1 -ne 0 ]; then
13f1b3f
  /sbin/service %{name} condrestart > /dev/null 2>&1 || :
13f1b3f
fi
Johan Cwiklinski d3805ac
%endif
Johan Cwiklinski d3805ac
Johan Cwiklinski d3805ac
%files
Johan Cwiklinski d3805ac
%defattr(-,root,root,-)
13f1b3f
%{!?_licensedir:%global license %%doc}
13f1b3f
%license COPYING
13f1b3f
%doc AUTHORS HACKERS README doc/*
Johan Cwiklinski d3805ac
%{_bindir}/%{name}
Johan Cwiklinski d3805ac
%{_bindir}/%{name}ctl
13f1b3f
%{_bindir}/%{name}-migrator
13f1b3f
%{_bindir}/ejabberd2prosody
13f1b3f
%{_libdir}/%{name}/
13f1b3f
%dir %attr(750,root,%{name}) %{_sysconfdir}/pki/%{name}/
13f1b3f
%config(noreplace) %attr(0640,root,%{name}) %{_sysconfdir}/pki/%{name}/*
13f1b3f
%dir %attr(750,root,%{name}) %{_sysconfdir}/%{name}/
13f1b3f
%config(noreplace) %attr(0640,root,%{name}) %{_sysconfdir}/%{name}/*.cfg.lua
13f1b3f
%dir %attr(750,root,%{name}) %{_sysconfdir}/%{name}/conf.d/
13f1b3f
%config(noreplace) %attr(0640,root,%{name}) %{_sysconfdir}/%{name}/conf.d/*.cfg.lua
13f1b3f
%attr(750,root,%{name}) %{_sysconfdir}/%{name}/certs
13f1b3f
%config(noreplace) %{_sysconfdir}/logrotate.d/%{name}
13f1b3f
%if 0%{?rhel} > 6 || 0%{?fedora} > 17
Johan Cwiklinski d3805ac
%{_unitdir}/%{name}.service
13f1b3f
%{_tmpfilesdir}/%{name}.conf
13f1b3f
%dir %attr(0755,%{name},%{name}) /run/%{name}/
Johan Cwiklinski d3805ac
%else
13f1b3f
%{_sysconfdir}/rc.d/init.d/%{name}
13f1b3f
%dir %attr(0755,%{name},%{name}) %{_localstatedir}/run/%{name}/
Johan Cwiklinski d3805ac
%endif
13f1b3f
%dir %attr(750,%{name},%{name}) %{_localstatedir}/lib/%{name}/
13f1b3f
%dir %attr(750,%{name},%{name}) %{_localstatedir}/log/%{name}/
13f1b3f
%{_mandir}/man1/%{name}*.1*
Johan Cwiklinski d3805ac
Johan Cwiklinski d3805ac
%changelog
13f1b3f
* Sat Apr 18 2015 Robert Scheck <robert@fedoraproject.org> 0.9.8-1
13f1b3f
- Upgrade to 0.9.8 (#1152126)
13f1b3f
13f1b3f
* Sat Feb 14 2015 Robert Scheck <robert@fedoraproject.org> 0.9.7-1
13f1b3f
- Upgrade to 0.9.7 (#985563, #1152126)
13f1b3f
c26412a
* Sun Aug 17 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.9.4-4
c26412a
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild
c26412a
bf3084b
* Sat Jun 07 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.9.4-3
bf3084b
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
bf3084b
c86ab6b
* Tue Jun 03 2014 Jan Kaluza <jkaluza@redhat.com> - 0.9.4-2
c86ab6b
- add missing lua-socket-compat dependency
c86ab6b
bdc9216
* Fri May 30 2014 Jan Kaluza <jkaluza@redhat.com> - 0.9.4-1
bdc9216
- update to version 0.9.4
bdc9216
- build with luajit
bdc9216
Johan Cwiklinski 9e55a7a
* Wed Sep 11 2013 Johan Cwiklinski <johan AT x-tnd DOT be> - 0.9.1-1
Johan Cwiklinski 9e55a7a
- Update to 0.9.1
Johan Cwiklinski 9e55a7a
ffaa92a
* Thu Aug 22 2013 Matěj Cepl <mcepl@redhat.com> - 0.9.0-1
ffaa92a
- Final upstream release.
ffaa92a
Johan Cwiklinski 7473ee6
* Wed Aug 07 2013 Johan Cwiklinski <johan AT x-tnd DOT be> - 0.9.0-0.5.rc5
Johan Cwiklinski 7473ee6
- Update to 0.9.0rc5
Johan Cwiklinski 7473ee6
Johan Cwiklinski f775893
* Fri Jun 21 2013 Johan Cwiklinski <johan AT x-tnd DOT be> - 0.9.0-0.4.rc4
Johan Cwiklinski f775893
- Update to 0.9.0rc4
Johan Cwiklinski f775893
Johan Cwiklinski 27084b5
* Fri Jun 21 2013 Johan Cwiklinski <johan AT x-tnd DOT be> - 0.9.0-0.3.rc3
Johan Cwiklinski 27084b5
- Update to 0.9.0rc3
Johan Cwiklinski 27084b5
Johan Cwiklinski cb90849
* Fri Jun 07 2013 Johan Cwiklinski <johan AT x-tnd DOT be> - 0.9.0-0.2.rc2
Johan Cwiklinski cb90849
- Update to 0.9.0rc2
Johan Cwiklinski cb90849
a27991a
* Wed May 15 2013 Tom Callaway <spot@fedoraproject.org> - 0.9.0-0.1.beta1
a27991a
- update to 0.9.0beta1, rebuild for lua 5.2
a27991a
Johan Cwiklinski 7083ae9
* Sat Apr 27 2013 Robert Scheck <robert@fedoraproject.org> - 0.8.2-9
Johan Cwiklinski 7083ae9
- Apply wise permissions to %%{_sysconfdir}/%%{name} (#955384)
Johan Cwiklinski 7083ae9
- Apply wise permissions to default SSL certificates (#955380)
Johan Cwiklinski 7083ae9
- Do not ship %%{_sysconfdir}/%%{name}/certs by default (#955385)
Johan Cwiklinski 7083ae9
8565854
* Thu Feb 14 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.8.2-8
8565854
- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild
8565854
Johan Cwiklinski 0bbaa5f
* Thu Sep 27 2012 Johan Cwiklinski <johan At x-tnd DOt be> 0.8.2-7
Johan Cwiklinski 0bbaa5f
- Use systemd-rpm macros, bz #850282
Johan Cwiklinski 0bbaa5f
7fb8d29
* Sat Jul 21 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.8.2-6
7fb8d29
- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
7fb8d29
Johan Cwiklinski d3805ac
* Mon May 07 2012 Johan Cwiklinski <johan AT x-tnd DOT be> 0.8.2-5
Johan Cwiklinski d3805ac
- Missing rhel %%ifs
Johan Cwiklinski d3805ac
- Change the way SSL certificate is generated
Johan Cwiklinski d3805ac
Johan Cwiklinski d3805ac
* Sun May 06 2012 Johan Cwiklinski <johan AT x-tnd DOT be> 0.8.2-4
Johan Cwiklinski d3805ac
- ghost %%{_localstatedir}/run/%%{name}
Johan Cwiklinski d3805ac
Johan Cwiklinski d3805ac
* Sun May 06 2012 Johan Cwiklinski <johan AT x-tnd DOT be> 0.8.2-3
Johan Cwiklinski d3805ac
- Add missing requires
Johan Cwiklinski d3805ac
- Add rhel %%ifs
Johan Cwiklinski d3805ac
Johan Cwiklinski d3805ac
* Mon Mar 05 2012 Johan Cwiklinski <johan AT x-tnd DOT be> 0.8.2-2
Johan Cwiklinski d3805ac
- Switch to systemd for Fedora >= 15, keep sysv for EPEL builds
Johan Cwiklinski d3805ac
- Remove some macros that should not be used
Johan Cwiklinski d3805ac
Johan Cwiklinski d3805ac
* Thu Jun 23 2011 Johan Cwiklinski <johan AT x-tnd DOT be> 0.8.2-1.trashy
Johan Cwiklinski d3805ac
- 0.8.2
Johan Cwiklinski d3805ac
Johan Cwiklinski d3805ac
* Tue Jun 7 2011 Johan Cwiklinski <johan AT x-tnd DOT be> 0.8.1-1.trashy
Johan Cwiklinski d3805ac
- 0.8.1
Johan Cwiklinski d3805ac
Johan Cwiklinski d3805ac
* Sun May 8 2011 Johan Cwiklinski <johan AT x-tnd DOT be> 0.8.0-3.trashy
Johan Cwiklinski d3805ac
- tmpfiles.d configuration for F-15
Johan Cwiklinski d3805ac
Johan Cwiklinski d3805ac
* Sat Apr 16 2011 Johan Cwiklinski <johan AT x-tnd DOT be> 0.8.0-2.trashy
Johan Cwiklinski d3805ac
- Now requires lua-dbi
Johan Cwiklinski d3805ac
Johan Cwiklinski d3805ac
* Fri Apr 8 2011 Johan Cwiklinski <johan AT x-tnd DOT be> 0.8.0-1.trashy
Johan Cwiklinski d3805ac
- 0.8.0
Johan Cwiklinski d3805ac
Johan Cwiklinski d3805ac
* Sun Jan 23 2011 Johan Cwiklinski <johan AT x-tnd DOT be> 0.7.0-4.trashy
Johan Cwiklinski d3805ac
- Redefine _initddir and _sharedstatedir marcos for EL-5
Johan Cwiklinski d3805ac
Johan Cwiklinski d3805ac
* Sat Dec 11 2010 Johan Cwiklinski <johan AT x-tnd DOT be> 0.7.0-3
Johan Cwiklinski d3805ac
- Apply ssl patch before sed on libdir; to avoid a patch context issue 
Johan Cwiklinski d3805ac
  building on i686 
Johan Cwiklinski d3805ac
Johan Cwiklinski d3805ac
* Sat Sep 11 2010 Johan Cwiklinski <johan AT x-tnd DOT be> 0.7.0-2
Johan Cwiklinski d3805ac
- No longer ships default ssl certificates, generates one at install
Johan Cwiklinski d3805ac
Johan Cwiklinski d3805ac
* Wed Jul 14 2010 Johan Cwiklinski <johan AT x-tnd DOT be> 0.7.0-1
Johan Cwiklinski d3805ac
- Update to 0.7.0
Johan Cwiklinski d3805ac
Johan Cwiklinski d3805ac
* Wed Apr 28 2010 Johan Cwiklinski <johan AT x-tnd DOT be> 0.6.2-1
Johan Cwiklinski d3805ac
- Update to 0.6.2
Johan Cwiklinski d3805ac
Johan Cwiklinski d3805ac
* Thu Dec 31 2009 Johan Cwiklinski <johan AT x-tnd DOT be> 0.6.1-1
Johan Cwiklinski d3805ac
- Initial packaging