3 %bcond_without docs # don't regenerate docs
4 %bcond_without http # build without http support
5 %bcond_without ldap # build without ldap support
6 %bcond_without lmdb # build without lmdb backend support
7 %bcond_without mysql # build without mysql backend support
8 %bcond_without perl # build without perl support
9 %bcond_without pgsql # build without postgresql backend support
10 %bcond_with sphinx # build with sphinx search engine support (broken)
11 %bcond_without xapian # build without xapian search engine support
13 %{?with_perl:%include /usr/lib/rpm/macros.perl}
15 Summary: High-performance mail store with IMAP and POP3
16 Summary(pl.UTF-8): Wysoko wydajny serwer IMAP i POP3
17 Summary(pt_BR.UTF-8): Um servidor de mail de alto desempenho que suporta IMAP e POP3
22 Group: Networking/Daemons/POP3
23 Source0: ftp://ftp.cyrusimap.org/cyrus-imapd/%{name}-%{version}.tar.gz
24 # Source0-md5: 7dc5cf7987d146c6df608146087e0c75
26 Source2: cyrus-procmailrc
27 Source3: cyrus-deliver-wrapper.c
28 Source4: cyrus-user-procmailrc.template
29 Source5: %{name}-procmail+cyrus.mc
30 Source6: %{name}.logrotate
33 Source10: %{name}-pop.pamd
34 Source11: %{name}.init
36 Source13: cyrus-sync.init
37 Patch0: %{name}-et.patch
39 Patch2: %{name}-clamav-0.101.patch
40 URL: http://www.cyrusimap.org/
41 BuildRequires: autoconf >= 2.54
42 BuildRequires: automake
43 BuildRequires: cyrus-sasl-devel >= 1.5.27
44 BuildRequires: db-devel >= 4.1.25
46 %{?with_http:BuildRequires: libbrotli-devel}
47 BuildRequires: libcom_err-devel >= 1.21
48 %{?with_http:BuildRequires: libical-devel}
49 BuildRequires: libtool
50 %{?with_http:BuildRequires: libxml2-devel >= 2.7.3}
51 %{?with_lmdb:BuildRequires: lmdb-devel}
52 %{?with_mysql:BuildRequires: mysql-devel}
53 BuildRequires: net-snmp-devel
54 %{?with_http:BuildRequires: nghttp2-devel >= 1.5}
55 %{?with_ldap:BuildRequires: openldap-devel}
56 BuildRequires: openssl-devel >= 0.9.7d
57 BuildRequires: patchutils
58 %{?with_docs:BuildRequires: perl-Pod-POM-View-Restructured}
59 %{?with_perl:BuildRequires: perl-devel >= 1:5.8.0}
60 %{?with_pgsql:BuildRequires: postgresql-devel}
61 %{?with_perl:BuildRequires: rpm-perlprov}
62 %{?with_http:BuildRequires: shapelib-devel >= 1.4.1}
63 %{?with_http:BuildRequires: sqlite3-devel}
64 %{?with_docs:BuildRequires: sphinx-pdg-3}
65 %{?with_xapian:BuildRequires: xapian-core-devel}
66 BuildRequires: rpmbuild(macros) >= 1.527
67 Requires(post,preun): /sbin/chkconfig
68 Requires(postun): /usr/sbin/userdel
69 Requires(pre): /bin/id
70 Requires(pre): /usr/sbin/useradd
71 Requires: %{name}-libs = %{version}-%{release}
72 Requires: rc-scripts >= 0.4.0.18
73 # needed by scripts from %{_bindir}
74 Requires: pam >= 0.79.0
75 %{?with_perl:Requires: perl-%{name} = %{version}-%{release}}
83 Conflicts: courier-imap
84 Conflicts: courier-imap-common
85 Conflicts: courier-imap-pop3
87 Conflicts: imap-common
92 Conflicts: solid-pop3d
94 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
96 %define _libexecdir %{_libdir}/cyrus
98 %define skip_post_check_so libcyrus(|_min|_imap|_sieve).so.*
101 The Cyrus IMAP server is a scalable enterprise mail system designed
102 for use from small to large enterprise environments using
103 standards-based technologies.
105 A full Cyrus IMAP implementation allows a seamless mail and bulletin
106 board environment to be set up across multiple servers. It differs
107 from other IMAP server implementations in that it is run on "sealed"
108 servers, where users are not normally permitted to log in. The mailbox
109 database is stored in parts of the filesystem that are private to the
110 Cyrus IMAP system. All user access to mail is through software using
111 the IMAP, POP3, or KPOP protocols.
113 %description -l pl.UTF-8
114 Serwer Cyrus IMAP jest skalowalnym systemem e-mail dla
115 przedsiębiorstwa, zaprojektowanym dla małych i dużych firm i
116 wykorzystującym oparte na standardach technologie.
118 Pełna implementacja Cyrus IMAP pozwala na bezproblemowe ustawienie
119 środowiska poczty i elektronicznej tablicy ogłoszeniowej na kilku
120 serwerach. Tym się różni od innych implementacji serwerów IMAP, że
121 jest uruchamiany na "opieczętowanych" serwerach, na które w normalnych
122 warunkach użytkownicy nie mogą się zalogować. Baza danych skrzynek
123 pocztowych jest przechowywana w tych częściach systemu plików, które
124 są dostępne jedynie dla systemu IMAP Cyrus. Wszelki dostęp do poczty
125 ma miejsce poprzez oprogramowanie wykorzystujące protokoły IMAP, POP3
128 %description -l pt_BR.UTF-8
129 O servidor IMAP Cyrus é um sistema de mail corporativo escalável
130 projetado para uso por pequenos a grandes ambientes corporativos
131 usando tecnologias baseadas em padrões abertos.
133 Uma implementação completa do Cyrus permite se configurar um ambiente
134 transparente de mail e bulletin board entre múltiplos servidores. Ele
135 difere de outros servidores IMAP por rodar em servidores "selados",
136 onde usuários não possuem normalmente a permissão de log in. O banco
137 de dados de caixas de mail é armazenado em partes do sistema de
138 arquivos que são privativos do sistema Cyrus. Todo o acesso de
139 usuários aos mails se dá através de software usando os protocolos
143 Summary: Shared cyrus-imapd libraries
144 Summary(pl.UTF-8): Współdzielone biblioteki cyrus-imapd
148 Shared cyrus-imapd libraries.
150 %description libs -l pl.UTF-8
151 Współdzielone biblioteki cyrus-imapd.
154 Summary: Header files for developing with cyrus-imapd libraries
155 Summary(pl.UTF-8): Pliki nagłówkowe do programowania z użyciem bibliotek cyrus-imapd
156 Group: Development/Libraries
157 Requires: %{name}-libs = %{version}-%{release}
160 This package provides the necessary header files files to allow you to
161 develop with cyrus-imapd libraries.
163 %description devel -l pl.UTF-8
164 Ten pakiet zawiera pliki nagłówkowe niezbędne do tworzenia
165 oprogramowania z wykorzystaniem bibliotek cyrus-imapd.
168 Summary: Static cyrus-imapd libraries
169 Summary(pl.UTF-8): Biblioteki statyczne cyrus-imapd
170 Group: Development/Libraries
171 Requires: %{name}-devel = %{version}-%{release}
174 Static cyrus-imapd libraries
176 %description static -l pl.UTF-8
177 Biblioteki statyczne cyrus-imapd
179 %package -n perl-%{name}
180 Summary: Perl interface to cyrus-imapd library
181 Summary(pl.UTF-8): Perlowy interfejs do biblioteki cyrus-imapd
182 Group: Development/Languages/Perl
183 Requires: %{name}-libs = %{version}-%{release}
185 %description -n perl-%{name}
186 Perl interface to cyrus-imapd library.
188 %description -n perl-%{name} -l pl.UTF-8
189 Perlowy interfejs do biblioteki cyrus-imapd.
197 rm -rf autom4te.cache
199 cp -p %{SOURCE1} %{SOURCE2} %{SOURCE4} %{SOURCE5} .
208 --enable-autocreate \
211 %{__enable_disable http} \
215 --enable-replication \
216 %{__enable_disable sphinx} \
218 %{__enable_disable xapian} \
219 --with-com_err=/usr \
220 %{__with_without ldap} \
222 %{__with_without lmdb} \
223 %{__with_without mysql} \
224 --%{!?with_perl:without-perl}%{?with_perl:with-perl=%{__perl}} \
225 %{__with_without pgsql} \
226 %{__with_without docs sphinx-build}
232 %{__cc} %{rpmcflags} \
233 -DLIBEXECDIR="\"%{_libexecdir}\"" %{rpmldflags} -Wall -o deliver-wrapper %{SOURCE3}
236 rm -rf $RPM_BUILD_ROOT
238 $RPM_BUILD_ROOT{%{_sbindir},%{_libexecdir},%{_mandir}} \
239 $RPM_BUILD_ROOT%{_sysconfdir}/{logrotate.d,sysconfig/rc-inetd} \
240 $RPM_BUILD_ROOT/var/spool/imap/stage. \
241 $RPM_BUILD_ROOT/var/lib/imap/{user,quota,proc,log,msg,deliverdb/db,sieve,db,socket} \
242 $RPM_BUILD_ROOT/etc/{security,pam.d,rc.d/init.d}
244 touch $RPM_BUILD_ROOT/var/lib/imap/mailboxes \
245 $RPM_BUILD_ROOT/var/lib/imap/faillog \
246 $RPM_BUILD_ROOT/etc/security/blacklist.imap \
247 $RPM_BUILD_ROOT/etc/security/blacklist.pop3
250 DESTDIR=$RPM_BUILD_ROOT \
251 CYRUS_USER=%(id -u) \
252 CYRUS_GROUP=%(id -g) \
255 # ensure +x bit for rpm autodeps
256 chmod +x $RPM_BUILD_ROOT%{_libdir}/*.so*
258 install -p deliver-wrapper $RPM_BUILD_ROOT%{_libexecdir}/deliver-wrapper
260 cp -p %{SOURCE6} $RPM_BUILD_ROOT/etc/logrotate.d/cyrus-imapd
261 cp -p %{SOURCE7} $RPM_BUILD_ROOT%{_sysconfdir}/imapd.conf
262 cp -p %{SOURCE9} $RPM_BUILD_ROOT/etc/pam.d/imap
263 cp -p %{SOURCE10} $RPM_BUILD_ROOT/etc/pam.d/pop
264 sed -e 's,/''usr/lib/cyrus,%{_libexecdir},' %{SOURCE11} > $RPM_BUILD_ROOT/etc/rc.d/init.d/cyrus-imapd
265 sed -e 's,/''usr/lib/cyrus,%{_libexecdir},' %{SOURCE13} > $RPM_BUILD_ROOT/etc/rc.d/init.d/cyrus-sync
266 cp -p %{SOURCE12} $RPM_BUILD_ROOT%{_sysconfdir}/cyrus.conf
268 # We rename some utils, so we need to sort out the manpages
269 for i in master reconstruct quota deliver; do
270 mv $RPM_BUILD_ROOT%{_mandir}/man8/{,cyr}$i.8
273 %{__rm} $RPM_BUILD_ROOT%{_mandir}/man8/idled.8
275 touch $RPM_BUILD_ROOT/etc/security/blacklist.{imap,pop3}
278 for i in $(%{__perl} -le 'print for "a".."z"'); do
279 install -d $RPM_BUILD_ROOT%{_var}/lib/imap/user/$i
280 install -d $RPM_BUILD_ROOT%{_var}/lib/imap/quota/$i
281 install -d $RPM_BUILD_ROOT%{_var}/lib/imap/sieve/$i
282 install -d $RPM_BUILD_ROOT%{_var}/spool/imap/$i
286 find $RPM_BUILD_ROOT%{perl_vendorarch} -name .packlist | xargs rm -v
287 %{__rm} $RPM_BUILD_ROOT%{perl_archlib}/perllocal.pod
291 rm -rf $RPM_BUILD_ROOT
294 %useradd -u 76 -d /var/spool/imap -s /bin/false -c "Cyrus User" -g mail cyrus
297 touch /var/lib/imap/faillog
298 chown cyrus:mail /var/lib/imap/faillog
299 chmod 640 /var/lib/imap/faillog
301 chattr +S . user quota user/* quota/* 2>/dev/null ||:
302 chattr +S /var/spool/imap /var/spool/imap/* 2>/dev/null ||:
304 /sbin/chkconfig --add cyrus-imapd
305 %service cyrus-imapd restart "cyrus imap daemon"
306 %service cyrus-sync restart "cyrus replication service"
309 if [ "$1" = "0" ]; then
310 %service cyrus-imapd stop
311 %service cyrus-sync stop
312 /sbin/chkconfig --del cyrus-imapd
313 /sbin/chkconfig --del cyrus-sync
317 if [ "$1" = "0" ]; then
321 %post libs -p /sbin/ldconfig
322 %postun libs -p /sbin/ldconfig
325 %defattr(644,root,root,755)
326 %doc cyrus-README cyrus-procmailrc cyrus-user-procmailrc.template
327 %doc cyrus-imapd-procmail+cyrus.mc COPYING tools
328 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/*.conf
329 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/logrotate.d/cyrus-imapd
330 %attr(440,cyrus,root) %config(noreplace) %verify(not md5 mtime size) /etc/pam.d/*
331 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/security/blacklist.*
332 %attr(754,root,root) /etc/rc.d/init.d/cyrus-imapd
333 %attr(754,root,root) /etc/rc.d/init.d/cyrus-sync
334 %attr(640,cyrus,mail) %ghost /var/lib/imap/faillog
335 %attr(755,root,root) %{_bindir}/cyradm
336 %attr(755,root,root) %{_bindir}/httptest
337 %attr(755,root,root) %{_bindir}/imtest
338 %attr(755,root,root) %{_bindir}/installsieve
339 %attr(755,root,root) %{_bindir}/lmtptest
340 %attr(755,root,root) %{_bindir}/mupdatetest
341 %attr(755,root,root) %{_bindir}/nntptest
342 %attr(755,root,root) %{_bindir}/pop3test
343 %attr(755,root,root) %{_bindir}/sieveshell
344 %attr(755,root,root) %{_bindir}/sivtest
345 %attr(755,root,root) %{_bindir}/smtptest
346 %attr(755,root,root) %{_bindir}/synctest
349 %attr(2755,cyrus,mail) %{_libexecdir}/deliver-wrapper
350 %attr(755,root,root) %{_libexecdir}/backupd
351 %attr(755,root,root) %{_libexecdir}/calalarmd
352 %attr(755,root,root) %{_libexecdir}/fud
353 %{?with_http:%attr(755,root,root) %{_libexecdir}/httpd}
354 %attr(755,root,root) %{_libexecdir}/idled
355 %attr(755,root,root) %{_libexecdir}/imapd
356 %attr(755,root,root) %{_libexecdir}/lmtpd
357 %attr(755,root,root) %{_libexecdir}/lmtpproxyd
358 %attr(755,root,root) %{_libexecdir}/master
359 %attr(755,root,root) %{_libexecdir}/mupdate
360 %attr(755,root,root) %{_libexecdir}/nntpd
361 %attr(755,root,root) %{_libexecdir}/notifyd
362 %attr(755,root,root) %{_libexecdir}/ptloader
363 %attr(755,root,root) %{_libexecdir}/pop3d
364 %attr(755,root,root) %{_libexecdir}/pop3proxyd
365 %attr(755,root,root) %{_libexecdir}/proxyd
366 %attr(755,root,root) %{_libexecdir}/smmapd
367 %attr(755,root,root) %{_libexecdir}/sync_server
368 %attr(755,root,root) %{_libexecdir}/timsieved
369 %attr(755,root,root) %{_sbindir}/arbitron
370 %attr(755,root,root) %{_sbindir}/chk_cyrus
371 %attr(755,root,root) %{_sbindir}/ctl_backups
372 %attr(755,root,root) %{_sbindir}/ctl_conversationsdb
373 %attr(755,root,root) %{_sbindir}/ctl_cyrusdb
374 %attr(755,root,root) %{_sbindir}/ctl_deliver
375 %attr(755,root,root) %{_sbindir}/ctl_mboxlist
376 %{?with_http:%attr(755,root,root) %{_sbindir}/ctl_zoneinfo}
377 %attr(755,root,root) %{_sbindir}/cvt_cyrusdb
378 %attr(755,root,root) %{_sbindir}/cvt_xlist_specialuse
379 %attr(755,root,root) %{_sbindir}/cyr_buildinfo
380 %attr(755,root,root) %{_sbindir}/cyr_dbtool
381 %attr(755,root,root) %{_sbindir}/cyr_deny
382 %attr(755,root,root) %{_sbindir}/cyr_df
383 %attr(755,root,root) %{_sbindir}/cyrdump
384 %attr(755,root,root) %{_sbindir}/cyr_backup
385 %attr(755,root,root) %{_sbindir}/cyr_expire
386 %attr(755,root,root) %{_sbindir}/cyr_info
387 %attr(755,root,root) %{_sbindir}/cyr_sequence
388 %attr(755,root,root) %{_sbindir}/cyr_synclog
389 %attr(755,root,root) %{_sbindir}/cyr_userseen
390 %attr(755,root,root) %{_sbindir}/cyr_virusscan
391 %{?with_http:%attr(755,root,root) %{_sbindir}/dav_reconstruct}
392 %attr(755,root,root) %{_sbindir}/deliver
393 %attr(755,root,root) %{_sbindir}/fetchnews
394 %attr(755,root,root) %{_sbindir}/ipurge
395 %attr(755,root,root) %{_sbindir}/mbexamine
396 %attr(755,root,root) %{_sbindir}/mbpath
397 %attr(755,root,root) %{_sbindir}/mbtool
398 %attr(755,root,root) %{_sbindir}/quota
399 %attr(755,root,root) %{_sbindir}/ptdump
400 %attr(755,root,root) %{_sbindir}/ptexpire
401 %attr(755,root,root) %{_sbindir}/reconstruct
402 %attr(755,root,root) %{_sbindir}/restore
403 %attr(755,root,root) %{_sbindir}/sievec
404 %attr(755,root,root) %{_sbindir}/sieved
405 %attr(755,root,root) %{_sbindir}/squatter
406 %attr(755,root,root) %{_sbindir}/sync_client
407 %attr(755,root,root) %{_sbindir}/sync_reset
408 %attr(755,root,root) %{_sbindir}/tls_prune
409 %attr(755,root,root) %{_sbindir}/unexpunge
411 %attr(750,cyrus,mail) /var/spool/imap
412 %attr(750,cyrus,mail) %dir /var/lib/imap
413 %attr(750,cyrus,mail) %dir /var/lib/imap/deliverdb
414 %attr(750,cyrus,mail) /var/lib/imap/deliverdb/db
415 %attr(750,cyrus,mail) /var/lib/imap/quota
416 %attr(750,cyrus,mail) /var/lib/imap/user
417 %attr(750,cyrus,mail) /var/lib/imap/sieve
418 %attr(750,cyrus,mail) /var/lib/imap/log
419 %attr(750,cyrus,mail) /var/lib/imap/msg
420 %attr(750,cyrus,mail) /var/lib/imap/proc
421 %attr(750,cyrus,mail) /var/lib/imap/db
422 %attr(750,cyrus,mail) /var/lib/imap/socket
423 %attr(750,cyrus,mail) %config(noreplace) %verify(not md5 mtime size) /var/lib/imap/mailboxes
428 %defattr(644,root,root,755)
429 %attr(755,root,root) %{_libdir}/libcyrus.so.0
430 %attr(755,root,root) %ghost %{_libdir}/libcyrus.so.*.*
431 %attr(755,root,root) %{_libdir}/libcyrus_min.so.0
432 %attr(755,root,root) %ghost %{_libdir}/libcyrus_min.so.*.*
433 %attr(755,root,root) %{_libdir}/libcyrus_imap.so.0
434 %attr(755,root,root) %ghost %{_libdir}/libcyrus_imap.so.*.*
435 %attr(755,root,root) %{_libdir}/libcyrus_sieve.so.0
436 %attr(755,root,root) %ghost %{_libdir}/libcyrus_sieve.so.*.*
439 %defattr(644,root,root,755)
441 %attr(755,root,root) %{_libdir}/libcyrus.so
442 %attr(755,root,root) %{_libdir}/libcyrus_min.so
443 %attr(755,root,root) %{_libdir}/libcyrus_imap.so
444 %attr(755,root,root) %{_libdir}/libcyrus_sieve.so
445 %{_libdir}/libcyrus.la
446 %{_libdir}/libcyrus_min.la
447 %{_libdir}/libcyrus_imap.la
448 %{_libdir}/libcyrus_sieve.la
449 %{_pkgconfigdir}/libcyrus.pc
450 %{_pkgconfigdir}/libcyrus_min.pc
451 %{_pkgconfigdir}/libcyrus_sieve.pc
454 %defattr(644,root,root,755)
455 %{_libdir}/libcyrus.a
456 %{_libdir}/libcyrus_imap.a
457 %{_libdir}/libcyrus_min.a
458 %{_libdir}/libcyrus_sieve.a
461 %files -n perl-%{name}
462 %defattr(644,root,root,755)
463 %{perl_vendorarch}/Cyrus
464 %dir %{perl_vendorarch}/auto/Cyrus
465 %dir %{perl_vendorarch}/auto/Cyrus/IMAP
466 %attr(755,root,root) %{perl_vendorarch}/auto/Cyrus/IMAP/IMAP.so
467 %dir %{perl_vendorarch}/auto/Cyrus/SIEVE
468 %dir %{perl_vendorarch}/auto/Cyrus/SIEVE/managesieve
469 %attr(755,root,root) %{perl_vendorarch}/auto/Cyrus/SIEVE/managesieve/managesieve.so
470 %dir %{perl_vendorlib}/Cyrus
471 %dir %{perl_vendorlib}/Cyrus/Annotator
472 %{perl_vendorlib}/Cyrus/Annotator/AnnotateInlinedCIDs.pm
473 %{perl_vendorlib}/Cyrus/Annotator/Daemon.pm
474 %{perl_vendorlib}/Cyrus/Annotator/Message.pm