Johan Cwiklinski d3805ac
%{!?_initddir: %{expand: %%global _initddir %{_initrddir}}}
Johan Cwiklinski d3805ac
%if 0%{?rhel} == 5
Johan Cwiklinski d3805ac
%global _sharedstatedir %{_localstatedir}/lib
Johan Cwiklinski d3805ac
%endif
Johan Cwiklinski d3805ac
Johan Cwiklinski d3805ac
%global sslcert %{_sysconfdir}/pki/tls/certs/prosody.crt
Johan Cwiklinski d3805ac
%global sslkey %{_sysconfdir}/pki/tls/private/prosody.key
Johan Cwiklinski d3805ac
bdc9216
%global luaver 5.1
Johan Cwiklinski d3805ac
Johan Cwiklinski d3805ac
Name:           prosody
bdc9216
Version:        0.9.4
ffaa92a
Release:        1%{?dist}
Johan Cwiklinski d3805ac
Summary:        Flexible communications server for Jabber/XMPP
Johan Cwiklinski d3805ac
Johan Cwiklinski d3805ac
Group:          System Environment/Daemons
Johan Cwiklinski d3805ac
License:        MIT
Johan Cwiklinski d3805ac
URL:            http://prosody.im/
bdc9216
Source0:        https://prosody.im/downloads/source/%{name}-%{version}.tar.gz
Johan Cwiklinski d3805ac
Source1:        %{name}.init
Johan Cwiklinski d3805ac
Source2:        %{name}.tmpfiles
Johan Cwiklinski d3805ac
Source3:        %{name}.service
Johan Cwiklinski d3805ac
Patch0:         %{name}.config.patch
Johan Cwiklinski d3805ac
Patch1:         %{name}.sslcerts.patch
Johan Cwiklinski d3805ac
BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
Johan Cwiklinski d3805ac
Johan Cwiklinski d3805ac
BuildRequires:  libidn-devel
Johan Cwiklinski d3805ac
BuildRequires:  openssl-devel
Johan Cwiklinski d3805ac
%if 0%{?fedora} >= 15 || 0%{?rhel} >= 7
Johan Cwiklinski d3805ac
BuildRequires:  systemd-units
Johan Cwiklinski d3805ac
%endif
Johan Cwiklinski d3805ac
%if 0%{?fedora} >= 15 || 0%{?rhel} >= 7
Johan Cwiklinski d3805ac
Requires(post): systemd-units
Johan Cwiklinski d3805ac
Requires(preun): systemd-units
Johan Cwiklinski d3805ac
Requires(postun): systemd-units
Johan Cwiklinski d3805ac
%endif
bdc9216
%if 0%{?fedora} >= 20
bdc9216
# Prosody does not work with lua-5.2 and newer, luajit should always be
bdc9216
# lua-5.1 compatible, so use luajit instead of lua on F20+.
bdc9216
Requires: luajit
bdc9216
Requires: lua-expat-compat
bdc9216
Requires: lua-sec-compat
bdc9216
Requires: lua-filesystem-compat
bdc9216
Requires: lua-dbi-compat
bdc9216
BuildRequires:  compat-lua-devel
bdc9216
%else
Johan Cwiklinski d3805ac
%if 0%{?fedora} >= 16 || 0%{?rhel} >= 7
Johan Cwiklinski d3805ac
Requires: lua(abi) = %{luaver}
Johan Cwiklinski d3805ac
%else
Johan Cwiklinski d3805ac
Requires: lua >= %{luaver}
Johan Cwiklinski d3805ac
%endif
bdc9216
BuildRequires:  lua-devel
bdc9216
Requires:  lua-expat
bdc9216
Requires:  lua-sec
bdc9216
Requires:  lua-filesystem
bdc9216
Requires:  lua-dbi
bdc9216
%endif
Johan Cwiklinski d3805ac
Johan Cwiklinski d3805ac
%description
Johan Cwiklinski d3805ac
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
Johan Cwiklinski d3805ac
to be easy to extend and give a flexible system on which to rapidly 
Johan Cwiklinski d3805ac
develop added functionality, or prototype new protocols.
Johan Cwiklinski d3805ac
Johan Cwiklinski d3805ac
Johan Cwiklinski d3805ac
%prep
ffaa92a
%setup -q -n %{name}-%{version}
Johan Cwiklinski d3805ac
%patch0 -p1
Johan Cwiklinski d3805ac
# remove default ssl certificates
Johan Cwiklinski d3805ac
%patch1 -p1
Johan Cwiklinski d3805ac
#do the sed atfer patch1, to avoid a i686 build issue
Johan Cwiklinski d3805ac
sed -e 's|$(PREFIX)/lib|$(PREFIX)/%{_lib}|' -i Makefile
Johan Cwiklinski d3805ac
rm -rf certs/
Johan Cwiklinski d3805ac
# fix wrong end of line encoding
Johan Cwiklinski d3805ac
pushd doc
Johan Cwiklinski d3805ac
sed -i -e 's|\r||g' stanza.txt session.txt roster_format.txt
Johan Cwiklinski d3805ac
popd
Johan Cwiklinski d3805ac
Johan Cwiklinski d3805ac
Johan Cwiklinski d3805ac
%build
Johan Cwiklinski d3805ac
./configure \
Johan Cwiklinski d3805ac
  --with-lua='' \
