File jabberd.spec of Package jabberd

# vim: set ts=4 sw=4 et:

# Copyright (c) 2011-2012 Pascal Bleser <pascal.bleser@opensuse.org>
# Copyright (c) 2004-2012 SUSE GmbH
#
# 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/


Name:           jabberd
BuildRequires:  openssl-devel
BuildRequires:  postgresql-devel
BuildRequires:  sqlite-devel
BuildRequires:  db-devel
BuildRequires:  libidn-devel
BuildRequires:  openldap2-devel
BuildRequires:  pam-devel
BuildRequires:  udns-devel
BuildRequires:  gcc-c++
BuildRequires:  pkgconfig
BuildRequires:  cppunit-devel
BuildRequires:  libexpat-devel
BuildRequires:  mysql-devel
BuildRequires:  systemd-rpm-macros
BuildRequires:  check-devel
BuildRequires:  libgsasl-devel
Version:        2.7.0
Release:        0
Url:            https://github.com/Jabberd2
Group:          Productivity/Networking/Other
License:        GPL-2.0+
Summary:        Jabber Open Source Server
Source:         https://github.com/jabberd2/jabberd2/releases/download/jabberd-%version/jabberd-%version.tar.xz
Source2:        jabberd.pam
Source3:        jabberd-rpmlintrc
Patch5:         jabberd-etc.patch
Patch6:         jabberd-libpq.patch
# Needed for init script,
PreReq:         pwdutils
AutoReqProv:    on
BuildRoot:      %{_tmppath}/%name-%version-build

%description
Jabber open source server.

%debug_package
%package sqlite
Summary:        SQLite backend for jabberd
Group:          Productivity/Networking/Other
Requires:       %name = %version

%description sqlite
This package contains the database drivers needed to use
SQLite as a storage and authentication backend for jabberd.

%package mysql
Summary:        MySQL backend for jabberd
Group:          Productivity/Networking/Other
Requires:       %name = %version


%description mysql
This package contains the database drivers needed to use
MySQL as a storage and authentication backend for jabberd.

%package pgsql
Summary:        PostgreSQL backend for jabberd2
Group:          Productivity/Networking/Other
Requires:       %name = %version

%description pgsql
This package contains the database drivers needed to use
PostgreSQL as a storage and authentication backend for jabberd.

%package db
Summary:        Berkeley DB backend for jabberd2
Group:          Productivity/Networking/Other
Requires:       %name = %version

%description db
This package contains the database drivers needed to use
Berkeley DB as a storage and authentication backend for jabberd.

%package ldap
Summary:        LDAP backend for jabberd2
Group:          Productivity/Networking/Other
Requires:       %name = %version

%description ldap
This package contains the database drivers needed to use
LDAP as a storage and authentication backend for jabberd.

%package pam
Summary:        PAM backend for jabberd2
Group:          Productivity/Networking/Other
Requires:       %name = %version

%description pam
This package contains the driver needed to use
PAM as an authentication backend for jabberd.

%prep
%setup -q
%patch5
touch -r configure.ac zzz
%patch6
touch configure.ac -r zzz

%__sed -i 's/\r$//' tools/db-update.sqlite

%build
CFLAGS="%optflags -fno-strict-aliasing"
%configure \
    --sysconfdir=/etc/jabberd \
    --localstatedir=/var/lib \
    --enable-ssl \
    --enable-mysql \
    --enable-pgsql \
    --enable-sqlite \
    --enable-db \
    --enable-ldap \
    --enable-pam \
    --enable-pipe \
    --enable-anon \
    --enable-fs \
    --enable-debug \
    --enable-tests \
    --enable-superseded
make

%if 0%{?suse_version} >= 1311
%check
make -C tests/ check
%endif

