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