%{!?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 412 %global kolab_group kolab %global kolab_group_id 412 %global kolabn_user kolab-n %global kolabn_user_id 413 %global kolabn_group kolab-n %global kolabn_group_id 413 %global kolabr_user kolab-r %global kolabr_user_id 414 %global kolabr_group kolab-r %global kolabr_group_id 414 Summary: Kolab Groupware Solution Name: pykolab Version: 0.5.12 %define subrel 2 Release: %mkrel 1 License: GPLv3+ Group: System/Servers URL: http://git.kolab.org/pykolab Source0: http://git.kolab.org/pykolab//%{name}-%{version}.tar.gz Source1: kolab-saslauthd.tmpfiles.d.conf Patch0: mga-schema-loc.patch Patch1: imap-mga.patch Patch2: roundcube.patch Patch3: mageia_sasl.patch BuildRequires: gettext-devel BuildRequires: glib2-devel BuildRequires: intltool BuildRequires: python-icalendar BuildRequires: python-kolabformat BuildRequires: python-ldap BuildRequires: python-nose BuildRequires: python-pyasn1 BuildRequires: python-pyasn1-modules BuildRequires: python-sqlalchemy Requires: kolab-cli = %{version}-%{release} Requires: python-ldap >= 2.4 Requires: python-pyasn1 Requires: python-pyasn1-modules # this is for serviceadd, etc. Requires(post): systemd >= %{systemd_required_version} Requires(post): rpm-helper Requires(preun): rpm-helper # this is for useradd, groupadd, etc. Requires(pre): rpm-helper Requires(postun): rpm-helper Requires(pre): %{_sbindir}/useradd Requires(pre): %{_sbindir}/usermod Requires(pre): %{_sbindir}/groupadd BuildArch: noarch %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} Obsoletes: perl-kolab %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 Requires: python-icalendar >= 3.0 Requires: %{name}-xml = %{version}-%{release} %description -n wallace This is the Kolab Content Filter, with plugins %prep %setup -q %patch0 -p1 -b .mga-schema-loc %patch1 -p1 -b .imap-mga %patch2 -p1 -b .roundcube %patch3 -p1 -b .sasl %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 # Install the systemd tempfiles %{__install} -D -p -m 644 kolabd/kolabd.tmpfiles.d.conf %{buildroot}%{_tmpfilesdir}/kolabd.conf %{__install} -D -p -m 644 wallace/wallace.tmpfiles.d.conf %{buildroot}%{_tmpfilesdir}/wallace.conf %{__install} -D -p -m 644 %{SOURCE1} %{buildroot}%{_tmpfilesdir}/kolab-saslauthd.conf 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 %_tmpfilescreate kolab-saslauthd %_post_service kolab-saslauthd %preun -n kolab-saslauthd %_preun_service kolab-saslauthd %post -n kolab-server %_tmpfilescreate kolabd %_post_service kolabd %preun -n kolab-server %_preun_service kolabd %post -n wallace %_tmpfilescreate wallace %_post_service wallace %preun -n wallace %_preun_service wallace %files -f pykolab.lang %doc AUTHORS 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 COPYING %{_sbindir}/kolab_parse_telemetry %{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 COPYING %{_unitdir}/kolab-saslauthd.service %config(noreplace) %{_sysconfdir}/sysconfig/kolab-saslauthd %{_sbindir}/kolab-saslauthd %{python_sitelib}/saslauthd/ %{_tmpfilesdir}/kolab-saslauthd.conf %files -n kolab-server %doc AUTHORS COPYING %{_unitdir}/kolabd.service %config(noreplace) %{_sysconfdir}/sysconfig/kolabd %{_sbindir}/kolabd %{python_sitelib}/kolabd/ %{_tmpfilesdir}/kolabd.conf %files -n postfix-kolab %doc AUTHORS COPYING %{_libexecdir}/postfix/kolab_smtp_access_policy %files -n wallace %doc AUTHORS 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 %{_tmpfilesdir}/wallace.conf