%include /usr/lib/rpm/macros.perl
Summary: High-performance mail store with imap and pop3
-Summary(pl): Wysoko wydajny serwer IMAP i POP3
-Summary(pt_BR): Um servidor de mail de alto desempenho que suporta IMAP e 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.0.17
-Release: 1
+Version: 2.3.12p2
+Release: 0.1
License: BSD-like
Group: Networking/Daemons
Source0: ftp://ftp.andrew.cmu.edu/pub/cyrus-mail/%{name}-%{version}.tar.gz
+# Source0-md5: ee2c300687994e4982c6af6aa154c742
Source1: cyrus-README
Source2: cyrus-procmailrc
Source3: cyrus-deliver-wrapper.c
Source10: %{name}-pop.pamd
Source11: %{name}.init
Source12: cyrus.conf
-Patch0: %{name}-snmp.patch
-Patch1: %{name}-mandir.patch
-Patch2: %{name}-paths.patch
-Patch3: %{name}-overquota.patch
-Patch4: http://www.imasy.or.jp/~ume/ipv6/%{name}-2.0.17-ipv6-20021205.diff.gz
-Patch5: %{name}-et.patch
-Patch6: %{name}-ac250.patch
-Patch7: %{name}-db3.patch
-Patch8: %{name}-ipv6.m4.patch
-Patch9: %{name}-ac25x.patch
-Patch10: %{name}-snprintf.patch
-URL: http://andrew2.andrew.cmu.edu/cyrus/imapd/
-BuildRequires: autoconf
+Source13: cyrus-sync.init
+Patch0: %{name}-et.patch
+Patch1: %{name}-shared.patch
+URL: http://cyrusimap.web.cmu.edu/imapd/
+BuildRequires: autoconf >= 2.54
BuildRequires: automake
BuildRequires: cyrus-sasl-devel >= 1.5.27
-BuildRequires: db3-devel >= 3.1.17
-BuildRequires: e2fsprogs-devel >= 1.21
+BuildRequires: db-devel >= 4.1.25
BuildRequires: flex
-BuildRequires: openssl-devel >= 0.9.7
-BuildRequires: perl-devel >= 5.6.1
-BuildRequires: ucd-snmp-devel >= 4.2.6
-PreReq: rc-scripts
-Requires(pre): /usr/sbin/useradd
-Requires(post,preun):/sbin/chkconfig
+BuildRequires: libcom_err-devel >= 1.21
+BuildRequires: libtool
+BuildRequires: net-snmp-devel
+BuildRequires: openssl-devel >= 0.9.7d
+BuildRequires: perl-devel >= 1:5.8.0
+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 >= 0.4.0.18
+# needed by scripts from %{_bindir}
+Requires: pam >= 0.79.0
+Requires: perl-%{name} = %{version}-%{release}
Provides: imapdaemon
Provides: pop3daemon
-BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
+Provides: user(cyrus)
+Obsoletes: imap
+Obsoletes: imapd
+Obsoletes: imapdaemon
+Obsoletes: pop3daemon
Conflicts: courier-imap
Conflicts: courier-imap-common
Conflicts: courier-imap-pop3
Conflicts: qpopper6
Conflicts: solid-pop3d
Conflicts: tpop3d
-Obsoletes: imapd
-Obsoletes: imap
-Obsoletes: pop3daemon
-Obsoletes: imapdaemon
+BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
-%define _libexecdir %{_prefix}/lib/cyrus
+%define _libexecdir %{_libdir}/cyrus
%description
The Cyrus IMAP server is a scalable enterprise mail system designed
Cyrus IMAP system. All user access to mail is through software using
the IMAP, POP3, or KPOP protocols.
-%description -l pl
+%description -l pl.UTF-8
Serwer Cyrus IMAP jest skalowalnym systemem e-mail dla
-przedsiêbiorstwa, zaprojektowanym dla ma³ych i du¿ych firm i
-wykorzystuj±cym oparte na standardach technologie.
-
-Pe³na implementacja Cyrus IMAP pozwala na bezproblemowe ustawienie
-¶rodowiska poczty i elektronicznej tablicy og³oszeniowej na kilku
-serwerach. Tym siê ró¿ni od innych implementacji serwerów IMAP, ¿e
-jest uruchamiany na "opieczêtowanych" serwerach, na które w normalnych
-waunkach u¿ytkownicy nie mog± siê zalogowaæ. Baza danych skrzynek
-pocztowych jest pzrechowywana w tych czê¶ciach systemu plików, które
-s± dostêpne jedynie dla systemu IMAP Cyrus. Wszelki dostêp do poczty
-ma miejsce poprzez oprogramowanie wykorzystuj±ce protoko³y IMAP, POP3
+przedsiębiorstwa, zaprojektowanym dla małych i dużych firm i
+wykorzystującym oparte na standardach technologie.
+
+Pełna implementacja Cyrus IMAP pozwala na bezproblemowe ustawienie
+środowiska poczty i elektronicznej tablicy ogłoszeniowej na kilku
+serwerach. Tym się różni od innych implementacji serwerów IMAP, że
+jest uruchamiany na "opieczętowanych" serwerach, na które w normalnych
+warunkach użytkownicy nie mogą się zalogować. Baza danych skrzynek
+pocztowych jest przechowywana w tych częściach systemu plików, które
+są dostępne jedynie dla systemu IMAP Cyrus. Wszelki dostęp do poczty
+ma miejsce poprzez oprogramowanie wykorzystujące protokoły IMAP, POP3
oraz KPOP.
-%description -l pt_BR
-O servidor IMAP Cyrus é um sistema de mail corporativo escalável
+%description -l pt_BR.UTF-8
+O servidor IMAP Cyrus é um sistema de mail corporativo escalável
projetado para uso por pequenos a grandes ambientes corporativos
-usando tecnologias baseadas em padrões abertos.
+usando tecnologias baseadas em padrões abertos.
-Uma implementação completa do Cyrus permite se configurar um ambiente
-transparente de mail e bulletin board entre múltiplos servidores. Ele
+Uma implementação completa do Cyrus permite se configurar um ambiente
+transparente de mail e bulletin board entre múltiplos servidores. Ele
difere de outros servidores IMAP por rodar em servidores "selados",
-onde usuários não possuem normalmente a permissão de log in. O banco
-de dados de caixas de mail é armazenado em partes do sistema de
-arquivos que são privativos do sistema Cyrus. Todo o acesso de
-usuários aos mails se dá através de software usando os protocolos
+onde usuários não possuem normalmente a permissão de log in. O banco
+de dados de caixas de mail é armazenado em partes do sistema de
+arquivos que são privativos do sistema Cyrus. Todo o acesso de
+usuários aos mails se dá através de software usando os protocolos
IMAP, POP3 ou KPOP.
+%package libs
+Summary: Shared cyrus-imapd libraries
+Summary(pl.UTF-8): Współdzielone biblioteki cyrus-imapd
+Group: Libraries
+
+%description libs
+Shared cyrus-imapd libraries.
+
+%description libs -l pl.UTF-8
+Współdzielone biblioteki cyrus-imapd.
+
%package devel
-Summary: Libraries and include files for developing with cyrus-imapd
-Summary(pl): Pliki potrzebne do programowania z u¿yciem cyrus-imapd
+Summary: Header files for developing with cyrus-imapd libraries
+Summary(pl.UTF-8): Pliki nagłówkowe do programowania z użyciem bibliotek cyrus-imapd
Group: Development/Libraries
-Requires: %{name} = %{version}
+Requires: %{name}-libs = %{version}-%{release}
%description devel
-This package provides the necessary development libraries and include
-files to allow you to develop with cyrus-imapd.
+This package provides the necessary header files files to allow you to
+develop with cyrus-imapd libraries.
-%description devel -l pl
-Ten pakiet zawiera biblioteki oraz pliki nag³ówkowe niezbêdne do
-tworzenia oprogramowania z wykorzystaniem cyrus-imapd.
+%description devel -l pl.UTF-8
+Ten pakiet zawiera pliki nagłówkowe niezbędne do tworzenia
+oprogramowania z wykorzystaniem bibliotek cyrus-imapd.
%package static
Summary: Static cyrus-imapd libraries
-Summary(pl): Biblioteki statyczne cyrus-imapd
+Summary(pl.UTF-8): Biblioteki statyczne cyrus-imapd
Group: Development/Libraries
-Requires: %{name}-devel = %{version}
+Requires: %{name}-devel = %{version}-%{release}
%description static
Static cyrus-imapd libraries
-%description static -l pl
+%description static -l pl.UTF-8
Biblioteki statyczne cyrus-imapd
%package -n perl-%{name}
Summary: Perl interface to cyrus-imapd library
-Summary(pl): Perlowy interfejs do biblioteki cyrus-imapd
+Summary(pl.UTF-8): Perlowy interfejs do biblioteki cyrus-imapd
Group: Development/Languages/Perl
-Requires: %{name} = %{version}
+Requires: %{name}-libs = %{version}-%{release}
%description -n perl-%{name}
Perl interface to cyrus-imapd library.
-%description -n perl-%{name} -l pl
+%description -n perl-%{name} -l pl.UTF-8
Perlowy interfejs do biblioteki cyrus-imapd.
%prep
%setup -q
%patch0 -p1
%patch1 -p1
-%patch2 -p0
-%patch3 -p1
-%patch4 -p0
-%patch5 -p1
-%patch6 -p1
-%patch7 -p1
-%patch8 -p1
-%patch9 -p1
-%patch10 -p1
+
+rm -rf autom4te.cache
%build
cd makedepend
-rm -f aclocal.m4
+%{__libtoolize}
%{__aclocal}
%{__autoconf}
+cp -f %{_datadir}/automake/config.* .
%configure
%{__make}
-PATH=$PATH:`pwd`; export PATH
+PATH=$PATH:$(pwd); export PATH
cd ..
-rm -f aclocal.m4
+%{__libtoolize}
%{__aclocal} -I cmulocal
%{__autoheader}
%{__autoconf}
+cp -f %{_datadir}/automake/config.* .
+cp -f %{_datadir}/automake/install-sh .
%configure \
--with-auth=unix \
--without-libwrap \
--with-cyrus-prefix=%{_libexecdir} \
- --with-com_err=/usr
-%{__make}
+ --with-service-path=%{_libexecdir} \
+ --with-com_err=/usr \
+ --with-perl=%{__perl} \
+ --enable-nntp \
+ --enable-replication
+%{__make} \
+ INSTALLDIRS=vendor
%{__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`" mandir=%{_mandir}
+%{__make} install \
+ DESTDIR=$RPM_BUILD_ROOT \
+ 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}/bin/* $RPM_BUILD_ROOT%{_libexecdir}
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%{_libexecdir}/bin
-rm -rf $RPM_BUILD_ROOT%{_mandir}/man8/idled.8
+rm -f $RPM_BUILD_ROOT%{_mandir}/man8/idled.8
+rm -f $RPM_BUILD_ROOT%{perl_archlib}/perllocal.pod
-touch $RPM_BUILD_ROOT/etc/security/blacklist.{imap,pop}
+touch $RPM_BUILD_ROOT/etc/security/blacklist.{imap,pop3}
-find $RPM_BUILD_ROOT%{perl_sitearch} -name .packlist -exec rm {} \;
+find $RPM_BUILD_ROOT%{perl_vendorarch} -name .packlist | xargs rm -v
# make hashed dirs
-oldpwd=`pwd`
-cd $RPM_BUILD_ROOT/var
-perl <<EOF
-foreach \$i ("a".."z")
-{
- mkdir "lib/imap/user/\$i", 0755;
- mkdir "lib/imap/quota/\$i", 0755;
- mkdir "lib/imap/sieve/\$i", 0755;
- mkdir "spool/imap/\$i", 0755;
-}
-EOF
-cd ${oldpwd}
+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
+
+%clean
+rm -rf $RPM_BUILD_ROOT
%pre
-if [ -z "`id -u cyrus 2>/dev/null`" ]; then
- /usr/sbin/useradd -u 76 -r -d /var/spool/imap -s /bin/false -c "Cyrus User" -g mail cyrus 1>&2
-fi
+%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
+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
-if [ -f /var/lock/subsys/cyrus-imapd ]; then
- /etc/rc.d/init.d/cyrus-imapd restart 1>&2
-else
- echo "Run \"/etc/rc.d/init.d/cyrus-imapd start\" to start cyrus imap daemon."
-fi
+chattr +S . user quota user/* quota/* 2>/dev/null ||:
+chattr +S /var/spool/imap /var/spool/imap/* 2>/dev/null ||:
+
+/sbin/chkconfig --add cyrus-imapd
+%service cyrus-imapd restart "cyrus imap daemon"
+%service cyrus-sync restart "cyrus replication service"
%preun
if [ "$1" = "0" ]; then
- if [ -f /var/lock/subsys/cyrus-imapd ]; then
- /etc/rc.d/init.d/cyrus-imapd stop 1>&2
- fi
+ %service cyrus-imapd stop
+ %service cyrus-sync stop
/sbin/chkconfig --del cyrus-imapd
+ /sbin/chkconfig --del cyrus-sync
fi
%postun
if [ "$1" = "0" ]; then
- /usr/sbin/userdel cyrus
+ %userremove cyrus
fi
-%clean
-rm -rf $RPM_BUILD_ROOT
+%post libs -p /sbin/ldconfig
+%postun libs -p /sbin/ldconfig
%files
%defattr(644,root,root,755)
%doc cyrus-README cyrus-procmailrc cyrus-user-procmailrc.template
-%doc cyrus-imapd-procmail+cyrus.mc COPYRIGHT doc/*.html
-%config(noreplace) %verify(not size mtime md5) %{_sysconfdir}/*.conf
-%attr(640,root,root) /etc/logrotate.d/cyrus-imapd
-%attr(440,cyrus,root) %config(noreplace) %verify(not size mtime md5) /etc/pam.d/*
-%attr(640,root,root) %config(noreplace) %verify(not size mtime md5) /etc/security/blacklist.*
+%doc cyrus-imapd-procmail+cyrus.mc COPYRIGHT doc/*.html tools
+%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/*.conf
+%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/logrotate.d/cyrus-imapd
+%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}/cvt_cyrusdb
+%attr(755,root,root) %{_libexecdir}/cyr_dbtool
%attr(755,root,root) %{_libexecdir}/cyrdump
-%attr(755,root,root) %{_libexecdir}/feedcyrus
+%attr(755,root,root) %{_libexecdir}/cyr_expire
+%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}/cyrus-master
+%attr(755,root,root) %{_libexecdir}/lmtpproxyd
+%attr(755,root,root) %{_libexecdir}/make_md5
+%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}/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}/smmapd
+%attr(755,root,root) %{_libexecdir}/squatter
%attr(755,root,root) %{_libexecdir}/timsieved
+%attr(755,root,root) %{_libexecdir}/tls_prune
+%attr(755,root,root) %{_libexecdir}/unexpunge
+
%attr(750,cyrus,mail) /var/spool/imap
%attr(750,cyrus,mail) %dir /var/lib/imap
%attr(750,cyrus,mail) /var/lib/imap/proc
%attr(750,cyrus,mail) /var/lib/imap/db
%attr(750,cyrus,mail) /var/lib/imap/socket
-%attr(750,cyrus,mail) %config(noreplace) %verify(not size md5 mtime) /var/lib/imap/mailboxes
+%attr(750,cyrus,mail) %config(noreplace) %verify(not md5 mtime size) /var/lib/imap/mailboxes
%{_mandir}/man*/*
+%files libs
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/libcyrus.so.*.*.*
+%attr(755,root,root) %{_libdir}/libcyrus_min.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libcyrus.so.0
+%attr(755,root,root) %ghost %{_libdir}/libcyrus_min.so.0
+
%files devel
%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/libcyrus.so
+%attr(755,root,root) %{_libdir}/libcyrus_min.so
+%{_libdir}/libcyrus.la
+%{_libdir}/libcyrus_min.la
%{_includedir}/cyrus
%files static
%defattr(644,root,root,755)
-%{_libdir}/lib*.a
+%{_libdir}/libcyrus.a
+%{_libdir}/libcyrus_min.a
%files -n perl-%{name}
%defattr(644,root,root,755)
-%{perl_sitearch}/Cyrus
-%{perl_sitearch}/auto/Cyrus
+%{perl_vendorarch}/Cyrus
+%dir %{perl_vendorarch}/auto/Cyrus
+%dir %{perl_vendorarch}/auto/Cyrus/IMAP
+%attr(755,root,root) %{perl_vendorarch}/auto/Cyrus/IMAP/IMAP.so
+%{perl_vendorarch}/auto/Cyrus/IMAP/IMAP.bs
+%dir %{perl_vendorarch}/auto/Cyrus/SIEVE
+%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