%install
make DESTDIR=%buildroot install
install -d -m750 %buildroot/etc/pam.d %buildroot/usr/sbin
install -m0644 %{S:2} %buildroot/etc/pam.d/jabberd
mkdir -p %buildroot/var/lib/jabberd/{db,pid,log,stats,fs}
ln -s service %buildroot%{_sbindir}/rcjabberd-router
ln -s service %buildroot%{_sbindir}/rcjabberd-c2s
ln -s service %buildroot%{_sbindir}/rcjabberd
ln -s service %buildroot%{_sbindir}/rcjabberd-sm
ln -s service %buildroot%{_sbindir}/rcjabberd-s2s
# .la files are not needed for loadable modules.
rm -f %buildroot%_libdir/%name/*.la

%__rm -rf "%{buildroot}%{_prefix}/etc"

echo "%defattr(-,root,root,-)" > mods.lst
for mod in \
    active amp announce deliver disco echo help \
    iq-{last,ping,private,time,vcard,version} \
    offline pep presence privacy \
    roster-publish roster session status \
    template-roster vacation validate verify; do
    echo "%_libdir/%name/mod_${mod}.so" >>mods.lst
    echo "%_libdir/%name/mod_${mod}.so.0" >>mods.lst
    echo "%_libdir/%name/mod_${mod}.so.0.*" >>mods.lst
done

%pre
%service_add_pre jabberd-router.service jabberd-c2s.service jabberd.service jabberd-sm.service jabberd-s2s.service
/usr/sbin/groupadd --system jabber 2>/dev/null ||:
/usr/sbin/useradd --system --gid jabber --comment "Jabber Server" \
    --home /var/lib/jabberd --shell /bin/false jabber 2>/dev/null ||:
exit 0

%post
%service_add_post jabberd-router.service jabberd-c2s.service jabberd.service jabberd-sm.service jabberd-s2s.service

%preun
%service_del_preun jabberd-router.service jabberd-c2s.service jabberd.service jabberd-sm.service jabberd-s2s.service
%{?stop_on_removal:%stop_on_removal jabberd}
exit 0

%postun
%service_del_postun jabberd-router.service jabberd-c2s.service jabberd.service jabberd-sm.service jabberd-s2s.service
exit 0

%files -f mods.lst
%defattr (0644, root, root, 0755)
%doc AUTHORS COPYING ChangeLog NEWS README TODO
%doc tools/db-*
%doc contrib/xep0227dump-mysql.py
%doc /usr/share/man/*/*
%defattr (-, root, root, -)
/usr/bin/*
/usr/sbin/*
%dir %_libdir/%name
%_libdir/%name/authreg_anon.so
%_libdir/%name/authreg_pipe.so
%_libdir/%name/storage_fs.so
%_libdir/%name/libstorage.so
%_libdir/%name/libstorage.so.0
%_libdir/%name/libstorage.so.0.*
%dir /etc/jabberd
%dir /etc/jabberd/templates
%config /etc/jabberd/*.xml.dist
%config /etc/jabberd/*.cfg.dist
%config /etc/jabberd/templates/*.xml.dist
%if %suse_version >= 1230
/usr/lib/systemd/system/*
%else
/usr/lib/systemd
%endif
%defattr(0640, root, jabber, 0755)
%config(noreplace) /etc/jabberd/*.xml
%config(noreplace) /etc/jabberd/*.cfg
%config(noreplace) /etc/jabberd/templates/*.xml
%defattr (-, jabber, jabber, -)
/var/lib/jabberd

%files sqlite
%defattr (-, root, root, -)
%_libdir/%name/authreg_sqlite.so
%_libdir/%name/storage_sqlite.so

%files mysql
%defattr (-, root, root, -)
%_libdir/%name/authreg_mysql.so
%_libdir/%name/storage_mysql.so

%files pgsql
%defattr (-, root, root, -)
%_libdir/%name/authreg_pgsql.so
%_libdir/%name/storage_pgsql.so

%files db
%defattr (-, root, root, -)
%_libdir/%name/authreg_db.so
%_libdir/%name/storage_db.so

%files ldap
%defattr (-, root, root, -)
%_libdir/%name/authreg_ldap.so
%_libdir/%name/authreg_ldapfull.so
%_libdir/%name/storage_ldapvcard.so

%files pam
%defattr (-, root, root, -)
%_libdir/%name/authreg_pam.so
%config /etc/pam.d/*

%changelog
openSUSE Build Service is sponsored by