bdc9216
  --with-lua-include=%{_includedir}/lua-5.1 \
bdc9216
  --runwith=/usr/bin/luajit \
Johan Cwiklinski d3805ac
  --prefix=%{_prefix}
Johan Cwiklinski d3805ac
make %{?_smp_mflags} CFLAGS="$RPM_OPT_FLAGS -fPIC"
Johan Cwiklinski d3805ac
Johan Cwiklinski d3805ac
Johan Cwiklinski d3805ac
%install
Johan Cwiklinski d3805ac
rm -rf $RPM_BUILD_ROOT
Johan Cwiklinski d3805ac
make install DESTDIR=$RPM_BUILD_ROOT
Johan Cwiklinski d3805ac
#fix perms
Johan Cwiklinski d3805ac
chmod -x $RPM_BUILD_ROOT%{_libdir}/%{name}/%{name}.version
Johan Cwiklinski d3805ac
#avoid rpmlint unstripped-binary-or-object warnings
Johan Cwiklinski d3805ac
chmod 0755 $RPM_BUILD_ROOT%{_libdir}/%{name}/util/*.so
Johan Cwiklinski d3805ac
Johan Cwiklinski d3805ac
#directories for datadir and pids
Johan Cwiklinski d3805ac
mkdir -p $RPM_BUILD_ROOT%{_sharedstatedir}/%{name}
Johan Cwiklinski d3805ac
chmod 0755 $RPM_BUILD_ROOT%{_sharedstatedir}/%{name}
Johan Cwiklinski d3805ac
mkdir -p $RPM_BUILD_ROOT%{_localstatedir}/run/%{name}
Johan Cwiklinski d3805ac
Johan Cwiklinski d3805ac
%if 0%{?fedora} >= 15 || 0%{?rhel} >= 7
Johan Cwiklinski d3805ac
#systemd stuff
Johan Cwiklinski d3805ac
mkdir -p $RPM_BUILD_ROOT%{_unitdir}
Johan Cwiklinski d3805ac
install -p -m 644 %{SOURCE3} $RPM_BUILD_ROOT%{_unitdir}/%{name}.service
Johan Cwiklinski d3805ac
Johan Cwiklinski d3805ac
#tmpfiles.d stuff
Johan Cwiklinski d3805ac
mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/tmpfiles.d
Johan Cwiklinski d3805ac
install -p -m 644 %{SOURCE2} $RPM_BUILD_ROOT%{_sysconfdir}/tmpfiles.d/%{name}.conf
Johan Cwiklinski d3805ac
%else
Johan Cwiklinski d3805ac
#install initd script
Johan Cwiklinski d3805ac
mkdir -p $RPM_BUILD_ROOT%{_initddir}
Johan Cwiklinski d3805ac
install -m755 %{SOURCE1} $RPM_BUILD_ROOT%{_initddir}/%{name}
Johan Cwiklinski d3805ac
%endif
Johan Cwiklinski d3805ac
Johan Cwiklinski d3805ac
Johan Cwiklinski d3805ac
%clean
Johan Cwiklinski d3805ac
rm -rf $RPM_BUILD_ROOT
Johan Cwiklinski d3805ac
Johan Cwiklinski d3805ac
Johan Cwiklinski d3805ac
%pre
Johan Cwiklinski d3805ac
%{_sbindir}/useradd -d %{_sharedstatedir}/%{name} -r -s /sbin/nologin %{name} 2> /dev/null || :
Johan Cwiklinski d3805ac
Johan Cwiklinski d3805ac
Johan Cwiklinski d3805ac
%preun
Johan Cwiklinski 0bbaa5f
%if 0%{?fedora} >= 15 || 0%{?rhel} >= 7
Johan Cwiklinski 0bbaa5f
%systemd_preun %{name}.service
Johan Cwiklinski 0bbaa5f
%else
Johan Cwiklinski d3805ac
if [ $1 = 0 ]; then
Johan Cwiklinski d3805ac
    # Package removal, not upgrade
Johan Cwiklinski d3805ac
    service %{name} stop > /dev/null 2>&1 || :
Johan Cwiklinski d3805ac
    chkconfig --del %{name} || :
Johan Cwiklinski d3805ac
fi
Johan Cwiklinski 0bbaa5f
%endif
Johan Cwiklinski d3805ac
Johan Cwiklinski d3805ac
%post
Johan Cwiklinski 0bbaa5f
%if 0%{?fedora} >= 15 || 0%{?rhel} >= 7
Johan Cwiklinski 0bbaa5f
%systemd_post %{name}.service
Johan Cwiklinski 0bbaa5f
%else
Johan Cwiklinski d3805ac
if [ $1 -eq 1 ] ; then
Johan Cwiklinski d3805ac
    # Initial installation
Johan Cwiklinski d3805ac
    chkconfig --add %{name} || :
Johan Cwiklinski d3805ac
fi
Johan Cwiklinski 0bbaa5f
%endif
Johan Cwiklinski d3805ac
umask 077
Johan Cwiklinski d3805ac
if [ ! -f %{sslkey} ] ; then
Johan Cwiklinski d3805ac
%{_bindir}/openssl genrsa 1024 > %{sslkey} 2> /dev/null
Johan Cwiklinski 7083ae9
chown root:%{name} %{sslkey}
Johan Cwiklinski 7083ae9
chmod 640 %{sslkey}
Johan Cwiklinski d3805ac
fi
Johan Cwiklinski d3805ac
Johan Cwiklinski d3805ac
FQDN=`hostname`
Johan Cwiklinski d3805ac
if [ "x${FQDN}" = "x" ]; then
Johan Cwiklinski d3805ac
   FQDN=localhost.localdomain
Johan Cwiklinski d3805ac
fi
Johan Cwiklinski d3805ac
Johan Cwiklinski d3805ac
if [ ! -f %{sslcert} ] ; then
Johan Cwiklinski d3805ac
cat << EOF | %{_bindir}/openssl req -new -key %{sslkey} \
Johan Cwiklinski d3805ac
         -x509 -days 365 -set_serial $RANDOM \
Johan Cwiklinski d3805ac
         -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
Johan Cwiklinski 7083ae9
chmod 644 %{sslcert}
Johan Cwiklinski d3805ac
fi
Johan Cwiklinski d3805ac
Johan Cwiklinski d3805ac
Johan Cwiklinski d3805ac
%if 0%{?fedora} >= 15 || 0%{?rhel} >= 7
Johan Cwiklinski d3805ac
%postun
Johan Cwiklinski 0bbaa5f
%systemd_postun_with_restart %{name}.service
Johan Cwiklinski d3805ac
%endif
Johan Cwiklinski d3805ac
Johan Cwiklinski d3805ac
Johan Cwiklinski d3805ac
%files
Johan Cwiklinski d3805ac
%defattr(-,root,root,-)
Johan Cwiklinski d3805ac
%doc AUTHORS COPYING HACKERS README TODO doc/*
Johan Cwiklinski d3805ac
%{_bindir}/%{name}
Johan Cwiklinski d3805ac
%{_bindir}/%{name}ctl
Johan Cwiklinski d3805ac
%dir %{_libdir}/%{name}
Johan Cwiklinski d3805ac
%{_libdir}/%{name}/*
Johan Cwiklinski d3805ac
%dir %{_sysconfdir}/%{name}
Johan Cwiklinski 7083ae9
%config(noreplace) %attr(0640, root, %{name}) %{_sysconfdir}/%{name}/*
Johan Cwiklinski d3805ac
%if 0%{?fedora} >= 15 || 0%{?rhel} >= 7
Johan Cwiklinski d3805ac
%config(noreplace) %{_sysconfdir}/tmpfiles.d/%{name}.conf
Johan Cwiklinski d3805ac
%{_unitdir}/%{name}.service
Johan Cwiklinski d3805ac
%else
Johan Cwiklinski d3805ac
%{_initddir}/%{name}
Johan Cwiklinski d3805ac
%endif
Johan Cwiklinski d3805ac
%{_mandir}/man1/*.1.gz
Johan Cwiklinski d3805ac
%dir %attr(-, %{name}, %{name}) %{_sharedstatedir}/%{name}
Johan Cwiklinski d3805ac
%dir %attr(-, %{name}, %{name}) %{_localstatedir}/run/%{name}
Johan Cwiklinski d3805ac
Johan Cwiklinski d3805ac
Johan Cwiklinski d3805ac
%changelog
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