Blob Blame History Raw
Name:           ejabberd
Version:        2.0.5
Release:        2%{?dist}
Summary:        A distributed, fault-tolerant Jabber/XMPP server

Group:          Applications/Internet
License:        GPLv2+
URL:            http://www.ejabberd.im/
Source0:        http://www.process-one.net/downloads/%{name}/%{version}/%{name}-%{version}.tar.gz
Source1:        ejabberd.init
Source2:        ejabberd.logrotate
Source3:	ejabberd.sysconfig

# http://www.ejabberd.im/mod_ctlextra
# svn export -r 873 https://svn.process-one.net/ejabberd-modules/mod_ctlextra/trunk/src/mod_ctlextra.erl
Source4:        mod_ctlextra.erl

# The following were extracted from a patch found on http://realloc.spb.ru/share/ejabberdad.html
Source5:        ejabberd_auth_ad.erl
Source6:        mod_shared_roster_ad.erl
Source7:        mod_vcard_ad.erl

# PAM support
Source9:        ejabberdctl.pam
Source10:       ejabberdctl.apps
Source11:       ejabberd.pam

# Fedora-specific stuff - fixing paths
Patch1: ejabberd-build.patch
# BZ# 439583, 452326, 451554, 465196
Patch2: ejabberd-ejabberdctl_fix.diff
# Use ejabberd as an example for PAM service name
Patch3: ejabberd-ejabberd_cfg_pam_name.diff
# CAPTCHA support, see https://support.process-one.net/doc/display/XAAI/Fighting+Multi-User+Chat+SPAM+with+CAPTCHA
# wget https://support.process-one.net/secure/attachment/13851/XEP-0158_ejabberd-2.0.4.patch -O ejabberd-captcha.patch
Patch4: ejabberd-captcha.patch


BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)

BuildRequires:  expat-devel
BuildRequires:  openssl-devel
BuildRequires:  pam-devel
BuildRequires:  erlang
BuildRequires:	dos2unix
%if %{undefined rhel}
BuildRequires:  hevea
%endif

Requires:       erlang
Requires:       usermode

Requires(pre): fedora-usermgmt
Requires(post): /sbin/chkconfig
Requires(post): /usr/bin/openssl
Requires(preun): /sbin/chkconfig
Requires(preun): /sbin/service
Requires(postun): /sbin/service

#https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=250253
ExcludeArch: ppc64

%description
ejabberd is a Free and Open Source distributed fault-tolerant
Jabber/XMPP server. It is mostly written in Erlang, and runs on many
platforms (tested on Linux, FreeBSD, NetBSD, Solaris, Mac OS X and
Windows NT/2000/XP).

%package doc
Summary: Documentation for ejabberd
Group: Documentation

%description doc
Documentation for ejabberd.

%pre
/usr/sbin/fedora-groupadd 27 -r ejabberd &>/dev/null || :
/usr/sbin/fedora-useradd  27 -r -s /sbin/nologin -d /var/lib/ejabberd -M \
                             -c 'ejabberd' -g ejabberd ejabberd &>/dev/null || :

%post
/sbin/chkconfig --add ejabberd

(cd /etc/ejabberd
if [ ! -f ejabberd.pem ]
then
    echo "Generating SSL certificate /etc/ejabberd/ejabberd.pem..."
    HOSTNAME=$(hostname -s)
    DOMAINNAME=$(hostname -d)
    openssl req -new -x509 -days 365 -nodes -out ejabberd.pem \
                -keyout ejabberd.pem > /dev/null 2>&1 <<+++
.
.
.
$DOMAINNAME
$HOSTNAME
ejabberd
root@$HOSTNAME.$DOMAINNAME
+++
chown ejabberd:ejabberd ejabberd.pem
chmod 600 ejabberd.pem
fi)

%preun
if [ $1 = 0 ]; then
        /sbin/service ejabberd stop >/dev/null 2>&1
        /sbin/chkconfig --del ejabberd
fi

%postun
if [ "$1" -ge "1" ]; then
        /sbin/service ejabberd condrestart >/dev/null 2>&1
fi

%prep
%setup -q
%patch1 -p0 -b .fix_paths
%patch2 -p0 -b .fix_user
%patch3 -p0 -b .pam_name
#%patch4 -p1 -b .captcha
dos2unix src/odbc/mssql.sql

cp %{S:4} src
cp %{S:5} src
cp %{S:6} src
cp %{S:7} src

