%{!?python_sitelib: %define python_sitelib %(python -c "from distutils.sysconfig import get_python_lib; print get_python_lib()")} %global kolab_user kolab %global kolab_user_id 6001 %global kolab_group kolab %global kolab_group_id 6001 %global kolabn_user kolab-n %global kolabn_user_id 6002 %global kolabn_group kolab-n %global kolabn_group_id 6002 %global kolabr_user kolab-r %global kolabr_user_id 6003 %global kolabr_group kolab-r %global kolabr_group_id 6003 Summary: Kolab Groupware Solution Name: pykolab Version: 0.5.3 Release: %mkrel 2 License: GPLv3+ Group: System/Servers URL: http://kolab.org/ Source0: http://files.kolab.org/releases/%{name}-%{version}.tar.gz BuildRequires: gettext-devel BuildArch: noarch Requires: kolab-cli = %{version}-%{release} Requires: python-ldap >= 2.4 Requires(pre): %{_sbindir}/useradd Requires(pre): %{_sbindir}/usermod Requires(pre): %{_sbindir}/groupadd %description Kolab enables you to easily build a groupware server as part of a collaborative environment. ## ## Kolab Telemetry Logging ## %package telemetry Summary: Kolab Telemetry Logging Capabilities Group: System/Servers Requires: kolab-cli = %{version}-%{release} %description telemetry Cyrus IMAP Telemetry logging handling capabilities for Kolab Groupware ## ## Kolab XML ## %package xml Summary: Kolab XML format wrapper for %{name} Group: System/Servers Requires: %{name} = %{version}-%{release} Requires: python-kolabformat >= 0.5 %description xml Kolab Format XML bindings wrapper for %{name} ## ## Kolab CLI ## %package -n kolab-cli Summary: Kolab CLI components Group: System/Servers BuildRequires: intltool BuildRequires: gettext BuildRequires: python Requires: %{name} = %{version}-%{release} Requires: python-augeas Requires: python-cheetah %description -n kolab-cli Kolab CLI utilities ## ## Kolab SASL Authentication Daemon ## %package -n kolab-saslauthd Summary: Kolab SASL Authentication Daemon Group: System/Servers BuildRequires: intltool BuildRequires: gettext BuildRequires: python Requires: %{name} = %{version}-%{release} Requires: cyrus-sasl Requires: sasl-plug-plain %description -n kolab-saslauthd Kolab SASL Authentication Daemon for multi-domain, multi-authn database deployments ## ## Kolab Server implemented in Python ## %package -n kolab-server Summary: Kolab Server implemented in Python Group: System/Servers BuildRequires: intltool BuildRequires: gettext BuildRequires: python Requires: %{name} = %{version}-%{release} %description -n kolab-server Kolab Server implemented in Python ## ## Kolab SMTP Access Policy for Postfix ## %package -n postfix-kolab Summary: Kolab SMTP Access Policy for Postfix Group: System/Servers BuildRequires: intltool BuildRequires: gettext BuildRequires: python Requires: postfix Requires: %{name} = %{version}-%{release} Requires: python-sqlalchemy Requires: MySQL-python %description -n postfix-kolab Kolab SMTP Access Policy for Postfix ## ## Wallace ## %package -n wallace Summary: Kolab Content-Filter Group: System/Servers Requires: %{name} = %{version}-%{release} Requires: python-sqlalchemy Requires: MySQL-python %description -n wallace This is the Kolab Content Filter, with plugins %prep %setup -q %build autoreconf -fi %configure2_5x %install rm -rf %{buildroot} make install DESTDIR=%{buildroot} mkdir -p %{buildroot}/%{_unitdir} %{__install} -p -m 644 kolabd/kolabd.systemd %{buildroot}/%{_unitdir}/kolabd.service %{__install} -p -m 644 saslauthd/kolab-saslauthd.systemd %{buildroot}/%{_unitdir}/kolab-saslauthd.service %{__install} -p -m 644 wallace/wallace.systemd %{buildroot}/%{_unitdir}/wallace.service mkdir -p %{buildroot}/%{_sysconfdir}/sysconfig %{__install} -p -m 644 kolabd/kolabd.sysconfig %{buildroot}/%{_sysconfdir}/sysconfig/kolabd %{__install} -p -m 644 saslauthd/kolab-saslauthd.sysconfig %{buildroot}/%{_sysconfdir}/sysconfig/kolab-saslauthd %{__install} -p -m 644 wallace/wallace.sysconfig %{buildroot}/%{_sysconfdir}/sysconfig/wallace %find_lang pykolab %pre # Add the kolab user and group accounts getent group %{kolab_group} &>/dev/null || groupadd -r %{kolab_group} -g %{kolab_group_id} &>/dev/null getent passwd %{kolab_user} &>/dev/null || \ useradd -r -u %{kolab_user_id} -g %{kolab_group} -d %{_localstatedir}/lib/%{kolab_user} -s /sbin/nologin \ -c "Kolab System Account" %{kolab_user} &>/dev/null || : gpasswd -a apache kolab >/dev/null 2>&1 || : getent group %{kolabn_group} &>/dev/null || groupadd -r %{kolabn_group} -g %{kolabn_group_id} &>/dev/null getent passwd %{kolabn_user} &>/dev/null || \ useradd -r -u %{kolabn_user_id} -g %{kolabn_group} -d %{_localstatedir}/lib/%{kolabn_user} -s /sbin/nologin \ -c "Kolab System Account (N)" %{kolabn_user} &>/dev/null || : gpasswd -a %{kolabn_user} %{kolab_group} &>/dev/null || : getent group %{kolabr_group} &>/dev/null || groupadd -r %{kolabr_group} -g %{kolabr_group_id} &>/dev/null getent passwd %{kolabr_user} &>/dev/null || \ useradd -r -u %{kolabr_user_id} -g %{kolabr_group} -d %{_localstatedir}/lib/%{kolabr_user} -s /sbin/nologin \ -c "Kolab System Account (R)" %{kolabr_user} &>/dev/null || : # Make sure the kolab user and group is added getent passwd %{cyrus_admin} &>/dev/null || \ useradd -r -d %{_localstatedir}/lib/%{cyrus_admin} -s /sbin/nologin \ -c "Kolab Cyrus Administrator Account" %{cyrus_admin} &>/dev/null || : # Make sure our user has the correct home directory if [ $1 -gt 1 ] ; then usermod -d %{_localstatedir}/lib/%{kolab_user} %{kolab_user} &>/dev/null || : usermod -d %{_localstatedir}/lib/%{kolab_user} %{kolabn_user} &>/dev/null || : usermod -d %{_localstatedir}/lib/%{kolab_user} %{kolabr_user} &>/dev/null || : fi %post -n kolab-saslauthd if [ $1 -eq 1 ]; then /bin/systemctl daemon-reload >/dev/null 2>&1 || : else /sbin/service kolab-saslauthd condrestart fi %preun -n kolab-saslauthd if [ $1 = 0 ]; then /bin/systemctl --no-reload disable kolab-saslauthd.service >/dev/null 2>&1 || : /bin/systemctl stop kolab-saslauthd.service >/dev/null 2>&1 || : fi %post -n kolab-server if [ $1 -eq 1 ] ; then /bin/systemctl daemon-reload >/dev/null 2>&1 || : fi %preun -n kolab-server if [ $1 = 0 ]; then /bin/systemctl --no-reload disable kolabd.service >/dev/null 2>&1 || : /bin/systemctl stop kolabd.service >/dev/null 2>&1 || : fi %post -n wallace if [ $1 -eq 1 ] ; then /bin/systemctl daemon-reload >/dev/null 2>&1 || : else /sbin/service wallace condrestart fi %preun -n wallace if [ $1 = 0 ]; then /bin/systemctl --no-reload disable wallace.service /biin/systemctl stop wallace.service fi %files -f pykolab.lang %doc AUTHORS ChangeLog COPYING README README.tests %doc conf/kolab.conf %attr(0640,kolab-n,kolab) %config(noreplace) %{_sysconfdir}/kolab/kolab.conf %dir %{python_sitelib}/pykolab/ %exclude %{python_sitelib}/pykolab/telemetry.* %{python_sitelib}/pykolab/*.py %{python_sitelib}/pykolab/*.pyc %{python_sitelib}/pykolab/*.pyo %{python_sitelib}/pykolab/auth/ %{python_sitelib}/pykolab/conf/ %{python_sitelib}/pykolab/imap/ %dir %{python_sitelib}/pykolab/plugins/ %{python_sitelib}/pykolab/plugins/*.py %{python_sitelib}/pykolab/plugins/*.pyc %{python_sitelib}/pykolab/plugins/*.pyo %{python_sitelib}/pykolab/plugins/defaultfolders %{python_sitelib}/pykolab/plugins/dynamicquota %{python_sitelib}/pykolab/plugins/recipientpolicy %{python_sitelib}/kolab/ %{python_sitelib}/cyruslib.py* %attr(0775,kolab,kolab-n) %dir %{_localstatedir}/lib/kolab/ %attr(0775,kolab,kolab-n) %dir %{_localstatedir}/log/kolab/ %files telemetry %doc AUTHORS ChangeLog COPYING %{_sbindir}/kolab_parse_telemetry #%{python_sitelib}/pykolab/cli/commandgroups/telemetry.py %{python_sitelib}/pykolab/telemetry.* %{python_sitelib}/pykolab/cli/telemetry/ %files xml %dir %{python_sitelib}/pykolab/xml %{python_sitelib}/pykolab/xml/*.py %{python_sitelib}/pykolab/xml/*.pyc %{python_sitelib}/pykolab/xml/*.pyo %files -n kolab-cli %{_sbindir}/kolab %{_sbindir}/kolab-conf %{_sbindir}/setup-kolab %dir %{_sysconfdir}/kolab/templates %{_datadir}/kolab/templates %dir %{python_sitelib}/pykolab/cli/ %{python_sitelib}/pykolab/cli/*.py %{python_sitelib}/pykolab/cli/*.pyc %{python_sitelib}/pykolab/cli/*.pyo %dir %{python_sitelib}/pykolab/setup/ %{python_sitelib}/pykolab/setup/*.py %{python_sitelib}/pykolab/setup/*.pyc %{python_sitelib}/pykolab/setup/*.pyo %dir %{python_sitelib}/pykolab/wap_client/ %{python_sitelib}/pykolab/wap_client/*.py %{python_sitelib}/pykolab/wap_client/*.pyc %{python_sitelib}/pykolab/wap_client/*.pyo %files -n kolab-saslauthd %doc AUTHORS ChangeLog COPYING %{_unitdir}/kolab-saslauthd.service %config(noreplace) %{_sysconfdir}/sysconfig/kolab-saslauthd %{_sbindir}/kolab-saslauthd %{python_sitelib}/saslauthd/ %dir %{_localstatedir}/run/kolab-saslauthd %dir %{_localstatedir}/run/saslauthd %files -n kolab-server %doc AUTHORS ChangeLog COPYING %{_unitdir}/kolabd.service %config(noreplace) %{_sysconfdir}/sysconfig/kolabd %{_sbindir}/kolabd %{python_sitelib}/kolabd/ %attr(0770,kolab,kolab) %dir %{_localstatedir}/run/kolabd %files -n postfix-kolab %doc AUTHORS ChangeLog COPYING %{_libexecdir}/postfix/kolab_smtp_access_policy %files -n wallace %doc AUTHORS ChangeLog COPYING %{_unitdir}/wallace.service %{_sysconfdir}/sysconfig/wallace %{_sbindir}/wallaced %{python_sitelib}/wallace %attr(0700,%{kolab_user},%{kolab_group}) %dir %{_var}/spool/pykolab %attr(0700,%{kolab_user},%{kolab_group}) %dir %{_var}/spool/pykolab/wallace