-%include /usr/lib/rpm/macros.perl
-Summary: High-performance mail store with imap and pop3
+# Conditional build:
+%bcond_without perl # build with perl
+%bcond_without shared # build with shared patch (not updated)
+
+%{?with_perl:%include /usr/lib/rpm/macros.perl}
+Summary: High-performance mail store with IMAP and POP3
Summary(pl.UTF-8): Wysoko wydajny serwer IMAP i POP3
Summary(pt_BR.UTF-8): Um servidor de mail de alto desempenho que suporta IMAP e POP3
Name: cyrus-imapd
-Version: 2.2.12
-Release: 6
+Version: 2.4.4
+Release: 0.1
License: BSD-like
-Group: Networking/Daemons
-Source0: ftp://ftp.andrew.cmu.edu/pub/cyrus-mail/%{name}-%{version}.tar.gz
-# Source0-md5: 70b3bba526a8d36d3bb23a87d37e9188
+Group: Networking/Daemons/POP3
+Source0: ftp://ftp.cyrusimap.org/cyrus-imapd/%{name}-%{version}.tar.gz
+# Source0-md5: 9d6970cec96aa867e9ced3978caddb8f
Source1: cyrus-README
Source2: cyrus-procmailrc
Source3: cyrus-deliver-wrapper.c
Source10: %{name}-pop.pamd
Source11: %{name}.init
Source12: cyrus.conf
+Source13: cyrus-sync.init
Patch0: %{name}-et.patch
+# http://bugzilla.cyrusimap.org/bugzilla3/show_bug.cgi?id=3095
Patch1: %{name}-shared.patch
-Patch2: %{name}-quota.patch
-URL: http://andrew2.andrew.cmu.edu/cyrus/imapd/
+# http://bugzilla.cyrusimap.org/bugzilla3/show_bug.cgi?id=3094
+Patch2: %{name}-verifydbver.patch
+Patch3: gcc44.patch
+Patch4: glibc.patch
+Patch6: makeopt.patch
+URL: http://www.cyrusimap.org/
BuildRequires: autoconf >= 2.54
BuildRequires: automake
BuildRequires: cyrus-sasl-devel >= 1.5.27
BuildRequires: libtool
BuildRequires: net-snmp-devel
BuildRequires: openssl-devel >= 0.9.7d
-BuildRequires: perl-devel >= 1:5.8.0
-BuildRequires: rpm-perlprov
+%{?with_perl:BuildRequires: perl-devel >= 1:5.8.0}
+%{?with_perl:BuildRequires: rpm-perlprov}
BuildRequires: rpmbuild(macros) >= 1.268
Requires(post,preun): /sbin/chkconfig
Requires(postun): /usr/sbin/userdel
Requires(pre): /bin/id
Requires(pre): /usr/sbin/useradd
-Requires: %{name}-libs = %{version}-%{release}
-Requires: rc-scripts
+%{?with_shared:Requires: %{name}-libs = %{version}-%{release}}
+Requires: rc-scripts >= 0.4.0.18
+%{!?with_shared:Obsoletes: %{name}-libs}
# needed by scripts from %{_bindir}
Requires: pam >= 0.79.0
-Requires: perl-%{name} = %{version}-%{release}
+%{?with_perl:Requires: perl-%{name} = %{version}-%{release}}
Provides: imapdaemon
Provides: pop3daemon
Provides: user(cyrus)
%prep
%setup -q
+%patch6 -p1
%patch0 -p1
+%if %{with shared}
+lsdiff --strip 1 %{PATCH1} | xargs %{__sed} -i -e '
+ s/\.o/.lo/g
+ s/\.a/.la/g
+'
%patch1 -p1
+%endif
%patch2 -p1
+%patch3 -p1
+%patch4 -p1
rm -rf autom4te.cache
%build
cd makedepend
+%{__libtoolize}
%{__aclocal}
%{__autoconf}
+cp -f %{_datadir}/automake/config.* .
%configure
%{__make}
-PATH=$PATH:`pwd`; export PATH
+PATH=$PATH:$(pwd); export PATH
cd ..
%{__libtoolize}
%{__aclocal} -I cmulocal
cp -f %{_datadir}/automake/config.* .
cp -f %{_datadir}/automake/install-sh .
%configure \
- --with-auth=unix \
- --without-libwrap \
--with-cyrus-prefix=%{_libexecdir} \
--with-service-path=%{_libexecdir} \
--with-com_err=/usr \
- --with-perl=%{__perl} \
- --enable-nntp
-%{__make} \
- INSTALLDIRS=vendor
+ --%{!?with_perl:without-perl}%{?with_perl:with-perl=%{__perl}} \
+ --without-libwrap \
+ --enable-nntp \
+ --enable-replication
+%{__make} -j1 \
+ INSTALLDIRS=vendor \
+ VERSION=%{version}
%{__cc} %{rpmcflags} \
-DLIBEXECDIR="\"%{_libexecdir}\"" %{rpmldflags} -Wall -o deliver-wrapper %{SOURCE3}
touch $RPM_BUILD_ROOT/var/lib/imap/mailboxes \
$RPM_BUILD_ROOT/var/lib/imap/faillog \
$RPM_BUILD_ROOT/etc/security/blacklist.imap \
- $RPM_BUILD_ROOT/etc/security/blacklist.pop
+ $RPM_BUILD_ROOT/etc/security/blacklist.pop3
%{__make} install \
DESTDIR=$RPM_BUILD_ROOT \
- CYRUS_USER="`id -u`" \
- CYRUS_GROUP="`id -g`" \
+ CYRUS_USER=%(id -u) \
+ CYRUS_GROUP=%(id -g) \
INSTALLDIRS=vendor
install deliver-wrapper $RPM_BUILD_ROOT%{_libexecdir}/deliver-wrapper
install %{SOURCE7} $RPM_BUILD_ROOT%{_sysconfdir}/imapd.conf
install %{SOURCE9} $RPM_BUILD_ROOT/etc/pam.d/imap
install %{SOURCE10} $RPM_BUILD_ROOT/etc/pam.d/pop
-install %{SOURCE11} $RPM_BUILD_ROOT/etc/rc.d/init.d/cyrus-imapd
+sed -e 's,/''usr/lib/cyrus,%{_libexecdir},' %{SOURCE11} > $RPM_BUILD_ROOT/etc/rc.d/init.d/cyrus-imapd
+sed -e 's,/''usr/lib/cyrus,%{_libexecdir},' %{SOURCE13} > $RPM_BUILD_ROOT/etc/rc.d/init.d/cyrus-sync
install %{SOURCE12} $RPM_BUILD_ROOT%{_sysconfdir}/cyrus.conf
mv -f $RPM_BUILD_ROOT%{_libexecdir}/master $RPM_BUILD_ROOT%{_libexecdir}/cyrus-master
mv -f $RPM_BUILD_ROOT%{_mandir}/man8/master.8 $RPM_BUILD_ROOT%{_mandir}/man8/cyrus-master.8
-rm -rf $RPM_BUILD_ROOT%{_mandir}/man8/idled.8
+rm -f $RPM_BUILD_ROOT%{_mandir}/man8/idled.8
-touch $RPM_BUILD_ROOT/etc/security/blacklist.{imap,pop}
-
-find $RPM_BUILD_ROOT%{perl_vendorarch} -name .packlist -exec rm {} \;
+touch $RPM_BUILD_ROOT/etc/security/blacklist.{imap,pop3}
# make hashed dirs
-for i in `%{__perl} -le 'print for "a".."z"'`; do
- install -d -m 0755 $RPM_BUILD_ROOT%{_var}/lib/imap/user/$i
- install -d -m 0755 $RPM_BUILD_ROOT%{_var}/lib/imap/quota/$i
- install -d -m 0755 $RPM_BUILD_ROOT%{_var}/lib/imap/sieve/$i
- install -d -m 0755 $RPM_BUILD_ROOT%{_var}/spool/imap/$i
+for i in $(%{__perl} -le 'print for "a".."z"'); do
+ install -d $RPM_BUILD_ROOT%{_var}/lib/imap/user/$i
+ install -d $RPM_BUILD_ROOT%{_var}/lib/imap/quota/$i
+ install -d $RPM_BUILD_ROOT%{_var}/lib/imap/sieve/$i
+ install -d $RPM_BUILD_ROOT%{_var}/spool/imap/$i
done
+%if %{with perl}
+find $RPM_BUILD_ROOT%{perl_vendorarch} -name .packlist | xargs rm -v
+rm -f $RPM_BUILD_ROOT%{perl_archlib}/perllocal.pod
+%endif
+
%clean
rm -rf $RPM_BUILD_ROOT
%useradd -u 76 -d /var/spool/imap -s /bin/false -c "Cyrus User" -g mail cyrus
%post
-/sbin/chkconfig --add cyrus-imapd
touch /var/lib/imap/faillog
chown cyrus:mail /var/lib/imap/faillog
chmod 640 /var/lib/imap/faillog
cd /var/lib/imap
chattr +S . user quota user/* quota/* 2>/dev/null ||:
chattr +S /var/spool/imap /var/spool/imap/* 2>/dev/null ||:
-%service cyrus-imapd "cyrus imap daemon"
+
+/sbin/chkconfig --add cyrus-imapd
+%service cyrus-imapd restart "cyrus imap daemon"
+%service cyrus-sync restart "cyrus replication service"
%preun
if [ "$1" = "0" ]; then
%service cyrus-imapd stop
+ %service cyrus-sync stop
/sbin/chkconfig --del cyrus-imapd
+ /sbin/chkconfig --del cyrus-sync
fi
%postun
%attr(440,cyrus,root) %config(noreplace) %verify(not md5 mtime size) /etc/pam.d/*
%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/security/blacklist.*
%attr(754,root,root) /etc/rc.d/init.d/cyrus-imapd
+%attr(754,root,root) /etc/rc.d/init.d/cyrus-sync
%attr(640,cyrus,mail) %ghost /var/lib/imap/faillog
%attr(755,root,root) %{_bindir}/*
+%dir %{_libexecdir}
%attr(4754,cyrus,mail) %{_libexecdir}/deliver
%attr(2755,cyrus,mail) %{_libexecdir}/deliver-wrapper
%attr(755,root,root) %{_libexecdir}/arbitron
%attr(755,root,root) %{_libexecdir}/chk_cyrus
+%attr(755,root,root) %{_libexecdir}/ctl_cyrusdb
%attr(755,root,root) %{_libexecdir}/ctl_deliver
%attr(755,root,root) %{_libexecdir}/ctl_mboxlist
-%attr(755,root,root) %{_libexecdir}/ctl_cyrusdb
%attr(755,root,root) %{_libexecdir}/cvt_cyrusdb
+%attr(755,root,root) %{_libexecdir}/cyr_dbtool
+%attr(755,root,root) %{_libexecdir}/cyr_df
%attr(755,root,root) %{_libexecdir}/cyr_expire
+%attr(755,root,root) %{_libexecdir}/cyr_sequence
+%attr(755,root,root) %{_libexecdir}/cyr_synclog
+%attr(755,root,root) %{_libexecdir}/cyr_userseen
%attr(755,root,root) %{_libexecdir}/cyrdump
%attr(755,root,root) %{_libexecdir}/cyrus-master
+%attr(755,root,root) %{_libexecdir}/fetchnews
%attr(755,root,root) %{_libexecdir}/fud
%attr(755,root,root) %{_libexecdir}/imapd
%attr(755,root,root) %{_libexecdir}/ipurge
%attr(755,root,root) %{_libexecdir}/lmtpd
+%attr(755,root,root) %{_libexecdir}/lmtpproxyd
%attr(755,root,root) %{_libexecdir}/mbexamine
%attr(755,root,root) %{_libexecdir}/mbpath
+%attr(755,root,root) %{_libexecdir}/nntpd
%attr(755,root,root) %{_libexecdir}/notifyd
%attr(755,root,root) %{_libexecdir}/pop3d
%attr(755,root,root) %{_libexecdir}/pop3proxyd
+%attr(755,root,root) %{_libexecdir}/proxyd
%attr(755,root,root) %{_libexecdir}/quota
%attr(755,root,root) %{_libexecdir}/reconstruct
%attr(755,root,root) %{_libexecdir}/sievec
+%attr(755,root,root) %{_libexecdir}/sieved
%attr(755,root,root) %{_libexecdir}/smmapd
%attr(755,root,root) %{_libexecdir}/squatter
+%attr(755,root,root) %{_libexecdir}/sync_client
+%attr(755,root,root) %{_libexecdir}/sync_reset
+%attr(755,root,root) %{_libexecdir}/sync_server
%attr(755,root,root) %{_libexecdir}/timsieved
%attr(755,root,root) %{_libexecdir}/tls_prune
-%attr(755,root,root) %{_libexecdir}/fetchnews
-%attr(755,root,root) %{_libexecdir}/nntpd
+%attr(755,root,root) %{_libexecdir}/unexpunge
%attr(750,cyrus,mail) /var/spool/imap
%attr(750,cyrus,mail) %dir /var/lib/imap
%{_mandir}/man*/*
+%if %{with shared}
%files libs
%defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir}/lib*.so.*.*.*
+%attr(755,root,root) %{_libdir}/libcyrus-%{version}.so
+%attr(755,root,root) %{_libdir}/libcyrus_min-%{version}.so
+%endif
%files devel
%defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir}/lib*.so
-%{_libdir}/lib*.la
%{_includedir}/cyrus
+%if %{with shared}
+%attr(755,root,root) %{_libdir}/libcyrus.so
+%attr(755,root,root) %{_libdir}/libcyrus_min.so
+%{_libdir}/libcyrus.la
+%{_libdir}/libcyrus_min.la
%files static
%defattr(644,root,root,755)
-%{_libdir}/lib*.a
+%endif
+%{_libdir}/libcyrus.a
+%{_libdir}/libcyrus_min.a
+%if %{with perl}
%files -n perl-%{name}
%defattr(644,root,root,755)
%{perl_vendorarch}/Cyrus
%dir %{perl_vendorarch}/auto/Cyrus/SIEVE/managesieve
%attr(755,root,root) %{perl_vendorarch}/auto/Cyrus/SIEVE/managesieve/managesieve.so
%{perl_vendorarch}/auto/Cyrus/SIEVE/managesieve/managesieve.bs
+%endif