%build
pushd src
%configure --enable-odbc --enable-debug --enable-pam
# doesn't builds on SMP currently
make
popd
%if %{undefined rhel}
pushd doc
make html pdf
popd
%endif

%install
rm -rf %{buildroot}

pushd src
make install DESTDIR=%{buildroot}
popd

chmod a+x %{buildroot}%{_libdir}/%{name}/priv/lib/*.so

%{__perl} -pi -e 's!./ssl.pem!/etc/ejabberd/ejabberd.pem!g' %{buildroot}/etc/ejabberd/ejabberd.cfg

mkdir -p %{buildroot}/var/log/ejabberd
mkdir -p %{buildroot}/var/lib/ejabberd/spool

mkdir -p %{buildroot}%{_bindir}
ln -s consolehelper %{buildroot}%{_bindir}/ejabberdctl
install -D -p -m 0644 %{S:9} %{buildroot}%{_sysconfdir}/pam.d/ejabberdctl
install -D -p -m 0644 %{S:10} %{buildroot}%{_sysconfdir}/security/console.apps/ejabberdctl
install -D -p -m 0644 %{S:11} %{buildroot}%{_sysconfdir}/pam.d/ejabberd

# install init-script
install -D -p -m 0755 %{S:1} %{buildroot}%{_initrddir}/ejabberd

# install config for logrotate
install -D -p -m 0644  %{S:2} %{buildroot}%{_sysconfdir}/logrotate.d/ejabberd

# install sysconfig file
install -D -p -m 0644  %{S:3} %{buildroot}%{_sysconfdir}/sysconfig/ejabberd

%{__perl} -pi -e 's!\@libdir\@!%{_libdir}!g'  %{buildroot}%{_initrddir}/ejabberd %{buildroot}%{_sysconfdir}/logrotate.d/ejabberd %{buildroot}%{_sbindir}/ejabberdctl
%{__perl} -pi -e 's!\@version\@!%{version}!g' %{buildroot}%{_initrddir}/ejabberd %{buildroot}%{_sysconfdir}/logrotate.d/ejabberd %{buildroot}%{_sbindir}/ejabberdctl

# BZ# 439583
%{__perl} -pi -e 's!MAINDIR=!MAINDIR=%{_libdir}/ejabberd!g' %{buildroot}%{_sbindir}/ejabberdctl

%clean
rm -rf %{buildroot}

%files
%defattr(-,root,root,-)
%doc COPYING src/odbc/mysql.sql src/odbc/mssql.sql src/odbc/pg.sql
# tools/captcha.sh

%attr(750,ejabberd,ejabberd) %dir %{_sysconfdir}/ejabberd
%attr(640,ejabberd,ejabberd) %config(noreplace) %{_sysconfdir}/ejabberd/ejabberd.cfg
%attr(640,ejabberd,ejabberd) %config(noreplace) %{_sysconfdir}/ejabberd/ejabberdctl.cfg
%attr(640,ejabberd,ejabberd) %config(noreplace) %{_sysconfdir}/ejabberd/inetrc

%{_initrddir}/ejabberd
%config(noreplace) %{_sysconfdir}/logrotate.d/ejabberd
%config(noreplace) %{_sysconfdir}/sysconfig/ejabberd
%config(noreplace) %{_sysconfdir}/pam.d/ejabberd
%config(noreplace) %{_sysconfdir}/pam.d/ejabberdctl
%config(noreplace) %{_sysconfdir}/security/console.apps/ejabberdctl
%{_bindir}/ejabberdctl
%{_sbindir}/ejabberdctl

%dir %{_libdir}/%{name}
%dir %{_libdir}/%{name}/ebin
%dir %{_libdir}/%{name}/priv
%dir %{_libdir}/%{name}/priv/bin
%attr(4750,root,ejabberd)    %{_libdir}/%{name}/priv/bin/epam
%dir %{_libdir}/%{name}/priv/lib
%dir %{_libdir}/%{name}/priv/msgs

%{_libdir}/%{name}/ebin/*.app
%{_libdir}/%{name}/ebin/*.beam
%{_libdir}/%{name}/priv/lib/*.so
%{_libdir}/%{name}/priv/msgs/*.msg

%attr(750,ejabberd,ejabberd) %dir /var/lib/ejabberd
%attr(750,ejabberd,ejabberd) %dir /var/lib/ejabberd/spool
%attr(750,ejabberd,ejabberd) %dir /var/log/ejabberd

%files doc
%defattr(-,root,root,-)
%if %{undefined rhel}
%doc ChangeLog COPYING doc/release_notes_* doc/*.pdf doc/*.html doc/*.png
%else
%doc ChangeLog COPYING doc/release_notes_*
%endif

%changelog
* Sat Apr  4 2009 Peter Lemenkov <lemenkov@gmail.com> 2.0.5-2
- Really disable CAPTCHA

* Fri Apr  3 2009 Peter Lemenkov <lemenkov@gmail.com> 2.0.5-1
- Ver. 2.0.5
- Temporarily disabled CAPTCHA support

* Sun Mar 15 2009 Peter Lemenkov <lemenkov@gmail.com> 2.0.4-2
- Support for CAPTCHA (XEP-0158)
- Updated mod_ctlextra.erl (fixed EJAB-789, EJAB-864)

* Sun Mar 15 2009 Peter Lemenkov <lemenkov@gmail.com> 2.0.4-1
- Ver. 2.0.4

* Tue Feb 24 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.0.3-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild

* Mon Jan 26 2009 Peter Lemenkov <lemenkov@gmail.com> 2.0.3-1
- Ver. 2.0.3
- Merged some stuff from git://dev.laptop.org/users/martin/ejabberd-xs.git

* Fri Jan 16 2009 Tomas Mraz <tmraz@redhat.com> 2.0.2-4
- rebuild with new openssl

* Thu Oct  2 2008 Peter Lemenkov <lemenkov@gmail.com> 2.0.2-3
- Fixed broken ejabberdctl (BZ# 465196)

* Sat Aug 30 2008 Peter Lemenkov <lemenkov@gmail.com> 2.0.2-2
- Added missing Requires

* Fri Aug 29 2008 Peter Lemenkov <lemenkov@gmail.com> 2.0.2-1
- Ver. 2.0.2

* Sat Aug  9 2008 Peter Lemenkov <lemenkov@gmail.com> 2.0.2-0.3.beta1
- PAM support (BZ# 452803)

* Sat Aug  9 2008 Peter Lemenkov <lemenkov@gmail.com> 2.0.2-0.2.beta1
- Fix build with --fuzz=0

* Sat Aug  9 2008 Peter Lemenkov <lemenkov@gmail.com> 2.0.2-0.1.beta1
- Version 2.0.2-beta1
- Fixed BZ# 452326
- Fixed BZ# 227270

* Sun Jun 22 2008 Peter Lemenkov <lemenkov@gmail.com> 2.0.1-4
- Last minute fix (issue with shortnames/fqdn)

* Sun Jun 22 2008 Peter Lemenkov <lemenkov@gmail.com> 2.0.1-3
-Fixed BZ# 439583, 452326, 451554

* Thu May 29 2008 Peter Lemenkov <lemenkov@gmail.com> 2.0.1-2
- Fixed BZ# 439583

* Sat May 24 2008 Peter Lemenkov <lemenkov@gmail.com> 2.0.1-1
- Ver. 2.0.1
- Upstreamed patches dropped
- No longer uses versioned libdir (/usr/lib/ejabberd-x.x.x)
- Added sql-scripts in docs-directory

* Mon May  5 2008 Peter Lemenkov <lemenkov@gmail.com> 2.0.0-3
- Fix build against R11B-2

* Sat Feb 23 2008 Peter Lemenkov <lemenkov@gmail.com> 2.0.0-2
- Disable docs again for EPEL (we haven't hevea for EPEL)

* Sat Feb 23 2008 Peter Lemenkov <lemenkov@gmail.com> 2.0.0-1
- Version 2.0.0

* Tue Feb 19 2008 Fedora Release Engineering <rel-eng@fedoraproject.org> - 2.0.0-0.4.rc1
- Autorebuild for GCC 4.3

* Wed Jan 23 2008 Peter Lemenkov <lemenkov@gmail.com> 2.0.0-0.3.rc1
- Really enabled some previously disabled modules

* Wed Jan 23 2008 Peter Lemenkov <lemenkov@gmail.com> 2.0.0-0.2.rc1
- Enabled some previously disabled modules

* Sat Jan 19 2008 Matej Cepl <mcepl@redhat.com> 2.0.0-0.1.rc1
- Upgrade to the current upsteram version.
- Make ejabberd.init LSB compliant (missing Provides: tag)

* Thu Dec 27 2007 Matej Cepl <mcepl@redhat.com> 2.0.0-0.beta1.mc.1
- Experimental build from the upstream betaversion.

* Tue Dec 11 2007 Matej Cepl <mcepl@redhat.com> 1.1.4-2.fc9
- rebuild against new ssl library.
- rebuild against the newest erlang (see Patch
- fix %%changelog

* Wed Sep  5 2007 Jeffrey C. Ollie <jeff@ocjtech.us> - 1.1.4-1
- Drop LDAP patch
- Update mod_ctlextra
- Update to 1.1.4

* Tue Sep  4 2007 Jeffrey C. Ollie <jeff@ocjtech.us> - 1.1.3-11
- Fix ejabberdctl wrapper script - #276071

* Wed Aug 22 2007 Jeffrey C. Ollie <jeff@ocjtech.us> - 1.1.3-10
- Re-exclude ppc64

* Wed Aug 22 2007 Jeffrey C. Ollie <jeff@ocjtech.us> - 1.1.3-9
- Fix license
- Don't exclude ppc64

* Wed Aug 22 2007 Jeffrey C. Ollie <jeff@ocjtech.us> - 1.1.3-8
- Bump & rebuild to build against latest erlang package.

* Tue Jul 31 2007 Jeffrey C. Ollie <jeff@ocjtech.us> - 1.1.3-7
- Bump release and rebuild due to Koji hiccups.

* Tue Jul 31 2007 Jeffrey C. Ollie <jeff@ocjtech.us> - 1.1.3-6
- Don't try building on PPC64 since hevea isn't available on PPC64.

* Tue Jul 31 2007 Jeffrey C. Ollie <jeff@ocjtech.us> - 1.1.3-5
- Sigh...

* Tue Jul 31 2007 Jeffrey C. Ollie <jeff@ocjtech.us> - 1.1.3-4
- Don't forget to add patch.

* Thu Jul 26 2007 Jeffrey C. Ollie <jeff@ocjtech.us> - 1.1.3-3
- Add ejabberdctl (#199873)
- Add patch to fix LDAP authentication. (#248268)
- Add a sleep in init script between stop/start when restarting.
- LSB compliance cleanups for init script. (#246917)
- Don't mention "reload" in the init script usage string. (#227254)

* Tue Jul 24 2007 Jeffrey C. Ollie <jeff@ocjtech.us> - 1.1.3-2
- Update mod_ctlextra

* Fri Feb  2 2007 Jeffrey C. Ollie <jeff@ocjtech.us> - 1.1.3-1
- Update to 1.1.3

* Wed Oct 11 2006 Jeffrey C. Ollie <jeff@ocjtech.us> - 1.1.2-2
- Fix logrotate script (BZ#210366)

* Mon Aug 28 2006 Jeffrey C. Ollie <jeff@ocjtech.us> - 1.1.1-10
- Bump release and rebuild.

* Mon Jul 3 2006 Jeffrey C. Ollie <jeff@ocjtech.us> - 1.1.1-9
- Updated init script - should hopefully fix some problems with status & stop commands.

* Mon Jun 26 2006 Jeffrey C. Ollie <jeff@ocjtech.us> - 1.1.1-8
- Bump release to that tagging works on FC-5.

* Thu Jun 22 2006 Jeffrey C. Ollie <jeff@ocjtech.us> - 1.1.1-7
- Oops drop bad patch.

* Thu Jun 22 2006 Jeffrey C. Ollie <jeff@ocjtech.us> - 1.1.1-6
- Split documentation off to a subpackage.
- Own %%{_libdir}/ejabberd-%{version}
- Mark %%{_sysconfdir}/logrotate.d/ejabberd as %%config

* Thu Jun  8 2006 Jeffrey C. Ollie <jeff@ocjtech.us> - 1.1.1-5
- Patch the makefile so that it adds a soname to shared libs.

* Fri May 26 2006 Jeffrey C. Ollie <jeff@ocjtech.us> - 1.1.1-4
- Modify AD modules not to check for group membership.

* Thu May 25 2006 Jeffrey C. Ollie <jeff@ocjtech.us> - 1.1.1-3
- Add some extra modules

* Wed May 24 2006 Jeffrey C. Ollie <jeff@ocjtech.us> - 1.1.1-2
- Munge Makefile.in a bit more...
- Change ownership/permissions - not *everything* needs to be owned by ejabberd

* Wed May 24 2006 Jeffrey C. Ollie <jeff@ocjtech.us> - 1.1.1-1
- First version for Fedora Extras