3 %bcond_without perl # build with perl
4 %bcond_without shared # build with shared patch (not updated)
6 %{?with_perl:%include /usr/lib/rpm/macros.perl}
7 Summary: High-performance mail store with IMAP and POP3
8 Summary(pl.UTF-8): Wysoko wydajny serwer IMAP i POP3
9 Summary(pt_BR.UTF-8): Um servidor de mail de alto desempenho que suporta IMAP e POP3
14 Group: Networking/Daemons/POP3
15 Source0: ftp://ftp.cyrusimap.org/cyrus-imapd/%{name}-%{version}.tar.gz
16 # Source0-md5: 7d7c8864863df8a56a9dae5f1d846065
18 Source2: cyrus-procmailrc
19 Source3: cyrus-deliver-wrapper.c
20 Source4: cyrus-user-procmailrc.template
21 Source5: %{name}-procmail+cyrus.mc
22 Source6: %{name}.logrotate
25 Source10: %{name}-pop.pamd
26 Source11: %{name}.init
28 Source13: cyrus-sync.init
29 Patch0: %{name}-et.patch
30 # http://bugzilla.cyrusimap.org/bugzilla3/show_bug.cgi?id=3095
31 Patch1: %{name}-shared.patch
32 # http://bugzilla.cyrusimap.org/bugzilla3/show_bug.cgi?id=3094
33 Patch2: %{name}-verifydbver.patch
37 URL: http://www.cyrusimap.org/
38 BuildRequires: autoconf >= 2.54
39 BuildRequires: automake
40 BuildRequires: cyrus-sasl-devel >= 1.5.27
41 BuildRequires: db-devel >= 4.1.25
43 BuildRequires: libcom_err-devel >= 1.21
44 BuildRequires: libtool
45 BuildRequires: net-snmp-devel
46 BuildRequires: openssl-devel >= 0.9.7d
47 BuildRequires: patchutils
48 %{?with_perl:BuildRequires: perl-devel >= 1:5.8.0}
49 %{?with_perl:BuildRequires: rpm-perlprov}
50 BuildRequires: rpmbuild(macros) >= 1.268
51 Requires(post,preun): /sbin/chkconfig
52 Requires(postun): /usr/sbin/userdel
53 Requires(pre): /bin/id
54 Requires(pre): /usr/sbin/useradd
55 %{?with_shared:Requires: %{name}-libs = %{version}-%{release}}
56 Requires: rc-scripts >= 0.4.0.18
57 %{!?with_shared:Obsoletes: %{name}-libs}
58 # needed by scripts from %{_bindir}
59 Requires: pam >= 0.79.0
60 %{?with_perl:Requires: perl-%{name} = %{version}-%{release}}
68 Conflicts: courier-imap
69 Conflicts: courier-imap-common
70 Conflicts: courier-imap-pop3
72 Conflicts: imap-common
77 Conflicts: solid-pop3d
79 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
81 %define _libexecdir %{_libdir}/cyrus
84 The Cyrus IMAP server is a scalable enterprise mail system designed
85 for use from small to large enterprise environments using
86 standards-based technologies.
88 A full Cyrus IMAP implementation allows a seamless mail and bulletin
89 board environment to be set up across multiple servers. It differs
90 from other IMAP server implementations in that it is run on "sealed"
91 servers, where users are not normally permitted to log in. The mailbox
92 database is stored in parts of the filesystem that are private to the
93 Cyrus IMAP system. All user access to mail is through software using
94 the IMAP, POP3, or KPOP protocols.
96 %description -l pl.UTF-8
97 Serwer Cyrus IMAP jest skalowalnym systemem e-mail dla
98 przedsiębiorstwa, zaprojektowanym dla małych i dużych firm i
99 wykorzystującym oparte na standardach technologie.
101 Pełna implementacja Cyrus IMAP pozwala na bezproblemowe ustawienie
102 środowiska poczty i elektronicznej tablicy ogłoszeniowej na kilku
103 serwerach. Tym się różni od innych implementacji serwerów IMAP, że
104 jest uruchamiany na "opieczętowanych" serwerach, na które w normalnych
105 warunkach użytkownicy nie mogą się zalogować. Baza danych skrzynek
106 pocztowych jest przechowywana w tych częściach systemu plików, które
107 są dostępne jedynie dla systemu IMAP Cyrus. Wszelki dostęp do poczty
108 ma miejsce poprzez oprogramowanie wykorzystujące protokoły IMAP, POP3
111 %description -l pt_BR.UTF-8
112 O servidor IMAP Cyrus é um sistema de mail corporativo escalável
113 projetado para uso por pequenos a grandes ambientes corporativos
114 usando tecnologias baseadas em padrões abertos.
116 Uma implementação completa do Cyrus permite se configurar um ambiente
117 transparente de mail e bulletin board entre múltiplos servidores. Ele
118 difere de outros servidores IMAP por rodar em servidores "selados",
119 onde usuários não possuem normalmente a permissão de log in. O banco
120 de dados de caixas de mail é armazenado em partes do sistema de
121 arquivos que são privativos do sistema Cyrus. Todo o acesso de
122 usuários aos mails se dá através de software usando os protocolos
126 Summary: Shared cyrus-imapd libraries
127 Summary(pl.UTF-8): Współdzielone biblioteki cyrus-imapd
131 Shared cyrus-imapd libraries.
133 %description libs -l pl.UTF-8
134 Współdzielone biblioteki cyrus-imapd.
137 Summary: Header files for developing with cyrus-imapd libraries
138 Summary(pl.UTF-8): Pliki nagłówkowe do programowania z użyciem bibliotek cyrus-imapd
139 Group: Development/Libraries
140 Requires: %{name}-libs = %{version}-%{release}
143 This package provides the necessary header files files to allow you to
144 develop with cyrus-imapd libraries.
146 %description devel -l pl.UTF-8
147 Ten pakiet zawiera pliki nagłówkowe niezbędne do tworzenia
148 oprogramowania z wykorzystaniem bibliotek cyrus-imapd.
151 Summary: Static cyrus-imapd libraries
152 Summary(pl.UTF-8): Biblioteki statyczne cyrus-imapd
153 Group: Development/Libraries
154 Requires: %{name}-devel = %{version}-%{release}
157 Static cyrus-imapd libraries
159 %description static -l pl.UTF-8
160 Biblioteki statyczne cyrus-imapd
162 %package -n perl-%{name}
163 Summary: Perl interface to cyrus-imapd library
164 Summary(pl.UTF-8): Perlowy interfejs do biblioteki cyrus-imapd
165 Group: Development/Languages/Perl
166 Requires: %{name}-libs = %{version}-%{release}
168 %description -n perl-%{name}
169 Perl interface to cyrus-imapd library.
171 %description -n perl-%{name} -l pl.UTF-8
172 Perlowy interfejs do biblioteki cyrus-imapd.
175 Summary: Cyrus-IMAP documentation
179 Cyrus-IMAP HTML documentation.
186 lsdiff --strip 1 %{PATCH1} |grep -E '(configure.in|Makefile.in)'| xargs %{__sed} -i -e '
196 rm -rf autom4te.cache
198 cp -p %{SOURCE1} %{SOURCE2} %{SOURCE4} %{SOURCE5} .
205 cp -f %{_datadir}/automake/config.* .
208 PATH=$PATH:$(pwd); export PATH
211 %{__aclocal} -I cmulocal
214 cp -f %{_datadir}/automake/config.* .
215 cp -f %{_datadir}/automake/install-sh .
217 --with-cyrus-prefix=%{_libexecdir} \
218 --with-service-path=%{_libexecdir} \
219 --with-com_err=/usr \
220 --%{!?with_perl:without-perl}%{?with_perl:with-perl=%{__perl}} \
228 %{__cc} %{rpmcflags} \
229 -DLIBEXECDIR="\"%{_libexecdir}\"" %{rpmldflags} -Wall -o deliver-wrapper %{SOURCE3}
232 rm -rf $RPM_BUILD_ROOT
234 $RPM_BUILD_ROOT{%{_sbindir},%{_libexecdir},%{_mandir}} \
235 $RPM_BUILD_ROOT%{_sysconfdir}/{logrotate.d,sysconfig/rc-inetd} \
236 $RPM_BUILD_ROOT/var/spool/imap/stage. \
237 $RPM_BUILD_ROOT/var/lib/imap/{user,quota,proc,log,msg,deliverdb/db,sieve,db,socket} \
238 $RPM_BUILD_ROOT/etc/{security,pam.d,rc.d/init.d}
240 touch $RPM_BUILD_ROOT/var/lib/imap/mailboxes \
241 $RPM_BUILD_ROOT/var/lib/imap/faillog \
242 $RPM_BUILD_ROOT/etc/security/blacklist.imap \
243 $RPM_BUILD_ROOT/etc/security/blacklist.pop3
246 DESTDIR=$RPM_BUILD_ROOT \
247 CYRUS_USER=%(id -u) \
248 CYRUS_GROUP=%(id -g) \
251 # ensure +x bit for rpm autodeps
252 chmod +x $RPM_BUILD_ROOT%{_libdir}/*.so*
254 install -p deliver-wrapper $RPM_BUILD_ROOT%{_libexecdir}/deliver-wrapper
256 cp -p %{SOURCE6} $RPM_BUILD_ROOT/etc/logrotate.d/cyrus-imapd
257 cp -p %{SOURCE7} $RPM_BUILD_ROOT%{_sysconfdir}/imapd.conf
258 cp -p %{SOURCE9} $RPM_BUILD_ROOT/etc/pam.d/imap
259 cp -p %{SOURCE10} $RPM_BUILD_ROOT/etc/pam.d/pop
260 sed -e 's,/''usr/lib/cyrus,%{_libexecdir},' %{SOURCE11} > $RPM_BUILD_ROOT/etc/rc.d/init.d/cyrus-imapd
261 sed -e 's,/''usr/lib/cyrus,%{_libexecdir},' %{SOURCE13} > $RPM_BUILD_ROOT/etc/rc.d/init.d/cyrus-sync
262 cp -p %{SOURCE12} $RPM_BUILD_ROOT%{_sysconfdir}/cyrus.conf
264 # move lots of admin-only/system-only stuff to sbin and lib
265 # but keep compat links as they are used in configs
266 for i in master reconstruct quota deliver; do
267 mv $RPM_BUILD_ROOT{%{_libexecdir}/$i,%{_sbindir}/cyr$i}
268 ln -s %{_sbindir}/cyr$i $RPM_BUILD_ROOT%{_libexecdir}/$i
270 for i in mbpath ctl_mboxlist ctl_deliver ctl_cyrusdb squatter \
271 tls_prune ipurge cyrdump cvt_cyrusdb chk_cyrus arbitron \
273 mv $RPM_BUILD_ROOT{%{_libexecdir},%{_sbindir}}/$i
274 ln -s %{_sbindir}/$i $RPM_BUILD_ROOT%{_libexecdir}
276 # We rename some utils, so we need to sort out the manpages
277 for i in master reconstruct quota deliver; do
278 mv $RPM_BUILD_ROOT%{_mandir}/man8/{,cyr}$i.8
281 %{__rm} $RPM_BUILD_ROOT%{_mandir}/man8/idled.8
283 touch $RPM_BUILD_ROOT/etc/security/blacklist.{imap,pop3}
286 for i in $(%{__perl} -le 'print for "a".."z"'); do
287 install -d $RPM_BUILD_ROOT%{_var}/lib/imap/user/$i
288 install -d $RPM_BUILD_ROOT%{_var}/lib/imap/quota/$i
289 install -d $RPM_BUILD_ROOT%{_var}/lib/imap/sieve/$i
290 install -d $RPM_BUILD_ROOT%{_var}/spool/imap/$i
294 find $RPM_BUILD_ROOT%{perl_vendorarch} -name .packlist | xargs rm -v
295 %{__rm} $RPM_BUILD_ROOT%{perl_archlib}/perllocal.pod
299 rm -rf $RPM_BUILD_ROOT
302 %useradd -u 76 -d /var/spool/imap -s /bin/false -c "Cyrus User" -g mail cyrus
305 touch /var/lib/imap/faillog
306 chown cyrus:mail /var/lib/imap/faillog
307 chmod 640 /var/lib/imap/faillog
309 chattr +S . user quota user/* quota/* 2>/dev/null ||:
310 chattr +S /var/spool/imap /var/spool/imap/* 2>/dev/null ||:
312 /sbin/chkconfig --add cyrus-imapd
313 %service cyrus-imapd restart "cyrus imap daemon"
314 %service cyrus-sync restart "cyrus replication service"
317 if [ "$1" = "0" ]; then
318 %service cyrus-imapd stop
319 %service cyrus-sync stop
320 /sbin/chkconfig --del cyrus-imapd
321 /sbin/chkconfig --del cyrus-sync
325 if [ "$1" = "0" ]; then
329 %post libs -p /sbin/ldconfig
330 %postun libs -p /sbin/ldconfig
333 %defattr(644,root,root,755)
334 %doc cyrus-README cyrus-procmailrc cyrus-user-procmailrc.template
335 %doc cyrus-imapd-procmail+cyrus.mc COPYRIGHT tools
336 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/*.conf
337 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/logrotate.d/cyrus-imapd
338 %attr(440,cyrus,root) %config(noreplace) %verify(not md5 mtime size) /etc/pam.d/*
339 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/security/blacklist.*
340 %attr(754,root,root) /etc/rc.d/init.d/cyrus-imapd
341 %attr(754,root,root) /etc/rc.d/init.d/cyrus-sync
342 %attr(640,cyrus,mail) %ghost /var/lib/imap/faillog
343 %attr(755,root,root) %{_bindir}/cyradm
344 %attr(755,root,root) %{_bindir}/imtest
345 %attr(755,root,root) %{_bindir}/installsieve
346 %attr(755,root,root) %{_bindir}/lmtptest
347 %attr(755,root,root) %{_bindir}/mupdatetest
348 %attr(755,root,root) %{_bindir}/nntptest
349 %attr(755,root,root) %{_bindir}/pop3test
350 %attr(755,root,root) %{_bindir}/sieveshell
351 %attr(755,root,root) %{_bindir}/sivtest
352 %attr(755,root,root) %{_bindir}/smtptest
353 %attr(755,root,root) %{_bindir}/synctest
355 %attr(4754,cyrus,mail) %{_sbindir}/cyrdeliver
356 %attr(755,root,root) %{_sbindir}/arbitron
357 %attr(755,root,root) %{_sbindir}/chk_cyrus
358 %attr(755,root,root) %{_sbindir}/ctl_cyrusdb
359 %attr(755,root,root) %{_sbindir}/ctl_deliver
360 %attr(755,root,root) %{_sbindir}/ctl_mboxlist
361 %attr(755,root,root) %{_sbindir}/cvt_cyrusdb
362 %attr(755,root,root) %{_sbindir}/cyr_expire
363 %attr(755,root,root) %{_sbindir}/cyrdump
364 %attr(755,root,root) %{_sbindir}/cyrmaster
365 %attr(755,root,root) %{_sbindir}/cyrquota
366 %attr(755,root,root) %{_sbindir}/cyrreconstruct
367 %attr(755,root,root) %{_sbindir}/ipurge
368 %attr(755,root,root) %{_sbindir}/mbpath
369 %attr(755,root,root) %{_sbindir}/squatter
370 %attr(755,root,root) %{_sbindir}/tls_prune
373 %attr(2755,cyrus,mail) %{_libexecdir}/deliver-wrapper
374 %attr(755,root,root) %{_libexecdir}/cyr_dbtool
375 %attr(755,root,root) %{_libexecdir}/cyr_df
376 %attr(755,root,root) %{_libexecdir}/cyr_sequence
377 %attr(755,root,root) %{_libexecdir}/cyr_synclog
378 %attr(755,root,root) %{_libexecdir}/cyr_userseen
379 %attr(755,root,root) %{_libexecdir}/fetchnews
380 %attr(755,root,root) %{_libexecdir}/fud
381 %attr(755,root,root) %{_libexecdir}/imapd
382 %attr(755,root,root) %{_libexecdir}/lmtpd
383 %attr(755,root,root) %{_libexecdir}/lmtpproxyd
384 %attr(755,root,root) %{_libexecdir}/mbexamine
385 %attr(755,root,root) %{_libexecdir}/nntpd
386 %attr(755,root,root) %{_libexecdir}/notifyd
387 %attr(755,root,root) %{_libexecdir}/pop3d
388 %attr(755,root,root) %{_libexecdir}/pop3proxyd
389 %attr(755,root,root) %{_libexecdir}/proxyd
390 %attr(755,root,root) %{_libexecdir}/sievec
391 %attr(755,root,root) %{_libexecdir}/sieved
392 %attr(755,root,root) %{_libexecdir}/smmapd
393 %attr(755,root,root) %{_libexecdir}/sync_client
394 %attr(755,root,root) %{_libexecdir}/sync_reset
395 %attr(755,root,root) %{_libexecdir}/sync_server
396 %attr(755,root,root) %{_libexecdir}/timsieved
397 %attr(755,root,root) %{_libexecdir}/unexpunge
400 %attr(755,root,root) %{_libexecdir}/arbitron
401 %attr(755,root,root) %{_libexecdir}/chk_cyrus
402 %attr(755,root,root) %{_libexecdir}/ctl_cyrusdb
403 %attr(755,root,root) %{_libexecdir}/ctl_deliver
404 %attr(755,root,root) %{_libexecdir}/ctl_mboxlist
405 %attr(755,root,root) %{_libexecdir}/cvt_cyrusdb
406 %attr(755,root,root) %{_libexecdir}/cyr_expire
407 %attr(755,root,root) %{_libexecdir}/cyrdump
408 %attr(755,root,root) %{_libexecdir}/deliver
409 %attr(755,root,root) %{_libexecdir}/ipurge
410 %attr(755,root,root) %{_libexecdir}/master
411 %attr(755,root,root) %{_libexecdir}/mbpath
412 %attr(755,root,root) %{_libexecdir}/quota
413 %attr(755,root,root) %{_libexecdir}/reconstruct
414 %attr(755,root,root) %{_libexecdir}/squatter
415 %attr(755,root,root) %{_libexecdir}/tls_prune
417 %attr(750,cyrus,mail) /var/spool/imap
418 %attr(750,cyrus,mail) %dir /var/lib/imap
419 %attr(750,cyrus,mail) %dir /var/lib/imap/deliverdb
420 %attr(750,cyrus,mail) /var/lib/imap/deliverdb/db
421 %attr(750,cyrus,mail) /var/lib/imap/quota
422 %attr(750,cyrus,mail) /var/lib/imap/user
423 %attr(750,cyrus,mail) /var/lib/imap/sieve
424 %attr(750,cyrus,mail) /var/lib/imap/log
425 %attr(750,cyrus,mail) /var/lib/imap/msg
426 %attr(750,cyrus,mail) /var/lib/imap/proc
427 %attr(750,cyrus,mail) /var/lib/imap/db
428 %attr(750,cyrus,mail) /var/lib/imap/socket
429 %attr(750,cyrus,mail) %config(noreplace) %verify(not md5 mtime size) /var/lib/imap/mailboxes
435 %defattr(644,root,root,755)
436 %attr(755,root,root) %{_libdir}/libcyrus-%{version}.so
437 %attr(755,root,root) %{_libdir}/libcyrus_min-%{version}.so
441 %defattr(644,root,root,755)
444 %attr(755,root,root) %{_libdir}/libcyrus.so
445 %attr(755,root,root) %{_libdir}/libcyrus_min.so
446 %{_libdir}/libcyrus.la
447 %{_libdir}/libcyrus_min.la
450 %defattr(644,root,root,755)
452 %{_libdir}/libcyrus.a
453 %{_libdir}/libcyrus_min.a
456 %files -n perl-%{name}
457 %defattr(644,root,root,755)
458 %{perl_vendorarch}/Cyrus
459 %dir %{perl_vendorarch}/auto/Cyrus
460 %dir %{perl_vendorarch}/auto/Cyrus/IMAP
461 %attr(755,root,root) %{perl_vendorarch}/auto/Cyrus/IMAP/IMAP.so
462 %dir %{perl_vendorarch}/auto/Cyrus/SIEVE
463 %dir %{perl_vendorarch}/auto/Cyrus/SIEVE/managesieve
464 %attr(755,root,root) %{perl_vendorarch}/auto/Cyrus/SIEVE/managesieve/managesieve.so
468 %defattr(644,root,root,755)