3 %bcond_without http # build without http support
4 %bcond_without perl # build with perl
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: 7dc5cf7987d146c6df608146087e0c75
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
31 Patch2: %{name}-clamav-0.101.patch
32 URL: http://www.cyrusimap.org/
33 BuildRequires: autoconf >= 2.54
34 BuildRequires: automake
35 BuildRequires: cyrus-sasl-devel >= 1.5.27
36 BuildRequires: db-devel >= 4.1.25
38 %{?with_http:BuildRequires: libbrotli-devel}
39 BuildRequires: libcom_err-devel >= 1.21
40 %{?with_http:BuildRequires: libical-devel}
41 BuildRequires: libtool
42 %{?with_http:BuildRequires: libxml2-devel >= 2.7.3}
43 BuildRequires: net-snmp-devel
44 %{?with_http:BuildRequires: nghttp2-devel >= 1.5}
45 BuildRequires: openssl-devel >= 0.9.7d
46 BuildRequires: patchutils
47 %{?with_perl:BuildRequires: perl-devel >= 1:5.8.0}
48 %{?with_perl:BuildRequires: rpm-perlprov}
49 %{?with_http:BuildRequires: shapelib-devel >= 1.4.1}
50 %{?with_http:BuildRequires: sqlite3-devel}
51 BuildRequires: rpmbuild(macros) >= 1.527
52 Requires(post,preun): /sbin/chkconfig
53 Requires(postun): /usr/sbin/userdel
54 Requires(pre): /bin/id
55 Requires(pre): /usr/sbin/useradd
56 Requires: %{name}-libs = %{version}-%{release}
57 Requires: rc-scripts >= 0.4.0.18
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
83 %define skip_post_check_so libcyrus(|_min|_imap|_sieve).so.*
86 The Cyrus IMAP server is a scalable enterprise mail system designed
87 for use from small to large enterprise environments using
88 standards-based technologies.
90 A full Cyrus IMAP implementation allows a seamless mail and bulletin
91 board environment to be set up across multiple servers. It differs
92 from other IMAP server implementations in that it is run on "sealed"
93 servers, where users are not normally permitted to log in. The mailbox
94 database is stored in parts of the filesystem that are private to the
95 Cyrus IMAP system. All user access to mail is through software using
96 the IMAP, POP3, or KPOP protocols.
98 %description -l pl.UTF-8
99 Serwer Cyrus IMAP jest skalowalnym systemem e-mail dla
100 przedsiębiorstwa, zaprojektowanym dla małych i dużych firm i
101 wykorzystującym oparte na standardach technologie.
103 Pełna implementacja Cyrus IMAP pozwala na bezproblemowe ustawienie
104 środowiska poczty i elektronicznej tablicy ogłoszeniowej na kilku
105 serwerach. Tym się różni od innych implementacji serwerów IMAP, że
106 jest uruchamiany na "opieczętowanych" serwerach, na które w normalnych
107 warunkach użytkownicy nie mogą się zalogować. Baza danych skrzynek
108 pocztowych jest przechowywana w tych częściach systemu plików, które
109 są dostępne jedynie dla systemu IMAP Cyrus. Wszelki dostęp do poczty
110 ma miejsce poprzez oprogramowanie wykorzystujące protokoły IMAP, POP3
113 %description -l pt_BR.UTF-8
114 O servidor IMAP Cyrus é um sistema de mail corporativo escalável
115 projetado para uso por pequenos a grandes ambientes corporativos
116 usando tecnologias baseadas em padrões abertos.
118 Uma implementação completa do Cyrus permite se configurar um ambiente
119 transparente de mail e bulletin board entre múltiplos servidores. Ele
120 difere de outros servidores IMAP por rodar em servidores "selados",
121 onde usuários não possuem normalmente a permissão de log in. O banco
122 de dados de caixas de mail é armazenado em partes do sistema de
123 arquivos que são privativos do sistema Cyrus. Todo o acesso de
124 usuários aos mails se dá através de software usando os protocolos
128 Summary: Shared cyrus-imapd libraries
129 Summary(pl.UTF-8): Współdzielone biblioteki cyrus-imapd
133 Shared cyrus-imapd libraries.
135 %description libs -l pl.UTF-8
136 Współdzielone biblioteki cyrus-imapd.
139 Summary: Header files for developing with cyrus-imapd libraries
140 Summary(pl.UTF-8): Pliki nagłówkowe do programowania z użyciem bibliotek cyrus-imapd
141 Group: Development/Libraries
142 Requires: %{name}-libs = %{version}-%{release}
145 This package provides the necessary header files files to allow you to
146 develop with cyrus-imapd libraries.
148 %description devel -l pl.UTF-8
149 Ten pakiet zawiera pliki nagłówkowe niezbędne do tworzenia
150 oprogramowania z wykorzystaniem bibliotek cyrus-imapd.
153 Summary: Static cyrus-imapd libraries
154 Summary(pl.UTF-8): Biblioteki statyczne cyrus-imapd
155 Group: Development/Libraries
156 Requires: %{name}-devel = %{version}-%{release}
159 Static cyrus-imapd libraries
161 %description static -l pl.UTF-8
162 Biblioteki statyczne cyrus-imapd
164 %package -n perl-%{name}
165 Summary: Perl interface to cyrus-imapd library
166 Summary(pl.UTF-8): Perlowy interfejs do biblioteki cyrus-imapd
167 Group: Development/Languages/Perl
168 Requires: %{name}-libs = %{version}-%{release}
170 %description -n perl-%{name}
171 Perl interface to cyrus-imapd library.
173 %description -n perl-%{name} -l pl.UTF-8
174 Perlowy interfejs do biblioteki cyrus-imapd.
182 rm -rf autom4te.cache
184 cp -p %{SOURCE1} %{SOURCE2} %{SOURCE4} %{SOURCE5} .
193 --with-com_err=/usr \
194 --%{!?with_perl:without-perl}%{?with_perl:with-perl=%{__perl}} \
196 %{__enable_disable http} \
198 --enable-replication \
205 %{__cc} %{rpmcflags} \
206 -DLIBEXECDIR="\"%{_libexecdir}\"" %{rpmldflags} -Wall -o deliver-wrapper %{SOURCE3}
209 rm -rf $RPM_BUILD_ROOT
211 $RPM_BUILD_ROOT{%{_sbindir},%{_libexecdir},%{_mandir}} \
212 $RPM_BUILD_ROOT%{_sysconfdir}/{logrotate.d,sysconfig/rc-inetd} \
213 $RPM_BUILD_ROOT/var/spool/imap/stage. \
214 $RPM_BUILD_ROOT/var/lib/imap/{user,quota,proc,log,msg,deliverdb/db,sieve,db,socket} \
215 $RPM_BUILD_ROOT/etc/{security,pam.d,rc.d/init.d}
217 touch $RPM_BUILD_ROOT/var/lib/imap/mailboxes \
218 $RPM_BUILD_ROOT/var/lib/imap/faillog \
219 $RPM_BUILD_ROOT/etc/security/blacklist.imap \
220 $RPM_BUILD_ROOT/etc/security/blacklist.pop3
223 DESTDIR=$RPM_BUILD_ROOT \
224 CYRUS_USER=%(id -u) \
225 CYRUS_GROUP=%(id -g) \
228 # ensure +x bit for rpm autodeps
229 chmod +x $RPM_BUILD_ROOT%{_libdir}/*.so*
231 install -p deliver-wrapper $RPM_BUILD_ROOT%{_libexecdir}/deliver-wrapper
233 cp -p %{SOURCE6} $RPM_BUILD_ROOT/etc/logrotate.d/cyrus-imapd
234 cp -p %{SOURCE7} $RPM_BUILD_ROOT%{_sysconfdir}/imapd.conf
235 cp -p %{SOURCE9} $RPM_BUILD_ROOT/etc/pam.d/imap
236 cp -p %{SOURCE10} $RPM_BUILD_ROOT/etc/pam.d/pop
237 sed -e 's,/''usr/lib/cyrus,%{_libexecdir},' %{SOURCE11} > $RPM_BUILD_ROOT/etc/rc.d/init.d/cyrus-imapd
238 sed -e 's,/''usr/lib/cyrus,%{_libexecdir},' %{SOURCE13} > $RPM_BUILD_ROOT/etc/rc.d/init.d/cyrus-sync
239 cp -p %{SOURCE12} $RPM_BUILD_ROOT%{_sysconfdir}/cyrus.conf
241 # We rename some utils, so we need to sort out the manpages
242 for i in master reconstruct quota deliver; do
243 mv $RPM_BUILD_ROOT%{_mandir}/man8/{,cyr}$i.8
246 %{__rm} $RPM_BUILD_ROOT%{_mandir}/man8/idled.8
248 touch $RPM_BUILD_ROOT/etc/security/blacklist.{imap,pop3}
251 for i in $(%{__perl} -le 'print for "a".."z"'); do
252 install -d $RPM_BUILD_ROOT%{_var}/lib/imap/user/$i
253 install -d $RPM_BUILD_ROOT%{_var}/lib/imap/quota/$i
254 install -d $RPM_BUILD_ROOT%{_var}/lib/imap/sieve/$i
255 install -d $RPM_BUILD_ROOT%{_var}/spool/imap/$i
259 find $RPM_BUILD_ROOT%{perl_vendorarch} -name .packlist | xargs rm -v
260 %{__rm} $RPM_BUILD_ROOT%{perl_archlib}/perllocal.pod
264 rm -rf $RPM_BUILD_ROOT
267 %useradd -u 76 -d /var/spool/imap -s /bin/false -c "Cyrus User" -g mail cyrus
270 touch /var/lib/imap/faillog
271 chown cyrus:mail /var/lib/imap/faillog
272 chmod 640 /var/lib/imap/faillog
274 chattr +S . user quota user/* quota/* 2>/dev/null ||:
275 chattr +S /var/spool/imap /var/spool/imap/* 2>/dev/null ||:
277 /sbin/chkconfig --add cyrus-imapd
278 %service cyrus-imapd restart "cyrus imap daemon"
279 %service cyrus-sync restart "cyrus replication service"
282 if [ "$1" = "0" ]; then
283 %service cyrus-imapd stop
284 %service cyrus-sync stop
285 /sbin/chkconfig --del cyrus-imapd
286 /sbin/chkconfig --del cyrus-sync
290 if [ "$1" = "0" ]; then
294 %post libs -p /sbin/ldconfig
295 %postun libs -p /sbin/ldconfig
298 %defattr(644,root,root,755)
299 %doc cyrus-README cyrus-procmailrc cyrus-user-procmailrc.template
300 %doc cyrus-imapd-procmail+cyrus.mc COPYING tools
301 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/*.conf
302 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/logrotate.d/cyrus-imapd
303 %attr(440,cyrus,root) %config(noreplace) %verify(not md5 mtime size) /etc/pam.d/*
304 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/security/blacklist.*
305 %attr(754,root,root) /etc/rc.d/init.d/cyrus-imapd
306 %attr(754,root,root) /etc/rc.d/init.d/cyrus-sync
307 %attr(640,cyrus,mail) %ghost /var/lib/imap/faillog
308 %attr(755,root,root) %{_bindir}/cyradm
309 %attr(755,root,root) %{_bindir}/httptest
310 %attr(755,root,root) %{_bindir}/imtest
311 %attr(755,root,root) %{_bindir}/installsieve
312 %attr(755,root,root) %{_bindir}/lmtptest
313 %attr(755,root,root) %{_bindir}/mupdatetest
314 %attr(755,root,root) %{_bindir}/nntptest
315 %attr(755,root,root) %{_bindir}/pop3test
316 %attr(755,root,root) %{_bindir}/sieveshell
317 %attr(755,root,root) %{_bindir}/sivtest
318 %attr(755,root,root) %{_bindir}/smtptest
319 %attr(755,root,root) %{_bindir}/synctest
322 %attr(2755,cyrus,mail) %{_libexecdir}/deliver-wrapper
323 %attr(755,root,root) %{_libexecdir}/fud
324 %{?with_http:%attr(755,root,root) %{_libexecdir}/httpd}
325 %attr(755,root,root) %{_libexecdir}/imapd
326 %attr(755,root,root) %{_libexecdir}/lmtpd
327 %attr(755,root,root) %{_libexecdir}/lmtpproxyd
328 %attr(755,root,root) %{_libexecdir}/master
329 %attr(755,root,root) %{_libexecdir}/nntpd
330 %attr(755,root,root) %{_libexecdir}/notifyd
331 %attr(755,root,root) %{_libexecdir}/pop3d
332 %attr(755,root,root) %{_libexecdir}/pop3proxyd
333 %attr(755,root,root) %{_libexecdir}/proxyd
334 %attr(755,root,root) %{_libexecdir}/smmapd
335 %attr(755,root,root) %{_libexecdir}/sync_server
336 %attr(755,root,root) %{_libexecdir}/timsieved
337 %attr(755,root,root) %{_sbindir}/arbitron
338 %attr(755,root,root) %{_sbindir}/chk_cyrus
339 %attr(755,root,root) %{_sbindir}/ctl_conversationsdb
340 %attr(755,root,root) %{_sbindir}/ctl_cyrusdb
341 %attr(755,root,root) %{_sbindir}/ctl_deliver
342 %attr(755,root,root) %{_sbindir}/ctl_mboxlist
343 %{?with_http:%attr(755,root,root) %{_sbindir}/ctl_zoneinfo}
344 %attr(755,root,root) %{_sbindir}/cvt_cyrusdb
345 %attr(755,root,root) %{_sbindir}/cvt_xlist_specialuse
346 %attr(755,root,root) %{_sbindir}/cyr_buildinfo
347 %attr(755,root,root) %{_sbindir}/cyr_dbtool
348 %attr(755,root,root) %{_sbindir}/cyr_deny
349 %attr(755,root,root) %{_sbindir}/cyr_df
350 %attr(755,root,root) %{_sbindir}/cyrdump
351 %attr(755,root,root) %{_sbindir}/cyr_expire
352 %attr(755,root,root) %{_sbindir}/cyr_info
353 %attr(755,root,root) %{_sbindir}/cyr_sequence
354 %attr(755,root,root) %{_sbindir}/cyr_synclog
355 %attr(755,root,root) %{_sbindir}/cyr_userseen
356 %attr(755,root,root) %{_sbindir}/cyr_virusscan
357 %{?with_http:%attr(755,root,root) %{_sbindir}/dav_reconstruct}
358 %attr(755,root,root) %{_sbindir}/deliver
359 %attr(755,root,root) %{_sbindir}/fetchnews
360 %attr(755,root,root) %{_sbindir}/ipurge
361 %attr(755,root,root) %{_sbindir}/mbexamine
362 %attr(755,root,root) %{_sbindir}/mbpath
363 %attr(755,root,root) %{_sbindir}/mbtool
364 %attr(755,root,root) %{_sbindir}/quota
365 %attr(755,root,root) %{_sbindir}/reconstruct
366 %attr(755,root,root) %{_sbindir}/sievec
367 %attr(755,root,root) %{_sbindir}/sieved
368 %attr(755,root,root) %{_sbindir}/squatter
369 %attr(755,root,root) %{_sbindir}/sync_client
370 %attr(755,root,root) %{_sbindir}/sync_reset
371 %attr(755,root,root) %{_sbindir}/tls_prune
372 %attr(755,root,root) %{_sbindir}/unexpunge
374 %attr(750,cyrus,mail) /var/spool/imap
375 %attr(750,cyrus,mail) %dir /var/lib/imap
376 %attr(750,cyrus,mail) %dir /var/lib/imap/deliverdb
377 %attr(750,cyrus,mail) /var/lib/imap/deliverdb/db
378 %attr(750,cyrus,mail) /var/lib/imap/quota
379 %attr(750,cyrus,mail) /var/lib/imap/user
380 %attr(750,cyrus,mail) /var/lib/imap/sieve
381 %attr(750,cyrus,mail) /var/lib/imap/log
382 %attr(750,cyrus,mail) /var/lib/imap/msg
383 %attr(750,cyrus,mail) /var/lib/imap/proc
384 %attr(750,cyrus,mail) /var/lib/imap/db
385 %attr(750,cyrus,mail) /var/lib/imap/socket
386 %attr(750,cyrus,mail) %config(noreplace) %verify(not md5 mtime size) /var/lib/imap/mailboxes
391 %defattr(644,root,root,755)
392 %attr(755,root,root) %{_libdir}/libcyrus.so.0
393 %attr(755,root,root) %ghost %{_libdir}/libcyrus.so.*.*
394 %attr(755,root,root) %{_libdir}/libcyrus_min.so.0
395 %attr(755,root,root) %ghost %{_libdir}/libcyrus_min.so.*.*
396 %attr(755,root,root) %{_libdir}/libcyrus_imap.so.0
397 %attr(755,root,root) %ghost %{_libdir}/libcyrus_imap.so.*.*
398 %attr(755,root,root) %{_libdir}/libcyrus_sieve.so.0
399 %attr(755,root,root) %ghost %{_libdir}/libcyrus_sieve.so.*.*
402 %defattr(644,root,root,755)
404 %attr(755,root,root) %{_libdir}/libcyrus.so
405 %attr(755,root,root) %{_libdir}/libcyrus_min.so
406 %attr(755,root,root) %{_libdir}/libcyrus_imap.so
407 %attr(755,root,root) %{_libdir}/libcyrus_sieve.so
408 %{_libdir}/libcyrus.la
409 %{_libdir}/libcyrus_min.la
410 %{_libdir}/libcyrus_imap.la
411 %{_libdir}/libcyrus_sieve.la
412 %{_pkgconfigdir}/libcyrus.pc
413 %{_pkgconfigdir}/libcyrus_min.pc
414 %{_pkgconfigdir}/libcyrus_sieve.pc
417 %defattr(644,root,root,755)
418 %{_libdir}/libcyrus.a
419 %{_libdir}/libcyrus_imap.a
420 %{_libdir}/libcyrus_min.a
421 %{_libdir}/libcyrus_sieve.a
424 %files -n perl-%{name}
425 %defattr(644,root,root,755)
426 %{perl_vendorarch}/Cyrus
427 %dir %{perl_vendorarch}/auto/Cyrus
428 %dir %{perl_vendorarch}/auto/Cyrus/IMAP
429 %attr(755,root,root) %{perl_vendorarch}/auto/Cyrus/IMAP/IMAP.so
430 %dir %{perl_vendorarch}/auto/Cyrus/SIEVE
431 %dir %{perl_vendorarch}/auto/Cyrus/SIEVE/managesieve
432 %attr(755,root,root) %{perl_vendorarch}/auto/Cyrus/SIEVE/managesieve/managesieve.so